aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/aarch64/Makefile24
-rw-r--r--sysdeps/aarch64/__alloc_gcs.c70
-rw-r--r--sysdeps/aarch64/__arm_za_disable.S8
-rw-r--r--sysdeps/aarch64/__longjmp.S128
-rw-r--r--sysdeps/aarch64/__mtag_tag_region.S5
-rw-r--r--sysdeps/aarch64/__mtag_tag_zero_region.S5
-rw-r--r--sysdeps/aarch64/aarch64-gcs.h (renamed from sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h)38
-rw-r--r--sysdeps/aarch64/atomic-machine.h2
-rw-r--r--sysdeps/aarch64/bits/fenv.h2
-rw-r--r--sysdeps/aarch64/bits/fp-fast.h2
-rw-r--r--sysdeps/aarch64/bits/indirect-return.h36
-rw-r--r--sysdeps/aarch64/bits/link.h2
-rw-r--r--sysdeps/aarch64/bits/setjmp.h2
-rw-r--r--sysdeps/aarch64/bits/wordsize.h11
-rwxr-xr-xsysdeps/aarch64/configure209
-rw-r--r--sysdeps/aarch64/configure.ac111
-rw-r--r--sysdeps/aarch64/cpu-features.h10
-rw-r--r--sysdeps/aarch64/crti.S18
-rw-r--r--sysdeps/aarch64/crtn.S14
-rw-r--r--sysdeps/aarch64/dl-audit-check.h2
-rw-r--r--sysdeps/aarch64/dl-bti.c7
-rw-r--r--sysdeps/aarch64/dl-diagnostics-cpu.c2
-rw-r--r--sysdeps/aarch64/dl-dtprocnum.h2
-rw-r--r--sysdeps/aarch64/dl-gcs.c121
-rw-r--r--sysdeps/aarch64/dl-irel.h25
-rw-r--r--sysdeps/aarch64/dl-lookupcfg.h2
-rw-r--r--sysdeps/aarch64/dl-machine.h34
-rw-r--r--sysdeps/aarch64/dl-prop.h17
-rw-r--r--sysdeps/aarch64/dl-start.S51
-rw-r--r--sysdeps/aarch64/dl-tlsdesc.S65
-rw-r--r--sysdeps/aarch64/dl-tlsdesc.h2
-rw-r--r--sysdeps/aarch64/dl-trampoline.S38
-rw-r--r--sysdeps/aarch64/dl-tunables.list8
-rw-r--r--sysdeps/aarch64/e_sqrtl.c2
-rw-r--r--sysdeps/aarch64/elf-initfini.h2
-rw-r--r--sysdeps/aarch64/fpu/Makefile16
-rw-r--r--sysdeps/aarch64/fpu/Versions44
-rw-r--r--sysdeps/aarch64/fpu/acos_advsimd.c58
-rw-r--r--sysdeps/aarch64/fpu/acos_sve.c77
-rw-r--r--sysdeps/aarch64/fpu/acosf_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/acosf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/acosh_advsimd.c7
-rw-r--r--sysdeps/aarch64/fpu/acosh_sve.c8
-rw-r--r--sysdeps/aarch64/fpu/acoshf_advsimd.c36
-rw-r--r--sysdeps/aarch64/fpu/acoshf_sve.c23
-rw-r--r--sysdeps/aarch64/fpu/acospi_advsimd.c118
-rw-r--r--sysdeps/aarch64/fpu/acospi_sve.c112
-rw-r--r--sysdeps/aarch64/fpu/acospif_advsimd.c106
-rw-r--r--sysdeps/aarch64/fpu/acospif_sve.c91
-rw-r--r--sysdeps/aarch64/fpu/advsimd_f32_protos.h10
-rw-r--r--sysdeps/aarch64/fpu/asin_advsimd.c48
-rw-r--r--sysdeps/aarch64/fpu/asin_sve.c76
-rw-r--r--sysdeps/aarch64/fpu/asinf_advsimd.c33
-rw-r--r--sysdeps/aarch64/fpu/asinf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/asinh_advsimd.c176
-rw-r--r--sysdeps/aarch64/fpu/asinh_sve.c113
-rw-r--r--sysdeps/aarch64/fpu/asinhf_advsimd.c35
-rw-r--r--sysdeps/aarch64/fpu/asinhf_sve.c19
-rw-r--r--sysdeps/aarch64/fpu/asinpi_advsimd.c109
-rw-r--r--sysdeps/aarch64/fpu/asinpi_sve.c107
-rw-r--r--sysdeps/aarch64/fpu/asinpif_advsimd.c95
-rw-r--r--sysdeps/aarch64/fpu/asinpif_sve.c88
-rw-r--r--sysdeps/aarch64/fpu/atan2_advsimd.c158
-rw-r--r--sysdeps/aarch64/fpu/atan2_sve.c109
-rw-r--r--sysdeps/aarch64/fpu/atan2f_advsimd.c102
-rw-r--r--sysdeps/aarch64/fpu/atan2f_sve.c63
-rw-r--r--sysdeps/aarch64/fpu/atan2pi_advsimd.c175
-rw-r--r--sysdeps/aarch64/fpu/atan2pi_sve.c159
-rw-r--r--sysdeps/aarch64/fpu/atan2pif_advsimd.c138
-rw-r--r--sysdeps/aarch64/fpu/atan2pif_sve.c137
-rw-r--r--sysdeps/aarch64/fpu/atan_advsimd.c103
-rw-r--r--sysdeps/aarch64/fpu/atan_sve.c106
-rw-r--r--sysdeps/aarch64/fpu/atanf_advsimd.c99
-rw-r--r--sysdeps/aarch64/fpu/atanf_sve.c86
-rw-r--r--sysdeps/aarch64/fpu/atanh_advsimd.c28
-rw-r--r--sysdeps/aarch64/fpu/atanh_sve.c5
-rw-r--r--sysdeps/aarch64/fpu/atanhf_advsimd.c28
-rw-r--r--sysdeps/aarch64/fpu/atanhf_sve.c16
-rw-r--r--sysdeps/aarch64/fpu/atanpi_advsimd.c117
-rw-r--r--sysdeps/aarch64/fpu/atanpi_sve.c127
-rw-r--r--sysdeps/aarch64/fpu/atanpif_advsimd.c92
-rw-r--r--sysdeps/aarch64/fpu/atanpif_sve.c89
-rw-r--r--sysdeps/aarch64/fpu/bench-libmvec-arch.h2
-rw-r--r--sysdeps/aarch64/fpu/bits/math-vector.h66
-rw-r--r--sysdeps/aarch64/fpu/cbrt_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/cbrt_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/cbrtf_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/cbrtf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/cos_advsimd.c13
-rw-r--r--sysdeps/aarch64/fpu/cos_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/cosf_advsimd.c11
-rw-r--r--sysdeps/aarch64/fpu/cosf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/cosh_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/cosh_sve.c137
-rw-r--r--sysdeps/aarch64/fpu/coshf_advsimd.c30
-rw-r--r--sysdeps/aarch64/fpu/coshf_sve.c37
-rw-r--r--sysdeps/aarch64/fpu/cospi_advsimd.c87
-rw-r--r--sysdeps/aarch64/fpu/cospi_sve.c65
-rw-r--r--sysdeps/aarch64/fpu/cospif_advsimd.c87
-rw-r--r--sysdeps/aarch64/fpu/cospif_sve.c61
-rw-r--r--sysdeps/aarch64/fpu/erf_advsimd.c31
-rw-r--r--sysdeps/aarch64/fpu/erf_data.c10
-rw-r--r--sysdeps/aarch64/fpu/erf_sve.c12
-rw-r--r--sysdeps/aarch64/fpu/erfc_advsimd.c19
-rw-r--r--sysdeps/aarch64/fpu/erfc_data.c10
-rw-r--r--sysdeps/aarch64/fpu/erfc_sve.c4
-rw-r--r--sysdeps/aarch64/fpu/erfcf_advsimd.c10
-rw-r--r--sysdeps/aarch64/fpu/erfcf_data.c10
-rw-r--r--sysdeps/aarch64/fpu/erfcf_sve.c16
-rw-r--r--sysdeps/aarch64/fpu/erff_advsimd.c10
-rw-r--r--sysdeps/aarch64/fpu/erff_data.c10
-rw-r--r--sysdeps/aarch64/fpu/erff_sve.c15
-rw-r--r--sysdeps/aarch64/fpu/exp10_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/exp10_sve.c27
-rw-r--r--sysdeps/aarch64/fpu/exp10f_advsimd.c62
-rw-r--r--sysdeps/aarch64/fpu/exp10f_sve.c82
-rw-r--r--sysdeps/aarch64/fpu/exp2_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/exp2_sve.c78
-rw-r--r--sysdeps/aarch64/fpu/exp2f_advsimd.c56
-rw-r--r--sysdeps/aarch64/fpu/exp2f_sve.c71
-rw-r--r--sysdeps/aarch64/fpu/exp_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/exp_sve.c38
-rw-r--r--sysdeps/aarch64/fpu/expf_advsimd.c58
-rw-r--r--sysdeps/aarch64/fpu/expf_sve.c70
-rw-r--r--sysdeps/aarch64/fpu/expm1_advsimd.c70
-rw-r--r--sysdeps/aarch64/fpu/expm1_sve.c204
-rw-r--r--sysdeps/aarch64/fpu/expm1f_advsimd.c64
-rw-r--r--sysdeps/aarch64/fpu/expm1f_sve.c33
-rw-r--r--sysdeps/aarch64/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/aarch64/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/aarch64/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/aarch64/fpu/fegetenv.c2
-rw-r--r--sysdeps/aarch64/fpu/fegetexcept.c2
-rw-r--r--sysdeps/aarch64/fpu/fegetmode.c2
-rw-r--r--sysdeps/aarch64/fpu/fegetround.c2
-rw-r--r--sysdeps/aarch64/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/aarch64/fpu/fenv_private.h2
-rw-r--r--sysdeps/aarch64/fpu/fesetenv.c2
-rw-r--r--sysdeps/aarch64/fpu/fesetexcept.c2
-rw-r--r--sysdeps/aarch64/fpu/fesetmode.c2
-rw-r--r--sysdeps/aarch64/fpu/fesetround.c2
-rw-r--r--sysdeps/aarch64/fpu/feupdateenv.c2
-rw-r--r--sysdeps/aarch64/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/aarch64/fpu/finclude/math-vector-fortran.h2
-rw-r--r--sysdeps/aarch64/fpu/finite_pow.h2
-rw-r--r--sysdeps/aarch64/fpu/fpu_control.h38
-rw-r--r--sysdeps/aarch64/fpu/fraiseexcpt.c5
-rw-r--r--sysdeps/aarch64/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/aarch64/fpu/ftestexcept.c2
-rw-r--r--sysdeps/aarch64/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/aarch64/fpu/hypot_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/hypot_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/hypotf_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/hypotf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/log10_advsimd.c81
-rw-r--r--sysdeps/aarch64/fpu/log10_sve.c49
-rw-r--r--sysdeps/aarch64/fpu/log10f_advsimd.c67
-rw-r--r--sysdeps/aarch64/fpu/log10f_sve.c43
-rw-r--r--sysdeps/aarch64/fpu/log1p_advsimd.c109
-rw-r--r--sysdeps/aarch64/fpu/log1p_sve.c88
-rw-r--r--sysdeps/aarch64/fpu/log1pf_advsimd.c126
-rw-r--r--sysdeps/aarch64/fpu/log1pf_sve.c72
-rw-r--r--sysdeps/aarch64/fpu/log2_advsimd.c75
-rw-r--r--sysdeps/aarch64/fpu/log2_sve.c45
-rw-r--r--sysdeps/aarch64/fpu/log2f_advsimd.c69
-rw-r--r--sysdeps/aarch64/fpu/log2f_sve.c39
-rw-r--r--sysdeps/aarch64/fpu/log_advsimd.c96
-rw-r--r--sysdeps/aarch64/fpu/log_sve.c71
-rw-r--r--sysdeps/aarch64/fpu/logf_advsimd.c73
-rw-r--r--sysdeps/aarch64/fpu/logf_sve.c40
-rw-r--r--sysdeps/aarch64/fpu/math-barriers.h2
-rw-r--r--sysdeps/aarch64/fpu/math-tests-arch.h2
-rw-r--r--sysdeps/aarch64/fpu/math_private.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_advsimd_f32.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_advsimd_f64.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_generic.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_sve_f32.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_sve_f64.h2
-rw-r--r--sysdeps/aarch64/fpu/poly_sve_generic.h2
-rw-r--r--sysdeps/aarch64/fpu/pow_advsimd.c117
-rw-r--r--sysdeps/aarch64/fpu/pow_sve.c247
-rw-r--r--sysdeps/aarch64/fpu/powf_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/powf_sve.c119
-rw-r--r--sysdeps/aarch64/fpu/s_llrint.c2
-rw-r--r--sysdeps/aarch64/fpu/s_llrintf.c2
-rw-r--r--sysdeps/aarch64/fpu/s_llround.c2
-rw-r--r--sysdeps/aarch64/fpu/s_llroundf.c2
-rw-r--r--sysdeps/aarch64/fpu/s_lrint.c53
-rw-r--r--sysdeps/aarch64/fpu/s_lrintf.c2
-rw-r--r--sysdeps/aarch64/fpu/s_lround.c2
-rw-r--r--sysdeps/aarch64/fpu/s_lroundf.c2
-rw-r--r--sysdeps/aarch64/fpu/s_roundeven.c2
-rw-r--r--sysdeps/aarch64/fpu/s_roundevenf.c2
-rw-r--r--sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py2
-rwxr-xr-xsysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py2
-rw-r--r--sysdeps/aarch64/fpu/sin_advsimd.c18
-rw-r--r--sysdeps/aarch64/fpu/sin_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/sinf_advsimd.c24
-rw-r--r--sysdeps/aarch64/fpu/sinf_sve.c2
-rw-r--r--sysdeps/aarch64/fpu/sinh_advsimd.c71
-rw-r--r--sysdeps/aarch64/fpu/sinh_sve.c167
-rw-r--r--sysdeps/aarch64/fpu/sinhf_advsimd.c25
-rw-r--r--sysdeps/aarch64/fpu/sinhf_sve.c4
-rw-r--r--sysdeps/aarch64/fpu/sinpi_advsimd.c87
-rw-r--r--sysdeps/aarch64/fpu/sinpi_sve.c61
-rw-r--r--sysdeps/aarch64/fpu/sinpif_advsimd.c85
-rw-r--r--sysdeps/aarch64/fpu/sinpif_sve.c57
-rw-r--r--sysdeps/aarch64/fpu/sv_erf_data.c1570
-rw-r--r--sysdeps/aarch64/fpu/sv_erff_data.c1058
-rw-r--r--sysdeps/aarch64/fpu/sv_expf_inline.h39
-rw-r--r--sysdeps/aarch64/fpu/sv_expm1f_inline.h30
-rw-r--r--sysdeps/aarch64/fpu/sv_log1p_inline.h88
-rw-r--r--sysdeps/aarch64/fpu/sv_log1pf_inline.h99
-rw-r--r--sysdeps/aarch64/fpu/sv_math.h2
-rw-r--r--sysdeps/aarch64/fpu/tan_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/tan_sve.c93
-rw-r--r--sysdeps/aarch64/fpu/tanf_advsimd.c2
-rw-r--r--sysdeps/aarch64/fpu/tanf_sve.c20
-rw-r--r--sysdeps/aarch64/fpu/tanh_advsimd.c64
-rw-r--r--sysdeps/aarch64/fpu/tanh_sve.c156
-rw-r--r--sysdeps/aarch64/fpu/tanhf_advsimd.c23
-rw-r--r--sysdeps/aarch64/fpu/tanhf_sve.c30
-rw-r--r--sysdeps/aarch64/fpu/tanpi_advsimd.c88
-rw-r--r--sysdeps/aarch64/fpu/tanpi_sve.c88
-rw-r--r--sysdeps/aarch64/fpu/tanpif_advsimd.c72
-rw-r--r--sysdeps/aarch64/fpu/tanpif_sve.c68
-rw-r--r--sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c9
-rw-r--r--sysdeps/aarch64/fpu/test-double-advsimd.h2
-rw-r--r--sysdeps/aarch64/fpu/test-double-sve-wrappers.c9
-rw-r--r--sysdeps/aarch64/fpu/test-double-sve.h2
-rw-r--r--sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c9
-rw-r--r--sysdeps/aarch64/fpu/test-float-advsimd.h2
-rw-r--r--sysdeps/aarch64/fpu/test-float-sve-wrappers.c9
-rw-r--r--sysdeps/aarch64/fpu/test-float-sve.h2
-rw-r--r--sysdeps/aarch64/fpu/test-vpcs-vector-wrapper.h2
-rw-r--r--sysdeps/aarch64/fpu/v_exp_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_exp_tail_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_expf_inline.h51
-rw-r--r--sysdeps/aarch64/fpu/v_expm1_inline.h97
-rw-r--r--sysdeps/aarch64/fpu/v_expm1f_inline.h44
-rw-r--r--sysdeps/aarch64/fpu/v_log10_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_log1p_inline.h86
-rw-r--r--sysdeps/aarch64/fpu/v_log1pf_inline.h73
-rw-r--r--sysdeps/aarch64/fpu/v_log2_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_log_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_math.h2
-rw-r--r--sysdeps/aarch64/fpu/v_pow_exp_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_pow_log_data.c2
-rw-r--r--sysdeps/aarch64/fpu/v_powf_data.c2
-rw-r--r--sysdeps/aarch64/fpu/vecmath_config.h30
-rw-r--r--sysdeps/aarch64/hp-timing.h2
-rw-r--r--sysdeps/aarch64/jmpbuf-offsets.h64
-rw-r--r--sysdeps/aarch64/jmpbuf-unwind.h2
-rw-r--r--sysdeps/aarch64/ldsodefs.h2
-rw-r--r--sysdeps/aarch64/libc-mtag.h2
-rw-r--r--sysdeps/aarch64/libc-start.c2
-rw-r--r--sysdeps/aarch64/libc-tls.c2
-rw-r--r--sysdeps/aarch64/libm-test-ulps1734
-rw-r--r--sysdeps/aarch64/libm-test-ulps-name1
-rw-r--r--sysdeps/aarch64/linkmap.h3
-rw-r--r--sysdeps/aarch64/machine-gmon.h5
-rw-r--r--sysdeps/aarch64/math-tests-trap.h2
-rw-r--r--sysdeps/aarch64/mcount.c2
-rw-r--r--sysdeps/aarch64/memchr.S4
-rw-r--r--sysdeps/aarch64/memcmp.S6
-rw-r--r--sysdeps/aarch64/memcpy.S10
-rw-r--r--sysdeps/aarch64/memrchr.S4
-rw-r--r--sysdeps/aarch64/memset-reg.h30
-rw-r--r--sysdeps/aarch64/memset.S204
-rw-r--r--sysdeps/aarch64/multiarch/Makefile3
-rw-r--r--sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/aarch64/multiarch/ifunc-impl-list.c19
-rw-r--r--sysdeps/aarch64/multiarch/init-arch.h4
-rw-r--r--sysdeps/aarch64/multiarch/memchr.c2
-rw-r--r--sysdeps/aarch64/multiarch/memchr_generic.S2
-rw-r--r--sysdeps/aarch64/multiarch/memchr_nosimd.S5
-rw-r--r--sysdeps/aarch64/multiarch/memcpy.c12
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_a64fx.S19
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_generic.S2
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_mops.S6
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_oryon1.S10
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_sve.S13
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_thunderx.S305
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_thunderx2.S457
-rw-r--r--sysdeps/aarch64/multiarch/memmove.c12
-rw-r--r--sysdeps/aarch64/multiarch/memmove_mops.S6
-rw-r--r--sysdeps/aarch64/multiarch/memset.c8
-rw-r--r--sysdeps/aarch64/multiarch/memset_a64fx.S21
-rw-r--r--sysdeps/aarch64/multiarch/memset_emag.S13
-rw-r--r--sysdeps/aarch64/multiarch/memset_generic.S2
-rw-r--r--sysdeps/aarch64/multiarch/memset_kunpeng.S12
-rw-r--r--sysdeps/aarch64/multiarch/memset_mops.S5
-rw-r--r--sysdeps/aarch64/multiarch/memset_oryon1.S13
-rw-r--r--sysdeps/aarch64/multiarch/memset_sve_zva64.S120
-rw-r--r--sysdeps/aarch64/multiarch/memset_zva64.S2
-rw-r--r--sysdeps/aarch64/multiarch/strlen.c2
-rw-r--r--sysdeps/aarch64/multiarch/strlen_asimd.S3
-rw-r--r--sysdeps/aarch64/multiarch/strlen_generic.S2
-rw-r--r--sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h26
-rw-r--r--sysdeps/aarch64/nptl/bits/semaphore.h10
-rw-r--r--sysdeps/aarch64/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/aarch64/nptl/pthreaddef.h2
-rw-r--r--sysdeps/aarch64/nptl/tls.h2
-rw-r--r--sysdeps/aarch64/preconfigure1
-rw-r--r--sysdeps/aarch64/rawmemchr.S2
-rw-r--r--sysdeps/aarch64/rtld-global-offsets.sym5
-rw-r--r--sysdeps/aarch64/setjmp.S45
-rw-r--r--sysdeps/aarch64/sfp-machine.h2
-rw-r--r--sysdeps/aarch64/sotruss-lib.c2
-rw-r--r--sysdeps/aarch64/stackinfo.h33
-rw-r--r--sysdeps/aarch64/start.S16
-rw-r--r--sysdeps/aarch64/stpcpy.S2
-rw-r--r--sysdeps/aarch64/strchr.S3
-rw-r--r--sysdeps/aarch64/strchrnul.S3
-rw-r--r--sysdeps/aarch64/strcmp.S4
-rw-r--r--sysdeps/aarch64/strcpy.S4
-rw-r--r--sysdeps/aarch64/strlen.S3
-rw-r--r--sysdeps/aarch64/strncmp.S2
-rw-r--r--sysdeps/aarch64/strnlen.S4
-rw-r--r--sysdeps/aarch64/strrchr.S3
-rw-r--r--sysdeps/aarch64/sys/ifunc.h67
-rw-r--r--sysdeps/aarch64/sysdep.h97
-rw-r--r--sysdeps/aarch64/tlsdesc.c2
-rw-r--r--sysdeps/aarch64/tst-audit.h2
-rw-r--r--sysdeps/aarch64/tst-audit26.c2
-rw-r--r--sysdeps/aarch64/tst-audit26mod.c2
-rw-r--r--sysdeps/aarch64/tst-audit26mod.h2
-rw-r--r--sysdeps/aarch64/tst-audit27.c2
-rw-r--r--sysdeps/aarch64/tst-audit27mod.c2
-rw-r--r--sysdeps/aarch64/tst-audit27mod.h2
-rw-r--r--sysdeps/aarch64/tst-auditmod26.c2
-rw-r--r--sysdeps/aarch64/tst-auditmod27.c2
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-1.c17
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-2.c16
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-3.c97
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-4.c67
-rw-r--r--sysdeps/aarch64/tst-sme-helper.h97
-rw-r--r--sysdeps/aarch64/tst-sme-jmp.c83
-rw-r--r--sysdeps/aarch64/tst-sme-za-state.c119
-rw-r--r--sysdeps/aarch64/tst-vpcs-mod.S6
-rw-r--r--sysdeps/aarch64/tst-vpcs.c2
-rw-r--r--sysdeps/alpha/Makefile2
-rw-r--r--sysdeps/alpha/__longjmp.S2
-rw-r--r--sysdeps/alpha/_mcount.S2
-rw-r--r--sysdeps/alpha/add_n.S2
-rw-r--r--sysdeps/alpha/addmul_1.S2
-rw-r--r--sysdeps/alpha/alphaev5/add_n.S2
-rw-r--r--sysdeps/alpha/alphaev5/lshift.S2
-rw-r--r--sysdeps/alpha/alphaev5/rshift.S2
-rw-r--r--sysdeps/alpha/alphaev5/sub_n.S2
-rw-r--r--sysdeps/alpha/alphaev6/addmul_1.S2
-rw-r--r--sysdeps/alpha/alphaev6/memcpy.S2
-rw-r--r--sysdeps/alpha/alphaev6/memset.S2
-rw-r--r--sysdeps/alpha/alphaev6/stxcpy.S2
-rw-r--r--sysdeps/alpha/alphaev6/stxncpy.S2
-rw-r--r--sysdeps/alpha/alphaev67/rawmemchr.S2
-rw-r--r--sysdeps/alpha/alphaev67/stpcpy.S2
-rw-r--r--sysdeps/alpha/alphaev67/stpncpy.S2
-rw-r--r--sysdeps/alpha/alphaev67/strcat.S2
-rw-r--r--sysdeps/alpha/alphaev67/strchr.S2
-rw-r--r--sysdeps/alpha/alphaev67/strlen.S2
-rw-r--r--sysdeps/alpha/alphaev67/strncat.S2
-rw-r--r--sysdeps/alpha/alphaev67/strrchr.S2
-rw-r--r--sysdeps/alpha/atomic-machine.h2
-rw-r--r--sysdeps/alpha/bits/link.h2
-rw-r--r--sysdeps/alpha/bits/mathdef.h2
-rw-r--r--sysdeps/alpha/bits/setjmp.h2
-rw-r--r--sysdeps/alpha/crti.S2
-rw-r--r--sysdeps/alpha/crtn.S2
-rw-r--r--sysdeps/alpha/div.S2
-rw-r--r--sysdeps/alpha/div_libc.h2
-rw-r--r--sysdeps/alpha/divl.S2
-rw-r--r--sysdeps/alpha/divq.S2
-rw-r--r--sysdeps/alpha/divqu.S2
-rw-r--r--sysdeps/alpha/dl-machine.h2
-rw-r--r--sysdeps/alpha/dl-procinfo.h33
-rw-r--r--sysdeps/alpha/dl-tls.h27
-rw-r--r--sysdeps/alpha/dl-trampoline.S2
-rw-r--r--sysdeps/alpha/e_sqrtl.c2
-rw-r--r--sysdeps/alpha/elf-initfini.h2
-rw-r--r--sysdeps/alpha/fpu/bits/fenv.h2
-rw-r--r--sysdeps/alpha/fpu/cabsf.c2
-rw-r--r--sysdeps/alpha/fpu/cargf.c2
-rw-r--r--sysdeps/alpha/fpu/cfloat-compat.h2
-rw-r--r--sysdeps/alpha/fpu/cimagf.c2
-rw-r--r--sysdeps/alpha/fpu/conjf.c2
-rw-r--r--sysdeps/alpha/fpu/crealf.c2
-rw-r--r--sysdeps/alpha/fpu/e_sqrt.c2
-rw-r--r--sysdeps/alpha/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/alpha/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/alpha/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/alpha/fpu/fegetenv.c2
-rw-r--r--sysdeps/alpha/fpu/fegetexcept.c2
-rw-r--r--sysdeps/alpha/fpu/fegetmode.c2
-rw-r--r--sysdeps/alpha/fpu/fegetround.c2
-rw-r--r--sysdeps/alpha/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/alpha/fpu/fenv_libc.h2
-rw-r--r--sysdeps/alpha/fpu/fesetenv.c2
-rw-r--r--sysdeps/alpha/fpu/fesetexcept.c2
-rw-r--r--sysdeps/alpha/fpu/fesetmode.c2
-rw-r--r--sysdeps/alpha/fpu/fesetround.c2
-rw-r--r--sysdeps/alpha/fpu/feupdateenv.c2
-rw-r--r--sysdeps/alpha/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/alpha/fpu/fpu_control.h2
-rw-r--r--sysdeps/alpha/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/alpha/fpu/ftestexcept.c2
-rw-r--r--sysdeps/alpha/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps1491
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/alpha/fpu/math-barriers.h2
-rw-r--r--sysdeps/alpha/fpu/s_cacosf.c2
-rw-r--r--sysdeps/alpha/fpu/s_cacoshf.c2
-rw-r--r--sysdeps/alpha/fpu/s_casinf.c2
-rw-r--r--sysdeps/alpha/fpu/s_casinhf.c2
-rw-r--r--sysdeps/alpha/fpu/s_catanf.c2
-rw-r--r--sysdeps/alpha/fpu/s_catanhf.c2
-rw-r--r--sysdeps/alpha/fpu/s_ccosf.c2
-rw-r--r--sysdeps/alpha/fpu/s_ccoshf.c2
-rw-r--r--sysdeps/alpha/fpu/s_cexpf.c2
-rw-r--r--sysdeps/alpha/fpu/s_clog10f.c2
-rw-r--r--sysdeps/alpha/fpu/s_clogf.c2
-rw-r--r--sysdeps/alpha/fpu/s_cpowf.c2
-rw-r--r--sysdeps/alpha/fpu/s_cprojf.c2
-rw-r--r--sysdeps/alpha/fpu/s_csinf.c2
-rw-r--r--sysdeps/alpha/fpu/s_csinhf.c2
-rw-r--r--sysdeps/alpha/fpu/s_csqrtf.c2
-rw-r--r--sysdeps/alpha/fpu/s_ctanf.c2
-rw-r--r--sysdeps/alpha/fpu/s_ctanhf.c2
-rw-r--r--sysdeps/alpha/fpu/s_isnan.c2
-rw-r--r--sysdeps/alpha/fpu/s_lrint.c2
-rw-r--r--sysdeps/alpha/fpu/s_lrintf.c2
-rw-r--r--sysdeps/alpha/fpu/s_lround.c2
-rw-r--r--sysdeps/alpha/fpu/s_lroundf.c2
-rw-r--r--sysdeps/alpha/fpu/s_rint.c2
-rw-r--r--sysdeps/alpha/fpu/s_rintf.c2
-rw-r--r--sysdeps/alpha/gccframe.h2
-rw-r--r--sysdeps/alpha/hp-timing.h2
-rw-r--r--sysdeps/alpha/jmpbuf-offsets.h2
-rw-r--r--sysdeps/alpha/jmpbuf-unwind.h2
-rw-r--r--sysdeps/alpha/ldiv.S2
-rw-r--r--sysdeps/alpha/ldsodefs.h2
-rw-r--r--sysdeps/alpha/libc-tls.c2
-rw-r--r--sysdeps/alpha/lshift.S2
-rw-r--r--sysdeps/alpha/machine-gmon.h2
-rw-r--r--sysdeps/alpha/memchr.c2
-rw-r--r--sysdeps/alpha/memset.S2
-rw-r--r--sysdeps/alpha/mul_1.S2
-rw-r--r--sysdeps/alpha/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/alpha/nptl/pthread_spin_lock.S2
-rw-r--r--sysdeps/alpha/nptl/pthread_spin_trylock.S2
-rw-r--r--sysdeps/alpha/nptl/pthreaddef.h2
-rw-r--r--sysdeps/alpha/nptl/tls.h2
-rw-r--r--sysdeps/alpha/nscd-types.h2
-rw-r--r--sysdeps/alpha/ots_add.c2
-rw-r--r--sysdeps/alpha/ots_cmp.c2
-rw-r--r--sysdeps/alpha/ots_cmpe.c2
-rw-r--r--sysdeps/alpha/ots_cvtqux.c2
-rw-r--r--sysdeps/alpha/ots_cvtqx.c2
-rw-r--r--sysdeps/alpha/ots_cvttx.c2
-rw-r--r--sysdeps/alpha/ots_cvtxq.c2
-rw-r--r--sysdeps/alpha/ots_cvtxt.c2
-rw-r--r--sysdeps/alpha/ots_div.c2
-rw-r--r--sysdeps/alpha/ots_mul.c2
-rw-r--r--sysdeps/alpha/ots_nintxq.c2
-rw-r--r--sysdeps/alpha/ots_sub.c2
-rw-r--r--sysdeps/alpha/rawmemchr.S2
-rw-r--r--sysdeps/alpha/reml.S2
-rw-r--r--sysdeps/alpha/remq.S2
-rw-r--r--sysdeps/alpha/remqu.S2
-rw-r--r--sysdeps/alpha/rshift.S2
-rw-r--r--sysdeps/alpha/setjmp.S2
-rw-r--r--sysdeps/alpha/sfp-machine.h2
-rw-r--r--sysdeps/alpha/sotruss-lib.c2
-rw-r--r--sysdeps/alpha/stackinfo.h2
-rw-r--r--sysdeps/alpha/start.S2
-rw-r--r--sysdeps/alpha/stpcpy.S2
-rw-r--r--sysdeps/alpha/stpncpy.S2
-rw-r--r--sysdeps/alpha/strcat.S2
-rw-r--r--sysdeps/alpha/strchr.S2
-rw-r--r--sysdeps/alpha/strcmp.S2
-rw-r--r--sysdeps/alpha/strcpy.S2
-rw-r--r--sysdeps/alpha/string-fza.h2
-rw-r--r--sysdeps/alpha/string-fzb.h2
-rw-r--r--sysdeps/alpha/string-fzi.h2
-rw-r--r--sysdeps/alpha/string-shift.h2
-rw-r--r--sysdeps/alpha/strlen.S2
-rw-r--r--sysdeps/alpha/strncat.S2
-rw-r--r--sysdeps/alpha/strncpy.S2
-rw-r--r--sysdeps/alpha/strrchr.S2
-rw-r--r--sysdeps/alpha/stxcpy.S2
-rw-r--r--sysdeps/alpha/stxncpy.S2
-rw-r--r--sysdeps/alpha/sub_n.S2
-rw-r--r--sysdeps/alpha/submul_1.S2
-rw-r--r--sysdeps/alpha/tst-audit.h2
-rw-r--r--sysdeps/alpha/tst-file-align.h2
-rw-r--r--sysdeps/alpha/udiv_qrnnd.S2
-rw-r--r--sysdeps/alpha/unwind-arch.h2
-rw-r--r--sysdeps/arc/Makefile2
-rw-r--r--sysdeps/arc/__longjmp.S2
-rw-r--r--sysdeps/arc/atomic-machine.h2
-rw-r--r--sysdeps/arc/bits/endianness.h8
-rw-r--r--sysdeps/arc/bits/fenv.h4
-rw-r--r--sysdeps/arc/bits/link.h2
-rw-r--r--sysdeps/arc/bits/setjmp.h2
-rw-r--r--sysdeps/arc/configure13
-rw-r--r--sysdeps/arc/configure.ac9
-rw-r--r--sysdeps/arc/dl-machine.h2
-rw-r--r--sysdeps/arc/dl-runtime.h2
-rw-r--r--sysdeps/arc/dl-tls.h30
-rw-r--r--sysdeps/arc/dl-trampoline.S2
-rw-r--r--sysdeps/arc/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/arc/fpu/fegetenv.c2
-rw-r--r--sysdeps/arc/fpu/fegetmode.c2
-rw-r--r--sysdeps/arc/fpu/fegetround.c2
-rw-r--r--sysdeps/arc/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/arc/fpu/fesetenv.c2
-rw-r--r--sysdeps/arc/fpu/fesetexcept.c2
-rw-r--r--sysdeps/arc/fpu/fesetmode.c2
-rw-r--r--sysdeps/arc/fpu/fesetround.c2
-rw-r--r--sysdeps/arc/fpu/feupdateenv.c2
-rw-r--r--sysdeps/arc/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/arc/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/arc/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/arc/fpu/ftestexcept.c2
-rw-r--r--sysdeps/arc/fpu/libm-test-ulps1158
-rw-r--r--sysdeps/arc/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/arc/fpu_control.h2
-rw-r--r--sysdeps/arc/gccframe.h2
-rw-r--r--sysdeps/arc/get-rounding-mode.h2
-rw-r--r--sysdeps/arc/jmpbuf-offsets.h2
-rw-r--r--sysdeps/arc/jmpbuf-unwind.h2
-rw-r--r--sysdeps/arc/ldsodefs.h2
-rw-r--r--sysdeps/arc/libc-tls.c2
-rw-r--r--sysdeps/arc/machine-gmon.h2
-rw-r--r--sysdeps/arc/math-tests-trap.h2
-rw-r--r--sysdeps/arc/nofpu/libm-test-ulps279
-rw-r--r--sysdeps/arc/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/arc/nofpu/math-tests-exceptions.h2
-rw-r--r--sysdeps/arc/nofpu/math-tests-rounding.h2
-rw-r--r--sysdeps/arc/nptl/pthreaddef.h2
-rw-r--r--sysdeps/arc/nptl/tls.h2
-rw-r--r--sysdeps/arc/setjmp.S2
-rw-r--r--sysdeps/arc/sfp-machine.h2
-rw-r--r--sysdeps/arc/sotruss-lib.c2
-rw-r--r--sysdeps/arc/stackinfo.h33
-rw-r--r--sysdeps/arc/start.S2
-rw-r--r--sysdeps/arc/sysdep.h2
-rw-r--r--sysdeps/arc/tst-audit.h2
-rw-r--r--sysdeps/arm/Makefile8
-rw-r--r--sysdeps/arm/__longjmp.S2
-rw-r--r--sysdeps/arm/add_n.S2
-rw-r--r--sysdeps/arm/addmul_1.S2
-rw-r--r--sysdeps/arm/aeabi_assert.c2
-rw-r--r--sysdeps/arm/aeabi_atexit.c2
-rw-r--r--sysdeps/arm/aeabi_errno_addr.c2
-rw-r--r--sysdeps/arm/aeabi_lcsts.c2
-rw-r--r--sysdeps/arm/aeabi_localeconv.c2
-rw-r--r--sysdeps/arm/aeabi_math.c2
-rw-r--r--sysdeps/arm/aeabi_mb_cur_max.c2
-rw-r--r--sysdeps/arm/aeabi_memclr.c2
-rw-r--r--sysdeps/arm/aeabi_memcpy.c2
-rw-r--r--sysdeps/arm/aeabi_memmove.c2
-rw-r--r--sysdeps/arm/aeabi_memset.c2
-rw-r--r--sysdeps/arm/aeabi_sighandlers.S2
-rw-r--r--sysdeps/arm/aeabi_unwind_cpp_pr1.c2
-rw-r--r--sysdeps/arm/arm-features.h2
-rw-r--r--sysdeps/arm/arm-ifunc.h2
-rw-r--r--sysdeps/arm/arm-mcount.S2
-rw-r--r--sysdeps/arm/arm-unwind-resume.S2
-rw-r--r--sysdeps/arm/armv6/rawmemchr.S2
-rw-r--r--sysdeps/arm/armv6/strchr.S2
-rw-r--r--sysdeps/arm/armv6/strcpy.S2
-rw-r--r--sysdeps/arm/armv6/strlen.S2
-rw-r--r--sysdeps/arm/armv6/strrchr.S2
-rw-r--r--sysdeps/arm/armv6t2/memchr.S2
-rw-r--r--sysdeps/arm/armv6t2/string-fza.h2
-rw-r--r--sysdeps/arm/armv6t2/strlen.S2
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-memchr.h2
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-memcpy.h2
-rw-r--r--sysdeps/arm/armv7/multiarch/memchr.c2
-rw-r--r--sysdeps/arm/armv7/multiarch/memchr_neon.S2
-rw-r--r--sysdeps/arm/armv7/multiarch/memcpy.c2
-rw-r--r--sysdeps/arm/armv7/multiarch/memcpy_impl.S2
-rw-r--r--sysdeps/arm/armv7/strcmp.S2
-rw-r--r--sysdeps/arm/atomic-machine.h2
-rw-r--r--sysdeps/arm/backtrace.c2
-rw-r--r--sysdeps/arm/bits/dl_find_object.h2
-rw-r--r--sysdeps/arm/bits/fenv.h2
-rw-r--r--sysdeps/arm/bits/link.h2
-rw-r--r--sysdeps/arm/bits/setjmp.h2
-rw-r--r--sysdeps/arm/bits/wordsize.h2
-rw-r--r--sysdeps/arm/bsd-_setjmp.S2
-rw-r--r--sysdeps/arm/bsd-setjmp.S2
-rw-r--r--sysdeps/arm/crti.S2
-rw-r--r--sysdeps/arm/crtn.S2
-rw-r--r--sysdeps/arm/dl-irel.h2
-rw-r--r--sysdeps/arm/dl-lookupcfg.h2
-rw-r--r--sysdeps/arm/dl-machine-rel.h2
-rw-r--r--sysdeps/arm/dl-machine.h13
-rw-r--r--sysdeps/arm/dl-tls.h28
-rw-r--r--sysdeps/arm/dl-tlsdesc.S2
-rw-r--r--sysdeps/arm/dl-tlsdesc.h2
-rw-r--r--sysdeps/arm/dl-trampoline.S2
-rw-r--r--sysdeps/arm/elf-initfini.h2
-rw-r--r--sysdeps/arm/fclrexcpt.c2
-rw-r--r--sysdeps/arm/fedisblxcpt.c2
-rw-r--r--sysdeps/arm/feenablxcpt.c2
-rw-r--r--sysdeps/arm/fegetenv.c2
-rw-r--r--sysdeps/arm/fegetexcept.c2
-rw-r--r--sysdeps/arm/fegetmode.c2
-rw-r--r--sysdeps/arm/fegetround.c2
-rw-r--r--sysdeps/arm/feholdexcpt.c2
-rw-r--r--sysdeps/arm/fenv_private.h2
-rw-r--r--sysdeps/arm/fesetenv.c2
-rw-r--r--sysdeps/arm/fesetexcept.c2
-rw-r--r--sysdeps/arm/fesetmode.c2
-rw-r--r--sysdeps/arm/fesetround.c2
-rw-r--r--sysdeps/arm/feupdateenv.c2
-rw-r--r--sysdeps/arm/fgetexcptflg.c2
-rw-r--r--sysdeps/arm/find_exidx.c5
-rw-r--r--sysdeps/arm/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/arm/fpu_control.h2
-rw-r--r--sysdeps/arm/fraiseexcpt.c2
-rw-r--r--sysdeps/arm/fsetexcptflg.c2
-rw-r--r--sysdeps/arm/ftestexcept.c2
-rw-r--r--sysdeps/arm/gcc-compat.h2
-rw-r--r--sysdeps/arm/gccframe.h2
-rw-r--r--sysdeps/arm/get-rounding-mode.h2
-rw-r--r--sysdeps/arm/include/bits/setjmp.h2
-rw-r--r--sysdeps/arm/jmpbuf-unwind.h2
-rw-r--r--sysdeps/arm/ldsodefs.h2
-rw-r--r--sysdeps/arm/libc-tls.c2
-rw-r--r--sysdeps/arm/libm-test-ulps1217
-rw-r--r--sysdeps/arm/libm-test-ulps-name1
-rw-r--r--sysdeps/arm/machine-gmon.h2
-rw-r--r--sysdeps/arm/math-tests-trap.h2
-rw-r--r--sysdeps/arm/memcpy.S2
-rw-r--r--sysdeps/arm/memmove.S2
-rw-r--r--sysdeps/arm/memset.S2
-rw-r--r--sysdeps/arm/nofpu/math-tests-exceptions.h2
-rw-r--r--sysdeps/arm/nofpu/math-tests-rounding.h2
-rw-r--r--sysdeps/arm/nptl/Makefile2
-rw-r--r--sysdeps/arm/nptl/pthreaddef.h2
-rw-r--r--sysdeps/arm/nptl/tls.h2
-rw-r--r--sysdeps/arm/pointer_guard.h2
-rw-r--r--sysdeps/arm/preconfigure113
-rw-r--r--sysdeps/arm/setfpucw.c2
-rw-r--r--sysdeps/arm/setjmp.S2
-rw-r--r--sysdeps/arm/sotruss-lib.c2
-rw-r--r--sysdeps/arm/stackinfo.h2
-rw-r--r--sysdeps/arm/stap-probe-machine.h2
-rw-r--r--sysdeps/arm/start.S2
-rw-r--r--sysdeps/arm/strlen.S2
-rw-r--r--sysdeps/arm/submul_1.S2
-rw-r--r--sysdeps/arm/sys/ucontext.h2
-rw-r--r--sysdeps/arm/sysdep.h2
-rw-r--r--sysdeps/arm/tlsdesc.c2
-rw-r--r--sysdeps/arm/tst-armtlsdescloc.c2
-rw-r--r--sysdeps/arm/tst-armtlsdesclocmod.c2
-rw-r--r--sysdeps/arm/tst-audit.h2
-rw-r--r--sysdeps/arm/tst-gnu2-tls2.h2
-rw-r--r--sysdeps/arm/unwind-arch.h2
-rw-r--r--sysdeps/arm/unwind-dw2-fde-glibc.c2
-rw-r--r--sysdeps/arm/unwind-resume.c2
-rw-r--r--sysdeps/arm/unwind-resume.h2
-rw-r--r--sysdeps/arm/unwind.h2
-rw-r--r--sysdeps/csky/abiv2/__longjmp.S2
-rw-r--r--sysdeps/csky/abiv2/csky-mcount.S2
-rw-r--r--sysdeps/csky/abiv2/dl-trampoline.S2
-rw-r--r--sysdeps/csky/abiv2/memcmp.S2
-rw-r--r--sysdeps/csky/abiv2/memcpy.S2
-rw-r--r--sysdeps/csky/abiv2/memset.S2
-rw-r--r--sysdeps/csky/abiv2/setjmp.S2
-rw-r--r--sysdeps/csky/abiv2/start.S2
-rw-r--r--sysdeps/csky/abiv2/strcmp.S2
-rw-r--r--sysdeps/csky/abiv2/strcpy.S2
-rw-r--r--sysdeps/csky/abiv2/strlen.S2
-rw-r--r--sysdeps/csky/atomic-machine.h2
-rw-r--r--sysdeps/csky/bits/fenv.h2
-rw-r--r--sysdeps/csky/bits/link.h2
-rw-r--r--sysdeps/csky/bits/setjmp.h2
-rw-r--r--sysdeps/csky/bits/wordsize.h2
-rw-r--r--sysdeps/csky/dl-machine.h2
-rw-r--r--sysdeps/csky/dl-procinfo.h34
-rw-r--r--sysdeps/csky/dl-tls.h26
-rw-r--r--sysdeps/csky/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/csky/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/csky/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/csky/fpu/fegetenv.c2
-rw-r--r--sysdeps/csky/fpu/fegetexcept.c2
-rw-r--r--sysdeps/csky/fpu/fegetmode.c2
-rw-r--r--sysdeps/csky/fpu/fegetround.c2
-rw-r--r--sysdeps/csky/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/csky/fpu/fenv_libc.h2
-rw-r--r--sysdeps/csky/fpu/fenv_private.h2
-rw-r--r--sysdeps/csky/fpu/fesetenv.c2
-rw-r--r--sysdeps/csky/fpu/fesetexcept.c2
-rw-r--r--sysdeps/csky/fpu/fesetmode.c2
-rw-r--r--sysdeps/csky/fpu/fesetround.c2
-rw-r--r--sysdeps/csky/fpu/feupdateenv.c2
-rw-r--r--sysdeps/csky/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/csky/fpu/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/csky/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/csky/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/csky/fpu/ftestexcept.c2
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps1126
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/csky/fpu_control.h2
-rw-r--r--sysdeps/csky/gccframe.h2
-rw-r--r--sysdeps/csky/jmpbuf-unwind.h2
-rw-r--r--sysdeps/csky/ldsodefs.h2
-rw-r--r--sysdeps/csky/libc-tls.c2
-rw-r--r--sysdeps/csky/machine-gmon.h2
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps1157
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/csky/nptl/pthreaddef.h2
-rw-r--r--sysdeps/csky/nptl/tls.h2
-rw-r--r--[-rwxr-xr-x]sysdeps/csky/preconfigure0
-rw-r--r--sysdeps/csky/sotruss-lib.c2
-rw-r--r--sysdeps/csky/stackinfo.h29
-rw-r--r--sysdeps/csky/sysdep.h2
-rw-r--r--sysdeps/csky/thread_pointer.h (renamed from sysdeps/unix/sysv/linux/nios2/kernel_stat.h)17
-rw-r--r--sysdeps/csky/tst-audit.h2
-rw-r--r--sysdeps/generic/Makefile3
-rw-r--r--sysdeps/generic/_itoa.h33
-rw-r--r--sysdeps/generic/abort-instr.h2
-rw-r--r--sysdeps/generic/adaptive_spin_count.h2
-rw-r--r--sysdeps/generic/aio_misc.h2
-rw-r--r--sysdeps/generic/arch-fd_to_filename.h2
-rw-r--r--sysdeps/generic/atomic-machine.h2
-rw-r--r--sysdeps/generic/calloc-clear-memory.h49
-rw-r--r--sysdeps/generic/device-nrs.h2
-rw-r--r--sysdeps/generic/dirstream.h2
-rw-r--r--sysdeps/generic/dl-affinity.h2
-rw-r--r--sysdeps/generic/dl-audit-check.h2
-rw-r--r--sysdeps/generic/dl-auxv.h2
-rw-r--r--sysdeps/generic/dl-cache.h2
-rw-r--r--sysdeps/generic/dl-call_tls_init_tp.h2
-rw-r--r--sysdeps/generic/dl-debug.h2
-rw-r--r--sysdeps/generic/dl-dtprocnum.h2
-rw-r--r--sysdeps/generic/dl-dtv.h2
-rw-r--r--sysdeps/generic/dl-execve.h2
-rw-r--r--sysdeps/generic/dl-extra_tls.h (renamed from sysdeps/unix/sysv/linux/sparc/bits/ioctls.h)48
-rw-r--r--sysdeps/generic/dl-fcntl.h2
-rw-r--r--sysdeps/generic/dl-fileid.h2
-rw-r--r--sysdeps/generic/dl-fixup-attribute.h2
-rw-r--r--sysdeps/generic/dl-hash.h2
-rw-r--r--sysdeps/generic/dl-hwcap-check.h2
-rw-r--r--sysdeps/generic/dl-irel.h2
-rw-r--r--sysdeps/generic/dl-isa-level.h2
-rw-r--r--sysdeps/generic/dl-lookupcfg.h2
-rw-r--r--sysdeps/generic/dl-machine-rel.h2
-rw-r--r--sysdeps/generic/dl-machine.h2
-rw-r--r--sysdeps/generic/dl-minimal-malloc.h2
-rw-r--r--sysdeps/generic/dl-mman.h2
-rw-r--r--sysdeps/generic/dl-new-hash.h2
-rw-r--r--sysdeps/generic/dl-osinfo.h2
-rw-r--r--sysdeps/generic/dl-prop.h2
-rw-r--r--sysdeps/generic/dl-protected.h2
-rw-r--r--sysdeps/generic/dl-r_debug.h2
-rw-r--r--sysdeps/generic/dl-relocate-ld.h2
-rw-r--r--sysdeps/generic/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/generic/dl-sysdep.h2
-rw-r--r--sysdeps/generic/dl-tls.h41
-rw-r--r--sysdeps/generic/dl-tunables-parse.h2
-rw-r--r--sysdeps/generic/dl-unistd.h2
-rw-r--r--sysdeps/generic/dl-vdso-setup.h2
-rw-r--r--sysdeps/generic/dl-vdso.h2
-rw-r--r--sysdeps/generic/dwarf2.h2
-rw-r--r--sysdeps/generic/elf-initfini.h2
-rw-r--r--sysdeps/generic/elf-read-prop.h2
-rw-r--r--sysdeps/generic/elf_machine_sym_no_match.h2
-rw-r--r--sysdeps/generic/elide.h2
-rw-r--r--sysdeps/generic/eloop-threshold.h72
-rw-r--r--sysdeps/generic/fast-jitter.h2
-rw-r--r--sysdeps/generic/fd_to_filename.h2
-rw-r--r--sysdeps/generic/features-time64.h2
-rw-r--r--sysdeps/generic/fenv_private.h2
-rw-r--r--sysdeps/generic/fix-float-double-convert-nan.h2
-rw-r--r--sysdeps/generic/fix-fp-int-compare-invalid.h2
-rw-r--r--sysdeps/generic/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/generic/fix-int-fp-convert-zero.h2
-rw-r--r--sysdeps/generic/fork.h2
-rw-r--r--sysdeps/generic/fpu_control.h2
-rw-r--r--sysdeps/generic/framestate.c2
-rw-r--r--sysdeps/generic/gcc-compat.h2
-rw-r--r--sysdeps/generic/gccframe.h2
-rw-r--r--sysdeps/generic/get-rounding-mode.h2
-rw-r--r--sysdeps/generic/getrandom-internal.h26
-rw-r--r--sysdeps/generic/gmp-mparam.h2
-rw-r--r--sysdeps/generic/hp-timing-common.h2
-rw-r--r--sysdeps/generic/hp-timing.h2
-rw-r--r--sysdeps/generic/ifreq.h2
-rw-r--r--sysdeps/generic/ifunc-init.h2
-rw-r--r--sysdeps/generic/internal-signals.h29
-rw-r--r--sysdeps/generic/internal-sigset.h26
-rw-r--r--sysdeps/generic/ldbl-classify-compat.h2
-rw-r--r--sysdeps/generic/ldconfig.h2
-rw-r--r--sysdeps/generic/ldsodefs.h146
-rw-r--r--sysdeps/generic/libc-lock-arch.h2
-rw-r--r--sysdeps/generic/libc-lock.h2
-rw-r--r--sysdeps/generic/libc-mmap.h2
-rw-r--r--sysdeps/generic/libc-mtag.h2
-rw-r--r--sysdeps/generic/libc-start.h2
-rw-r--r--sysdeps/generic/libc-symver.h2
-rw-r--r--sysdeps/generic/libc-tsd.h60
-rw-r--r--sysdeps/generic/libc_start_call_main.h2
-rw-r--r--sysdeps/generic/libm-alias-double.h2
-rw-r--r--sysdeps/generic/libm-alias-float.h2
-rw-r--r--sysdeps/generic/libm-alias-float128.h2
-rw-r--r--sysdeps/generic/libm-alias-ldouble.h2
-rw-r--r--sysdeps/generic/libm-test-ulps5
-rw-r--r--sysdeps/generic/libm-test-ulps-name1
-rw-r--r--sysdeps/generic/machine-gmon.h2
-rw-r--r--sysdeps/generic/machine-lock.h2
-rw-r--r--sysdeps/generic/machine-sp.h2
-rw-r--r--sysdeps/generic/malloc-alignment.h2
-rw-r--r--sysdeps/generic/malloc-hugepages.c2
-rw-r--r--sysdeps/generic/malloc-hugepages.h2
-rw-r--r--sysdeps/generic/malloc-machine.h2
-rw-r--r--sysdeps/generic/malloc-size.h2
-rw-r--r--sysdeps/generic/malloc-sysdep.h2
-rw-r--r--sysdeps/generic/math-barriers.h2
-rw-r--r--sysdeps/generic/math-nan-payload-double.h2
-rw-r--r--sysdeps/generic/math-nan-payload-float.h2
-rw-r--r--sysdeps/generic/math-narrow-alias-float128.h2
-rw-r--r--sysdeps/generic/math-narrow-alias.h2
-rw-r--r--sysdeps/generic/math-tests-arch.h2
-rw-r--r--sysdeps/generic/math-tests-exceptions.h2
-rw-r--r--sysdeps/generic/math-tests-rounding.h2
-rw-r--r--sysdeps/generic/math-tests-snan-cast.h2
-rw-r--r--sysdeps/generic/math-tests-snan-payload.h2
-rw-r--r--sysdeps/generic/math-tests-snan.h2
-rw-r--r--sysdeps/generic/math-tests-trap-force.h2
-rw-r--r--sysdeps/generic/math-tests-trap.h2
-rw-r--r--sysdeps/generic/math-tests.h2
-rw-r--r--sysdeps/generic/math-type-macros-double.h4
-rw-r--r--sysdeps/generic/math-type-macros-float.h4
-rw-r--r--sysdeps/generic/math-type-macros-float128.h11
-rw-r--r--sysdeps/generic/math-type-macros-ldouble.h4
-rw-r--r--sysdeps/generic/math-type-macros.h3
-rw-r--r--sysdeps/generic/math-use-builtins.h2
-rw-r--r--sysdeps/generic/math_private_calls.h2
-rw-r--r--sysdeps/generic/math_uint128.h150
-rw-r--r--sysdeps/generic/memcopy.h2
-rw-r--r--sysdeps/generic/memswap.h2
-rw-r--r--sysdeps/generic/min-eloop-threshold.h42
-rw-r--r--sysdeps/generic/mremap-failure.h2
-rw-r--r--sysdeps/generic/nan-high-order-bit.h2
-rw-r--r--sysdeps/generic/net/if.h2
-rw-r--r--sysdeps/generic/netinet/if_ether.h2
-rw-r--r--sysdeps/generic/netinet/in_systm.h2
-rw-r--r--sysdeps/generic/netinet/ip.h2
-rw-r--r--sysdeps/generic/nfs/nfs.h2
-rw-r--r--sysdeps/generic/not-cancel.h6
-rw-r--r--sysdeps/generic/not-errno.h2
-rw-r--r--sysdeps/generic/nscd-types.h2
-rw-r--r--sysdeps/generic/pagecopy.h2
-rw-r--r--sysdeps/generic/pointer_guard.h2
-rw-r--r--sysdeps/generic/profil-counter.h2
-rw-r--r--sysdeps/generic/pty-private.h2
-rw-r--r--sysdeps/generic/rtld_static_init.h2
-rw-r--r--sysdeps/generic/safe-fatal.h2
-rw-r--r--sysdeps/generic/set-freeres-fp.h2
-rw-r--r--sysdeps/generic/set-freeres-os.h2
-rw-r--r--sysdeps/generic/set-freeres-system.h2
-rw-r--r--sysdeps/generic/set-hooks-arch.h2
-rw-r--r--sysdeps/generic/setjmpP.h2
-rw-r--r--sysdeps/generic/setvmaname.h14
-rw-r--r--sysdeps/generic/sframe-read.c566
-rw-r--r--sysdeps/generic/sframe-read.h106
-rw-r--r--sysdeps/generic/sframe.c187
-rw-r--r--sysdeps/generic/sframe.h367
-rw-r--r--sysdeps/generic/sigcontextinfo.h2
-rw-r--r--sysdeps/generic/siglist-compat-def.h2
-rw-r--r--sysdeps/generic/siglist.h2
-rw-r--r--sysdeps/generic/sigset-cvt-mask.h2
-rw-r--r--sysdeps/generic/sigsetops.h2
-rw-r--r--sysdeps/generic/single-thread.h2
-rw-r--r--sysdeps/generic/spawn_int_def.h2
-rw-r--r--sysdeps/generic/stackinfo.h17
-rw-r--r--sysdeps/generic/stap-probe-machine.h2
-rw-r--r--sysdeps/generic/startup.h2
-rw-r--r--sysdeps/generic/stdio-lock.h2
-rw-r--r--sysdeps/generic/string-fza.h2
-rw-r--r--sysdeps/generic/string-fzb.h2
-rw-r--r--sysdeps/generic/string-fzc.h2
-rw-r--r--sysdeps/generic/string-fzi.h2
-rw-r--r--sysdeps/generic/string-misc.h2
-rw-r--r--sysdeps/generic/string-opthr.h2
-rw-r--r--sysdeps/generic/string-optype.h2
-rw-r--r--sysdeps/generic/string-shift.h2
-rw-r--r--sysdeps/generic/sys/ptrace.h2
-rw-r--r--sysdeps/generic/sys/swap.h2
-rw-r--r--sysdeps/generic/sys/sysinfo.h2
-rw-r--r--sysdeps/generic/sys/ucontext.h2
-rw-r--r--sysdeps/generic/syscall_types.h (renamed from sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c)13
-rw-r--r--sysdeps/generic/sysdep.h5
-rw-r--r--sysdeps/generic/thread_pointer.h (renamed from sysdeps/nptl/thread_pointer.h)2
-rw-r--r--sysdeps/generic/thread_state.h2
-rw-r--r--sysdeps/generic/time-clockid.h2
-rw-r--r--sysdeps/generic/tininess.h2
-rw-r--r--sysdeps/generic/tls-internal-struct.h2
-rw-r--r--sysdeps/generic/tls-internal.c2
-rw-r--r--sysdeps/generic/tls-internal.h2
-rw-r--r--sysdeps/generic/tls-setup.h2
-rw-r--r--sysdeps/generic/tls.h2
-rw-r--r--sysdeps/generic/tst-file-align.h2
-rw-r--r--sysdeps/generic/tst-stack-align.h4
-rw-r--r--sysdeps/generic/unwind-arch.h2
-rw-r--r--sysdeps/generic/unwind-dw2-fde-glibc.c2
-rw-r--r--sysdeps/generic/unwind-dw2-fde.c2
-rw-r--r--sysdeps/generic/unwind-dw2-fde.h2
-rw-r--r--sysdeps/generic/unwind-dw2.c2
-rw-r--r--sysdeps/generic/unwind-link.h2
-rw-r--r--sysdeps/generic/unwind-pe.h2
-rw-r--r--sysdeps/generic/unwind-resume.c2
-rw-r--r--sysdeps/generic/unwind-resume.h2
-rw-r--r--sysdeps/generic/unwind.h2
-rw-r--r--sysdeps/generic/utmp-equal.h2
-rw-r--r--sysdeps/generic/utmp-size.h2
-rw-r--r--sysdeps/generic/uw-sigframe.h31
-rw-r--r--sysdeps/gnu/Makefile2
-rw-r--r--sysdeps/gnu/bits/ipc-perm.h2
-rw-r--r--sysdeps/gnu/bits/ipc.h2
-rw-r--r--sysdeps/gnu/bits/msq.h2
-rw-r--r--sysdeps/gnu/bits/sem.h2
-rw-r--r--sysdeps/gnu/bits/shm.h2
-rw-r--r--sysdeps/gnu/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/gnu/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/gnu/bits/utmpx.h2
-rw-r--r--sysdeps/gnu/getutmp.c2
-rw-r--r--sysdeps/gnu/glob-lstat-compat.c2
-rw-r--r--sysdeps/gnu/glob64-lstat-compat.c2
-rw-r--r--sysdeps/gnu/ifaddrs.c2
-rw-r--r--sysdeps/gnu/ldsodefs.h2
-rw-r--r--sysdeps/gnu/net/if.h2
-rw-r--r--sysdeps/gnu/netinet/ip_icmp.h2
-rw-r--r--sysdeps/gnu/netinet/tcp.h3
-rw-r--r--sysdeps/gnu/netinet/udp.h2
-rw-r--r--sysdeps/gnu/sys/mtio.h2
-rw-r--r--sysdeps/gnu/updwtmp.c2
-rw-r--r--sysdeps/gnu/utmp_file.c2
-rw-r--r--sysdeps/gnu/utmpx.h2
-rw-r--r--sysdeps/hppa/Makefile2
-rw-r--r--sysdeps/hppa/__longjmp.c2
-rw-r--r--sysdeps/hppa/add_n.S2
-rw-r--r--sysdeps/hppa/bits/link.h2
-rw-r--r--sysdeps/hppa/bits/setjmp.h2
-rw-r--r--sysdeps/hppa/bsd-_setjmp.S2
-rw-r--r--sysdeps/hppa/bsd-setjmp.S2
-rw-r--r--sysdeps/hppa/crti.S2
-rw-r--r--sysdeps/hppa/crtn.S2
-rw-r--r--sysdeps/hppa/dl-fptr.c2
-rw-r--r--sysdeps/hppa/dl-fptr.h25
-rw-r--r--sysdeps/hppa/dl-irel.h2
-rw-r--r--sysdeps/hppa/dl-lookupcfg.h2
-rw-r--r--sysdeps/hppa/dl-machine.h2
-rw-r--r--sysdeps/hppa/dl-runtime.c2
-rw-r--r--sysdeps/hppa/dl-runtime.h2
-rw-r--r--sysdeps/hppa/dl-symaddr.c2
-rw-r--r--sysdeps/hppa/dl-tls.h28
-rw-r--r--sysdeps/hppa/dl-trampoline.S2
-rw-r--r--sysdeps/hppa/elf-initfini.h2
-rw-r--r--sysdeps/hppa/fpu/bits/fenv.h2
-rw-r--r--sysdeps/hppa/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/hppa/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/hppa/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/hppa/fpu/fegetenv.c2
-rw-r--r--sysdeps/hppa/fpu/fegetexcept.c2
-rw-r--r--sysdeps/hppa/fpu/fegetmode.c2
-rw-r--r--sysdeps/hppa/fpu/fegetround.c2
-rw-r--r--sysdeps/hppa/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/hppa/fpu/fesetenv.c2
-rw-r--r--sysdeps/hppa/fpu/fesetexcept.c2
-rw-r--r--sysdeps/hppa/fpu/fesetmode.c2
-rw-r--r--sysdeps/hppa/fpu/fesetround.c2
-rw-r--r--sysdeps/hppa/fpu/feupdateenv.c2
-rw-r--r--sysdeps/hppa/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/hppa/fpu/fpu_control.h2
-rw-r--r--sysdeps/hppa/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/hppa/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/hppa/fpu/ftestexcept.c2
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps1250
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/hppa/gccframe.h2
-rw-r--r--sysdeps/hppa/get-rounding-mode.h2
-rw-r--r--sysdeps/hppa/hppa1.1/addmul_1.S2
-rw-r--r--sysdeps/hppa/hppa1.1/mul_1.S2
-rw-r--r--sysdeps/hppa/hppa1.1/s_signbit.c2
-rw-r--r--sysdeps/hppa/hppa1.1/submul_1.S2
-rw-r--r--sysdeps/hppa/hppa1.1/udiv_qrnnd.S2
-rw-r--r--sysdeps/hppa/jmpbuf-offsets.h2
-rw-r--r--sysdeps/hppa/jmpbuf-unwind.h2
-rw-r--r--sysdeps/hppa/ldsodefs.h2
-rw-r--r--sysdeps/hppa/libc-tls.c2
-rw-r--r--sysdeps/hppa/libgcc-compat.c2
-rw-r--r--sysdeps/hppa/lshift.S2
-rw-r--r--sysdeps/hppa/machine-gmon.h2
-rw-r--r--sysdeps/hppa/math-tests-snan-payload.h2
-rw-r--r--sysdeps/hppa/memcopy.h2
-rw-r--r--sysdeps/hppa/nan-high-order-bit.h2
-rw-r--r--sysdeps/hppa/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/hppa/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/hppa/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/hppa/nptl/jmpbuf-unwind.h2
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_init.c2
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_unlock.c2
-rw-r--r--sysdeps/hppa/nptl/pthreaddef.h2
-rw-r--r--sysdeps/hppa/nptl/tls.h28
-rw-r--r--sysdeps/hppa/nptl/tst-oddstacklimit.c2
-rw-r--r--sysdeps/hppa/rshift.S2
-rw-r--r--sysdeps/hppa/setjmp.S2
-rw-r--r--sysdeps/hppa/sotruss-lib.c2
-rw-r--r--sysdeps/hppa/stackinfo.h2
-rw-r--r--sysdeps/hppa/start.S2
-rw-r--r--sysdeps/hppa/string-fzb.h2
-rw-r--r--sysdeps/hppa/string-fzc.h2
-rw-r--r--sysdeps/hppa/string-fzi.h2
-rw-r--r--sysdeps/hppa/sub_n.S2
-rw-r--r--sysdeps/hppa/sysdep.h2
-rw-r--r--sysdeps/hppa/thread_pointer.h40
-rw-r--r--sysdeps/hppa/tst-audit.h2
-rw-r--r--sysdeps/hppa/udiv_qrnnd.S2
-rw-r--r--sysdeps/htl/bits/cancelation.h2
-rw-r--r--sysdeps/htl/bits/pthread-np.h2
-rw-r--r--sysdeps/htl/bits/pthread.h2
-rw-r--r--sysdeps/htl/bits/pthreadtypes.h2
-rw-r--r--sysdeps/htl/bits/semaphore.h2
-rw-r--r--sysdeps/htl/bits/thread-shared-types.h2
-rw-r--r--sysdeps/htl/bits/types/__pthread_key.h2
-rw-r--r--sysdeps/htl/bits/types/__pthread_t.h2
-rw-r--r--sysdeps/htl/bits/types/__thrd_t.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_attr.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_barrier.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_barrierattr.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_cond.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_condattr.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_mutexattr.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_once.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_rwlock.h2
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_rwlockattr.h2
-rw-r--r--sysdeps/htl/dl-support.c2
-rw-r--r--sysdeps/htl/dl-thread_gscope_wait.c2
-rw-r--r--sysdeps/htl/flockfile.c2
-rw-r--r--sysdeps/htl/ftrylockfile.c2
-rw-r--r--sysdeps/htl/funlockfile.c2
-rw-r--r--sysdeps/htl/futex-internal.h2
-rw-r--r--sysdeps/htl/include/bits/cancelation.h5
-rw-r--r--sysdeps/htl/libc-lock.h21
-rw-r--r--sysdeps/htl/libc-lockP.h60
-rw-r--r--sysdeps/htl/pt-attr-destroy.c9
-rw-r--r--sysdeps/htl/pt-attr-getdetachstate.c2
-rw-r--r--sysdeps/htl/pt-attr-getguardsize.c10
-rw-r--r--sysdeps/htl/pt-attr-getinheritsched.c2
-rw-r--r--sysdeps/htl/pt-attr-getschedparam.c2
-rw-r--r--sysdeps/htl/pt-attr-getschedpolicy.c2
-rw-r--r--sysdeps/htl/pt-attr-getscope.c8
-rw-r--r--sysdeps/htl/pt-attr-getstack.c10
-rw-r--r--sysdeps/htl/pt-attr-getstackaddr.c10
-rw-r--r--sysdeps/htl/pt-attr-getstacksize.c10
-rw-r--r--sysdeps/htl/pt-attr-init.c10
-rw-r--r--sysdeps/htl/pt-attr-setdetachstate.c2
-rw-r--r--sysdeps/htl/pt-attr-setguardsize.c10
-rw-r--r--sysdeps/htl/pt-attr-setinheritsched.c2
-rw-r--r--sysdeps/htl/pt-attr-setschedparam.c9
-rw-r--r--sysdeps/htl/pt-attr-setschedpolicy.c2
-rw-r--r--sysdeps/htl/pt-attr-setscope.c8
-rw-r--r--sysdeps/htl/pt-attr-setstack.c11
-rw-r--r--sysdeps/htl/pt-attr-setstackaddr.c10
-rw-r--r--sysdeps/htl/pt-attr-setstacksize.c10
-rw-r--r--sysdeps/htl/pt-attr.c3
-rw-r--r--sysdeps/htl/pt-barrier-destroy.c11
-rw-r--r--sysdeps/htl/pt-barrier-init.c12
-rw-r--r--sysdeps/htl/pt-barrier-wait.c12
-rw-r--r--sysdeps/htl/pt-barrier.c2
-rw-r--r--sysdeps/htl/pt-barrierattr-destroy.c13
-rw-r--r--sysdeps/htl/pt-barrierattr-getpshared.c11
-rw-r--r--sysdeps/htl/pt-barrierattr-init.c11
-rw-r--r--sysdeps/htl/pt-barrierattr-setpshared.c11
-rw-r--r--sysdeps/htl/pt-cond-brdcast.c10
-rw-r--r--sysdeps/htl/pt-cond-destroy.c9
-rw-r--r--sysdeps/htl/pt-cond-init.c10
-rw-r--r--sysdeps/htl/pt-cond-signal.c10
-rw-r--r--sysdeps/htl/pt-cond-timedwait.c12
-rw-r--r--sysdeps/htl/pt-cond-wait.c10
-rw-r--r--sysdeps/htl/pt-cond.c3
-rw-r--r--sysdeps/htl/pt-condattr-destroy.c8
-rw-r--r--sysdeps/htl/pt-condattr-getclock.c11
-rw-r--r--sysdeps/htl/pt-condattr-getpshared.c10
-rw-r--r--sysdeps/htl/pt-condattr-init.c9
-rw-r--r--sysdeps/htl/pt-condattr-setclock.c12
-rw-r--r--sysdeps/htl/pt-condattr-setpshared.c10
-rw-r--r--sysdeps/htl/pt-destroy-specific.c4
-rw-r--r--sysdeps/htl/pt-equal.c2
-rw-r--r--sysdeps/htl/pt-getconcurrency.c2
-rw-r--r--sysdeps/htl/pt-getcpuclockid.c2
-rw-r--r--sysdeps/htl/pt-getschedparam.c2
-rw-r--r--sysdeps/htl/pt-getspecific.c11
-rw-r--r--sysdeps/htl/pt-init-specific.c2
-rw-r--r--sysdeps/htl/pt-key-create.c13
-rw-r--r--sysdeps/htl/pt-key-delete.c11
-rw-r--r--sysdeps/htl/pt-key.h2
-rw-r--r--sysdeps/htl/pt-once.c10
-rw-r--r--sysdeps/htl/pt-rwlock-attr.c2
-rw-r--r--sysdeps/htl/pt-rwlock-destroy.c11
-rw-r--r--sysdeps/htl/pt-rwlock-init.c11
-rw-r--r--sysdeps/htl/pt-rwlock-rdlock.c10
-rw-r--r--sysdeps/htl/pt-rwlock-timedrdlock.c18
-rw-r--r--sysdeps/htl/pt-rwlock-timedwrlock.c18
-rw-r--r--sysdeps/htl/pt-rwlock-tryrdlock.c12
-rw-r--r--sysdeps/htl/pt-rwlock-trywrlock.c12
-rw-r--r--sysdeps/htl/pt-rwlock-unlock.c10
-rw-r--r--sysdeps/htl/pt-rwlock-wrlock.c11
-rw-r--r--sysdeps/htl/pt-rwlockattr-destroy.c11
-rw-r--r--sysdeps/htl/pt-rwlockattr-getpshared.c11
-rw-r--r--sysdeps/htl/pt-rwlockattr-init.c11
-rw-r--r--sysdeps/htl/pt-rwlockattr-setpshared.c11
-rw-r--r--sysdeps/htl/pt-setconcurrency.c2
-rw-r--r--sysdeps/htl/pt-setschedparam.c2
-rw-r--r--sysdeps/htl/pt-setschedprio.c2
-rw-r--r--sysdeps/htl/pt-setspecific.c12
-rw-r--r--sysdeps/htl/pt-startup.c2
-rw-r--r--sysdeps/htl/pthread-functions.h66
-rw-r--r--sysdeps/htl/pthread.h2
-rw-r--r--sysdeps/htl/pthreadP.h168
-rw-r--r--sysdeps/htl/raise.c2
-rw-r--r--sysdeps/htl/sem-destroy.c2
-rw-r--r--sysdeps/htl/sem-getvalue.c2
-rw-r--r--sysdeps/htl/sem-init.c2
-rw-r--r--sysdeps/htl/sem-post.c2
-rw-r--r--sysdeps/htl/sem-timedwait.c2
-rw-r--r--sysdeps/htl/sem-trywait.c2
-rw-r--r--sysdeps/htl/sem-wait.c2
-rw-r--r--sysdeps/htl/sem-waitfast.c2
-rw-r--r--sysdeps/htl/stdio-lock.h2
-rw-r--r--sysdeps/htl/thrd_current.c2
-rw-r--r--sysdeps/htl/timer_routines.c36
-rw-r--r--sysdeps/htl/timer_routines.h2
-rw-r--r--sysdeps/hurd/htl/pt-kill.c2
-rw-r--r--sysdeps/hurd/include/hurd/signal.h4
-rw-r--r--sysdeps/hurd/include/hurd/sigpreempt.h2
-rw-r--r--sysdeps/i386/Makefile4
-rw-r--r--sysdeps/i386/__longjmp.S2
-rw-r--r--sysdeps/i386/add_n.S2
-rw-r--r--sysdeps/i386/addmul_1.S2
-rw-r--r--sysdeps/i386/asm-syntax.h2
-rw-r--r--sysdeps/i386/backtrace.c2
-rw-r--r--sysdeps/i386/bsd-_setjmp.S2
-rw-r--r--sysdeps/i386/bsd-setjmp.S2
-rw-r--r--sysdeps/i386/crti.S2
-rw-r--r--sysdeps/i386/crtn.S2
-rw-r--r--sysdeps/i386/dl-fixup-attribute.h2
-rw-r--r--sysdeps/i386/dl-irel.h2
-rw-r--r--sysdeps/i386/dl-machine-rel.h2
-rw-r--r--sysdeps/i386/dl-machine.h2
-rw-r--r--sysdeps/i386/dl-procinfo.c21
-rw-r--r--sysdeps/i386/dl-tls-get-addr.c68
-rw-r--r--sysdeps/i386/dl-tls.h40
-rw-r--r--sysdeps/i386/dl-tlsdesc-dynamic.h110
-rw-r--r--sysdeps/i386/dl-tlsdesc.S19
-rw-r--r--sysdeps/i386/dl-tlsdesc.h2
-rw-r--r--sysdeps/i386/dl-trampoline.S2
-rw-r--r--sysdeps/i386/fpu/e_acosf.S23
-rw-r--r--sysdeps/i386/fpu/e_acosh.S2
-rw-r--r--sysdeps/i386/fpu/e_acoshf.S101
-rw-r--r--sysdeps/i386/fpu/e_acoshl.S2
-rw-r--r--sysdeps/i386/fpu/e_asinf.S38
-rw-r--r--sysdeps/i386/fpu/e_atan2f.S30
-rw-r--r--sysdeps/i386/fpu/e_atanh.S2
-rw-r--r--sysdeps/i386/fpu/e_atanhf.S110
-rw-r--r--sysdeps/i386/fpu/e_atanhl.S2
-rw-r--r--sysdeps/i386/fpu/e_hypot.c2
-rw-r--r--sysdeps/i386/fpu/e_ilogb.S41
-rw-r--r--sysdeps/i386/fpu/e_ilogbf.S41
-rw-r--r--sysdeps/i386/fpu/e_log10f.S66
-rw-r--r--sysdeps/i386/fpu/e_pow.S2
-rw-r--r--sysdeps/i386/fpu/e_powl.S2
-rw-r--r--sysdeps/i386/fpu/fclrexcpt.c3
-rw-r--r--sysdeps/i386/fpu/fedisblxcpt.c3
-rw-r--r--sysdeps/i386/fpu/feenablxcpt.c3
-rw-r--r--sysdeps/i386/fpu/fegetenv.c3
-rw-r--r--sysdeps/i386/fpu/fegetexcept.c2
-rw-r--r--sysdeps/i386/fpu/fegetmode.c3
-rw-r--r--sysdeps/i386/fpu/fegetround.c2
-rw-r--r--sysdeps/i386/fpu/feholdexcpt.c3
-rw-r--r--sysdeps/i386/fpu/fesetenv.c3
-rw-r--r--sysdeps/i386/fpu/fesetexcept.c2
-rw-r--r--sysdeps/i386/fpu/fesetmode.c3
-rw-r--r--sysdeps/i386/fpu/fesetround.c3
-rw-r--r--sysdeps/i386/fpu/feupdateenv.c3
-rw-r--r--sysdeps/i386/fpu/fgetexcptflg.c3
-rw-r--r--sysdeps/i386/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/i386/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/i386/fpu/ftestexcept.c3
-rw-r--r--sysdeps/i386/fpu/i386-math-asm.h2
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps1786
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/i386/fpu/math-tests-snan.h2
-rw-r--r--sysdeps/i386/fpu/math-tests-trap-force.h2
-rw-r--r--sysdeps/i386/fpu/s_asinh.S2
-rw-r--r--sysdeps/i386/fpu/s_asinhf.S139
-rw-r--r--sysdeps/i386/fpu/s_asinhl.S2
-rw-r--r--sysdeps/i386/fpu/s_atanf.S30
-rw-r--r--sysdeps/i386/fpu/s_cbrt.S2
-rw-r--r--sysdeps/i386/fpu/s_cbrtf.S2
-rw-r--r--sysdeps/i386/fpu/s_cbrtl.S2
-rw-r--r--sysdeps/i386/fpu/s_ceil.c2
-rw-r--r--sysdeps/i386/fpu/s_ceilf.c2
-rw-r--r--sysdeps/i386/fpu/s_expm1.S2
-rw-r--r--sysdeps/i386/fpu/s_expm1f.S112
-rw-r--r--sysdeps/i386/fpu/s_f32xaddf64.c2
-rw-r--r--sysdeps/i386/fpu/s_f32xdivf64.c2
-rw-r--r--sysdeps/i386/fpu/s_f32xmulf64.c2
-rw-r--r--sysdeps/i386/fpu/s_f32xsubf64.c2
-rw-r--r--sysdeps/i386/fpu/s_fdim.c2
-rw-r--r--sysdeps/i386/fpu/s_floor.c2
-rw-r--r--sysdeps/i386/fpu/s_floorf.c2
-rw-r--r--sysdeps/i386/fpu/s_fmax.S2
-rw-r--r--sysdeps/i386/fpu/s_fmaxf.S2
-rw-r--r--sysdeps/i386/fpu/s_fmaxl.S2
-rw-r--r--sysdeps/i386/fpu/s_fmin.S2
-rw-r--r--sysdeps/i386/fpu/s_fminf.S2
-rw-r--r--sysdeps/i386/fpu/s_fminl.S2
-rw-r--r--sysdeps/i386/fpu/s_frexp.S2
-rw-r--r--sysdeps/i386/fpu/s_frexpf.S2
-rw-r--r--sysdeps/i386/fpu/s_frexpl.S2
-rw-r--r--sysdeps/i386/fpu/s_llrint.S2
-rw-r--r--sysdeps/i386/fpu/s_llrintf.S2
-rw-r--r--sysdeps/i386/fpu/s_llrintl.S2
-rw-r--r--sysdeps/i386/fpu/s_log1pf.S66
-rw-r--r--sysdeps/i386/fpu/s_lrint.S2
-rw-r--r--sysdeps/i386/fpu/s_lrintf.S2
-rw-r--r--sysdeps/i386/fpu/s_lrintl.S2
-rw-r--r--sysdeps/i386/fpu/s_trunc.c2
-rw-r--r--sysdeps/i386/fpu/s_truncf.c2
-rw-r--r--sysdeps/i386/gccframe.h2
-rw-r--r--sysdeps/i386/htl/Makefile2
-rw-r--r--sysdeps/i386/htl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/i386/htl/machine-sp.h2
-rw-r--r--sysdeps/i386/i386-mcount.S2
-rw-r--r--sysdeps/i386/i586/add_n.S2
-rw-r--r--sysdeps/i386/i586/addmul_1.S2
-rw-r--r--sysdeps/i386/i586/isa.h2
-rw-r--r--sysdeps/i386/i586/lshift.S2
-rw-r--r--sysdeps/i386/i586/memcopy.h2
-rw-r--r--sysdeps/i386/i586/memcpy.S2
-rw-r--r--sysdeps/i386/i586/memset.S2
-rw-r--r--sysdeps/i386/i586/mul_1.S2
-rw-r--r--sysdeps/i386/i586/rshift.S2
-rw-r--r--sysdeps/i386/i586/strchr.S2
-rw-r--r--sysdeps/i386/i586/strcpy.S2
-rw-r--r--sysdeps/i386/i586/strlen.S2
-rw-r--r--sysdeps/i386/i586/sub_n.S2
-rw-r--r--sysdeps/i386/i586/submul_1.S2
-rw-r--r--sysdeps/i386/i686/add_n.S2
-rw-r--r--sysdeps/i386/i686/dl-hash.h2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_exp2f.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_expf.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_log2f.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_logf.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_powf.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps1798
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name1
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_cosf.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sincosf.c2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sinf.c2
-rw-r--r--sysdeps/i386/i686/fpu/s_fmax.S2
-rw-r--r--sysdeps/i386/i686/fpu/s_fmaxf.S2
-rw-r--r--sysdeps/i386/i686/fpu/s_fmaxl.S2
-rw-r--r--sysdeps/i386/i686/fpu/s_fmin.S2
-rw-r--r--sysdeps/i386/i686/fpu/s_fminf.S2
-rw-r--r--sysdeps/i386/i686/fpu/s_fminl.S2
-rw-r--r--sysdeps/i386/i686/isa.h2
-rw-r--r--sysdeps/i386/i686/memcmp.S2
-rw-r--r--sysdeps/i386/i686/memcpy.S2
-rw-r--r--sysdeps/i386/i686/memmove.S2
-rw-r--r--sysdeps/i386/i686/mempcpy.S2
-rw-r--r--sysdeps/i386/i686/memset.S2
-rw-r--r--sysdeps/i386/i686/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-memmove.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-memset.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse4_2.h2
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h2
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-sse4.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy_chk.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memmove-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memmove.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memmove_chk.c2
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy_chk.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memset-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memset-sse2-rep.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memset-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/memset.c2
-rw-r--r--sysdeps/i386/i686/multiarch/memset_chk.c2
-rw-r--r--sysdeps/i386/i686/multiarch/rawmemchr-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/rawmemchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/s_fma-fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fmaf-fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fmaf.c4
-rw-r--r--sysdeps/i386/i686/multiarch/stpcpy-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/stpcpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/stpncpy-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/stpncpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcasecmp.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcasecmp_l.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcat.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-sse4.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strcspn-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcspn.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strlen.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strncase.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strncase_l.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strncat.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strncmp.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strncpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strnlen.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strpbrk-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strpbrk.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/strspn-ia32.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strspn.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wcschr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/wcschr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wcscmp-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/wcscmp.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wcscpy-ssse3.S2
-rw-r--r--sysdeps/i386/i686/multiarch/wcscpy.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wcslen-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/wcslen.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wcsrchr-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/wcsrchr.c2
-rw-r--r--sysdeps/i386/i686/multiarch/wmemcmp.c2
-rw-r--r--sysdeps/i386/i686/nptl/tls.h2
-rw-r--r--sysdeps/i386/i686/pthread_spin_trylock.S2
-rw-r--r--sysdeps/i386/i686/strcmp.S2
-rw-r--r--sysdeps/i386/isa.h2
-rw-r--r--sysdeps/i386/jmpbuf-offsets.h2
-rw-r--r--sysdeps/i386/jmpbuf-unwind.h2
-rw-r--r--sysdeps/i386/lshift.S2
-rw-r--r--sysdeps/i386/machine-gmon.h2
-rw-r--r--sysdeps/i386/malloc-alignment.h2
-rw-r--r--sysdeps/i386/memchr.S2
-rw-r--r--sysdeps/i386/memcmp.S2
-rw-r--r--sysdeps/i386/memcopy.h2
-rw-r--r--sysdeps/i386/memcpy.S2
-rw-r--r--sysdeps/i386/memcpy_chk.S2
-rw-r--r--sysdeps/i386/memmove_chk.S2
-rw-r--r--sysdeps/i386/mempcpy_chk.S2
-rw-r--r--sysdeps/i386/memset.S2
-rw-r--r--sysdeps/i386/memset_chk.S2
-rw-r--r--sysdeps/i386/mul_1.S2
-rw-r--r--sysdeps/i386/nptl/Makefile2
-rw-r--r--sysdeps/i386/nptl/pthread_spin_init.c2
-rw-r--r--sysdeps/i386/nptl/pthread_spin_lock.S2
-rw-r--r--sysdeps/i386/nptl/pthread_spin_unlock.S2
-rw-r--r--sysdeps/i386/nptl/rseq-access.h98
-rw-r--r--sysdeps/i386/nptl/tcb-access.h2
-rw-r--r--sysdeps/i386/nptl/tls.h2
-rw-r--r--sysdeps/i386/pthread_spin_trylock.S2
-rw-r--r--sysdeps/i386/rawmemchr.S2
-rw-r--r--sysdeps/i386/rshift.S2
-rw-r--r--sysdeps/i386/setfpucw.c3
-rw-r--r--sysdeps/i386/setjmp.S2
-rw-r--r--sysdeps/i386/stackinfo.h2
-rw-r--r--sysdeps/i386/start.S2
-rw-r--r--sysdeps/i386/stpcpy.S2
-rw-r--r--sysdeps/i386/stpncpy.S2
-rw-r--r--sysdeps/i386/strcat.S2
-rw-r--r--sysdeps/i386/strchr.S2
-rw-r--r--sysdeps/i386/strchrnul.S2
-rw-r--r--sysdeps/i386/strcspn.S2
-rw-r--r--sysdeps/i386/string-inlines.c2
-rw-r--r--sysdeps/i386/string-opthr.h2
-rw-r--r--sysdeps/i386/strlen.S2
-rw-r--r--sysdeps/i386/strlen.c2
-rw-r--r--sysdeps/i386/strpbrk.S2
-rw-r--r--sysdeps/i386/strrchr.S2
-rw-r--r--sysdeps/i386/strspn.S2
-rw-r--r--sysdeps/i386/sub_n.S2
-rw-r--r--sysdeps/i386/submul_1.S2
-rw-r--r--sysdeps/i386/symbol-hacks.h2
-rw-r--r--sysdeps/i386/sys/ucontext.h2
-rw-r--r--sysdeps/i386/sysdep.h2
-rw-r--r--sysdeps/i386/tls-get-addr-wrapper.h127
-rw-r--r--sysdeps/i386/tls_get_addr.S57
-rw-r--r--sysdeps/i386/tls_get_addr.h (renamed from sysdeps/s390/dl-procinfo-s390.c)34
-rw-r--r--sysdeps/i386/tlsdesc.c2
-rw-r--r--sysdeps/i386/tst-audit.h2
-rw-r--r--sysdeps/i386/tst-audit3.c2
-rw-r--r--sysdeps/i386/tst-audit3.h2
-rw-r--r--sysdeps/i386/tst-auditmod3a.c2
-rw-r--r--sysdeps/i386/tst-auditmod3b.c2
-rwxr-xr-xsysdeps/i386/tst-ld-sse-use.sh2
-rw-r--r--sysdeps/i386/unwind-arch.h2
-rw-r--r--sysdeps/ieee754/dbl-64/Makefile4
-rw-r--r--sysdeps/ieee754/dbl-64/asincos.tbl2
-rw-r--r--sysdeps/ieee754/dbl-64/atnat.h2
-rw-r--r--sysdeps/ieee754/dbl-64/atnat2.h2
-rw-r--r--sysdeps/ieee754/dbl-64/branred.c2
-rw-r--r--sysdeps/ieee754/dbl-64/branred.h2
-rw-r--r--sysdeps/ieee754/dbl-64/dbl2mpn.c2
-rw-r--r--sysdeps/ieee754/dbl-64/dla.h2
-rw-r--r--sysdeps/ieee754/dbl-64/e_asin.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_atan2.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_atanh.c10
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp10.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp2.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp_data.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_fmod.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_gamma_r.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_hypot.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_ilogb.c64
-rw-r--r--sysdeps/ieee754/dbl-64/e_log.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_log2.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_log2_data.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_log_data.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow_log_data.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_remainder.c2
-rw-r--r--sysdeps/ieee754/dbl-64/e_sinh.c8
-rw-r--r--sysdeps/ieee754/dbl-64/e_sqrt.c2
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_product.c2
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_productf.c45
-rw-r--r--sysdeps/ieee754/dbl-64/lgamma_neg.c2
-rw-r--r--sysdeps/ieee754/dbl-64/lgamma_product.c2
-rw-r--r--sysdeps/ieee754/dbl-64/math_config.h23
-rw-r--r--sysdeps/ieee754/dbl-64/math_err.c34
-rw-r--r--sysdeps/ieee754/dbl-64/mpn2dbl.c2
-rw-r--r--sysdeps/ieee754/dbl-64/mydefs.h2
-rw-r--r--sysdeps/ieee754/dbl-64/powtwo.tbl2
-rw-r--r--sysdeps/ieee754/dbl-64/root.tbl2
-rw-r--r--sysdeps/ieee754/dbl-64/s_atan.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_cbrt.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_erfc.c1
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xaddf64.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xdivf64.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xmulf64.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xsubf64.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fadd.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fdiv.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_ffma.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_floor.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fma.c5
-rw-r--r--sysdeps/ieee754/dbl-64/s_fmaf.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fmul.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fpclassify.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_frexp.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fromfp_main.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fsqrt.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_fsub.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_getpayload.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_issignaling.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_llrint.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_llround.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_logb.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_lrint.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_lround.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_modf.c109
-rw-r--r--sysdeps/ieee754/dbl-64/s_nextup.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_remquo.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_round.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_roundeven.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_setpayload_main.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_signbit.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_sin.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_sincos.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_tan.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_tanh.c5
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalorder.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalordermag.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_trunc.c2
-rw-r--r--sysdeps/ieee754/dbl-64/sincostab.c2
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input682
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input682
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input558
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input558
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input558
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input558
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input682
-rw-r--r--sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input682
-rw-r--r--sysdeps/ieee754/dbl-64/uasncs.h2
-rw-r--r--sysdeps/ieee754/dbl-64/uatan.tbl2
-rw-r--r--sysdeps/ieee754/dbl-64/urem.h2
-rw-r--r--sysdeps/ieee754/dbl-64/usncs.h2
-rw-r--r--sysdeps/ieee754/dbl-64/utan.h2
-rw-r--r--sysdeps/ieee754/dbl-64/utan.tbl2
-rw-r--r--sysdeps/ieee754/dbl-64/w_ilogb-impl.h37
-rw-r--r--sysdeps/ieee754/dbl-64/w_ilogb.c52
-rw-r--r--sysdeps/ieee754/dbl-64/w_llogb.c2
-rw-r--r--sysdeps/ieee754/dbl-64/x2y2m1.c2
-rw-r--r--sysdeps/ieee754/dbl-64/x2y2m1f.c2
-rw-r--r--sysdeps/ieee754/float128/float1282mpn.c2
-rw-r--r--sysdeps/ieee754/float128/float128_private.h2
-rw-r--r--sysdeps/ieee754/float128/ieee754_float128.h2
-rw-r--r--sysdeps/ieee754/float128/math-nan-payload-float128.h2
-rw-r--r--sysdeps/ieee754/float128/mpn2float128.c2
-rw-r--r--sysdeps/ieee754/float128/s_erfcf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_signbitf128.c2
-rw-r--r--sysdeps/ieee754/float128/strfromf128.c2
-rw-r--r--sysdeps/ieee754/float128/strtof128.c2
-rw-r--r--sysdeps/ieee754/float128/strtof128_l.c2
-rw-r--r--sysdeps/ieee754/float128/strtof128_nan.c2
-rw-r--r--sysdeps/ieee754/float128/wcstof128.c2
-rw-r--r--sysdeps/ieee754/float128/wcstof128_l.c2
-rw-r--r--sysdeps/ieee754/float128/wcstof128_nan.c2
-rw-r--r--sysdeps/ieee754/flt-32/Makefile3
-rw-r--r--sysdeps/ieee754/flt-32/e_acosf.c186
-rw-r--r--sysdeps/ieee754/flt-32/e_acoshf.c139
-rw-r--r--sysdeps/ieee754/flt-32/e_asinf.c197
-rw-r--r--sysdeps/ieee754/flt-32/e_atan2f.c338
-rw-r--r--sysdeps/ieee754/flt-32/e_atanhf.c212
-rw-r--r--sysdeps/ieee754/flt-32/e_coshf.c134
-rw-r--r--sysdeps/ieee754/flt-32/e_exp10f.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_exp2f.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_exp2f_data.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_expf.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_fmodf.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_gammaf_r.c331
-rw-r--r--sysdeps/ieee754/flt-32/e_hypotf.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_ilogbf.c44
-rw-r--r--sysdeps/ieee754/flt-32/e_lgammaf_r.c575
-rw-r--r--sysdeps/ieee754/flt-32/e_log10f.c195
-rw-r--r--sysdeps/ieee754/flt-32/e_log2f.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_log2f_data.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_logf.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_logf_data.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_powf.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_powf_log2_data.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_remainderf.c3
-rw-r--r--sysdeps/ieee754/flt-32/e_sincoshf_data.c49
-rw-r--r--sysdeps/ieee754/flt-32/e_sincoshf_data.h36
-rw-r--r--sysdeps/ieee754/flt-32/e_sinhf.c148
-rw-r--r--sysdeps/ieee754/flt-32/k_tanf.c102
-rw-r--r--sysdeps/ieee754/flt-32/lgamma_negf.c283
-rw-r--r--sysdeps/ieee754/flt-32/libm-test-ulps289
-rw-r--r--sysdeps/ieee754/flt-32/math_config.h71
-rw-r--r--sysdeps/ieee754/flt-32/math_errf.c35
-rw-r--r--sysdeps/ieee754/flt-32/mpn2flt.c2
-rw-r--r--sysdeps/ieee754/flt-32/reduce_aux.h2
-rw-r--r--sysdeps/ieee754/flt-32/s_acospif.c88
-rw-r--r--sysdeps/ieee754/flt-32/s_asincosf_data.c43
-rw-r--r--sysdeps/ieee754/flt-32/s_asincosf_data.h35
-rw-r--r--sysdeps/ieee754/flt-32/s_asincoshf_data.c121
-rw-r--r--sysdeps/ieee754/flt-32/s_asincoshf_data.h36
-rw-r--r--sysdeps/ieee754/flt-32/s_asincospif_data.c81
-rw-r--r--sysdeps/ieee754/flt-32/s_asincospif_data.h34
-rw-r--r--sysdeps/ieee754/flt-32/s_asinhf.c124
-rw-r--r--sysdeps/ieee754/flt-32/s_asinpif.c86
-rw-r--r--sysdeps/ieee754/flt-32/s_atan2pif.c238
-rw-r--r--sysdeps/ieee754/flt-32/s_atanf.c193
-rw-r--r--sysdeps/ieee754/flt-32/s_atanpif.c109
-rw-r--r--sysdeps/ieee754/flt-32/s_cbrtf.c136
-rw-r--r--sysdeps/ieee754/flt-32/s_cosf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_cospif.c81
-rw-r--r--sysdeps/ieee754/flt-32/s_erfcf.c187
-rw-r--r--sysdeps/ieee754/flt-32/s_erff.c470
-rw-r--r--sysdeps/ieee754/flt-32/s_exp10m1f.c227
-rw-r--r--sysdeps/ieee754/flt-32/s_exp2m1f.c194
-rw-r--r--sysdeps/ieee754/flt-32/s_expm1f.c232
-rw-r--r--sysdeps/ieee754/flt-32/s_fpclassifyf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_fromfpf_main.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_getpayloadf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_issignalingf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_llrintf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_llroundf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_log10p1f.c182
-rw-r--r--sysdeps/ieee754/flt-32/s_log1pf.c271
-rw-r--r--sysdeps/ieee754/flt-32/s_log2p1f.c248
-rw-r--r--sysdeps/ieee754/flt-32/s_lrintf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_lroundf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_modff.c105
-rw-r--r--sysdeps/ieee754/flt-32/s_nextupf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_remquof.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_roundevenf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_roundf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_setpayloadf_main.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_signbitf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf.h2
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf_data.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_sincospif_data.c80
-rw-r--r--sysdeps/ieee754/flt-32/s_sincospif_data.h37
-rw-r--r--sysdeps/ieee754/flt-32/s_sinf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_sinpif.c80
-rw-r--r--sysdeps/ieee754/flt-32/s_tanf.c224
-rw-r--r--sysdeps/ieee754/flt-32/s_tanhf.c133
-rw-r--r--sysdeps/ieee754/flt-32/s_tanpif.c90
-rw-r--r--sysdeps/ieee754/flt-32/s_totalorderf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_totalordermagf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_truncf.c2
-rw-r--r--sysdeps/ieee754/flt-32/sincosf_poly.h2
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input682
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input682
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input558
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input558
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input558
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input558
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input682
-rw-r--r--sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input682
-rw-r--r--sysdeps/ieee754/flt-32/w_ilogbf-impl.h38
-rw-r--r--sysdeps/ieee754/flt-32/w_ilogbf.c53
-rw-r--r--sysdeps/ieee754/flt-32/w_llogbf.c2
-rw-r--r--sysdeps/ieee754/flt-32/w_log1pf.c (renamed from sysdeps/i386/fpu/math_err.c)0
-rw-r--r--sysdeps/ieee754/ieee754.h2
-rw-r--r--sysdeps/ieee754/k_standardf.c2
-rw-r--r--sysdeps/ieee754/k_standardl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/Makefile6
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/floatn.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/long-double.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_exp10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_expl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_gammal_r.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_hypotl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_rem_pio2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_remainderl.c5
-rw-r--r--sysdeps/ieee754/ldbl-128/gamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/ieee754.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/k_cosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/ldbl2mpn.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/lgamma_negl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/lgamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/math_ldbl.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/mpn2ldbl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/printf_fphex.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/printf_fphex_macros.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_daddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ddivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dfmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_erfcl.c1
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xaddf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xdivf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xfmaf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xmulf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xsubf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_faddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fdivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ffmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fma.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fpclassifyl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fromfpl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_getpayloadl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_issignalingl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_llrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_llroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_lrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_lroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_nextupl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_remquol.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundevenl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_signbitl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalorderl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalordermagl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_truncl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/strtold_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/t_expl.h2
-rw-r--r--sysdeps/ieee754/ldbl-128/t_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input682
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input682
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input558
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input558
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input496
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input496
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input682
-rw-r--r--sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input682
-rw-r--r--sysdeps/ieee754/ldbl-128/x2y2m1l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Makefile49
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Versions16
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_scanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_sscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_swscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vsscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vswscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_wscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/math_ldbl.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/s_nextafterf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/s_nexttowardf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/s_significandf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/set-freeres-fp.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/Makefile10
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_exp10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_expl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/gamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/ieee754.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_cosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/math_ldbl.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/printf_fphex.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ceill.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_daddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ddivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dfmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_erfcl.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_faddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fdivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ffmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_floorl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_llrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_llroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_lrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_lroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nextupl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_remquol.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_rintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_signbitl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_truncl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/strtold_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/t_expl.h2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/t_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input682
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input682
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input558
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input558
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input496
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input496
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input682
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input682
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c2
-rw-r--r--sysdeps/ieee754/ldbl-64-128/Makefile14
-rw-r--r--sysdeps/ieee754/ldbl-64-128/strtold_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/Makefile6
-rw-r--r--sysdeps/ieee754/ldbl-96/bits/iscanonical.h2
-rw-r--r--sysdeps/ieee754/ldbl-96/bits/long-double.h2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_gammal_r.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_hypotl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_rem_pio2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_product.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/k_cosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/k_sinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/ldbl2mpn.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_negl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_product.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_productl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h2
-rw-r--r--sysdeps/ieee754/ldbl-96/math_ldbl.h2
-rw-r--r--sysdeps/ieee754/ldbl-96/mpn2ldbl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/nan-pseudo-number.h2
-rw-r--r--sysdeps/ieee754/ldbl-96/printf_fphex.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_cbrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_daddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_ddivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dfmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_erfcl.c1
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fabsl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_faddl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fdivl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_ffmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fma.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmull.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fromfpl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fsqrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fsubl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_getpayloadl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_iscanonicall.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_issignalingl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_llrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_llroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_lrintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_lroundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nextupl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_remquol.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_roundevenl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_roundl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_signbitl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalorderl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalordermagl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/strtold_l.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/t_sincosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c6
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input682
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input682
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input558
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input558
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input496
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input496
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input682
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input682
-rw-r--r--sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c33
-rw-r--r--sysdeps/ieee754/ldbl-96/x2y2m1.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/x2y2m1l.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile79
-rw-r--r--sysdeps/ieee754/ldbl-opt/bits/long-double.h2
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-double.h2
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-acospi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-asinpi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-atan2pi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.h2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compoundn.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-cospi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dadd.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dfma.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dmul.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dsub.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fadd.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ffma.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmul.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fsub.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-llogb.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-nextup.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-pown.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-powr.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-rootn.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-rsqrt.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-sinpi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-tanpi.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_clog10.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_clog10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ldexp.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ldexpl.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input682
-rw-r--r--sysdeps/ieee754/libm-alias-finite.h2
-rw-r--r--sysdeps/ieee754/soft-fp/s_daddl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_ddivl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_dfmal.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_dmull.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_dsqrtl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_dsubl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fadd.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_faddl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fdiv.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fdivl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_ffma.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_ffmal.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fma.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmaf.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmal.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmul.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmull.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsqrt.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsqrtl.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsub.c2
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsubl.c2
-rw-r--r--sysdeps/loongarch/__longjmp.S2
-rw-r--r--sysdeps/loongarch/bits/fenv.h2
-rw-r--r--sysdeps/loongarch/bits/link.h2
-rw-r--r--sysdeps/loongarch/bits/link_lavcurrent.h2
-rw-r--r--sysdeps/loongarch/bits/setjmp.h2
-rw-r--r--sysdeps/loongarch/cpu-tunables.c4
-rw-r--r--sysdeps/loongarch/dl-audit-check.h2
-rw-r--r--sysdeps/loongarch/dl-get-cpu-features.c2
-rw-r--r--sysdeps/loongarch/dl-irel.h2
-rw-r--r--sysdeps/loongarch/dl-machine.h9
-rw-r--r--sysdeps/loongarch/dl-tls.h3
-rw-r--r--sysdeps/loongarch/dl-tlsdesc-dynamic.h222
-rw-r--r--sysdeps/loongarch/dl-tlsdesc.S400
-rw-r--r--sysdeps/loongarch/dl-tlsdesc.h6
-rw-r--r--sysdeps/loongarch/dl-trampoline.S2
-rw-r--r--sysdeps/loongarch/dl-trampoline.h2
-rw-r--r--sysdeps/loongarch/dl-tunables.list2
-rw-r--r--sysdeps/loongarch/e_sqrtl.c2
-rw-r--r--sysdeps/loongarch/fenv_private.h (renamed from sysdeps/loongarch/math_private.h)10
-rw-r--r--sysdeps/loongarch/fpu/e_ilogbf.c40
-rw-r--r--sysdeps/loongarch/fpu/e_scalb.c2
-rw-r--r--sysdeps/loongarch/fpu/e_scalbf.c2
-rw-r--r--sysdeps/loongarch/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/loongarch/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/loongarch/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/loongarch/fpu/fegetenv.c2
-rw-r--r--sysdeps/loongarch/fpu/fegetexcept.c2
-rw-r--r--sysdeps/loongarch/fpu/fegetmode.c2
-rw-r--r--sysdeps/loongarch/fpu/fegetround.c2
-rw-r--r--sysdeps/loongarch/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/loongarch/fpu/fenv_libc.h2
-rw-r--r--sysdeps/loongarch/fpu/fesetenv.c2
-rw-r--r--sysdeps/loongarch/fpu/fesetexcept.c2
-rw-r--r--sysdeps/loongarch/fpu/fesetmode.c2
-rw-r--r--sysdeps/loongarch/fpu/fesetround.c2
-rw-r--r--sysdeps/loongarch/fpu/feupdateenv.c2
-rw-r--r--sysdeps/loongarch/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/loongarch/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/loongarch/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/loongarch/fpu/ftestexcept.c2
-rw-r--r--sysdeps/loongarch/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/loongarch/fpu/math-barriers.h2
-rw-r--r--sysdeps/loongarch/fpu/math-type-macros-double.h21
-rw-r--r--sysdeps/loongarch/fpu/math-type-macros-float.h21
-rw-r--r--sysdeps/loongarch/fpu/s_finite.c2
-rw-r--r--sysdeps/loongarch/fpu/s_finitef.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_mag_num.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_mag_num_template.c (renamed from sysdeps/loongarch/fpu/s_fmaximum_magf.c)39
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_mag_template.c39
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_num.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_num_template.c (renamed from sysdeps/loongarch/fpu/s_fminimum.c)39
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_numf.c49
-rw-r--r--sysdeps/loongarch/fpu/s_fmaximum_template.c (renamed from sysdeps/loongarch/fpu/s_fmaximum.c)39
-rw-r--r--sysdeps/loongarch/fpu/s_fmaxmag.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fmaxmagf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_mag.c40
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_mag_num.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_mag_num_template.c39
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_mag_numf.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_mag_template.c39
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_magf.c40
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_num.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_num_template.c39
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_numf.c48
-rw-r--r--sysdeps/loongarch/fpu/s_fminimum_template.c39
-rw-r--r--sysdeps/loongarch/fpu/s_fminmag.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fminmagf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fpclassify.c2
-rw-r--r--sysdeps/loongarch/fpu/s_fpclassifyf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_isinf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_isinff.c2
-rw-r--r--sysdeps/loongarch/fpu/s_isnan.c2
-rw-r--r--sysdeps/loongarch/fpu/s_isnanf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_issignaling.c2
-rw-r--r--sysdeps/loongarch/fpu/s_issignalingf.c2
-rw-r--r--sysdeps/loongarch/fpu/s_scalbn.c2
-rw-r--r--sysdeps/loongarch/fpu/s_scalbnf.c2
-rw-r--r--sysdeps/loongarch/fpu/w_ilogb-impl.h (renamed from sysdeps/loongarch/fpu/e_ilogb.c)14
-rw-r--r--sysdeps/loongarch/fpu/w_ilogbf-impl.h (renamed from sysdeps/loongarch/fpu/s_fminimumf.c)23
-rw-r--r--sysdeps/loongarch/fpu_control.h2
-rw-r--r--sysdeps/loongarch/hp-timing.h2
-rw-r--r--sysdeps/loongarch/jmpbuf-offsets.h2
-rw-r--r--sysdeps/loongarch/jmpbuf-unwind.h2
-rw-r--r--sysdeps/loongarch/ldsodefs.h2
-rw-r--r--sysdeps/loongarch/libc-tls.c4
-rw-r--r--sysdeps/loongarch/linkmap.h2
-rw-r--r--sysdeps/loongarch/lp64/libm-test-ulps1513
-rw-r--r--sysdeps/loongarch/lp64/libm-test-ulps-name1
-rw-r--r--sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-lasx.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-memchr.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-memcmp.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-memrchr.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-rawmemchr.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strchr.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strchrnul.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strcmp.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strlen.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strncmp.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strnlen.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-strrchr.h2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memchr-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memchr-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memchr-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memchr.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcmp-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcmp-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcmp-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcmp.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcpy-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcpy-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcpy-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcpy-unaligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memcpy.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove-unaligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memrchr-generic.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memrchr-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memrchr-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memrchr.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memset-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memset-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memset-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memset-unaligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memset.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/rawmemchr-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/rawmemchr-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/rawmemchr-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/rawmemchr.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/stpcpy-aligned.S3
-rw-r--r--sysdeps/loongarch/lp64/multiarch/stpcpy-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/stpcpy-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/stpcpy-unaligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/stpcpy.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchr-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchr-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchr-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchr.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchrnul-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchrnul-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchrnul-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strchrnul.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcmp-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcmp-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcmp.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcpy-aligned.S4
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcpy-lasx.S3
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcpy-lsx.S3
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcpy-unaligned.S3
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strcpy.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strlen-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strlen-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strlen-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strlen.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strncmp-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strncmp-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strncmp.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strnlen-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strnlen-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strnlen-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strnlen.c2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strrchr-aligned.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strrchr-lasx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strrchr-lsx.S2
-rw-r--r--sysdeps/loongarch/lp64/multiarch/strrchr.c2
-rw-r--r--sysdeps/loongarch/machine-gmon.h2
-rw-r--r--sysdeps/loongarch/nofpu/math-tests-exceptions.h2
-rw-r--r--sysdeps/loongarch/nofpu/math-tests-rounding.h2
-rw-r--r--sysdeps/loongarch/nptl/pthreaddef.h2
-rw-r--r--sysdeps/loongarch/nptl/tls.h4
-rw-r--r--sysdeps/loongarch/preconfigure1
-rw-r--r--sysdeps/loongarch/preconfigure.ac2
-rw-r--r--sysdeps/loongarch/setjmp.S2
-rw-r--r--sysdeps/loongarch/sfp-machine.h2
-rw-r--r--sysdeps/loongarch/sotruss-lib.c2
-rw-r--r--sysdeps/loongarch/stackinfo.h33
-rw-r--r--sysdeps/loongarch/start.S2
-rw-r--r--sysdeps/loongarch/sys/asm.h2
-rw-r--r--sysdeps/loongarch/sys/ifunc.h2
-rw-r--r--sysdeps/loongarch/sys/regdef.h2
-rw-r--r--sysdeps/loongarch/thread_pointer.h30
-rw-r--r--sysdeps/loongarch/tlsdesc.c2
-rw-r--r--sysdeps/loongarch/tlsdesc.sym9
-rw-r--r--sysdeps/loongarch/tst-audit.h2
-rw-r--r--sysdeps/loongarch/tst-gnu2-tls2.h2
-rw-r--r--sysdeps/loongarch/tst-hwcap-tunables.c2
-rw-r--r--sysdeps/m68k/Makefile2
-rw-r--r--sysdeps/m68k/__longjmp.c2
-rw-r--r--sysdeps/m68k/asm-syntax.h2
-rw-r--r--sysdeps/m68k/backtrace.c2
-rw-r--r--sysdeps/m68k/bits/fenv.h2
-rw-r--r--sysdeps/m68k/bits/link.h2
-rw-r--r--sysdeps/m68k/bits/setjmp.h2
-rw-r--r--sysdeps/m68k/bits/wordsize.h2
-rw-r--r--sysdeps/m68k/bsd-_setjmp.c2
-rw-r--r--sysdeps/m68k/bsd-setjmp.c2
-rw-r--r--sysdeps/m68k/coldfire/atomic-machine.h2
-rw-r--r--sysdeps/m68k/coldfire/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps163
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabs.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabsf.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrint.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrintf.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rint.c2
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rintf.c2
-rw-r--r--sysdeps/m68k/coldfire/nofpu/sfp-machine.h52
-rw-r--r--sysdeps/m68k/coldfire/sysdep.h2
-rw-r--r--sysdeps/m68k/crti.S2
-rw-r--r--sysdeps/m68k/crtn.S2
-rw-r--r--sysdeps/m68k/dl-machine.h2
-rw-r--r--sysdeps/m68k/dl-tls.h7
-rw-r--r--sysdeps/m68k/dl-trampoline.S2
-rw-r--r--sysdeps/m68k/elf-initfini.h2
-rw-r--r--sysdeps/m68k/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/m68k/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/m68k/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/m68k/fpu/fegetenv.c2
-rw-r--r--sysdeps/m68k/fpu/fegetexcept.c2
-rw-r--r--sysdeps/m68k/fpu/fegetmode.c2
-rw-r--r--sysdeps/m68k/fpu/fegetround.c2
-rw-r--r--sysdeps/m68k/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/m68k/fpu/fesetenv.c2
-rw-r--r--sysdeps/m68k/fpu/fesetexcept.c2
-rw-r--r--sysdeps/m68k/fpu/fesetmode.c2
-rw-r--r--sysdeps/m68k/fpu/fesetround.c2
-rw-r--r--sysdeps/m68k/fpu/feupdateenv.c2
-rw-r--r--sysdeps/m68k/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/m68k/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/m68k/fpu/ftestexcept.c2
-rw-r--r--sysdeps/m68k/fpu_control.h2
-rw-r--r--sysdeps/m68k/gccframe.h2
-rw-r--r--sysdeps/m68k/jmpbuf-unwind.h2
-rw-r--r--sysdeps/m68k/ldsodefs.h2
-rw-r--r--sysdeps/m68k/libc-tls.c4
-rw-r--r--sysdeps/m68k/m680x0/add_n.S2
-rw-r--r--sysdeps/m68k/m680x0/bits/flt-eval-method.h2
-rw-r--r--sysdeps/m68k/m680x0/bits/fp-logb.h2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_acos.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atan2.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_fmod.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_ilogb.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_pow.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_scalb.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/libm-test-ulps1289
-rw-r--r--sysdeps/m68k/m680x0/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/m68k/m680x0/fpu/math-barriers.h2
-rw-r--r--sysdeps/m68k/m680x0/fpu/math_err.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/math_errf.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/mathimpl.h2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_atan_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccosh_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ceil_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cexp_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cos_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csin_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinh_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fabs_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_floor_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexp_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexpl.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isinf.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrint.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintf.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintl.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_log1p.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_lrint_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_modf_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_remquo_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rint_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbn.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_significand.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sin_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincos_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tan_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanh_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_trunc_template.c2
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_log1pf.c (renamed from sysdeps/nios2/bits/wordsize.h)9
-rw-r--r--sysdeps/m68k/m680x0/lshift.S2
-rw-r--r--sysdeps/m68k/m680x0/m68020/addmul_1.S2
-rw-r--r--sysdeps/m68k/m680x0/m68020/atomic-machine.h2
-rw-r--r--sysdeps/m68k/m680x0/m68020/mul_1.S2
-rw-r--r--sysdeps/m68k/m680x0/m68020/submul_1.S2
-rw-r--r--sysdeps/m68k/m680x0/rshift.S2
-rw-r--r--sysdeps/m68k/m680x0/sub_n.S2
-rw-r--r--sysdeps/m68k/m680x0/sysdep.h2
-rw-r--r--sysdeps/m68k/m680x0/unwind-arch.h2
-rw-r--r--sysdeps/m68k/m680x0/w_ilogb.c2
-rw-r--r--sysdeps/m68k/m680x0/w_ilogbf.c2
-rw-r--r--sysdeps/m68k/m680x0/w_llogb.c2
-rw-r--r--sysdeps/m68k/m680x0/w_llogbf.c2
-rw-r--r--sysdeps/m68k/memchr.S2
-rw-r--r--sysdeps/m68k/memcopy.h2
-rw-r--r--sysdeps/m68k/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/m68k/nptl/bits/semaphore.h2
-rw-r--r--sysdeps/m68k/nptl/pthreaddef.h2
-rw-r--r--sysdeps/m68k/nptl/tls.h2
-rw-r--r--sysdeps/m68k/rawmemchr.S2
-rw-r--r--sysdeps/m68k/setjmp.c2
-rw-r--r--sysdeps/m68k/sotruss-lib.c2
-rw-r--r--sysdeps/m68k/stackinfo.h2
-rw-r--r--sysdeps/m68k/start.S2
-rw-r--r--sysdeps/m68k/strchr.S2
-rw-r--r--sysdeps/m68k/strchrnul.S2
-rw-r--r--sysdeps/m68k/symbol-hacks.h2
-rw-r--r--sysdeps/m68k/sys/ucontext.h2
-rw-r--r--sysdeps/m68k/sysdep.h2
-rw-r--r--sysdeps/m68k/thread_pointer.h (renamed from sysdeps/riscv/rvf/s_copysignf.c)21
-rw-r--r--sysdeps/m68k/tst-audit.h2
-rw-r--r--sysdeps/m68k/unwind-arch.h2
-rw-r--r--sysdeps/m68k/wcpcpy_chk.c2
-rw-r--r--sysdeps/m68k/wordcopy.c2
-rw-r--r--sysdeps/mach/Makefile2
-rw-r--r--sysdeps/mach/_strerror.c2
-rw-r--r--sysdeps/mach/adjtime.c2
-rw-r--r--sysdeps/mach/clock_gettime.c46
-rw-r--r--sysdeps/mach/clock_nanosleep.c13
-rw-r--r--sysdeps/mach/configure63
-rw-r--r--sysdeps/mach/configure.ac7
-rw-r--r--sysdeps/mach/getloadavg.c2
-rw-r--r--sysdeps/mach/getpagesize.c2
-rw-r--r--sysdeps/mach/getsysstats.c2
-rw-r--r--sysdeps/mach/htl/bits/spin-lock-inline.h2
-rw-r--r--sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h2
-rw-r--r--sysdeps/mach/htl/pt-block.c3
-rw-r--r--sysdeps/mach/htl/pt-getname-np.c2
-rw-r--r--sysdeps/mach/htl/pt-setname-np.c2
-rw-r--r--sysdeps/mach/htl/pt-spin.c2
-rw-r--r--sysdeps/mach/htl/pt-stack-alloc.c2
-rw-r--r--sysdeps/mach/htl/pt-thread-alloc.c2
-rw-r--r--sysdeps/mach/htl/pt-thread-start.c2
-rw-r--r--sysdeps/mach/htl/pt-thread-terminate.c2
-rw-r--r--sysdeps/mach/htl/pt-timedblock.c3
-rw-r--r--sysdeps/mach/htl/pt-wakeup.c3
-rw-r--r--sysdeps/mach/htl/thrd_yield.c2
-rw-r--r--sysdeps/mach/hurd/Makefile33
-rw-r--r--sysdeps/mach/hurd/_Fork.c2
-rw-r--r--sysdeps/mach/hurd/_exit.c2
-rw-r--r--sysdeps/mach/hurd/accept.c2
-rw-r--r--sysdeps/mach/hurd/accept4.c2
-rw-r--r--sysdeps/mach/hurd/access.c2
-rw-r--r--sysdeps/mach/hurd/adjtime.c2
-rw-r--r--sysdeps/mach/hurd/arch-fd_to_filename.h2
-rw-r--r--sysdeps/mach/hurd/bind.c12
-rw-r--r--sysdeps/mach/hurd/bits/fcntl.h2
-rw-r--r--sysdeps/mach/hurd/bits/ioctls.h33
-rw-r--r--sysdeps/mach/hurd/bits/local_lim.h2
-rw-r--r--sysdeps/mach/hurd/bits/mman_ext.h3
-rw-r--r--sysdeps/mach/hurd/bits/param.h2
-rw-r--r--sysdeps/mach/hurd/bits/posix_opt.h4
-rw-r--r--sysdeps/mach/hurd/bits/signum-arch.h2
-rw-r--r--sysdeps/mach/hurd/bits/socket.h14
-rw-r--r--sysdeps/mach/hurd/bits/stat.h2
-rw-r--r--sysdeps/mach/hurd/bits/statfs.h2
-rw-r--r--sysdeps/mach/hurd/bits/statvfs.h2
-rw-r--r--sysdeps/mach/hurd/bits/stdio_lim.h2
-rw-r--r--sysdeps/mach/hurd/bits/sysmacros.h2
-rw-r--r--sysdeps/mach/hurd/bits/timesize.h2
-rw-r--r--sysdeps/mach/hurd/bits/types/error_t.h2
-rw-r--r--sysdeps/mach/hurd/bits/types/struct_flock.h2
-rw-r--r--sysdeps/mach/hurd/bits/typesizes.h2
-rw-r--r--sysdeps/mach/hurd/bits/unistd_ext.h2
-rw-r--r--sysdeps/mach/hurd/brk.c2
-rw-r--r--sysdeps/mach/hurd/chdir.c2
-rw-r--r--sysdeps/mach/hurd/check_fds.c2
-rw-r--r--sysdeps/mach/hurd/chflags.c2
-rw-r--r--sysdeps/mach/hurd/chmod.c2
-rw-r--r--sysdeps/mach/hurd/chown.c2
-rw-r--r--sysdeps/mach/hurd/chroot.c2
-rw-r--r--sysdeps/mach/hurd/clock.c2
-rw-r--r--sysdeps/mach/hurd/clock_settime.c2
-rw-r--r--sysdeps/mach/hurd/close.c2
-rw-r--r--sysdeps/mach/hurd/close_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/close_nocancel_nostatus.c2
-rw-r--r--sysdeps/mach/hurd/close_range.c2
-rw-r--r--sysdeps/mach/hurd/closedir.c2
-rw-r--r--sysdeps/mach/hurd/connect.c2
-rw-r--r--sysdeps/mach/hurd/cthreads.c2
-rw-r--r--sysdeps/mach/hurd/device-nrs.h2
-rw-r--r--sysdeps/mach/hurd/dirfd.c2
-rw-r--r--sysdeps/mach/hurd/dirstream.h2
-rw-r--r--sysdeps/mach/hurd/dl-execstack.c8
-rw-r--r--sysdeps/mach/hurd/dl-execve.h2
-rw-r--r--sysdeps/mach/hurd/dl-fcntl.h2
-rw-r--r--sysdeps/mach/hurd/dl-mman.h2
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c7
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.h2
-rw-r--r--sysdeps/mach/hurd/dl-unistd.h2
-rw-r--r--sysdeps/mach/hurd/dup2.c2
-rw-r--r--sysdeps/mach/hurd/dup3.c64
-rw-r--r--sysdeps/mach/hurd/err_map.h2
-rw-r--r--sysdeps/mach/hurd/errname.c2
-rw-r--r--sysdeps/mach/hurd/errno-loc.c2
-rw-r--r--sysdeps/mach/hurd/errnos.awk2
-rw-r--r--sysdeps/mach/hurd/euidaccess.c2
-rw-r--r--sysdeps/mach/hurd/execve.c2
-rw-r--r--sysdeps/mach/hurd/execveat.c2
-rw-r--r--sysdeps/mach/hurd/f_setlk.c2
-rw-r--r--sysdeps/mach/hurd/f_setlk.h2
-rw-r--r--sysdeps/mach/hurd/faccessat.c11
-rw-r--r--sysdeps/mach/hurd/fchdir.c2
-rw-r--r--sysdeps/mach/hurd/fchflags.c2
-rw-r--r--sysdeps/mach/hurd/fchmod.c2
-rw-r--r--sysdeps/mach/hurd/fchmodat.c2
-rw-r--r--sysdeps/mach/hurd/fchown.c2
-rw-r--r--sysdeps/mach/hurd/fchownat.c2
-rw-r--r--sysdeps/mach/hurd/fcntl.c61
-rw-r--r--sysdeps/mach/hurd/fdatasync.c2
-rw-r--r--sysdeps/mach/hurd/fdopendir.c2
-rw-r--r--sysdeps/mach/hurd/fexecve.c4
-rw-r--r--sysdeps/mach/hurd/fgetxattr.c2
-rw-r--r--sysdeps/mach/hurd/flistxattr.c2
-rw-r--r--sysdeps/mach/hurd/flock.c2
-rw-r--r--sysdeps/mach/hurd/fpathconf.c2
-rw-r--r--sysdeps/mach/hurd/fremovexattr.c2
-rw-r--r--sysdeps/mach/hurd/fsetxattr.c2
-rw-r--r--sysdeps/mach/hurd/fstat.c2
-rw-r--r--sysdeps/mach/hurd/fstat64.c2
-rw-r--r--sysdeps/mach/hurd/fstatat.c2
-rw-r--r--sysdeps/mach/hurd/fstatat64.c2
-rw-r--r--sysdeps/mach/hurd/fstatat_common.h2
-rw-r--r--sysdeps/mach/hurd/fstatfs.c2
-rw-r--r--sysdeps/mach/hurd/fstatfs64.c2
-rw-r--r--sysdeps/mach/hurd/fstatvfs.c2
-rw-r--r--sysdeps/mach/hurd/fstatvfs64.c2
-rw-r--r--sysdeps/mach/hurd/fsync.c2
-rw-r--r--sysdeps/mach/hurd/ftruncate.c2
-rw-r--r--sysdeps/mach/hurd/ftruncate64.c2
-rw-r--r--sysdeps/mach/hurd/futimens.c10
-rw-r--r--sysdeps/mach/hurd/futimes.c10
-rw-r--r--sysdeps/mach/hurd/futimesat.c2
-rw-r--r--sysdeps/mach/hurd/fxstat.c2
-rw-r--r--sysdeps/mach/hurd/fxstat64.c2
-rw-r--r--sysdeps/mach/hurd/fxstatat.c2
-rw-r--r--sysdeps/mach/hurd/fxstatat64.c2
-rw-r--r--sysdeps/mach/hurd/gai_misc.h10
-rw-r--r--sysdeps/mach/hurd/getclktck.c2
-rw-r--r--sysdeps/mach/hurd/getcwd.c2
-rw-r--r--sysdeps/mach/hurd/getcwd.h2
-rw-r--r--sysdeps/mach/hurd/getdomain.c2
-rw-r--r--sysdeps/mach/hurd/getdtsz.c2
-rw-r--r--sysdeps/mach/hurd/getegid.c2
-rw-r--r--sysdeps/mach/hurd/getentropy.c2
-rw-r--r--sysdeps/mach/hurd/geteuid.c2
-rw-r--r--sysdeps/mach/hurd/getgid.c2
-rw-r--r--sysdeps/mach/hurd/getgroups.c2
-rw-r--r--sysdeps/mach/hurd/gethostid.c2
-rw-r--r--sysdeps/mach/hurd/gethostname.c2
-rw-r--r--sysdeps/mach/hurd/getitimer.c2
-rw-r--r--sysdeps/mach/hurd/getlogin.c4
-rw-r--r--sysdeps/mach/hurd/getlogin_r.c2
-rw-r--r--sysdeps/mach/hurd/getpeername.c2
-rw-r--r--sysdeps/mach/hurd/getpgid.c2
-rw-r--r--sysdeps/mach/hurd/getpid.c2
-rw-r--r--sysdeps/mach/hurd/getppid.c2
-rw-r--r--sysdeps/mach/hurd/getpriority.c2
-rw-r--r--sysdeps/mach/hurd/getrandom-internal.h (renamed from sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S)17
-rw-r--r--sysdeps/mach/hurd/getrandom.c2
-rw-r--r--sysdeps/mach/hurd/getresgid.c2
-rw-r--r--sysdeps/mach/hurd/getresuid.c2
-rw-r--r--sysdeps/mach/hurd/getrlimit.c2
-rw-r--r--sysdeps/mach/hurd/getrusage.c2
-rw-r--r--sysdeps/mach/hurd/getsid.c2
-rw-r--r--sysdeps/mach/hurd/getsockname.c2
-rw-r--r--sysdeps/mach/hurd/getsockopt.c2
-rw-r--r--sysdeps/mach/hurd/getuid.c2
-rw-r--r--sysdeps/mach/hurd/getxattr.c2
-rw-r--r--sysdeps/mach/hurd/group_member.c2
-rw-r--r--sysdeps/mach/hurd/hp-timing.h2
-rw-r--r--sysdeps/mach/hurd/htl/bits/pthread-np.h2
-rw-r--r--sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h2
-rw-r--r--sysdeps/mach/hurd/htl/pt-docancel.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-checklocked.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-consistent.c18
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-destroy.c10
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c12
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-init.c10
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-lock.c14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c12
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-timedlock.c8
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c3
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-trylock.c14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-unlock.c14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex.h4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c12
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c13
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c13
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c15
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c13
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-init.c3
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c12
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c13
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c15
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-settype.c10
-rw-r--r--sysdeps/mach/hurd/htl/pt-pthread_self.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate-destroy.c3
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate-init.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate.c58
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.h2
-rw-r--r--sysdeps/mach/hurd/i386/____longjmp_chk.S2
-rw-r--r--sysdeps/mach/hurd/i386/__longjmp.S2
-rw-r--r--sysdeps/mach/hurd/i386/bits/ipc-perm.h2
-rw-r--r--sysdeps/mach/hurd/i386/bits/sigcontext.h4
-rw-r--r--sysdeps/mach/hurd/i386/bits/types/struct_flock.h2
-rw-r--r--sysdeps/mach/hurd/i386/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/mach/hurd/i386/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/mach/hurd/i386/dl-tls-initialized.c2
-rw-r--r--sysdeps/mach/hurd/i386/getcontext.S2
-rw-r--r--sysdeps/mach/hurd/i386/htl/bits/types/__pthread_t.h2
-rw-r--r--sysdeps/mach/hurd/i386/htl/bits/types/__thrd_t.h2
-rw-r--r--sysdeps/mach/hurd/i386/htl/pt-machdep.c2
-rw-r--r--sysdeps/mach/hurd/i386/htl/pt-setup.c2
-rw-r--r--sysdeps/mach/hurd/i386/intr-msg.h2
-rw-r--r--sysdeps/mach/hurd/i386/libc.abilist151
-rw-r--r--sysdeps/mach/hurd/i386/libm.abilist96
-rw-r--r--sysdeps/mach/hurd/i386/libpthread.abilist83
-rw-r--r--sysdeps/mach/hurd/i386/longjmp-ts.c2
-rw-r--r--sysdeps/mach/hurd/i386/makecontext.S2
-rw-r--r--sysdeps/mach/hurd/i386/setcontext.S2
-rw-r--r--sysdeps/mach/hurd/i386/sigcontextinfo.h2
-rw-r--r--sysdeps/mach/hurd/i386/sigreturn.c109
-rw-r--r--sysdeps/mach/hurd/i386/static-start.S2
-rw-r--r--sysdeps/mach/hurd/i386/swapcontext.S2
-rw-r--r--sysdeps/mach/hurd/i386/tls.h2
-rw-r--r--sysdeps/mach/hurd/i386/vm_param.h2
-rw-r--r--sysdeps/mach/hurd/if_index.c2
-rw-r--r--sysdeps/mach/hurd/ifreq.c2
-rw-r--r--sysdeps/mach/hurd/ifreq.h2
-rw-r--r--sysdeps/mach/hurd/init-first.c4
-rw-r--r--sysdeps/mach/hurd/ioctl.c2
-rw-r--r--sysdeps/mach/hurd/isatty.c2
-rw-r--r--sysdeps/mach/hurd/jmp-unwind.c2
-rw-r--r--sysdeps/mach/hurd/kernel-features.h2
-rw-r--r--sysdeps/mach/hurd/kill.c12
-rw-r--r--sysdeps/mach/hurd/lchmod.c2
-rw-r--r--sysdeps/mach/hurd/lchown.c2
-rw-r--r--sysdeps/mach/hurd/lgetxattr.c2
-rw-r--r--sysdeps/mach/hurd/libc_sigaction.c2
-rw-r--r--sysdeps/mach/hurd/link.c2
-rw-r--r--sysdeps/mach/hurd/linkat.c8
-rw-r--r--sysdeps/mach/hurd/linkat_common.h2
-rw-r--r--sysdeps/mach/hurd/listen.c2
-rw-r--r--sysdeps/mach/hurd/listxattr.c2
-rw-r--r--sysdeps/mach/hurd/llistxattr.c2
-rw-r--r--sysdeps/mach/hurd/lremovexattr.c2
-rw-r--r--sysdeps/mach/hurd/lseek.c2
-rw-r--r--sysdeps/mach/hurd/lseek64.c2
-rw-r--r--sysdeps/mach/hurd/lsetxattr.c2
-rw-r--r--sysdeps/mach/hurd/lstat.c2
-rw-r--r--sysdeps/mach/hurd/lstat64.c2
-rw-r--r--sysdeps/mach/hurd/lutimes.c2
-rw-r--r--sysdeps/mach/hurd/lxstat.c2
-rw-r--r--sysdeps/mach/hurd/lxstat64.c2
-rw-r--r--sysdeps/mach/hurd/malloc-machine.h2
-rw-r--r--sysdeps/mach/hurd/mig-reply.c2
-rw-r--r--sysdeps/mach/hurd/min-eloop-threshold.h (renamed from sysdeps/mach/hurd/eloop-threshold.h)16
-rw-r--r--sysdeps/mach/hurd/mkdir.c2
-rw-r--r--sysdeps/mach/hurd/mkdirat.c2
-rw-r--r--sysdeps/mach/hurd/mknodat.c10
-rw-r--r--sysdeps/mach/hurd/mlock.c2
-rw-r--r--sysdeps/mach/hurd/mlockall.c2
-rw-r--r--sysdeps/mach/hurd/mmap.c2
-rw-r--r--sysdeps/mach/hurd/mmap64.c2
-rw-r--r--sysdeps/mach/hurd/mremap.c2
-rw-r--r--sysdeps/mach/hurd/msync.c2
-rw-r--r--sysdeps/mach/hurd/munlock.c2
-rw-r--r--sysdeps/mach/hurd/munlockall.c2
-rw-r--r--sysdeps/mach/hurd/net/ethernet.h2
-rw-r--r--sysdeps/mach/hurd/net/if_arp.h2
-rw-r--r--sysdeps/mach/hurd/net/if_ether.h2
-rw-r--r--sysdeps/mach/hurd/net/route.h2
-rw-r--r--sysdeps/mach/hurd/not-cancel.h6
-rw-r--r--sysdeps/mach/hurd/open.c2
-rw-r--r--sysdeps/mach/hurd/open_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/openat.c2
-rw-r--r--sysdeps/mach/hurd/openat_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/opendir.c2
-rw-r--r--sysdeps/mach/hurd/pathconf.c2
-rw-r--r--sysdeps/mach/hurd/pipe.c2
-rw-r--r--sysdeps/mach/hurd/pipe2.c2
-rw-r--r--sysdeps/mach/hurd/poll.c2
-rw-r--r--sysdeps/mach/hurd/ppoll.c2
-rw-r--r--sysdeps/mach/hurd/pread.c2
-rw-r--r--sysdeps/mach/hurd/pread64.c2
-rw-r--r--sysdeps/mach/hurd/pread64_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/profil.c2
-rw-r--r--sysdeps/mach/hurd/pselect.c2
-rw-r--r--sysdeps/mach/hurd/ptrace.c2
-rw-r--r--sysdeps/mach/hurd/ptsname.c2
-rw-r--r--sysdeps/mach/hurd/pwrite.c2
-rw-r--r--sysdeps/mach/hurd/pwrite64.c2
-rw-r--r--sysdeps/mach/hurd/pwrite64_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/read.c2
-rw-r--r--sysdeps/mach/hurd/read_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/readdir.c2
-rw-r--r--sysdeps/mach/hurd/readdir64.c2
-rw-r--r--sysdeps/mach/hurd/readdir64_r.c2
-rw-r--r--sysdeps/mach/hurd/readdir_r.c2
-rw-r--r--sysdeps/mach/hurd/readlink.c2
-rw-r--r--sysdeps/mach/hurd/readlinkat.c4
-rw-r--r--sysdeps/mach/hurd/reboot.c2
-rw-r--r--sysdeps/mach/hurd/recv.c2
-rw-r--r--sysdeps/mach/hurd/recvfrom.c2
-rw-r--r--sysdeps/mach/hurd/recvmsg.c2
-rw-r--r--sysdeps/mach/hurd/removexattr.c2
-rw-r--r--sysdeps/mach/hurd/rename.c2
-rw-r--r--sysdeps/mach/hurd/renameat.c2
-rw-r--r--sysdeps/mach/hurd/renameat2.c21
-rw-r--r--sysdeps/mach/hurd/res_enable_icmp.c2
-rw-r--r--sysdeps/mach/hurd/revoke.c2
-rw-r--r--sysdeps/mach/hurd/rewinddir.c2
-rw-r--r--sysdeps/mach/hurd/rmdir.c2
-rw-r--r--sysdeps/mach/hurd/sbrk.c2
-rw-r--r--sysdeps/mach/hurd/sched_gets.c2
-rw-r--r--sysdeps/mach/hurd/sched_sets.c2
-rw-r--r--sysdeps/mach/hurd/seekdir.c2
-rw-r--r--sysdeps/mach/hurd/select.c2
-rw-r--r--sysdeps/mach/hurd/send.c2
-rw-r--r--sysdeps/mach/hurd/sendfile.c2
-rw-r--r--sysdeps/mach/hurd/sendfile64.c2
-rw-r--r--sysdeps/mach/hurd/sendmsg.c2
-rw-r--r--sysdeps/mach/hurd/sendto.c2
-rw-r--r--sysdeps/mach/hurd/setdomain.c2
-rw-r--r--sysdeps/mach/hurd/setegid.c2
-rw-r--r--sysdeps/mach/hurd/seteuid.c2
-rw-r--r--sysdeps/mach/hurd/setgid.c2
-rw-r--r--sysdeps/mach/hurd/setgroups.c2
-rw-r--r--sysdeps/mach/hurd/sethostid.c2
-rw-r--r--sysdeps/mach/hurd/sethostname.c2
-rw-r--r--sysdeps/mach/hurd/setitimer.c2
-rw-r--r--sysdeps/mach/hurd/setlogin.c2
-rw-r--r--sysdeps/mach/hurd/setpgid.c2
-rw-r--r--sysdeps/mach/hurd/setpriority.c2
-rw-r--r--sysdeps/mach/hurd/setregid.c2
-rw-r--r--sysdeps/mach/hurd/setresgid.c2
-rw-r--r--sysdeps/mach/hurd/setresuid.c2
-rw-r--r--sysdeps/mach/hurd/setreuid.c2
-rw-r--r--sysdeps/mach/hurd/setrlimit.c2
-rw-r--r--sysdeps/mach/hurd/setsid.c2
-rw-r--r--sysdeps/mach/hurd/setsockopt.c2
-rw-r--r--sysdeps/mach/hurd/setuid.c2
-rw-r--r--sysdeps/mach/hurd/setxattr.c2
-rw-r--r--sysdeps/mach/hurd/shutdown.c7
-rw-r--r--sysdeps/mach/hurd/sigaltstack.c2
-rw-r--r--sysdeps/mach/hurd/siglist-compat.h2
-rw-r--r--sysdeps/mach/hurd/sigpending.c2
-rw-r--r--sysdeps/mach/hurd/sigprocmask.c53
-rw-r--r--sysdeps/mach/hurd/sigstack.c2
-rw-r--r--sysdeps/mach/hurd/sigsuspend.c2
-rw-r--r--sysdeps/mach/hurd/sigthreadmask.c86
-rw-r--r--sysdeps/mach/hurd/sigtimedwait.c2
-rw-r--r--sysdeps/mach/hurd/sigwait.c2
-rw-r--r--sysdeps/mach/hurd/sigwaitinfo.c2
-rw-r--r--sysdeps/mach/hurd/socket.c2
-rw-r--r--sysdeps/mach/hurd/socketpair.c2
-rw-r--r--sysdeps/mach/hurd/spawn_int_def.h2
-rw-r--r--sysdeps/mach/hurd/spawni.c30
-rw-r--r--sysdeps/mach/hurd/stat.c2
-rw-r--r--sysdeps/mach/hurd/stat64.c2
-rw-r--r--sysdeps/mach/hurd/statconv.c2
-rw-r--r--sysdeps/mach/hurd/statfs.c2
-rw-r--r--sysdeps/mach/hurd/statfs64.c2
-rw-r--r--sysdeps/mach/hurd/statfsconv.c2
-rw-r--r--sysdeps/mach/hurd/statvfs.c2
-rw-r--r--sysdeps/mach/hurd/statvfs64.c2
-rw-r--r--sysdeps/mach/hurd/symlink.c2
-rw-r--r--sysdeps/mach/hurd/symlinkat.c10
-rw-r--r--sysdeps/mach/hurd/sync.c2
-rw-r--r--sysdeps/mach/hurd/syncfs.c2
-rw-r--r--sysdeps/mach/hurd/sysconf.c6
-rw-r--r--sysdeps/mach/hurd/telldir.c2
-rw-r--r--sysdeps/mach/hurd/times.c2
-rw-r--r--sysdeps/mach/hurd/tls.h2
-rw-r--r--sysdeps/mach/hurd/tmpfile.c2
-rw-r--r--sysdeps/mach/hurd/truncate.c2
-rw-r--r--sysdeps/mach/hurd/truncate64.c2
-rw-r--r--sysdeps/mach/hurd/ttyname.c5
-rw-r--r--sysdeps/mach/hurd/ttyname_r.c5
-rw-r--r--sysdeps/mach/hurd/umask.c2
-rw-r--r--sysdeps/mach/hurd/uname.c2
-rw-r--r--sysdeps/mach/hurd/unlink.c2
-rw-r--r--sysdeps/mach/hurd/unlinkat.c2
-rw-r--r--sysdeps/mach/hurd/utime-helper.c64
-rw-r--r--sysdeps/mach/hurd/utimensat.c18
-rw-r--r--sysdeps/mach/hurd/utimes.c2
-rw-r--r--sysdeps/mach/hurd/wait4.c2
-rw-r--r--sysdeps/mach/hurd/wait4_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/waitid.c2
-rw-r--r--sysdeps/mach/hurd/write.c2
-rw-r--r--sysdeps/mach/hurd/write_nocancel.c2
-rw-r--r--sysdeps/mach/hurd/writev_nocancel_nostatus.c2
-rw-r--r--sysdeps/mach/hurd/x86/dl-sysdep.c2
-rw-r--r--sysdeps/mach/hurd/x86/exc2signal.c2
-rw-r--r--sysdeps/mach/hurd/x86/ioperm.c2
-rw-r--r--sysdeps/mach/hurd/x86/set-hooks-arch.h2
-rw-r--r--sysdeps/mach/hurd/x86/sys/io.h2
-rw-r--r--sysdeps/mach/hurd/x86/trampoline.c107
-rw-r--r--sysdeps/mach/hurd/x86_64/____longjmp_chk.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/__longjmp.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/__start_context.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/bits/sigcontext.h4
-rw-r--r--sysdeps/mach/hurd/x86_64/dl-tls-initialized.c2
-rw-r--r--sysdeps/mach/hurd/x86_64/getcontext.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/htl/pt-machdep.c2
-rw-r--r--sysdeps/mach/hurd/x86_64/htl/pt-setup.c2
-rw-r--r--sysdeps/mach/hurd/x86_64/intr-msg.h2
-rw-r--r--sysdeps/mach/hurd/x86_64/libc.abilist131
-rw-r--r--sysdeps/mach/hurd/x86_64/libm.abilist96
-rw-r--r--sysdeps/mach/hurd/x86_64/libpthread.abilist83
-rw-r--r--sysdeps/mach/hurd/x86_64/longjmp-ts.c2
-rw-r--r--sysdeps/mach/hurd/x86_64/makecontext.c2
-rw-r--r--sysdeps/mach/hurd/x86_64/setcontext.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/sigreturn.c100
-rw-r--r--sysdeps/mach/hurd/x86_64/static-start.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/swapcontext.S2
-rw-r--r--sysdeps/mach/hurd/x86_64/tls.h2
-rw-r--r--sysdeps/mach/hurd/x86_64/vm_param.h4
-rw-r--r--sysdeps/mach/hurd/xmknod.c2
-rw-r--r--sysdeps/mach/hurd/xmknodat.c2
-rw-r--r--sysdeps/mach/hurd/xstat.c2
-rw-r--r--sysdeps/mach/hurd/xstat64.c2
-rw-r--r--sysdeps/mach/i386/syscall.S2
-rw-r--r--sysdeps/mach/libc-lock.h2
-rw-r--r--sysdeps/mach/mach_rpc.h2
-rw-r--r--sysdeps/mach/mprotect.c5
-rw-r--r--sysdeps/mach/msync.c2
-rw-r--r--sysdeps/mach/munmap.c2
-rw-r--r--sysdeps/mach/pagecopy.h2
-rw-r--r--sysdeps/mach/readonly-area-fallback.c (renamed from sysdeps/mach/readonly-area.c)13
-rw-r--r--sysdeps/mach/sched_yield.c2
-rw-r--r--sysdeps/mach/sleep.c5
-rw-r--r--sysdeps/mach/strerror_l.c2
-rw-r--r--sysdeps/mach/sysdep.h7
-rw-r--r--sysdeps/mach/thread_state.h2
-rw-r--r--sysdeps/mach/usleep.c2
-rw-r--r--sysdeps/mach/x86/bits/mach/param.h2
-rw-r--r--sysdeps/mach/x86/machine-lock.h2
-rw-r--r--sysdeps/mach/x86/sysdep.h26
-rw-r--r--sysdeps/mach/x86/thread_state.h2
-rw-r--r--sysdeps/mach/xpg-strerror.c16
-rw-r--r--sysdeps/microblaze/__longjmp.S2
-rw-r--r--sysdeps/microblaze/_mcount.S2
-rw-r--r--sysdeps/microblaze/asm-syntax.h2
-rw-r--r--sysdeps/microblaze/atomic-machine.h2
-rw-r--r--sysdeps/microblaze/backtrace.c2
-rw-r--r--sysdeps/microblaze/backtrace_linux.c2
-rw-r--r--sysdeps/microblaze/bits/fenv.h2
-rw-r--r--sysdeps/microblaze/bits/link.h2
-rw-r--r--sysdeps/microblaze/bits/setjmp.h2
-rw-r--r--sysdeps/microblaze/bits/wordsize.h2
-rw-r--r--sysdeps/microblaze/bsd-_setjmp.S2
-rw-r--r--sysdeps/microblaze/bsd-setjmp.S2
-rw-r--r--sysdeps/microblaze/crti.S2
-rw-r--r--sysdeps/microblaze/crtn.S2
-rw-r--r--sysdeps/microblaze/dl-machine.h2
-rw-r--r--sysdeps/microblaze/dl-tls.h26
-rw-r--r--sysdeps/microblaze/dl-trampoline.S2
-rw-r--r--sysdeps/microblaze/elf-initfini.h2
-rw-r--r--sysdeps/microblaze/gccframe.h2
-rw-r--r--sysdeps/microblaze/jmpbuf-unwind.h2
-rw-r--r--sysdeps/microblaze/ldsodefs.h2
-rw-r--r--sysdeps/microblaze/libc-tls.c2
-rw-r--r--sysdeps/microblaze/libm-test-ulps274
-rw-r--r--sysdeps/microblaze/libm-test-ulps-name1
-rw-r--r--sysdeps/microblaze/machine-gmon.h2
-rw-r--r--sysdeps/microblaze/nptl/pthreaddef.h2
-rw-r--r--sysdeps/microblaze/nptl/tls.h2
-rw-r--r--sysdeps/microblaze/preconfigure113
-rw-r--r--sysdeps/microblaze/setjmp.S2
-rw-r--r--sysdeps/microblaze/sfp-machine.h52
-rw-r--r--sysdeps/microblaze/sotruss-lib.c2
-rw-r--r--sysdeps/microblaze/stackinfo.h2
-rw-r--r--sysdeps/microblaze/start.S2
-rw-r--r--sysdeps/microblaze/sysdep.h2
-rw-r--r--sysdeps/microblaze/thread_pointer.h30
-rw-r--r--sysdeps/microblaze/tst-audit.h2
-rw-r--r--sysdeps/microblaze/tst-file-align.h2
-rw-r--r--sysdeps/mips/__longjmp.c2
-rw-r--r--sysdeps/mips/add_n.S2
-rw-r--r--sysdeps/mips/addmul_1.S2
-rw-r--r--sysdeps/mips/atomic-machine.h2
-rw-r--r--sysdeps/mips/bits/dlfcn.h2
-rw-r--r--sysdeps/mips/bits/fenv.h2
-rw-r--r--sysdeps/mips/bits/ipctypes.h2
-rw-r--r--sysdeps/mips/bits/link.h2
-rw-r--r--sysdeps/mips/bits/setjmp.h2
-rw-r--r--sysdeps/mips/bits/wordsize.h2
-rw-r--r--sysdeps/mips/bsd-_setjmp.S2
-rw-r--r--sysdeps/mips/bsd-setjmp.S2
-rw-r--r--sysdeps/mips/dl-debug.h2
-rw-r--r--sysdeps/mips/dl-dtprocnum.h2
-rw-r--r--sysdeps/mips/dl-machine-reject-phdr.h2
-rw-r--r--sysdeps/mips/dl-machine-rel.h2
-rw-r--r--sysdeps/mips/dl-machine.h18
-rw-r--r--sysdeps/mips/dl-procinfo.c27
-rw-r--r--sysdeps/mips/dl-procinfo.h33
-rw-r--r--sysdeps/mips/dl-r_debug.h2
-rw-r--r--sysdeps/mips/dl-relocate-ld.h2
-rw-r--r--sysdeps/mips/dl-tls.h9
-rw-r--r--sysdeps/mips/dl-trampoline.c2
-rw-r--r--sysdeps/mips/elf-initfini.h2
-rw-r--r--sysdeps/mips/elf_machine_sym_no_match.h2
-rw-r--r--sysdeps/mips/fpregdef.h2
-rw-r--r--sysdeps/mips/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/mips/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/mips/fpu/fegetenv.c2
-rw-r--r--sysdeps/mips/fpu/fegetexcept.c2
-rw-r--r--sysdeps/mips/fpu/fegetmode.c2
-rw-r--r--sysdeps/mips/fpu/fegetround.c2
-rw-r--r--sysdeps/mips/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fenv_libc.h2
-rw-r--r--sysdeps/mips/fpu/fenv_private.h2
-rw-r--r--sysdeps/mips/fpu/fesetenv.c2
-rw-r--r--sysdeps/mips/fpu/fesetexcept.c2
-rw-r--r--sysdeps/mips/fpu/fesetmode.c2
-rw-r--r--sysdeps/mips/fpu/fesetround.c2
-rw-r--r--sysdeps/mips/fpu/feupdateenv.c2
-rw-r--r--sysdeps/mips/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/mips/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/mips/fpu/ftestexcept.c2
-rw-r--r--sysdeps/mips/fpu/math-use-builtins-fma.h2
-rw-r--r--sysdeps/mips/fpu_control.h2
-rw-r--r--sysdeps/mips/gccframe.h2
-rw-r--r--sysdeps/mips/ieee754/bits/floatn.h2
-rw-r--r--sysdeps/mips/ieee754/bits/long-double.h2
-rw-r--r--sysdeps/mips/ieee754/ieee754.h2
-rw-r--r--sysdeps/mips/include/sys/asm.h2
-rw-r--r--sysdeps/mips/jmpbuf-unwind.h2
-rw-r--r--sysdeps/mips/ldsodefs.h2
-rw-r--r--sysdeps/mips/libc-tls.c4
-rw-r--r--sysdeps/mips/lshift.S2
-rw-r--r--sysdeps/mips/machine-gmon.h2
-rw-r--r--sysdeps/mips/math-tests-snan-payload.h2
-rw-r--r--sysdeps/mips/memcpy.S2
-rw-r--r--sysdeps/mips/memset.S2
-rw-r--r--sysdeps/mips/mips32/crti.S2
-rw-r--r--sysdeps/mips/mips32/crtn.S2
-rw-r--r--sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/mips/mips32/fpu/fpucw-helpers.c2
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps1221
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps-name1
-rw-r--r--sysdeps/mips/mips64/__longjmp.c2
-rw-r--r--sysdeps/mips/mips64/add_n.S2
-rw-r--r--sysdeps/mips/mips64/addmul_1.S2
-rw-r--r--sysdeps/mips/mips64/bsd-_setjmp.S2
-rw-r--r--sysdeps/mips/mips64/bsd-setjmp.S2
-rw-r--r--sysdeps/mips/mips64/e_sqrtl.c2
-rw-r--r--sysdeps/mips/mips64/gmp-mparam.h2
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps1525
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps-name1
-rw-r--r--sysdeps/mips/mips64/lshift.S2
-rw-r--r--sysdeps/mips/mips64/mul_1.S2
-rw-r--r--sysdeps/mips/mips64/n32/crti.S2
-rw-r--r--sysdeps/mips/mips64/n32/crtn.S2
-rw-r--r--sysdeps/mips/mips64/n64/crti.S2
-rw-r--r--sysdeps/mips/mips64/n64/crtn.S2
-rw-r--r--sysdeps/mips/mips64/rshift.S2
-rw-r--r--sysdeps/mips/mips64/setjmp.S2
-rw-r--r--sysdeps/mips/mips64/setjmp_aux.c2
-rw-r--r--sysdeps/mips/mips64/sub_n.S2
-rw-r--r--sysdeps/mips/mips64/submul_1.S2
-rw-r--r--sysdeps/mips/mul_1.S2
-rw-r--r--sysdeps/mips/nan-high-order-bit.h2
-rw-r--r--sysdeps/mips/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/mips/nptl/bits/semaphore.h2
-rw-r--r--sysdeps/mips/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/mips/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/mips/nptl/pthreaddef.h2
-rw-r--r--sysdeps/mips/nptl/tls.h2
-rw-r--r--sysdeps/mips/regdef.h2
-rw-r--r--sysdeps/mips/rshift.S2
-rw-r--r--sysdeps/mips/setjmp.S2
-rw-r--r--sysdeps/mips/setjmp_aux.c2
-rw-r--r--sysdeps/mips/sgidefs.h2
-rw-r--r--sysdeps/mips/sotruss-lib.c2
-rw-r--r--sysdeps/mips/stackinfo.h2
-rw-r--r--sysdeps/mips/start.S2
-rw-r--r--sysdeps/mips/strcmp.S2
-rw-r--r--sysdeps/mips/sub_n.S2
-rw-r--r--sysdeps/mips/submul_1.S2
-rw-r--r--sysdeps/mips/sys/asm.h2
-rw-r--r--sysdeps/mips/sys/fpregdef.h2
-rw-r--r--sysdeps/mips/sys/regdef.h2
-rw-r--r--sysdeps/mips/sys/tas.h2
-rw-r--r--sysdeps/mips/sys/ucontext.h2
-rw-r--r--sysdeps/mips/tst-abi-fp32mod.c2
-rw-r--r--sysdeps/mips/tst-abi-fp64amod.c2
-rw-r--r--sysdeps/mips/tst-abi-fp64mod.c2
-rw-r--r--sysdeps/mips/tst-abi-fpxxmod.c2
-rw-r--r--sysdeps/mips/tst-abi-fpxxomod.c2
-rw-r--r--sysdeps/mips/tst-abi-interlink.c2
-rw-r--r--sysdeps/mips/tst-audit.h2
-rw-r--r--sysdeps/mips/tst-mode-switch-1.c2
-rw-r--r--sysdeps/mips/tst-mode-switch-2.c2
-rw-r--r--sysdeps/mips/tst-mode-switch-3.c2
-rw-r--r--sysdeps/mips/tst-undefined-weak-lib.S2
-rw-r--r--sysdeps/mips/tst-undefined-weak.c2
-rw-r--r--sysdeps/mips/unwind-arch.h2
-rw-r--r--sysdeps/nios2/Implies4
-rw-r--r--sysdeps/nios2/Subdirs1
-rw-r--r--sysdeps/nios2/Versions12
-rw-r--r--sysdeps/nios2/__longjmp.S81
-rw-r--r--sysdeps/nios2/abort-instr.h2
-rw-r--r--sysdeps/nios2/bits/endianness.h16
-rw-r--r--sysdeps/nios2/bits/fenv.h52
-rw-r--r--sysdeps/nios2/bits/link.h54
-rw-r--r--sysdeps/nios2/bits/setjmp.h30
-rw-r--r--sysdeps/nios2/bsd-_setjmp.S1
-rw-r--r--sysdeps/nios2/bsd-setjmp.S1
-rw-r--r--sysdeps/nios2/configure174
-rw-r--r--sysdeps/nios2/configure.ac15
-rw-r--r--sysdeps/nios2/crti.S98
-rw-r--r--sysdeps/nios2/crtn.S49
-rw-r--r--sysdeps/nios2/dl-init.c29
-rw-r--r--sysdeps/nios2/dl-machine.h307
-rw-r--r--sysdeps/nios2/dl-tls.h45
-rw-r--r--sysdeps/nios2/dl-trampoline.S79
-rw-r--r--sysdeps/nios2/gccframe.h21
-rw-r--r--sysdeps/nios2/jmpbuf-offsets.h47
-rw-r--r--sysdeps/nios2/jmpbuf-unwind.h37
-rw-r--r--sysdeps/nios2/ldbl-classify-compat.h8
-rw-r--r--sysdeps/nios2/ldsodefs.h43
-rw-r--r--sysdeps/nios2/libc-tls.c32
-rw-r--r--sysdeps/nios2/libm-test-ulps283
-rw-r--r--sysdeps/nios2/libm-test-ulps-name1
-rw-r--r--sysdeps/nios2/machine-gmon.h64
-rw-r--r--sysdeps/nios2/nptl/Makefile22
-rw-r--r--sysdeps/nios2/nptl/bits/pthreadtypes-arch.h37
-rw-r--r--sysdeps/nios2/nptl/pthreaddef.h32
-rw-r--r--sysdeps/nios2/nptl/tcb-offsets.sym13
-rw-r--r--sysdeps/nios2/nptl/tls.h149
-rw-r--r--sysdeps/nios2/preconfigure6
-rw-r--r--sysdeps/nios2/setjmp.S74
-rw-r--r--sysdeps/nios2/sfp-machine.h51
-rw-r--r--sysdeps/nios2/sotruss-lib.c51
-rw-r--r--sysdeps/nios2/stackguard-macros.h6
-rw-r--r--sysdeps/nios2/stackinfo.h33
-rw-r--r--sysdeps/nios2/start.S139
-rw-r--r--sysdeps/nios2/sysdep.h65
-rw-r--r--sysdeps/nios2/tst-audit.h23
-rw-r--r--sysdeps/nios2/utmp-size.h2
-rw-r--r--sysdeps/nptl/Makeconfig2
-rw-r--r--sysdeps/nptl/Makefile2
-rw-r--r--sysdeps/nptl/_Fork.c13
-rw-r--r--sysdeps/nptl/aio_misc.h4
-rw-r--r--sysdeps/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/nptl/bits/pthreadtypes.h2
-rw-r--r--sysdeps/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/nptl/bits/thread-shared-types.h7
-rw-r--r--sysdeps/nptl/cancellation-pc-check.h54
-rw-r--r--sysdeps/nptl/dl-mutex.c2
-rw-r--r--sysdeps/nptl/dl-thread_gscope_wait.c2
-rw-r--r--sysdeps/nptl/dl-tls_init_tp.c28
-rw-r--r--sysdeps/nptl/dl-tunables.list2
-rw-r--r--sysdeps/nptl/fork.h17
-rw-r--r--sysdeps/nptl/futex-internal.h2
-rw-r--r--sysdeps/nptl/gai_misc.h2
-rw-r--r--sysdeps/nptl/internaltypes.h2
-rw-r--r--sysdeps/nptl/jmp-unwind.c2
-rw-r--r--sysdeps/nptl/libc-lock.h2
-rw-r--r--sysdeps/nptl/libc-lockP.h2
-rw-r--r--sysdeps/nptl/libc_start_call_main.h2
-rw-r--r--sysdeps/nptl/lowlevellock-futex.h22
-rw-r--r--sysdeps/nptl/lowlevellock.h2
-rw-r--r--sysdeps/nptl/malloc-machine.h2
-rw-r--r--sysdeps/nptl/proc_service.h2
-rw-r--r--sysdeps/nptl/pthread.h9
-rw-r--r--sysdeps/nptl/pthreadP.h28
-rw-r--r--sysdeps/nptl/pthread_early_init.h2
-rw-r--r--sysdeps/nptl/pthread_mutex_backoff.h2
-rw-r--r--sysdeps/nptl/pthread_mutex_conf.h2
-rw-r--r--sysdeps/nptl/rseq-access.h56
-rw-r--r--sysdeps/nptl/setxid.h2
-rw-r--r--sysdeps/nptl/stdio-lock.h2
-rw-r--r--sysdeps/nptl/sys/procfs.h2
-rw-r--r--sysdeps/nptl/tcb-access.h2
-rw-r--r--sysdeps/nptl/thread_db.h2
-rw-r--r--sysdeps/nptl/timer_routines.h2
-rw-r--r--sysdeps/or1k/__longjmp.S2
-rw-r--r--sysdeps/or1k/atomic-machine.h2
-rw-r--r--sysdeps/or1k/bits/fenv.h4
-rw-r--r--sysdeps/or1k/bits/link.h2
-rw-r--r--sysdeps/or1k/bits/setjmp.h2
-rw-r--r--sysdeps/or1k/dl-machine.h2
-rw-r--r--sysdeps/or1k/dl-start.S2
-rw-r--r--sysdeps/or1k/dl-tls.h27
-rw-r--r--sysdeps/or1k/dl-trampoline.S2
-rw-r--r--sysdeps/or1k/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/or1k/fpu/fegetenv.c2
-rw-r--r--sysdeps/or1k/fpu/fegetmode.c2
-rw-r--r--sysdeps/or1k/fpu/fegetround.c2
-rw-r--r--sysdeps/or1k/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/or1k/fpu/fenv_private.h2
-rw-r--r--sysdeps/or1k/fpu/fesetenv.c2
-rw-r--r--sysdeps/or1k/fpu/fesetexcept.c2
-rw-r--r--sysdeps/or1k/fpu/fesetmode.c2
-rw-r--r--sysdeps/or1k/fpu/fesetround.c2
-rw-r--r--sysdeps/or1k/fpu/feupdateenv.c2
-rw-r--r--sysdeps/or1k/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/or1k/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/or1k/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/or1k/fpu/ftestexcept.c2
-rw-r--r--sysdeps/or1k/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/or1k/fpu/libm-test-ulps1131
-rw-r--r--sysdeps/or1k/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/or1k/fpu_control.h2
-rw-r--r--sysdeps/or1k/jmpbuf-offsets.h2
-rw-r--r--sysdeps/or1k/jmpbuf-unwind.h2
-rw-r--r--sysdeps/or1k/ldsodefs.h2
-rw-r--r--sysdeps/or1k/libc-tls.c2
-rw-r--r--sysdeps/or1k/machine-gmon.h2
-rw-r--r--sysdeps/or1k/math-tests-snan-payload.h2
-rw-r--r--sysdeps/or1k/math-tests-trap.h2
-rw-r--r--sysdeps/or1k/memusage.h2
-rw-r--r--sysdeps/or1k/nofpu/libm-test-ulps1129
-rw-r--r--sysdeps/or1k/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/or1k/nofpu/math-tests-exceptions.h2
-rw-r--r--sysdeps/or1k/nofpu/math-tests-rounding.h2
-rw-r--r--sysdeps/or1k/nptl/pthreaddef.h2
-rw-r--r--sysdeps/or1k/nptl/tls.h2
-rw-r--r--sysdeps/or1k/setjmp.S2
-rw-r--r--sysdeps/or1k/sfp-machine.h2
-rw-r--r--sysdeps/or1k/sotruss-lib.c2
-rw-r--r--sysdeps/or1k/stackinfo.h2
-rw-r--r--sysdeps/or1k/start.S2
-rw-r--r--sysdeps/or1k/sysdep.h2
-rw-r--r--sysdeps/or1k/thread_pointer.h30
-rw-r--r--sysdeps/or1k/tst-audit.h2
-rw-r--r--sysdeps/posix/alarm.c2
-rw-r--r--sysdeps/posix/clock.c2
-rw-r--r--sysdeps/posix/clock_getres.c2
-rw-r--r--sysdeps/posix/ctermid.c2
-rw-r--r--sysdeps/posix/cuserid.c2
-rw-r--r--sysdeps/posix/dl-fileid.h2
-rw-r--r--sysdeps/posix/dup.c2
-rw-r--r--sysdeps/posix/dup2.c2
-rw-r--r--sysdeps/posix/euidaccess.c2
-rw-r--r--sysdeps/posix/flock.c2
-rw-r--r--sysdeps/posix/fpathconf.c2
-rw-r--r--sysdeps/posix/gai_strerror.c2
-rw-r--r--sysdeps/posix/getcwd.c2
-rw-r--r--sysdeps/posix/getdtsz.c2
-rw-r--r--sysdeps/posix/gethostname.c2
-rw-r--r--sysdeps/posix/getpagesize.c2
-rw-r--r--sysdeps/posix/isatty.c2
-rw-r--r--sysdeps/posix/isfdtype.c2
-rw-r--r--sysdeps/posix/killpg.c2
-rw-r--r--sysdeps/posix/libc_fatal.c36
-rw-r--r--sysdeps/posix/mkfifo.c2
-rw-r--r--sysdeps/posix/mkfifoat.c2
-rw-r--r--sysdeps/posix/nice.c2
-rw-r--r--sysdeps/posix/open64.c2
-rw-r--r--sysdeps/posix/pathconf.c2
-rw-r--r--sysdeps/posix/pause.c2
-rw-r--r--sysdeps/posix/posix_fallocate.c2
-rw-r--r--sysdeps/posix/posix_fallocate64.c2
-rw-r--r--sysdeps/posix/pread.c2
-rw-r--r--sysdeps/posix/pread64.c2
-rw-r--r--sysdeps/posix/preadv.c2
-rw-r--r--sysdeps/posix/preadv2.c2
-rw-r--r--sysdeps/posix/preadv64.c2
-rw-r--r--sysdeps/posix/preadv64v2.c2
-rw-r--r--sysdeps/posix/preadv_common.c2
-rw-r--r--sysdeps/posix/profil.c8
-rw-r--r--sysdeps/posix/pwrite.c2
-rw-r--r--sysdeps/posix/pwrite64.c2
-rw-r--r--sysdeps/posix/pwritev.c2
-rw-r--r--sysdeps/posix/pwritev2.c2
-rw-r--r--sysdeps/posix/pwritev64.c2
-rw-r--r--sysdeps/posix/pwritev64v2.c2
-rw-r--r--sysdeps/posix/pwritev_common.c2
-rw-r--r--sysdeps/posix/raise.c2
-rw-r--r--sysdeps/posix/readv.c2
-rw-r--r--sysdeps/posix/remove.c2
-rw-r--r--sysdeps/posix/rename.c2
-rw-r--r--sysdeps/posix/sigblock.c2
-rw-r--r--sysdeps/posix/sigignore.c2
-rw-r--r--sysdeps/posix/sigintr.c2
-rw-r--r--sysdeps/posix/signal.c2
-rw-r--r--sysdeps/posix/sigpause.c2
-rw-r--r--sysdeps/posix/sigset.c2
-rw-r--r--sysdeps/posix/sigsetmask.c2
-rw-r--r--sysdeps/posix/sigsuspend.c2
-rw-r--r--sysdeps/posix/sigwait.c2
-rw-r--r--sysdeps/posix/sleep.c2
-rw-r--r--sysdeps/posix/sprofil.c2
-rw-r--r--sysdeps/posix/sysconf-pthread_stack_min.h2
-rw-r--r--sysdeps/posix/sysconf.c2
-rw-r--r--sysdeps/posix/system.c14
-rw-r--r--sysdeps/posix/sysv_signal.c2
-rw-r--r--sysdeps/posix/tempname.c4
-rw-r--r--sysdeps/posix/truncate.c2
-rw-r--r--sysdeps/posix/ttyname.c2
-rw-r--r--sysdeps/posix/ttyname_r.c2
-rw-r--r--sysdeps/posix/ulimit.c2
-rw-r--r--sysdeps/posix/usleep.c2
-rw-r--r--sysdeps/posix/utime.c2
-rw-r--r--sysdeps/posix/utimes.c2
-rw-r--r--sysdeps/posix/writev.c2
-rw-r--r--sysdeps/powerpc/Makefile5
-rw-r--r--sysdeps/powerpc/atomic-machine.h2
-rw-r--r--sysdeps/powerpc/bits/fenv.h2
-rw-r--r--sysdeps/powerpc/bits/floatn.h2
-rw-r--r--sysdeps/powerpc/bits/fp-fast.h2
-rw-r--r--sysdeps/powerpc/bits/hwcap.h2
-rw-r--r--sysdeps/powerpc/bits/link.h2
-rw-r--r--sysdeps/powerpc/bits/setjmp.h2
-rw-r--r--sysdeps/powerpc/dl-diagnostics-cpu.c97
-rw-r--r--sysdeps/powerpc/dl-lookupcfg.h2
-rw-r--r--sysdeps/powerpc/dl-procinfo.c33
-rw-r--r--sysdeps/powerpc/dl-procinfo.h256
-rw-r--r--sysdeps/powerpc/dl-tls.c2
-rw-r--r--sysdeps/powerpc/dl-tls.h3
-rw-r--r--sysdeps/powerpc/dl-tunables.list2
-rw-r--r--sysdeps/powerpc/elf-initfini.h2
-rw-r--r--sysdeps/powerpc/fpu/e_sqrt.c2
-rw-r--r--sysdeps/powerpc/fpu/e_sqrtf.c2
-rw-r--r--sysdeps/powerpc/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/powerpc/fpu/fe_mask.c2
-rw-r--r--sysdeps/powerpc/fpu/fe_nomask.c2
-rw-r--r--sysdeps/powerpc/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/powerpc/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/powerpc/fpu/fegetenv.c2
-rw-r--r--sysdeps/powerpc/fpu/fegetexcept.c2
-rw-r--r--sysdeps/powerpc/fpu/fegetmode.c2
-rw-r--r--sysdeps/powerpc/fpu/fegetround.c2
-rw-r--r--sysdeps/powerpc/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/powerpc/fpu/fenv_const.c2
-rw-r--r--sysdeps/powerpc/fpu/fenv_libc.h2
-rw-r--r--sysdeps/powerpc/fpu/fenv_private.h2
-rw-r--r--sysdeps/powerpc/fpu/fesetenv.c2
-rw-r--r--sysdeps/powerpc/fpu/fesetexcept.c2
-rw-r--r--sysdeps/powerpc/fpu/fesetmode.c2
-rw-r--r--sysdeps/powerpc/fpu/fesetround.c2
-rw-r--r--sysdeps/powerpc/fpu/feupdateenv.c2
-rw-r--r--sysdeps/powerpc/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h2
-rw-r--r--sysdeps/powerpc/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/powerpc/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/powerpc/fpu/ftestexcept.c2
-rw-r--r--sysdeps/powerpc/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps1925
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/powerpc/fpu/math-barriers.h2
-rw-r--r--sysdeps/powerpc/fpu/math-tests-trap-force.h2
-rw-r--r--sysdeps/powerpc/fpu/math-use-builtins-trunc.h9
-rw-r--r--sysdeps/powerpc/fpu/math_ldbl.h2
-rw-r--r--sysdeps/powerpc/fpu/math_private.h9
-rw-r--r--sysdeps/powerpc/fpu/round_to_integer.h2
-rw-r--r--sysdeps/powerpc/fpu/s_ceil.c2
-rw-r--r--sysdeps/powerpc/fpu/s_ceilf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_floor.c2
-rw-r--r--sysdeps/powerpc/fpu/s_floorf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_logb.c2
-rw-r--r--sysdeps/powerpc/fpu/s_logbf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_logbl.c2
-rw-r--r--sysdeps/powerpc/fpu/s_modf.c59
-rw-r--r--sysdeps/powerpc/fpu/s_modff.c55
-rw-r--r--sysdeps/powerpc/fpu/s_nearbyint.c2
-rw-r--r--sysdeps/powerpc/fpu/s_nearbyintf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_rint.c2
-rw-r--r--sysdeps/powerpc/fpu/s_rintf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_round.c2
-rw-r--r--sysdeps/powerpc/fpu/s_roundf.c2
-rw-r--r--sysdeps/powerpc/fpu/s_trunc.c2
-rw-r--r--sysdeps/powerpc/fpu/s_truncf.c2
-rw-r--r--sysdeps/powerpc/fpu/tst-setcontext-fpscr.c2
-rw-r--r--sysdeps/powerpc/fpu_control.h2
-rw-r--r--sysdeps/powerpc/gccframe.h2
-rw-r--r--sysdeps/powerpc/hwcapinfo.c3
-rw-r--r--sysdeps/powerpc/hwcapinfo.h106
-rw-r--r--sysdeps/powerpc/jmpbuf-offsets.h2
-rw-r--r--sysdeps/powerpc/jmpbuf-unwind.h2
-rw-r--r--sysdeps/powerpc/ldsodefs.h2
-rw-r--r--sysdeps/powerpc/libc-tls.c2
-rw-r--r--sysdeps/powerpc/longjmp.c2
-rw-r--r--sysdeps/powerpc/machine-gmon.h2
-rw-r--r--sysdeps/powerpc/math-tests-snan-cast.h2
-rw-r--r--sysdeps/powerpc/mod-cache-ppc.c2
-rw-r--r--sysdeps/powerpc/nofpu/Makefile7
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feclearexcept.c2
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feholdexcept.c2
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feupdateenv.c2
-rw-r--r--sysdeps/powerpc/nofpu/fclrexcpt.c2
-rw-r--r--sysdeps/powerpc/nofpu/fedisblxcpt.c2
-rw-r--r--sysdeps/powerpc/nofpu/feenablxcpt.c2
-rw-r--r--sysdeps/powerpc/nofpu/fegetenv.c2
-rw-r--r--sysdeps/powerpc/nofpu/fegetexcept.c2
-rw-r--r--sysdeps/powerpc/nofpu/fegetmode.c2
-rw-r--r--sysdeps/powerpc/nofpu/fegetround.c2
-rw-r--r--sysdeps/powerpc/nofpu/feholdexcpt.c2
-rw-r--r--sysdeps/powerpc/nofpu/fenv_const.c2
-rw-r--r--sysdeps/powerpc/nofpu/fesetenv.c2
-rw-r--r--sysdeps/powerpc/nofpu/fesetexcept.c2
-rw-r--r--sysdeps/powerpc/nofpu/fesetmode.c2
-rw-r--r--sysdeps/powerpc/nofpu/fesetround.c2
-rw-r--r--sysdeps/powerpc/nofpu/feupdateenv.c2
-rw-r--r--sysdeps/powerpc/nofpu/fgetexcptflg.c2
-rw-r--r--sysdeps/powerpc/nofpu/flt-rounds.c2
-rw-r--r--sysdeps/powerpc/nofpu/fraiseexcpt.c2
-rw-r--r--sysdeps/powerpc/nofpu/fsetexcptflg.c2
-rw-r--r--sysdeps/powerpc/nofpu/ftestexcept.c2
-rw-r--r--sysdeps/powerpc/nofpu/get-rounding-mode.h2
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps1641
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/powerpc/nofpu/sim-full.c2
-rw-r--r--sysdeps/powerpc/nofpu/soft-supp.h2
-rw-r--r--sysdeps/powerpc/nofpu/sqrtdf2.c2
-rw-r--r--sysdeps/powerpc/nofpu/sqrtsf2.c2
-rw-r--r--sysdeps/powerpc/novmx-longjmp.c2
-rw-r--r--sysdeps/powerpc/novmx-sigjmp.c2
-rw-r--r--sysdeps/powerpc/novmxsetjmp.h2
-rw-r--r--sysdeps/powerpc/nptl/Makefile2
-rw-r--r--sysdeps/powerpc/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/powerpc/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/powerpc/nptl/elide.h2
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_lock.c2
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_trylock.c2
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_unlock.c2
-rw-r--r--sysdeps/powerpc/nptl/pthreaddef.h2
-rw-r--r--sysdeps/powerpc/nptl/tls.h4
-rw-r--r--sysdeps/powerpc/power4/wordcopy.c2
-rw-r--r--sysdeps/powerpc/power6/wordcopy.c2
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc32/405/strncmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/476/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/__longjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc32/__longjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/a2/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/add_n.S2
-rw-r--r--sysdeps/powerpc/powerpc32/addmul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc32/atomic-machine.h2
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-_setjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-setjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/cell/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/crti.S2
-rw-r--r--sysdeps/powerpc/powerpc32/crtn.S2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-irel.h2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.h2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-start.S2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-trampoline.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprrest.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprsave.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llrint.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llrintf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llround.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llroundf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lrint.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lround.c2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest0.S2
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest1.S2
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave0.S2
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave1.S2
-rw-r--r--sysdeps/powerpc/powerpc32/libgcc-compat.S2
-rw-r--r--sysdeps/powerpc/powerpc32/lshift.S2
-rw-r--r--sysdeps/powerpc/powerpc32/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/mul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/hp-timing.h2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcopy.h2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/Makefile7
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c17
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c41
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c42
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power6/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power6/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/mempcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memrchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/rawmemchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strcasecmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strchrnul.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strnlen.S2
-rw-r--r--sysdeps/powerpc/powerpc32/ppc-mcount.S2
-rw-r--r--sysdeps/powerpc/powerpc32/rshift.S2
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/stackinfo.h (renamed from sysdeps/powerpc/stackinfo.h)10
-rw-r--r--sysdeps/powerpc/powerpc32/start.S2
-rw-r--r--sysdeps/powerpc/powerpc32/stpcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc32/strcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc32/strcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc32/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc32/sub_n.S2
-rw-r--r--sysdeps/powerpc/powerpc32/submul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc32/symbol-hacks.h2
-rw-r--r--sysdeps/powerpc/powerpc32/sysdep.h5
-rw-r--r--sysdeps/powerpc/powerpc32/tst-audit.h2
-rw-r--r--sysdeps/powerpc/powerpc32/unwind-arch.h2
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/a2/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/addmul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc64/atomic-machine.h2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/cell/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/crti.S8
-rw-r--r--sysdeps/powerpc/powerpc64/crtn.S8
-rw-r--r--sysdeps/powerpc/powerpc64/dl-dtprocnum.h2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-funcdesc.h2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-irel.h2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.c2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h21
-rw-r--r--sysdeps/powerpc/powerpc64/dl-trampoline.S46
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llrint.c2
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llround.c2
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llroundf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/hp-timing.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/Makefile4
-rw-r--r--sysdeps/powerpc/powerpc64/le/configure70
-rw-r--r--sysdeps/powerpc/powerpc64/le/configure.ac7
-rw-r--r--sysdeps/powerpc/powerpc64/le/dl-hwcap-check.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/dl-hwcaps-subdirs.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/e_ilogb.c (renamed from sysdeps/loongarch/fpu/s_fmaximum_mag.c)37
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/e_ilogbf.c41
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile5
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/e_log.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirect-macros.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects-mp.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h3
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128_private.h3
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h3
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/w_ilogb.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/w_ilogbf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/w_llogb.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/w_llogbf.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/multiarch/dl-symbol-redir-ifunc.h3
-rw-r--r--sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memchr.S315
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memcmp.S24
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memmove.S4
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/rawmemchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/strcmp.S233
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/strlen.S32
-rw-r--r--sysdeps/powerpc/powerpc64/le/power10/strncmp.S271
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/rawmemchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/stpcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/stpncpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strcmp.S46
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strcpy.S278
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strncmp.S45
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strncpy.S16
-rw-r--r--sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c2
-rw-r--r--sysdeps/powerpc/powerpc64/lshift.S2
-rw-r--r--sysdeps/powerpc/powerpc64/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/mul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/Makefile11
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c31
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/init-arch.h2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr.c22
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power10.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-power10.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power10.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power4.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power6.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power10.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-power10.c (renamed from sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c)21
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat.c24
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S26
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase.c9
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase_l.c42
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power9.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy.c6
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn.c2
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power6/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power6/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/add_n.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memmove.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/mempcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memrchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/rawmemchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/stpncpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strcasecmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strchrnul.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strncpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strnlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strrchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power7/sub_n.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memrchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memset.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/stpcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/stpncpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcasecmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strchrnul.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcpy.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcspn.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncase.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncpy.S56
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strnlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strrchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strspn.S2
-rw-r--r--sysdeps/powerpc/powerpc64/ppc-mcount.S8
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-bug21895.c2
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S8
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/start.S2
-rw-r--r--sysdeps/powerpc/powerpc64/strchr.S2
-rw-r--r--sysdeps/powerpc/powerpc64/strcmp.S2
-rw-r--r--sysdeps/powerpc/powerpc64/strlen.S2
-rw-r--r--sysdeps/powerpc/powerpc64/submul_1.S2
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h26
-rw-r--r--sysdeps/powerpc/powerpc64/tst-audit.h2
-rw-r--r--sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c2
-rw-r--r--sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c2
-rw-r--r--sysdeps/powerpc/preconfigure15
-rw-r--r--sysdeps/powerpc/sigjmp.c2
-rw-r--r--sysdeps/powerpc/sotruss-lib.c2
-rw-r--r--sysdeps/powerpc/string-fza.h2
-rw-r--r--sysdeps/powerpc/sys/platform/ppc.h2
-rw-r--r--sysdeps/powerpc/sysdep.h2
-rw-r--r--sysdeps/powerpc/test-arith.c2
-rw-r--r--sysdeps/powerpc/test-get_hwcap-static.c2
-rw-r--r--sysdeps/powerpc/test-get_hwcap.c5
-rw-r--r--sysdeps/powerpc/test-gettimebase.c2
-rw-r--r--sysdeps/powerpc/thread_pointer.h (renamed from sysdeps/powerpc/nptl/thread_pointer.h)2
-rw-r--r--sysdeps/powerpc/tst-cache-ppc-static-dlopen.c2
-rw-r--r--sysdeps/powerpc/tst-cache-ppc-static.c2
-rw-r--r--sysdeps/powerpc/tst-cache-ppc.c2
-rw-r--r--sysdeps/powerpc/tst-set_ppr.c2
-rw-r--r--sysdeps/powerpc/tst-stack-align.h2
-rw-r--r--sysdeps/powerpc/tst-tlsifunc-static.c2
-rw-r--r--sysdeps/powerpc/tst-tlsifunc.c2
-rw-r--r--sysdeps/pthread/Makefile22
-rw-r--r--sysdeps/pthread/allocalim.h2
-rw-r--r--sysdeps/pthread/bits/sigthread.h2
-rw-r--r--sysdeps/pthread/call_once.c2
-rw-r--r--sysdeps/pthread/cnd_broadcast.c2
-rw-r--r--sysdeps/pthread/cnd_destroy.c2
-rw-r--r--sysdeps/pthread/cnd_init.c2
-rw-r--r--sysdeps/pthread/cnd_signal.c2
-rw-r--r--sysdeps/pthread/cnd_timedwait.c2
-rw-r--r--sysdeps/pthread/cnd_wait.c2
-rw-r--r--sysdeps/pthread/eintr.c2
-rw-r--r--sysdeps/pthread/elision-conf.h2
-rw-r--r--sysdeps/pthread/mtx_destroy.c2
-rw-r--r--sysdeps/pthread/mtx_init.c2
-rw-r--r--sysdeps/pthread/mtx_lock.c2
-rw-r--r--sysdeps/pthread/mtx_timedlock.c2
-rw-r--r--sysdeps/pthread/mtx_trylock.c2
-rw-r--r--sysdeps/pthread/mtx_unlock.c2
-rw-r--r--sysdeps/pthread/posix-timer.h2
-rw-r--r--sysdeps/pthread/pthread_atfork.c2
-rw-r--r--sysdeps/pthread/pthread_atfork_compat.c2
-rw-r--r--sysdeps/pthread/pthread_early_init.h2
-rw-r--r--sysdeps/pthread/pthread_mutex_conf.h2
-rw-r--r--sysdeps/pthread/sem_close.c2
-rw-r--r--sysdeps/pthread/sem_open.c14
-rw-r--r--sysdeps/pthread/sem_routines.c2
-rw-r--r--sysdeps/pthread/sem_routines.h2
-rw-r--r--sysdeps/pthread/sem_unlink.c2
-rw-r--r--sysdeps/pthread/semaphore.h2
-rw-r--r--sysdeps/pthread/thrd_create.c2
-rw-r--r--sysdeps/pthread/thrd_detach.c2
-rw-r--r--sysdeps/pthread/thrd_equal.c2
-rw-r--r--sysdeps/pthread/thrd_exit.c2
-rw-r--r--sysdeps/pthread/thrd_join.c2
-rw-r--r--sysdeps/pthread/thrd_priv.h2
-rw-r--r--sysdeps/pthread/thrd_sleep.c2
-rw-r--r--sysdeps/pthread/threads.h2
-rw-r--r--sysdeps/pthread/tss_create.c2
-rw-r--r--sysdeps/pthread/tss_delete.c2
-rw-r--r--sysdeps/pthread/tss_get.c2
-rw-r--r--sysdeps/pthread/tss_set.c2
-rw-r--r--sysdeps/pthread/tst-_res1.c2
-rw-r--r--sysdeps/pthread/tst-_res1mod1.c2
-rw-r--r--sysdeps/pthread/tst-abstime.c2
-rw-r--r--sysdeps/pthread/tst-atfork1.c2
-rw-r--r--sysdeps/pthread/tst-atfork2.c2
-rw-r--r--sysdeps/pthread/tst-atfork2mod.c2
-rw-r--r--sysdeps/pthread/tst-atfork3.c2
-rw-r--r--sysdeps/pthread/tst-atfork3mod.c2
-rw-r--r--sysdeps/pthread/tst-atfork4.c2
-rw-r--r--sysdeps/pthread/tst-atfork4mod.c2
-rw-r--r--sysdeps/pthread/tst-attr1.c2
-rw-r--r--sysdeps/pthread/tst-backtrace1.c2
-rw-r--r--sysdeps/pthread/tst-bad-schedattr.c2
-rw-r--r--sysdeps/pthread/tst-barrier1.c2
-rw-r--r--sysdeps/pthread/tst-barrier2.c2
-rw-r--r--sysdeps/pthread/tst-barrier3.c2
-rw-r--r--sysdeps/pthread/tst-barrier4.c2
-rw-r--r--sysdeps/pthread/tst-basic1.c2
-rw-r--r--sysdeps/pthread/tst-basic2.c2
-rw-r--r--sysdeps/pthread/tst-basic3.c2
-rw-r--r--sysdeps/pthread/tst-basic4.c2
-rw-r--r--sysdeps/pthread/tst-basic5.c2
-rw-r--r--sysdeps/pthread/tst-basic6.c2
-rw-r--r--sysdeps/pthread/tst-call-once.c2
-rw-r--r--sysdeps/pthread/tst-cancel-self-cancelstate.c2
-rw-r--r--sysdeps/pthread/tst-cancel-self-canceltype.c2
-rw-r--r--sysdeps/pthread/tst-cancel-self-cleanup.c2
-rw-r--r--sysdeps/pthread/tst-cancel-self-testcancel.c2
-rw-r--r--sysdeps/pthread/tst-cancel-self.c2
-rw-r--r--sysdeps/pthread/tst-cancel1.c2
-rw-r--r--sysdeps/pthread/tst-cancel10.c2
-rw-r--r--sysdeps/pthread/tst-cancel11.c2
-rw-r--r--sysdeps/pthread/tst-cancel12.c2
-rw-r--r--sysdeps/pthread/tst-cancel13.c2
-rw-r--r--sysdeps/pthread/tst-cancel14.c2
-rw-r--r--sysdeps/pthread/tst-cancel15.c2
-rw-r--r--sysdeps/pthread/tst-cancel16.c2
-rw-r--r--sysdeps/pthread/tst-cancel18.c2
-rw-r--r--sysdeps/pthread/tst-cancel19.c2
-rw-r--r--sysdeps/pthread/tst-cancel2.c6
-rw-r--r--sysdeps/pthread/tst-cancel20.c2
-rw-r--r--sysdeps/pthread/tst-cancel21.c2
-rw-r--r--sysdeps/pthread/tst-cancel22.c2
-rw-r--r--sysdeps/pthread/tst-cancel26.c2
-rw-r--r--sysdeps/pthread/tst-cancel27.c2
-rw-r--r--sysdeps/pthread/tst-cancel28.c6
-rw-r--r--sysdeps/pthread/tst-cancel29.c2
-rw-r--r--sysdeps/pthread/tst-cancel3.c2
-rw-r--r--sysdeps/pthread/tst-cancel30.c2
-rw-r--r--sysdeps/pthread/tst-cancel32.c73
-rw-r--r--sysdeps/pthread/tst-cancel4-common.c2
-rw-r--r--sysdeps/pthread/tst-cancel4-common.h2
-rw-r--r--sysdeps/pthread/tst-cancel4.c2
-rw-r--r--sysdeps/pthread/tst-cancel6.c2
-rw-r--r--sysdeps/pthread/tst-cancel8.c2
-rw-r--r--sysdeps/pthread/tst-cancel9.c2
-rw-r--r--sysdeps/pthread/tst-cleanup0.c2
-rw-r--r--sysdeps/pthread/tst-cleanup1.c2
-rw-r--r--sysdeps/pthread/tst-cleanup2.c2
-rw-r--r--sysdeps/pthread/tst-cleanup3.c2
-rw-r--r--sysdeps/pthread/tst-clock1.c2
-rw-r--r--sysdeps/pthread/tst-cnd-basic.c2
-rw-r--r--sysdeps/pthread/tst-cnd-broadcast.c2
-rw-r--r--sysdeps/pthread/tst-cnd-timedwait.c2
-rw-r--r--sysdeps/pthread/tst-cond-except.c2
-rw-r--r--sysdeps/pthread/tst-cond1.c2
-rw-r--r--sysdeps/pthread/tst-cond10.c2
-rw-r--r--sysdeps/pthread/tst-cond11.c2
-rw-r--r--sysdeps/pthread/tst-cond12.c2
-rw-r--r--sysdeps/pthread/tst-cond14.c2
-rw-r--r--sysdeps/pthread/tst-cond15.c2
-rw-r--r--sysdeps/pthread/tst-cond16.c2
-rw-r--r--sysdeps/pthread/tst-cond18.c2
-rw-r--r--sysdeps/pthread/tst-cond19.c2
-rw-r--r--sysdeps/pthread/tst-cond2.c2
-rw-r--r--sysdeps/pthread/tst-cond20.c2
-rw-r--r--sysdeps/pthread/tst-cond23.c2
-rw-r--r--sysdeps/pthread/tst-cond24.c2
-rw-r--r--sysdeps/pthread/tst-cond25.c2
-rw-r--r--sysdeps/pthread/tst-cond27.c2
-rw-r--r--sysdeps/pthread/tst-cond3.c2
-rw-r--r--sysdeps/pthread/tst-cond4.c2
-rw-r--r--sysdeps/pthread/tst-cond5.c2
-rw-r--r--sysdeps/pthread/tst-cond6.c2
-rw-r--r--sysdeps/pthread/tst-cond7.c2
-rw-r--r--sysdeps/pthread/tst-cond8.c2
-rw-r--r--sysdeps/pthread/tst-cond9.c2
-rw-r--r--sysdeps/pthread/tst-create-detached.c2
-rw-r--r--sysdeps/pthread/tst-create1.c2
-rw-r--r--sysdeps/pthread/tst-create1mod.c2
-rw-r--r--sysdeps/pthread/tst-detach1.c2
-rw-r--r--sysdeps/pthread/tst-eintr2.c2
-rw-r--r--sysdeps/pthread/tst-eintr3.c2
-rw-r--r--sysdeps/pthread/tst-eintr4.c2
-rw-r--r--sysdeps/pthread/tst-eintr5.c2
-rw-r--r--sysdeps/pthread/tst-exec1.c2
-rw-r--r--sysdeps/pthread/tst-exec2.c2
-rw-r--r--sysdeps/pthread/tst-exec3.c2
-rw-r--r--sysdeps/pthread/tst-exit1.c2
-rw-r--r--sysdeps/pthread/tst-fini1.c2
-rw-r--r--sysdeps/pthread/tst-fini1mod.c2
-rw-r--r--sysdeps/pthread/tst-flock1.c2
-rw-r--r--sysdeps/pthread/tst-flock2.c2
-rw-r--r--sysdeps/pthread/tst-fopen-threaded.c258
-rw-r--r--sysdeps/pthread/tst-fork1.c2
-rw-r--r--sysdeps/pthread/tst-fork2.c2
-rw-r--r--sysdeps/pthread/tst-fork3.c2
-rw-r--r--sysdeps/pthread/tst-fork4.c2
-rw-r--r--sysdeps/pthread/tst-join1.c2
-rw-r--r--sysdeps/pthread/tst-join10.c2
-rw-r--r--sysdeps/pthread/tst-join11.c2
-rw-r--r--sysdeps/pthread/tst-join12.c2
-rw-r--r--sysdeps/pthread/tst-join13.c2
-rw-r--r--sysdeps/pthread/tst-join14.c2
-rw-r--r--sysdeps/pthread/tst-join15.c2
-rw-r--r--sysdeps/pthread/tst-join16-time64.c1
-rw-r--r--sysdeps/pthread/tst-join16.c87
-rw-r--r--sysdeps/pthread/tst-join2.c2
-rw-r--r--sysdeps/pthread/tst-join3.c2
-rw-r--r--sysdeps/pthread/tst-join4.c2
-rw-r--r--sysdeps/pthread/tst-join5.c2
-rw-r--r--sysdeps/pthread/tst-join7.c2
-rw-r--r--sysdeps/pthread/tst-join7mod.c2
-rw-r--r--sysdeps/pthread/tst-join8.c2
-rw-r--r--sysdeps/pthread/tst-join9.c2
-rw-r--r--sysdeps/pthread/tst-key1.c2
-rw-r--r--sysdeps/pthread/tst-key2.c2
-rw-r--r--sysdeps/pthread/tst-key3.c2
-rw-r--r--sysdeps/pthread/tst-key4.c2
-rw-r--r--sysdeps/pthread/tst-kill1.c2
-rw-r--r--sysdeps/pthread/tst-kill2.c2
-rw-r--r--sysdeps/pthread/tst-kill3.c2
-rw-r--r--sysdeps/pthread/tst-kill5.c2
-rw-r--r--sysdeps/pthread/tst-kill6.c2
-rw-r--r--sysdeps/pthread/tst-memstream.c2
-rw-r--r--sysdeps/pthread/tst-mtx-basic.c2
-rw-r--r--sysdeps/pthread/tst-mtx-recursive.c2
-rw-r--r--sysdeps/pthread/tst-mtx-timedlock.c2
-rw-r--r--sysdeps/pthread/tst-mtx-trylock.c2
-rw-r--r--sysdeps/pthread/tst-mutex-errorcheck.c2
-rw-r--r--sysdeps/pthread/tst-mutex1.c2
-rw-r--r--sysdeps/pthread/tst-mutex10.c2
-rw-r--r--sysdeps/pthread/tst-mutex11.c2
-rw-r--r--sysdeps/pthread/tst-mutex2.c2
-rw-r--r--sysdeps/pthread/tst-mutex3.c2
-rw-r--r--sysdeps/pthread/tst-mutex4.c2
-rw-r--r--sysdeps/pthread/tst-mutex5.c2
-rw-r--r--sysdeps/pthread/tst-mutex6.c2
-rw-r--r--sysdeps/pthread/tst-mutex7.c2
-rw-r--r--sysdeps/pthread/tst-mutex9.c2
-rw-r--r--sysdeps/pthread/tst-once1.c2
-rw-r--r--sysdeps/pthread/tst-once2.c2
-rw-r--r--sysdeps/pthread/tst-once3.c2
-rw-r--r--sysdeps/pthread/tst-once4.c2
-rw-r--r--sysdeps/pthread/tst-pt-align.c2
-rw-r--r--sysdeps/pthread/tst-pt-align3.c2
-rw-r--r--sysdeps/pthread/tst-pt-popen1.c2
-rw-r--r--sysdeps/pthread/tst-pt-sysconf.c2
-rw-r--r--sysdeps/pthread/tst-pt-tls1.c2
-rw-r--r--sysdeps/pthread/tst-pt-tls2.c2
-rw-r--r--sysdeps/pthread/tst-pt-tls4.c2
-rw-r--r--sysdeps/pthread/tst-pthread-exit-signal.c2
-rw-r--r--sysdeps/pthread/tst-pthread-mutexattr-2.c60
-rw-r--r--sysdeps/pthread/tst-pthread-mutexattr.c2
-rw-r--r--sysdeps/pthread/tst-pthread-raise-blocked-self.c2
-rw-r--r--sysdeps/pthread/tst-pthread-setuid-loop.c2
-rw-r--r--sysdeps/pthread/tst-pthread_cancel-exited.c2
-rw-r--r--sysdeps/pthread/tst-pthread_cancel-select-loop.c2
-rw-r--r--sysdeps/pthread/tst-pthread_kill-exited.c2
-rw-r--r--sysdeps/pthread/tst-pthread_kill-exiting.c2
-rw-r--r--sysdeps/pthread/tst-raise1.c2
-rw-r--r--sysdeps/pthread/tst-robust1.c2
-rw-r--r--sysdeps/pthread/tst-robust10.c2
-rw-r--r--sysdeps/pthread/tst-robust7.c2
-rw-r--r--sysdeps/pthread/tst-rwlock-tryrdlock-stall.c2
-rw-r--r--sysdeps/pthread/tst-rwlock-trywrlock-stall.c2
-rw-r--r--sysdeps/pthread/tst-rwlock1.c2
-rw-r--r--sysdeps/pthread/tst-rwlock12.c2
-rw-r--r--sysdeps/pthread/tst-rwlock13.c2
-rw-r--r--sysdeps/pthread/tst-rwlock14.c2
-rw-r--r--sysdeps/pthread/tst-rwlock16.c2
-rw-r--r--sysdeps/pthread/tst-rwlock4.c2
-rw-r--r--sysdeps/pthread/tst-rwlock5.c2
-rw-r--r--sysdeps/pthread/tst-sem1.c2
-rw-r--r--sysdeps/pthread/tst-sem10.c2
-rw-r--r--sysdeps/pthread/tst-sem14.c2
-rw-r--r--sysdeps/pthread/tst-sem15.c2
-rw-r--r--sysdeps/pthread/tst-sem16.c2
-rw-r--r--sysdeps/pthread/tst-sem18.c (renamed from sysdeps/sh/dl-tls.h)25
-rw-r--r--sysdeps/pthread/tst-sem19.c77
-rw-r--r--sysdeps/pthread/tst-sem2.c2
-rw-r--r--sysdeps/pthread/tst-sem3.c2
-rw-r--r--sysdeps/pthread/tst-sem4.c2
-rw-r--r--sysdeps/pthread/tst-sem5.c2
-rw-r--r--sysdeps/pthread/tst-sem6.c2
-rw-r--r--sysdeps/pthread/tst-sem7.c2
-rw-r--r--sysdeps/pthread/tst-sem8.c2
-rw-r--r--sysdeps/pthread/tst-sem9.c2
-rw-r--r--sysdeps/pthread/tst-setuid3.c2
-rw-r--r--sysdeps/pthread/tst-signal1.c2
-rw-r--r--sysdeps/pthread/tst-signal2.c2
-rw-r--r--sysdeps/pthread/tst-signal4.c2
-rw-r--r--sysdeps/pthread/tst-signal5.c2
-rw-r--r--sysdeps/pthread/tst-signal6.c2
-rw-r--r--sysdeps/pthread/tst-signal8.c2
-rw-r--r--sysdeps/pthread/tst-spin1.c2
-rw-r--r--sysdeps/pthread/tst-spin2.c2
-rw-r--r--sysdeps/pthread/tst-spin3.c2
-rw-r--r--sysdeps/pthread/tst-spin5.c82
-rw-r--r--sysdeps/pthread/tst-stack1.c2
-rw-r--r--sysdeps/pthread/tst-stack2-mod.c39
-rw-r--r--sysdeps/pthread/tst-stack2.c (renamed from sysdeps/generic/dl-fptr.h)46
-rw-r--r--sysdeps/pthread/tst-stdio1.c2
-rw-r--r--sysdeps/pthread/tst-stdio2.c4
-rw-r--r--sysdeps/pthread/tst-thrd-detach.c2
-rw-r--r--sysdeps/pthread/tst-thrd-sleep.c2
-rw-r--r--sysdeps/pthread/tst-timer.c2
-rw-r--r--sysdeps/pthread/tst-tls4moda.c2
-rw-r--r--sysdeps/pthread/tst-tls4modb.c2
-rw-r--r--sysdeps/pthread/tst-tsd1.c2
-rw-r--r--sysdeps/pthread/tst-tsd2.c2
-rw-r--r--sysdeps/pthread/tst-tsd5.c2
-rw-r--r--sysdeps/pthread/tst-tss-basic.c2
-rw-r--r--sysdeps/pthread/tst-umask1.c2
-rw-r--r--sysdeps/pthread/tst-unload.c2
-rw-r--r--sysdeps/riscv/__longjmp.S2
-rw-r--r--sysdeps/riscv/bits/fenv.h2
-rw-r--r--sysdeps/riscv/bits/link.h2
-rw-r--r--sysdeps/riscv/bits/setjmp.h2
-rw-r--r--sysdeps/riscv/bits/wordsize.h2
-rw-r--r--sysdeps/riscv/dl-irel.h2
-rw-r--r--sysdeps/riscv/dl-machine.h19
-rw-r--r--sysdeps/riscv/dl-relocate-ld.h2
-rw-r--r--sysdeps/riscv/dl-tls.h7
-rw-r--r--sysdeps/riscv/dl-trampoline.S2
-rw-r--r--sysdeps/riscv/e_sqrtl.c2
-rw-r--r--sysdeps/riscv/fpu_control.h2
-rw-r--r--sysdeps/riscv/gccframe.h2
-rw-r--r--sysdeps/riscv/jmpbuf-offsets.h2
-rw-r--r--sysdeps/riscv/jmpbuf-unwind.h2
-rw-r--r--sysdeps/riscv/ldsodefs.h2
-rw-r--r--sysdeps/riscv/libc-tls.c4
-rw-r--r--sysdeps/riscv/machine-gmon.h2
-rw-r--r--sysdeps/riscv/math-tests-snan-payload.h2
-rw-r--r--sysdeps/riscv/math-tests-trap.h2
-rw-r--r--sysdeps/riscv/math-use-builtins-ffs.h10
-rw-r--r--sysdeps/riscv/multiarch/memcpy-generic.c2
-rw-r--r--sysdeps/riscv/multiarch/memcpy_noalignment.S2
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps1442
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/riscv/nofpu/math-tests-exceptions.h2
-rw-r--r--sysdeps/riscv/nofpu/math-tests-rounding.h2
-rw-r--r--sysdeps/riscv/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/riscv/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/riscv/nptl/pthreaddef.h2
-rw-r--r--sysdeps/riscv/nptl/tls.h2
-rw-r--r--sysdeps/riscv/riscv-ifunc.h2
-rw-r--r--sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_ceil.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_floor.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_llrint.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_llround.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_nearbyint.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_rint.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_round.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_roundeven.c2
-rw-r--r--sysdeps/riscv/rv64/rvd/s_trunc.c2
-rw-r--r--sysdeps/riscv/rv64/rvf/s_llrintf.c2
-rw-r--r--sysdeps/riscv/rv64/rvf/s_llroundf.c2
-rw-r--r--sysdeps/riscv/rvd/fix-float-double-convert-nan.h2
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps1512
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps-name1
-rw-r--r--sysdeps/riscv/rvd/math-use-builtins-fma.h4
-rw-r--r--sysdeps/riscv/rvd/s_finite.c2
-rw-r--r--sysdeps/riscv/rvd/s_fma.c37
-rw-r--r--sysdeps/riscv/rvd/s_fmax.c2
-rw-r--r--sysdeps/riscv/rvd/s_fmin.c2
-rw-r--r--sysdeps/riscv/rvd/s_fpclassify.c2
-rw-r--r--sysdeps/riscv/rvd/s_isinf.c2
-rw-r--r--sysdeps/riscv/rvd/s_isnan.c2
-rw-r--r--sysdeps/riscv/rvd/s_issignaling.c2
-rw-r--r--sysdeps/riscv/rvd/s_lrint.c2
-rw-r--r--sysdeps/riscv/rvd/s_lround.c2
-rw-r--r--sysdeps/riscv/rvf/fclrexcpt.c2
-rw-r--r--sysdeps/riscv/rvf/fegetenv.c2
-rw-r--r--sysdeps/riscv/rvf/fegetmode.c2
-rw-r--r--sysdeps/riscv/rvf/fegetround.c2
-rw-r--r--sysdeps/riscv/rvf/feholdexcpt.c2
-rw-r--r--sysdeps/riscv/rvf/fenv_private.h2
-rw-r--r--sysdeps/riscv/rvf/fesetenv.c2
-rw-r--r--sysdeps/riscv/rvf/fesetexcept.c2
-rw-r--r--sysdeps/riscv/rvf/fesetmode.c2
-rw-r--r--sysdeps/riscv/rvf/fesetround.c2
-rw-r--r--sysdeps/riscv/rvf/feupdateenv.c2
-rw-r--r--sysdeps/riscv/rvf/fgetexcptflg.c2
-rw-r--r--sysdeps/riscv/rvf/fraiseexcpt.c2
-rw-r--r--sysdeps/riscv/rvf/fsetexcptflg.c2
-rw-r--r--sysdeps/riscv/rvf/ftestexcept.c2
-rw-r--r--sysdeps/riscv/rvf/get-rounding-mode.h2
-rw-r--r--sysdeps/riscv/rvf/s_ceilf.c2
-rw-r--r--sysdeps/riscv/rvf/s_finitef.c2
-rw-r--r--sysdeps/riscv/rvf/s_floorf.c2
-rw-r--r--sysdeps/riscv/rvf/s_fmaf.c31
-rw-r--r--sysdeps/riscv/rvf/s_fmaxf.c2
-rw-r--r--sysdeps/riscv/rvf/s_fminf.c2
-rw-r--r--sysdeps/riscv/rvf/s_fpclassifyf.c2
-rw-r--r--sysdeps/riscv/rvf/s_isinff.c2
-rw-r--r--sysdeps/riscv/rvf/s_isnanf.c2
-rw-r--r--sysdeps/riscv/rvf/s_issignalingf.c2
-rw-r--r--sysdeps/riscv/rvf/s_lrintf.c2
-rw-r--r--sysdeps/riscv/rvf/s_lroundf.c2
-rw-r--r--sysdeps/riscv/rvf/s_nearbyintf.c2
-rw-r--r--sysdeps/riscv/rvf/s_rintf.c2
-rw-r--r--sysdeps/riscv/rvf/s_roundevenf.c2
-rw-r--r--sysdeps/riscv/rvf/s_roundf.c2
-rw-r--r--sysdeps/riscv/rvf/s_truncf.c2
-rw-r--r--sysdeps/riscv/setjmp.S2
-rw-r--r--sysdeps/riscv/sfp-machine.h2
-rw-r--r--sysdeps/riscv/sotruss-lib.c2
-rw-r--r--sysdeps/riscv/stackinfo.h33
-rw-r--r--sysdeps/riscv/start.S3
-rw-r--r--sysdeps/riscv/string-fza.h2
-rw-r--r--sysdeps/riscv/string-fzi.h2
-rw-r--r--sysdeps/riscv/sys/asm.h2
-rw-r--r--sysdeps/riscv/thread_pointer.h40
-rw-r--r--sysdeps/riscv/tst-audit.h2
-rw-r--r--sysdeps/s390/Makefile1
-rw-r--r--sysdeps/s390/asm-syntax.h2
-rw-r--r--sysdeps/s390/atomic-machine.h2
-rw-r--r--sysdeps/s390/bits/link.h2
-rw-r--r--sysdeps/s390/bits/setjmp.h2
-rw-r--r--sysdeps/s390/configure40
-rw-r--r--sysdeps/s390/configure.ac18
-rw-r--r--sysdeps/s390/cpu-features.c82
-rw-r--r--sysdeps/s390/cpu-features.h57
-rw-r--r--sysdeps/s390/dl-diagnostics-cpu.c (renamed from sysdeps/x86/dl-procinfo.h)25
-rw-r--r--sysdeps/s390/dl-irel.h2
-rw-r--r--sysdeps/s390/dl-procinfo.c5
-rw-r--r--sysdeps/s390/dl-procinfo.h72
-rw-r--r--sysdeps/s390/dl-tls.h15
-rw-r--r--sysdeps/s390/dl-tunables.list2
-rw-r--r--sysdeps/s390/elf-initfini.h2
-rw-r--r--sysdeps/s390/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/s390/fpu/bits/fenv.h2
-rw-r--r--sysdeps/s390/fpu/e_sqrtl.c2
-rw-r--r--sysdeps/s390/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/s390/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/s390/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/s390/fpu/fegetenv.c2
-rw-r--r--sysdeps/s390/fpu/fegetexcept.c2
-rw-r--r--sysdeps/s390/fpu/fegetmode.c2
-rw-r--r--sysdeps/s390/fpu/fegetround.c2
-rw-r--r--sysdeps/s390/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/s390/fpu/fenv_libc.h2
-rw-r--r--sysdeps/s390/fpu/fenv_private.h2
-rw-r--r--sysdeps/s390/fpu/fesetenv.c2
-rw-r--r--sysdeps/s390/fpu/fesetexcept.c2
-rw-r--r--sysdeps/s390/fpu/fesetmode.c2
-rw-r--r--sysdeps/s390/fpu/fesetround.c2
-rw-r--r--sysdeps/s390/fpu/feupdateenv.c2
-rw-r--r--sysdeps/s390/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/s390/fpu/fix-fp-int-compare-invalid.h2
-rw-r--r--sysdeps/s390/fpu/fpu_control.h2
-rw-r--r--sysdeps/s390/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/s390/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/s390/fpu/ftestexcept.c2
-rw-r--r--sysdeps/s390/fpu/get-rounding-mode.h2
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps1510
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/s390/fpu/math-barriers.h2
-rw-r--r--sysdeps/s390/fpu/math_private.h2
-rw-r--r--sysdeps/s390/fpu/s_llrint.c2
-rw-r--r--sysdeps/s390/fpu/s_llrintf.c2
-rw-r--r--sysdeps/s390/fpu/s_llrintl.c2
-rw-r--r--sysdeps/s390/fpu/s_llround.c2
-rw-r--r--sysdeps/s390/fpu/s_llroundf.c2
-rw-r--r--sysdeps/s390/fpu/s_llroundl.c2
-rw-r--r--sysdeps/s390/fpu/s_lrint.c2
-rw-r--r--sysdeps/s390/fpu/s_lrintf.c2
-rw-r--r--sysdeps/s390/fpu/s_lrintl.c2
-rw-r--r--sysdeps/s390/fpu/s_lround.c2
-rw-r--r--sysdeps/s390/fpu/s_lroundf.c2
-rw-r--r--sysdeps/s390/fpu/s_lroundl.c2
-rw-r--r--sysdeps/s390/fpu/s_roundeven.c2
-rw-r--r--sysdeps/s390/fpu/s_roundevenf.c2
-rw-r--r--sysdeps/s390/fpu/s_roundevenl.c2
-rw-r--r--sysdeps/s390/gccframe.h2
-rw-r--r--sysdeps/s390/gconv-modules-s390.conf2
-rw-r--r--sysdeps/s390/hp-timing.h2
-rw-r--r--sysdeps/s390/ifunc-memccpy.h2
-rw-r--r--sysdeps/s390/ifunc-memchr.h2
-rw-r--r--sysdeps/s390/ifunc-memcmp.h2
-rw-r--r--sysdeps/s390/ifunc-memcpy.h2
-rw-r--r--sysdeps/s390/ifunc-memmem.h2
-rw-r--r--sysdeps/s390/ifunc-memrchr.h2
-rw-r--r--sysdeps/s390/ifunc-memset.h2
-rw-r--r--sysdeps/s390/ifunc-rawmemchr.h2
-rw-r--r--sysdeps/s390/ifunc-stpcpy.h2
-rw-r--r--sysdeps/s390/ifunc-stpncpy.h2
-rw-r--r--sysdeps/s390/ifunc-strcat.h2
-rw-r--r--sysdeps/s390/ifunc-strchr.h2
-rw-r--r--sysdeps/s390/ifunc-strchrnul.h2
-rw-r--r--sysdeps/s390/ifunc-strcmp.h2
-rw-r--r--sysdeps/s390/ifunc-strcpy.h2
-rw-r--r--sysdeps/s390/ifunc-strcspn.h2
-rw-r--r--sysdeps/s390/ifunc-strlen.h2
-rw-r--r--sysdeps/s390/ifunc-strncat.h2
-rw-r--r--sysdeps/s390/ifunc-strncmp.h2
-rw-r--r--sysdeps/s390/ifunc-strncpy.h2
-rw-r--r--sysdeps/s390/ifunc-strnlen.h2
-rw-r--r--sysdeps/s390/ifunc-strpbrk.h2
-rw-r--r--sysdeps/s390/ifunc-strrchr.h2
-rw-r--r--sysdeps/s390/ifunc-strspn.h2
-rw-r--r--sysdeps/s390/ifunc-strstr.h2
-rw-r--r--sysdeps/s390/ifunc-wcpcpy.h2
-rw-r--r--sysdeps/s390/ifunc-wcpncpy.h2
-rw-r--r--sysdeps/s390/ifunc-wcscat.h2
-rw-r--r--sysdeps/s390/ifunc-wcschr.h2
-rw-r--r--sysdeps/s390/ifunc-wcschrnul.h2
-rw-r--r--sysdeps/s390/ifunc-wcscmp.h2
-rw-r--r--sysdeps/s390/ifunc-wcscpy.h2
-rw-r--r--sysdeps/s390/ifunc-wcscspn.h2
-rw-r--r--sysdeps/s390/ifunc-wcslen.h2
-rw-r--r--sysdeps/s390/ifunc-wcsncat.h2
-rw-r--r--sysdeps/s390/ifunc-wcsncmp.h2
-rw-r--r--sysdeps/s390/ifunc-wcsncpy.h2
-rw-r--r--sysdeps/s390/ifunc-wcsnlen.h2
-rw-r--r--sysdeps/s390/ifunc-wcspbrk.h2
-rw-r--r--sysdeps/s390/ifunc-wcsrchr.h2
-rw-r--r--sysdeps/s390/ifunc-wcsspn.h2
-rw-r--r--sysdeps/s390/ifunc-wmemchr.h2
-rw-r--r--sysdeps/s390/ifunc-wmemcmp.h2
-rw-r--r--sysdeps/s390/ifunc-wmemset.h2
-rw-r--r--sysdeps/s390/iso-8859-1_cp037_z900.c2
-rw-r--r--sysdeps/s390/jmpbuf-offsets.h2
-rw-r--r--sysdeps/s390/jmpbuf-unwind.h2
-rw-r--r--sysdeps/s390/ldsodefs.h2
-rw-r--r--sysdeps/s390/libc-start.c2
-rw-r--r--sysdeps/s390/libc-tls.c2
-rw-r--r--sysdeps/s390/longjmp.c2
-rw-r--r--sysdeps/s390/machine-gmon.h2
-rw-r--r--sysdeps/s390/memccpy-c.c2
-rw-r--r--sysdeps/s390/memccpy-vx.S2
-rw-r--r--sysdeps/s390/memccpy.c2
-rw-r--r--sysdeps/s390/memchr-vx.S2
-rw-r--r--sysdeps/s390/memchr-z900.S2
-rw-r--r--sysdeps/s390/memchr.c2
-rw-r--r--sysdeps/s390/memcmp-z900.S2
-rw-r--r--sysdeps/s390/memcmp.c2
-rw-r--r--sysdeps/s390/memcopy.h2
-rw-r--r--sysdeps/s390/memcpy-z900.S2
-rw-r--r--sysdeps/s390/memcpy.c2
-rw-r--r--sysdeps/s390/memmem-arch13.S2
-rw-r--r--sysdeps/s390/memmem-c.c2
-rw-r--r--sysdeps/s390/memmem-vx.c2
-rw-r--r--sysdeps/s390/memmem.c2
-rw-r--r--sysdeps/s390/memmove-c.c2
-rw-r--r--sysdeps/s390/memmove.c2
-rw-r--r--sysdeps/s390/mempcpy.c2
-rw-r--r--sysdeps/s390/memrchr-c.c2
-rw-r--r--sysdeps/s390/memrchr-vx.S2
-rw-r--r--sysdeps/s390/memrchr.c2
-rw-r--r--sysdeps/s390/memset-z900.S2
-rw-r--r--sysdeps/s390/memset.c2
-rw-r--r--sysdeps/s390/multiarch/8bit-generic.c2
-rw-r--r--sysdeps/s390/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/s390/multiarch/gconv_simple.c2
-rw-r--r--sysdeps/s390/multiarch/iconv/skeleton.c2
-rw-r--r--sysdeps/s390/multiarch/ifunc-impl-list.c6
-rw-r--r--sysdeps/s390/multiarch/ifunc-resolve.h7
-rw-r--r--sysdeps/s390/multiarch/utf16-utf32-z9.c2
-rw-r--r--sysdeps/s390/multiarch/utf8-utf16-z9.c2
-rw-r--r--sysdeps/s390/multiarch/utf8-utf32-z9.c2
-rw-r--r--sysdeps/s390/nptl/Makefile2
-rw-r--r--sysdeps/s390/nptl/bits/struct_mutex.h2
-rw-r--r--sysdeps/s390/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/s390/nptl/pthreaddef.h2
-rw-r--r--sysdeps/s390/nptl/tls.h2
-rw-r--r--sysdeps/s390/rawmemchr-c.c2
-rw-r--r--sysdeps/s390/rawmemchr-vx.S2
-rw-r--r--sysdeps/s390/rawmemchr.c2
-rw-r--r--sysdeps/s390/s390-32/__longjmp.c2
-rw-r--r--sysdeps/s390/s390-32/add_n.S2
-rw-r--r--sysdeps/s390/s390-32/addmul_1.S2
-rw-r--r--sysdeps/s390/s390-32/crti.S2
-rw-r--r--sysdeps/s390/s390-32/crtn.S2
-rw-r--r--sysdeps/s390/s390-32/dl-machine.h40
-rw-r--r--sysdeps/s390/s390-32/dl-trampoline.S2
-rw-r--r--sysdeps/s390/s390-32/dl-trampoline.h2
-rw-r--r--sysdeps/s390/s390-32/mul_1.S2
-rw-r--r--sysdeps/s390/s390-32/s390-mcount.S8
-rw-r--r--sysdeps/s390/s390-32/setjmp.S2
-rw-r--r--sysdeps/s390/s390-32/start.S2
-rw-r--r--sysdeps/s390/s390-32/strncpy-z900.S2
-rw-r--r--sysdeps/s390/s390-32/sub_n.S2
-rw-r--r--sysdeps/s390/s390-32/symbol-hacks.h2
-rw-r--r--sysdeps/s390/s390-32/sysdep.h2
-rw-r--r--sysdeps/s390/s390-32/tst-audit.h2
-rw-r--r--sysdeps/s390/s390-64/Makefile27
-rw-r--r--sysdeps/s390/s390-64/__longjmp.c2
-rw-r--r--sysdeps/s390/s390-64/add_n.S2
-rw-r--r--sysdeps/s390/s390-64/crti.S2
-rw-r--r--sysdeps/s390/s390-64/crtn.S2
-rw-r--r--sysdeps/s390/s390-64/dl-hwcap-check.h23
-rw-r--r--sysdeps/s390/s390-64/dl-hwcaps-subdirs.c15
-rw-r--r--sysdeps/s390/s390-64/dl-machine.h34
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.S2
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.h2
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.S2
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.h8
-rw-r--r--sysdeps/s390/s390-64/setjmp.S2
-rw-r--r--sysdeps/s390/s390-64/start.S2
-rw-r--r--sysdeps/s390/s390-64/strncpy-z900.S2
-rw-r--r--sysdeps/s390/s390-64/sub_n.S2
-rw-r--r--sysdeps/s390/s390-64/sysdep.h2
-rw-r--r--sysdeps/s390/s390-64/tst-audit.h2
-rw-r--r--sysdeps/s390/s390-64/tst-glibc-hwcaps.c54
-rw-r--r--sysdeps/s390/sotruss-lib.c2
-rw-r--r--sysdeps/s390/stackinfo.h2
-rw-r--r--sysdeps/s390/stpcpy-c.c2
-rw-r--r--sysdeps/s390/stpcpy-vx.S2
-rw-r--r--sysdeps/s390/stpcpy.c2
-rw-r--r--sysdeps/s390/stpncpy-c.c2
-rw-r--r--sysdeps/s390/stpncpy-vx.S2
-rw-r--r--sysdeps/s390/stpncpy.c2
-rw-r--r--sysdeps/s390/strcat-c.c2
-rw-r--r--sysdeps/s390/strcat-vx.S2
-rw-r--r--sysdeps/s390/strcat.c2
-rw-r--r--sysdeps/s390/strchr-c.c2
-rw-r--r--sysdeps/s390/strchr-vx.S2
-rw-r--r--sysdeps/s390/strchr.c2
-rw-r--r--sysdeps/s390/strchrnul-c.c2
-rw-r--r--sysdeps/s390/strchrnul-vx.S2
-rw-r--r--sysdeps/s390/strchrnul.c2
-rw-r--r--sysdeps/s390/strcmp-vx.S2
-rw-r--r--sysdeps/s390/strcmp-z900.S2
-rw-r--r--sysdeps/s390/strcmp.c2
-rw-r--r--sysdeps/s390/strcpy-vx.S2
-rw-r--r--sysdeps/s390/strcpy-z900.S2
-rw-r--r--sysdeps/s390/strcpy.c2
-rw-r--r--sysdeps/s390/strcspn-c.c2
-rw-r--r--sysdeps/s390/strcspn-vx.S2
-rw-r--r--sysdeps/s390/strcspn.c2
-rw-r--r--sysdeps/s390/strlen-c.c2
-rw-r--r--sysdeps/s390/strlen-vx.S2
-rw-r--r--sysdeps/s390/strlen.c2
-rw-r--r--sysdeps/s390/strncat-c.c2
-rw-r--r--sysdeps/s390/strncat-vx.S2
-rw-r--r--sysdeps/s390/strncat.c2
-rw-r--r--sysdeps/s390/strncmp-c.c2
-rw-r--r--sysdeps/s390/strncmp-vx.S2
-rw-r--r--sysdeps/s390/strncmp.c2
-rw-r--r--sysdeps/s390/strncpy-vx.S2
-rw-r--r--sysdeps/s390/strncpy.c2
-rw-r--r--sysdeps/s390/strnlen-c.c2
-rw-r--r--sysdeps/s390/strnlen-vx.S2
-rw-r--r--sysdeps/s390/strnlen.c2
-rw-r--r--sysdeps/s390/strpbrk-c.c2
-rw-r--r--sysdeps/s390/strpbrk-vx.S2
-rw-r--r--sysdeps/s390/strpbrk.c2
-rw-r--r--sysdeps/s390/strrchr-c.c2
-rw-r--r--sysdeps/s390/strrchr-vx.S2
-rw-r--r--sysdeps/s390/strrchr.c2
-rw-r--r--sysdeps/s390/strspn-c.c2
-rw-r--r--sysdeps/s390/strspn-vx.S2
-rw-r--r--sysdeps/s390/strspn.c2
-rw-r--r--sysdeps/s390/strstr-arch13.S2
-rw-r--r--sysdeps/s390/strstr-c.c2
-rw-r--r--sysdeps/s390/strstr-vx.c2
-rw-r--r--sysdeps/s390/strstr.c2
-rw-r--r--sysdeps/s390/tst-dl-runtime-mod.S2
-rw-r--r--sysdeps/s390/tst-dl-runtime-profile-audit.c2
-rw-r--r--sysdeps/s390/tst-dl-runtime-profile-noaudit.c2
-rw-r--r--sysdeps/s390/tst-dl-runtime-resolve-audit.c2
-rw-r--r--sysdeps/s390/tst-dl-runtime-resolve-noaudit.c2
-rw-r--r--sysdeps/s390/tst-dl-runtime.c2
-rw-r--r--sysdeps/s390/unwind-arch.h2
-rw-r--r--sysdeps/s390/utf16-utf32-z9.c10
-rw-r--r--sysdeps/s390/utf8-utf16-z9.c14
-rw-r--r--sysdeps/s390/utf8-utf32-z9.c14
-rw-r--r--sysdeps/s390/wcpcpy-c.c2
-rw-r--r--sysdeps/s390/wcpcpy-vx.S2
-rw-r--r--sysdeps/s390/wcpcpy.c2
-rw-r--r--sysdeps/s390/wcpncpy-c.c2
-rw-r--r--sysdeps/s390/wcpncpy-vx.S2
-rw-r--r--sysdeps/s390/wcpncpy.c2
-rw-r--r--sysdeps/s390/wcscat-c.c2
-rw-r--r--sysdeps/s390/wcscat-vx.S2
-rw-r--r--sysdeps/s390/wcscat.c2
-rw-r--r--sysdeps/s390/wcschr-c.c2
-rw-r--r--sysdeps/s390/wcschr-vx.S2
-rw-r--r--sysdeps/s390/wcschr.c2
-rw-r--r--sysdeps/s390/wcschrnul-c.c2
-rw-r--r--sysdeps/s390/wcschrnul-vx.S2
-rw-r--r--sysdeps/s390/wcschrnul.c2
-rw-r--r--sysdeps/s390/wcscmp-c.c2
-rw-r--r--sysdeps/s390/wcscmp-vx.S2
-rw-r--r--sysdeps/s390/wcscmp.c2
-rw-r--r--sysdeps/s390/wcscpy-c.c2
-rw-r--r--sysdeps/s390/wcscpy-vx.S2
-rw-r--r--sysdeps/s390/wcscpy.c2
-rw-r--r--sysdeps/s390/wcscspn-c.c2
-rw-r--r--sysdeps/s390/wcscspn-vx.S2
-rw-r--r--sysdeps/s390/wcscspn.c2
-rw-r--r--sysdeps/s390/wcslen-c.c2
-rw-r--r--sysdeps/s390/wcslen-vx.S2
-rw-r--r--sysdeps/s390/wcslen.c2
-rw-r--r--sysdeps/s390/wcsncat-c.c2
-rw-r--r--sysdeps/s390/wcsncat-vx.S2
-rw-r--r--sysdeps/s390/wcsncat.c2
-rw-r--r--sysdeps/s390/wcsncmp-c.c2
-rw-r--r--sysdeps/s390/wcsncmp-vx.S2
-rw-r--r--sysdeps/s390/wcsncmp.c2
-rw-r--r--sysdeps/s390/wcsncpy-c.c2
-rw-r--r--sysdeps/s390/wcsncpy-vx.S2
-rw-r--r--sysdeps/s390/wcsncpy.c2
-rw-r--r--sysdeps/s390/wcsnlen-c.c2
-rw-r--r--sysdeps/s390/wcsnlen-vx.S2
-rw-r--r--sysdeps/s390/wcsnlen.c2
-rw-r--r--sysdeps/s390/wcspbrk-c.c2
-rw-r--r--sysdeps/s390/wcspbrk-vx.S2
-rw-r--r--sysdeps/s390/wcspbrk.c2
-rw-r--r--sysdeps/s390/wcsrchr-c.c2
-rw-r--r--sysdeps/s390/wcsrchr-vx.S2
-rw-r--r--sysdeps/s390/wcsrchr.c2
-rw-r--r--sysdeps/s390/wcsspn-c.c2
-rw-r--r--sysdeps/s390/wcsspn-vx.S2
-rw-r--r--sysdeps/s390/wcsspn.c2
-rw-r--r--sysdeps/s390/wmemchr-c.c2
-rw-r--r--sysdeps/s390/wmemchr-vx.S2
-rw-r--r--sysdeps/s390/wmemchr.c2
-rw-r--r--sysdeps/s390/wmemcmp-c.c2
-rw-r--r--sysdeps/s390/wmemcmp-vx.S2
-rw-r--r--sysdeps/s390/wmemcmp.c2
-rw-r--r--sysdeps/s390/wmemset-c.c2
-rw-r--r--sysdeps/s390/wmemset-vx.S2
-rw-r--r--sysdeps/s390/wmemset.c2
-rw-r--r--sysdeps/sh/____longjmp_chk.S2
-rw-r--r--sysdeps/sh/_mcount.S2
-rw-r--r--sysdeps/sh/bits/fenv.h2
-rw-r--r--sysdeps/sh/bits/link.h2
-rw-r--r--sysdeps/sh/bits/setjmp.h2
-rw-r--r--sysdeps/sh/bits/wordsize.h2
-rw-r--r--sysdeps/sh/bsd-_setjmp.S2
-rw-r--r--sysdeps/sh/bsd-setjmp.S2
-rw-r--r--sysdeps/sh/crti.S2
-rw-r--r--sysdeps/sh/crtn.S2
-rw-r--r--sysdeps/sh/dl-machine.h15
-rw-r--r--sysdeps/sh/dl-trampoline.S2
-rw-r--r--sysdeps/sh/elf-initfini.h2
-rw-r--r--sysdeps/sh/fpu_control.h2
-rw-r--r--sysdeps/sh/gccframe.h2
-rw-r--r--sysdeps/sh/jmpbuf-offsets.h2
-rw-r--r--sysdeps/sh/jmpbuf-unwind.h2
-rw-r--r--sysdeps/sh/ldsodefs.h2
-rw-r--r--sysdeps/sh/libc-tls.c2
-rw-r--r--sysdeps/sh/libm-test-ulps565
-rw-r--r--sysdeps/sh/libm-test-ulps-name1
-rw-r--r--sysdeps/sh/machine-gmon.h2
-rw-r--r--sysdeps/sh/memcpy.S2
-rw-r--r--sysdeps/sh/memset.S2
-rw-r--r--sysdeps/sh/nptl/pthread_spin_init.c2
-rw-r--r--sysdeps/sh/nptl/pthread_spin_lock.c2
-rw-r--r--sysdeps/sh/nptl/pthread_spin_trylock.S2
-rw-r--r--sysdeps/sh/nptl/pthread_spin_unlock.S2
-rw-r--r--sysdeps/sh/nptl/pthreaddef.h4
-rw-r--r--sysdeps/sh/nptl/tls.h2
-rw-r--r--sysdeps/sh/preconfigure113
-rw-r--r--sysdeps/sh/sh3/__longjmp.S2
-rw-r--r--sysdeps/sh/sh3/setjmp.S2
-rw-r--r--sysdeps/sh/sh4/__longjmp.S2
-rw-r--r--sysdeps/sh/sh4/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/sh/sh4/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fegetenv.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fegetexcept.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fegetmode.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fegetround.c2
-rw-r--r--sysdeps/sh/sh4/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fesetenv.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fesetexcept.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fesetmode.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fesetround.c2
-rw-r--r--sysdeps/sh/sh4/fpu/feupdateenv.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/sh/sh4/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/sh/sh4/fpu/ftestexcept.c2
-rw-r--r--sysdeps/sh/sh4/setjmp.S2
-rw-r--r--sysdeps/sh/sotruss-lib.c2
-rw-r--r--sysdeps/sh/stackinfo.h2
-rw-r--r--sysdeps/sh/start.S2
-rw-r--r--sysdeps/sh/string-fzb.h2
-rw-r--r--sysdeps/sh/strlen.S2
-rw-r--r--sysdeps/sh/sysdep.h3
-rw-r--r--sysdeps/sh/tst-audit.h2
-rw-r--r--sysdeps/sh/unwind-arch.h2
-rw-r--r--sysdeps/sparc/atomic-machine.h2
-rw-r--r--sysdeps/sparc/backtrace.c2
-rw-r--r--sysdeps/sparc/bits/hwcap.h2
-rw-r--r--sysdeps/sparc/bits/link.h2
-rw-r--r--sysdeps/sparc/cpu_relax.c2
-rw-r--r--sysdeps/sparc/crti.S2
-rw-r--r--sysdeps/sparc/crtn.S2
-rw-r--r--sysdeps/sparc/dl-dtprocnum.h2
-rw-r--r--sysdeps/sparc/dl-lookupcfg.h2
-rw-r--r--sysdeps/sparc/dl-procinfo.c63
-rw-r--r--sysdeps/sparc/dl-procinfo.h55
-rw-r--r--sysdeps/sparc/elf-initfini.h2
-rw-r--r--sysdeps/sparc/fpu/bits/fenv.h2
-rw-r--r--sysdeps/sparc/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/sparc/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/sparc/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/sparc/fpu/fegetenv.c2
-rw-r--r--sysdeps/sparc/fpu/fegetexcept.c2
-rw-r--r--sysdeps/sparc/fpu/fegetmode.c2
-rw-r--r--sysdeps/sparc/fpu/fegetround.c2
-rw-r--r--sysdeps/sparc/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/sparc/fpu/fesetenv.c2
-rw-r--r--sysdeps/sparc/fpu/fesetexcept.c2
-rw-r--r--sysdeps/sparc/fpu/fesetmode.c2
-rw-r--r--sysdeps/sparc/fpu/fesetround.c2
-rw-r--r--sysdeps/sparc/fpu/feupdateenv.c2
-rw-r--r--sysdeps/sparc/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/sparc/fpu/fpu_control.h2
-rw-r--r--sysdeps/sparc/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/sparc/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/sparc/fpu/ftestexcept.c2
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps1525
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/sparc/gccframe.h2
-rw-r--r--sysdeps/sparc/ldsodefs.h2
-rw-r--r--sysdeps/sparc/machine-gmon.h2
-rw-r--r--sysdeps/sparc/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/sparc/nptl/tls.h2
-rw-r--r--sysdeps/sparc/sparc-ifunc.h2
-rw-r--r--sysdeps/sparc/sparc-mcount.S2
-rw-r--r--sysdeps/sparc/sparc32/Makefile2
-rw-r--r--sysdeps/sparc/sparc32/__longjmp.S2
-rw-r--r--sysdeps/sparc/sparc32/add_n.S2
-rw-r--r--sysdeps/sparc/sparc32/addmul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/alloca.S2
-rw-r--r--sysdeps/sparc/sparc32/bits/setjmp.h2
-rw-r--r--sysdeps/sparc/sparc32/dl-irel.h2
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h2
-rw-r--r--sysdeps/sparc/sparc32/dl-plt.h2
-rw-r--r--sysdeps/sparc/sparc32/dl-trampoline.S2
-rw-r--r--sysdeps/sparc/sparc32/fpu/e_sqrtl.c2
-rw-r--r--sysdeps/sparc/sparc32/fpu/fix-fp-int-convert-overflow.h2
-rw-r--r--sysdeps/sparc/sparc32/fpu/math-tests-snan-payload.h2
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_signbit.S2
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_signbitl.S2
-rw-r--r--sysdeps/sparc/sparc32/ieee754.h2
-rw-r--r--sysdeps/sparc/sparc32/jmpbuf-offsets.h2
-rw-r--r--sysdeps/sparc/sparc32/jmpbuf-unwind.h2
-rw-r--r--sysdeps/sparc/sparc32/lshift.S2
-rw-r--r--sysdeps/sparc/sparc32/memchr.S2
-rw-r--r--sysdeps/sparc/sparc32/memcpy.S2
-rw-r--r--sysdeps/sparc/sparc32/memset.S2
-rw-r--r--sysdeps/sparc/sparc32/mul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/pthread_spin_lock.S2
-rw-r--r--sysdeps/sparc/sparc32/pthread_spin_trylock.S2
-rw-r--r--sysdeps/sparc/sparc32/pthreaddef.h2
-rw-r--r--sysdeps/sparc/sparc32/q_add.c2
-rw-r--r--sysdeps/sparc/sparc32/q_cmp.c2
-rw-r--r--sysdeps/sparc/sparc32/q_cmpe.c2
-rw-r--r--sysdeps/sparc/sparc32/q_div.c2
-rw-r--r--sysdeps/sparc/sparc32/q_dtoq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_feq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_fge.c2
-rw-r--r--sysdeps/sparc/sparc32/q_fgt.c2
-rw-r--r--sysdeps/sparc/sparc32/q_fle.c2
-rw-r--r--sysdeps/sparc/sparc32/q_flt.c2
-rw-r--r--sysdeps/sparc/sparc32/q_fne.c2
-rw-r--r--sysdeps/sparc/sparc32/q_itoq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_lltoq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_mul.c2
-rw-r--r--sysdeps/sparc/sparc32/q_neg.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtod.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtoi.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtoll.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtos.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtou.c2
-rw-r--r--sysdeps/sparc/sparc32/q_qtoull.c2
-rw-r--r--sysdeps/sparc/sparc32/q_sqrt.c2
-rw-r--r--sysdeps/sparc/sparc32/q_stoq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_sub.c2
-rw-r--r--sysdeps/sparc/sparc32/q_ulltoq.c2
-rw-r--r--sysdeps/sparc/sparc32/q_util.c2
-rw-r--r--sysdeps/sparc/sparc32/q_utoq.c2
-rw-r--r--sysdeps/sparc/sparc32/rshift.S2
-rw-r--r--sysdeps/sparc/sparc32/setjmp.S2
-rw-r--r--sysdeps/sparc/sparc32/sfp-machine.h2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/addmul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/hp-timing.h2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/mul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S2
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/submul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/start.S13
-rw-r--r--sysdeps/sparc/sparc32/stpcpy.S2
-rw-r--r--sysdeps/sparc/sparc32/strcat.S2
-rw-r--r--sysdeps/sparc/sparc32/strchr.S2
-rw-r--r--sysdeps/sparc/sparc32/strcmp.S2
-rw-r--r--sysdeps/sparc/sparc32/strcpy.S2
-rw-r--r--sysdeps/sparc/sparc32/strlen.S2
-rw-r--r--sysdeps/sparc/sparc32/sub_n.S2
-rw-r--r--sysdeps/sparc/sparc32/submul_1.S2
-rw-r--r--sysdeps/sparc/sparc32/tst-audit.h2
-rw-r--r--sysdeps/sparc/sparc64/Makefile2
-rw-r--r--sysdeps/sparc/sparc64/add_n.S2
-rw-r--r--sysdeps/sparc/sparc64/addmul_1.S2
-rw-r--r--sysdeps/sparc/sparc64/align-cpy.S2
-rw-r--r--sysdeps/sparc/sparc64/dl-irel.h2
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h2
-rw-r--r--sysdeps/sparc/sparc64/dl-plt.h2
-rw-r--r--sysdeps/sparc/sparc64/dl-trampoline.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/e_sqrtl.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finite.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finitef.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinf.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinff.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnan.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnanf.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrint.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrintf.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyint.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyintf.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rint.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rintf.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbit.S2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbitf.S2
-rw-r--r--sysdeps/sparc/sparc64/hp-timing.h2
-rw-r--r--sysdeps/sparc/sparc64/jmpbuf-unwind.h2
-rw-r--r--sysdeps/sparc/sparc64/lshift.S2
-rw-r--r--sysdeps/sparc/sparc64/memchr.S2
-rw-r--r--sysdeps/sparc/sparc64/memcmp.S2
-rw-r--r--sysdeps/sparc/sparc64/memcpy.S2
-rw-r--r--sysdeps/sparc/sparc64/memmove.S2
-rw-r--r--sysdeps/sparc/sparc64/memset.S2
-rw-r--r--sysdeps/sparc/sparc64/mul_1.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memset.h2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memmove.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mempcpy.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara1.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara4.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara7.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-ultra1.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n.c2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1.c2
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_lock.S2
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_trylock.S2
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_unlock.S2
-rw-r--r--sysdeps/sparc/sparc64/pthreaddef.h2
-rw-r--r--sysdeps/sparc/sparc64/qp_add.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_cmp.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_cmpe.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_div.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_dtoq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_feq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_fge.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_fgt.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_fle.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_flt.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_fne.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_itoq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_mul.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_neg.S2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtod.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoi.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtos.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoui.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoux.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_qtox.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_sqrt.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_stoq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_sub.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_uitoq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_util.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_uxtoq.c2
-rw-r--r--sysdeps/sparc/sparc64/qp_xtoq.c2
-rw-r--r--sysdeps/sparc/sparc64/rawmemchr.S2
-rw-r--r--sysdeps/sparc/sparc64/rshift.S2
-rw-r--r--sysdeps/sparc/sparc64/sfp-machine.h2
-rw-r--r--sysdeps/sparc/sparc64/start.S6
-rw-r--r--sysdeps/sparc/sparc64/stpcpy.S2
-rw-r--r--sysdeps/sparc/sparc64/stpncpy.S2
-rw-r--r--sysdeps/sparc/sparc64/strcat.S2
-rw-r--r--sysdeps/sparc/sparc64/strchr.S2
-rw-r--r--sysdeps/sparc/sparc64/strcmp.S2
-rw-r--r--sysdeps/sparc/sparc64/strcpy.S2
-rw-r--r--sysdeps/sparc/sparc64/strcspn.S2
-rw-r--r--sysdeps/sparc/sparc64/strlen.S2
-rw-r--r--sysdeps/sparc/sparc64/strncmp.S2
-rw-r--r--sysdeps/sparc/sparc64/strncpy.S2
-rw-r--r--sysdeps/sparc/sparc64/strpbrk.S2
-rw-r--r--sysdeps/sparc/sparc64/strspn.S2
-rw-r--r--sysdeps/sparc/sparc64/sub_n.S2
-rw-r--r--sysdeps/sparc/sparc64/submul_1.S2
-rw-r--r--sysdeps/sparc/sparc64/tst-audit.h2
-rw-r--r--sysdeps/sparc/stackinfo.h2
-rw-r--r--sysdeps/sparc/sysdep.h2
-rw-r--r--sysdeps/sparc/thread_pointer.h (renamed from sysdeps/riscv/rvd/s_copysign.c)21
-rw-r--r--sysdeps/sparc/unwind-arch.h2
-rw-r--r--sysdeps/unix/Makefile2
-rw-r--r--sysdeps/unix/alpha/sysdep.S2
-rw-r--r--sysdeps/unix/arm/sysdep.S2
-rw-r--r--sysdeps/unix/arm/sysdep.h2
-rw-r--r--sysdeps/unix/bsd/bits/sockaddr.h2
-rw-r--r--sysdeps/unix/bsd/getpt.c2
-rw-r--r--sysdeps/unix/bsd/gtty.c2
-rw-r--r--sysdeps/unix/bsd/stty.c2
-rw-r--r--sysdeps/unix/bsd/tcdrain.c2
-rw-r--r--sysdeps/unix/bsd/tcflow.c2
-rw-r--r--sysdeps/unix/bsd/tcflush.c2
-rw-r--r--sysdeps/unix/bsd/tcgetattr.c2
-rw-r--r--sysdeps/unix/bsd/tcgetpgrp.c2
-rw-r--r--sysdeps/unix/bsd/tcsendbrk.c2
-rw-r--r--sysdeps/unix/bsd/tcsetattr.c8
-rw-r--r--sysdeps/unix/bsd/tcsetpgrp.c2
-rw-r--r--sysdeps/unix/bsd/ualarm.c2
-rw-r--r--sysdeps/unix/bsd/unlockpt.c2
-rw-r--r--sysdeps/unix/get_child_max.c2
-rw-r--r--sysdeps/unix/getlogin.c2
-rw-r--r--sysdeps/unix/getlogin_r.c2
-rw-r--r--sysdeps/unix/getpagesize.c2
-rw-r--r--sysdeps/unix/grantpt.c2
-rw-r--r--sysdeps/unix/i386/sysdep.h2
-rw-r--r--sysdeps/unix/ifreq.c2
-rw-r--r--sysdeps/unix/mips/mips32/sysdep.h2
-rw-r--r--sysdeps/unix/mips/mips64/sysdep.h2
-rw-r--r--sysdeps/unix/mips/sysdep.S2
-rw-r--r--sysdeps/unix/mips/sysdep.h2
-rw-r--r--sysdeps/unix/powerpc/sysdep.h2
-rw-r--r--sysdeps/unix/sh/sysdep.S2
-rw-r--r--sysdeps/unix/sh/sysdep.h2
-rw-r--r--sysdeps/unix/sockatmark.c2
-rw-r--r--sysdeps/unix/syscall-template.S2
-rw-r--r--sysdeps/unix/syscall.S2
-rw-r--r--sysdeps/unix/sysdep.h175
-rw-r--r--sysdeps/unix/sysv/linux/Makefile85
-rw-r--r--sysdeps/unix/sysv/linux/Versions15
-rw-r--r--sysdeps/unix/sysv/linux/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/_exit.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/Makefile145
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/arch-pkey.h53
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h16
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/mman.h10
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/clone.S8
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/clone3.S6
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.c9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-cache.h15
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c24
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/getcontext.S22
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ioctl.S2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc-start.h62
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libmvec.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/makecontext.c39
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pkey_get.c73
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pkey_set.c113
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pointer_guard.h37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/setcontext.S72
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/swapcontext.S37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S59
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.h12
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c190
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh (renamed from sysdeps/nios2/Makefile)31
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c62
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h39
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c (renamed from sysdeps/unix/sysv/linux/nios2/bits/timesize.h)15
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c (renamed from sysdeps/nios2/tst-file-align.h)13
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c (renamed from sysdeps/nios2/elf-initfini.h)13
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c101
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c41
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c (renamed from sysdeps/loongarch/fpu/s_fmaximumf.c)41
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c27
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c (renamed from sysdeps/unix/sysv/linux/i386/dl-procinfo.h)48
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h7
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h78
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/vfork.S9
-rwxr-xr-xsysdeps/unix/sysv/linux/aarch64/vltest.py2
-rw-r--r--sysdeps/unix/sysv/linux/accept.c2
-rw-r--r--sysdeps/unix/sysv/linux/accept4.c2
-rw-r--r--sysdeps/unix/sysv/linux/access.c2
-rw-r--r--sysdeps/unix/sysv/linux/adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/aio_misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/aio_sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/dirent.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/ioctls.h36
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/netdb.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h)45
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h13
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/wordsize.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/dl-auxv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fstatfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fstatfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getegid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/geteuid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gethostname.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getppid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/globfree.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel-features.h13
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel_termios.h43
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/alpha/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/oldglob.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getrusage.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_setitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_utimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/rt_sigaction.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/select.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setfpucw.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/settimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/io.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall_cancel.S80
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alphasort64.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/Makefile9
-rw-r--r--sysdeps/unix/sysv/linux/arc/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/arc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arc/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/shlib-versions4
-rw-r--r--sysdeps/unix/sysv/linux/arc/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sigrestorer.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/syscall_cancel.S56
-rw-r--r--sysdeps/unix/sysv/linux/arc/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/arch-fd_to_filename.h2
-rw-r--r--sysdeps/unix/sysv/linux/arch-fork.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/arm/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/arm/arm-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/hwcap.h10
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.c66
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.h73
-rw-r--r--sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/ioperm.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc-do-syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigrestorer.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscall_cancel.S78
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/tls.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/bind.c2
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl-linux.h5
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/in.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctl-types.h13
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctls.h101
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/local_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-linux.h5
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-shared.h24
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mqueue.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/msq.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/param.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/posix_opt.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-prregset.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ptrace-shared.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h63
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/semaphore.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/shm.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigevent-consts.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo-consts.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signal_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstksz.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/spawn_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ss_flags.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statvfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statx.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/stdio_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cflag.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/bits/termios-baud.h)41
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-struct.h13
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-tcflow.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios.h52
-rw-r--r--sysdeps/unix/sysv/linux/bits/time.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio-ext.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/unistd_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/utsname.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/waitflags.h2
-rw-r--r--sysdeps/unix/sysv/linux/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/cfsetspeed.c59
-rw-r--r--sysdeps/unix/sysv/linux/check_native.c2
-rw-r--r--sysdeps/unix/sysv/linux/check_pf.c2
-rw-r--r--sysdeps/unix/sysv/linux/chmod.c2
-rw-r--r--sysdeps/unix/sysv/linux/chown.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_getcpuclockid.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_getres.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_nanosleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone-pidfd-support.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone3.h2
-rw-r--r--sysdeps/unix/sysv/linux/close.c2
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel_nostatus.c (renamed from sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c)20
-rw-r--r--sysdeps/unix/sysv/linux/closedir.c2
-rw-r--r--sysdeps/unix/sysv/linux/closefrom_fallback.c2
-rw-r--r--sysdeps/unix/sysv/linux/cmsg_nxthdr.c2
-rw-r--r--sysdeps/unix/sysv/linux/cnd_timedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/connect.c2
-rw-r--r--sysdeps/unix/sysv/linux/convert_scm_timestamps.c2
-rw-r--r--sysdeps/unix/sysv/linux/copy_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/creat.c2
-rw-r--r--sysdeps/unix/sysv/linux/creat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/csky/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/csky/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/csky/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/syscall_cancel.S114
-rw-r--r--sysdeps/unix/sysv/linux/csky/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/default-sched.h2
-rw-r--r--sysdeps/unix/sysv/linux/device-nrs.h2
-rw-r--r--sysdeps/unix/sysv/linux/dirfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/dirstream.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-affinity.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-early_allocate.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-execstack.c74
-rw-r--r--sysdeps/unix/sysv/linux/dl-execve.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-extra_tls.h71
-rw-r--r--sysdeps/unix/sysv/linux/dl-openat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-origin.c25
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-parse_auxv.h9
-rw-r--r--sysdeps/unix/sysv/linux/dl-rseq-symbols.S29
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.c19
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso-setup.c7
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso-setup.h5
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-write.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-writev.h2
-rw-r--r--sysdeps/unix/sysv/linux/dup2.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_pwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_pwait2.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_wait.c2
-rw-r--r--sysdeps/unix/sysv/linux/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/errlist-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/errqueue.h2
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_read.c2
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_write.c2
-rw-r--r--sysdeps/unix/sysv/linux/execveat.c2
-rw-r--r--sysdeps/unix/sysv/linux/faccessat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fanotify_mark.c2
-rw-r--r--sysdeps/unix/sysv/linux/fatal-prepare.h2
-rw-r--r--sysdeps/unix/sysv/linux/fchmodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/fdatasync.c2
-rw-r--r--sysdeps/unix/sysv/linux/fdopendir.c2
-rw-r--r--sysdeps/unix/sysv/linux/features-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/fexecve.c2
-rw-r--r--sysdeps/unix/sysv/linux/filter-nr-syscalls.awk2
-rw-r--r--sysdeps/unix/sysv/linux/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/fpathconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstat64.c6
-rw-r--r--sysdeps/unix/sysv/linux/fstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fsync.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftime.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimens.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimesat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/gai_sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/gen-syscall-h.awk2
-rw-r--r--sysdeps/unix/sysv/linux/gentempfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/getclktck.c2
-rw-r--r--sysdeps/unix/sysv/linux/getcpu.c2
-rw-r--r--sysdeps/unix/sysv/linux/getcwd.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdents.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdents64.c99
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries64.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdtsz.c2
-rw-r--r--sysdeps/unix/sysv/linux/getentropy.c2
-rw-r--r--sysdeps/unix/sysv/linux/gethostid.c2
-rw-r--r--sysdeps/unix/sysv/linux/getipv4sourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/getitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/getloadavg.c2
-rw-r--r--sysdeps/unix/sysv/linux/getlogin.c2
-rw-r--r--sysdeps/unix/sysv/linux/getlogin_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpagesize.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpeername.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpriority.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrandom-internal.h29
-rw-r--r--sysdeps/unix/sysv/linux/getrandom.c331
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrusage.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsockopt.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.h2
-rw-r--r--sysdeps/unix/sysv/linux/getsysstats.c2
-rw-r--r--sysdeps/unix/sysv/linux/gettimeofday.c14
-rw-r--r--sysdeps/unix/sysv/linux/glibcsyscalls.py2
-rw-r--r--sysdeps/unix/sysv/linux/glob-lstat-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64-lstat-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64-time64.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree64-time64.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree64.c2
-rw-r--r--sysdeps/unix/sysv/linux/grantpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ioctls.h36
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/wordsize.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/clone.S65
-rw-r--r--sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist20
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/hppa/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/cachectl.h (renamed from sysdeps/unix/sysv/linux/nios2/sys/cachectl.h)11
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscall_cancel.S81
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/vfork.S53
-rw-r--r--sysdeps/unix/sysv/linux/i386/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/i386/brk.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-writev.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/ldconfig.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-do-syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/startup.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall_cancel.S104
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/tst-bz21269.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/if_index.c43
-rw-r--r--sysdeps/unix/sysv/linux/ifaddrs.c2
-rw-r--r--sysdeps/unix/sysv/linux/ifreq.c2
-rw-r--r--sysdeps/unix/sysv/linux/include/bits/mman-shared.h16
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/mount.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/sysinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/inotify_init.c2
-rw-r--r--sysdeps/unix/sysv/linux/internal-ioctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/internal-signals.h11
-rw-r--r--sysdeps/unix/sysv/linux/internal-sigset.h4
-rw-r--r--sysdeps/unix/sysv/linux/internal-stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/ioctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/ipc_ops.h2
-rw-r--r--sysdeps/unix/sysv/linux/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/isatty.c (renamed from sysdeps/sparc/dl-tls.h)21
-rw-r--r--sysdeps/unix/sysv/linux/isatty_nostatus.c (renamed from sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h)16
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/kernel-posix-timers.h2
-rw-r--r--sysdeps/unix/sysv/linux/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/kernel_termios.h37
-rw-r--r--sysdeps/unix/sysv/linux/lchown.c2
-rw-r--r--sysdeps/unix/sysv/linux/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/libc-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/libc_fatal.c2
-rw-r--r--sysdeps/unix/sysv/linux/libc_sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/link.c2
-rw-r--r--sysdeps/unix/sysv/linux/linux_fsinfo.h3
-rw-r--r--sysdeps/unix/sysv/linux/listen.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h3
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/rseq.h36
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/cpu-features.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/cpu-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h21
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/libc-start.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S (renamed from sysdeps/unix/sysv/linux/nios2/vfork.S)52
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/lseek.c2
-rw-r--r--sysdeps/unix/sysv/linux/lseek64.c2
-rw-r--r--sysdeps/unix/sysv/linux/lstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/lstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/lutimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/getpagesize.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-helpers.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mremap.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/reg.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall_cancel.S84
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/machine-sp.h2
-rw-r--r--sysdeps/unix/sysv/linux/malloc-hugepages.c2
-rw-r--r--sysdeps/unix/sysv/linux/malloc-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clock-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/pselect32.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S61
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/Makefile7
-rw-r--r--sysdeps/unix/sysv/linux/mips/Versions4
-rw-r--r--sysdeps/unix/sysv/linux/mips/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/_test_and_set.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h14
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/fxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_termios.h37
-rw-r--r--sysdeps/unix/sysv/linux/mips/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/lxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S128
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/getdents64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/msgctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h (renamed from sysdeps/nios2/bits/dl_find_object.h)19
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/semctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/shmctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S112
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/sysdep.h54
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/xstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/old_termios.h31
-rw-r--r--sysdeps/unix/sysv/linux/mips/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/sysmips.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/ustat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/mkdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/mknodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mlock2.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/mq_close.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_getattr.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_notify.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_open.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_receive.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_send.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_setattr.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedreceive.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedsend.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_unlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/mremap-failure.h2
-rw-r--r--sysdeps/unix/sysv/linux/mremap.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgget.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgrcv.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgsnd.c2
-rw-r--r--sysdeps/unix/sysv/linux/msync.c2
-rw-r--r--sysdeps/unix/sysv/linux/mtx_timedlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/nanosleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/net/ethernet.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_arp.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_packet.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_shaper.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_slip.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/route.h2
-rw-r--r--sysdeps/unix/sysv/linux/netash/ash.h2
-rw-r--r--sysdeps/unix/sysv/linux/netatalk/at.h2
-rw-r--r--sysdeps/unix/sysv/linux/netax25/ax25.h2
-rw-r--r--sysdeps/unix/sysv/linux/neteconet/ec.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_ether.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_fddi.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_tr.h2
-rw-r--r--sysdeps/unix/sysv/linux/netipx/ipx.h2
-rw-r--r--sysdeps/unix/sysv/linux/netiucv/iucv.h2
-rw-r--r--sysdeps/unix/sysv/linux/netlink_assert_response.c2
-rw-r--r--sysdeps/unix/sysv/linux/netlinkaccess.h2
-rw-r--r--sysdeps/unix/sysv/linux/netpacket/packet.h2
-rw-r--r--sysdeps/unix/sysv/linux/netrom/netrom.h2
-rw-r--r--sysdeps/unix/sysv/linux/netrose/rose.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Makefile18
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/nios2/arch-syscall.h338
-rw-r--r--sysdeps/unix/sysv/linux/nios2/atomic-machine.h83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/statfs.h75
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h135
-rw-r--r--sysdeps/unix/sysv/linux/nios2/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/cacheflush.c29
-rw-r--r--sysdeps/unix/sysv/linux/nios2/clone.S83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure5
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure.ac4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/getcontext.S66
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel-features.h24
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libanl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2875
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist28
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libdl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libm.abilist880
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libresolv.abilist67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/librt.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libutil.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/localplt.data30
-rw-r--r--sysdeps/unix/sysv/linux/nios2/makecontext.c79
-rw-r--r--sysdeps/unix/sysv/linux/nios2/pointer_guard.h40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/send.c9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/setcontext.S115
-rw-r--r--sysdeps/unix/sysv/linux/nios2/shlib-versions2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/swapcontext.S125
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h61
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/user.h58
-rw-r--r--sysdeps/unix/sysv/linux/nios2/syscall.S36
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.S50
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.h223
-rw-r--r--sysdeps/unix/sysv/linux/nios2/time64-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ucontext_i.sym29
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h31
-rw-r--r--sysdeps/unix/sysv/linux/not-errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/nscd_setup_thread.c2
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/old_termios.h23
-rw-r--r--sysdeps/unix/sysv/linux/olddirent.h4
-rw-r--r--sysdeps/unix/sysv/linux/open.c2
-rw-r--r--sysdeps/unix/sysv/linux/open64.c2
-rw-r--r--sysdeps/unix/sysv/linux/open64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/open_by_handle_at.c2
-rw-r--r--sysdeps/unix/sysv/linux/open_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/opendir.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/or1k/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/getcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/or1k/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/or1k_clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/setcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/swapcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/syscall_cancel.S63
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c5
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.h2
-rw-r--r--sysdeps/unix/sysv/linux/pause.c2
-rw-r--r--sysdeps/unix/sysv/linux/personality.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_getpid.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_spawn.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_spawnp.c2
-rw-r--r--sysdeps/unix/sysv/linux/pipe.c2
-rw-r--r--sysdeps/unix/sysv/linux/pkey_get.c7
-rw-r--r--sysdeps/unix/sysv/linux/pkey_mprotect.c6
-rw-r--r--sysdeps/unix/sysv/linux/pkey_set.c7
-rw-r--r--sysdeps/unix/sysv/linux/poll.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_madvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h13
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ppc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h)44
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h65
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/configure43
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/configure.ac19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cpu-features.c46
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cpu-features.h101
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-auxv.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c117
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h (renamed from sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c)22
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/htm.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h29
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel_termios.h53
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S37
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S14
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist108
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S86
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.h45
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/time.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c2
-rw-r--r--sysdeps/unix/sysv/linux/ppoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/ppoll_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv2.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv64.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv64v2.c2
-rw-r--r--sysdeps/unix/sysv/linux/prlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/prlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/process_vm_readv.c2
-rw-r--r--sysdeps/unix/sysv/linux/process_vm_writev.c2
-rw-r--r--sysdeps/unix/sysv/linux/procutils.c2
-rw-r--r--sysdeps/unix/sysv/linux/procutils.h2
-rw-r--r--sysdeps/unix/sysv/linux/prof-freq.c2
-rw-r--r--sysdeps/unix/sysv/linux/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/pselect.c2
-rw-r--r--sysdeps/unix/sysv/linux/pselect32.c2
-rw-r--r--sysdeps/unix/sysv/linux/ptrace.c2
-rw-r--r--sysdeps/unix/sysv/linux/ptsname.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwrite.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwrite64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev2.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64v2.c2
-rw-r--r--sysdeps/unix/sysv/linux/read.c2
-rw-r--r--sysdeps/unix/sysv/linux/read_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/readahead.c2
-rw-r--r--sysdeps/unix/sysv/linux/readdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/readdir64.c92
-rw-r--r--sysdeps/unix/sysv/linux/readdir64_r.c129
-rw-r--r--sysdeps/unix/sysv/linux/readdir_r.c13
-rw-r--r--sysdeps/unix/sysv/linux/readlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/readonly-area-fallback.c (renamed from sysdeps/unix/sysv/linux/readonly-area.c)23
-rw-r--r--sysdeps/unix/sysv/linux/readv.c2
-rw-r--r--sysdeps/unix/sysv/linux/reboot.c2
-rw-r--r--sysdeps/unix/sysv/linux/recv.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvfrom.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvmmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/rename.c2
-rw-r--r--sysdeps/unix/sysv/linux/renameat.c2
-rw-r--r--sysdeps/unix/sysv/linux/renameat2.c2
-rw-r--r--sysdeps/unix/sysv/linux/rewinddir.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/rseq.h44
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/flush-icache.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/hwprobe.c6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/riscv/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h42
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/syscall.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/syscall_cancel.S67
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/rmdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/rseq-internal.h99
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/elfclass.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/hwcap.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmp.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmpx.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/dl-procinfo.h48
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.c5
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/htm.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/jmp-unwind.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/ldconfig.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/libpthread-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/mmap_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S62
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S62
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysconf.c7
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c2
-rw-r--r--sysdeps/unix/sysv/linux/safe-fatal.h2
-rw-r--r--sysdeps/unix/sysv/linux/scandir64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_getaffinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_getattr.c (renamed from sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h)17
-rw-r--r--sysdeps/unix/sysv/linux/sched_getcpu.c5
-rw-r--r--sysdeps/unix/sysv/linux/sched_rr_gi.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_setaffinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_setattr.c (renamed from sysdeps/aarch64/dl-tls.h)19
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi.h2
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/scsi/sg.h2
-rw-r--r--sysdeps/unix/sysv/linux/seekdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/select.c2
-rw-r--r--sysdeps/unix/sysv/linux/semctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/semget.c2
-rw-r--r--sysdeps/unix/sysv/linux/semop.c2
-rw-r--r--sysdeps/unix/sysv/linux/semtimedop.c2
-rw-r--r--sysdeps/unix/sysv/linux/send.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendfile.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendfile64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendmmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendto.c2
-rw-r--r--sysdeps/unix/sysv/linux/set-freeres-os.h2
-rw-r--r--sysdeps/unix/sysv/linux/setegid.c2
-rw-r--r--sysdeps/unix/sysv/linux/seteuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setgid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/setipv4sourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/setitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/setregid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setresgid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setresuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setreuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/setsockopt.c2
-rw-r--r--sysdeps/unix/sysv/linux/setsourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/settimeofday.c6
-rw-r--r--sysdeps/unix/sysv/linux/settimezone.c2
-rw-r--r--sysdeps/unix/sysv/linux/setuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setvmaname.c47
-rw-r--r--sysdeps/unix/sysv/linux/setvmaname.h10
-rw-r--r--sysdeps/unix/sysv/linux/sh/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sh/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/getcontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/syscall_cancel.S126
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/shmat.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmdt.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmget.c2
-rw-r--r--sysdeps/unix/sysv/linux/shutdown.c2
-rw-r--r--sysdeps/unix/sysv/linux/siglist-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/signalfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigpending.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigprocmask.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigset-cvt-mask.h2
-rw-r--r--sysdeps/unix/sysv/linux/sigsetops.h2
-rw-r--r--sysdeps/unix/sysv/linux/sigstack.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigtimedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigwait.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c4
-rw-r--r--sysdeps/unix/sysv/linux/single-thread.h2
-rw-r--r--sysdeps/unix/sysv/linux/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/socket.c2
-rw-r--r--sysdeps/unix/sysv/linux/socketcall.h37
-rw-r--r--sysdeps/unix/sysv/linux/socketpair.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Versions4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/setjmp.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h)41
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getshmlba.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel_termios.h40
-rw-r--r--sysdeps/unix/sysv/linux/sparc/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/old_termios.h31
-rw-r--r--sysdeps/unix/sysv/linux/sparc/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/clone.S6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S80
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S74
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sysdep.h76
-rw-r--r--sysdeps/unix/sysv/linux/spawn_int_def.h2
-rw-r--r--sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c2
-rw-r--r--sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c2
-rw-r--r--sysdeps/unix/sysv/linux/spawni.c18
-rw-r--r--sysdeps/unix/sysv/linux/speed.c365
-rw-r--r--sysdeps/unix/sysv/linux/splice.c2
-rw-r--r--sysdeps/unix/sysv/linux/startup.h2
-rw-r--r--sysdeps/unix/sysv/linux/stat.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat_t64_cp.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat_t64_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/statfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/statfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/statvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/statvfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/struct_stat_time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/symlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/sync_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/fanotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/fsuid.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/kd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/mount.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/pci.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/personality.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/pidfd.h16
-rw-r--r--sysdeps/unix/sysv/linux/sys/prctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/quota.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/raw.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/reboot.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/rseq.h13
-rw-r--r--sysdeps/unix/sysv/linux/sys/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/swap.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/syscall-names.list12
-rw-r--r--sysdeps/unix/sysv/linux/syscall.c2
-rw-r--r--sysdeps/unix/sysv/linux/syscall_cancel.c73
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysconf-sigstksz.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-cancel.h14
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/tcdrain.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcflow.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcflush.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcgetattr.c88
-rw-r--r--sysdeps/unix/sysv/linux/tcsendbrk.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcsetattr.c131
-rw-r--r--sysdeps/unix/sysv/linux/tee.c2
-rw-r--r--sysdeps/unix/sysv/linux/telldir.c2
-rw-r--r--sysdeps/unix/sysv/linux/termio.h6
-rw-r--r--sysdeps/unix/sysv/linux/termios-kernel-consts.sym26
-rw-r--r--sysdeps/unix/sysv/linux/termios_internals.h129
-rw-r--r--sysdeps/unix/sysv/linux/test-errno-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/thrd_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/thrd_sleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/time-clockid.h2
-rw-r--r--sysdeps/unix/sysv/linux/time.c9
-rw-r--r--sysdeps/unix/sysv/linux/timer_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_delete.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_getoverr.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_routines.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/timerfd_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timerfd_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/times.c2
-rw-r--r--sysdeps/unix/sysv/linux/timespec_get.c2
-rw-r--r--sysdeps/unix/sysv/linux/timespec_getres.c2
-rw-r--r--sysdeps/unix/sysv/linux/tls-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tls-internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/truncate.c2
-rw-r--r--sysdeps/unix/sysv/linux/truncate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity-pid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-align-clone-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-align-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clock_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone2-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone2.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone3-internal.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone3.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-epoll-ioctls.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-epoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate-common.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fanotify.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-getauxval.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-getdents64.c27
-rw-r--r--sysdeps/unix/sysv/linux/tst-getpid1-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid-kill.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-glibcsyscalls.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-linux-mremap1.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-memfd_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-misalign-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-mlock2.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-mman-consts.py4
-rwxr-xr-xsysdeps/unix/sysv/linux/tst-mount-compile.py2
-rwxr-xr-xsysdeps/unix/sysv/linux/tst-mount-consts.py6
-rw-r--r--sysdeps/unix/sysv/linux/tst-mount.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-nolink-libc.c25
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-o_path-locks.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-personality.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd-consts.py4
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd_getpid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pkey.c59
-rw-r--r--sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ppoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-process_madvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-process_mrelease.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-quota.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-readdir64-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-rlimit-infinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-disable-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-disable.c79
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-nptl.c11
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range.c195
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq.c99
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq.h5
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c72
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched-consts.py56
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c116
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched_setattr.c96
-rw-r--r--sysdeps/unix/sysv/linux/tst-scm_rights.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c185
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-signal-numbers.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigtimedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-affinity.c9
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c38
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-consts.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-timestamp.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-cgroup.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-pidfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sync_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-syscall-list.sh2
-rw-r--r--sysdeps/unix/sysv/linux/tst-syscall-restart.c112
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvsem-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvshm-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-termios-linux.c592
-rw-r--r--sysdeps/unix/sysv/linux/tst-tgkill.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-time-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-timerfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-common.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-direct.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-namespace.c2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.h2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/tv32-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/umount.c2
-rw-r--r--sysdeps/unix/sysv/linux/umount2.c2
-rw-r--r--sysdeps/unix/sysv/linux/unlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/unlockpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/update-syscall-lists.py2
-rw-r--r--sysdeps/unix/sysv/linux/updwtmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/ustat.c2
-rw-r--r--sysdeps/unix/sysv/linux/utime.c2
-rw-r--r--sysdeps/unix/sysv/linux/utimensat.c5
-rw-r--r--sysdeps/unix/sysv/linux/utimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/utmp_file.c2
-rw-r--r--sysdeps/unix/sysv/linux/versionsort64.c2
-rw-r--r--sysdeps/unix/sysv/linux/vmsplice.c2
-rw-r--r--sysdeps/unix/sysv/linux/wait3.c2
-rw-r--r--sysdeps/unix/sysv/linux/wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/waitid.c2
-rw-r--r--sysdeps/unix/sysv/linux/write.c2
-rw-r--r--sysdeps/unix/sysv/linux/write_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/writev.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/arch-pkey.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/ipctypes.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/platform/features.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-hwcap2.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elf-read-prop.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/longjmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_get.c7
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_set.c7
-rw-r--r--sysdeps/unix/sysv/linux/x86/setjmpP.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/debugreg.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/io.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/reg.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/vm86.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/time.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Makefile10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/__start_context.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-cet.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S57
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h76
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/lseek.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h34
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/times.c2
-rw-r--r--sysdeps/unix/sysv/linux/xmknod.c2
-rw-r--r--sysdeps/unix/sysv/linux/xmknodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.h2
-rw-r--r--sysdeps/unix/sysv/linux/xstatover.h2
-rw-r--r--sysdeps/unix/x86_64/sysdep.S2
-rw-r--r--sysdeps/unix/x86_64/sysdep.h2
-rw-r--r--sysdeps/wordsize-32/Makefile4
-rw-r--r--sysdeps/wordsize-32/bits/wordsize.h2
-rw-r--r--sysdeps/wordsize-32/divdi3-symbol-hacks.h2
-rw-r--r--sysdeps/wordsize-32/divdi3.c2
-rw-r--r--sysdeps/wordsize-32/llabs.c2
-rw-r--r--sysdeps/wordsize-32/lldiv.c2
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-int-d.input266
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-int-i.input1526
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-long-d.input266
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-long-i.input1526
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-uint-b.input644
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-uint-o.input434
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-uint-u.input224
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-uint-x.input714
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-uint-xx.input714
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-ulong-b.input644
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-ulong-o.input434
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-ulong-u.input224
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-ulong-x.input714
-rw-r--r--sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input714
-rw-r--r--sysdeps/wordsize-64/Makefile5
-rw-r--r--sysdeps/wordsize-64/bits/wordsize.h2
-rw-r--r--sysdeps/wordsize-64/labs.c2
-rw-r--r--sysdeps/wordsize-64/ldiv.c2
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-int-d.input266
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-int-i.input1526
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-long-d.input266
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-long-i.input1526
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-uint-b.input644
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-uint-o.input434
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-uint-u.input224
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-uint-x.input714
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-uint-xx.input714
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-ulong-b.input644
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-ulong-o.input434
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-ulong-u.input224
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-ulong-x.input742
-rw-r--r--sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input742
-rw-r--r--sysdeps/wordsize-64/tst-writev.c2
-rw-r--r--sysdeps/x86/Makefile52
-rw-r--r--sysdeps/x86/__longjmp_cancel.S2
-rw-r--r--sysdeps/x86/abi-note.c2
-rw-r--r--sysdeps/x86/atomic-machine.h2
-rw-r--r--sysdeps/x86/bits/dl_find_object.h2
-rw-r--r--sysdeps/x86/bits/floatn.h32
-rw-r--r--sysdeps/x86/bits/flt-eval-method.h2
-rw-r--r--sysdeps/x86/bits/fp-logb.h2
-rw-r--r--sysdeps/x86/bits/indirect-return.h2
-rw-r--r--sysdeps/x86/bits/link.h2
-rw-r--r--sysdeps/x86/bits/platform/features.h4
-rw-r--r--sysdeps/x86/bits/platform/x86.h2
-rw-r--r--sysdeps/x86/bits/setjmp.h2
-rw-r--r--sysdeps/x86/cacheinfo.c2
-rw-r--r--sysdeps/x86/cacheinfo.h2
-rw-r--r--sysdeps/x86/configure34
-rw-r--r--sysdeps/x86/configure.ac10
-rw-r--r--sysdeps/x86/cpu-features.c437
-rw-r--r--sysdeps/x86/cpu-tunables.c8
-rw-r--r--sysdeps/x86/dl-cacheinfo.h115
-rw-r--r--sysdeps/x86/dl-diagnostics-cpu.c4
-rw-r--r--sysdeps/x86/dl-get-cpu-features.c2
-rw-r--r--sysdeps/x86/dl-hwcap.h12
-rw-r--r--sysdeps/x86/dl-hwcap2.h2
-rw-r--r--sysdeps/x86/dl-isa-level.h2
-rw-r--r--sysdeps/x86/dl-lookupcfg.h2
-rw-r--r--sysdeps/x86/dl-minsigstacksize.h2
-rw-r--r--sysdeps/x86/dl-new-hash.h2
-rw-r--r--sysdeps/x86/dl-procinfo.c18
-rw-r--r--sysdeps/x86/dl-prop.h4
-rw-r--r--sysdeps/x86/dl-tunables.list2
-rw-r--r--sysdeps/x86/elf-initfini.h2
-rw-r--r--sysdeps/x86/elide.h2
-rw-r--r--sysdeps/x86/fpu/Makefile12
-rw-r--r--sysdeps/x86/fpu/bits/fenv.h2
-rw-r--r--sysdeps/x86/fpu/bits/math-vector.h2
-rw-r--r--sysdeps/x86/fpu/e_sqrtf128.c2
-rw-r--r--sysdeps/x86/fpu/e_sqrtl.c2
-rw-r--r--sysdeps/x86/fpu/finclude/math-vector-fortran.h2
-rw-r--r--sysdeps/x86/fpu/fix-fp-int-compare-invalid.h2
-rw-r--r--sysdeps/x86/fpu/math-barriers.h2
-rw-r--r--sysdeps/x86/fpu/math_private.h2
-rw-r--r--sysdeps/x86/fpu/nan-pseudo-number.h2
-rw-r--r--sysdeps/x86/fpu/powl_helper.c2
-rw-r--r--sysdeps/x86/fpu/s_ceill.c2
-rw-r--r--sysdeps/x86/fpu/s_ffma.c2
-rw-r--r--sysdeps/x86/fpu/s_floorl.c2
-rw-r--r--sysdeps/x86/fpu/s_fpclassifyl.c2
-rw-r--r--sysdeps/x86/fpu/s_nearestint_387_template.c2
-rw-r--r--sysdeps/x86/fpu/s_sincosf_data.c2
-rw-r--r--sysdeps/x86/fpu/s_truncl.c2
-rw-r--r--sysdeps/x86/fpu/sincosf_poly.h2
-rw-r--r--sysdeps/x86/fpu/test-fenv-clear-sse.c2
-rw-r--r--sysdeps/x86/fpu/test-fenv-sse-2.c2
-rw-r--r--sysdeps/x86/fpu/test-fenv-sse.c2
-rw-r--r--sysdeps/x86/fpu/test-fenv-x87.c2
-rw-r--r--sysdeps/x86/fpu/test-math-vector-sincos.h2
-rw-r--r--sysdeps/x86/fpu_control.h2
-rw-r--r--sysdeps/x86/get-cpuid-feature-leaf.c2
-rw-r--r--sysdeps/x86/get-isa-level.h2
-rw-r--r--sysdeps/x86/hp-timing.h2
-rw-r--r--sysdeps/x86/htl/pt-machdep.h2
-rw-r--r--sysdeps/x86/include/cpu-features-preferred_feature_index_1.def3
-rw-r--r--sysdeps/x86/include/cpu-features.h12
-rw-r--r--sysdeps/x86/init-arch.h2
-rw-r--r--sysdeps/x86/isa-ifunc-macros.h2
-rw-r--r--sysdeps/x86/isa-level.c2
-rw-r--r--sysdeps/x86/isa-level.h2
-rw-r--r--sysdeps/x86/ldbl2mpn.c2
-rw-r--r--sysdeps/x86/ldsodefs.h2
-rw-r--r--sysdeps/x86/libc-start.c2
-rw-r--r--sysdeps/x86/link_map.h2
-rw-r--r--sysdeps/x86/longjmp.c2
-rw-r--r--sysdeps/x86/nptl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/x86/nptl/bits/struct_mutex.h4
-rw-r--r--sysdeps/x86/nptl/bits/struct_rwlock.h2
-rw-r--r--sysdeps/x86/nptl/pthreaddef.h2
-rw-r--r--sysdeps/x86/nptl/tls-setup.h2
-rw-r--r--sysdeps/x86/readelflib.c2
-rw-r--r--sysdeps/x86/sys/platform/x86.h6
-rw-r--r--sysdeps/x86/sysdep.h31
-rw-r--r--sysdeps/x86/thread_pointer.h (renamed from sysdeps/x86/nptl/thread_pointer.h)4
-rw-r--r--sysdeps/x86/tst-cpu-features-cpuinfo.c2
-rw-r--r--sysdeps/x86/tst-cpu-features-supports.c2
-rw-r--r--sysdeps/x86/tst-get-cpu-features.c2
-rw-r--r--sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c1
-rw-r--r--sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c1
-rw-r--r--sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c1
-rw-r--r--sysdeps/x86/tst-gnu2-tls2.c36
-rw-r--r--sysdeps/x86/tst-gnu2-tls2.h37
-rw-r--r--sysdeps/x86/tst-hwcap-tunables.c8
-rw-r--r--sysdeps/x86/tst-ifunc-isa-1.c2
-rw-r--r--sysdeps/x86/tst-ifunc-isa-2.c2
-rw-r--r--sysdeps/x86/tst-ifunc-isa.h7
-rw-r--r--sysdeps/x86/tst-isa-level-1.c2
-rw-r--r--sysdeps/x86/tst-isa-level-mod-1.c2
-rw-r--r--sysdeps/x86/tst-ldbl-nonnormal-printf.c4
-rw-r--r--sysdeps/x86/tst-memchr-rtm.c6
-rw-r--r--sysdeps/x86/tst-memcmp-rtm.c6
-rw-r--r--sysdeps/x86/tst-memmove-rtm.c6
-rw-r--r--sysdeps/x86/tst-memrchr-rtm.c6
-rw-r--r--sysdeps/x86/tst-memset-rtm.c6
-rw-r--r--sysdeps/x86/tst-stack-align.h2
-rw-r--r--sysdeps/x86/tst-strcasecmp-rtm.c2
-rw-r--r--sysdeps/x86/tst-strchr-rtm.c6
-rw-r--r--sysdeps/x86/tst-strcmp-rtm.c6
-rw-r--r--sysdeps/x86/tst-strcpy-rtm.c6
-rw-r--r--sysdeps/x86/tst-string-rtm.h2
-rw-r--r--sysdeps/x86/tst-strlen-rtm.c6
-rw-r--r--sysdeps/x86/tst-strncasecmp-rtm.c2
-rw-r--r--sysdeps/x86/tst-strncmp-rtm.c10
-rw-r--r--sysdeps/x86/tst-strrchr-rtm.c6
-rw-r--r--sysdeps/x86/tst-sysconf-cache-linesize.c2
-rw-r--r--sysdeps/x86/tst-tls23.c22
-rw-r--r--sysdeps/x86/tst-tls23.h (renamed from sysdeps/generic/dl-procinfo.h)26
-rw-r--r--sysdeps/x86/tst-wcscmp-rtm.c2
-rw-r--r--sysdeps/x86/tst-wcsncmp-rtm.c2
-rw-r--r--sysdeps/x86_64/64/dl-tunables.list2
-rw-r--r--sysdeps/x86_64/64/tst-map-32bit-1a.c2
-rw-r--r--sysdeps/x86_64/64/tst-map-32bit-mod.c2
-rw-r--r--sysdeps/x86_64/Makefile33
-rw-r--r--sysdeps/x86_64/__longjmp.S2
-rw-r--r--sysdeps/x86_64/_mcount.S2
-rw-r--r--sysdeps/x86_64/add_n.S2
-rw-r--r--sysdeps/x86_64/addmul_1.S2
-rw-r--r--sysdeps/x86_64/bsd-_setjmp.S2
-rw-r--r--sysdeps/x86_64/bsd-setjmp.S2
-rw-r--r--sysdeps/x86_64/check-cet.awk2
-rw-r--r--[-rwxr-xr-x]sysdeps/x86_64/configure157
-rw-r--r--sysdeps/x86_64/configure.ac68
-rw-r--r--sysdeps/x86_64/crti.S2
-rw-r--r--sysdeps/x86_64/crtn.S2
-rw-r--r--sysdeps/x86_64/dl-cache.h2
-rw-r--r--sysdeps/x86_64/dl-cet.c6
-rw-r--r--sysdeps/x86_64/dl-dtprocnum.h2
-rw-r--r--sysdeps/x86_64/dl-hwcaps-subdirs.c2
-rw-r--r--sysdeps/x86_64/dl-irel.h2
-rw-r--r--sysdeps/x86_64/dl-machine.h2
-rw-r--r--sysdeps/x86_64/dl-plt-rewrite.h2
-rw-r--r--sysdeps/x86_64/dl-procinfo.c2
-rw-r--r--sysdeps/x86_64/dl-procruntime.c2
-rw-r--r--sysdeps/x86_64/dl-runtime.h2
-rw-r--r--sysdeps/x86_64/dl-tls.c10
-rw-r--r--sysdeps/x86_64/dl-tlsdesc-dynamic.h4
-rw-r--r--sysdeps/x86_64/dl-tlsdesc.S3
-rw-r--r--sysdeps/x86_64/dl-tlsdesc.h2
-rw-r--r--sysdeps/x86_64/dl-trampoline-save.h34
-rw-r--r--sysdeps/x86_64/dl-trampoline-state.h2
-rw-r--r--sysdeps/x86_64/dl-trampoline.S3
-rw-r--r--sysdeps/x86_64/dl-trampoline.h2
-rw-r--r--sysdeps/x86_64/feature-control.h2
-rw-r--r--sysdeps/x86_64/fpu/Makeconfig2
-rw-r--r--sysdeps/x86_64/fpu/Makefile4
-rw-r--r--sysdeps/x86_64/fpu/bench-libmvec-arch.h2
-rw-r--r--sysdeps/x86_64/fpu/e_powl.S2
-rw-r--r--sysdeps/x86_64/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/x86_64/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/x86_64/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/x86_64/fpu/fegetenv.c2
-rw-r--r--sysdeps/x86_64/fpu/fegetexcept.c2
-rw-r--r--sysdeps/x86_64/fpu/fegetmode.c2
-rw-r--r--sysdeps/x86_64/fpu/fegetround.c2
-rw-r--r--sysdeps/x86_64/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/x86_64/fpu/fesetenv.c2
-rw-r--r--sysdeps/x86_64/fpu/fesetexcept.c2
-rw-r--r--sysdeps/x86_64/fpu/fesetmode.c2
-rw-r--r--sysdeps/x86_64/fpu/fesetround.c2
-rw-r--r--sysdeps/x86_64/fpu/feupdateenv.c2
-rw-r--r--sysdeps/x86_64/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/x86_64/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/x86_64/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/x86_64/fpu/ftestexcept.c2
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps2360
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/x86_64/fpu/math-tests-arch.h2
-rw-r--r--sysdeps/x86_64/fpu/math-tests-snan.h2
-rw-r--r--sysdeps/x86_64/fpu/math-use-builtins-trunc.h9
-rw-r--r--sysdeps/x86_64/fpu/math_ldbl.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/Makefile34
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_asin.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_atan2.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_atanh-fma.c6
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_atanh.c34
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp2f.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_expf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log2.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log2f.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_logf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_pow.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_powf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_sinh-fma.c12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_sinh.c35
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-fma.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512-skx.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_atan.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceilf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_cosf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_exp10m1f-fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_exp10m1f.c33
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_exp2m1f-fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_exp2m1f.c33
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_expm1.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floorf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fmaf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_log1p.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modf-avx.c1
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modf-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c7
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modf.c35
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modff-avx.c1
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modff-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c7
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_modff.c35
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rintf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundeven.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_roundevenf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sin.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincos.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincosf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sinf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_tan.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_tanh-fma.c11
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_tanh.c (renamed from sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S)21
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_truncf.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core-avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core_avx512.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core_sse4.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core-sse.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf_rodata.S2
-rw-r--r--sysdeps/x86_64/fpu/printf_fphex.c2
-rw-r--r--sysdeps/x86_64/fpu/s_fmax.S2
-rw-r--r--sysdeps/x86_64/fpu/s_fmaxf.S2
-rw-r--r--sysdeps/x86_64/fpu/s_fmaxl.S2
-rw-r--r--sysdeps/x86_64/fpu/s_fmin.S2
-rw-r--r--sysdeps/x86_64/fpu/s_fminf.S2
-rw-r--r--sysdeps/x86_64/fpu/s_fminl.S2
-rw-r--r--sysdeps/x86_64/fpu/s_llrint.S2
-rw-r--r--sysdeps/x86_64/fpu/s_llrintf.S2
-rw-r--r--sysdeps/x86_64/fpu/s_llrintl.S2
-rw-r--r--sysdeps/x86_64/fpu/s_signbit.S2
-rw-r--r--sysdeps/x86_64/fpu/s_signbitf.S2
-rwxr-xr-xsysdeps/x86_64/fpu/scripts/bench_libmvec.py2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acos2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acos4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acos4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acos8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acosh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acosh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acosh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_acosh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asin2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asin4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asin8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asinh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asinh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asinh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_asinh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan22_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan24_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan24_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan28_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atan8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atanh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atanh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atanh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_atanh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cbrt2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cbrt4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cbrt4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cbrt8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cosh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cosh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cosh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cosh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erf2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erf4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erfc2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erfc4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erfc4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_erfc8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp102_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp104_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp104_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp108_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp22_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp24_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp24_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp28_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_expm12_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_expm14_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_expm14_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_expm18_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_hypot2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_hypot4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_hypot4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_hypot8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log102_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log104_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log104_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log108_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log1p2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log1p4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log1p4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log1p8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log22_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log24_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log24_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log28_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sinh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sinh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sinh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tan2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tan4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tan4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tan8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tanh2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tanh4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tanh4_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_tanh8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_trig_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_trig_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_wrapper_impl.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acosf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acosf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acosf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acosf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acoshf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acoshf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acoshf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_acoshf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinhf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinhf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinhf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_asinhf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atan2f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atan2f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atan2f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atan2f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanhf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanhf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanhf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_atanhf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cbrtf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cbrtf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cbrtf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cbrtf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_coshf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_coshf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_coshf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_coshf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erfcf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erfcf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erfcf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erfcf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erff16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erff4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erff8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_erff8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp10f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp10f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp10f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp10f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp2f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp2f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp2f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_exp2f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expm1f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expm1f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expm1f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expm1f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_hypotf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_hypotf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_hypotf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_hypotf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log10f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log10f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log10f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log1pf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log1pf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log1pf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log1pf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log2f16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log2f4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log2f8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinhf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinhf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinhf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanhf16_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanhf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanhf8_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_tanhf8_core_avx.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_trig_data.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_trig_data.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_wrapper_impl.h2
-rw-r--r--sysdeps/x86_64/fpu/svml_sd_wrapper_impl.h2
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c2
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-avx2.h2
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4.h2
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen8.h2
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen16.h2
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c2
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-avx2.h2
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8.h2
-rw-r--r--sysdeps/x86_64/fpu/test-vector-abi-arg1.h2
-rw-r--r--sysdeps/x86_64/fpu/test-vector-abi-arg2.h2
-rw-r--r--sysdeps/x86_64/fpu/test-vector-abi-sincos.h2
-rw-r--r--sysdeps/x86_64/fpu/test-vector-abi.h2
-rw-r--r--sysdeps/x86_64/fpu/x86_64-math-asm.h2
-rw-r--r--sysdeps/x86_64/htl/Makefile2
-rw-r--r--sysdeps/x86_64/htl/bits/pthreadtypes-arch.h2
-rw-r--r--sysdeps/x86_64/htl/machine-sp.h2
-rw-r--r--sysdeps/x86_64/ifuncmain8.c2
-rw-r--r--sysdeps/x86_64/ifuncmod8.c2
-rw-r--r--sysdeps/x86_64/isa-default-impl.h2
-rw-r--r--sysdeps/x86_64/isa.h2
-rw-r--r--sysdeps/x86_64/jmpbuf-offsets.h2
-rw-r--r--sysdeps/x86_64/jmpbuf-unwind.h2
-rw-r--r--sysdeps/x86_64/ldsodefs.h2
-rw-r--r--sysdeps/x86_64/libc-start.h2
-rw-r--r--sysdeps/x86_64/link_map.h2
-rw-r--r--sysdeps/x86_64/lshift.S2
-rw-r--r--sysdeps/x86_64/machine-gmon.h2
-rw-r--r--sysdeps/x86_64/memchr.S2
-rw-r--r--sysdeps/x86_64/memcmp.S2
-rw-r--r--sysdeps/x86_64/memcmpeq.S2
-rw-r--r--sysdeps/x86_64/memcpy_chk.S2
-rw-r--r--sysdeps/x86_64/memmove.S2
-rw-r--r--sysdeps/x86_64/memmove_chk.S2
-rw-r--r--sysdeps/x86_64/mempcpy_chk.S2
-rw-r--r--sysdeps/x86_64/memrchr.S2
-rw-r--r--sysdeps/x86_64/memset.S2
-rw-r--r--sysdeps/x86_64/memset_chk.S2
-rw-r--r--sysdeps/x86_64/mul_1.S2
-rw-r--r--sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-avx2.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-evex.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-impl-list.c6
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memcmp.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memcmpeq.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memmove.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memset.h20
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-sse4_2.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strcasecmp.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strcpy.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strncpy.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-wcs.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-wcslen.h2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-wmemset.h2
-rw-r--r--sysdeps/x86_64/multiarch/memchr-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memchr-evex-base.S2
-rw-r--r--sysdeps/x86_64/multiarch/memchr-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/memchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-evex-movbe.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/memcmpeq-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmpeq-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmpeq-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcmpeq.c2
-rw-r--r--sysdeps/x86_64/multiarch/memcpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S2
-rw-r--r--sysdeps/x86_64/multiarch/memcpy_chk.c2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-shlib-compat.h2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-ssse3.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove.c2
-rw-r--r--sysdeps/x86_64/multiarch/memmove_chk-nonshared.S2
-rw-r--r--sysdeps/x86_64/multiarch/memmove_chk.c2
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S2
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy_chk.c2
-rw-r--r--sysdeps/x86_64/multiarch/memrchr-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memrchr-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/memrchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/memrchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S2
-rw-r--r--sysdeps/x86_64/multiarch/memset-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S2
-rw-r--r--sysdeps/x86_64/multiarch/memset.c2
-rw-r--r--sysdeps/x86_64/multiarch/memset_chk-nonshared.S2
-rw-r--r--sysdeps/x86_64/multiarch/memset_chk.c2
-rw-r--r--sysdeps/x86_64/multiarch/rawmemchr-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/rawmemchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/rawmemchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/reg-macros.h2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-memchr.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-memcmp.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-memcmpeq.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-memmove.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-memset.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-rawmemchr.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-stpcpy.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-stpncpy.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strchr.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strchrnul.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strcmp.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strcpy.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strcspn.c2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strlen.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strncmp.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strncpy.S2
-rw-r--r--sysdeps/x86_64/multiarch/rtld-strnlen.S2
-rw-r--r--sysdeps/x86_64/multiarch/scripts/gen-reg-macros.py2
-rw-r--r--sysdeps/x86_64/multiarch/stpcpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/stpncpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcat-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcat-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcat-strlen-avx2.h.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcat-strlen-evex.h.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcat.c2
-rw-r--r--sysdeps/x86_64/multiarch/strchr-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strchr-evex-base.S10
-rw-r--r--sysdeps/x86_64/multiarch/strchr-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S2
-rw-r--r--sysdeps/x86_64/multiarch/strchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/strchrnul-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strchrnul.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-evex.S28
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse4_2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-evex.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strcpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcspn-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcspn-sse4.c2
-rw-r--r--sysdeps/x86_64/multiarch/strcspn.c2
-rw-r--r--sysdeps/x86_64/multiarch/strlen-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strlen-evex-base.S2
-rw-r--r--sysdeps/x86_64/multiarch/strlen-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strlen.c2
-rw-r--r--sysdeps/x86_64/multiarch/strncase.c2
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-evex.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-sse4_2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l.c2
-rw-r--r--sysdeps/x86_64/multiarch/strncat-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncat-evex.S6
-rw-r--r--sysdeps/x86_64/multiarch/strncat.c2
-rw-r--r--sysdeps/x86_64/multiarch/strncmp-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncmp-sse4_2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/strncpy-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strncpy-evex.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncpy-or-cat-overflow-def.h2
-rw-r--r--sysdeps/x86_64/multiarch/strncpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/strnlen-evex-base.S462
-rw-r--r--sysdeps/x86_64/multiarch/strnlen-evex.S428
-rw-r--r--sysdeps/x86_64/multiarch/strnlen-evex512.S259
-rw-r--r--sysdeps/x86_64/multiarch/strnlen-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strnlen.c2
-rw-r--r--sysdeps/x86_64/multiarch/strpbrk-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/strpbrk-sse4.c2
-rw-r--r--sysdeps/x86_64/multiarch/strpbrk.c2
-rw-r--r--sysdeps/x86_64/multiarch/strrchr-avx2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strrchr-evex-base.S2
-rw-r--r--sysdeps/x86_64/multiarch/strrchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/strrchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/strspn-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/strspn-sse4.c2
-rw-r--r--sysdeps/x86_64/multiarch/strspn.c2
-rw-r--r--sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S2
-rw-r--r--sysdeps/x86_64/multiarch/strstr.c2
-rw-r--r--sysdeps/x86_64/multiarch/varshift.c2
-rw-r--r--sysdeps/x86_64/multiarch/varshift.h2
-rw-r--r--sysdeps/x86_64/multiarch/wcpcpy-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcpcpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcpncpy-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcpncpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcscat-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcscat.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcschr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/wcschr.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcscmp-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/wcscmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy-ssse3.S2
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcslen-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/wcslen.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncat-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncat.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncmp-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncpy-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsncpy.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsnlen-generic.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsnlen.c2
-rw-r--r--sysdeps/x86_64/multiarch/wcsrchr-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/wcsrchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/wmemchr.c2
-rw-r--r--sysdeps/x86_64/multiarch/wmemcmp-sse2.S2
-rw-r--r--sysdeps/x86_64/multiarch/wmemcmp.c2
-rw-r--r--sysdeps/x86_64/multiarch/wmemset.c2
-rw-r--r--sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S2
-rw-r--r--sysdeps/x86_64/multiarch/wmemset_chk.c2
-rw-r--r--sysdeps/x86_64/multiarch/x86-avx-rtm-vecs.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-avx-vecs.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-evex-vecs-common.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-evex256-vecs.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-evex512-vecs.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-sse2-vecs.h2
-rw-r--r--sysdeps/x86_64/multiarch/x86-vec-macros.h2
-rw-r--r--sysdeps/x86_64/nptl/Makefile2
-rw-r--r--sysdeps/x86_64/nptl/pthread_mutex_backoff.h2
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_lock.S2
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_trylock.S2
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_unlock.S2
-rw-r--r--sysdeps/x86_64/nptl/rseq-access.h77
-rw-r--r--sysdeps/x86_64/nptl/tcb-access.h2
-rw-r--r--sysdeps/x86_64/nptl/tcb-offsets.sym3
-rw-r--r--sysdeps/x86_64/nptl/tls.h2
-rw-r--r--sysdeps/x86_64/nptl/tst-x86-64-tls-1.c2
-rw-r--r--sysdeps/x86_64/preconfigure12
-rw-r--r--sysdeps/x86_64/rawmemchr.S2
-rw-r--r--sysdeps/x86_64/rshift.S2
-rw-r--r--sysdeps/x86_64/setjmp.S2
-rw-r--r--sysdeps/x86_64/stackinfo.h2
-rw-r--r--sysdeps/x86_64/start.S2
-rw-r--r--sysdeps/x86_64/stpcpy.S2
-rw-r--r--sysdeps/x86_64/stpncpy.S2
-rw-r--r--sysdeps/x86_64/strcasecmp_l.S2
-rw-r--r--sysdeps/x86_64/strcat.S2
-rw-r--r--sysdeps/x86_64/strchr-isa-default-impl.h2
-rw-r--r--sysdeps/x86_64/strchr.S2
-rw-r--r--sysdeps/x86_64/strchrnul.S2
-rw-r--r--sysdeps/x86_64/strcmp.S2
-rw-r--r--sysdeps/x86_64/strcpy.S2
-rw-r--r--sysdeps/x86_64/strcspn-generic.c2
-rw-r--r--sysdeps/x86_64/strcspn.c2
-rw-r--r--sysdeps/x86_64/strlen.S2
-rw-r--r--sysdeps/x86_64/strncase_l.S2
-rw-r--r--sysdeps/x86_64/strncat.S2
-rw-r--r--sysdeps/x86_64/strncmp.S2
-rw-r--r--sysdeps/x86_64/strncpy.S2
-rw-r--r--sysdeps/x86_64/strnlen.S2
-rw-r--r--sysdeps/x86_64/strpbrk-generic.c2
-rw-r--r--sysdeps/x86_64/strpbrk.c2
-rw-r--r--sysdeps/x86_64/strrchr.S2
-rw-r--r--sysdeps/x86_64/strspn-generic.c2
-rw-r--r--sysdeps/x86_64/strspn.c2
-rw-r--r--sysdeps/x86_64/sub_n.S2
-rw-r--r--sysdeps/x86_64/submul_1.S2
-rw-r--r--sysdeps/x86_64/sys/ucontext.h2
-rw-r--r--sysdeps/x86_64/sysdep.h2
-rw-r--r--sysdeps/x86_64/tls_get_addr.S2
-rw-r--r--sysdeps/x86_64/tlsdesc.c2
-rw-r--r--sysdeps/x86_64/tst-audit.h2
-rw-r--r--sysdeps/x86_64/tst-audit10-aux.c2
-rw-r--r--sysdeps/x86_64/tst-audit10.c2
-rw-r--r--sysdeps/x86_64/tst-audit4-aux.c2
-rw-r--r--sysdeps/x86_64/tst-audit4.c2
-rw-r--r--sysdeps/x86_64/tst-auditmod10a.c2
-rw-r--r--sysdeps/x86_64/tst-auditmod10b.c111
-rw-r--r--sysdeps/x86_64/tst-avx-aux.c2
-rw-r--r--sysdeps/x86_64/tst-avx.c2
-rw-r--r--sysdeps/x86_64/tst-avx512-aux.c2
-rw-r--r--sysdeps/x86_64/tst-avx512.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-1.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-10.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-10a-static.c1
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-10a.c1
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-1a.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-2.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-3.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-4.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-5.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-6.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-7.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-8.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-9.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-1.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-2.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-5.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-5c.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-6.c2
-rw-r--r--sysdeps/x86_64/tst-cet-legacy-mod-6c.c2
-rw-r--r--sysdeps/x86_64/tst-glibc-hwcaps.c2
-rw-r--r--sysdeps/x86_64/tst-gnu2-tls2mod1.S2
-rw-r--r--sysdeps/x86_64/tst-platform-1.c2
-rw-r--r--sysdeps/x86_64/tst-platformmod-1.c2
-rw-r--r--sysdeps/x86_64/tst-platformmod-2.c2
-rw-r--r--sysdeps/x86_64/tst-plt-rewrite1.c2
-rw-r--r--sysdeps/x86_64/tst-plt-rewrite2.c2
-rw-r--r--sysdeps/x86_64/tst-plt-rewritemod1.c2
-rw-r--r--sysdeps/x86_64/tst-plt-rewritemod2.c2
-rw-r--r--sysdeps/x86_64/tst-quad1.c2
-rw-r--r--sysdeps/x86_64/tst-quadmod1.S2
-rw-r--r--sysdeps/x86_64/tst-quadmod2.S2
-rw-r--r--sysdeps/x86_64/tst-rsi-strlen.c4
-rw-r--r--sysdeps/x86_64/tst-rsi-wcslen.c2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1-extra.S2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1a.c2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1b.c2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1c.c2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1d.c2
-rwxr-xr-xsysdeps/x86_64/tst-shstk-legacy-1e-static.sh2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1e.c2
-rwxr-xr-xsysdeps/x86_64/tst-shstk-legacy-1e.sh2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1f.c2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-1g.c2
-rwxr-xr-xsysdeps/x86_64/tst-shstk-legacy-1g.sh2
-rw-r--r--sysdeps/x86_64/tst-shstk-legacy-mod-1.c2
-rw-r--r--sysdeps/x86_64/tst-sse.c2
-rw-r--r--sysdeps/x86_64/varshift.c2
-rw-r--r--sysdeps/x86_64/wcpcpy-generic.c2
-rw-r--r--sysdeps/x86_64/wcpcpy.S2
-rw-r--r--sysdeps/x86_64/wcpncpy-generic.c2
-rw-r--r--sysdeps/x86_64/wcpncpy.S2
-rw-r--r--sysdeps/x86_64/wcscat-generic.c2
-rw-r--r--sysdeps/x86_64/wcscat.S2
-rw-r--r--sysdeps/x86_64/wcschr.S2
-rw-r--r--sysdeps/x86_64/wcscmp.S2
-rw-r--r--sysdeps/x86_64/wcscpy-generic.c2
-rw-r--r--sysdeps/x86_64/wcscpy.S2
-rw-r--r--sysdeps/x86_64/wcslen.S2
-rw-r--r--sysdeps/x86_64/wcsncat-generic.c2
-rw-r--r--sysdeps/x86_64/wcsncat.S2
-rw-r--r--sysdeps/x86_64/wcsncmp-generic.c2
-rw-r--r--sysdeps/x86_64/wcsncmp.S2
-rw-r--r--sysdeps/x86_64/wcsncpy-generic.c2
-rw-r--r--sysdeps/x86_64/wcsncpy.S2
-rw-r--r--sysdeps/x86_64/wcsnlen-generic.c2
-rw-r--r--sysdeps/x86_64/wcsnlen.S2
-rw-r--r--sysdeps/x86_64/wcsrchr.S2
-rw-r--r--sysdeps/x86_64/wmemchr.S2
-rw-r--r--sysdeps/x86_64/wmemcmp.S2
-rw-r--r--sysdeps/x86_64/wmemset_chk.S2
-rw-r--r--sysdeps/x86_64/x32/dl-tls.h (renamed from sysdeps/x86_64/dl-tls.h)9
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrint.S2
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrintf.S2
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrintl.S2
-rw-r--r--sysdeps/x86_64/x32/gmp-mparam.h2
-rw-r--r--sysdeps/x86_64/x32/string-optype.h2
-rw-r--r--sysdeps/x86_64/x32/sysdep.h2
-rw-r--r--sysdeps/x86_64/x32/test-size_t.h2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memchr.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcmp-2.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcmp.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcpy.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memrchr.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memset.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncasecmp.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncat.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncmp.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncpy.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strnlen.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wcsncmp.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wcsnlen.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemchr.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemcmp.c2
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemset.c2
-rw-r--r--sysdeps/x86_64/x32/x86-lp_size.h2
-rw-r--r--sysdeps/x86_64/x86-lp_size.h2
8067 files changed, 88655 insertions, 67991 deletions
diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile
index 141d7d9..bb97d31 100644
--- a/sysdeps/aarch64/Makefile
+++ b/sysdeps/aarch64/Makefile
@@ -9,7 +9,9 @@ LDFLAGS-rtld += -Wl,-z,force-bti,--fatal-warnings
endif
ifeq ($(subdir),elf)
-sysdep-dl-routines += dl-bti
+sysdep-dl-routines += \
+ dl-bti \
+ dl-gcs
tests += tst-audit26 \
tst-audit27
@@ -35,17 +37,22 @@ endif
ifeq ($(subdir),elf)
sysdep-rtld-routines += dl-start
sysdep-dl-routines += tlsdesc dl-tlsdesc
-gen-as-const-headers += dl-link.sym
+gen-as-const-headers += \
+ dl-link.sym \
+ rtld-global-offsets.sym
-tests-internal += tst-ifunc-arg-1 tst-ifunc-arg-2
+tests-internal += \
+ tst-ifunc-arg-1 \
+ tst-ifunc-arg-2 \
+ tst-ifunc-arg-3 \
+ tst-ifunc-arg-4 \
+ # tests-internal
-ifeq (yes,$(aarch64-variant-pcs))
tests += tst-vpcs
modules-names += tst-vpcs-mod
LDFLAGS-tst-vpcs-mod.so = -Wl,-z,lazy
$(objpfx)tst-vpcs: $(objpfx)tst-vpcs-mod.so
endif
-endif
ifeq ($(subdir),csu)
gen-as-const-headers += \
@@ -67,10 +74,13 @@ sysdep_headers += sys/ifunc.h
sysdep_routines += \
__mtag_tag_zero_region \
__mtag_tag_region \
- __arm_za_disable
+ __arm_za_disable \
+ __alloc_gcs
tests += \
- tst-sme-jmp
+ tst-sme-jmp \
+ tst-sme-za-state \
+ # tests
endif
ifeq ($(subdir),malloc)
diff --git a/sysdeps/aarch64/__alloc_gcs.c b/sysdeps/aarch64/__alloc_gcs.c
new file mode 100644
index 0000000..b98e5fc
--- /dev/null
+++ b/sysdeps/aarch64/__alloc_gcs.c
@@ -0,0 +1,70 @@
+/* AArch64 GCS allocation.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "aarch64-gcs.h"
+
+#include <sysdep.h>
+#include <unistd.h>
+#include <sys/mman.h>
+
+#ifndef SHADOW_STACK_SET_TOKEN
+# define SHADOW_STACK_SET_TOKEN (1UL << 0)
+# define SHADOW_STACK_SET_MARKER (1UL << 1)
+#endif
+
+static void *
+map_shadow_stack (void *addr, size_t size, unsigned long flags)
+{
+ return (void *) INLINE_SYSCALL_CALL (map_shadow_stack, addr, size, flags);
+}
+
+#define GCS_MAX_SIZE (1UL << 31)
+#define GCS_ALTSTACK_RESERVE 160
+
+void *
+__alloc_gcs (size_t stack_size, struct gcs_record *gcs)
+{
+ size_t size = (stack_size / 2 + GCS_ALTSTACK_RESERVE) & -8UL;
+ if (size > GCS_MAX_SIZE)
+ size = GCS_MAX_SIZE;
+
+ unsigned long flags = SHADOW_STACK_SET_MARKER | SHADOW_STACK_SET_TOKEN;
+ void *base = map_shadow_stack (NULL, size, flags);
+ if (base == MAP_FAILED)
+ return NULL;
+
+ uint64_t *gcsp = (uint64_t *) ((char *) base + size);
+ /* Skip end of GCS token. */
+ gcsp--;
+ /* Verify GCS cap token. */
+ gcsp--;
+ if (((uint64_t)gcsp & 0xfffffffffffff000) + 1 != *gcsp)
+ {
+ __munmap (base, size);
+ return NULL;
+ }
+
+ if (gcs != NULL)
+ {
+ gcs->gcs_base = base;
+ gcs->gcs_token = gcsp;
+ gcs->gcs_size = size;
+ }
+
+ /* Return the target GCS pointer for context switch. */
+ return gcsp + 1;
+}
diff --git a/sysdeps/aarch64/__arm_za_disable.S b/sysdeps/aarch64/__arm_za_disable.S
index 649891e..92f4814 100644
--- a/sysdeps/aarch64/__arm_za_disable.S
+++ b/sysdeps/aarch64/__arm_za_disable.S
@@ -1,5 +1,5 @@
/* Libc internal support routine for SME.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -88,10 +88,8 @@ L(save_loop):
L(end):
ret
L(fail):
-#if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-#endif
+ paciasp
+ cfi_negate_ra_state
stp x29, x30, [sp, -32]!
cfi_adjust_cfa_offset (32)
cfi_rel_offset (x29, 0)
diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S
index 7b6add7..70ac02c 100644
--- a/sysdeps/aarch64/__longjmp.S
+++ b/sysdeps/aarch64/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -24,63 +24,51 @@
/* __longjmp(jmpbuf, val) */
ENTRY (__longjmp)
- cfi_def_cfa(x0, 0)
- cfi_offset(x19, JB_X19<<3)
- cfi_offset(x20, JB_X20<<3)
- cfi_offset(x21, JB_X21<<3)
- cfi_offset(x22, JB_X22<<3)
- cfi_offset(x23, JB_X23<<3)
- cfi_offset(x24, JB_X24<<3)
- cfi_offset(x25, JB_X25<<3)
- cfi_offset(x26, JB_X26<<3)
- cfi_offset(x27, JB_X27<<3)
- cfi_offset(x28, JB_X28<<3)
- cfi_offset(x29, JB_X29<<3)
- cfi_offset(x30, JB_LR<<3)
-
- cfi_offset( d8, JB_D8<<3)
- cfi_offset( d9, JB_D9<<3)
- cfi_offset(d10, JB_D10<<3)
- cfi_offset(d11, JB_D11<<3)
- cfi_offset(d12, JB_D12<<3)
- cfi_offset(d13, JB_D13<<3)
- cfi_offset(d14, JB_D14<<3)
- cfi_offset(d15, JB_D15<<3)
-
- PTR_ARG (0)
#if IS_IN(libc)
- /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */
-# if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-# endif
- stp x29, x30, [sp, -16]!
- cfi_adjust_cfa_offset (16)
- cfi_rel_offset (x29, 0)
- cfi_rel_offset (x30, 8)
- mov x29, sp
+ /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so.
+ The calling convention of __libc_arm_za_disable allows to do
+ this thus allowing to avoid saving to and reading from stack.
+ As a result we also don't need to sign the return address and
+ check it after returning because it is not stored to stack. */
+ mov x13, x30
+ cfi_register (x30, x13)
bl __libc_arm_za_disable
- ldp x29, x30, [sp], 16
- cfi_adjust_cfa_offset (-16)
- cfi_restore (x29)
- cfi_restore (x30)
-# if HAVE_AARCH64_PAC_RET
- AUTIASP
- cfi_window_save
-# endif
+ mov x30, x13
+ cfi_register (x13, x30)
#endif
+ cfi_def_cfa (x0, 0)
+ cfi_offset (x19, JB_X19<<3)
+ cfi_offset (x20, JB_X20<<3)
+ cfi_offset (x21, JB_X21<<3)
+ cfi_offset (x22, JB_X22<<3)
+ cfi_offset (x23, JB_X23<<3)
+ cfi_offset (x24, JB_X24<<3)
+ cfi_offset (x25, JB_X25<<3)
+ cfi_offset (x26, JB_X26<<3)
+ cfi_offset (x27, JB_X27<<3)
+ cfi_offset (x28, JB_X28<<3)
+ cfi_offset (x29, JB_X29<<3)
+ cfi_offset (x30, JB_LR<<3)
+
+ cfi_offset ( d8, JB_D8<<3)
+ cfi_offset ( d9, JB_D9<<3)
+ cfi_offset (d10, JB_D10<<3)
+ cfi_offset (d11, JB_D11<<3)
+ cfi_offset (d12, JB_D12<<3)
+ cfi_offset (d13, JB_D13<<3)
+ cfi_offset (d14, JB_D14<<3)
+ cfi_offset (d15, JB_D15<<3)
+
ldp x19, x20, [x0, #JB_X19<<3]
ldp x21, x22, [x0, #JB_X21<<3]
ldp x23, x24, [x0, #JB_X23<<3]
ldp x25, x26, [x0, #JB_X25<<3]
ldp x27, x28, [x0, #JB_X27<<3]
-#ifdef PTR_DEMANGLE
- ldp x29, x4, [x0, #JB_X29<<3]
- PTR_DEMANGLE (30, 4, 3, 2)
-#else
ldp x29, x30, [x0, #JB_X29<<3]
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (x30, x30, x3)
#endif
/* longjmp probe takes 3 arguments, address of jump buffer as
first argument (8@x0), return value as second argument (-4@x1),
@@ -91,6 +79,36 @@ ENTRY (__longjmp)
ldp d12, d13, [x0, #JB_D12<<3]
ldp d14, d15, [x0, #JB_D14<<3]
+ /* GCS support. */
+ mov x16, 1
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ MRS_GCSPR (x2)
+ ldr x3, [x0, #JB_GCSPR]
+ mov x4, x3
+ /* x2: GCSPR now. x3, x4: target GCSPR. x5, x6: tmp regs. */
+L(gcs_scan):
+ cmp x2, x4
+ b.eq L(gcs_pop)
+ sub x4, x4, 8
+ /* Check for a cap token. */
+ ldr x5, [x4]
+ and x6, x4, 0xfffffffffffff000
+ orr x6, x6, 1
+ cmp x5, x6
+ b.ne L(gcs_scan)
+L(gcs_switch):
+ add x2, x4, 8
+ GCSSS1 (x4)
+ GCSSS2 (xzr)
+L(gcs_pop):
+ cmp x2, x3
+ b.eq L(gcs_done)
+ GCSPOPM (xzr)
+ add x2, x2, 8
+ b L(gcs_pop)
+L(gcs_done):
+
/* Originally this was implemented with a series of
.cfi_restore() directives.
@@ -121,21 +139,21 @@ ENTRY (__longjmp)
cfi_same_value(d13)
cfi_same_value(d14)
cfi_same_value(d15)
-#ifdef PTR_DEMANGLE
+
ldr x4, [x0, #JB_SP<<3]
- PTR_DEMANGLE (5, 4, 3, 2)
-#else
- ldr x5, [x0, #JB_SP<<3]
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (x4, x4, x3)
#endif
- mov sp, x5
+ mov sp, x4
/* longjmp_target probe takes 3 arguments, address of jump buffer
as first argument (8@x0), return value as second argument (-4@x1),
and target address (8@x30), respectively. */
LIBC_PROBE (longjmp_target, 3, 8@x0, -4@x1, 8@x30)
- cmp x1, #0
- mov x0, #1
- csel x0, x1, x0, ne
+
+ cmp x1, 0
+ cinc x0, x1, eq
+
/* Use br instead of ret because ret is guaranteed to mispredict */
br x30
END (__longjmp)
diff --git a/sysdeps/aarch64/__mtag_tag_region.S b/sysdeps/aarch64/__mtag_tag_region.S
index 22e8d8b..fcd8191 100644
--- a/sysdeps/aarch64/__mtag_tag_region.S
+++ b/sysdeps/aarch64/__mtag_tag_region.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -40,9 +40,6 @@
#define zva_val x4
ENTRY (__libc_mtag_tag_region)
- PTR_ARG (0)
- SIZE_ARG (1)
-
add dstend, dstin, count
cmp count, 96
diff --git a/sysdeps/aarch64/__mtag_tag_zero_region.S b/sysdeps/aarch64/__mtag_tag_zero_region.S
index 566698e..3b49e19 100644
--- a/sysdeps/aarch64/__mtag_tag_zero_region.S
+++ b/sysdeps/aarch64/__mtag_tag_zero_region.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -40,9 +40,6 @@
#define zva_val x4
ENTRY (__libc_mtag_tag_zero_region)
- PTR_ARG (0)
- SIZE_ARG (1)
-
add dstend, dstin, count
cmp count, 96
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/sysdeps/aarch64/aarch64-gcs.h
index b85d4ad..8e253ed 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
+++ b/sysdeps/aarch64/aarch64-gcs.h
@@ -1,6 +1,7 @@
-/* Processor capability information handling macros - aarch64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* AArch64 GCS (Guarded Control Stack) declarations.
This file is part of the GNU C Library.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright The GNU Toolchain Authors.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -16,22 +17,27 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
+#ifndef _AARCH64_GCS_H
+#define _AARCH64_GCS_H
-#include <sys/auxv.h>
-#include <unistd.h>
-#include <ldsodefs.h>
-#include <sysdep.h>
+#include <stddef.h>
+#include <stdbool.h>
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
+struct gcs_record
{
- return (unsigned)idx < _DL_HWCAP_COUNT ? GLRO(dl_aarch64_cap_flags)[idx] : "";
+ void *gcs_base;
+ void *gcs_token;
+ size_t gcs_size;
};
-#endif /* dl-procinfo.h */
+void *__alloc_gcs (size_t, struct gcs_record *) attribute_hidden;
+
+static inline bool
+has_gcs (void)
+{
+ register unsigned long x16 asm ("x16") = 1;
+ asm ("hint 40" /* chkfeat x16 */ : "+r" (x16));
+ return x16 == 0;
+}
+
+#endif
diff --git a/sysdeps/aarch64/atomic-machine.h b/sysdeps/aarch64/atomic-machine.h
index 405f984..b4e8d85 100644
--- a/sysdeps/aarch64/atomic-machine.h
+++ b/sysdeps/aarch64/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/bits/fenv.h b/sysdeps/aarch64/bits/fenv.h
index cefa660..ce73980 100644
--- a/sysdeps/aarch64/bits/fenv.h
+++ b/sysdeps/aarch64/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/bits/fp-fast.h b/sysdeps/aarch64/bits/fp-fast.h
index f36e636..6448bc1 100644
--- a/sysdeps/aarch64/bits/fp-fast.h
+++ b/sysdeps/aarch64/bits/fp-fast.h
@@ -1,5 +1,5 @@
/* Define FP_FAST_* macros. AArch64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/bits/indirect-return.h b/sysdeps/aarch64/bits/indirect-return.h
new file mode 100644
index 0000000..f0c4d2a
--- /dev/null
+++ b/sysdeps/aarch64/bits/indirect-return.h
@@ -0,0 +1,36 @@
+/* Definition of __INDIRECT_RETURN. AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UCONTEXT_H
+# error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead."
+#endif
+
+/* __INDIRECT_RETURN indicates that swapcontext may return via
+ an indirect branch. This happens when GCS is enabled, so
+ add the attribute if available, otherwise returns_twice has
+ a similar effect, but it prevents some code transformations
+ that can cause build failures in some rare cases so it is
+ only used when GCS is enabled. */
+#if __glibc_has_attribute (__indirect_return__)
+# define __INDIRECT_RETURN __attribute__ ((__indirect_return__))
+#elif __glibc_has_attribute (__returns_twice__) \
+ && defined __ARM_FEATURE_GCS_DEFAULT
+# define __INDIRECT_RETURN __attribute__ ((__returns_twice__))
+#else
+# define __INDIRECT_RETURN
+#endif
diff --git a/sysdeps/aarch64/bits/link.h b/sysdeps/aarch64/bits/link.h
index e0be0a2..aacea19 100644
--- a/sysdeps/aarch64/bits/link.h
+++ b/sysdeps/aarch64/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/bits/setjmp.h b/sysdeps/aarch64/bits/setjmp.h
index e8a488d..54a338b 100644
--- a/sysdeps/aarch64/bits/setjmp.h
+++ b/sysdeps/aarch64/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
index 118e591..33d0e20 100644
--- a/sysdeps/aarch64/bits/wordsize.h
+++ b/sysdeps/aarch64/bits/wordsize.h
@@ -1,6 +1,6 @@
/* Determine the wordsize from the preprocessor defines.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,12 +17,5 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifdef __LP64__
-# define __WORDSIZE 64
-#else
-# define __WORDSIZE 32
-# define __WORDSIZE32_SIZE_ULONG 1
-# define __WORDSIZE32_PTRDIFF_LONG 1
-#endif
-
+#define __WORDSIZE 64
#define __WORDSIZE_TIME64_COMPAT32 0
diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
index 4bd5496..26a0989 100755
--- a/sysdeps/aarch64/configure
+++ b/sysdeps/aarch64/configure
@@ -185,218 +185,11 @@ else
default-abi = lp64"
fi
-# Only consider BTI supported if -mbranch-protection=bti is
-# on by default in the compiler and the linker produces
-# binaries with GNU property notes in PT_GNU_PROPERTY segment.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BTI support" >&5
-printf %s "checking for BTI support... " >&6; }
-if test ${libc_cv_aarch64_bti+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.c <<EOF
-void foo (void) { }
-EOF
- libc_cv_aarch64_bti=no
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles $no_ssp -shared -fPIC -o conftest.so conftest.c'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; } \
- && { ac_try='$READELF -lW conftest.so | grep -q GNU_PROPERTY'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; } \
- && { ac_try='$READELF -nW conftest.so | grep -q "NT_GNU_PROPERTY_TYPE_0.*AArch64 feature:.* BTI"'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- libc_cv_aarch64_bti=yes
- fi
- rm -rf conftest.* ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_bti" >&5
-printf "%s\n" "$libc_cv_aarch64_bti" >&6; }
-config_vars="$config_vars
-aarch64-bti = $libc_cv_aarch64_bti"
-if test $libc_cv_aarch64_bti = yes; then
- printf "%s\n" "#define HAVE_AARCH64_BTI 1" >>confdefs.h
-
-fi
-
-# Check if glibc is built with return address signing, i.e.
-# if -mbranch-protection=pac-ret is on. We need this because
-# pac-ret relies on unwinder support so it's not safe to use
-# it in assembly code unconditionally, but there is no
-# feature test macro for it in gcc.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if pac-ret is enabled" >&5
-printf %s "checking if pac-ret is enabled... " >&6; }
-if test ${libc_cv_aarch64_pac_ret+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.c <<EOF
-int bar (void);
-int foo (void) { return bar () + 1; }
-EOF
- libc_cv_aarch64_pac_ret=no
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -o conftest.s conftest.c'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; } \
- && { ac_try='grep -q -E '\''(hint( | )+25|paciasp)'\'' conftest.s'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- libc_cv_aarch64_pac_ret=yes
- fi
- rm -rf conftest.* ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_pac_ret" >&5
-printf "%s\n" "$libc_cv_aarch64_pac_ret" >&6; }
-if test $libc_cv_aarch64_pac_ret = yes; then
- printf "%s\n" "#define HAVE_AARCH64_PAC_RET 1" >>confdefs.h
-
-fi
-
-# Check if binutils supports variant PCS symbols.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variant PCS support" >&5
-printf %s "checking for variant PCS support... " >&6; }
-if test ${libc_cv_aarch64_variant_pcs+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.S <<EOF
-.global foo
-.type foo, %function
-.variant_pcs foo
-foo:
- ret
-.global bar
-.type bar, %function
-bar:
- b foo
-EOF
- libc_cv_aarch64_variant_pcs=no
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles $no_ssp -shared -fPIC -o conftest.so conftest.S'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; } \
- && { ac_try='$READELF -dW conftest.so | grep -q AARCH64_VARIANT_PCS'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- libc_cv_aarch64_variant_pcs=yes
- fi
- rm -rf conftest.* ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_variant_pcs" >&5
-printf "%s\n" "$libc_cv_aarch64_variant_pcs" >&6; }
-config_vars="$config_vars
-aarch64-variant-pcs = $libc_cv_aarch64_variant_pcs"
-
-# Check if asm support armv8.2-a+sve
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SVE support in assembler" >&5
-printf %s "checking for SVE support in assembler... " >&6; }
-if test ${libc_cv_aarch64_sve_asm+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.s <<\EOF
- .arch armv8.2-a+sve
- ptrue p0.b
-EOF
-if { ac_try='${CC-cc} -c conftest.s 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- libc_cv_aarch64_sve_asm=yes
-else
- libc_cv_aarch64_sve_asm=no
-fi
-rm -f conftest* ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_sve_asm" >&5
-printf "%s\n" "$libc_cv_aarch64_sve_asm" >&6; }
-if test $libc_cv_aarch64_sve_asm = yes; then
- printf "%s\n" "#define HAVE_AARCH64_SVE_ASM 1" >>confdefs.h
-
-fi
-
if test x"$build_mathvec" = xnotset; then
build_mathvec=yes
fi
-# Check if compiler supports SVE ACLE.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for availability of SVE ACLE" >&5
-printf %s "checking for availability of SVE ACLE... " >&6; }
-if test ${libc_cv_aarch64_sve_acle+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.c <<EOF
-#include <arm_sve.h>
-EOF
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fsyntax-only -ffreestanding conftest.c'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- libc_cv_aarch64_sve_acle=yes
- else
- libc_cv_aarch64_sve_acle=no
- fi
- rm conftest.c ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_sve_acle" >&5
-printf "%s\n" "$libc_cv_aarch64_sve_acle" >&6; }
-
-# Check if compiler is sufficient to build mathvec
-if test $build_mathvec = yes; then
- fail=no
- if test $libc_cv_aarch64_variant_pcs = no; then
- fail=yes
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: mathvec is enabled but linker does not support variant PCS." >&5
-printf "%s\n" "$as_me: WARNING: mathvec is enabled but linker does not support variant PCS." >&2;}
- fi
- if test $libc_cv_aarch64_sve_asm = no; then
- fail=yes
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: mathvec is enabled but assembler does not support SVE." >&5
-printf "%s\n" "$as_me: WARNING: mathvec is enabled but assembler does not support SVE." >&2;}
- fi
- if test $libc_cv_aarch64_sve_acle = no; then
- fail=yes
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: mathvec is enabled but compiler does not have SVE ACLE." >&5
-printf "%s\n" "$as_me: WARNING: mathvec is enabled but compiler does not have SVE ACLE." >&2;}
- fi
- if test $fail = yes; then
- as_fn_error $? "use a compatible toolchain or configure with --disable-mathvec (this results in incomplete ABI)." "$LINENO" 5
- fi
-else
+if test $build_mathvec = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: mathvec is disabled, this results in incomplete ABI." >&5
printf "%s\n" "$as_me: WARNING: mathvec is disabled, this results in incomplete ABI." >&2;}
fi
diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
index 56d12d6..22fca8b 100644
--- a/sysdeps/aarch64/configure.ac
+++ b/sysdeps/aarch64/configure.ac
@@ -24,119 +24,10 @@ else
LIBC_CONFIG_VAR([default-abi], [lp64])
fi
-# Only consider BTI supported if -mbranch-protection=bti is
-# on by default in the compiler and the linker produces
-# binaries with GNU property notes in PT_GNU_PROPERTY segment.
-AC_CACHE_CHECK([for BTI support], [libc_cv_aarch64_bti], [dnl
- cat > conftest.c <<EOF
-void foo (void) { }
-EOF
- libc_cv_aarch64_bti=no
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles $no_ssp -shared -fPIC -o conftest.so conftest.c]) \
- && AC_TRY_COMMAND([$READELF -lW conftest.so | grep -q GNU_PROPERTY]) \
- && AC_TRY_COMMAND([$READELF -nW conftest.so | grep -q "NT_GNU_PROPERTY_TYPE_0.*AArch64 feature:.* BTI"])
- then
- libc_cv_aarch64_bti=yes
- fi
- rm -rf conftest.*])
-LIBC_CONFIG_VAR([aarch64-bti], [$libc_cv_aarch64_bti])
-if test $libc_cv_aarch64_bti = yes; then
- AC_DEFINE(HAVE_AARCH64_BTI)
-fi
-
-# Check if glibc is built with return address signing, i.e.
-# if -mbranch-protection=pac-ret is on. We need this because
-# pac-ret relies on unwinder support so it's not safe to use
-# it in assembly code unconditionally, but there is no
-# feature test macro for it in gcc.
-AC_CACHE_CHECK([if pac-ret is enabled], [libc_cv_aarch64_pac_ret], [dnl
- cat > conftest.c <<EOF
-int bar (void);
-int foo (void) { return bar () + 1; }
-EOF
- libc_cv_aarch64_pac_ret=no
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -o conftest.s conftest.c]) \
- && AC_TRY_COMMAND([grep -q -E '\''(hint( | )+25|paciasp)'\'' conftest.s])
- then
- libc_cv_aarch64_pac_ret=yes
- fi
- rm -rf conftest.*])
-if test $libc_cv_aarch64_pac_ret = yes; then
- AC_DEFINE(HAVE_AARCH64_PAC_RET)
-fi
-
-# Check if binutils supports variant PCS symbols.
-AC_CACHE_CHECK([for variant PCS support], [libc_cv_aarch64_variant_pcs], [dnl
- cat > conftest.S <<EOF
-.global foo
-.type foo, %function
-.variant_pcs foo
-foo:
- ret
-.global bar
-.type bar, %function
-bar:
- b foo
-EOF
- libc_cv_aarch64_variant_pcs=no
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles $no_ssp -shared -fPIC -o conftest.so conftest.S]) \
- && AC_TRY_COMMAND([$READELF -dW conftest.so | grep -q AARCH64_VARIANT_PCS])
- then
- libc_cv_aarch64_variant_pcs=yes
- fi
- rm -rf conftest.*])
-LIBC_CONFIG_VAR([aarch64-variant-pcs], [$libc_cv_aarch64_variant_pcs])
-
-# Check if asm support armv8.2-a+sve
-AC_CACHE_CHECK([for SVE support in assembler], [libc_cv_aarch64_sve_asm], [dnl
-cat > conftest.s <<\EOF
- .arch armv8.2-a+sve
- ptrue p0.b
-EOF
-if AC_TRY_COMMAND(${CC-cc} -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
- libc_cv_aarch64_sve_asm=yes
-else
- libc_cv_aarch64_sve_asm=no
-fi
-rm -f conftest*])
-if test $libc_cv_aarch64_sve_asm = yes; then
- AC_DEFINE(HAVE_AARCH64_SVE_ASM)
-fi
-
if test x"$build_mathvec" = xnotset; then
build_mathvec=yes
fi
-# Check if compiler supports SVE ACLE.
-AC_CACHE_CHECK(for availability of SVE ACLE, libc_cv_aarch64_sve_acle, [dnl
- cat > conftest.c <<EOF
-#include <arm_sve.h>
-EOF
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fsyntax-only -ffreestanding conftest.c]); then
- libc_cv_aarch64_sve_acle=yes
- else
- libc_cv_aarch64_sve_acle=no
- fi
- rm conftest.c])
-
-# Check if compiler is sufficient to build mathvec
-if test $build_mathvec = yes; then
- fail=no
- if test $libc_cv_aarch64_variant_pcs = no; then
- fail=yes
- AC_MSG_WARN([mathvec is enabled but linker does not support variant PCS.])
- fi
- if test $libc_cv_aarch64_sve_asm = no; then
- fail=yes
- AC_MSG_WARN([mathvec is enabled but assembler does not support SVE.])
- fi
- if test $libc_cv_aarch64_sve_acle = no; then
- fail=yes
- AC_MSG_WARN([mathvec is enabled but compiler does not have SVE ACLE.])
- fi
- if test $fail = yes; then
- AC_MSG_ERROR([use a compatible toolchain or configure with --disable-mathvec (this results in incomplete ABI).])
- fi
-else
+if test $build_mathvec = no; then
AC_MSG_WARN([mathvec is disabled, this results in incomplete ABI.])
fi
diff --git a/sysdeps/aarch64/cpu-features.h b/sysdeps/aarch64/cpu-features.h
index bc8d842..ef4e947 100644
--- a/sysdeps/aarch64/cpu-features.h
+++ b/sysdeps/aarch64/cpu-features.h
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. AArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,14 +40,6 @@
#define MIDR_IMPLEMENTOR(midr) \
(((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT)
-#define IS_THUNDERX(midr) (MIDR_IMPLEMENTOR(midr) == 'C' \
- && MIDR_PARTNUM(midr) == 0x0a1)
-
-#define IS_THUNDERX2PA(midr) (MIDR_IMPLEMENTOR(midr) == 'B' \
- && MIDR_PARTNUM(midr) == 0x516)
-#define IS_THUNDERX2(midr) (MIDR_IMPLEMENTOR(midr) == 'C' \
- && MIDR_PARTNUM(midr) == 0xaf)
-
#define IS_EMAG(midr) (MIDR_IMPLEMENTOR(midr) == 'P' \
&& MIDR_PARTNUM(midr) == 0x000)
diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S
index e54cb02..e9e530c 100644
--- a/sysdeps/aarch64/crti.S
+++ b/sysdeps/aarch64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for AArch64.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -61,11 +61,11 @@
.type call_weak_fn, %function
call_weak_fn:
adrp x0, :got:PREINIT_FUNCTION
- ldr PTR_REG (0), [x0, #:got_lo12:PREINIT_FUNCTION]
+ ldr x0, [x0, #:got_lo12:PREINIT_FUNCTION]
cbz x0, 1f
b PREINIT_FUNCTION
1:
- RET
+ ret
.size call_weak_fn, .-call_weak_fn
#endif
@@ -75,11 +75,7 @@ call_weak_fn:
.hidden _init
.type _init, %function
_init:
-#if HAVE_AARCH64_PAC_RET
- PACIASP
-#else
- BTI_C
-#endif
+ paciasp
stp x29, x30, [sp, -16]!
mov x29, sp
#if PREINIT_FUNCTION_WEAK
@@ -94,10 +90,6 @@ _init:
.hidden _fini
.type _fini, %function
_fini:
-#if HAVE_AARCH64_PAC_RET
- PACIASP
-#else
- BTI_C
-#endif
+ paciasp
stp x29, x30, [sp, -16]!
mov x29, sp
diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S
index 3220e45..653a548 100644
--- a/sysdeps/aarch64/crtn.S
+++ b/sysdeps/aarch64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for AArch64.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -41,14 +41,10 @@
.section .init,"ax",%progbits
ldp x29, x30, [sp], 16
-#if HAVE_AARCH64_PAC_RET
- AUTIASP
-#endif
- RET
+ autiasp
+ ret
.section .fini,"ax",%progbits
ldp x29, x30, [sp], 16
-#if HAVE_AARCH64_PAC_RET
- AUTIASP
-#endif
- RET
+ autiasp
+ ret
diff --git a/sysdeps/aarch64/dl-audit-check.h b/sysdeps/aarch64/dl-audit-check.h
index 51f81eb..17bae43 100644
--- a/sysdeps/aarch64/dl-audit-check.h
+++ b/sysdeps/aarch64/dl-audit-check.h
@@ -1,5 +1,5 @@
/* rtld-audit version check. AArch64 version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/dl-bti.c b/sysdeps/aarch64/dl-bti.c
index fd0d308..de61304 100644
--- a/sysdeps/aarch64/dl-bti.c
+++ b/sysdeps/aarch64/dl-bti.c
@@ -1,5 +1,5 @@
/* AArch64 BTI functions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -84,10 +84,9 @@ _dl_bti_check (struct link_map *l, const char *program)
if (l->l_mach.bti_fail)
bti_failed (l, program);
- unsigned int i = l->l_searchlist.r_nlist;
- while (i-- > 0)
+ for (unsigned int i = 0; i < l->l_searchlist.r_nlist; i++)
{
- struct link_map *dep = l->l_initfini[i];
+ struct link_map *dep = l->l_searchlist.r_list[i];
if (dep->l_mach.bti_fail)
bti_failed (dep, program);
}
diff --git a/sysdeps/aarch64/dl-diagnostics-cpu.c b/sysdeps/aarch64/dl-diagnostics-cpu.c
index e037e6e..9130d2b 100644
--- a/sysdeps/aarch64/dl-diagnostics-cpu.c
+++ b/sysdeps/aarch64/dl-diagnostics-cpu.c
@@ -1,5 +1,5 @@
/* Print CPU diagnostics data in ld.so. AArch64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/dl-dtprocnum.h b/sysdeps/aarch64/dl-dtprocnum.h
index cf17995..3358031 100644
--- a/sysdeps/aarch64/dl-dtprocnum.h
+++ b/sysdeps/aarch64/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. AArch64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/dl-gcs.c b/sysdeps/aarch64/dl-gcs.c
new file mode 100644
index 0000000..4ac86a5
--- /dev/null
+++ b/sysdeps/aarch64/dl-gcs.c
@@ -0,0 +1,121 @@
+/* AArch64 GCS functions.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <ldsodefs.h>
+
+/* GCS is disabled. */
+#define GCS_POLICY_DISABLED 0
+
+/* Enable GCS, abort if unmarked binary is found. */
+#define GCS_POLICY_ENFORCED 1
+
+/* Optionally enable GCS if all startup dependencies are marked. */
+#define GCS_POLICY_OPTIONAL 2
+
+/* Override binary marking and always enabled GCS. */
+#define GCS_POLICY_OVERRIDE 3
+
+static void
+fail (struct link_map *l, const char *program)
+{
+ if (program && program[0])
+ _dl_fatal_printf ("%s: %s: %s\n", program, l->l_name, "not GCS compatible");
+ else if (program)
+ _dl_fatal_printf ("%s\n", "not GCS compatible");
+ else
+ _dl_signal_error (0, l->l_name, "dlopen", "not GCS compatible");
+}
+
+static void
+unsupported (void)
+{
+ _dl_fatal_printf ("%s\n", "unsupported GCS policy");
+}
+
+/* This function is called only when binary markings are not
+ ignored and GCS is supposed to be enabled. This occurs
+ for the GCS_POLICY_ENFORCED and GCS_POLICY_ENFORCED policies. */
+static bool
+check_gcs (struct link_map *l, const char *program, bool enforced)
+{
+#ifdef SHARED
+ /* Ignore GCS marking on ld.so: its properties are not processed. */
+ if (is_rtld_link_map (l->l_real))
+ return true;
+#endif
+ /* Binary is marked, all good. */
+ if (l->l_mach.gcs)
+ return true;
+ /* Binary is not marked and loaded via dlopen: abort. */
+ if (program == NULL)
+ fail (l, program);
+ /* Binary is not marked and we enforce GCS: abort. */
+ if (enforced)
+ fail (l, program);
+ /* Binary is not marked but GSC is optional: disable GCS. */
+ else
+ {
+ GL(dl_aarch64_gcs) = 0;
+ return false;
+ }
+ __builtin_unreachable ();
+}
+
+/* Iterate over all dependencies and check GCS marking.
+ This function is called only when binary markings are not
+ ignored and GCS is supposed to be enabled. This occurs
+ for the GCS_POLICY_ENFORCED and GCS_POLICY_ENFORCED policies.
+ We interrupt checking if GCS is optional and we already know
+ it is going to be disabled. */
+static void
+check_gcs_depends (struct link_map *l, const char *program, bool enforced)
+{
+ if (check_gcs (l, program, enforced))
+ for (unsigned int i = 0; i < l->l_searchlist.r_nlist; i++)
+ if (!check_gcs (l->l_searchlist.r_list[i], program, enforced))
+ break;
+}
+
+/* Apply GCS policy for L and its dependencies.
+ PROGRAM is NULL when this check is invoked for dl_open. */
+void
+_dl_gcs_check (struct link_map *l, const char *program)
+{
+ unsigned long policy = GL (dl_aarch64_gcs);
+ switch (policy)
+ {
+ case GCS_POLICY_DISABLED:
+ case GCS_POLICY_OVERRIDE:
+ return;
+ case GCS_POLICY_ENFORCED:
+ check_gcs_depends (l, program, true);
+ return;
+ case GCS_POLICY_OPTIONAL:
+ check_gcs_depends (l, program, false);
+ return;
+ default:
+ /* All other policy values are not supported: abort. */
+ unsupported ();
+ }
+}
+
+/* Used to report error when prctl system call to enabled GCS fails. */
+void _dl_gcs_enable_failed (int code)
+{
+ _dl_fatal_printf ("failed to enable GCS: %d\n", -code);
+}
diff --git a/sysdeps/aarch64/dl-irel.h b/sysdeps/aarch64/dl-irel.h
index a0fbbbd..7bae3c3 100644
--- a/sysdeps/aarch64/dl-irel.h
+++ b/sysdeps/aarch64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
AArch64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,11 +21,26 @@
#define _DL_IREL_H
#include <stdio.h>
-#include <unistd.h>
#include <ldsodefs.h>
-#include <sysdep.h>
#include <sys/ifunc.h>
+#define _IFUNC_ARG_SIZE_VER0 24 /* sizeof 1st published __ifunc_arg_t */
+#define _IFUNC_ARG_SIZE_VER1 40 /* sizeof 2nd published __ifunc_arg_t */
+
+#define sizeof_field(TYPE, MEMBER) sizeof ((((TYPE *)0)->MEMBER))
+#define offsetofend(TYPE, MEMBER) \
+ (offsetof (TYPE, MEMBER) + sizeof_field (TYPE, MEMBER))
+
+_Static_assert (sizeof (__ifunc_arg_t) == _IFUNC_ARG_SIZE_VER1,
+ "sizeof (__ifunc_arg_t) != _IFUNC_ARG_SIZE_VER1");
+
+_Static_assert (_IFUNC_ARG_SIZE_VER1
+ == (_IFUNC_HWCAP_MAX + 1) * sizeof (unsigned long),
+ "_IFUNC_ARG_SIZE_VER1 and _IFUNC_HWCAP_MAX mismatch");
+
+#undef offsetofend
+#undef sizeof_field
+
#define ELF_MACHINE_IRELA 1
static inline ElfW(Addr)
@@ -37,6 +52,8 @@ elf_ifunc_invoke (ElfW(Addr) addr)
arg._size = sizeof (arg);
arg._hwcap = GLRO(dl_hwcap);
arg._hwcap2 = GLRO(dl_hwcap2);
+ arg._hwcap3 = GLRO(dl_hwcap3);
+ arg._hwcap4 = GLRO(dl_hwcap4);
return ((ElfW(Addr) (*) (uint64_t, const __ifunc_arg_t *)) (addr))
(GLRO(dl_hwcap) | _IFUNC_ARG_HWCAP, &arg);
}
@@ -48,7 +65,7 @@ elf_irela (const ElfW(Rela) *reloc)
ElfW(Addr) *const reloc_addr = (void *) reloc->r_offset;
const unsigned long int r_type = ELFW(R_TYPE) (reloc->r_info);
- if (__glibc_likely (r_type == AARCH64_R(IRELATIVE)))
+ if (__glibc_likely (r_type == R_AARCH64_IRELATIVE))
{
ElfW(Addr) value = elf_ifunc_invoke (reloc->r_addend);
*reloc_addr = value;
diff --git a/sysdeps/aarch64/dl-lookupcfg.h b/sysdeps/aarch64/dl-lookupcfg.h
index 3cc8e34..52ce8a7 100644
--- a/sysdeps/aarch64/dl-lookupcfg.h
+++ b/sysdeps/aarch64/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
index 71135aa..022642a 100644
--- a/sysdeps/aarch64/dl-machine.h
+++ b/sysdeps/aarch64/dl-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -118,7 +118,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
(type) == R_AARCH64_TLSDESC) * ELF_RTYPE_CLASS_PLT) \
| (((type) == R_AARCH64_COPY) * ELF_RTYPE_CLASS_COPY))
-#define ELF_MACHINE_JMP_SLOT AARCH64_R(JUMP_SLOT)
+#define ELF_MACHINE_JMP_SLOT R_AARCH64_JUMP_SLOT
#define DL_PLATFORM_INIT dl_platform_init ()
@@ -174,7 +174,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
ElfW(Addr) *const reloc_addr = reloc_addr_arg;
const unsigned int r_type = ELFW (R_TYPE) (reloc->r_info);
- if (__builtin_expect (r_type == AARCH64_R(RELATIVE), 0))
+ if (__builtin_expect (r_type == R_AARCH64_RELATIVE, 0))
*reloc_addr = map->l_addr + reloc->r_addend;
else if (__builtin_expect (r_type == R_AARCH64_NONE, 0))
return;
@@ -195,19 +195,17 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
switch (r_type)
{
- case AARCH64_R(GLOB_DAT):
- case AARCH64_R(JUMP_SLOT):
+ case R_AARCH64_GLOB_DAT:
+ case R_AARCH64_JUMP_SLOT:
*reloc_addr = value + reloc->r_addend;
break;
# ifndef RTLD_BOOTSTRAP
- case AARCH64_R(ABS32):
-# ifdef __LP64__
- case AARCH64_R(ABS64):
-# endif
+ case R_AARCH64_ABS32:
+ case R_AARCH64_ABS64:
*reloc_addr = value + reloc->r_addend;
break;
- case AARCH64_R(COPY):
+ case R_AARCH64_COPY:
if (sym == NULL)
break;
@@ -226,7 +224,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
? sym->st_size : refsym->st_size);
break;
- case AARCH64_R(TLSDESC):
+ case R_AARCH64_TLSDESC:
{
struct tlsdesc volatile *td =
(struct tlsdesc volatile *)reloc_addr;
@@ -257,19 +255,19 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
break;
}
- case AARCH64_R(TLS_DTPMOD):
+ case R_AARCH64_TLS_DTPMOD:
if (sym_map != NULL)
{
*reloc_addr = sym_map->l_tls_modid;
}
break;
- case AARCH64_R(TLS_DTPREL):
+ case R_AARCH64_TLS_DTPREL:
if (sym)
*reloc_addr = sym->st_value + reloc->r_addend;
break;
- case AARCH64_R(TLS_TPREL):
+ case R_AARCH64_TLS_TPREL:
if (sym)
{
CHECK_STATIC_TLS (map, sym_map);
@@ -278,7 +276,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
}
break;
- case AARCH64_R(IRELATIVE):
+ case R_AARCH64_IRELATIVE:
value = map->l_addr + reloc->r_addend;
if (__glibc_likely (!skip_ifunc))
value = elf_ifunc_invoke (value);
@@ -313,7 +311,7 @@ elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[],
ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset);
const unsigned int r_type = ELFW (R_TYPE) (reloc->r_info);
/* Check for unexpected PLT reloc type. */
- if (__builtin_expect (r_type == AARCH64_R(JUMP_SLOT), 1))
+ if (__builtin_expect (r_type == R_AARCH64_JUMP_SLOT, 1))
{
if (__glibc_unlikely (map->l_info[DT_AARCH64 (VARIANT_PCS)] != NULL))
{
@@ -343,7 +341,7 @@ elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[],
else
*reloc_addr = map->l_mach.plt;
}
- else if (__builtin_expect (r_type == AARCH64_R(TLSDESC), 1))
+ else if (__builtin_expect (r_type == R_AARCH64_TLSDESC, 1))
{
const Elf_Symndx symndx = ELFW (R_SYM) (reloc->r_info);
const ElfW (Sym) *symtab = (const void *)D_PTR (map, l_info[DT_SYMTAB]);
@@ -362,7 +360,7 @@ elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[],
elf_machine_rela (map, scope, reloc, sym, version, reloc_addr,
skip_ifunc);
}
- else if (__glibc_unlikely (r_type == AARCH64_R(IRELATIVE)))
+ else if (__glibc_unlikely (r_type == R_AARCH64_IRELATIVE))
{
ElfW(Addr) value = map->l_addr + reloc->r_addend;
if (__glibc_likely (!skip_ifunc))
diff --git a/sysdeps/aarch64/dl-prop.h b/sysdeps/aarch64/dl-prop.h
index df05c02..abca2be 100644
--- a/sysdeps/aarch64/dl-prop.h
+++ b/sysdeps/aarch64/dl-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties. AArch64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,16 +24,21 @@ extern void _dl_bti_protect (struct link_map *, int) attribute_hidden;
extern void _dl_bti_check (struct link_map *, const char *)
attribute_hidden;
+extern void _dl_gcs_check (struct link_map *, const char *)
+ attribute_hidden;
+
static inline void __attribute__ ((always_inline))
_rtld_main_check (struct link_map *m, const char *program)
{
_dl_bti_check (m, program);
+ _dl_gcs_check (m, program);
}
static inline void __attribute__ ((always_inline))
_dl_open_check (struct link_map *m)
{
_dl_bti_check (m, NULL);
+ _dl_gcs_check (m, NULL);
}
static inline void __attribute__ ((always_inline))
@@ -45,10 +50,6 @@ static inline int
_dl_process_gnu_property (struct link_map *l, int fd, uint32_t type,
uint32_t datasz, void *data)
{
- if (!GLRO(dl_aarch64_cpu_features).bti)
- /* Skip note processing. */
- return 0;
-
if (type == GNU_PROPERTY_AARCH64_FEATURE_1_AND)
{
/* Stop if the property note is ill-formed. */
@@ -57,7 +58,11 @@ _dl_process_gnu_property (struct link_map *l, int fd, uint32_t type,
unsigned int feature_1 = *(unsigned int *) data;
if (feature_1 & GNU_PROPERTY_AARCH64_FEATURE_1_BTI)
- _dl_bti_protect (l, fd);
+ if (GLRO(dl_aarch64_cpu_features).bti)
+ _dl_bti_protect (l, fd);
+
+ if (feature_1 & GNU_PROPERTY_AARCH64_FEATURE_1_GCS)
+ l->l_mach.gcs = 1;
/* Stop if we processed the property note. */
return 0;
diff --git a/sysdeps/aarch64/dl-start.S b/sysdeps/aarch64/dl-start.S
index d645484..2ccc219 100644
--- a/sysdeps/aarch64/dl-start.S
+++ b/sysdeps/aarch64/dl-start.S
@@ -1,5 +1,5 @@
/* ld.so _start code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -18,6 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
+#include <rtld-global-offsets.h>
ENTRY (_start)
/* Create an initial frame with 0 LR and FP */
@@ -25,29 +26,53 @@ ENTRY (_start)
mov x29, #0
mov x30, #0
+ /* Load and relocate all library dependencies. */
mov x0, sp
- PTR_ARG (0)
bl _dl_start
/* Returns user entry point in x0. */
- mov PTR_REG (21), PTR_REG (0)
+ mov x21, x0
+
+ /* Use GL(dl_aarch64_gcs) to set the shadow stack status. */
+ adrp x16, _rtld_local
+ add x16, x16, :lo12:_rtld_local
+ ldr x1, [x16, GL_DL_AARCH64_GCS_OFFSET]
+ cbz x1, L(skip_gcs_enable)
+
+ /* Enable GCS before user code runs. Note that IFUNC resolvers and
+ LD_AUDIT hooks may run before, but should not create threads. */
+#define PR_SET_SHADOW_STACK_STATUS 75
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+ mov x0, PR_SET_SHADOW_STACK_STATUS
+ mov x1, PR_SHADOW_STACK_ENABLE
+ mov x2, 0
+ mov x3, 0
+ mov x4, 0
+ mov x8, #SYS_ify(prctl)
+ svc 0x0
+ cbnz w0, L(failed_gcs_enable)
+L(skip_gcs_enable):
+
.globl _dl_start_user
.type _dl_start_user, %function
_dl_start_user:
/* Get argc. */
- ldr PTR_REG (1), [sp]
+ ldr x1, [sp]
/* Get argv. */
- add x2, sp, PTR_SIZE
+ add x2, sp, 8
/* Compute envp. */
- add PTR_REG (3), PTR_REG (2), PTR_REG (1), lsl PTR_LOG_SIZE
- add PTR_REG (3), PTR_REG (3), PTR_SIZE
- adrp x16, _rtld_local
- add PTR_REG (16), PTR_REG (16), :lo12:_rtld_local
- ldr PTR_REG (0), [x16]
+ add x3, x2, x1, lsl 3
+ add x3, x3, 8
+ /* Run the init functions of the loaded modules. */
+ ldr x0, [x16]
bl _dl_init
/* Load the finalizer function. */
adrp x0, _dl_fini
- add PTR_REG (0), PTR_REG (0), :lo12:_dl_fini
+ add x0, x0, :lo12:_dl_fini
/* Jump to the user's entry point. */
- mov x16, x21
- br x16
+ mov x16, x21
+ br x16
+
+L(failed_gcs_enable):
+ b _dl_gcs_enable_failed
+
END (_start)
diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
index 4febf2a..2ff8d95 100644
--- a/sysdeps/aarch64/dl-tlsdesc.S
+++ b/sysdeps/aarch64/dl-tlsdesc.S
@@ -1,6 +1,6 @@
/* Thread-local storage handling in the ELF dynamic linker.
AArch64 version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -74,10 +74,9 @@
cfi_startproc
.align 2
_dl_tlsdesc_return:
- BTI_C
- PTR_ARG (0)
- ldr PTR_REG (0), [x0, #PTR_SIZE]
- RET
+ bti c
+ ldr x0, [x0, 8]
+ ret
cfi_endproc
.size _dl_tlsdesc_return, .-_dl_tlsdesc_return
@@ -96,16 +95,15 @@ _dl_tlsdesc_return:
cfi_startproc
.align 2
_dl_tlsdesc_undefweak:
- BTI_C
+ bti c
str x1, [sp, #-16]!
cfi_adjust_cfa_offset (16)
- PTR_ARG (0)
- ldr PTR_REG (0), [x0, #PTR_SIZE]
+ ldr x0, [x0, 8]
mrs x1, tpidr_el0
- sub PTR_REG (0), PTR_REG (0), PTR_REG (1)
+ sub x0, x0, x1
ldr x1, [sp], #16
cfi_adjust_cfa_offset (-16)
- RET
+ ret
cfi_endproc
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
@@ -121,20 +119,19 @@ _dl_tlsdesc_undefweak:
object referenced by the argument.
ptrdiff_t
- __attribute__ ((__regparm__ (1)))
_dl_tlsdesc_dynamic (struct tlsdesc *tdp)
{
struct tlsdesc_dynamic_arg *td = tdp->arg;
- dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + TCBHEAD_DTV);
+ dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer() + TCBHEAD_DTV);
if (__builtin_expect (td->gen_count <= dtv[0].counter
&& (dtv[td->tlsinfo.ti_module].pointer.val
!= TLS_DTV_UNALLOCATED),
1))
return dtv[td->tlsinfo.ti_module].pointer.val
+ td->tlsinfo.ti_offset
- - __thread_pointer;
+ - __thread_pointer();
- return ___tls_get_addr (&td->tlsinfo) - __thread_pointer;
+ return __tls_get_addr (&td->tlsinfo) - __thread_pointer();
}
*/
@@ -144,8 +141,8 @@ _dl_tlsdesc_undefweak:
cfi_startproc
.align 2
_dl_tlsdesc_dynamic:
- BTI_C
- PTR_ARG (0)
+ paciasp
+ cfi_negate_ra_state
/* Save just enough registers to support fast path, if we fall
into slow path we will save additional registers. */
@@ -158,26 +155,28 @@ _dl_tlsdesc_dynamic:
cfi_rel_offset (x4, 24)
mrs x4, tpidr_el0
- ldr PTR_REG (1), [x0,#TLSDESC_ARG]
- ldr PTR_REG (0), [x4,#TCBHEAD_DTV]
- ldr PTR_REG (3), [x1,#TLSDESC_GEN_COUNT]
- ldr PTR_REG (2), [x0,#DTV_COUNTER]
- cmp PTR_REG (3), PTR_REG (2)
+ ldr x1, [x0, TLSDESC_ARG]
+ ldr x0, [x4, TCBHEAD_DTV]
+ ldr x3, [x1, TLSDESC_GEN_COUNT]
+ ldr x2, [x0, DTV_COUNTER]
+ cmp x3, x2
b.hi 2f
/* Load r2 = td->tlsinfo.ti_module and r3 = td->tlsinfo.ti_offset. */
- ldp PTR_REG (2), PTR_REG (3), [x1,#TLSDESC_MODID]
- add PTR_REG (0), PTR_REG (0), PTR_REG (2), lsl #(PTR_LOG_SIZE + 1)
- ldr PTR_REG (0), [x0] /* Load val member of DTV entry. */
- cmp PTR_REG (0), #TLS_DTV_UNALLOCATED
+ ldp x2, x3, [x1, TLSDESC_MODID]
+ add x0, x0, x2, lsl 4
+ ldr x0, [x0] /* Load val member of DTV entry. */
+ cmp x0, TLS_DTV_UNALLOCATED
b.eq 2f
cfi_remember_state
- sub PTR_REG (3), PTR_REG (3), PTR_REG (4)
- add PTR_REG (0), PTR_REG (0), PTR_REG (3)
+ sub x3, x3, x4
+ add x0, x0, x3
1:
ldp x3, x4, [sp, #16]
ldp x1, x2, [sp], #32
+ autiasp
+ cfi_negate_ra_state
cfi_adjust_cfa_offset (-32)
- RET
+ ret
2:
/* This is the slow path. We need to call __tls_get_addr() which
means we need to save and restore all the register that the
@@ -185,10 +184,6 @@ _dl_tlsdesc_dynamic:
/* Save the remaining registers that we must treat as caller save. */
cfi_restore_state
-# if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-# endif
# define NSAVEXREGPAIRS 8
stp x29, x30, [sp,#-16*NSAVEXREGPAIRS]!
cfi_adjust_cfa_offset (16*NSAVEXREGPAIRS)
@@ -223,7 +218,7 @@ _dl_tlsdesc_dynamic:
bl HIDDEN_JUMPTARGET(__tls_get_addr)
mrs x1, tpidr_el0
- sub PTR_REG (0), PTR_REG (0), PTR_REG (1)
+ sub x0, x0, x1
RESTORE_Q_REGISTERS
@@ -239,10 +234,6 @@ _dl_tlsdesc_dynamic:
cfi_adjust_cfa_offset (-16*NSAVEXREGPAIRS)
cfi_restore (x29)
cfi_restore (x30)
-# if HAVE_AARCH64_PAC_RET
- AUTIASP
- cfi_window_save
-# endif
b 1b
cfi_endproc
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
diff --git a/sysdeps/aarch64/dl-tlsdesc.h b/sysdeps/aarch64/dl-tlsdesc.h
index 6a512cb..c850fc8 100644
--- a/sysdeps/aarch64/dl-tlsdesc.h
+++ b/sysdeps/aarch64/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
AArch64 version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S
index 8360756..d628b01 100644
--- a/sysdeps/aarch64/dl-trampoline.S
+++ b/sysdeps/aarch64/dl-trampoline.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -22,12 +22,11 @@
#include "dl-link.h"
#define ip0 x16
-#define ip0l PTR_REG (16)
#define ip1 x17
#define lr x30
/* RELA relocatons are 3 pointers */
-#define RELA_SIZE (PTR_SIZE * 3)
+#define RELA_SIZE 24
.text
.globl _dl_runtime_resolve
@@ -35,7 +34,7 @@
cfi_startproc
.align 2
_dl_runtime_resolve:
- BTI_C
+ bti c
/* AArch64 we get called with:
ip0 &PLTGOT[2]
ip1 temp(dl resolver entry point)
@@ -85,7 +84,7 @@ _dl_runtime_resolve:
cfi_rel_offset (q1, 80+7*16)
/* Get pointer to linker struct. */
- ldr PTR_REG (0), [ip0, #-PTR_SIZE]
+ ldr x0, [ip0, -8]
/* Prepare to call _dl_fixup(). */
ldr x1, [sp, 80+8*16] /* Recover &PLTGOT[n] */
@@ -128,12 +127,8 @@ _dl_runtime_resolve:
cfi_startproc
.align 2
_dl_runtime_profile:
-# if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-# else
- BTI_C
-# endif
+ paciasp
+ cfi_negate_ra_state
/* AArch64 we get called with:
ip0 &PLTGOT[2]
ip1 temp(dl resolver entry point)
@@ -209,7 +204,7 @@ _dl_runtime_profile:
stp x0, x1, [x29, #OFFSET_RG + DL_OFFSET_RG_SP]
/* Get pointer to linker struct. */
- ldr PTR_REG (0), [ip0, #-PTR_SIZE]
+ ldr x0, [ip0, -8]
/* Prepare to call _dl_profile_fixup(). */
ldr x1, [x29, OFFSET_PLTGOTN] /* Recover &PLTGOT[n] */
@@ -228,8 +223,8 @@ _dl_runtime_profile:
add x4, x29, #OFFSET_FS /* address of framesize */
bl _dl_profile_fixup
- ldr ip0l, [x29, #OFFSET_FS] /* framesize == 0 */
- cmp ip0l, #0
+ ldr ip0, [x29, #OFFSET_FS] /* framesize == 0 */
+ cmp ip0, #0
bge 1f
cfi_remember_state
@@ -252,17 +247,12 @@ _dl_runtime_profile:
cfi_restore(x29)
cfi_restore(x30)
-# if HAVE_AARCH64_PAC_RET
add sp, sp, SF_SIZE
cfi_adjust_cfa_offset (-SF_SIZE)
- AUTIASP
- cfi_window_save
+ autiasp
+ cfi_negate_ra_state
add sp, sp, 16
cfi_adjust_cfa_offset (-16)
-# else
- add sp, sp, SF_SIZE + 16
- cfi_adjust_cfa_offset (- SF_SIZE - 16)
-# endif
/* Jump to the newly found address. */
br ip0
@@ -271,7 +261,7 @@ _dl_runtime_profile:
1:
/* The new frame size is in ip0. */
- sub PTR_REG (1), PTR_REG (29), ip0l
+ sub x1, x29, ip0
and sp, x1, #0xfffffffffffffff0
str x0, [x29, #OFFSET_T1]
@@ -322,10 +312,8 @@ _dl_runtime_profile:
/* LR from within La_aarch64_reg */
ldr lr, [x29, #OFFSET_RG + DL_OFFSET_RG_LR]
cfi_restore(lr)
-# if HAVE_AARCH64_PAC_RET
/* Note: LR restored from La_aarch64_reg has no PAC. */
- cfi_window_save
-# endif
+ cfi_negate_ra_state
mov sp, x29
cfi_def_cfa_register (sp)
ldr x29, [x29, #0]
diff --git a/sysdeps/aarch64/dl-tunables.list b/sysdeps/aarch64/dl-tunables.list
index 92c6cbf..d461c1e 100644
--- a/sysdeps/aarch64/dl-tunables.list
+++ b/sysdeps/aarch64/dl-tunables.list
@@ -1,5 +1,5 @@
# aarch64 specific tunables.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -21,5 +21,11 @@ glibc {
name {
type: STRING
}
+ aarch64_gcs {
+ type: UINT_64
+ minval: 0
+ maxval: 3
+ default: 0
+ }
}
}
diff --git a/sysdeps/aarch64/e_sqrtl.c b/sysdeps/aarch64/e_sqrtl.c
index 0eda6c6..3885ab5 100644
--- a/sysdeps/aarch64/e_sqrtl.c
+++ b/sysdeps/aarch64/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/elf-initfini.h b/sysdeps/aarch64/elf-initfini.h
index 9b5fdcd..e603415 100644
--- a/sysdeps/aarch64/elf-initfini.h
+++ b/sysdeps/aarch64/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. AArch64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile
index 234a6c4..068c11c 100644
--- a/sysdeps/aarch64/fpu/Makefile
+++ b/sysdeps/aarch64/fpu/Makefile
@@ -1,13 +1,18 @@
libmvec-supported-funcs = acos \
acosh \
+ acospi \
asin \
asinh \
+ asinpi \
atan \
atanh \
+ atanpi \
atan2 \
+ atan2pi \
cbrt \
cos \
cosh \
+ cospi \
erf \
erfc \
exp \
@@ -22,8 +27,10 @@ libmvec-supported-funcs = acos \
pow \
sin \
sinh \
+ sinpi \
tan \
- tanh
+ tanh \
+ tanpi
float-advsimd-funcs = $(libmvec-supported-funcs)
double-advsimd-funcs = $(libmvec-supported-funcs)
@@ -41,8 +48,6 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \
v_log10_data \
erf_data \
erff_data \
- sv_erf_data \
- sv_erff_data \
v_exp_tail_data \
erfc_data \
erfcf_data \
@@ -51,8 +56,11 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \
v_powf_data
endif
-sve-cflags = -march=armv8-a+sve
+# Enable SVE for building libmvec. Since CFLAGS may contain a -mcpu or -march,
+# add a generic -mcpu and -march with SVE enabled. Also use a tune for a modern
+# SVE core.
+sve-cflags = -mcpu=generic+sve -march=armv8-a+sve -mtune=neoverse-v1
ifeq ($(build-mathvec),yes)
bench-libmvec = $(addprefix float-advsimd-,$(float-advsimd-funcs)) \
diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions
index cc15ce2..2980cb7 100644
--- a/sysdeps/aarch64/fpu/Versions
+++ b/sysdeps/aarch64/fpu/Versions
@@ -135,4 +135,48 @@ libmvec {
_ZGVsMxv_tanh;
_ZGVsMxv_tanhf;
}
+ GLIBC_2.41 {
+ _ZGVnN2v_cospi;
+ _ZGVnN2v_cospif;
+ _ZGVnN4v_cospif;
+ _ZGVsMxv_cospi;
+ _ZGVsMxv_cospif;
+ _ZGVnN2v_logp1;
+ _ZGVnN2v_logp1f;
+ _ZGVnN4v_logp1f;
+ _ZGVsMxv_logp1;
+ _ZGVsMxv_logp1f;
+ _ZGVnN2v_sinpi;
+ _ZGVnN2v_sinpif;
+ _ZGVnN4v_sinpif;
+ _ZGVsMxv_sinpi;
+ _ZGVsMxv_sinpif;
+ _ZGVnN2v_tanpi;
+ _ZGVnN2v_tanpif;
+ _ZGVnN4v_tanpif;
+ _ZGVsMxv_tanpi;
+ _ZGVsMxv_tanpif;
+ }
+ GLIBC_2.42 {
+ _ZGVnN2v_acospi;
+ _ZGVnN2v_acospif;
+ _ZGVnN4v_acospif;
+ _ZGVsMxv_acospi;
+ _ZGVsMxv_acospif;
+ _ZGVnN2v_asinpi;
+ _ZGVnN2v_asinpif;
+ _ZGVnN4v_asinpif;
+ _ZGVsMxv_asinpi;
+ _ZGVsMxv_asinpif;
+ _ZGVnN2v_atanpi;
+ _ZGVnN2v_atanpif;
+ _ZGVnN4v_atanpif;
+ _ZGVsMxv_atanpi;
+ _ZGVsMxv_atanpif;
+ _ZGVnN2vv_atan2pi;
+ _ZGVnN2vv_atan2pif;
+ _ZGVnN4vv_atan2pif;
+ _ZGVsMxvv_atan2pi;
+ _ZGVsMxvv_atan2pif;
+ }
}
diff --git a/sysdeps/aarch64/fpu/acos_advsimd.c b/sysdeps/aarch64/fpu/acos_advsimd.c
index 0a86c98..453f780 100644
--- a/sysdeps/aarch64/fpu/acos_advsimd.c
+++ b/sysdeps/aarch64/fpu/acos_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD inverse cos
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,24 +18,23 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
static const struct data
{
- float64x2_t poly[12];
- float64x2_t pi, pi_over_2;
+ double c1, c3, c5, c7, c9, c11;
+ float64x2_t c0, c2, c4, c6, c8, c10;
uint64x2_t abs_mask;
+ float64x2_t pi, pi_over_2;
} data = {
/* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
- .poly = { V2 (0x1.555555555554ep-3), V2 (0x1.3333333337233p-4),
- V2 (0x1.6db6db67f6d9fp-5), V2 (0x1.f1c71fbd29fbbp-6),
- V2 (0x1.6e8b264d467d6p-6), V2 (0x1.1c5997c357e9dp-6),
- V2 (0x1.c86a22cd9389dp-7), V2 (0x1.856073c22ebbep-7),
- V2 (0x1.fd1151acb6bedp-8), V2 (0x1.087182f799c1dp-6),
- V2 (-0x1.6602748120927p-7), V2 (0x1.cfa0dd1f9478p-6), },
- .pi = V2 (0x1.921fb54442d18p+1),
- .pi_over_2 = V2 (0x1.921fb54442d18p+0),
+ .c0 = V2 (0x1.555555555554ep-3), .c1 = 0x1.3333333337233p-4,
+ .c2 = V2 (0x1.6db6db67f6d9fp-5), .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = V2 (0x1.6e8b264d467d6p-6), .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = V2 (0x1.c86a22cd9389dp-7), .c7 = 0x1.856073c22ebbep-7,
+ .c8 = V2 (0x1.fd1151acb6bedp-8), .c9 = 0x1.087182f799c1dp-6,
+ .c10 = V2 (-0x1.6602748120927p-7), .c11 = 0x1.cfa0dd1f9478p-6,
+ .pi = V2 (0x1.921fb54442d18p+1), .pi_over_2 = V2 (0x1.921fb54442d18p+0),
.abs_mask = V2 (0x7fffffffffffffff),
};
@@ -63,7 +62,7 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
acos(x) ~ pi/2 - (x + x^3 P(x^2)).
- The largest observed error in this region is 1.18 ulps,
+ The largest observed error in this region is 1.18 ulp:
_ZGVnN2v_acos (0x1.fbab0a7c460f6p-2) got 0x1.0d54d1985c068p+0
want 0x1.0d54d1985c069p+0.
@@ -71,9 +70,9 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
acos(x) = y + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
- The largest observed error in this region is 1.52 ulps,
- _ZGVnN2v_acos (0x1.23d362722f591p-1) got 0x1.edbbedf8a7d6ep-1
- want 0x1.edbbedf8a7d6cp-1. */
+ The largest observed error in this region is 1.50 ulp:
+ _ZGVnN2v_acos (0x1.252a2cf3fb9acp-1) got 0x1.ec1a46aa82901p-1
+ want 0x1.ec1a46aa829p-1. */
float64x2_t VPCS_ATTR V_NAME_D1 (acos) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
@@ -99,13 +98,32 @@ float64x2_t VPCS_ATTR V_NAME_D1 (acos) (float64x2_t x)
float64x2_t z = vbslq_f64 (a_le_half, ax, vsqrtq_f64 (z2));
/* Use a single polynomial approximation P for both intervals. */
+ float64x2_t z3 = vmulq_f64 (z2, z);
float64x2_t z4 = vmulq_f64 (z2, z2);
float64x2_t z8 = vmulq_f64 (z4, z4);
- float64x2_t z16 = vmulq_f64 (z8, z8);
- float64x2_t p = v_estrin_11_f64 (z2, z4, z8, z16, d->poly);
- /* Finalize polynomial: z + z * z2 * P(z2). */
- p = vfmaq_f64 (z, vmulq_f64 (z, z2), p);
+ /* Order-11 Estrin. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p411 = vfmaq_f64 (p47, z8, p811);
+ float64x2_t p = vfmaq_f64 (p03, z8, p411);
+
+ /* Finalize polynomial: z + z3 * P(z2). */
+ p = vfmaq_f64 (z, z3, p);
/* acos(|x|) = pi/2 - sign(x) * Q(|x|), for |x| < 0.5
= 2 Q(|x|) , for 0.5 < x < 1.0
diff --git a/sysdeps/aarch64/fpu/acos_sve.c b/sysdeps/aarch64/fpu/acos_sve.c
index 99dbfac..104f0d7 100644
--- a/sysdeps/aarch64/fpu/acos_sve.c
+++ b/sysdeps/aarch64/fpu/acos_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE inverse cos
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,20 +18,21 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[12];
- float64_t pi, pi_over_2;
+ float64_t c1, c3, c5, c7, c9, c11;
+ float64_t c0, c2, c4, c6, c8, c10;
+ float64_t pi_over_2;
} data = {
/* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
- .poly = { 0x1.555555555554ep-3, 0x1.3333333337233p-4, 0x1.6db6db67f6d9fp-5,
- 0x1.f1c71fbd29fbbp-6, 0x1.6e8b264d467d6p-6, 0x1.1c5997c357e9dp-6,
- 0x1.c86a22cd9389dp-7, 0x1.856073c22ebbep-7, 0x1.fd1151acb6bedp-8,
- 0x1.087182f799c1dp-6, -0x1.6602748120927p-7, 0x1.cfa0dd1f9478p-6, },
- .pi = 0x1.921fb54442d18p+1,
+ .c0 = 0x1.555555555554ep-3, .c1 = 0x1.3333333337233p-4,
+ .c2 = 0x1.6db6db67f6d9fp-5, .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = 0x1.6e8b264d467d6p-6, .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = 0x1.c86a22cd9389dp-7, .c7 = 0x1.856073c22ebbep-7,
+ .c8 = 0x1.fd1151acb6bedp-8, .c9 = 0x1.087182f799c1dp-6,
+ .c10 = -0x1.6602748120927p-7, .c11 = 0x1.cfa0dd1f9478p-6,
.pi_over_2 = 0x1.921fb54442d18p+0,
};
@@ -42,20 +43,21 @@ static const struct data
acos(x) ~ pi/2 - (x + x^3 P(x^2)).
- The largest observed error in this region is 1.18 ulps,
- _ZGVsMxv_acos (0x1.fbc5fe28ee9e3p-2) got 0x1.0d4d0f55667f6p+0
- want 0x1.0d4d0f55667f7p+0.
+ The largest observed error in this region is 1.18 ulp:
+ _ZGVsMxv_acos (0x1.fbb7c9079b429p-2) got 0x1.0d51266607582p+0
+ want 0x1.0d51266607583p+0.
For |x| in [0.5, 1.0], use same approximation with a change of variable
acos(x) = y + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
- The largest observed error in this region is 1.52 ulps,
- _ZGVsMxv_acos (0x1.24024271a500ap-1) got 0x1.ed82df4243f0dp-1
- want 0x1.ed82df4243f0bp-1. */
+ The largest observed error in this region is 1.50 ulp:
+ _ZGVsMxv_acos (0x1.252a2cf3fb9acp-1) got 0x1.ec1a46aa82901p-1
+ want 0x1.ec1a46aa829p-1. */
svfloat64_t SV_NAME_D1 (acos) (svfloat64_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b64 ();
svuint64_t sign = svand_x (pg, svreinterpret_u64 (x), 0x8000000000000000);
svfloat64_t ax = svabs_x (pg, x);
@@ -70,24 +72,41 @@ svfloat64_t SV_NAME_D1 (acos) (svfloat64_t x, const svbool_t pg)
svfloat64_t z = svsqrt_m (ax, a_gt_half, z2);
/* Use a single polynomial approximation P for both intervals. */
- svfloat64_t z4 = svmul_x (pg, z2, z2);
- svfloat64_t z8 = svmul_x (pg, z4, z4);
- svfloat64_t z16 = svmul_x (pg, z8, z8);
- svfloat64_t p = sv_estrin_11_f64_x (pg, z2, z4, z8, z16, d->poly);
+ svfloat64_t z3 = svmul_x (ptrue, z2, z);
+ svfloat64_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat64_t z8 = svmul_x (ptrue, z4, z4);
+
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
+
+ svfloat64_t p411 = svmla_x (pg, p47, z8, p811);
+ svfloat64_t p = svmad_x (pg, p411, z8, p03);
/* Finalize polynomial: z + z * z2 * P(z2). */
- p = svmla_x (pg, z, svmul_x (pg, z, z2), p);
+ p = svmad_x (pg, p, z3, z);
/* acos(|x|) = pi/2 - sign(x) * Q(|x|), for |x| < 0.5
= 2 Q(|x|) , for 0.5 < x < 1.0
= pi - 2 Q(|x|) , for -1.0 < x < -0.5. */
- svfloat64_t y
- = svreinterpret_f64 (svorr_x (pg, svreinterpret_u64 (p), sign));
-
- svbool_t is_neg = svcmplt (pg, x, 0.0);
- svfloat64_t off = svdup_f64_z (is_neg, d->pi);
- svfloat64_t mul = svsel (a_gt_half, sv_f64 (2.0), sv_f64 (-1.0));
- svfloat64_t add = svsel (a_gt_half, off, sv_f64 (d->pi_over_2));
-
- return svmla_x (pg, add, mul, y);
+ svfloat64_t mul = svreinterpret_f64 (
+ svlsl_m (a_gt_half, svreinterpret_u64 (sv_f64 (1.0)), 10));
+ mul = svreinterpret_f64 (sveor_x (ptrue, svreinterpret_u64 (mul), sign));
+ svfloat64_t add = svreinterpret_f64 (
+ svorr_x (ptrue, sign, svreinterpret_u64 (sv_f64 (d->pi_over_2))));
+ add = svsub_m (a_gt_half, sv_f64 (d->pi_over_2), add);
+
+ return svmsb_x (pg, p, mul, add);
}
diff --git a/sysdeps/aarch64/fpu/acosf_advsimd.c b/sysdeps/aarch64/fpu/acosf_advsimd.c
index 2ee8fba..4bdccf6 100644
--- a/sysdeps/aarch64/fpu/acosf_advsimd.c
+++ b/sysdeps/aarch64/fpu/acosf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD inverse cos
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/acosf_sve.c b/sysdeps/aarch64/fpu/acosf_sve.c
index 2701cce..95cf580 100644
--- a/sysdeps/aarch64/fpu/acosf_sve.c
+++ b/sysdeps/aarch64/fpu/acosf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE inverse cos
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/acosh_advsimd.c b/sysdeps/aarch64/fpu/acosh_advsimd.c
index c88283c..d7dab02 100644
--- a/sysdeps/aarch64/fpu/acosh_advsimd.c
+++ b/sysdeps/aarch64/fpu/acosh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) acosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,9 +54,8 @@ VPCS_ATTR float64x2_t V_NAME_D1 (acosh) (float64x2_t x)
x = vbslq_f64 (special, vreinterpretq_f64_u64 (d->one), x);
#endif
- float64x2_t xm1 = vsubq_f64 (x, v_f64 (1));
- float64x2_t y;
- y = vaddq_f64 (x, v_f64 (1));
+ float64x2_t xm1 = vsubq_f64 (x, v_f64 (1.0));
+ float64x2_t y = vaddq_f64 (x, v_f64 (1.0));
y = vmulq_f64 (y, xm1);
y = vsqrtq_f64 (y);
y = vaddq_f64 (xm1, y);
diff --git a/sysdeps/aarch64/fpu/acosh_sve.c b/sysdeps/aarch64/fpu/acosh_sve.c
index 3e4faaa..3a84959 100644
--- a/sysdeps/aarch64/fpu/acosh_sve.c
+++ b/sysdeps/aarch64/fpu/acosh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) acosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,10 +30,10 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
}
/* SVE approximation for double-precision acosh, based on log1p.
- The largest observed error is 3.19 ULP in the region where the
+ The largest observed error is 3.14 ULP in the region where the
argument to log1p falls in the k=0 interval, i.e. x close to 1:
- SV_NAME_D1 (acosh)(0x1.1e4388d4ca821p+0) got 0x1.ed23399f5137p-2
- want 0x1.ed23399f51373p-2. */
+ SV_NAME_D1 (acosh)(0x1.1e80ed12f0ad1p+0) got 0x1.ef0cee7c33ce1p-2
+ want 0x1.ef0cee7c33ce4p-2. */
svfloat64_t SV_NAME_D1 (acosh) (svfloat64_t x, const svbool_t pg)
{
/* (ix - One) >= (BigBound - One). */
diff --git a/sysdeps/aarch64/fpu/acoshf_advsimd.c b/sysdeps/aarch64/fpu/acoshf_advsimd.c
index 8916dcbf4..61d41d1 100644
--- a/sysdeps/aarch64/fpu/acoshf_advsimd.c
+++ b/sysdeps/aarch64/fpu/acoshf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) acosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,35 +25,32 @@ const static struct data
{
struct v_log1pf_data log1pf_consts;
uint32x4_t one;
- uint16x4_t thresh;
-} data = {
- .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE,
- .one = V4 (0x3f800000),
- .thresh = V4 (0x2000) /* top(asuint(SquareLim) - asuint(1)). */
-};
+} data = { .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, .one = V4 (0x3f800000) };
+
+#define Thresh vdup_n_u16 (0x2000) /* top(asuint(SquareLim) - asuint(1)). */
static float32x4_t NOINLINE VPCS_ATTR
special_case (float32x4_t x, float32x4_t y, uint16x4_t special,
- const struct v_log1pf_data d)
+ const struct v_log1pf_data *d)
{
return v_call_f32 (acoshf, x, log1pf_inline (y, d), vmovl_u16 (special));
}
/* Vector approximation for single-precision acosh, based on log1p. Maximum
error depends on WANT_SIMD_EXCEPT. With SIMD fp exceptions enabled, it
- is 2.78 ULP:
- __v_acoshf(0x1.07887p+0) got 0x1.ef9e9cp-3
- want 0x1.ef9ea2p-3.
+ is 3.00 ULP:
+ _ZGVnN4v_acoshf(0x1.01df3ap+0) got 0x1.ef0a82p-4
+ want 0x1.ef0a7cp-4.
With exceptions disabled, we can compute u with a shorter dependency chain,
- which gives maximum error of 3.07 ULP:
- __v_acoshf(0x1.01f83ep+0) got 0x1.fbc7fap-4
- want 0x1.fbc7f4p-4. */
+ which gives maximum error of 3.22 ULP:
+ _ZGVnN4v_acoshf(0x1.007ef2p+0) got 0x1.fdcdccp-5
+ want 0x1.fdcdd2p-5. */
VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (acosh) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
uint32x4_t ix = vreinterpretq_u32_f32 (x);
- uint16x4_t special = vcge_u16 (vsubhn_u32 (ix, d->one), d->thresh);
+ uint16x4_t special = vcge_u16 (vsubhn_u32 (ix, d->one), Thresh);
#if WANT_SIMD_EXCEPT
/* Mask special lanes with 1 to side-step spurious invalid or overflow. Use
@@ -64,15 +61,16 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (acosh) (float32x4_t x)
float32x4_t xm1 = v_zerofy_f32 (vsubq_f32 (x, v_f32 (1)), p);
float32x4_t u = vfmaq_f32 (vaddq_f32 (xm1, xm1), xm1, xm1);
#else
- float32x4_t xm1 = vsubq_f32 (x, v_f32 (1));
- float32x4_t u = vmulq_f32 (xm1, vaddq_f32 (x, v_f32 (1.0f)));
+ float32x4_t xm1 = vsubq_f32 (x, vreinterpretq_f32_u32 (d->one));
+ float32x4_t u
+ = vmulq_f32 (xm1, vaddq_f32 (x, vreinterpretq_f32_u32 (d->one)));
#endif
float32x4_t y = vaddq_f32 (xm1, vsqrtq_f32 (u));
if (__glibc_unlikely (v_any_u16h (special)))
- return special_case (x, y, special, d->log1pf_consts);
- return log1pf_inline (y, d->log1pf_consts);
+ return special_case (x, y, special, &d->log1pf_consts);
+ return log1pf_inline (y, &d->log1pf_consts);
}
libmvec_hidden_def (V_NAME_F1 (acosh))
HALF_WIDTH_ALIAS_F1 (acosh)
diff --git a/sysdeps/aarch64/fpu/acoshf_sve.c b/sysdeps/aarch64/fpu/acoshf_sve.c
index 2110894..74adac7 100644
--- a/sysdeps/aarch64/fpu/acoshf_sve.c
+++ b/sysdeps/aarch64/fpu/acoshf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) acosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,23 +17,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include "sv_math.h"
+#include "sv_log1pf_inline.h"
+
#define One 0x3f800000
#define Thres 0x20000000 /* asuint(0x1p64) - One. */
-#include "sv_log1pf_inline.h"
-
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svfloat32_t xm1, svfloat32_t tmp, svbool_t special)
{
+ svfloat32_t x = svadd_x (svptrue_b32 (), xm1, 1.0f);
+ svfloat32_t y = sv_log1pf_inline (tmp, svptrue_b32 ());
return sv_call_f32 (acoshf, x, y, special);
}
/* Single-precision SVE acosh(x) routine. Implements the same algorithm as
vector acoshf and log1p.
- Maximum error is 2.78 ULPs:
- SV_NAME_F1 (acosh) (0x1.01e996p+0) got 0x1.f45b42p-4
- want 0x1.f45b3cp-4. */
+ Maximum error is 2.47 ULPs:
+ SV_NAME_F1 (acosh) (0x1.01ca76p+0) got 0x1.e435a6p-4
+ want 0x1.e435a2p-4. */
svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg)
{
svuint32_t ix = svreinterpret_u32 (x);
@@ -41,9 +44,9 @@ svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg)
svfloat32_t xm1 = svsub_x (pg, x, 1.0f);
svfloat32_t u = svmul_x (pg, xm1, svadd_x (pg, x, 1.0f));
- svfloat32_t y = sv_log1pf_inline (svadd_x (pg, xm1, svsqrt_x (pg, u)), pg);
+ svfloat32_t tmp = svadd_x (pg, xm1, svsqrt_x (pg, u));
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, y, special);
- return y;
+ return special_case (xm1, tmp, special);
+ return sv_log1pf_inline (tmp, pg);
}
diff --git a/sysdeps/aarch64/fpu/acospi_advsimd.c b/sysdeps/aarch64/fpu/acospi_advsimd.c
new file mode 100644
index 0000000..bb6c209
--- /dev/null
+++ b/sysdeps/aarch64/fpu/acospi_advsimd.c
@@ -0,0 +1,118 @@
+/* Double-Precision vector (Advanced SIMD) inverse cospi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float64x2_t c0, c2, c4, c6, c8, c10;
+ uint64x2_t abs_mask;
+ float64x2_t one, inv_pi;
+ double c1, c3, c5, c7, c9, c11;
+} data = {
+ /* Coefficients of polynomial P such that asin(x)/pi~ x/pi + x^3 * poly(x^2)
+ on [ 0x1p-126 0x1p-2 ]. rel error: 0x1.ef9f94b1p-33. Generated using
+ iterative approach for minimisation of relative error in asinpif Sollya
+ file. */
+ .c0 = V2 (0x1.b2995e7b7b5fbp-5), .c1 = 0x1.8723a1d58d83p-6,
+ .c2 = V2 (0x1.d1a452eacf2fep-7), .c3 = 0x1.3ce52c4d75582p-7,
+ .c4 = V2 (0x1.d2b2a0aea27d5p-8), .c5 = 0x1.6a0b9b92cad8bp-8,
+ .c6 = V2 (0x1.2290c84438caep-8), .c7 = 0x1.efba896580d02p-9,
+ .c8 = V2 (0x1.44446707af38p-9), .c9 = 0x1.5070b3e7aa03ep-8,
+ .c10 = V2 (-0x1.c70015d0ebdafp-9), .c11 = 0x1.27029c383fed9p-7,
+ .abs_mask = V2 (0x7fffffffffffffff), .one = V2 (1.0),
+ .inv_pi = V2 (0x1.45f306dc9c883p-2),
+};
+
+/* Double-precision implementation of vector acospi(x).
+
+ For |x| in [0, 0.5], use order-11 polynomial P to approximate asinpi
+ such that the final approximation of acospi is an odd polynomial:
+
+ acospi(x) ~ 1/2 - (x/pi + x^3 P(x^2)).
+
+ The largest observed error in this region is 1.35 ulp:
+ _ZGVnN2v_acospi (0x1.fb16ed35a6d64p-2) got 0x1.5722a3dbcafb4p-2
+ want 0x1.5722a3dbcafb5p-2.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ acospi(x) = y/pi + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 2.55 ulp:
+ _ZGVnN2v_acospi (0x1.d90d50357410cp-1) got 0x1.ffd43d5dd3a9ep-4
+ want 0x1.ffd43d5dd3a9bp-4. */
+float64x2_t VPCS_ATTR NOINLINE V_NAME_D1 (acospi) (float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint64x2_t ix = vreinterpretq_u64_f64 (x);
+ uint64x2_t ia = vandq_u64 (ix, d->abs_mask);
+
+ float64x2_t ax = vreinterpretq_f64_u64 (ia);
+ uint64x2_t a_le_half = vcaltq_f64 (x, v_f64 (0.5));
+
+ /* Evaluate polynomial Q(x) = z + z * z2 * P(z2) with
+ z2 = x ^ 2 and z = |x| , if |x| < 0.5
+ z2 = (1 - |x|) / 2 and z = sqrt(z2), if |x| >= 0.5. */
+ float64x2_t z2 = vbslq_f64 (a_le_half, vmulq_f64 (x, x),
+ vfmsq_n_f64 (v_f64 (0.5), ax, 0.5));
+ float64x2_t z = vbslq_f64 (a_le_half, ax, vsqrtq_f64 (z2));
+
+ /* Use a single polynomial approximation P for both intervals. */
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+
+ /* Order-11 Estrin. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p411 = vfmaq_f64 (p47, z8, p811);
+ float64x2_t p = vfmaq_f64 (p03, z8, p411);
+
+ /* Finalize polynomial: z + z * z2 * P(z2). */
+ p = vfmaq_f64 (d->inv_pi, z2, p);
+ p = vmulq_f64 (p, z);
+
+ /* acospi(|x|)
+ = 1/2 - sign(x) * Q(|x|), for |x| < 0.5
+ = 2 Q(|x|) , for 0.5 < x < 1.0
+ = 1 - 2 Q(|x|) , for -1.0 < x < -0.5. */
+ float64x2_t y = vbslq_f64 (d->abs_mask, p, x);
+ uint64x2_t is_neg = vcltzq_f64 (x);
+ float64x2_t off = vreinterpretq_f64_u64 (
+ vandq_u64 (is_neg, vreinterpretq_u64_f64 (d->one)));
+ float64x2_t mul = vbslq_f64 (a_le_half, d->one, v_f64 (-2.0));
+ float64x2_t add = vbslq_f64 (a_le_half, v_f64 (0.5), off);
+
+ return vfmsq_f64 (add, mul, y);
+}
diff --git a/sysdeps/aarch64/fpu/acospi_sve.c b/sysdeps/aarch64/fpu/acospi_sve.c
new file mode 100644
index 0000000..e41eaad
--- /dev/null
+++ b/sysdeps/aarch64/fpu/acospi_sve.c
@@ -0,0 +1,112 @@
+/* Double-Precision vector (SVE) inverse cospi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float64_t c1, c3, c5, c7, c9, c11;
+ float64_t c0, c2, c4, c6, c8, c10;
+ float64_t inv_pi, half;
+} data = {
+ /* Coefficients of polynomial P such that asin(x)/pi~ x/pi + x^3 * poly(x^2)
+ on [ 0x1p-126 0x1p-2 ]. rel error: 0x1.ef9f94b1p-33. Generated using
+ iterative approach for minimisation of relative error in asinpif Sollya
+ file. */
+ .c0 = 0x1.b2995e7b7b5fbp-5, .c1 = 0x1.8723a1d58d83p-6,
+ .c2 = 0x1.d1a452eacf2fep-7, .c3 = 0x1.3ce52c4d75582p-7,
+ .c4 = 0x1.d2b2a0aea27d5p-8, .c5 = 0x1.6a0b9b92cad8bp-8,
+ .c6 = 0x1.2290c84438caep-8, .c7 = 0x1.efba896580d02p-9,
+ .c8 = 0x1.44446707af38p-9, .c9 = 0x1.5070b3e7aa03ep-8,
+ .c10 = -0x1.c70015d0ebdafp-9, .c11 = 0x1.27029c383fed9p-7,
+ .inv_pi = 0x1.45f306dc9c883p-2, .half = 0.5,
+};
+
+/* Double-precision SVE implementation of vector acospi(x).
+
+ For |x| in [0, 0.5], use order 11 polynomial P to approximate asinpi
+ such that the final approximation of acospi is:
+
+ acospi(x) ~ 1/2 - (x/pi + x^3 P(x^2)).
+
+ The largest observed error in this region is 1.35 ulp:
+ _ZGVsMxv_acospi (0x1.fb014996aea18p-2) got 0x1.572a91755bbf6p-2
+ want 0x1.572a91755bbf7p-2.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ acospi(x) = y/pi + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 2.55 ulp:
+ _ZGVsMxv_acospi(0x1.d90d50357410cp-1) got 0x1.ffd43d5dd3a9ep-4
+ want 0x1.ffd43d5dd3a9bp-4. */
+svfloat64_t SV_NAME_D1 (acospi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b64 ();
+
+ svuint64_t sign = svand_x (pg, svreinterpret_u64 (x), 0x8000000000000000);
+ svfloat64_t ax = svabs_x (pg, x);
+ svbool_t a_gt_half = svacgt (pg, x, 0.5f);
+
+ /* Evaluate polynomial Q(x) = z + z * z2 * P(z2) with
+ z2 = x ^ 2 and z = |x| , if |x| < 0.5
+ z2 = (1 - |x|) / 2 and z = sqrt(z2), if |x| >= 0.5. */
+ svfloat64_t z2 = svsel (a_gt_half, svmls_x (pg, sv_f64 (0.5), ax, 0.5),
+ svmul_x (ptrue, x, x));
+ svfloat64_t z = svsqrt_m (ax, a_gt_half, z2);
+
+ /* Order-11 Estrin. */
+ svfloat64_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat64_t z8 = svmul_x (ptrue, z4, z4);
+
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
+
+ svfloat64_t p411 = svmla_x (pg, p47, z8, p811);
+ svfloat64_t p = svmla_x (pg, p03, z8, p411);
+
+ p = svmla_x (pg, sv_f64 (d->inv_pi), z2, p);
+ p = svmul_x (ptrue, p, z);
+
+ /* acospi(|x|) = 1/2 - sign(x) * Q(|x|), for |x| < 0.5
+ = 2 Q(|x|) , for 0.5 < x < 1.0
+ = 1 - 2 Q(|x|) , for -1.0 < x < -0.5. */
+ svfloat64_t mul = svreinterpret_f64 (
+ svlsl_m (a_gt_half, svreinterpret_u64 (sv_f64 (1.0)), 10));
+ mul = svreinterpret_f64 (sveor_x (ptrue, svreinterpret_u64 (mul), sign));
+ svfloat64_t add = svreinterpret_f64 (
+ svorr_x (ptrue, sign, svreinterpret_u64 (sv_f64 (d->half))));
+ add = svsub_m (a_gt_half, sv_f64 (d->half), add);
+
+ return svmsb_x (pg, p, mul, add);
+}
diff --git a/sysdeps/aarch64/fpu/acospif_advsimd.c b/sysdeps/aarch64/fpu/acospif_advsimd.c
new file mode 100644
index 0000000..8486b62
--- /dev/null
+++ b/sysdeps/aarch64/fpu/acospif_advsimd.c
@@ -0,0 +1,106 @@
+/* Single-Precision vector (Advanced SIMD) inverse cospi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float32x4_t c0, c2, c4, inv_pi;
+ float c1, c3, c5, null;
+} data = {
+ /* Coefficients of polynomial P such that asin(x)/pi~ x/pi + x^3 * poly(x^2)
+ on [ 0x1p-126 0x1p-2 ]. rel error: 0x1.ef9f94b1p-33. Generated using
+ iterative approach for minimisation of relative error in asinpif Sollya
+ file. */
+ .c0 = V4 (0x1.b2995ep-5f), .c1 = 0x1.8724ep-6f,
+ .c2 = V4 (0x1.d1301ep-7f), .c3 = 0x1.446d3cp-7f,
+ .c4 = V4 (0x1.654848p-8f), .c5 = 0x1.5fdaa8p-7f,
+ .inv_pi = V4 (0x1.45f306p-2f),
+};
+
+#define AbsMask 0x7fffffff
+
+/* Single-precision implementation of vector acospi(x).
+
+ For |x| in [0, 0.5], use order 5 polynomial P to approximate asinpi
+ such that the final approximation of acospi is an odd polynomial:
+
+ acospi(x) ~ 1/2 - (x/pi + x^3 P(x^2)).
+
+ The largest observed error in this region is 1.23 ulps,
+ _ZGVnN4v_acospif (0x1.fee13ep-2) got 0x1.55beb4p-2 want 0x1.55beb2p-2.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ acospi(x) = y/pi + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 2.53 ulps,
+ _ZGVnN4v_acospif (0x1.6ad644p-1) got 0x1.fe8f96p-3
+ want 0x1.fe8f9cp-3. */
+float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (acospi) (float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint32x4_t ix = vreinterpretq_u32_f32 (x);
+ uint32x4_t ia = vandq_u32 (ix, v_u32 (AbsMask));
+
+ float32x4_t ax = vreinterpretq_f32_u32 (ia);
+ uint32x4_t a_le_half = vcaltq_f32 (x, v_f32 (0.5f));
+
+ /* Evaluate polynomial Q(x) = z + z * z2 * P(z2) with
+ z2 = x ^ 2 and z = |x| , if |x| < 0.5
+ z2 = (1 - |x|) / 2 and z = sqrt(z2), if |x| >= 0.5. */
+
+ float32x4_t z2 = vbslq_f32 (a_le_half, vmulq_f32 (x, x),
+ vfmsq_n_f32 (v_f32 (0.5f), ax, 0.5f));
+ float32x4_t z = vbslq_f32 (a_le_half, ax, vsqrtq_f32 (z2));
+
+ /* Use a single polynomial approximation P for both intervals. */
+
+ /* Order-5 Estrin evaluation scheme. */
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t z8 = vmulq_f32 (z4, z4);
+ float32x4_t c135 = vld1q_f32 (&d->c1);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, z2, c135, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, z2, c135, 1);
+ float32x4_t p03 = vfmaq_f32 (p01, z4, p23);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, z2, c135, 2);
+ float32x4_t p = vfmaq_f32 (p03, z8, p45);
+ /* Add 1/pi as final coeff. */
+ p = vfmaq_f32 (d->inv_pi, z2, p);
+
+ /* Finalize polynomial: z * P(z^2). */
+ p = vmulq_f32 (z, p);
+
+ /* acospi(|x|)
+ = 1/2 - sign(x) * Q(|x|), for |x| < 0.5
+ = 2 Q(|x|) , for 0.5 < x < 1.0
+ = 1 - 2 Q(|x|) , for -1.0 < x < -0.5. */
+
+ float32x4_t y = vbslq_f32 (v_u32 (AbsMask), p, x);
+ uint32x4_t is_neg = vcltzq_f32 (x);
+ float32x4_t off = vreinterpretq_f32_u32 (
+ vandq_u32 (vreinterpretq_u32_f32 (v_f32 (1.0f)), is_neg));
+ float32x4_t mul = vbslq_f32 (a_le_half, v_f32 (1.0f), v_f32 (-2.0f));
+ float32x4_t add = vbslq_f32 (a_le_half, v_f32 (0.5f), off);
+
+ return vfmsq_f32 (add, mul, y);
+}
+libmvec_hidden_def (V_NAME_F1 (acospi))
+HALF_WIDTH_ALIAS_F1 (acospi)
diff --git a/sysdeps/aarch64/fpu/acospif_sve.c b/sysdeps/aarch64/fpu/acospif_sve.c
new file mode 100644
index 0000000..ea4fc4a
--- /dev/null
+++ b/sysdeps/aarch64/fpu/acospif_sve.c
@@ -0,0 +1,91 @@
+/* Single-Precision vector (SVE) inverse cospi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float32_t c0, c1, c2, c3, c4, inv_pi, half;
+} data = {
+ /* Coefficients of polynomial P such that asin(x)/pi~ x/pi + x^3 * poly(x^2)
+ on [ 0x1p-126 0x1p-2 ]. rel error: 0x1.ef9f94b1p-33. Generated using
+ iterative approach for minimisation of relative error. */
+ .c0 = 0x1.b29968p-5f, .c1 = 0x1.871424p-6f, .c2 = 0x1.d56e44p-7f,
+ .c3 = 0x1.149bb8p-7f, .c4 = 0x1.8e07fep-7f, .inv_pi = 0x1.45f306p-2f,
+ .half = 0.5f,
+};
+
+/* Single-precision SVE implementation of vector acospi(x).
+
+ For |x| in [0, 0.5], use order 5 polynomial P to approximate asinpi
+ such that the final approximation of acospi is:
+
+ acospi(x) ~ 1/2 - (x/pi + x^3 P(x^2)).
+
+ The largest observed error in this region is 1.3 ulps,
+ _ZGVsMxv_acospif(0x1.ffa9d2p-2) got 0x1.557504p-2
+ want 0x1.557502p-2.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ acospi(x) = y/pi + y * z * P(z), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 2.61 ulps,
+ _ZGVsMxv_acospif (0x1.6b232ep-1) got 0x1.fe04bap-3
+ want 0x1.fe04cp-3. */
+svfloat32_t SV_NAME_F1 (acospi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ svbool_t ptrue = svptrue_b32 ();
+
+ svuint32_t sign = svand_x (pg, svreinterpret_u32 (x), 0x80000000);
+ svfloat32_t ax = svabs_x (pg, x);
+ svbool_t a_gt_half = svacgt (pg, x, 0.5f);
+
+ /* Evaluate polynomial Q(x) = z + z * z2 * P(z2) with
+ z2 = x ^ 2 and z = |x| , if |x| < 0.5
+ z2 = (1 - |x|) / 2 and z = sqrt(z2), if |x| >= 0.5. */
+ svfloat32_t z2 = svsel (a_gt_half, svmls_x (pg, sv_f32 (0.5f), ax, 0.5f),
+ svmul_x (ptrue, x, x));
+ svfloat32_t z = svsqrt_m (ax, a_gt_half, z2);
+
+ /* Use a single polynomial approximation P for both intervals. */
+ svfloat32_t p = svmla_x (pg, sv_f32 (d->c3), z2, d->c4);
+ p = svmad_x (pg, z2, p, d->c2);
+ p = svmad_x (pg, z2, p, d->c1);
+ p = svmad_x (pg, z2, p, d->c0);
+ /* Add 1/pi as final coeff. */
+ p = svmla_x (pg, sv_f32 (d->inv_pi), z2, p);
+ /* Finalize polynomial: z * P(z^2). */
+ p = svmul_x (ptrue, z, p);
+
+ /* acospi(|x|)
+ = 1/2 - sign(x) * Q(|x|), for |x| < 0.5
+ = 2 Q(|x|) , for 0.5 < x < 1.0
+ = 1 - 2 Q(|x|) , for -1.0 < x < -0.5. */
+ svfloat32_t y
+ = svreinterpret_f32 (svorr_x (ptrue, svreinterpret_u32 (p), sign));
+ svfloat32_t mul = svsel (a_gt_half, sv_f32 (2.0f), sv_f32 (-1.0f));
+ svfloat32_t add = svreinterpret_f32 (
+ svorr_x (ptrue, sign, svreinterpret_u32 (sv_f32 (d->half))));
+ add = svsub_m (a_gt_half, sv_f32 (d->half), add);
+
+ return svmad_x (pg, y, mul, add);
+}
diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h
index 097d403..c202bda 100644
--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h
+++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h
@@ -1,6 +1,6 @@
/* Hidden prototypes for single-precision AdvSIMD routines
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,13 +19,17 @@
libmvec_hidden_proto (V_NAME_F1(acos));
libmvec_hidden_proto (V_NAME_F1(acosh));
+libmvec_hidden_proto (V_NAME_F1(acospi));
libmvec_hidden_proto (V_NAME_F1(asin));
libmvec_hidden_proto (V_NAME_F1(asinh));
+libmvec_hidden_proto (V_NAME_F1(asinpi));
libmvec_hidden_proto (V_NAME_F1(atan));
libmvec_hidden_proto (V_NAME_F1(atanh));
+libmvec_hidden_proto (V_NAME_F1(atanpi));
libmvec_hidden_proto (V_NAME_F1(cbrt));
libmvec_hidden_proto (V_NAME_F1(cos));
libmvec_hidden_proto (V_NAME_F1(cosh));
+libmvec_hidden_proto (V_NAME_F1(cospi));
libmvec_hidden_proto (V_NAME_F1(erf));
libmvec_hidden_proto (V_NAME_F1(erfc));
libmvec_hidden_proto (V_NAME_F1(exp10));
@@ -36,10 +40,14 @@ libmvec_hidden_proto (V_NAME_F2(hypot));
libmvec_hidden_proto (V_NAME_F1(log10));
libmvec_hidden_proto (V_NAME_F1(log1p));
libmvec_hidden_proto (V_NAME_F1(log2));
+libmvec_hidden_proto (V_NAME_F1(logp1));
libmvec_hidden_proto (V_NAME_F1(log));
libmvec_hidden_proto (V_NAME_F2(pow));
libmvec_hidden_proto (V_NAME_F1(sin));
libmvec_hidden_proto (V_NAME_F1(sinh));
+libmvec_hidden_proto (V_NAME_F1(sinpi));
libmvec_hidden_proto (V_NAME_F1(tan));
libmvec_hidden_proto (V_NAME_F1(tanh));
+libmvec_hidden_proto (V_NAME_F1(tanpi));
libmvec_hidden_proto (V_NAME_F2(atan2));
+libmvec_hidden_proto (V_NAME_F2(atan2pi));
diff --git a/sysdeps/aarch64/fpu/asin_advsimd.c b/sysdeps/aarch64/fpu/asin_advsimd.c
index 2de6eff..f74141c 100644
--- a/sysdeps/aarch64/fpu/asin_advsimd.c
+++ b/sysdeps/aarch64/fpu/asin_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD inverse sin
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,24 +18,23 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
static const struct data
{
- float64x2_t poly[12];
+ float64x2_t c0, c2, c4, c6, c8, c10;
float64x2_t pi_over_2;
uint64x2_t abs_mask;
+ double c1, c3, c5, c7, c9, c11;
} data = {
/* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
- .poly = { V2 (0x1.555555555554ep-3), V2 (0x1.3333333337233p-4),
- V2 (0x1.6db6db67f6d9fp-5), V2 (0x1.f1c71fbd29fbbp-6),
- V2 (0x1.6e8b264d467d6p-6), V2 (0x1.1c5997c357e9dp-6),
- V2 (0x1.c86a22cd9389dp-7), V2 (0x1.856073c22ebbep-7),
- V2 (0x1.fd1151acb6bedp-8), V2 (0x1.087182f799c1dp-6),
- V2 (-0x1.6602748120927p-7), V2 (0x1.cfa0dd1f9478p-6), },
- .pi_over_2 = V2 (0x1.921fb54442d18p+0),
- .abs_mask = V2 (0x7fffffffffffffff),
+ .c0 = V2 (0x1.555555555554ep-3), .c1 = 0x1.3333333337233p-4,
+ .c2 = V2 (0x1.6db6db67f6d9fp-5), .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = V2 (0x1.6e8b264d467d6p-6), .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = V2 (0x1.c86a22cd9389dp-7), .c7 = 0x1.856073c22ebbep-7,
+ .c8 = V2 (0x1.fd1151acb6bedp-8), .c9 = 0x1.087182f799c1dp-6,
+ .c10 = V2 (-0x1.6602748120927p-7), .c11 = 0x1.cfa0dd1f9478p-6,
+ .pi_over_2 = V2 (0x1.921fb54442d18p+0), .abs_mask = V2 (0x7fffffffffffffff),
};
#define AllMask v_u64 (0xffffffffffffffff)
@@ -68,8 +67,8 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
The largest observed error in this region is 2.69 ulps,
- _ZGVnN2v_asin (0x1.044ac9819f573p-1) got 0x1.110d7e85fdd5p-1
- want 0x1.110d7e85fdd53p-1. */
+ _ZGVnN2v_asin (0x1.044e8cefee301p-1) got 0x1.1111dd54ddf96p-1
+ want 0x1.1111dd54ddf99p-1. */
float64x2_t VPCS_ATTR V_NAME_D1 (asin) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
@@ -86,7 +85,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (asin) (float64x2_t x)
return special_case (x, x, AllMask);
#endif
- uint64x2_t a_lt_half = vcltq_f64 (ax, v_f64 (0.5));
+ uint64x2_t a_lt_half = vcaltq_f64 (x, v_f64 (0.5));
/* Evaluate polynomial Q(x) = y + y * z * P(z) with
z = x ^ 2 and y = |x| , if |x| < 0.5
@@ -99,7 +98,26 @@ float64x2_t VPCS_ATTR V_NAME_D1 (asin) (float64x2_t x)
float64x2_t z4 = vmulq_f64 (z2, z2);
float64x2_t z8 = vmulq_f64 (z4, z4);
float64x2_t z16 = vmulq_f64 (z8, z8);
- float64x2_t p = v_estrin_11_f64 (z2, z4, z8, z16, d->poly);
+
+ /* order-11 estrin. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p07 = vfmaq_f64 (p03, z8, p47);
+ float64x2_t p = vfmaq_f64 (p07, z16, p811);
/* Finalize polynomial: z + z * z2 * P(z2). */
p = vfmaq_f64 (z, vmulq_f64 (z, z2), p);
diff --git a/sysdeps/aarch64/fpu/asin_sve.c b/sysdeps/aarch64/fpu/asin_sve.c
index 9daa382..975f408 100644
--- a/sysdeps/aarch64/fpu/asin_sve.c
+++ b/sysdeps/aarch64/fpu/asin_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE inverse sin
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,45 +18,43 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[12];
- float64_t pi_over_2f;
+ float64_t c1, c3, c5, c7, c9, c11;
+ float64_t c0, c2, c4, c6, c8, c10;
+ float64_t pi_over_2;
} data = {
/* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
- .poly = { 0x1.555555555554ep-3, 0x1.3333333337233p-4,
- 0x1.6db6db67f6d9fp-5, 0x1.f1c71fbd29fbbp-6,
- 0x1.6e8b264d467d6p-6, 0x1.1c5997c357e9dp-6,
- 0x1.c86a22cd9389dp-7, 0x1.856073c22ebbep-7,
- 0x1.fd1151acb6bedp-8, 0x1.087182f799c1dp-6,
- -0x1.6602748120927p-7, 0x1.cfa0dd1f9478p-6, },
- .pi_over_2f = 0x1.921fb54442d18p+0,
+ .c0 = 0x1.555555555554ep-3, .c1 = 0x1.3333333337233p-4,
+ .c2 = 0x1.6db6db67f6d9fp-5, .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = 0x1.6e8b264d467d6p-6, .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = 0x1.c86a22cd9389dp-7, .c7 = 0x1.856073c22ebbep-7,
+ .c8 = 0x1.fd1151acb6bedp-8, .c9 = 0x1.087182f799c1dp-6,
+ .c10 = -0x1.6602748120927p-7, .c11 = 0x1.cfa0dd1f9478p-6,
+ .pi_over_2 = 0x1.921fb54442d18p+0,
};
-#define P(i) sv_f64 (d->poly[i])
-
/* Double-precision SVE implementation of vector asin(x).
For |x| in [0, 0.5], use an order 11 polynomial P such that the final
approximation is an odd polynomial: asin(x) ~ x + x^3 P(x^2).
- The largest observed error in this region is 0.52 ulps,
- _ZGVsMxv_asin(0x1.d95ae04998b6cp-2) got 0x1.ec13757305f27p-2
- want 0x1.ec13757305f26p-2.
-
- For |x| in [0.5, 1.0], use same approximation with a change of variable
+ The largest observed error in this region is 0.98 ulp:
+ _ZGVsMxv_asin (0x1.d98f6a748ed8ap-2) got 0x1.ec4eb661a73d3p-2
+ want 0x1.ec4eb661a73d2p-2.
- asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
+ For |x| in [0.5, 1.0], use same approximation with a change of variable:
+ asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
- The largest observed error in this region is 2.69 ulps,
- _ZGVsMxv_asin(0x1.044ac9819f573p-1) got 0x1.110d7e85fdd5p-1
- want 0x1.110d7e85fdd53p-1. */
+ The largest observed error in this region is 2.66 ulp:
+ _ZGVsMxv_asin (0x1.04024f6e2a2fbp-1) got 0x1.10b9586f087a8p-1
+ want 0x1.10b9586f087abp-1. */
svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b64 ();
svuint64_t sign = svand_x (pg, svreinterpret_u64 (x), 0x8000000000000000);
svfloat64_t ax = svabs_x (pg, x);
@@ -70,17 +68,37 @@ svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)
svfloat64_t z = svsqrt_m (ax, a_ge_half, z2);
/* Use a single polynomial approximation P for both intervals. */
+ svfloat64_t z3 = svmul_x (pg, z2, z);
svfloat64_t z4 = svmul_x (pg, z2, z2);
svfloat64_t z8 = svmul_x (pg, z4, z4);
- svfloat64_t z16 = svmul_x (pg, z8, z8);
- svfloat64_t p = sv_estrin_11_f64_x (pg, z2, z4, z8, z16, d->poly);
+
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+
+ /* Order-11 Estrin scheme. */
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
+
+ svfloat64_t p411 = svmla_x (pg, p47, z8, p811);
+ svfloat64_t p = svmla_x (pg, p03, z8, p411);
+
/* Finalize polynomial: z + z * z2 * P(z2). */
- p = svmla_x (pg, z, svmul_x (pg, z, z2), p);
+ p = svmla_x (pg, z, z3, p);
- /* asin(|x|) = Q(|x|) , for |x| < 0.5
- = pi/2 - 2 Q(|x|), for |x| >= 0.5. */
- svfloat64_t y = svmad_m (a_ge_half, p, sv_f64 (-2.0), d->pi_over_2f);
+ /* asin(|x|) = Q(|x|), for |x| < 0.5
+ = pi/2 - 2 Q(|x|), for |x| >= 0.5. */
+ svfloat64_t y = svmad_m (a_ge_half, p, sv_f64 (-2.0), d->pi_over_2);
- /* Copy sign. */
+ /* Reinsert the sign from the argument. */
return svreinterpret_f64 (svorr_x (pg, svreinterpret_u64 (y), sign));
}
diff --git a/sysdeps/aarch64/fpu/asinf_advsimd.c b/sysdeps/aarch64/fpu/asinf_advsimd.c
index 59d870c..013936c 100644
--- a/sysdeps/aarch64/fpu/asinf_advsimd.c
+++ b/sysdeps/aarch64/fpu/asinf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD inverse sin
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,22 +18,21 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
static const struct data
{
- float32x4_t poly[5];
+ float32x4_t c0, c2, c4;
+ float c1, c3;
float32x4_t pi_over_2f;
} data = {
/* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x)) on
[ 0x1p-24 0x1p-2 ] order = 4 rel error: 0x1.00a23bbp-29 . */
- .poly = { V4 (0x1.55555ep-3), V4 (0x1.33261ap-4), V4 (0x1.70d7dcp-5),
- V4 (0x1.b059dp-6), V4 (0x1.3af7d8p-5) },
- .pi_over_2f = V4 (0x1.921fb6p+0f),
+ .c0 = V4 (0x1.55555ep-3f), .c1 = 0x1.33261ap-4f,
+ .c2 = V4 (0x1.70d7dcp-5f), .c3 = 0x1.b059dp-6f,
+ .c4 = V4 (0x1.3af7d8p-5f), .pi_over_2f = V4 (0x1.921fb6p+0f),
};
#define AbsMask 0x7fffffff
-#define Half 0x3f000000
#define One 0x3f800000
#define Small 0x39800000 /* 2^-12. */
@@ -47,11 +46,8 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
/* Single-precision implementation of vector asin(x).
- For |x| < Small, approximate asin(x) by x. Small = 2^-12 for correct
- rounding. If WANT_SIMD_EXCEPT = 0, Small = 0 and we proceed with the
- following approximation.
- For |x| in [Small, 0.5], use order 4 polynomial P such that the final
+ For |x| <0.5, use order 4 polynomial P such that the final
approximation is an odd polynomial: asin(x) ~ x + x^3 P(x^2).
The largest observed error in this region is 0.83 ulps,
@@ -80,24 +76,31 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (asin) (float32x4_t x)
#endif
float32x4_t ax = vreinterpretq_f32_u32 (ia);
- uint32x4_t a_lt_half = vcltq_u32 (ia, v_u32 (Half));
+ uint32x4_t a_lt_half = vcaltq_f32 (x, v_f32 (0.5f));
/* Evaluate polynomial Q(x) = y + y * z * P(z) with
z = x ^ 2 and y = |x| , if |x| < 0.5
z = (1 - |x|) / 2 and y = sqrt(z), if |x| >= 0.5. */
float32x4_t z2 = vbslq_f32 (a_lt_half, vmulq_f32 (x, x),
- vfmsq_n_f32 (v_f32 (0.5), ax, 0.5));
+ vfmsq_n_f32 (v_f32 (0.5f), ax, 0.5f));
float32x4_t z = vbslq_f32 (a_lt_half, ax, vsqrtq_f32 (z2));
/* Use a single polynomial approximation P for both intervals. */
- float32x4_t p = v_horner_4_f32 (z2, d->poly);
+
+ /* PW Horner 3 evaluation scheme. */
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t c13 = vld1q_f32 (&d->c1);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, z2, c13, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, z2, c13, 1);
+ float32x4_t p = vfmaq_f32 (p23, d->c4, z4);
+ p = vfmaq_f32 (p01, p, z4);
/* Finalize polynomial: z + z * z2 * P(z2). */
p = vfmaq_f32 (z, vmulq_f32 (z, z2), p);
/* asin(|x|) = Q(|x|) , for |x| < 0.5
= pi/2 - 2 Q(|x|), for |x| >= 0.5. */
float32x4_t y
- = vbslq_f32 (a_lt_half, p, vfmsq_n_f32 (d->pi_over_2f, p, 2.0));
+ = vbslq_f32 (a_lt_half, p, vfmsq_n_f32 (d->pi_over_2f, p, 2.0f));
/* Copy sign. */
return vbslq_f32 (v_u32 (AbsMask), y, x);
diff --git a/sysdeps/aarch64/fpu/asinf_sve.c b/sysdeps/aarch64/fpu/asinf_sve.c
index 37c51e6..f2182ac 100644
--- a/sysdeps/aarch64/fpu/asinf_sve.c
+++ b/sysdeps/aarch64/fpu/asinf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE inverse sin
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/asinh_advsimd.c b/sysdeps/aarch64/fpu/asinh_advsimd.c
index 6207e7d..1afc072 100644
--- a/sysdeps/aarch64/fpu/asinh_advsimd.c
+++ b/sysdeps/aarch64/fpu/asinh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) asinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,41 +20,71 @@
#include "v_math.h"
#include "poly_advsimd_f64.h"
-#define A(i) v_f64 (__v_log_data.poly[i])
-#define N (1 << V_LOG_TABLE_BITS)
-#define IndexMask (N - 1)
-
const static struct data
{
- float64x2_t poly[18];
- uint64x2_t off, huge_bound, abs_mask;
- float64x2_t ln2, tiny_bound;
+ uint64x2_t huge_bound, abs_mask, off, mask;
+#if WANT_SIMD_EXCEPT
+ float64x2_t tiny_bound;
+#endif
+ float64x2_t lc0, lc2;
+ double lc1, lc3, ln2, lc4;
+
+ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c17;
+ double c1, c3, c5, c7, c9, c11, c13, c15;
+
} data = {
- .off = V2 (0x3fe6900900000000),
- .ln2 = V2 (0x1.62e42fefa39efp-1),
- .huge_bound = V2 (0x5fe0000000000000),
+
+#if WANT_SIMD_EXCEPT
.tiny_bound = V2 (0x1p-26),
- .abs_mask = V2 (0x7fffffffffffffff),
+#endif
/* Even terms of polynomial s.t. asinh(x) is approximated by
asinh(x) ~= x + x^3 * (C0 + C1 * x + C2 * x^2 + C3 * x^3 + ...).
Generated using Remez, f = (asinh(sqrt(x)) - sqrt(x))/x^(3/2). */
- .poly = { V2 (-0x1.55555555554a7p-3), V2 (0x1.3333333326c7p-4),
- V2 (-0x1.6db6db68332e6p-5), V2 (0x1.f1c71b26fb40dp-6),
- V2 (-0x1.6e8b8b654a621p-6), V2 (0x1.1c4daa9e67871p-6),
- V2 (-0x1.c9871d10885afp-7), V2 (0x1.7a16e8d9d2ecfp-7),
- V2 (-0x1.3ddca533e9f54p-7), V2 (0x1.0becef748dafcp-7),
- V2 (-0x1.b90c7099dd397p-8), V2 (0x1.541f2bb1ffe51p-8),
- V2 (-0x1.d217026a669ecp-9), V2 (0x1.0b5c7977aaf7p-9),
- V2 (-0x1.e0f37daef9127p-11), V2 (0x1.388b5fe542a6p-12),
- V2 (-0x1.021a48685e287p-14), V2 (0x1.93d4ba83d34dap-18) },
+
+ .c0 = V2 (-0x1.55555555554a7p-3),
+ .c1 = 0x1.3333333326c7p-4,
+ .c2 = V2 (-0x1.6db6db68332e6p-5),
+ .c3 = 0x1.f1c71b26fb40dp-6,
+ .c4 = V2 (-0x1.6e8b8b654a621p-6),
+ .c5 = 0x1.1c4daa9e67871p-6,
+ .c6 = V2 (-0x1.c9871d10885afp-7),
+ .c7 = 0x1.7a16e8d9d2ecfp-7,
+ .c8 = V2 (-0x1.3ddca533e9f54p-7),
+ .c9 = 0x1.0becef748dafcp-7,
+ .c10 = V2 (-0x1.b90c7099dd397p-8),
+ .c11 = 0x1.541f2bb1ffe51p-8,
+ .c12 = V2 (-0x1.d217026a669ecp-9),
+ .c13 = 0x1.0b5c7977aaf7p-9,
+ .c14 = V2 (-0x1.e0f37daef9127p-11),
+ .c15 = 0x1.388b5fe542a6p-12,
+ .c16 = V2 (-0x1.021a48685e287p-14),
+ .c17 = V2 (0x1.93d4ba83d34dap-18),
+
+ .lc0 = V2 (-0x1.ffffffffffff7p-2),
+ .lc1 = 0x1.55555555170d4p-2,
+ .lc2 = V2 (-0x1.0000000399c27p-2),
+ .lc3 = 0x1.999b2e90e94cap-3,
+ .lc4 = -0x1.554e550bd501ep-3,
+ .ln2 = 0x1.62e42fefa39efp-1,
+
+ .off = V2 (0x3fe6900900000000),
+ .huge_bound = V2 (0x5fe0000000000000),
+ .abs_mask = V2 (0x7fffffffffffffff),
+ .mask = V2 (0xfffULL << 52),
};
static float64x2_t NOINLINE VPCS_ATTR
-special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
+special_case (float64x2_t x, float64x2_t y, uint64x2_t abs_mask,
+ uint64x2_t special)
{
+ /* Copy sign. */
+ y = vbslq_f64 (abs_mask, y, x);
return v_call_f64 (asinh, x, y, special);
}
+#define N (1 << V_LOG_TABLE_BITS)
+#define IndexMask (N - 1)
+
struct entry
{
float64x2_t invc;
@@ -76,27 +106,34 @@ lookup (uint64x2_t i)
}
static inline float64x2_t
-log_inline (float64x2_t x, const struct data *d)
+log_inline (float64x2_t xm, const struct data *d)
{
- /* Double-precision vector log, copied from ordinary vector log with some
- cosmetic modification and special-cases removed. */
- uint64x2_t ix = vreinterpretq_u64_f64 (x);
- uint64x2_t tmp = vsubq_u64 (ix, d->off);
- int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52);
- uint64x2_t iz
- = vsubq_u64 (ix, vandq_u64 (tmp, vdupq_n_u64 (0xfffULL << 52)));
+
+ uint64x2_t u = vreinterpretq_u64_f64 (xm);
+ uint64x2_t u_off = vsubq_u64 (u, d->off);
+
+ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (u_off), 52);
+ uint64x2_t iz = vsubq_u64 (u, vandq_u64 (u_off, d->mask));
float64x2_t z = vreinterpretq_f64_u64 (iz);
- struct entry e = lookup (tmp);
+
+ struct entry e = lookup (u_off);
+
+ /* log(x) = log1p(z/c-1) + log(c) + k*Ln2. */
float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc);
float64x2_t kd = vcvtq_f64_s64 (k);
- float64x2_t hi = vfmaq_f64 (vaddq_f64 (e.logc, r), kd, d->ln2);
+
+ /* hi = r + log(c) + k*Ln2. */
+ float64x2_t ln2_and_lc4 = vld1q_f64 (&d->ln2);
+ float64x2_t hi = vfmaq_laneq_f64 (vaddq_f64 (e.logc, r), kd, ln2_and_lc4, 0);
+
+ /* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */
+ float64x2_t odd_coeffs = vld1q_f64 (&d->lc1);
float64x2_t r2 = vmulq_f64 (r, r);
- float64x2_t y = vfmaq_f64 (A (2), A (3), r);
- float64x2_t p = vfmaq_f64 (A (0), A (1), r);
- y = vfmaq_f64 (y, A (4), r2);
- y = vfmaq_f64 (p, y, r2);
- y = vfmaq_f64 (hi, y, r2);
- return y;
+ float64x2_t y = vfmaq_laneq_f64 (d->lc2, r, odd_coeffs, 1);
+ float64x2_t p = vfmaq_laneq_f64 (d->lc0, r, odd_coeffs, 0);
+ y = vfmaq_laneq_f64 (y, r2, ln2_and_lc4, 1);
+ y = vfmaq_f64 (p, r2, y);
+ return vfmaq_f64 (hi, y, r2);
}
/* Double-precision implementation of vector asinh(x).
@@ -106,23 +143,24 @@ log_inline (float64x2_t x, const struct data *d)
asinh(x) = sign(x) * log(|x| + sqrt(x^2 + 1) if |x| >= 1
= sign(x) * (|x| + |x|^3 * P(x^2)) otherwise
where log(x) is an optimized log approximation, and P(x) is a polynomial
- shared with the scalar routine. The greatest observed error 3.29 ULP, in
+ shared with the scalar routine. The greatest observed error 2.79 ULP, in
|x| >= 1:
- __v_asinh(0x1.2cd9d717e2c9bp+0) got 0x1.ffffcfd0e234fp-1
- want 0x1.ffffcfd0e2352p-1. */
+ _ZGVnN2v_asinh(0x1.2cd9d73ea76a6p+0) got 0x1.ffffd003219dap-1
+ want 0x1.ffffd003219ddp-1. */
VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
-
float64x2_t ax = vabsq_f64 (x);
- uint64x2_t iax = vreinterpretq_u64_f64 (ax);
uint64x2_t gt1 = vcgeq_f64 (ax, v_f64 (1));
- uint64x2_t special = vcgeq_u64 (iax, d->huge_bound);
#if WANT_SIMD_EXCEPT
+ uint64x2_t iax = vreinterpretq_u64_f64 (ax);
+ uint64x2_t special = vcgeq_u64 (iax, (d->huge_bound));
uint64x2_t tiny = vcltq_f64 (ax, d->tiny_bound);
special = vorrq_u64 (special, tiny);
+#else
+ uint64x2_t special = vcgeq_f64 (ax, vreinterpretq_f64_u64 (d->huge_bound));
#endif
/* Option 1: |x| >= 1.
@@ -147,19 +185,45 @@ VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x)
overflow, and tiny lanes, which will underflow, by setting them to 0. They
will be fixed later, either by selecting x or falling back to the scalar
special-case. The largest observed error in this region is 1.47 ULPs:
- __v_asinh(0x1.fdfcd00cc1e6ap-1) got 0x1.c1d6bf874019bp-1
- want 0x1.c1d6bf874019cp-1. */
+ _ZGVnN2v_asinh(0x1.fdfcd00cc1e6ap-1) got 0x1.c1d6bf874019bp-1
+ want 0x1.c1d6bf874019cp-1. */
float64x2_t option_2 = v_f64 (0);
+
if (__glibc_likely (v_any_u64 (vceqzq_u64 (gt1))))
{
+
#if WANT_SIMD_EXCEPT
ax = v_zerofy_f64 (ax, vorrq_u64 (tiny, gt1));
#endif
- float64x2_t x2 = vmulq_f64 (ax, ax), x3 = vmulq_f64 (ax, x2),
- z2 = vmulq_f64 (x2, x2), z4 = vmulq_f64 (z2, z2),
- z8 = vmulq_f64 (z4, z4), z16 = vmulq_f64 (z8, z8);
- float64x2_t p = v_estrin_17_f64 (x2, z2, z4, z8, z16, d->poly);
- option_2 = vfmaq_f64 (ax, p, x3);
+ float64x2_t x2 = vmulq_f64 (ax, ax), z2 = vmulq_f64 (x2, x2);
+ /* Order-17 Pairwise Horner scheme. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+ float64x2_t c1315 = vld1q_f64 (&d->c13);
+
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, x2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, x2, c13, 1);
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, x2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, x2, c57, 1);
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, x2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, x2, c911, 1);
+ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, x2, c1315, 0);
+ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, x2, c1315, 1);
+ float64x2_t p1617 = vfmaq_f64 (d->c16, x2, d->c17);
+
+ float64x2_t p = vfmaq_f64 (p1415, z2, p1617);
+ p = vfmaq_f64 (p1213, z2, p);
+ p = vfmaq_f64 (p1011, z2, p);
+ p = vfmaq_f64 (p89, z2, p);
+
+ p = vfmaq_f64 (p67, z2, p);
+ p = vfmaq_f64 (p45, z2, p);
+
+ p = vfmaq_f64 (p23, z2, p);
+
+ p = vfmaq_f64 (p01, z2, p);
+ option_2 = vfmaq_f64 (ax, p, vmulq_f64 (ax, x2));
#if WANT_SIMD_EXCEPT
option_2 = vbslq_f64 (tiny, x, option_2);
#endif
@@ -167,10 +231,10 @@ VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x)
/* Choose the right option for each lane. */
float64x2_t y = vbslq_f64 (gt1, option_1, option_2);
- /* Copy sign. */
- y = vbslq_f64 (d->abs_mask, y, x);
-
if (__glibc_unlikely (v_any_u64 (special)))
- return special_case (x, y, special);
- return y;
+ {
+ return special_case (x, y, d->abs_mask, special);
+ }
+ /* Copy sign. */
+ return vbslq_f64 (d->abs_mask, y, x);
}
diff --git a/sysdeps/aarch64/fpu/asinh_sve.c b/sysdeps/aarch64/fpu/asinh_sve.c
index 28dc5c4..ff6b713 100644
--- a/sysdeps/aarch64/fpu/asinh_sve.c
+++ b/sysdeps/aarch64/fpu/asinh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) asinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,36 +18,49 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
#define SignMask (0x8000000000000000)
#define One (0x3ff0000000000000)
#define Thres (0x5fe0000000000000) /* asuint64 (0x1p511). */
+#define IndexMask (((1 << V_LOG_TABLE_BITS) - 1) << 1)
static const struct data
{
- double poly[18];
- double ln2, p3, p1, p4, p0, p2;
- uint64_t n;
- uint64_t off;
+ double even_coeffs[9];
+ double ln2, p3, p1, p4, p0, p2, c1, c3, c5, c7, c9, c11, c13, c15, c17;
+ uint64_t off, mask;
} data = {
- /* Polynomial generated using Remez on [2^-26, 1]. */
- .poly
- = { -0x1.55555555554a7p-3, 0x1.3333333326c7p-4, -0x1.6db6db68332e6p-5,
- 0x1.f1c71b26fb40dp-6, -0x1.6e8b8b654a621p-6, 0x1.1c4daa9e67871p-6,
- -0x1.c9871d10885afp-7, 0x1.7a16e8d9d2ecfp-7, -0x1.3ddca533e9f54p-7,
- 0x1.0becef748dafcp-7, -0x1.b90c7099dd397p-8, 0x1.541f2bb1ffe51p-8,
- -0x1.d217026a669ecp-9, 0x1.0b5c7977aaf7p-9, -0x1.e0f37daef9127p-11,
- 0x1.388b5fe542a6p-12, -0x1.021a48685e287p-14, 0x1.93d4ba83d34dap-18 },
+ /* Polynomial generated using Remez on [2^-26, 1]. */
+ .even_coeffs ={
+ -0x1.55555555554a7p-3,
+ -0x1.6db6db68332e6p-5,
+ -0x1.6e8b8b654a621p-6,
+ -0x1.c9871d10885afp-7,
+ -0x1.3ddca533e9f54p-7,
+ -0x1.b90c7099dd397p-8,
+ -0x1.d217026a669ecp-9,
+ -0x1.e0f37daef9127p-11,
+ -0x1.021a48685e287p-14, },
+
+ .c1 = 0x1.3333333326c7p-4,
+ .c3 = 0x1.f1c71b26fb40dp-6,
+ .c5 = 0x1.1c4daa9e67871p-6,
+ .c7 = 0x1.7a16e8d9d2ecfp-7,
+ .c9 = 0x1.0becef748dafcp-7,
+ .c11 = 0x1.541f2bb1ffe51p-8,
+ .c13 = 0x1.0b5c7977aaf7p-9,
+ .c15 = 0x1.388b5fe542a6p-12,
+ .c17 = 0x1.93d4ba83d34dap-18,
+
.ln2 = 0x1.62e42fefa39efp-1,
.p0 = -0x1.ffffffffffff7p-2,
.p1 = 0x1.55555555170d4p-2,
.p2 = -0x1.0000000399c27p-2,
.p3 = 0x1.999b2e90e94cap-3,
.p4 = -0x1.554e550bd501ep-3,
- .n = 1 << V_LOG_TABLE_BITS,
- .off = 0x3fe6900900000000
+ .off = 0x3fe6900900000000,
+ .mask = 0xfffULL << 52,
};
static svfloat64_t NOINLINE
@@ -64,11 +77,10 @@ __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg)
of the algorithm used. */
svuint64_t ix = svreinterpret_u64 (x);
- svuint64_t tmp = svsub_x (pg, ix, d->off);
- svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, (51 - V_LOG_TABLE_BITS)),
- (d->n - 1) << 1);
- svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52);
- svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, 0xfffULL << 52));
+ svuint64_t i_off = svsub_x (pg, ix, d->off);
+ svuint64_t i
+ = svand_x (pg, svlsr_x (pg, i_off, (51 - V_LOG_TABLE_BITS)), IndexMask);
+ svuint64_t iz = svsub_x (pg, ix, svand_x (pg, i_off, d->mask));
svfloat64_t z = svreinterpret_f64 (iz);
svfloat64_t invc = svld1_gather_index (pg, &__v_log_data.table[0].invc, i);
@@ -78,14 +90,14 @@ __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg)
svfloat64_t p1_p4 = svld1rq (svptrue_b64 (), &d->p1);
svfloat64_t r = svmla_x (pg, sv_f64 (-1.0), invc, z);
- svfloat64_t kd = svcvt_f64_x (pg, k);
+ svfloat64_t kd
+ = svcvt_f64_x (pg, svasr_x (pg, svreinterpret_s64 (i_off), 52));
svfloat64_t hi = svmla_lane (svadd_x (pg, logc, r), kd, ln2_p3, 0);
- svfloat64_t r2 = svmul_x (pg, r, r);
-
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
svfloat64_t y = svmla_lane (sv_f64 (d->p2), r, ln2_p3, 1);
-
svfloat64_t p = svmla_lane (sv_f64 (d->p0), r, p1_p4, 0);
+
y = svmla_lane (y, r2, p1_p4, 1);
y = svmla_x (pg, p, r2, y);
y = svmla_x (pg, hi, r2, y);
@@ -111,7 +123,6 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg)
svuint64_t iax = svbic_x (pg, ix, SignMask);
svuint64_t sign = svand_x (pg, ix, SignMask);
svfloat64_t ax = svreinterpret_f64 (iax);
-
svbool_t ge1 = svcmpge (pg, iax, One);
svbool_t special = svcmpge (pg, iax, Thres);
@@ -120,7 +131,7 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg)
svfloat64_t option_1 = sv_f64 (0);
if (__glibc_likely (svptest_any (pg, ge1)))
{
- svfloat64_t x2 = svmul_x (pg, ax, ax);
+ svfloat64_t x2 = svmul_x (svptrue_b64 (), ax, ax);
option_1 = __sv_log_inline (
svadd_x (pg, ax, svsqrt_x (pg, svadd_x (pg, x2, 1))), d, pg);
}
@@ -130,21 +141,53 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg)
The largest observed error in this region is 1.51 ULPs:
_ZGVsMxv_asinh(0x1.fe12bf8c616a2p-1) got 0x1.c1e649ee2681bp-1
want 0x1.c1e649ee2681dp-1. */
+
svfloat64_t option_2 = sv_f64 (0);
if (__glibc_likely (svptest_any (pg, svnot_z (pg, ge1))))
{
- svfloat64_t x2 = svmul_x (pg, ax, ax);
- svfloat64_t x4 = svmul_x (pg, x2, x2);
- svfloat64_t p = sv_pw_horner_17_f64_x (pg, x2, x4, d->poly);
- option_2 = svmla_x (pg, ax, p, svmul_x (pg, x2, ax));
+ svfloat64_t x2 = svmul_x (svptrue_b64 (), ax, ax);
+ svfloat64_t x4 = svmul_x (svptrue_b64 (), x2, x2);
+ /* Order-17 Pairwise Horner scheme. */
+ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1);
+ svfloat64_t c57 = svld1rq (svptrue_b64 (), &d->c5);
+ svfloat64_t c911 = svld1rq (svptrue_b64 (), &d->c9);
+ svfloat64_t c1315 = svld1rq (svptrue_b64 (), &d->c13);
+
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->even_coeffs[0]), x2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->even_coeffs[1]), x2, c13, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->even_coeffs[2]), x2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->even_coeffs[3]), x2, c57, 1);
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->even_coeffs[4]), x2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->even_coeffs[5]), x2, c911, 1);
+ svfloat64_t p1213
+ = svmla_lane (sv_f64 (d->even_coeffs[6]), x2, c1315, 0);
+ svfloat64_t p1415
+ = svmla_lane (sv_f64 (d->even_coeffs[7]), x2, c1315, 1);
+ svfloat64_t p1617 = svmla_x (pg, sv_f64 (d->even_coeffs[8]), x2, d->c17);
+
+ svfloat64_t p = svmla_x (pg, p1415, x4, p1617);
+ p = svmla_x (pg, p1213, x4, p);
+ p = svmla_x (pg, p1011, x4, p);
+ p = svmla_x (pg, p89, x4, p);
+
+ p = svmla_x (pg, p67, x4, p);
+ p = svmla_x (pg, p45, x4, p);
+
+ p = svmla_x (pg, p23, x4, p);
+
+ p = svmla_x (pg, p01, x4, p);
+
+ option_2 = svmla_x (pg, ax, p, svmul_x (svptrue_b64 (), x2, ax));
}
- /* Choose the right option for each lane. */
- svfloat64_t y = svsel (ge1, option_1, option_2);
-
if (__glibc_unlikely (svptest_any (pg, special)))
return special_case (
- x, svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign)),
+ x,
+ svreinterpret_f64 (sveor_x (
+ pg, svreinterpret_u64 (svsel (ge1, option_1, option_2)), sign)),
special);
+
+ /* Choose the right option for each lane. */
+ svfloat64_t y = svsel (ge1, option_1, option_2);
return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign));
}
diff --git a/sysdeps/aarch64/fpu/asinhf_advsimd.c b/sysdeps/aarch64/fpu/asinhf_advsimd.c
index 09fd8a6..cff66e5 100644
--- a/sysdeps/aarch64/fpu/asinhf_advsimd.c
+++ b/sysdeps/aarch64/fpu/asinhf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) asinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,16 +20,16 @@
#include "v_math.h"
#include "v_log1pf_inline.h"
-#define SignMask v_u32 (0x80000000)
-
const static struct data
{
struct v_log1pf_data log1pf_consts;
+ float32x4_t one;
uint32x4_t big_bound;
#if WANT_SIMD_EXCEPT
uint32x4_t tiny_bound;
#endif
} data = {
+ .one = V4 (1),
.log1pf_consts = V_LOG1PF_CONSTANTS_TABLE,
.big_bound = V4 (0x5f800000), /* asuint(0x1p64). */
#if WANT_SIMD_EXCEPT
@@ -38,20 +38,27 @@ const static struct data
};
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, uint32x4_t sign, float32x4_t y,
+ uint32x4_t special, const struct data *d)
{
- return v_call_f32 (asinhf, x, y, special);
+ return v_call_f32 (
+ asinhf, x,
+ vreinterpretq_f32_u32 (veorq_u32 (
+ sign, vreinterpretq_u32_f32 (log1pf_inline (y, &d->log1pf_consts)))),
+ special);
}
/* Single-precision implementation of vector asinh(x), using vector log1p.
- Worst-case error is 2.66 ULP, at roughly +/-0.25:
- __v_asinhf(0x1.01b04p-2) got 0x1.fe163ep-3 want 0x1.fe1638p-3. */
+ Worst-case error is 2.59 ULP:
+ _ZGVnN4v_asinhf(0x1.d86124p-3) got 0x1.d449bep-3
+ want 0x1.d449c4p-3. */
VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (asinh) (float32x4_t x)
{
const struct data *dat = ptr_barrier (&data);
- uint32x4_t iax = vbicq_u32 (vreinterpretq_u32_f32 (x), SignMask);
- float32x4_t ax = vreinterpretq_f32_u32 (iax);
+ float32x4_t ax = vabsq_f32 (x);
+ uint32x4_t iax = vreinterpretq_u32_f32 (ax);
uint32x4_t special = vcgeq_u32 (iax, dat->big_bound);
+ uint32x4_t sign = veorq_u32 (vreinterpretq_u32_f32 (x), iax);
float32x4_t special_arg = x;
#if WANT_SIMD_EXCEPT
@@ -68,13 +75,13 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (asinh) (float32x4_t x)
/* asinh(x) = log(x + sqrt(x * x + 1)).
For positive x, asinh(x) = log1p(x + x * x / (1 + sqrt(x * x + 1))). */
float32x4_t d
- = vaddq_f32 (v_f32 (1), vsqrtq_f32 (vfmaq_f32 (v_f32 (1), x, x)));
- float32x4_t y = log1pf_inline (
- vaddq_f32 (ax, vdivq_f32 (vmulq_f32 (ax, ax), d)), dat->log1pf_consts);
+ = vaddq_f32 (v_f32 (1), vsqrtq_f32 (vfmaq_f32 (dat->one, ax, ax)));
+ float32x4_t y = vaddq_f32 (ax, vdivq_f32 (vmulq_f32 (ax, ax), d));
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (special_arg, vbslq_f32 (SignMask, x, y), special);
- return vbslq_f32 (SignMask, x, y);
+ return special_case (special_arg, sign, y, special, dat);
+ return vreinterpretq_f32_u32 (veorq_u32 (
+ sign, vreinterpretq_u32_f32 (log1pf_inline (y, &dat->log1pf_consts))));
}
libmvec_hidden_def (V_NAME_F1 (asinh))
HALF_WIDTH_ALIAS_F1 (asinh)
diff --git a/sysdeps/aarch64/fpu/asinhf_sve.c b/sysdeps/aarch64/fpu/asinhf_sve.c
index d85c3a6..f07b8a2 100644
--- a/sysdeps/aarch64/fpu/asinhf_sve.c
+++ b/sysdeps/aarch64/fpu/asinhf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) asinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,20 +20,23 @@
#include "sv_math.h"
#include "sv_log1pf_inline.h"
-#define BigBound (0x5f800000) /* asuint(0x1p64). */
+#define BigBound 0x5f800000 /* asuint(0x1p64). */
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svuint32_t iax, svuint32_t sign, svfloat32_t y, svbool_t special)
{
+ svfloat32_t x = svreinterpret_f32 (sveor_x (svptrue_b32 (), iax, sign));
+ y = svreinterpret_f32 (
+ svorr_x (svptrue_b32 (), sign, svreinterpret_u32 (y)));
return sv_call_f32 (asinhf, x, y, special);
}
/* Single-precision SVE asinh(x) routine. Implements the same algorithm as
vector asinhf and log1p.
- Maximum error is 2.48 ULPs:
- SV_NAME_F1 (asinh) (0x1.008864p-3) got 0x1.ffbbbcp-4
- want 0x1.ffbbb8p-4. */
+ Maximum error is 1.92 ULPs:
+ SV_NAME_F1 (asinh) (-0x1.0922ecp-1) got -0x1.fd0bccp-2
+ want -0x1.fd0bc8p-2. */
svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg)
{
svfloat32_t ax = svabs_x (pg, x);
@@ -49,8 +52,6 @@ svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg)
= sv_log1pf_inline (svadd_x (pg, ax, svdiv_x (pg, ax2, d)), pg);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (
- x, svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y))),
- special);
+ return special_case (iax, sign, y, special);
return svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y)));
}
diff --git a/sysdeps/aarch64/fpu/asinpi_advsimd.c b/sysdeps/aarch64/fpu/asinpi_advsimd.c
new file mode 100644
index 0000000..b11f98b
--- /dev/null
+++ b/sysdeps/aarch64/fpu/asinpi_advsimd.c
@@ -0,0 +1,109 @@
+/* Double-Precision vector (Advanced SIMD) inverse sinpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float64x2_t c0, c2, c4, c6, c8, c10;
+ float64x2_t pi_over_2, inv_pi;
+ uint64x2_t abs_mask;
+ double c1, c3, c5, c7, c9, c11;
+} data = {
+ /* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
+ on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
+ .c0 = V2 (0x1.555555555554ep-3), .c1 = 0x1.3333333337233p-4,
+ .c2 = V2 (0x1.6db6db67f6d9fp-5), .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = V2 (0x1.6e8b264d467d6p-6), .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = V2 (0x1.c86a22cd9389dp-7), .c7 = 0x1.856073c22ebbep-7,
+ .c8 = V2 (0x1.fd1151acb6bedp-8), .c9 = 0x1.087182f799c1dp-6,
+ .c10 = V2 (-0x1.6602748120927p-7), .c11 = 0x1.cfa0dd1f9478p-6,
+ .pi_over_2 = V2 (0x1.921fb54442d18p+0), .abs_mask = V2 (0x7fffffffffffffff),
+ .inv_pi = V2 (0x1.45f306dc9c883p-2),
+};
+
+/* Double-precision implementation of vector asinpi(x).
+
+ For |x| in [0, 0.5], use an order 11 polynomial P such that the final
+ approximation is an odd polynomial: asin(x) ~ x + x^3 P(x^2).
+ asinpi(x) = asin(x) * 1/pi.
+
+ The largest observed error in this region is 1.63 ulps,
+ _ZGVnN2v_asinpi (0x1.9125919fa617p-19) got 0x1.fec183497ea53p-21
+ want 0x1.fec183497ea51p-21.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 3.04 ulps,
+ _ZGVnN2v_asinpi (0x1.0479b7bd98553p-1) got 0x1.5beebec797326p-3
+ want 0x1.5beebec797329p-3. */
+
+float64x2_t VPCS_ATTR V_NAME_D1 (asinpi) (float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+ float64x2_t ax = vabsq_f64 (x);
+
+ uint64x2_t a_lt_half = vcaltq_f64 (x, v_f64 (0.5));
+
+ /* Evaluate polynomial Q(x) = y + y * z * P(z) with
+ z = x ^ 2 and y = |x| , if |x| < 0.5
+ z = (1 - |x|) / 2 and y = sqrt(z), if |x| >= 0.5. */
+ float64x2_t z2 = vbslq_f64 (a_lt_half, vmulq_f64 (x, x),
+ vfmsq_n_f64 (v_f64 (0.5), ax, 0.5));
+ float64x2_t z = vbslq_f64 (a_lt_half, ax, vsqrtq_f64 (z2));
+
+ /* Use a single polynomial approximation P for both intervals. */
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+ float64x2_t z16 = vmulq_f64 (z8, z8);
+
+ /* order-11 Estrin. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p07 = vfmaq_f64 (p03, z8, p47);
+ float64x2_t p = vfmaq_f64 (p07, z16, p811);
+
+ /* Finalize polynomial: z + z * z2 * P(z2). */
+ p = vfmaq_f64 (z, vmulq_f64 (z, z2), p);
+
+ /* asin(|x|) = Q(|x|) , for |x| < 0.5
+ = pi/2 - 2 Q(|x|), for |x| >= 0.5. */
+ float64x2_t y = vbslq_f64 (a_lt_half, p, vfmsq_n_f64 (d->pi_over_2, p, 2.0));
+ /* asinpi(|x|) = asin(|x|) /pi. */
+ y = vmulq_f64 (y, d->inv_pi);
+
+ /* Copy sign. */
+ return vbslq_f64 (d->abs_mask, y, x);
+}
diff --git a/sysdeps/aarch64/fpu/asinpi_sve.c b/sysdeps/aarch64/fpu/asinpi_sve.c
new file mode 100644
index 0000000..71ef8ce
--- /dev/null
+++ b/sysdeps/aarch64/fpu/asinpi_sve.c
@@ -0,0 +1,107 @@
+/* Double-Precision vector (SVE) inverse sinpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float64_t c1, c3, c5, c7, c9, c11;
+ float64_t c0, c2, c4, c6, c8, c10;
+ float64_t pi_over_2, inv_pi;
+} data = {
+ /* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x))
+ on [ 0x1p-106, 0x1p-2 ], relative error: 0x1.c3d8e169p-57. */
+ .c0 = 0x1.555555555554ep-3, .c1 = 0x1.3333333337233p-4,
+ .c2 = 0x1.6db6db67f6d9fp-5, .c3 = 0x1.f1c71fbd29fbbp-6,
+ .c4 = 0x1.6e8b264d467d6p-6, .c5 = 0x1.1c5997c357e9dp-6,
+ .c6 = 0x1.c86a22cd9389dp-7, .c7 = 0x1.856073c22ebbep-7,
+ .c8 = 0x1.fd1151acb6bedp-8, .c9 = 0x1.087182f799c1dp-6,
+ .c10 = -0x1.6602748120927p-7, .c11 = 0x1.cfa0dd1f9478p-6,
+ .pi_over_2 = 0x1.921fb54442d18p+0, .inv_pi = 0x1.45f306dc9c883p-2,
+};
+
+/* Double-precision SVE implementation of vector asinpi(x).
+
+ For |x| in [0, 0.5], use an order 11 polynomial P such that the final
+ approximation is an odd polynomial: asin(x) ~ x + x^3 P(x^2).
+
+ The largest observed error in this region is 1.32 ulp:
+ _ZGVsMxv_asinpi (0x1.fc12356dbdefbp-2) got 0x1.5272e9658ba66p-3
+ want 0x1.5272e9658ba64p-3
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable:
+ asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 3.48 ulp:
+ _ZGVsMxv_asinpi (0x1.03da0c2295424p-1) got 0x1.5b02b3dcafaefp-3
+ want 0x1.5b02b3dcafaf2p-3. */
+svfloat64_t SV_NAME_D1 (asinpi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b64 ();
+
+ svuint64_t sign = svand_x (pg, svreinterpret_u64 (x), 0x8000000000000000);
+ svfloat64_t ax = svabs_x (pg, x);
+ svbool_t a_ge_half = svacge (pg, x, 0.5);
+
+ /* Evaluate polynomial Q(x) = y + y * z * P(z) with
+ z = x ^ 2 and y = |x| , if |x| < 0.5
+ z = (1 - |x|) / 2 and y = sqrt(z), if |x| >= 0.5. */
+ svfloat64_t z2 = svsel (a_ge_half, svmls_x (pg, sv_f64 (0.5), ax, 0.5),
+ svmul_x (ptrue, x, x));
+ svfloat64_t z = svsqrt_m (ax, a_ge_half, z2);
+
+ /* Use a single polynomial approximation P for both intervals. */
+ svfloat64_t z3 = svmul_x (pg, z2, z);
+ svfloat64_t z4 = svmul_x (pg, z2, z2);
+ svfloat64_t z8 = svmul_x (pg, z4, z4);
+
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+
+ /* Order-11 Estrin scheme. */
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
+
+ svfloat64_t p411 = svmla_x (pg, p47, z8, p811);
+ svfloat64_t p = svmla_x (pg, p03, z8, p411);
+
+ /* Finalize polynomial: z + z3 * P(z2). */
+ p = svmla_x (pg, z, z3, p);
+
+ /* asin(|x|) = Q(|x|) , for |x| < 0.5
+ = pi/2 - 2 Q(|x|), for |x| >= 0.5. */
+ svfloat64_t y = svmad_m (a_ge_half, p, sv_f64 (-2.0), d->pi_over_2);
+
+ /* Reinsert the sign from the argument. */
+ svfloat64_t inv_pi = svreinterpret_f64 (
+ svorr_x (pg, svreinterpret_u64 (sv_f64 (d->inv_pi)), sign));
+
+ return svmul_x (pg, y, inv_pi);
+}
diff --git a/sysdeps/aarch64/fpu/asinpif_advsimd.c b/sysdeps/aarch64/fpu/asinpif_advsimd.c
new file mode 100644
index 0000000..1483ea8
--- /dev/null
+++ b/sysdeps/aarch64/fpu/asinpif_advsimd.c
@@ -0,0 +1,95 @@
+/* Single-Precision vector (Advanced SIMD) inverse sinpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float32x4_t c0, c2, c4, inv_pi;
+ float c1, c3, c5, null;
+} data = {
+ /* Coefficients of polynomial P such that asin(x)/pi~ x/pi + x^3 * poly(x^2)
+ on [ 0x1p-126 0x1p-2 ]. rel error: 0x1.ef9f94b1p-33. Generated using
+ iterative approach for minimisation of relative error in Sollya file. */
+ .c0 = V4 (0x1.b2995ep-5f), .c1 = 0x1.8724ep-6f,
+ .c2 = V4 (0x1.d1301ep-7f), .c3 = 0x1.446d3cp-7f,
+ .c4 = V4 (0x1.654848p-8f), .c5 = 0x1.5fdaa8p-7f,
+ .inv_pi = V4 (0x1.45f306p-2f),
+};
+
+#define AbsMask 0x7fffffff
+
+/* Single-precision implementation of vector asinpi(x).
+
+ For |x| < 0.5, use order 5 polynomial P such that the final
+ approximation is an odd polynomial: asinpif(x) ~ x/pi + x^3 P(x^2).
+
+ The largest observed error in this region is 1.68 ulps,
+ _ZGVnN4v_asinpif (0x1.86e514p-2) got 0x1.fea8c8p-4 want 0x1.fea8ccp-4.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 3.49 ulps,
+ _ZGVnN4v_asinpif(0x1.0d93fep-1) got 0x1.697aap-3 want 0x1.697a9ap-3. */
+float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (asinpi) (float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint32x4_t ix = vreinterpretq_u32_f32 (x);
+ uint32x4_t ia = vandq_u32 (ix, v_u32 (AbsMask));
+
+ float32x4_t ax = vreinterpretq_f32_u32 (ia);
+ uint32x4_t a_lt_half = vcaltq_f32 (x, v_f32 (0.5f));
+
+ /* Evaluate polynomial Q(x) = y/pi + y * z * P(z) with
+ z = x ^ 2 and y = |x| , if |x| < 0.5
+ z = (1 - |x|) / 2 and y = sqrt(z), if |x| >= 0.5. */
+ float32x4_t z2 = vbslq_f32 (a_lt_half, vmulq_f32 (x, x),
+ vfmsq_n_f32 (v_f32 (0.5f), ax, 0.5f));
+ float32x4_t z = vbslq_f32 (a_lt_half, ax, vsqrtq_f32 (z2));
+
+ /* Use a single polynomial approximation P for both intervals. */
+
+ /* Order-5 Estrin evaluation scheme. */
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t z8 = vmulq_f32 (z4, z4);
+ float32x4_t c135 = vld1q_f32 (&d->c1);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, z2, c135, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, z2, c135, 1);
+ float32x4_t p03 = vfmaq_f32 (p01, z4, p23);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, z2, c135, 2);
+ float32x4_t p = vfmaq_f32 (p03, z8, p45);
+ /* Add 1/pi as final coeff. */
+ p = vfmaq_f32 (d->inv_pi, z2, p);
+
+ /* Finalize polynomial: z * P(z2). */
+ p = vmulq_f32 (z, p);
+
+ /* asinpi(|x|) = Q(|x|), for |x| < 0.5
+ = 1/2 - 2 Q(|x|), for |x| >= 0.5. */
+ float32x4_t y
+ = vbslq_f32 (a_lt_half, p, vfmsq_n_f32 (v_f32 (0.5f), p, 2.0f));
+
+ /* Copy sign. */
+ return vbslq_f32 (v_u32 (AbsMask), y, x);
+}
+libmvec_hidden_def (V_NAME_F1 (asinpi))
+HALF_WIDTH_ALIAS_F1 (asinpi)
diff --git a/sysdeps/aarch64/fpu/asinpif_sve.c b/sysdeps/aarch64/fpu/asinpif_sve.c
new file mode 100644
index 0000000..046b258
--- /dev/null
+++ b/sysdeps/aarch64/fpu/asinpif_sve.c
@@ -0,0 +1,88 @@
+/* Single-Precision vector (SVE) inverse sinpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float32_t c1, c3, c5;
+ float32_t c0, c2, c4, inv_pi;
+} data = {
+ /* Polynomial approximation of (asin(sqrt(x)) - sqrt(x)) / (x * sqrt(x)) on
+ [ 0x1p-24 0x1p-2 ] order = 4 rel error: 0x1.00a23bbp-29 . */
+ .c0 = 0x1.b2995ep-5f, .c1 = 0x1.8724ep-6f, .c2 = 0x1.d1301ep-7f,
+ .c3 = 0x1.446d3cp-7f, .c4 = 0x1.654848p-8f, .c5 = 0x1.5fdaa8p-7f,
+ .inv_pi = 0x1.45f306p-2f,
+};
+
+/* Single-precision SVE implementation of vector asin(x).
+
+ For |x| in [0, 0.5], use order 5 polynomial P such that the final
+ approximation is an odd polynomial: asinpi(x) ~ x/pi + x^3 P(x^2).
+
+ The largest observed error in this region is 1.96 ulps:
+ _ZGVsMxv_asinpif (0x1.8e534ep-3) got 0x1.fe6ab4p-5
+ want 0x1.fe6ab8p-5.
+
+ For |x| in [0.5, 1.0], use same approximation with a change of variable
+
+ asinpi(x) = 1/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
+
+ The largest observed error in this region is 3.46 ulps:
+ _ZGVsMxv_asinpif (0x1.0df892p-1) got 0x1.6a114cp-3
+ want 0x1.6a1146p-3. */
+svfloat32_t SV_NAME_F1 (asinpi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b32 ();
+
+ svuint32_t sign = svand_x (pg, svreinterpret_u32 (x), 0x80000000);
+
+ svfloat32_t ax = svabs_x (pg, x);
+ svbool_t a_ge_half = svacge (pg, x, 0.5);
+
+ /* Evaluate polynomial Q(x) = y + y * z * P(z) with
+ z = x ^ 2 and y = |x| , if |x| < 0.5
+ z = (1 - |x|) / 2 and y = sqrt(z), if |x| >= 0.5. */
+ svfloat32_t z2 = svsel (a_ge_half, svmls_x (pg, sv_f32 (0.5), ax, 0.5),
+ svmul_x (pg, x, x));
+ svfloat32_t z = svsqrt_m (ax, a_ge_half, z2);
+
+ svfloat32_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat32_t c135_two = svld1rq (ptrue, &d->c1);
+
+ /* Order-5 Pairwise Horner evaluation scheme. */
+ svfloat32_t p01 = svmla_lane (sv_f32 (d->c0), z2, c135_two, 0);
+ svfloat32_t p23 = svmla_lane (sv_f32 (d->c2), z2, c135_two, 1);
+ svfloat32_t p45 = svmla_lane (sv_f32 (d->c4), z2, c135_two, 2);
+
+ svfloat32_t p25 = svmla_x (pg, p23, z4, p45);
+ svfloat32_t p = svmla_x (pg, p01, z4, p25);
+
+ /* Add 1/pi as final coeff. */
+ p = svmla_x (pg, sv_f32 (d->inv_pi), z2, p);
+ p = svmul_x (pg, p, z);
+
+ /* asinpi(|x|) = Q(|x|), for |x| < 0.5
+ = 1/2 - 2 Q(|x|), for |x| >= 0.5. */
+ svfloat32_t y = svmsb_m (a_ge_half, p, sv_f32 (2.0), 0.5);
+
+ /* Reinsert sign from argument. */
+ return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/atan2_advsimd.c b/sysdeps/aarch64/fpu/atan2_advsimd.c
index b1e7a9b..a31d52f 100644
--- a/sysdeps/aarch64/fpu/atan2_advsimd.c
+++ b/sysdeps/aarch64/fpu/atan2_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD atan2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,59 +19,74 @@
#include "math_config.h"
#include "v_math.h"
-#include "poly_advsimd_f64.h"
static const struct data
{
+ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c18;
float64x2_t pi_over_2;
- float64x2_t poly[20];
+ uint64x2_t zeroinfnan;
} data = {
- /* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
- the interval [2**-1022, 1.0]. */
- .poly = { V2 (-0x1.5555555555555p-2), V2 (0x1.99999999996c1p-3),
- V2 (-0x1.2492492478f88p-3), V2 (0x1.c71c71bc3951cp-4),
- V2 (-0x1.745d160a7e368p-4), V2 (0x1.3b139b6a88ba1p-4),
- V2 (-0x1.11100ee084227p-4), V2 (0x1.e1d0f9696f63bp-5),
- V2 (-0x1.aebfe7b418581p-5), V2 (0x1.842dbe9b0d916p-5),
- V2 (-0x1.5d30140ae5e99p-5), V2 (0x1.338e31eb2fbbcp-5),
- V2 (-0x1.00e6eece7de8p-5), V2 (0x1.860897b29e5efp-6),
- V2 (-0x1.0051381722a59p-6), V2 (0x1.14e9dc19a4a4ep-7),
- V2 (-0x1.d0062b42fe3bfp-9), V2 (0x1.17739e210171ap-10),
- V2 (-0x1.ab24da7be7402p-13), V2 (0x1.358851160a528p-16), },
+ /* Coefficients of polynomial P such that
+ atan(x)~x+x*P(x^2) on [2^-1022, 1.0]. */
+ .c0 = V2 (-0x1.555555555552ap-2),
+ .c1 = 0x1.9999999995aebp-3,
+ .c2 = V2 (-0x1.24924923923f6p-3),
+ .c3 = 0x1.c71c7184288a2p-4,
+ .c4 = V2 (-0x1.745d11fb3d32bp-4),
+ .c5 = 0x1.3b136a18051b9p-4,
+ .c6 = V2 (-0x1.110e6d985f496p-4),
+ .c7 = 0x1.e1bcf7f08801dp-5,
+ .c8 = V2 (-0x1.ae644e28058c3p-5),
+ .c9 = 0x1.82eeb1fed85c6p-5,
+ .c10 = V2 (-0x1.59d7f901566cbp-5),
+ .c11 = 0x1.2c982855ab069p-5,
+ .c12 = V2 (-0x1.eb49592998177p-6),
+ .c13 = 0x1.69d8b396e3d38p-6,
+ .c14 = V2 (-0x1.ca980345c4204p-7),
+ .c15 = 0x1.dc050eafde0b3p-8,
+ .c16 = V2 (-0x1.7ea70755b8eccp-9),
+ .c17 = 0x1.ba3da3de903e8p-11,
+ .c18 = V2 (-0x1.44a4b059b6f67p-13),
+ .c19 = 0x1.c4a45029e5a91p-17,
.pi_over_2 = V2 (0x1.921fb54442d18p+0),
+ .zeroinfnan = V2 (2 * 0x7ff0000000000000ul - 1),
};
#define SignMask v_u64 (0x8000000000000000)
/* Special cases i.e. 0, infinity, NaN (fall back to scalar calls). */
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t y, float64x2_t x, float64x2_t ret, uint64x2_t cmp)
+special_case (float64x2_t y, float64x2_t x, float64x2_t ret,
+ uint64x2_t sign_xy, uint64x2_t cmp)
{
+ /* Account for the sign of x and y. */
+ ret = vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (ret), sign_xy));
return v_call2_f64 (atan2, y, x, ret, cmp);
}
/* Returns 1 if input is the bit representation of 0, infinity or nan. */
static inline uint64x2_t
-zeroinfnan (uint64x2_t i)
+zeroinfnan (uint64x2_t i, const struct data *d)
{
/* (2 * i - 1) >= (2 * asuint64 (INFINITY) - 1). */
- return vcgeq_u64 (vsubq_u64 (vaddq_u64 (i, i), v_u64 (1)),
- v_u64 (2 * asuint64 (INFINITY) - 1));
+ return vcgeq_u64 (vsubq_u64 (vaddq_u64 (i, i), v_u64 (1)), d->zeroinfnan);
}
/* Fast implementation of vector atan2.
- Maximum observed error is 2.8 ulps:
- _ZGVnN2vv_atan2 (0x1.9651a429a859ap+5, 0x1.953075f4ee26p+5)
- got 0x1.92d628ab678ccp-1
- want 0x1.92d628ab678cfp-1. */
+ Maximum observed error is 1.97 ulps:
+ _ZGVnN2vv_atan2 (0x1.42337dba73768p+5, 0x1.422d748cd3e29p+5)
+ got 0x1.9224810264efcp-1 want 0x1.9224810264efep-1. */
float64x2_t VPCS_ATTR V_NAME_D2 (atan2) (float64x2_t y, float64x2_t x)
{
- const struct data *data_ptr = ptr_barrier (&data);
+ const struct data *d = ptr_barrier (&data);
uint64x2_t ix = vreinterpretq_u64_f64 (x);
uint64x2_t iy = vreinterpretq_u64_f64 (y);
- uint64x2_t special_cases = vorrq_u64 (zeroinfnan (ix), zeroinfnan (iy));
+ uint64x2_t special_cases
+ = vorrq_u64 (zeroinfnan (ix, d), zeroinfnan (iy, d));
uint64x2_t sign_x = vandq_u64 (ix, SignMask);
uint64x2_t sign_y = vandq_u64 (iy, SignMask);
@@ -81,42 +96,75 @@ float64x2_t VPCS_ATTR V_NAME_D2 (atan2) (float64x2_t y, float64x2_t x)
float64x2_t ay = vabsq_f64 (y);
uint64x2_t pred_xlt0 = vcltzq_f64 (x);
- uint64x2_t pred_aygtax = vcgtq_f64 (ay, ax);
-
- /* Set up z for call to atan. */
- float64x2_t n = vbslq_f64 (pred_aygtax, vnegq_f64 (ax), ay);
- float64x2_t d = vbslq_f64 (pred_aygtax, ay, ax);
- float64x2_t z = vdivq_f64 (n, d);
-
- /* Work out the correct shift. */
+ uint64x2_t pred_aygtax = vcagtq_f64 (y, x);
+
+ /* Set up z for evaluation of atan. */
+ float64x2_t num = vbslq_f64 (pred_aygtax, vnegq_f64 (ax), ay);
+ float64x2_t den = vbslq_f64 (pred_aygtax, ay, ax);
+ float64x2_t z = vdivq_f64 (num, den);
+
+ /* Work out the correct shift for atan2:
+ Multiplication by pi is done later.
+ -pi when x < 0 and ax < ay
+ -pi/2 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ pi/2 when x >= 0 and ax > ay. */
float64x2_t shift = vreinterpretq_f64_u64 (
vandq_u64 (pred_xlt0, vreinterpretq_u64_f64 (v_f64 (-2.0))));
- shift = vbslq_f64 (pred_aygtax, vaddq_f64 (shift, v_f64 (1.0)), shift);
- shift = vmulq_f64 (shift, data_ptr->pi_over_2);
-
- /* Calculate the polynomial approximation.
- Use split Estrin scheme for P(z^2) with deg(P)=19. Use split instead of
- full scheme to avoid underflow in x^16.
- The order 19 polynomial P approximates
- (atan(sqrt(x))-sqrt(x))/x^(3/2). */
+ float64x2_t shift2 = vreinterpretq_f64_u64 (
+ vandq_u64 (pred_aygtax, vreinterpretq_u64_f64 (v_f64 (1.0))));
+ shift = vaddq_f64 (shift, shift2);
+
+ /* Calculate the polynomial approximation. */
float64x2_t z2 = vmulq_f64 (z, z);
- float64x2_t x2 = vmulq_f64 (z2, z2);
- float64x2_t x4 = vmulq_f64 (x2, x2);
- float64x2_t x8 = vmulq_f64 (x4, x4);
- float64x2_t ret
- = vfmaq_f64 (v_estrin_7_f64 (z2, x2, x4, data_ptr->poly),
- v_estrin_11_f64 (z2, x2, x4, x8, data_ptr->poly + 8), x8);
+ float64x2_t z3 = vmulq_f64 (z2, z);
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+ float64x2_t z16 = vmulq_f64 (z8, z8);
- /* Finalize. y = shift + z + z^3 * P(z^2). */
- ret = vfmaq_f64 (z, ret, vmulq_f64 (z2, z));
- ret = vaddq_f64 (ret, shift);
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+ float64x2_t c1315 = vld1q_f64 (&d->c13);
+ float64x2_t c1719 = vld1q_f64 (&d->c17);
- /* Account for the sign of x and y. */
- ret = vreinterpretq_f64_u64 (
- veorq_u64 (vreinterpretq_u64_f64 (ret), sign_xy));
+ /* Order-7 Estrin. */
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p07 = vfmaq_f64 (p03, z8, p47);
+
+ /* Order-11 Estrin. */
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, z2, c1315, 0);
+ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, z2, c1315, 1);
+ float64x2_t p1215 = vfmaq_f64 (p1213, z4, p1415);
+
+ float64x2_t p1617 = vfmaq_laneq_f64 (d->c16, z2, c1719, 0);
+ float64x2_t p1819 = vfmaq_laneq_f64 (d->c18, z2, c1719, 1);
+ float64x2_t p1619 = vfmaq_f64 (p1617, z4, p1819);
+
+ float64x2_t p815 = vfmaq_f64 (p811, z8, p1215);
+ float64x2_t p819 = vfmaq_f64 (p815, z16, p1619);
+
+ float64x2_t poly = vfmaq_f64 (p07, p819, z16);
+
+ /* Finalize. y = shift + z + z^3 * P(z^2). */
+ float64x2_t ret = vfmaq_f64 (z, shift, d->pi_over_2);
+ ret = vfmaq_f64 (ret, z3, poly);
if (__glibc_unlikely (v_any_u64 (special_cases)))
- return special_case (y, x, ret, special_cases);
+ return special_case (y, x, ret, sign_xy, special_cases);
- return ret;
+ /* Account for the sign of x and y. */
+ return vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (ret), sign_xy));
}
diff --git a/sysdeps/aarch64/fpu/atan2_sve.c b/sysdeps/aarch64/fpu/atan2_sve.c
index ed9f683..9e2dd24 100644
--- a/sysdeps/aarch64/fpu/atan2_sve.c
+++ b/sysdeps/aarch64/fpu/atan2_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE atan2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,25 +19,25 @@
#include "math_config.h"
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[20];
- float64_t pi_over_2;
+ float64_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c18;
+ float64_t c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-1022, 1.0]. */
- .poly = { -0x1.5555555555555p-2, 0x1.99999999996c1p-3, -0x1.2492492478f88p-3,
- 0x1.c71c71bc3951cp-4, -0x1.745d160a7e368p-4, 0x1.3b139b6a88ba1p-4,
- -0x1.11100ee084227p-4, 0x1.e1d0f9696f63bp-5, -0x1.aebfe7b418581p-5,
- 0x1.842dbe9b0d916p-5, -0x1.5d30140ae5e99p-5, 0x1.338e31eb2fbbcp-5,
- -0x1.00e6eece7de8p-5, 0x1.860897b29e5efp-6, -0x1.0051381722a59p-6,
- 0x1.14e9dc19a4a4ep-7, -0x1.d0062b42fe3bfp-9, 0x1.17739e210171ap-10,
- -0x1.ab24da7be7402p-13, 0x1.358851160a528p-16, },
- .pi_over_2 = 0x1.921fb54442d18p+0,
+ .c0 = -0x1.555555555552ap-2, .c1 = 0x1.9999999995aebp-3,
+ .c2 = -0x1.24924923923f6p-3, .c3 = 0x1.c71c7184288a2p-4,
+ .c4 = -0x1.745d11fb3d32bp-4, .c5 = 0x1.3b136a18051b9p-4,
+ .c6 = -0x1.110e6d985f496p-4, .c7 = 0x1.e1bcf7f08801dp-5,
+ .c8 = -0x1.ae644e28058c3p-5, .c9 = 0x1.82eeb1fed85c6p-5,
+ .c10 = -0x1.59d7f901566cbp-5, .c11 = 0x1.2c982855ab069p-5,
+ .c12 = -0x1.eb49592998177p-6, .c13 = 0x1.69d8b396e3d38p-6,
+ .c14 = -0x1.ca980345c4204p-7, .c15 = 0x1.dc050eafde0b3p-8,
+ .c16 = -0x1.7ea70755b8eccp-9, .c17 = 0x1.ba3da3de903e8p-11,
+ .c18 = -0x1.44a4b059b6f67p-13, .c19 = 0x1.c4a45029e5a91p-17,
};
-
/* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */
static svfloat64_t NOINLINE
special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,
@@ -56,15 +56,17 @@ zeroinfnan (svuint64_t i, const svbool_t pg)
}
/* Fast implementation of SVE atan2. Errors are greatest when y and
- x are reasonably close together. The greatest observed error is 2.28 ULP:
- _ZGVsMxvv_atan2 (-0x1.5915b1498e82fp+732, 0x1.54d11ef838826p+732)
- got -0x1.954f42f1fa841p-1 want -0x1.954f42f1fa843p-1. */
-svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x, const svbool_t pg)
+ x are reasonably close together. The greatest observed error is 1.94 ULP:
+ _ZGVsMxvv_atan2 (0x1.8a4bf7167228ap+5, 0x1.84971226bb57bp+5)
+ got 0x1.95db19dfef9ccp-1 want 0x1.95db19dfef9cep-1. */
+svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x,
+ const svbool_t pg)
{
- const struct data *data_ptr = ptr_barrier (&data);
+ const struct data *d = ptr_barrier (&data);
svuint64_t ix = svreinterpret_u64 (x);
svuint64_t iy = svreinterpret_u64 (y);
+ svbool_t ptrue = svptrue_b64 ();
svbool_t cmp_x = zeroinfnan (ix, pg);
svbool_t cmp_y = zeroinfnan (iy, pg);
@@ -81,32 +83,67 @@ svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x, const svbool_t pg)
svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
- /* Set up z for call to atan. */
- svfloat64_t n = svsel (pred_aygtax, svneg_x (pg, ax), ay);
- svfloat64_t d = svsel (pred_aygtax, ay, ax);
- svfloat64_t z = svdiv_x (pg, n, d);
-
- /* Work out the correct shift. */
+ /* Set up z for evaluation of atan. */
+ svfloat64_t num = svsel (pred_aygtax, svneg_x (pg, ax), ay);
+ svfloat64_t den = svsel (pred_aygtax, ay, ax);
+ svfloat64_t z = svdiv_x (pg, num, den);
+
+ /* Work out the correct shift for atan2:
+ Multiplication by pi is done later.
+ -pi when x < 0 and ax < ay
+ -pi/2 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ pi/2 when x >= 0 and ax > ay. */
svfloat64_t shift = svreinterpret_f64 (svlsr_x (pg, sign_x, 1));
+ svfloat64_t shift_mul = svreinterpret_f64 (
+ svorr_x (pg, sign_x, svreinterpret_u64 (sv_f64 (0x1.921fb54442d18p+0))));
shift = svsel (pred_aygtax, sv_f64 (1.0), shift);
- shift = svreinterpret_f64 (svorr_x (pg, sign_x, svreinterpret_u64 (shift)));
- shift = svmul_x (pg, shift, data_ptr->pi_over_2);
+ shift = svmla_x (pg, z, shift, shift_mul);
/* Use split Estrin scheme for P(z^2) with deg(P)=19. */
svfloat64_t z2 = svmul_x (pg, z, z);
- svfloat64_t x2 = svmul_x (pg, z2, z2);
- svfloat64_t x4 = svmul_x (pg, x2, x2);
- svfloat64_t x8 = svmul_x (pg, x4, x4);
+ svfloat64_t z3 = svmul_x (pg, z2, z);
+ svfloat64_t z4 = svmul_x (pg, z2, z2);
+ svfloat64_t z8 = svmul_x (pg, z4, z4);
+ svfloat64_t z16 = svmul_x (pg, z8, z8);
- svfloat64_t ret = svmla_x (
- pg, sv_estrin_7_f64_x (pg, z2, x2, x4, data_ptr->poly),
- sv_estrin_11_f64_x (pg, z2, x2, x4, x8, data_ptr->poly + 8), x8);
+ /* Order-7 Estrin. */
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
- /* y = shift + z + z^3 * P(z^2). */
- svfloat64_t z3 = svmul_x (pg, z2, z);
- ret = svmla_x (pg, z, z3, ret);
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+ svfloat64_t p07 = svmla_x (pg, p03, z8, p47);
+
+ /* Order-11 Estrin. */
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+ svfloat64_t c1315 = svld1rq (ptrue, &d->c13);
+ svfloat64_t c1719 = svld1rq (ptrue, &d->c17);
- ret = svadd_m (pg, ret, shift);
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
+
+ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), z2, c1315, 0);
+ svfloat64_t p1415 = svmla_lane (sv_f64 (d->c14), z2, c1315, 1);
+ svfloat64_t p1215 = svmla_x (pg, p1213, z4, p1415);
+
+ svfloat64_t p1617 = svmla_lane (sv_f64 (d->c16), z2, c1719, 0);
+ svfloat64_t p1819 = svmla_lane (sv_f64 (d->c18), z2, c1719, 1);
+ svfloat64_t p1619 = svmla_x (pg, p1617, z4, p1819);
+
+ svfloat64_t p815 = svmla_x (pg, p811, z8, p1215);
+ svfloat64_t p819 = svmla_x (pg, p815, z16, p1619);
+
+ svfloat64_t poly = svmla_x (pg, p07, z16, p819);
+
+ /* y = shift + z + z^3 * P(z^2). */
+ svfloat64_t ret = svmla_x (pg, shift, z3, poly);
/* Account for the sign of x and y. */
if (__glibc_unlikely (svptest_any (pg, cmp_xy)))
diff --git a/sysdeps/aarch64/fpu/atan2f_advsimd.c b/sysdeps/aarch64/fpu/atan2f_advsimd.c
index 56e610c..75d8738 100644
--- a/sysdeps/aarch64/fpu/atan2f_advsimd.c
+++ b/sysdeps/aarch64/fpu/atan2f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD atan2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,52 +18,58 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
static const struct data
{
- float32x4_t poly[8];
- float32x4_t pi_over_2;
+ float32x4_t c0, c4, c6, c2;
+ float c1, c3, c5, c7;
+ uint32x4_t comp_const;
+ float32x4_t pi;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-128, 1.0].
Generated using fpminimax between FLT_MIN and 1. */
- .poly = { V4 (-0x1.55555p-2f), V4 (0x1.99935ep-3f), V4 (-0x1.24051ep-3f),
- V4 (0x1.bd7368p-4f), V4 (-0x1.491f0ep-4f), V4 (0x1.93a2c0p-5f),
- V4 (-0x1.4c3c60p-6f), V4 (0x1.01fd88p-8f) },
- .pi_over_2 = V4 (0x1.921fb6p+0f),
+ .c0 = V4 (-0x1.5554dcp-2), .c1 = 0x1.9978ecp-3,
+ .c2 = V4 (-0x1.230a94p-3), .c3 = 0x1.b4debp-4,
+ .c4 = V4 (-0x1.3550dap-4), .c5 = 0x1.61eebp-5,
+ .c6 = V4 (-0x1.0c17d4p-6), .c7 = 0x1.7ea694p-9,
+ .pi = V4 (0x1.921fb6p+1f), .comp_const = V4 (2 * 0x7f800000lu - 1),
};
#define SignMask v_u32 (0x80000000)
/* Special cases i.e. 0, infinity and nan (fall back to scalar calls). */
static float32x4_t VPCS_ATTR NOINLINE
-special_case (float32x4_t y, float32x4_t x, float32x4_t ret, uint32x4_t cmp)
+special_case (float32x4_t y, float32x4_t x, float32x4_t ret,
+ uint32x4_t sign_xy, uint32x4_t cmp)
{
+ /* Account for the sign of y. */
+ ret = vreinterpretq_f32_u32 (
+ veorq_u32 (vreinterpretq_u32_f32 (ret), sign_xy));
return v_call2_f32 (atan2f, y, x, ret, cmp);
}
/* Returns 1 if input is the bit representation of 0, infinity or nan. */
static inline uint32x4_t
-zeroinfnan (uint32x4_t i)
+zeroinfnan (uint32x4_t i, const struct data *d)
{
/* 2 * i - 1 >= 2 * 0x7f800000lu - 1. */
- return vcgeq_u32 (vsubq_u32 (vmulq_n_u32 (i, 2), v_u32 (1)),
- v_u32 (2 * 0x7f800000lu - 1));
+ return vcgeq_u32 (vsubq_u32 (vshlq_n_u32 (i, 1), v_u32 (1)), d->comp_const);
}
/* Fast implementation of vector atan2f. Maximum observed error is
- 2.95 ULP in [0x1.9300d6p+6 0x1.93c0c6p+6] x [0x1.8c2dbp+6 0x1.8cea6p+6]:
- _ZGVnN4vv_atan2f (0x1.93836cp+6, 0x1.8cae1p+6) got 0x1.967f06p-1
- want 0x1.967f00p-1. */
+ 2.13 ULP in [0x1.9300d6p+6 0x1.93c0c6p+6] x [0x1.8c2dbp+6 0x1.8cea6p+6]:
+ _ZGVnN4vv_atan2f (0x1.14a9d4p-87, 0x1.0eb886p-87) got 0x1.97aea2p-1
+ want 0x1.97ae9ep-1. */
float32x4_t VPCS_ATTR NOINLINE V_NAME_F2 (atan2) (float32x4_t y, float32x4_t x)
{
- const struct data *data_ptr = ptr_barrier (&data);
+ const struct data *d = ptr_barrier (&data);
uint32x4_t ix = vreinterpretq_u32_f32 (x);
uint32x4_t iy = vreinterpretq_u32_f32 (y);
- uint32x4_t special_cases = vorrq_u32 (zeroinfnan (ix), zeroinfnan (iy));
+ uint32x4_t special_cases
+ = vorrq_u32 (zeroinfnan (ix, d), zeroinfnan (iy, d));
uint32x4_t sign_x = vandq_u32 (ix, SignMask);
uint32x4_t sign_y = vandq_u32 (iy, SignMask);
@@ -75,44 +81,52 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F2 (atan2) (float32x4_t y, float32x4_t x)
uint32x4_t pred_xlt0 = vcltzq_f32 (x);
uint32x4_t pred_aygtax = vcgtq_f32 (ay, ax);
- /* Set up z for call to atanf. */
- float32x4_t n = vbslq_f32 (pred_aygtax, vnegq_f32 (ax), ay);
- float32x4_t d = vbslq_f32 (pred_aygtax, ay, ax);
- float32x4_t z = vdivq_f32 (n, d);
-
- /* Work out the correct shift. */
+ /* Set up z for evaluation of atanf. */
+ float32x4_t num = vbslq_f32 (pred_aygtax, vnegq_f32 (ax), ay);
+ float32x4_t den = vbslq_f32 (pred_aygtax, ay, ax);
+ float32x4_t z = vdivq_f32 (num, den);
+
+ /* Work out the correct shift for atan2:
+ Multiplication by pi is done later.
+ -pi when x < 0 and ax < ay
+ -pi/2 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ pi/2 when x >= 0 and ax > ay. */
float32x4_t shift = vreinterpretq_f32_u32 (
- vandq_u32 (pred_xlt0, vreinterpretq_u32_f32 (v_f32 (-2.0f))));
- shift = vbslq_f32 (pred_aygtax, vaddq_f32 (shift, v_f32 (1.0f)), shift);
- shift = vmulq_f32 (shift, data_ptr->pi_over_2);
-
- /* Calculate the polynomial approximation.
- Use 2-level Estrin scheme for P(z^2) with deg(P)=7. However,
- a standard implementation using z8 creates spurious underflow
- in the very last fma (when z^8 is small enough).
- Therefore, we split the last fma into a mul and an fma.
- Horner and single-level Estrin have higher errors that exceed
- threshold. */
+ vandq_u32 (pred_xlt0, vreinterpretq_u32_f32 (v_f32 (-1.0f))));
+ float32x4_t shift2 = vreinterpretq_f32_u32 (
+ vandq_u32 (pred_aygtax, vreinterpretq_u32_f32 (v_f32 (0.5f))));
+ shift = vaddq_f32 (shift, shift2);
+
+ /* Calculate the polynomial approximation. */
float32x4_t z2 = vmulq_f32 (z, z);
+ float32x4_t z3 = vmulq_f32 (z2, z);
float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t z8 = vmulq_f32 (z4, z4);
- float32x4_t ret = vfmaq_f32 (
- v_pairwise_poly_3_f32 (z2, z4, data_ptr->poly), z4,
- vmulq_f32 (z4, v_pairwise_poly_3_f32 (z2, z4, data_ptr->poly + 4)));
+ float32x4_t c1357 = vld1q_f32 (&d->c1);
- /* y = shift + z * P(z^2). */
- ret = vaddq_f32 (vfmaq_f32 (z, ret, vmulq_f32 (z2, z)), shift);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, z2, c1357, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, z2, c1357, 1);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, z2, c1357, 2);
+ float32x4_t p67 = vfmaq_laneq_f32 (d->c6, z2, c1357, 3);
+ float32x4_t p03 = vfmaq_f32 (p01, z4, p23);
+ float32x4_t p47 = vfmaq_f32 (p45, z4, p67);
- /* Account for the sign of y. */
- ret = vreinterpretq_f32_u32 (
- veorq_u32 (vreinterpretq_u32_f32 (ret), sign_xy));
+ float32x4_t poly = vfmaq_f32 (p03, z8, p47);
+
+ /* y = shift + z * P(z^2). */
+ float32x4_t ret = vfmaq_f32 (z, shift, d->pi);
+ ret = vfmaq_f32 (ret, z3, poly);
if (__glibc_unlikely (v_any_u32 (special_cases)))
{
- return special_case (y, x, ret, special_cases);
+ return special_case (y, x, ret, sign_xy, special_cases);
}
- return ret;
+ /* Account for the sign of y. */
+ return vreinterpretq_f32_u32 (
+ veorq_u32 (vreinterpretq_u32_f32 (ret), sign_xy));
}
libmvec_hidden_def (V_NAME_F2 (atan2))
HALF_WIDTH_ALIAS_F2(atan2)
diff --git a/sysdeps/aarch64/fpu/atan2f_sve.c b/sysdeps/aarch64/fpu/atan2f_sve.c
index 9ea1971..4d93419 100644
--- a/sysdeps/aarch64/fpu/atan2f_sve.c
+++ b/sysdeps/aarch64/fpu/atan2f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE atan2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,18 +18,18 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
static const struct data
{
- float32_t poly[8];
+ float32_t c0, c2, c4, c6;
+ float32_t c1, c3, c5, c7;
float32_t pi_over_2;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-128, 1.0]. */
- .poly = { -0x1.55555p-2f, 0x1.99935ep-3f, -0x1.24051ep-3f, 0x1.bd7368p-4f,
- -0x1.491f0ep-4f, 0x1.93a2c0p-5f, -0x1.4c3c60p-6f, 0x1.01fd88p-8f },
- .pi_over_2 = 0x1.921fb6p+0f,
+ .c0 = -0x1.5554dcp-2, .c1 = 0x1.9978ecp-3, .c2 = -0x1.230a94p-3,
+ .c3 = 0x1.b4debp-4, .c4 = -0x1.3550dap-4, .c5 = 0x1.61eebp-5,
+ .c6 = -0x1.0c17d4p-6, .c7 = 0x1.7ea694p-9, .pi_over_2 = 0x1.921fb6p+0f,
};
/* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */
@@ -51,12 +51,14 @@ zeroinfnan (svuint32_t i, const svbool_t pg)
/* Fast implementation of SVE atan2f based on atan(x) ~ shift + z + z^3 *
P(z^2) with reduction to [0,1] using z=1/x and shift = pi/2. Maximum
- observed error is 2.95 ULP:
- _ZGVsMxvv_atan2f (0x1.93836cp+6, 0x1.8cae1p+6) got 0x1.967f06p-1
- want 0x1.967f00p-1. */
-svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x, const svbool_t pg)
+ observed error is 2.21 ULP:
+ _ZGVnN4vv_atan2f (0x1.a04aa8p+6, 0x1.9a274p+6) got 0x1.95ed3ap-1
+ want 0x1.95ed36p-1. */
+svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x,
+ const svbool_t pg)
{
- const struct data *data_ptr = ptr_barrier (&data);
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b32 ();
svuint32_t ix = svreinterpret_u32 (x);
svuint32_t iy = svreinterpret_u32 (y);
@@ -76,29 +78,42 @@ svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x, const svbool_t pg)
svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
- /* Set up z for call to atan. */
- svfloat32_t n = svsel (pred_aygtax, svneg_x (pg, ax), ay);
- svfloat32_t d = svsel (pred_aygtax, ay, ax);
- svfloat32_t z = svdiv_x (pg, n, d);
-
- /* Work out the correct shift. */
+ /* Set up z for evaluation of atanf. */
+ svfloat32_t num = svsel (pred_aygtax, svneg_x (pg, ax), ay);
+ svfloat32_t den = svsel (pred_aygtax, ay, ax);
+ svfloat32_t z = svdiv_x (ptrue, num, den);
+
+ /* Work out the correct shift for atan2:
+ Multiplication by pi is done later.
+ -pi when x < 0 and ax < ay
+ -pi/2 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ pi/2 when x >= 0 and ax > ay. */
svfloat32_t shift = svreinterpret_f32 (svlsr_x (pg, sign_x, 1));
shift = svsel (pred_aygtax, sv_f32 (1.0), shift);
shift = svreinterpret_f32 (svorr_x (pg, sign_x, svreinterpret_u32 (shift)));
- shift = svmul_x (pg, shift, sv_f32 (data_ptr->pi_over_2));
/* Use pure Estrin scheme for P(z^2) with deg(P)=7. */
- svfloat32_t z2 = svmul_x (pg, z, z);
+ svfloat32_t z2 = svmul_x (ptrue, z, z);
+ svfloat32_t z3 = svmul_x (pg, z2, z);
svfloat32_t z4 = svmul_x (pg, z2, z2);
svfloat32_t z8 = svmul_x (pg, z4, z4);
- svfloat32_t ret = sv_estrin_7_f32_x (pg, z2, z4, z8, data_ptr->poly);
+ svfloat32_t odd_coeffs = svld1rq (ptrue, &d->c1);
- /* ret = shift + z + z^3 * P(z^2). */
- svfloat32_t z3 = svmul_x (pg, z2, z);
- ret = svmla_x (pg, z, z3, ret);
+ svfloat32_t p01 = svmla_lane (sv_f32 (d->c0), z2, odd_coeffs, 0);
+ svfloat32_t p23 = svmla_lane (sv_f32 (d->c2), z2, odd_coeffs, 1);
+ svfloat32_t p45 = svmla_lane (sv_f32 (d->c4), z2, odd_coeffs, 2);
+ svfloat32_t p67 = svmla_lane (sv_f32 (d->c6), z2, odd_coeffs, 3);
- ret = svadd_m (pg, ret, shift);
+ svfloat32_t p03 = svmla_x (pg, p01, z4, p23);
+ svfloat32_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat32_t poly = svmla_x (pg, p03, z8, p47);
+
+ /* ret = shift + z + z^3 * P(z^2). */
+ svfloat32_t ret = svmla_x (pg, z, shift, sv_f32 (d->pi_over_2));
+ ret = svmla_x (pg, ret, z3, poly);
/* Account for the sign of x and y. */
diff --git a/sysdeps/aarch64/fpu/atan2pi_advsimd.c b/sysdeps/aarch64/fpu/atan2pi_advsimd.c
new file mode 100644
index 0000000..3cf231b
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atan2pi_advsimd.c
@@ -0,0 +1,175 @@
+/* Double-Precision vector (Advanced SIMD) inverse tan2pi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float64_t c2, c4, c6, c8, c10, c12, c14, c16, c18, c20;
+ float64x2_t c0;
+ uint64x2_t zeroinfnan;
+ float64x2_t c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+} data = {
+ /* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
+ [2**-1022, 1.0]. */
+ .c0 = V2 (0x1.45f306dc9c883p-2),
+ .c1 = V2 (-0x1.b2995e7b7ba4ap-4),
+ .c2 = 0x1.04c26be3d2c1p-4,
+ .c3 = V2 (-0x1.7483759c17ea1p-5),
+ .c4 = 0x1.21bb95c315d57p-5,
+ .c5 = V2 (-0x1.da1bdc3d453f3p-6),
+ .c6 = 0x1.912d20459b4bfp-6,
+ .c7 = V2 (-0x1.5bbd4545cad1fp-6),
+ .c8 = 0x1.331b83bec30a1p-6,
+ .c9 = V2 (-0x1.13d6457f44de3p-6),
+ .c10 = 0x1.f8e802974db94p-7,
+ .c11 = V2 (-0x1.d7e173ab04a1ap-7),
+ .c12 = 0x1.bdfa47d6a4f28p-7,
+ .c13 = V2 (-0x1.9ba78f3232ceep-7),
+ .c14 = 0x1.5e6044590ab4fp-7,
+ .c15 = V2 (-0x1.01ccfdeb9f77fp-7),
+ .c16 = 0x1.345cf0d4eb1c1p-8,
+ .c17 = V2 (-0x1.19e5f00f67e3ap-9),
+ .c18 = 0x1.6d3035ac7625bp-11,
+ .c19 = V2 (-0x1.286bb9ae4ed79p-13),
+ .c20 = 0x1.c37ec36da0e1ap-17,
+ .zeroinfnan = V2 (2 * 0x7ff0000000000000ul - 1),
+};
+
+#define SignMask v_u64 (0x8000000000000000)
+#define OneOverPi v_f64 (0x1.45f306dc9c883p-2)
+
+/* Special cases i.e. 0, infinity, NaN (fall back to scalar calls). */
+static float64x2_t VPCS_ATTR NOINLINE
+special_case (float64x2_t y, float64x2_t x, float64x2_t ret,
+ uint64x2_t sign_xy, uint64x2_t cmp)
+{
+ /* Account for the sign of x and y. */
+ ret = vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (ret), sign_xy));
+
+ /* Since we have no scalar fallback for atan2pi,
+ we can instead make a call to atan2f and divide by pi. */
+ ret = v_call2_f64 (atan2, y, x, ret, cmp);
+
+ /* Only divide the special cases by pi, and leave the rest unchanged. */
+ return vbslq_f64 (cmp, vmulq_f64 (ret, OneOverPi), ret);
+}
+
+/* Returns 1 if input is the bit representation of 0, infinity or nan. */
+static inline uint64x2_t
+zeroinfnan (uint64x2_t i, const struct data *d)
+{
+ /* (2 * i - 1) >= (2 * asuint64 (INFINITY) - 1). */
+ return vcgeq_u64 (vsubq_u64 (vaddq_u64 (i, i), v_u64 (1)), d->zeroinfnan);
+}
+
+/* Fast implementation of vector atan2pi.
+ Maximum observed error is 3.04 ulps:
+ _ZGVnN2vv_atan2pi (0x1.1e0733532ce28p+5, 0x1.2d803379cca1fp+5)
+ got 0x1.eed60c1e89317p-3 want 0x1.eed60c1e89314p-3. */
+float64x2_t VPCS_ATTR V_NAME_D2 (atan2pi) (float64x2_t y, float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint64x2_t ix = vreinterpretq_u64_f64 (x);
+ uint64x2_t iy = vreinterpretq_u64_f64 (y);
+
+ uint64x2_t special_cases
+ = vorrq_u64 (zeroinfnan (ix, d), zeroinfnan (iy, d));
+
+ uint64x2_t sign_x = vandq_u64 (ix, SignMask);
+ uint64x2_t sign_y = vandq_u64 (iy, SignMask);
+ uint64x2_t sign_xy = veorq_u64 (sign_x, sign_y);
+
+ float64x2_t ax = vabsq_f64 (x);
+ float64x2_t ay = vabsq_f64 (y);
+
+ uint64x2_t pred_xlt0 = vcltzq_f64 (x);
+ uint64x2_t pred_aygtax = vcgtq_f64 (ay, ax);
+
+ /* Set up z for evaluation of atanpi. */
+ float64x2_t num = vbslq_f64 (pred_aygtax, vnegq_f64 (ax), ay);
+ float64x2_t den = vbslq_f64 (pred_aygtax, ay, ax);
+ float64x2_t z = vdivq_f64 (num, den);
+
+ /* Work out the correct shift for atan2pi:
+ -1.0 when x < 0 and ax < ay
+ -0.5 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ 0.5 when x >= 0 and ax > ay. */
+ float64x2_t shift = vreinterpretq_f64_u64 (
+ vandq_u64 (pred_xlt0, vreinterpretq_u64_f64 (v_f64 (-1.0))));
+ float64x2_t shift2 = vreinterpretq_f64_u64 (
+ vandq_u64 (pred_aygtax, vreinterpretq_u64_f64 (v_f64 (0.5))));
+ shift = vaddq_f64 (shift, shift2);
+
+ /* Calculate the polynomial approximation. */
+ float64x2_t z2 = vmulq_f64 (z, z);
+ float64x2_t z3 = vmulq_f64 (z2, z);
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+ float64x2_t z16 = vmulq_f64 (z8, z8);
+
+ float64x2_t c24 = vld1q_f64 (&d->c2);
+ float64x2_t c68 = vld1q_f64 (&d->c6);
+
+ /* Order-7 Estrin. */
+ float64x2_t p12 = vfmaq_laneq_f64 (d->c1, z2, c24, 0);
+ float64x2_t p34 = vfmaq_laneq_f64 (d->c3, z2, c24, 1);
+ float64x2_t p56 = vfmaq_laneq_f64 (d->c5, z2, c68, 0);
+ float64x2_t p78 = vfmaq_laneq_f64 (d->c7, z2, c68, 1);
+
+ float64x2_t p14 = vfmaq_f64 (p12, z4, p34);
+ float64x2_t p58 = vfmaq_f64 (p56, z4, p78);
+ float64x2_t p18 = vfmaq_f64 (p14, z8, p58);
+
+ /* Order-11 Estrin. */
+ float64x2_t c1012 = vld1q_f64 (&d->c10);
+ float64x2_t c1416 = vld1q_f64 (&d->c14);
+ float64x2_t c1820 = vld1q_f64 (&d->c18);
+
+ float64x2_t p910 = vfmaq_laneq_f64 (d->c9, z2, c1012, 0);
+ float64x2_t p1112 = vfmaq_laneq_f64 (d->c11, z2, c1012, 1);
+ float64x2_t p912 = vfmaq_f64 (p910, z4, p1112);
+
+ float64x2_t p1314 = vfmaq_laneq_f64 (d->c13, z2, c1416, 0);
+ float64x2_t p1516 = vfmaq_laneq_f64 (d->c15, z2, c1416, 1);
+ float64x2_t p1316 = vfmaq_f64 (p1314, z4, p1516);
+
+ float64x2_t p1718 = vfmaq_laneq_f64 (d->c17, z2, c1820, 0);
+ float64x2_t p1920 = vfmaq_laneq_f64 (d->c19, z2, c1820, 1);
+ float64x2_t p1720 = vfmaq_f64 (p1718, z4, p1920);
+
+ float64x2_t p916 = vfmaq_f64 (p912, z8, p1316);
+ float64x2_t p920 = vfmaq_f64 (p916, z16, p1720);
+
+ float64x2_t poly = vfmaq_f64 (p18, z16, p920);
+
+ /* y = shift + z * P(z^2). */
+ float64x2_t ret = vfmaq_f64 (shift, z, d->c0);
+ ret = vfmaq_f64 (ret, z3, poly);
+
+ if (__glibc_unlikely (v_any_u64 (special_cases)))
+ return special_case (y, x, ret, sign_xy, special_cases);
+
+ /* Account for the sign of x and y. */
+ return vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (ret), sign_xy));
+}
diff --git a/sysdeps/aarch64/fpu/atan2pi_sve.c b/sysdeps/aarch64/fpu/atan2pi_sve.c
new file mode 100644
index 0000000..f1d1f1c
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atan2pi_sve.c
@@ -0,0 +1,159 @@
+/* Double-Precision vector (SVE) inverse tan2pi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "math_config.h"
+#include "sv_math.h"
+
+static const struct data
+{
+ float64_t c2, c4, c6, c8, c10, c12, c14, c16, c18, c20;
+ float64_t c0, c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+ float64_t shift_val;
+} data = {
+ /* Coefficients of polnomial P such that atan(x)~x+x*P(x^2) on
+ [2^-1022, 1.0]. */
+ .c0 = 0x1.45f306dc9c883p-2, .c1 = -0x1.b2995e7b7ba4ap-4,
+ .c2 = 0x1.04c26be3d2c1p-4, .c3 = -0x1.7483759c17ea1p-5,
+ .c4 = 0x1.21bb95c315d57p-5, .c5 = -0x1.da1bdc3d453f3p-6,
+ .c6 = 0x1.912d20459b4bfp-6, .c7 = -0x1.5bbd4545cad1fp-6,
+ .c8 = 0x1.331b83bec30a1p-6, .c9 = -0x1.13d6457f44de3p-6,
+ .c10 = 0x1.f8e802974db94p-7, .c11 = -0x1.d7e173ab04a1ap-7,
+ .c12 = 0x1.bdfa47d6a4f28p-7, .c13 = -0x1.9ba78f3232ceep-7,
+ .c14 = 0x1.5e6044590ab4fp-7, .c15 = -0x1.01ccfdeb9f77fp-7,
+ .c16 = 0x1.345cf0d4eb1c1p-8, .c17 = -0x1.19e5f00f67e3ap-9,
+ .c18 = 0x1.6d3035ac7625bp-11, .c19 = -0x1.286bb9ae4ed79p-13,
+ .c20 = 0x1.c37ec36da0e1ap-17, .shift_val = 0.5,
+};
+
+#define OneOverPi sv_f64 (0x1.45f306dc9c883p-2)
+
+/* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */
+static svfloat64_t NOINLINE
+special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,
+ const svbool_t cmp)
+{
+ ret = sv_call2_f64 (atan2, y, x, ret, cmp);
+ return svmul_f64_m (cmp, ret, OneOverPi);
+}
+
+/* Returns a predicate indicating true if the input is the bit representation
+ of 0, infinity or nan. */
+static inline svbool_t
+zeroinfnan (svuint64_t i, const svbool_t pg)
+{
+ return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),
+ sv_u64 (2 * asuint64 (INFINITY) - 1));
+}
+
+/* Fast implementation of SVE atan2pi.
+ Maximum observed error is 3.11 ulps:
+ _ZGVsMxvv_atan2pi (0x1.ef284a877f6b5p+6, 0x1.03fdde8242b17p+7)
+ got 0x1.f00f800163079p-3 want 0x1.f00f800163076p-3. */
+svfloat64_t SV_NAME_D2 (atan2pi) (svfloat64_t y, svfloat64_t x,
+ const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b64 ();
+
+ svuint64_t ix = svreinterpret_u64 (x);
+ svuint64_t iy = svreinterpret_u64 (y);
+
+ svbool_t cmp_x = zeroinfnan (ix, pg);
+ svbool_t cmp_y = zeroinfnan (iy, pg);
+ svbool_t cmp_xy = svorr_z (pg, cmp_x, cmp_y);
+
+ svfloat64_t ax = svabs_x (pg, x);
+ svfloat64_t ay = svabs_x (pg, y);
+ svuint64_t iax = svreinterpret_u64 (ax);
+ svuint64_t iay = svreinterpret_u64 (ay);
+
+ svuint64_t sign_x = sveor_x (pg, ix, iax);
+ svuint64_t sign_y = sveor_x (pg, iy, iay);
+ svuint64_t sign_xy = sveor_x (pg, sign_x, sign_y);
+
+ svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
+
+ /* Set up z for evaluation of atanpi. */
+ svfloat64_t num = svsel (pred_aygtax, svneg_x (pg, ax), ay);
+ svfloat64_t den = svsel (pred_aygtax, ay, ax);
+ svfloat64_t z = svdiv_x (pg, num, den);
+
+ /* Work out the correct shift for atan2pi:
+ -1.0 when x < 0 and ax < ay
+ -0.5 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ 0.5 when x >= 0 and ax > ay. */
+ svfloat64_t shift = svreinterpret_f64 (svlsr_x (pg, sign_x, 1));
+ shift = svmul_x (ptrue, shift, sv_f64 (d->shift_val));
+ shift = svsel (pred_aygtax, sv_f64 (d->shift_val), shift);
+ shift = svreinterpret_f64 (svorr_x (pg, sign_x, svreinterpret_u64 (shift)));
+
+ /* Use split Estrin scheme for P(z^2) with deg(P)=19. */
+ svfloat64_t z2 = svmul_x (pg, z, z);
+ svfloat64_t z3 = svmul_x (pg, z2, z);
+ svfloat64_t z4 = svmul_x (pg, z2, z2);
+ svfloat64_t z8 = svmul_x (pg, z4, z4);
+ svfloat64_t z16 = svmul_x (pg, z8, z8);
+
+ /* Order-7 Estrin. */
+ svfloat64_t c24 = svld1rq (ptrue, &d->c2);
+ svfloat64_t c68 = svld1rq (ptrue, &d->c6);
+
+ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), z2, c24, 0);
+ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), z2, c24, 1);
+ svfloat64_t p56 = svmla_lane (sv_f64 (d->c5), z2, c68, 0);
+ svfloat64_t p78 = svmla_lane (sv_f64 (d->c7), z2, c68, 1);
+
+ svfloat64_t p14 = svmla_x (pg, p12, z4, p34);
+ svfloat64_t p58 = svmla_x (pg, p56, z4, p78);
+ svfloat64_t p18 = svmla_x (pg, p14, z8, p58);
+
+ /* Order-11 Estrin. */
+ svfloat64_t c1012 = svld1rq (ptrue, &d->c10);
+ svfloat64_t c1416 = svld1rq (ptrue, &d->c14);
+ svfloat64_t c1820 = svld1rq (ptrue, &d->c18);
+
+ svfloat64_t p910 = svmla_lane (sv_f64 (d->c9), z2, c1012, 0);
+ svfloat64_t p1112 = svmla_lane (sv_f64 (d->c11), z2, c1012, 1);
+ svfloat64_t p912 = svmla_x (pg, p910, z4, p1112);
+
+ svfloat64_t p1314 = svmla_lane (sv_f64 (d->c13), z2, c1416, 0);
+ svfloat64_t p1516 = svmla_lane (sv_f64 (d->c15), z2, c1416, 1);
+ svfloat64_t p1316 = svmla_x (pg, p1314, z4, p1516);
+
+ svfloat64_t p1718 = svmla_lane (sv_f64 (d->c17), z2, c1820, 0);
+ svfloat64_t p1920 = svmla_lane (sv_f64 (d->c19), z2, c1820, 1);
+ svfloat64_t p1720 = svmla_x (pg, p1718, z4, p1920);
+
+ svfloat64_t p916 = svmla_x (pg, p912, z8, p1316);
+ svfloat64_t p920 = svmla_x (pg, p916, z16, p1720);
+
+ svfloat64_t poly = svmla_x (pg, p18, z16, p920);
+
+ svfloat64_t ret = svmla_x (pg, shift, z, sv_f64 (d->c0));
+ ret = svmla_x (pg, ret, z3, poly);
+
+ /* Account for the sign of x and y. */
+ if (__glibc_unlikely (svptest_any (pg, cmp_xy)))
+ return special_case (
+ y, x,
+ svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (ret), sign_xy)),
+ cmp_xy);
+ return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (ret), sign_xy));
+}
diff --git a/sysdeps/aarch64/fpu/atan2pif_advsimd.c b/sysdeps/aarch64/fpu/atan2pif_advsimd.c
new file mode 100644
index 0000000..f1f542b
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atan2pif_advsimd.c
@@ -0,0 +1,138 @@
+/* Single-Precision vector (Advanced SIMD) inverse tan2pi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ float32x4_t c1, c3, c5, c7;
+ float c2, c4, c6, c8;
+ float32x4_t c0;
+ uint32x4_t comp_const;
+} data = {
+ /* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
+ [2^-128, 1.0].
+ Generated using fpminimax between FLT_MIN and 1. */
+ .c0 = V4 (0x1.45f306p-2), .c1 = V4 (-0x1.b2975ep-4),
+ .c2 = 0x1.0490e4p-4, .c3 = V4 (-0x1.70c272p-5),
+ .c4 = 0x1.0eef52p-5, .c5 = V4 (-0x1.6abbbap-6),
+ .c6 = 0x1.78157p-7, .c7 = V4 (-0x1.f0b406p-9),
+ .c8 = 0x1.2ae7fep-11, .comp_const = V4 (2 * 0x7f800000lu - 1),
+};
+
+#define SignMask v_u32 (0x80000000)
+#define OneOverPi v_f32 (0x1.45f307p-2)
+
+/* Special cases i.e. 0, infinity and nan (fall back to scalar calls). */
+static float32x4_t VPCS_ATTR NOINLINE
+special_case (float32x4_t y, float32x4_t x, float32x4_t ret,
+ uint32x4_t sign_xy, uint32x4_t cmp)
+{
+ /* Account for the sign of y. */
+ ret = vreinterpretq_f32_u32 (
+ veorq_u32 (vreinterpretq_u32_f32 (ret), sign_xy));
+
+ /* Since we have no scalar fallback for atan2pif,
+ we can instead make a call to atan2f and divide by pi. */
+ ret = v_call2_f32 (atan2f, y, x, ret, cmp);
+
+ /* Only divide the special cases by pi, and leave the rest unchanged. */
+ return vbslq_f32 (cmp, vmulq_f32 (ret, OneOverPi), ret);
+}
+
+/* Returns 1 if input is the bit representation of 0, infinity or nan. */
+static inline uint32x4_t
+zeroinfnan (uint32x4_t i, const struct data *d)
+{
+ /* 2 * i - 1 >= 2 * 0x7f800000lu - 1. */
+ return vcgeq_u32 (vsubq_u32 (vshlq_n_u32 (i, 1), v_u32 (1)), d->comp_const);
+}
+
+/* Fast implementation of vector atan2f. Maximum observed error is 2.89 ULP:
+ _ZGVnN4vv_atan2pif (0x1.bd397p+54, 0x1.e79a4ap+54) got 0x1.e2678ep-3
+ want 0x1.e26794p-3. */
+float32x4_t VPCS_ATTR NOINLINE V_NAME_F2 (atan2pi) (float32x4_t y,
+ float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint32x4_t ix = vreinterpretq_u32_f32 (x);
+ uint32x4_t iy = vreinterpretq_u32_f32 (y);
+
+ uint32x4_t special_cases
+ = vorrq_u32 (zeroinfnan (ix, d), zeroinfnan (iy, d));
+
+ uint32x4_t sign_x = vandq_u32 (ix, SignMask);
+ uint32x4_t sign_y = vandq_u32 (iy, SignMask);
+ uint32x4_t sign_xy = veorq_u32 (sign_x, sign_y);
+
+ float32x4_t ax = vabsq_f32 (x);
+ float32x4_t ay = vabsq_f32 (y);
+
+ uint32x4_t pred_xlt0 = vcltzq_f32 (x);
+ uint32x4_t pred_aygtax = vcgtq_f32 (ay, ax);
+
+ /* Set up z for evaluation of atanpif. */
+ float32x4_t num = vbslq_f32 (pred_aygtax, vnegq_f32 (ax), ay);
+ float32x4_t den = vbslq_f32 (pred_aygtax, ay, ax);
+ float32x4_t z = vdivq_f32 (num, den);
+
+ /* Work out the correct shift for atan2pi:
+ -1.0 when x < 0 and ax < ay
+ -0.5 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ 0.5 when x >= 0 and ax > ay. */
+ float32x4_t shift = vreinterpretq_f32_u32 (
+ vandq_u32 (pred_xlt0, vreinterpretq_u32_f32 (v_f32 (-1.0f))));
+ float32x4_t shift2 = vreinterpretq_f32_u32 (
+ vandq_u32 (pred_aygtax, vreinterpretq_u32_f32 (v_f32 (0.5f))));
+ shift = vaddq_f32 (shift, shift2);
+
+ /* Calculate the polynomial approximation. */
+ float32x4_t z2 = vmulq_f32 (z, z);
+ float32x4_t z3 = vmulq_f32 (z2, z);
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t z8 = vmulq_f32 (z4, z4);
+
+ float32x4_t c2468 = vld1q_f32 (&d->c2);
+
+ float32x4_t p12 = vfmaq_laneq_f32 (d->c1, z2, c2468, 0);
+ float32x4_t p34 = vfmaq_laneq_f32 (d->c3, z2, c2468, 1);
+ float32x4_t p56 = vfmaq_laneq_f32 (d->c5, z2, c2468, 2);
+ float32x4_t p78 = vfmaq_laneq_f32 (d->c7, z2, c2468, 3);
+ float32x4_t p14 = vfmaq_f32 (p12, z4, p34);
+ float32x4_t p58 = vfmaq_f32 (p56, z4, p78);
+
+ float32x4_t poly = vfmaq_f32 (p14, z8, p58);
+
+ /* y = shift + z * P(z^2). */
+ float32x4_t ret = vfmaq_f32 (shift, z, d->c0);
+ ret = vfmaq_f32 (ret, z3, poly);
+
+ if (__glibc_unlikely (v_any_u32 (special_cases)))
+ {
+ return special_case (y, x, ret, sign_xy, special_cases);
+ }
+
+ /* Account for the sign of y. */
+ return vreinterpretq_f32_u32 (
+ veorq_u32 (vreinterpretq_u32_f32 (ret), sign_xy));
+}
+libmvec_hidden_def (V_NAME_F2 (atan2pi))
+HALF_WIDTH_ALIAS_F2 (atan2pi)
diff --git a/sysdeps/aarch64/fpu/atan2pif_sve.c b/sysdeps/aarch64/fpu/atan2pif_sve.c
new file mode 100644
index 0000000..d5ac4b7
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atan2pif_sve.c
@@ -0,0 +1,137 @@
+/* Single-Precision vector (SVE) inverse tan2pi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float32_t c0, c1, c3, c5, c7;
+ float32_t c2, c4, c6, c8;
+ float32_t shift_val;
+ uint32_t comp_const;
+} data = {
+ /* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
+ [2**-128, 1.0]. */
+ .c0 = 0x1.45f306p-2,
+ .c1 = -0x1.b2975ep-4,
+ .c2 = 0x1.0490e4p-4,
+ .c3 = -0x1.70c272p-5,
+ .c4 = 0x1.0eef52p-5,
+ .c5 = -0x1.6abbbap-6,
+ .c6 = 0x1.78157p-7,
+ .c7 = -0x1.f0b406p-9,
+ .c8 = 0x1.2ae7fep-11,
+ .shift_val = 0.5f,
+ .comp_const = 2 * 0x7f800000lu - 1,
+};
+
+#define OneOverPi sv_f32 (0x1.45f307p-2)
+
+/* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */
+static svfloat32_t NOINLINE
+special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,
+ const svbool_t cmp)
+{
+ ret = sv_call2_f32 (atan2f, y, x, ret, cmp);
+ return svmul_f32_x (cmp, ret, OneOverPi);
+}
+
+/* Returns a predicate indicating true if the input is the bit representation
+ of 0, infinity or nan. */
+static inline svbool_t
+zeroinfnan (svuint32_t i, const svbool_t pg, const struct data *d)
+{
+ return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),
+ sv_u32 (d->comp_const));
+}
+
+/* Fast implementation of SVE atan2pif based on atan(x) ~ shift + z + z^3 *
+ P(z^2) with reduction to [0,1] using z=1/x and shift = 1/2. Maximum
+ observed error is 2.90 ULP:
+ _ZGVsMxvv_atan2pif (0x1.a28542p+5, 0x1.adb7c6p+5) got 0x1.f76524p-3
+ want 0x1.f7651ep-3. */
+svfloat32_t SV_NAME_F2 (atan2pi) (svfloat32_t y, svfloat32_t x,
+ const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b32 ();
+
+ svuint32_t ix = svreinterpret_u32 (x);
+ svuint32_t iy = svreinterpret_u32 (y);
+
+ svbool_t cmp_x = zeroinfnan (ix, pg, d);
+ svbool_t cmp_y = zeroinfnan (iy, pg, d);
+ svbool_t cmp_xy = svorr_z (pg, cmp_x, cmp_y);
+
+ svfloat32_t ax = svabs_x (pg, x);
+ svfloat32_t ay = svabs_x (pg, y);
+ svuint32_t iax = svreinterpret_u32 (ax);
+ svuint32_t iay = svreinterpret_u32 (ay);
+
+ svuint32_t sign_x = sveor_x (pg, ix, iax);
+ svuint32_t sign_y = sveor_x (pg, iy, iay);
+ svuint32_t sign_xy = sveor_x (pg, sign_x, sign_y);
+
+ svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
+
+ /* Set up z for evaluation of atanpif. */
+ svfloat32_t num = svsel (pred_aygtax, svneg_x (pg, ax), ay);
+ svfloat32_t den = svsel (pred_aygtax, ay, ax);
+ svfloat32_t z = svdiv_x (ptrue, num, den);
+
+ /* Work out the correct shift for atan2pi:
+ -1.0 when x < 0 and ax < ay
+ -0.5 when x < 0 and ax > ay
+ 0 when x >= 0 and ax < ay
+ 0.5 when x >= 0 and ax > ay. */
+ svfloat32_t shift = svreinterpret_f32 (svlsr_x (pg, sign_x, 1));
+ shift = svmul_x (ptrue, shift, sv_f32 (d->shift_val));
+ shift = svsel (pred_aygtax, sv_f32 (d->shift_val), shift);
+ shift = svreinterpret_f32 (svorr_x (pg, sign_x, svreinterpret_u32 (shift)));
+
+ /* Use pure Estrin scheme for P(z^2) with deg(P)=7. */
+ svfloat32_t z2 = svmul_x (pg, z, z);
+ svfloat32_t z4 = svmul_x (pg, z2, z2);
+ svfloat32_t z8 = svmul_x (pg, z4, z4);
+
+ svfloat32_t even_coeffs = svld1rq (ptrue, &d->c2);
+
+ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), z2, even_coeffs, 0);
+ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), z2, even_coeffs, 1);
+ svfloat32_t p56 = svmla_lane (sv_f32 (d->c5), z2, even_coeffs, 2);
+ svfloat32_t p78 = svmla_lane (sv_f32 (d->c7), z2, even_coeffs, 3);
+
+ svfloat32_t p14 = svmad_x (pg, z4, p34, p12);
+ svfloat32_t p58 = svmad_x (pg, z4, p78, p56);
+
+ svfloat32_t p18 = svmad_x (pg, z8, p58, p14);
+
+ /* ret = shift + z + z^3 * P(z^2). */
+ svfloat32_t poly = svmad_x (pg, z2, p18, d->c0);
+ svfloat32_t ret = svmad_x (pg, poly, z, shift);
+
+ if (__glibc_unlikely (svptest_any (pg, cmp_xy)))
+ return special_case (
+ y, x,
+ svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (ret), sign_xy)),
+ cmp_xy);
+
+ /* Account for the sign of x and y. */
+ return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (ret), sign_xy));
+}
diff --git a/sysdeps/aarch64/fpu/atan_advsimd.c b/sysdeps/aarch64/fpu/atan_advsimd.c
index a962be0..da0d371 100644
--- a/sysdeps/aarch64/fpu/atan_advsimd.c
+++ b/sysdeps/aarch64/fpu/atan_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD inverse tan
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,25 +18,25 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
static const struct data
{
+ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c18;
float64x2_t pi_over_2;
- float64x2_t poly[20];
+ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-1022, 1.0]. */
- .poly = { V2 (-0x1.5555555555555p-2), V2 (0x1.99999999996c1p-3),
- V2 (-0x1.2492492478f88p-3), V2 (0x1.c71c71bc3951cp-4),
- V2 (-0x1.745d160a7e368p-4), V2 (0x1.3b139b6a88ba1p-4),
- V2 (-0x1.11100ee084227p-4), V2 (0x1.e1d0f9696f63bp-5),
- V2 (-0x1.aebfe7b418581p-5), V2 (0x1.842dbe9b0d916p-5),
- V2 (-0x1.5d30140ae5e99p-5), V2 (0x1.338e31eb2fbbcp-5),
- V2 (-0x1.00e6eece7de8p-5), V2 (0x1.860897b29e5efp-6),
- V2 (-0x1.0051381722a59p-6), V2 (0x1.14e9dc19a4a4ep-7),
- V2 (-0x1.d0062b42fe3bfp-9), V2 (0x1.17739e210171ap-10),
- V2 (-0x1.ab24da7be7402p-13), V2 (0x1.358851160a528p-16), },
+ .c0 = V2 (-0x1.555555555552ap-2), .c1 = 0x1.9999999995aebp-3,
+ .c2 = V2 (-0x1.24924923923f6p-3), .c3 = 0x1.c71c7184288a2p-4,
+ .c4 = V2 (-0x1.745d11fb3d32bp-4), .c5 = 0x1.3b136a18051b9p-4,
+ .c6 = V2 (-0x1.110e6d985f496p-4), .c7 = 0x1.e1bcf7f08801dp-5,
+ .c8 = V2 (-0x1.ae644e28058c3p-5), .c9 = 0x1.82eeb1fed85c6p-5,
+ .c10 = V2 (-0x1.59d7f901566cbp-5), .c11 = 0x1.2c982855ab069p-5,
+ .c12 = V2 (-0x1.eb49592998177p-6), .c13 = 0x1.69d8b396e3d38p-6,
+ .c14 = V2 (-0x1.ca980345c4204p-7), .c15 = 0x1.dc050eafde0b3p-8,
+ .c16 = V2 (-0x1.7ea70755b8eccp-9), .c17 = 0x1.ba3da3de903e8p-11,
+ .c18 = V2 (-0x1.44a4b059b6f67p-13), .c19 = 0x1.c4a45029e5a91p-17,
.pi_over_2 = V2 (0x1.921fb54442d18p+0),
};
@@ -46,12 +46,17 @@ static const struct data
/* Fast implementation of vector atan.
Based on atan(x) ~ shift + z + z^3 * P(z^2) with reduction to [0,1] using
- z=1/x and shift = pi/2. Maximum observed error is 2.27 ulps:
- _ZGVnN2v_atan (0x1.0005af27c23e9p+0) got 0x1.9225645bdd7c1p-1
- want 0x1.9225645bdd7c3p-1. */
+ z=1/x and shift = pi/2. Maximum observed error is 2.45 ulps:
+ _ZGVnN2v_atan (0x1.0008d737eb3e6p+0) got 0x1.92288c551a4c1p-1
+ want 0x1.92288c551a4c3p-1. */
float64x2_t VPCS_ATTR V_NAME_D1 (atan) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+ float64x2_t c1315 = vld1q_f64 (&d->c13);
+ float64x2_t c1719 = vld1q_f64 (&d->c17);
/* Small cases, infs and nans are supported by our approximation technique,
but do not set fenv flags correctly. Only trigger special case if we need
@@ -72,33 +77,53 @@ float64x2_t VPCS_ATTR V_NAME_D1 (atan) (float64x2_t x)
y := arctan(x) for x < 1
y := pi/2 + arctan(-1/x) for x > 1
Hence, use z=-1/a if x>=1, otherwise z=a. */
- uint64x2_t red = vcagtq_f64 (x, v_f64 (1.0));
+ uint64x2_t red = vcagtq_f64 (x, v_f64 (-1.0));
/* Avoid dependency in abs(x) in division (and comparison). */
- float64x2_t z = vbslq_f64 (red, vdivq_f64 (v_f64 (1.0), x), x);
+ float64x2_t z = vbslq_f64 (red, vdivq_f64 (v_f64 (-1.0), x), x);
+
float64x2_t shift = vreinterpretq_f64_u64 (
vandq_u64 (red, vreinterpretq_u64_f64 (d->pi_over_2)));
- /* Use absolute value only when needed (odd powers of z). */
- float64x2_t az = vbslq_f64 (
- SignMask, vreinterpretq_f64_u64 (vandq_u64 (SignMask, red)), z);
-
- /* Calculate the polynomial approximation.
- Use split Estrin scheme for P(z^2) with deg(P)=19. Use split instead of
- full scheme to avoid underflow in x^16.
- The order 19 polynomial P approximates
- (atan(sqrt(x))-sqrt(x))/x^(3/2). */
+
+ /* Reinsert sign bit from argument into the shift value. */
+ shift = vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (shift), sign));
+
+ /* Calculate polynomial approximation P(z^2) with deg(P)=19. */
float64x2_t z2 = vmulq_f64 (z, z);
- float64x2_t x2 = vmulq_f64 (z2, z2);
- float64x2_t x4 = vmulq_f64 (x2, x2);
- float64x2_t x8 = vmulq_f64 (x4, x4);
- float64x2_t y
- = vfmaq_f64 (v_estrin_7_f64 (z2, x2, x4, d->poly),
- v_estrin_11_f64 (z2, x2, x4, x8, d->poly + 8), x8);
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+ float64x2_t z16 = vmulq_f64 (z8, z8);
- /* Finalize. y = shift + z + z^3 * P(z^2). */
- y = vfmaq_f64 (az, y, vmulq_f64 (z2, az));
- y = vaddq_f64 (y, shift);
+ /* Order-7 Estrin. */
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, z2, c13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, z2, c13, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, z4, p23);
+
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, z2, c57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, z2, c57, 1);
+ float64x2_t p47 = vfmaq_f64 (p45, z4, p67);
+
+ float64x2_t p07 = vfmaq_f64 (p03, z8, p47);
- /* y = atan(x) if x>0, -atan(-x) otherwise. */
- y = vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), sign));
- return y;
+ /* Order-11 Estrin. */
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, z2, c911, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, z2, c911, 1);
+ float64x2_t p811 = vfmaq_f64 (p89, z4, p1011);
+
+ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, z2, c1315, 0);
+ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, z2, c1315, 1);
+ float64x2_t p1215 = vfmaq_f64 (p1213, z4, p1415);
+
+ float64x2_t p1617 = vfmaq_laneq_f64 (d->c16, z2, c1719, 0);
+ float64x2_t p1819 = vfmaq_laneq_f64 (d->c18, z2, c1719, 1);
+ float64x2_t p1619 = vfmaq_f64 (p1617, z4, p1819);
+
+ float64x2_t p815 = vfmaq_f64 (p811, z8, p1215);
+ float64x2_t p819 = vfmaq_f64 (p815, z16, p1619);
+
+ float64x2_t y = vfmaq_f64 (p07, p819, z16);
+
+ /* Finalize. y = shift + z + z^3 * P(z^2). */
+ y = vfmsq_f64 (v_f64 (-1.0), z2, y);
+ return vfmsq_f64 (shift, z, y);
}
diff --git a/sysdeps/aarch64/fpu/atan_sve.c b/sysdeps/aarch64/fpu/atan_sve.c
index fa16303..a6b0489 100644
--- a/sysdeps/aarch64/fpu/atan_sve.c
+++ b/sysdeps/aarch64/fpu/atan_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE inverse tan
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,23 +18,26 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[20];
- float64_t pi_over_2;
+ float64_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c18;
+ float64_t c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+ float64_t shift_val, neg_one;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-1022, 1.0]. */
- .poly = { -0x1.5555555555555p-2, 0x1.99999999996c1p-3, -0x1.2492492478f88p-3,
- 0x1.c71c71bc3951cp-4, -0x1.745d160a7e368p-4, 0x1.3b139b6a88ba1p-4,
- -0x1.11100ee084227p-4, 0x1.e1d0f9696f63bp-5, -0x1.aebfe7b418581p-5,
- 0x1.842dbe9b0d916p-5, -0x1.5d30140ae5e99p-5, 0x1.338e31eb2fbbcp-5,
- -0x1.00e6eece7de8p-5, 0x1.860897b29e5efp-6, -0x1.0051381722a59p-6,
- 0x1.14e9dc19a4a4ep-7, -0x1.d0062b42fe3bfp-9, 0x1.17739e210171ap-10,
- -0x1.ab24da7be7402p-13, 0x1.358851160a528p-16, },
- .pi_over_2 = 0x1.921fb54442d18p+0,
+ .c0 = -0x1.555555555552ap-2, .c1 = 0x1.9999999995aebp-3,
+ .c2 = -0x1.24924923923f6p-3, .c3 = 0x1.c71c7184288a2p-4,
+ .c4 = -0x1.745d11fb3d32bp-4, .c5 = 0x1.3b136a18051b9p-4,
+ .c6 = -0x1.110e6d985f496p-4, .c7 = 0x1.e1bcf7f08801dp-5,
+ .c8 = -0x1.ae644e28058c3p-5, .c9 = 0x1.82eeb1fed85c6p-5,
+ .c10 = -0x1.59d7f901566cbp-5, .c11 = 0x1.2c982855ab069p-5,
+ .c12 = -0x1.eb49592998177p-6, .c13 = 0x1.69d8b396e3d38p-6,
+ .c14 = -0x1.ca980345c4204p-7, .c15 = 0x1.dc050eafde0b3p-8,
+ .c16 = -0x1.7ea70755b8eccp-9, .c17 = 0x1.ba3da3de903e8p-11,
+ .c18 = -0x1.44a4b059b6f67p-13, .c19 = 0x1.c4a45029e5a91p-17,
+ .shift_val = 0x1.490fdaa22168cp+1, .neg_one = -1,
};
/* Useful constants. */
@@ -43,15 +46,14 @@ static const struct data
/* Fast implementation of SVE atan.
Based on atan(x) ~ shift + z + z^3 * P(z^2) with reduction to [0,1] using
z=1/x and shift = pi/2. Largest errors are close to 1. The maximum observed
- error is 2.27 ulps:
- _ZGVsMxv_atan (0x1.0005af27c23e9p+0) got 0x1.9225645bdd7c1p-1
- want 0x1.9225645bdd7c3p-1. */
+ error is 2.08 ulps:
+ _ZGVsMxv_atan (0x1.000a7c56975e8p+0) got 0x1.922a3163e15c2p-1
+ want 0x1.922a3163e15c4p-1. */
svfloat64_t SV_NAME_D1 (atan) (svfloat64_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- /* No need to trigger special case. Small cases, infs and nans
- are supported by our approximation technique. */
+ svbool_t ptrue = svptrue_b64 ();
svuint64_t ix = svreinterpret_u64 (x);
svuint64_t sign = svand_x (pg, ix, SignMask);
@@ -59,32 +61,60 @@ svfloat64_t SV_NAME_D1 (atan) (svfloat64_t x, const svbool_t pg)
y := arctan(x) for x < 1
y := pi/2 + arctan(-1/x) for x > 1
Hence, use z=-1/a if x>=1, otherwise z=a. */
- svbool_t red = svacgt (pg, x, 1.0);
- /* Avoid dependency in abs(x) in division (and comparison). */
- svfloat64_t z = svsel (red, svdivr_x (pg, x, 1.0), x);
- /* Use absolute value only when needed (odd powers of z). */
- svfloat64_t az = svabs_x (pg, z);
- az = svneg_m (az, red, az);
+ svbool_t red = svacgt (pg, x, d->neg_one);
+ svfloat64_t z = svsel (red, svdiv_x (pg, sv_f64 (d->neg_one), x), x);
+
+ /* Reuse of -1.0f to reduce constant loads,
+ We need a shift value of 1/2, which is created via -1 + (1 + 1/2). */
+ svfloat64_t shift
+ = svadd_z (red, sv_f64 (d->neg_one), sv_f64 (d->shift_val));
+
+ /* Reinserts the sign bit of the argument to handle the case of x < -1. */
+ shift = svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (shift), sign));
/* Use split Estrin scheme for P(z^2) with deg(P)=19. */
- svfloat64_t z2 = svmul_x (pg, z, z);
- svfloat64_t x2 = svmul_x (pg, z2, z2);
- svfloat64_t x4 = svmul_x (pg, x2, x2);
- svfloat64_t x8 = svmul_x (pg, x4, x4);
+ svfloat64_t z2 = svmul_x (ptrue, z, z);
+ svfloat64_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat64_t z8 = svmul_x (ptrue, z4, z4);
+ svfloat64_t z16 = svmul_x (ptrue, z8, z8);
- svfloat64_t y
- = svmla_x (pg, sv_estrin_7_f64_x (pg, z2, x2, x4, d->poly),
- sv_estrin_11_f64_x (pg, z2, x2, x4, x8, d->poly + 8), x8);
+ /* Order-7 Estrin. */
+ svfloat64_t c13 = svld1rq (ptrue, &d->c1);
+ svfloat64_t c57 = svld1rq (ptrue, &d->c5);
- /* y = shift + z + z^3 * P(z^2). */
- svfloat64_t z3 = svmul_x (pg, z2, az);
- y = svmla_x (pg, az, z3, y);
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), z2, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), z2, c13, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), z2, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), z2, c57, 1);
+
+ svfloat64_t p03 = svmla_x (pg, p01, z4, p23);
+ svfloat64_t p47 = svmla_x (pg, p45, z4, p67);
+ svfloat64_t p07 = svmla_x (pg, p03, z8, p47);
+
+ /* Order-11 Estrin. */
+ svfloat64_t c911 = svld1rq (ptrue, &d->c9);
+ svfloat64_t c1315 = svld1rq (ptrue, &d->c13);
+ svfloat64_t c1719 = svld1rq (ptrue, &d->c17);
- /* Apply shift as indicated by `red` predicate. */
- y = svadd_m (red, y, d->pi_over_2);
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), z2, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), z2, c911, 1);
+ svfloat64_t p811 = svmla_x (pg, p89, z4, p1011);
- /* y = atan(x) if x>0, -atan(-x) otherwise. */
- y = svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign));
+ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), z2, c1315, 0);
+ svfloat64_t p1415 = svmla_lane (sv_f64 (d->c14), z2, c1315, 1);
+ svfloat64_t p1215 = svmla_x (pg, p1213, z4, p1415);
- return y;
+ svfloat64_t p1617 = svmla_lane (sv_f64 (d->c16), z2, c1719, 0);
+ svfloat64_t p1819 = svmla_lane (sv_f64 (d->c18), z2, c1719, 1);
+ svfloat64_t p1619 = svmla_x (pg, p1617, z4, p1819);
+
+ svfloat64_t p815 = svmla_x (pg, p811, z8, p1215);
+ svfloat64_t p819 = svmla_x (pg, p815, z16, p1619);
+
+ svfloat64_t y = svmla_x (pg, p07, z16, p819);
+
+ /* y = shift + z + z^3 * P(z^2). */
+ shift = svadd_m (red, z, shift);
+ y = svmul_x (pg, z2, y);
+ return svmla_x (pg, shift, z, y);
}
diff --git a/sysdeps/aarch64/fpu/atanf_advsimd.c b/sysdeps/aarch64/fpu/atanf_advsimd.c
index d015cc7..817a47e 100644
--- a/sysdeps/aarch64/fpu/atanf_advsimd.c
+++ b/sysdeps/aarch64/fpu/atanf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD inverse tan
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,26 +22,35 @@
static const struct data
{
+ uint32x4_t sign_mask, pi_over_2;
+ float32x4_t neg_one;
+#if WANT_SIMD_EXCEPT
float32x4_t poly[8];
- float32x4_t pi_over_2;
+} data = {
+ .poly = { V4 (-0x1.5554dcp-2), V4 (0x1.9978ecp-3), V4 (-0x1.230a94p-3),
+ V4 (0x1.b4debp-4), V4 (-0x1.3550dap-4), V4 (0x1.61eebp-5),
+ V4 (-0x1.0c17d4p-6), V4 (0x1.7ea694p-9) },
+#else
+ float32x4_t c0, c2, c4, c6;
+ float c1, c3, c5, c7;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-128, 1.0].
Generated using fpminimax between FLT_MIN and 1. */
- .poly = { V4 (-0x1.55555p-2f), V4 (0x1.99935ep-3f), V4 (-0x1.24051ep-3f),
- V4 (0x1.bd7368p-4f), V4 (-0x1.491f0ep-4f), V4 (0x1.93a2c0p-5f),
- V4 (-0x1.4c3c60p-6f), V4 (0x1.01fd88p-8f) },
- .pi_over_2 = V4 (0x1.921fb6p+0f),
+ .c0 = V4 (-0x1.5554dcp-2), .c1 = 0x1.9978ecp-3,
+ .c2 = V4 (-0x1.230a94p-3), .c3 = 0x1.b4debp-4,
+ .c4 = V4 (-0x1.3550dap-4), .c5 = 0x1.61eebp-5,
+ .c6 = V4 (-0x1.0c17d4p-6), .c7 = 0x1.7ea694p-9,
+#endif
+ .pi_over_2 = V4 (0x3fc90fdb),
+ .neg_one = V4 (-1.0f),
+ .sign_mask = V4 (0x80000000),
};
-#define SignMask v_u32 (0x80000000)
-
-#define P(i) d->poly[i]
-
+#if WANT_SIMD_EXCEPT
#define TinyBound 0x30800000 /* asuint(0x1p-30). */
#define BigBound 0x4e800000 /* asuint(0x1p30). */
-#if WANT_SIMD_EXCEPT
static float32x4_t VPCS_ATTR NOINLINE
special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
{
@@ -51,19 +60,20 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
/* Fast implementation of vector atanf based on
atan(x) ~ shift + z + z^3 * P(z^2) with reduction to [0,1]
- using z=-1/x and shift = pi/2. Maximum observed error is 2.9ulps:
- _ZGVnN4v_atanf (0x1.0468f6p+0) got 0x1.967f06p-1 want 0x1.967fp-1. */
+ using z=-1/x and shift = pi/2. Maximum observed error is 2.02 ulps:
+ _ZGVnN4v_atanf (0x1.03d4cep+0) got 0x1.95ed3ap-1
+ want 0x1.95ed36p-1. */
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (atan) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- /* Small cases, infs and nans are supported by our approximation technique,
- but do not set fenv flags correctly. Only trigger special case if we need
- fenv. */
uint32x4_t ix = vreinterpretq_u32_f32 (x);
- uint32x4_t sign = vandq_u32 (ix, SignMask);
+ uint32x4_t sign = vandq_u32 (ix, d->sign_mask);
#if WANT_SIMD_EXCEPT
+ /* Small cases, infs and nans are supported by our approximation technique,
+ but do not set fenv flags correctly. Only trigger special case if we need
+ fenv. */
uint32x4_t ia = vandq_u32 (ix, v_u32 (0x7ff00000));
uint32x4_t special = vcgtq_u32 (vsubq_u32 (ia, v_u32 (TinyBound)),
v_u32 (BigBound - TinyBound));
@@ -71,41 +81,52 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (atan) (float32x4_t x)
if (__glibc_unlikely (v_any_u32 (special)))
return special_case (x, x, v_u32 (-1));
#endif
-
/* Argument reduction:
- y := arctan(x) for x < 1
- y := pi/2 + arctan(-1/x) for x > 1
- Hence, use z=-1/a if x>=1, otherwise z=a. */
- uint32x4_t red = vcagtq_f32 (x, v_f32 (1.0));
- /* Avoid dependency in abs(x) in division (and comparison). */
- float32x4_t z = vbslq_f32 (red, vdivq_f32 (v_f32 (1.0f), x), x);
+ y := arctan(x) for |x| < 1
+ y := arctan(-1/x) + pi/2 for x > +1
+ y := arctan(-1/x) - pi/2 for x < -1
+ Hence, use z=-1/a if x>=|-1|, otherwise z=a. */
+ uint32x4_t red = vcagtq_f32 (x, d->neg_one);
+
+ float32x4_t z = vbslq_f32 (red, vdivq_f32 (d->neg_one, x), x);
+
+ /* Shift is calculated as +-pi/2 or 0, depending on the argument case. */
float32x4_t shift = vreinterpretq_f32_u32 (
- vandq_u32 (red, vreinterpretq_u32_f32 (d->pi_over_2)));
- /* Use absolute value only when needed (odd powers of z). */
- float32x4_t az = vbslq_f32 (
- SignMask, vreinterpretq_f32_u32 (vandq_u32 (SignMask, red)), z);
+ vandq_u32 (red, veorq_u32 (d->pi_over_2, sign)));
+
+ float32x4_t z2 = vmulq_f32 (z, z);
+ float32x4_t z3 = vmulq_f32 (z, z2);
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+#if WANT_SIMD_EXCEPT
/* Calculate the polynomial approximation.
Use 2-level Estrin scheme for P(z^2) with deg(P)=7. However,
a standard implementation using z8 creates spurious underflow
in the very last fma (when z^8 is small enough).
- Therefore, we split the last fma into a mul and an fma.
- Horner and single-level Estrin have higher errors that exceed
- threshold. */
- float32x4_t z2 = vmulq_f32 (z, z);
- float32x4_t z4 = vmulq_f32 (z2, z2);
-
+ Therefore, we split the last fma into a mul and an fma. */
float32x4_t y = vfmaq_f32 (
v_pairwise_poly_3_f32 (z2, z4, d->poly), z4,
vmulq_f32 (z4, v_pairwise_poly_3_f32 (z2, z4, d->poly + 4)));
- /* y = shift + z * P(z^2). */
- y = vaddq_f32 (vfmaq_f32 (az, y, vmulq_f32 (z2, az)), shift);
+#else
+ float32x4_t z8 = vmulq_f32 (z4, z4);
+
+ /* Uses an Estrin scheme for polynomial approximation. */
+ float32x4_t odd_coeffs = vld1q_f32 (&d->c1);
+
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, z2, odd_coeffs, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, z2, odd_coeffs, 1);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, z2, odd_coeffs, 2);
+ float32x4_t p67 = vfmaq_laneq_f32 (d->c6, z2, odd_coeffs, 3);
- /* y = atan(x) if x>0, -atan(-x) otherwise. */
- y = vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), sign));
+ float32x4_t p03 = vfmaq_f32 (p01, z4, p23);
+ float32x4_t p47 = vfmaq_f32 (p45, z4, p67);
- return y;
+ float32x4_t y = vfmaq_f32 (p03, z8, p47);
+#endif
+
+ /* y = shift + z * P(z^2). */
+ return vfmaq_f32 (vaddq_f32 (shift, z), z3, y);
}
libmvec_hidden_def (V_NAME_F1 (atan))
HALF_WIDTH_ALIAS_F1 (atan)
diff --git a/sysdeps/aarch64/fpu/atanf_sve.c b/sysdeps/aarch64/fpu/atanf_sve.c
index 7b54094..6558223 100644
--- a/sysdeps/aarch64/fpu/atanf_sve.c
+++ b/sysdeps/aarch64/fpu/atanf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE inverse tan
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,18 +18,26 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
static const struct data
{
- float32_t poly[8];
- float32_t pi_over_2;
+ float32_t c1, c3, c5, c7;
+ float32_t c0, c2, c4, c6;
+ float32_t shift_val, neg_one;
} data = {
/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
[2**-128, 1.0]. */
- .poly = { -0x1.55555p-2f, 0x1.99935ep-3f, -0x1.24051ep-3f, 0x1.bd7368p-4f,
- -0x1.491f0ep-4f, 0x1.93a2c0p-5f, -0x1.4c3c60p-6f, 0x1.01fd88p-8f },
- .pi_over_2 = 0x1.921fb6p+0f,
+ .c0 = -0x1.5554dcp-2,
+ .c1 = 0x1.9978ecp-3,
+ .c2 = -0x1.230a94p-3,
+ .c3 = 0x1.b4debp-4,
+ .c4 = -0x1.3550dap-4,
+ .c5 = 0x1.61eebp-5,
+ .c6 = -0x1.0c17d4p-6,
+ .c7 = 0x1.7ea694p-9,
+ /* pi/2, used as a shift value after reduction. */
+ .shift_val = 0x1.921fb54442d18p+0,
+ .neg_one = -1.0f,
};
#define SignMask (0x80000000)
@@ -37,43 +45,49 @@ static const struct data
/* Fast implementation of SVE atanf based on
atan(x) ~ shift + z + z^3 * P(z^2) with reduction to [0,1] using
z=-1/x and shift = pi/2.
- Largest observed error is 2.9 ULP, close to +/-1.0:
- _ZGVsMxv_atanf (0x1.0468f6p+0) got -0x1.967f06p-1
- want -0x1.967fp-1. */
+ Largest observed error is 2.12 ULP:
+ _ZGVsMxv_atanf (0x1.03d4cep+0) got 0x1.95ed3ap-1
+ want 0x1.95ed36p-1. */
svfloat32_t SV_NAME_F1 (atan) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b32 ();
/* No need to trigger special case. Small cases, infs and nans
are supported by our approximation technique. */
svuint32_t ix = svreinterpret_u32 (x);
- svuint32_t sign = svand_x (pg, ix, SignMask);
+ svuint32_t sign = svand_x (ptrue, ix, SignMask);
/* Argument reduction:
y := arctan(x) for x < 1
- y := pi/2 + arctan(-1/x) for x > 1
- Hence, use z=-1/a if x>=1, otherwise z=a. */
- svbool_t red = svacgt (pg, x, 1.0f);
- /* Avoid dependency in abs(x) in division (and comparison). */
- svfloat32_t z = svsel (red, svdiv_x (pg, sv_f32 (1.0f), x), x);
- /* Use absolute value only when needed (odd powers of z). */
- svfloat32_t az = svabs_x (pg, z);
- az = svneg_m (az, red, az);
-
- /* Use split Estrin scheme for P(z^2) with deg(P)=7. */
- svfloat32_t z2 = svmul_x (pg, z, z);
- svfloat32_t z4 = svmul_x (pg, z2, z2);
- svfloat32_t z8 = svmul_x (pg, z4, z4);
-
- svfloat32_t y = sv_estrin_7_f32_x (pg, z2, z4, z8, d->poly);
-
- /* y = shift + z + z^3 * P(z^2). */
- svfloat32_t z3 = svmul_x (pg, z2, az);
- y = svmla_x (pg, az, z3, y);
-
- /* Apply shift as indicated by 'red' predicate. */
- y = svadd_m (red, y, sv_f32 (d->pi_over_2));
-
- /* y = atan(x) if x>0, -atan(-x) otherwise. */
- return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (y), sign));
+ y := arctan(-1/x) + pi/2 for x > +1
+ y := arctan(-1/x) - pi/2 for x < -1
+ Hence, use z=-1/a if |x|>=|-1|, otherwise z=a. */
+ svbool_t red = svacgt (pg, x, d->neg_one);
+ svfloat32_t z = svsel (red, svdiv_x (pg, sv_f32 (d->neg_one), x), x);
+
+ /* Reinserts the sign bit of the argument to handle the case of x < -1. */
+ svfloat32_t shift = svreinterpret_f32 (
+ sveor_x (red, svreinterpret_u32 (sv_f32 (d->shift_val)), sign));
+
+ svfloat32_t z2 = svmul_x (ptrue, z, z);
+ svfloat32_t z3 = svmul_x (ptrue, z2, z);
+ svfloat32_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat32_t z8 = svmul_x (ptrue, z4, z4);
+
+ svfloat32_t odd_coeffs = svld1rq (ptrue, &d->c1);
+
+ svfloat32_t p01 = svmla_lane (sv_f32 (d->c0), z2, odd_coeffs, 0);
+ svfloat32_t p23 = svmla_lane (sv_f32 (d->c2), z2, odd_coeffs, 1);
+ svfloat32_t p45 = svmla_lane (sv_f32 (d->c4), z2, odd_coeffs, 2);
+ svfloat32_t p67 = svmla_lane (sv_f32 (d->c6), z2, odd_coeffs, 3);
+
+ svfloat32_t p03 = svmla_x (pg, p01, z4, p23);
+ svfloat32_t p47 = svmla_x (pg, p45, z4, p67);
+
+ svfloat32_t y = svmla_x (pg, p03, z8, p47);
+
+ /* shift + z + z^3 * P(z^2). */
+ shift = svadd_m (red, z, shift);
+ return svmla_x (pg, shift, z3, y);
}
diff --git a/sysdeps/aarch64/fpu/atanh_advsimd.c b/sysdeps/aarch64/fpu/atanh_advsimd.c
index 3c3d0bd..7fba309 100644
--- a/sysdeps/aarch64/fpu/atanh_advsimd.c
+++ b/sysdeps/aarch64/fpu/atanh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) atanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,15 +23,19 @@
const static struct data
{
struct v_log1p_data log1p_consts;
- uint64x2_t one, half;
+ uint64x2_t one;
+ uint64x2_t sign_mask;
} data = { .log1p_consts = V_LOG1P_CONSTANTS_TABLE,
.one = V2 (0x3ff0000000000000),
- .half = V2 (0x3fe0000000000000) };
+ .sign_mask = V2 (0x8000000000000000) };
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
+special_case (float64x2_t x, float64x2_t halfsign, float64x2_t y,
+ uint64x2_t special, const struct data *d)
{
- return v_call_f64 (atanh, x, y, special);
+ y = log1p_inline (y, &d->log1p_consts);
+ return v_call_f64 (atanh, vbslq_f64 (d->sign_mask, halfsign, x),
+ vmulq_f64 (halfsign, y), special);
}
/* Approximation for vector double-precision atanh(x) using modified log1p.
@@ -43,11 +47,10 @@ float64x2_t V_NAME_D1 (atanh) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
+ float64x2_t halfsign = vbslq_f64 (d->sign_mask, x, v_f64 (0.5));
float64x2_t ax = vabsq_f64 (x);
uint64x2_t ia = vreinterpretq_u64_f64 (ax);
- uint64x2_t sign = veorq_u64 (vreinterpretq_u64_f64 (x), ia);
uint64x2_t special = vcgeq_u64 (ia, d->one);
- float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->half));
#if WANT_SIMD_EXCEPT
ax = v_zerofy_f64 (ax, special);
@@ -55,10 +58,15 @@ float64x2_t V_NAME_D1 (atanh) (float64x2_t x)
float64x2_t y;
y = vaddq_f64 (ax, ax);
- y = vdivq_f64 (y, vsubq_f64 (v_f64 (1), ax));
- y = log1p_inline (y, &d->log1p_consts);
+ y = vdivq_f64 (y, vsubq_f64 (vreinterpretq_f64_u64 (d->one), ax));
if (__glibc_unlikely (v_any_u64 (special)))
- return special_case (x, vmulq_f64 (y, halfsign), special);
+#if WANT_SIMD_EXCEPT
+ return special_case (x, halfsign, y, special, d);
+#else
+ return special_case (ax, halfsign, y, special, d);
+#endif
+
+ y = log1p_inline (y, &d->log1p_consts);
return vmulq_f64 (y, halfsign);
}
diff --git a/sysdeps/aarch64/fpu/atanh_sve.c b/sysdeps/aarch64/fpu/atanh_sve.c
index 7a52728..958d69a 100644
--- a/sysdeps/aarch64/fpu/atanh_sve.c
+++ b/sysdeps/aarch64/fpu/atanh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) atanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
}
/* SVE approximation for double-precision atanh, based on log1p.
- The greatest observed error is 2.81 ULP:
+ The greatest observed error is 3.3 ULP:
_ZGVsMxv_atanh(0x1.ffae6288b601p-6) got 0x1.ffd8ff31b5019p-6
want 0x1.ffd8ff31b501cp-6. */
svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg)
@@ -42,7 +42,6 @@ svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg)
svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, Half));
/* It is special if iax >= 1. */
-// svbool_t special = svcmpge (pg, iax, One);
svbool_t special = svacge (pg, x, 1.0);
/* Computation is performed based on the following sequence of equality:
diff --git a/sysdeps/aarch64/fpu/atanhf_advsimd.c b/sysdeps/aarch64/fpu/atanhf_advsimd.c
index ae488f7..ef23b89 100644
--- a/sysdeps/aarch64/fpu/atanhf_advsimd.c
+++ b/sysdeps/aarch64/fpu/atanhf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) atanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,15 +40,17 @@ const static struct data
#define Half v_u32 (0x3f000000)
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, float32x4_t halfsign, float32x4_t y,
+ uint32x4_t special)
{
- return v_call_f32 (atanhf, x, y, special);
+ return v_call_f32 (atanhf, vbslq_f32 (AbsMask, x, halfsign),
+ vmulq_f32 (halfsign, y), special);
}
/* Approximation for vector single-precision atanh(x) using modified log1p.
- The maximum error is 3.08 ULP:
- __v_atanhf(0x1.ff215p-5) got 0x1.ffcb7cp-5
- want 0x1.ffcb82p-5. */
+ The maximum error is 2.93 ULP:
+ _ZGVnN4v_atanhf(0x1.f43d7p-5) got 0x1.f4dcfep-5
+ want 0x1.f4dcf8p-5. */
VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (atanh) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
@@ -68,11 +70,19 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (atanh) (float32x4_t x)
uint32x4_t special = vcgeq_u32 (iax, d->one);
#endif
- float32x4_t y = vdivq_f32 (vaddq_f32 (ax, ax), vsubq_f32 (v_f32 (1), ax));
- y = log1pf_inline (y, d->log1pf_consts);
+ float32x4_t y = vdivq_f32 (vaddq_f32 (ax, ax),
+ vsubq_f32 (vreinterpretq_f32_u32 (d->one), ax));
+ y = log1pf_inline (y, &d->log1pf_consts);
+ /* If exceptions not required, pass ax to special-case for shorter dependency
+ chain. If exceptions are required ax will have been zerofied, so have to
+ pass x. */
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (x, vmulq_f32 (halfsign, y), special);
+#if WANT_SIMD_EXCEPT
+ return special_case (x, halfsign, y, special);
+#else
+ return special_case (ax, halfsign, y, special);
+#endif
return vmulq_f32 (halfsign, y);
}
libmvec_hidden_def (V_NAME_F1 (atanh))
diff --git a/sysdeps/aarch64/fpu/atanhf_sve.c b/sysdeps/aarch64/fpu/atanhf_sve.c
index dae8304..98e9950 100644
--- a/sysdeps/aarch64/fpu/atanhf_sve.c
+++ b/sysdeps/aarch64/fpu/atanhf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) atanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,21 +17,25 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include "sv_math.h"
#include "sv_log1pf_inline.h"
#define One (0x3f800000)
#define Half (0x3f000000)
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svuint32_t iax, svuint32_t sign, svfloat32_t halfsign,
+ svfloat32_t y, svbool_t special)
{
+ svfloat32_t x = svreinterpret_f32 (sveor_x (svptrue_b32 (), iax, sign));
+ y = svmul_x (svptrue_b32 (), halfsign, y);
return sv_call_f32 (atanhf, x, y, special);
}
/* Approximation for vector single-precision atanh(x) using modified log1p.
- The maximum error is 2.28 ULP:
- _ZGVsMxv_atanhf(0x1.ff1194p-5) got 0x1.ffbbbcp-5
- want 0x1.ffbbb6p-5. */
+ The maximum error is 1.99 ULP:
+ _ZGVsMxv_atanhf(0x1.f1583p-5) got 0x1.f1f4fap-5
+ want 0x1.f1f4f6p-5. */
svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg)
{
svfloat32_t ax = svabs_x (pg, x);
@@ -48,7 +52,7 @@ svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg)
y = sv_log1pf_inline (y, pg);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmul_x (pg, halfsign, y), special);
+ return special_case (iax, sign, halfsign, y, special);
return svmul_x (pg, halfsign, y);
}
diff --git a/sysdeps/aarch64/fpu/atanpi_advsimd.c b/sysdeps/aarch64/fpu/atanpi_advsimd.c
new file mode 100644
index 0000000..9101419
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atanpi_advsimd.c
@@ -0,0 +1,117 @@
+/* Double-Precision vector (Advanced SIMD) inverse tanpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ double c2, c4, c6, c8, c10, c12, c14, c16, c18, c20;
+ float64x2_t c0, c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+} data = {
+ /* Coefficients of polynomial P such that atanpi(x)~x*P(x^2) on
+ [2^-1022, 1.0]. */
+ .c0 = V2 (0x1.45f306dc9c883p-2), .c1 = V2 (-0x1.b2995e7b7ba4ap-4),
+ .c2 = 0x1.04c26be3d2c1p-4, .c3 = V2 (-0x1.7483759c17ea1p-5),
+ .c4 = 0x1.21bb95c315d57p-5, .c5 = V2 (-0x1.da1bdc3d453f3p-6),
+ .c6 = 0x1.912d20459b4bfp-6, .c7 = V2 (-0x1.5bbd4545cad1fp-6),
+ .c8 = 0x1.331b83bec30a1p-6, .c9 = V2 (-0x1.13d6457f44de3p-6),
+ .c10 = 0x1.f8e802974db94p-7, .c11 = V2 (-0x1.d7e173ab04a1ap-7),
+ .c12 = 0x1.bdfa47d6a4f28p-7, .c13 = V2 (-0x1.9ba78f3232ceep-7),
+ .c14 = 0x1.5e6044590ab4fp-7, .c15 = V2 (-0x1.01ccfdeb9f77fp-7),
+ .c16 = 0x1.345cf0d4eb1c1p-8, .c17 = V2 (-0x1.19e5f00f67e3ap-9),
+ .c18 = 0x1.6d3035ac7625bp-11, .c19 = V2 (-0x1.286bb9ae4ed79p-13),
+ .c20 = 0x1.c37ec36da0e1ap-17,
+};
+
+#define SignMask v_u64 (0x8000000000000000)
+
+/* Fast implementation of vector atanpi.
+ atanpi(x) ~ shift + z * P(z^2) with reduction to [0,1] using
+ z=1/x and shift = +-1/2. Maximum observed error is 2.76 ulps:
+ _ZGVnN2v_atanpi(0x1.fa2d6912cd64fp-1) got 0x1.fc45a51bd497fp-3
+ want 0x1.fc45a51bd497cp-3. */
+float64x2_t VPCS_ATTR V_NAME_D1 (atanpi) (float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint64x2_t ix = vreinterpretq_u64_f64 (x);
+ uint64x2_t sign = vandq_u64 (ix, SignMask);
+
+ /* Argument Reduction:
+ y := arctanpi(x) for |x| < 1
+ y := arctanpi(-1/x) + 1/2 for x > 1
+ y := arctanpi(-1/x) - 1/2 for x < -1
+ Hence, use z=-1/a if |x|>=|-1|, otherwise z=a. */
+ uint64x2_t red = vcagtq_f64 (x, v_f64 (-1.0));
+ float64x2_t z = vbslq_f64 (red, vdivq_f64 (v_f64 (-1.0), x), x);
+
+ /* Shift is calculated as +1/2 or 0, depending on the argument case. */
+ float64x2_t shift = vreinterpretq_f64_u64 (
+ vandq_u64 (red, vreinterpretq_u64_f64 (v_f64 (0.5))));
+
+ /* Reinsert sign bit from argument into the shift value. */
+ shift = vreinterpretq_f64_u64 (
+ veorq_u64 (vreinterpretq_u64_f64 (shift), sign));
+
+ /* Calculate polynomial approximation P(z^2) with deg(P)=19. */
+ float64x2_t z2 = vmulq_f64 (z, z);
+ float64x2_t z4 = vmulq_f64 (z2, z2);
+ float64x2_t z8 = vmulq_f64 (z4, z4);
+ float64x2_t z16 = vmulq_f64 (z8, z8);
+
+ float64x2_t c24 = vld1q_f64 (&d->c2);
+ float64x2_t c68 = vld1q_f64 (&d->c6);
+
+ /* Order-7 Estrin. */
+ float64x2_t p12 = vfmaq_laneq_f64 (d->c1, z2, c24, 0);
+ float64x2_t p34 = vfmaq_laneq_f64 (d->c3, z2, c24, 1);
+ float64x2_t p56 = vfmaq_laneq_f64 (d->c5, z2, c68, 0);
+ float64x2_t p78 = vfmaq_laneq_f64 (d->c7, z2, c68, 1);
+
+ float64x2_t p14 = vfmaq_f64 (p12, z4, p34);
+ float64x2_t p58 = vfmaq_f64 (p56, z4, p78);
+ float64x2_t p18 = vfmaq_f64 (p14, z8, p58);
+
+ /* Order-11 Estrin. */
+ float64x2_t c1012 = vld1q_f64 (&d->c10);
+ float64x2_t c1416 = vld1q_f64 (&d->c14);
+ float64x2_t c1820 = vld1q_f64 (&d->c18);
+
+ float64x2_t p910 = vfmaq_laneq_f64 (d->c9, z2, c1012, 0);
+ float64x2_t p1112 = vfmaq_laneq_f64 (d->c11, z2, c1012, 1);
+ float64x2_t p912 = vfmaq_f64 (p910, z4, p1112);
+
+ float64x2_t p1314 = vfmaq_laneq_f64 (d->c13, z2, c1416, 0);
+ float64x2_t p1516 = vfmaq_laneq_f64 (d->c15, z2, c1416, 1);
+ float64x2_t p1316 = vfmaq_f64 (p1314, z4, p1516);
+
+ float64x2_t p1718 = vfmaq_laneq_f64 (d->c17, z2, c1820, 0);
+ float64x2_t p1920 = vfmaq_laneq_f64 (d->c19, z2, c1820, 1);
+ float64x2_t p1720 = vfmaq_f64 (p1718, z4, p1920);
+
+ float64x2_t p916 = vfmaq_f64 (p912, z8, p1316);
+ float64x2_t p920 = vfmaq_f64 (p916, z16, p1720);
+
+ float64x2_t y = vfmaq_f64 (p18, p920, z16);
+
+ y = vfmaq_f64 (d->c0, z2, y);
+
+ /* y = shift + z * p(z^2). */
+ return vfmaq_f64 (shift, z, y);
+}
diff --git a/sysdeps/aarch64/fpu/atanpi_sve.c b/sysdeps/aarch64/fpu/atanpi_sve.c
new file mode 100644
index 0000000..3f8f277
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atanpi_sve.c
@@ -0,0 +1,127 @@
+/* Double-Precision vector (SVE) inverse tanpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float64_t c2, c4, c6, c8, c10, c12, c14, c16, c18, c20;
+ float64_t c0, c1, c3, c5, c7, c9, c11, c13, c15, c17, c19;
+ float64_t shift_val, neg_one;
+} data = {
+ /* Coefficients of polnomial P such that atan(x)~x+x*P(x^2) on
+ [2^-1022, 1.0]. */
+ .c0 = 0x1.45f306dc9c883p-2,
+ .c1 = -0x1.b2995e7b7ba4ap-4,
+ .c2 = 0x1.04c26be3d2c1p-4,
+ .c3 = -0x1.7483759c17ea1p-5,
+ .c4 = 0x1.21bb95c315d57p-5,
+ .c5 = -0x1.da1bdc3d453f3p-6,
+ .c6 = 0x1.912d20459b4bfp-6,
+ .c7 = -0x1.5bbd4545cad1fp-6,
+ .c8 = 0x1.331b83bec30a1p-6,
+ .c9 = -0x1.13d6457f44de3p-6,
+ .c10 = 0x1.f8e802974db94p-7,
+ .c11 = -0x1.d7e173ab04a1ap-7,
+ .c12 = 0x1.bdfa47d6a4f28p-7,
+ .c13 = -0x1.9ba78f3232ceep-7,
+ .c14 = 0x1.5e6044590ab4fp-7,
+ .c15 = -0x1.01ccfdeb9f77fp-7,
+ .c16 = 0x1.345cf0d4eb1c1p-8,
+ .c17 = -0x1.19e5f00f67e3ap-9,
+ .c18 = 0x1.6d3035ac7625bp-11,
+ .c19 = -0x1.286bb9ae4ed79p-13,
+ .c20 = 0x1.c37ec36da0e1ap-17,
+ .shift_val = 1.5,
+ .neg_one = -1,
+};
+
+/* Fast implementation of SVE atan.
+ Based on atan(x) ~ shift + z + z^3 * P(z^2) with reduction to 0,1 using
+ z=1/x and shift = pi/2. Largest errors are close to 1. The maximum observed
+ error is 2.80 ulps:
+ _ZGVsMxv_atanpi(0x1.f19587d63c76fp-1) got 0x1.f6b1304817d02p-3
+ want 0x1.f6b1304817d05p-3. */
+svfloat64_t SV_NAME_D1 (atanpi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ svbool_t ptrue = svptrue_b64 ();
+ svuint64_t ix = svreinterpret_u64 (x);
+ svuint64_t sign = svand_x (pg, ix, 0x8000000000000000);
+
+ /* Argument reduction:
+ y := arctan(x) for x < 1
+ y := pi/2 + arctan(-1/x) for x > 1
+ Hence, use z=-1/a if x>=1, otherwise z=a. */
+ svbool_t red = svacgt (pg, x, d->neg_one);
+ svfloat64_t z = svsel (red, svdiv_x (pg, sv_f64 (d->neg_one), x), x);
+
+ /* Reuse of -1.0f to reduce constant loads,
+ We need a shift value of 1/2, which is created via -1 + (1 + 1/2). */
+ svfloat64_t shift
+ = svadd_z (red, sv_f64 (d->neg_one), sv_f64 (d->shift_val));
+
+ /* Reinserts the sign bit of the argument to handle the case of x < -1. */
+ shift = svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (shift), sign));
+
+ /* Use split Estrin scheme for P(z^2) with deg(P)=19. */
+ svfloat64_t z2 = svmul_x (ptrue, z, z);
+ svfloat64_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat64_t z8 = svmul_x (ptrue, z4, z4);
+ svfloat64_t z16 = svmul_x (ptrue, z8, z8);
+
+ /* Order-7 Estrin. */
+ svfloat64_t c24 = svld1rq (ptrue, &d->c2);
+ svfloat64_t c68 = svld1rq (ptrue, &d->c6);
+
+ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), z2, c24, 0);
+ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), z2, c24, 1);
+ svfloat64_t p56 = svmla_lane (sv_f64 (d->c5), z2, c68, 0);
+ svfloat64_t p78 = svmla_lane (sv_f64 (d->c7), z2, c68, 1);
+
+ svfloat64_t p14 = svmla_x (pg, p12, z4, p34);
+ svfloat64_t p58 = svmla_x (pg, p56, z4, p78);
+ svfloat64_t p18 = svmla_x (pg, p14, z8, p58);
+
+ /* Order-11 Estrin. */
+ svfloat64_t c1012 = svld1rq (ptrue, &d->c10);
+ svfloat64_t c1416 = svld1rq (ptrue, &d->c14);
+ svfloat64_t c1820 = svld1rq (ptrue, &d->c18);
+
+ svfloat64_t p910 = svmla_lane (sv_f64 (d->c9), z2, c1012, 0);
+ svfloat64_t p1112 = svmla_lane (sv_f64 (d->c11), z2, c1012, 1);
+ svfloat64_t p912 = svmla_x (pg, p910, z4, p1112);
+
+ svfloat64_t p1314 = svmla_lane (sv_f64 (d->c13), z2, c1416, 0);
+ svfloat64_t p1516 = svmla_lane (sv_f64 (d->c15), z2, c1416, 1);
+ svfloat64_t p1316 = svmla_x (pg, p1314, z4, p1516);
+
+ svfloat64_t p1718 = svmla_lane (sv_f64 (d->c17), z2, c1820, 0);
+ svfloat64_t p1920 = svmla_lane (sv_f64 (d->c19), z2, c1820, 1);
+ svfloat64_t p1720 = svmla_x (pg, p1718, z4, p1920);
+
+ svfloat64_t p916 = svmla_x (pg, p912, z8, p1316);
+ svfloat64_t p920 = svmla_x (pg, p916, z16, p1720);
+
+ svfloat64_t y = svmla_x (pg, p18, z16, p920);
+
+ y = svmla_x (pg, sv_f64 (d->c0), z2, y);
+ return svmla_x (pg, shift, z, y);
+}
diff --git a/sysdeps/aarch64/fpu/atanpif_advsimd.c b/sysdeps/aarch64/fpu/atanpif_advsimd.c
new file mode 100644
index 0000000..9295156
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atanpif_advsimd.c
@@ -0,0 +1,92 @@
+/* Single-Precision vector (Advanced SIMD) inverse tanpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+static const struct data
+{
+ uint32x4_t half;
+ float32x4_t neg_one;
+ float32x4_t c0, c1, c3, c5, c7;
+ float c2, c4, c6, c8;
+} data = {
+ /* Polynomial coefficients generated using Remez algorithm,
+ see atanpi.sollya for details. */
+ .c0 = V4 (0x1.45f306p-2), .c1 = V4 (-0x1.b2975ep-4),
+ .c2 = 0x1.0490e4p-4, .c3 = V4 (-0x1.70c272p-5),
+ .c4 = 0x1.0eef52p-5, .c5 = V4 (-0x1.6abbbap-6),
+ .c6 = 0x1.78157p-7, .c7 = V4 (-0x1.f0b406p-9),
+ .c8 = 0x1.2ae7fep-11, .half = V4 (0x3f000000),
+ .neg_one = V4 (-1.0f),
+};
+
+#define SignMask v_u32 (0x80000000)
+
+/* Fast implementation of vector atanpif based on
+ atanpi(x) ~ shift + z * P(z^2) with reduction to [0,1]
+ using z=-1/x and shift = +-1/2.
+ Maximum observed error is 2.59ulps:
+ _ZGVnN4v_atanpif (0x1.f2a89cp-1) got 0x1.f76524p-3
+ want 0x1.f7651ep-3. */
+float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (atanpi) (float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ uint32x4_t ix = vreinterpretq_u32_f32 (x);
+ uint32x4_t sign = vandq_u32 (ix, SignMask);
+
+ /* Argument Reduction:
+ y := arctanpi(x) for |x| < 1
+ y := arctanpi(-1/x) + 1/2 for x > 1
+ y := arctanpi(-1/x) - 1/2 for x < -1
+ Hence, use z=-1/a if |x|>=|-1|, otherwise z=a. */
+ uint32x4_t red = vcagtq_f32 (x, d->neg_one);
+
+ float32x4_t z = vbslq_f32 (red, vdivq_f32 (d->neg_one, x), x);
+
+ /* Shift is calculated as +1/2 or 0, depending on the argument case. */
+ float32x4_t shift = vreinterpretq_f32_u32 (vandq_u32 (red, d->half));
+
+ /* Reinsert sign bit from argument into the shift value. */
+ shift = vreinterpretq_f32_u32 (
+ veorq_u32 (vreinterpretq_u32_f32 (shift), sign));
+
+ /* Uses an Estrin scheme for polynomial approximation. */
+ float32x4_t z2 = vmulq_f32 (z, z);
+ float32x4_t z4 = vmulq_f32 (z2, z2);
+ float32x4_t z8 = vmulq_f32 (z4, z4);
+
+ float32x4_t even_coeffs = vld1q_f32 (&d->c2);
+
+ float32x4_t p12 = vfmaq_laneq_f32 (d->c1, z2, even_coeffs, 0);
+ float32x4_t p34 = vfmaq_laneq_f32 (d->c3, z2, even_coeffs, 1);
+ float32x4_t p56 = vfmaq_laneq_f32 (d->c5, z2, even_coeffs, 2);
+ float32x4_t p78 = vfmaq_laneq_f32 (d->c7, z2, even_coeffs, 3);
+
+ float32x4_t p14 = vfmaq_f32 (p12, z4, p34);
+ float32x4_t p58 = vfmaq_f32 (p56, z4, p78);
+
+ float32x4_t y = vfmaq_f32 (p14, z8, p58);
+ y = vfmaq_f32 (d->c0, z2, y);
+
+ /* y = shift + z * P(z^2). */
+ return vfmaq_f32 (shift, z, y);
+}
+libmvec_hidden_def (V_NAME_F1 (atanpi))
+HALF_WIDTH_ALIAS_F1 (atanpi)
diff --git a/sysdeps/aarch64/fpu/atanpif_sve.c b/sysdeps/aarch64/fpu/atanpif_sve.c
new file mode 100644
index 0000000..2abd788
--- /dev/null
+++ b/sysdeps/aarch64/fpu/atanpif_sve.c
@@ -0,0 +1,89 @@
+/* Single-Precision vector (SVE) inverse tanpi function
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+static const struct data
+{
+ float32_t c2, c4, c6, c8;
+ float32_t c0, c1, c3, c5, c7;
+ float32_t shift_val, neg_one;
+} data = {
+ /* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
+ [2**-128, 1.0]. */
+ .c0 = 0x1.45f306p-2, .c1 = -0x1.b2975ep-4, .c2 = 0x1.0490e4p-4,
+ .c3 = -0x1.70c272p-5, .c4 = 0x1.0eef52p-5, .c5 = -0x1.6abbbap-6,
+ .c6 = 0x1.78157p-7, .c7 = -0x1.f0b406p-9, .c8 = 0x1.2ae7fep-11,
+ .shift_val = 1.5f, .neg_one = -1.0f,
+};
+
+#define SignMask (0x80000000)
+
+/* Fast implementation of SVE atanpif based on
+ atan(x) ~ shift + z * P(z^2) with reduction to [0,1] using
+ z=-1/x and shift = 1/2.
+ Largest observed error is 2.59 ULP, close to +/-1.0:
+ _ZGVsMxv_atanpif(0x1.f2a89cp-1) got 0x1.f76524p-3
+ want 0x1.f7651ep-3. */
+svfloat32_t SV_NAME_F1 (atanpi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t ptrue = svptrue_b32 ();
+
+ /* No need to trigger special case. Small cases, infs and nans
+ are supported by our approximation technique. */
+ svuint32_t ix = svreinterpret_u32 (x);
+ svuint32_t sign = svand_x (pg, ix, SignMask);
+
+ /* Argument reduction:
+ y := arctan(x) for x < 1
+ y := arctan(-1/x) + 1/2 for x > +1
+ y := arctan(-1/x) - 1/2 for x < -1
+ Hence, use z=-1/a if |x|>=|-1|, otherwise z=a. */
+ svbool_t red = svacgt (pg, x, d->neg_one);
+ svfloat32_t z = svsel (red, svdiv_x (ptrue, sv_f32 (d->neg_one), x), x);
+
+ /* Reuse of -1.0f to reduce constant loads,
+ We need a shift value of 1/2, which is created via -1 + (1 + 1/2). */
+ svfloat32_t shift
+ = svadd_z (red, sv_f32 (d->neg_one), sv_f32 (d->shift_val));
+
+ /* Reinserts the sign bit of the argument to handle the case of x < -1. */
+ shift = svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (shift), sign));
+
+ svfloat32_t z2 = svmul_x (ptrue, z, z);
+ svfloat32_t z4 = svmul_x (ptrue, z2, z2);
+ svfloat32_t z8 = svmul_x (ptrue, z4, z4);
+
+ svfloat32_t even_coeffs = svld1rq (ptrue, &d->c2);
+
+ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), z2, even_coeffs, 0);
+ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), z2, even_coeffs, 1);
+ svfloat32_t p56 = svmla_lane (sv_f32 (d->c5), z2, even_coeffs, 2);
+ svfloat32_t p78 = svmla_lane (sv_f32 (d->c7), z2, even_coeffs, 3);
+
+ svfloat32_t p14 = svmad_x (pg, z4, p34, p12);
+ svfloat32_t p58 = svmad_x (pg, z4, p78, p56);
+
+ svfloat32_t p18 = svmad_x (pg, z8, p58, p14);
+ svfloat32_t y = svmad_x (pg, z2, p18, d->c0);
+
+ /* shift + z * P(z^2). */
+ return svmad_x (pg, y, z, shift);
+}
diff --git a/sysdeps/aarch64/fpu/bench-libmvec-arch.h b/sysdeps/aarch64/fpu/bench-libmvec-arch.h
index baa0513..f57f349 100644
--- a/sysdeps/aarch64/fpu/bench-libmvec-arch.h
+++ b/sysdeps/aarch64/fpu/bench-libmvec-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for libmvec benchtests. aarch64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h
index 7484150..77ae10d 100644
--- a/sysdeps/aarch64/fpu/bits/math-vector.h
+++ b/sysdeps/aarch64/fpu/bits/math-vector.h
@@ -1,6 +1,6 @@
/* Platform-specific SIMD declarations of math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,6 +37,10 @@
# define __DECL_SIMD_acosh __DECL_SIMD_aarch64
# undef __DECL_SIMD_acoshf
# define __DECL_SIMD_acoshf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_acospi
+# define __DECL_SIMD_acospi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_acospif
+# define __DECL_SIMD_acospif __DECL_SIMD_aarch64
# undef __DECL_SIMD_asin
# define __DECL_SIMD_asin __DECL_SIMD_aarch64
# undef __DECL_SIMD_asinf
@@ -45,6 +49,10 @@
# define __DECL_SIMD_asinh __DECL_SIMD_aarch64
# undef __DECL_SIMD_asinhf
# define __DECL_SIMD_asinhf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_asinpi
+# define __DECL_SIMD_asinpi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_asinpif
+# define __DECL_SIMD_asinpif __DECL_SIMD_aarch64
# undef __DECL_SIMD_atan
# define __DECL_SIMD_atan __DECL_SIMD_aarch64
# undef __DECL_SIMD_atanf
@@ -53,10 +61,18 @@
# define __DECL_SIMD_atanh __DECL_SIMD_aarch64
# undef __DECL_SIMD_atanhf
# define __DECL_SIMD_atanhf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_atanpi
+# define __DECL_SIMD_atanpi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_atanpif
+# define __DECL_SIMD_atanpif __DECL_SIMD_aarch64
# undef __DECL_SIMD_atan2
# define __DECL_SIMD_atan2 __DECL_SIMD_aarch64
# undef __DECL_SIMD_atan2f
# define __DECL_SIMD_atan2f __DECL_SIMD_aarch64
+# undef __DECL_SIMD_atan2pi
+# define __DECL_SIMD_atan2pi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_atan2pif
+# define __DECL_SIMD_atan2pif __DECL_SIMD_aarch64
# undef __DECL_SIMD_cbrt
# define __DECL_SIMD_cbrt __DECL_SIMD_aarch64
# undef __DECL_SIMD_cbrtf
@@ -69,6 +85,10 @@
# define __DECL_SIMD_cosh __DECL_SIMD_aarch64
# undef __DECL_SIMD_coshf
# define __DECL_SIMD_coshf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_cospi
+# define __DECL_SIMD_cospi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_cospif
+# define __DECL_SIMD_cospif __DECL_SIMD_aarch64
# undef __DECL_SIMD_erf
# define __DECL_SIMD_erf __DECL_SIMD_aarch64
# undef __DECL_SIMD_erff
@@ -113,6 +133,10 @@
# define __DECL_SIMD_log2 __DECL_SIMD_aarch64
# undef __DECL_SIMD_log2f
# define __DECL_SIMD_log2f __DECL_SIMD_aarch64
+# undef __DECL_SIMD_logp1
+# define __DECL_SIMD_logp1 __DECL_SIMD_aarch64
+# undef __DECL_SIMD_logp1f
+# define __DECL_SIMD_logp1f __DECL_SIMD_aarch64
# undef __DECL_SIMD_pow
# define __DECL_SIMD_pow __DECL_SIMD_aarch64
# undef __DECL_SIMD_powf
@@ -125,6 +149,10 @@
# define __DECL_SIMD_sinh __DECL_SIMD_aarch64
# undef __DECL_SIMD_sinhf
# define __DECL_SIMD_sinhf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_sinpi
+# define __DECL_SIMD_sinpi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_sinpif
+# define __DECL_SIMD_sinpif __DECL_SIMD_aarch64
# undef __DECL_SIMD_tan
# define __DECL_SIMD_tan __DECL_SIMD_aarch64
# undef __DECL_SIMD_tanf
@@ -133,6 +161,10 @@
# define __DECL_SIMD_tanh __DECL_SIMD_aarch64
# undef __DECL_SIMD_tanhf
# define __DECL_SIMD_tanhf __DECL_SIMD_aarch64
+# undef __DECL_SIMD_tanpi
+# define __DECL_SIMD_tanpi __DECL_SIMD_aarch64
+# undef __DECL_SIMD_tanpif
+# define __DECL_SIMD_tanpif __DECL_SIMD_aarch64
#endif
#if __GNUC_PREREQ(9, 0)
@@ -160,15 +192,20 @@ typedef __SVBool_t __sv_bool_t;
# define __vpcs __attribute__ ((__aarch64_vector_pcs__))
__vpcs __f32x4_t _ZGVnN4vv_atan2f (__f32x4_t, __f32x4_t);
+__vpcs __f32x4_t _ZGVnN4vv_atan2pif (__f32x4_t, __f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_acoshf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_acospif (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_asinhf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_asinpif (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_atanhf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_atanpif (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_cbrtf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_cospif (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_erfcf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t);
@@ -180,22 +217,30 @@ __vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_logp1f (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4vv_powf (__f32x4_t, __f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_sinpif (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t);
__vpcs __f32x4_t _ZGVnN4v_tanhf (__f32x4_t);
+__vpcs __f32x4_t _ZGVnN4v_tanpif (__f32x4_t);
__vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t);
+__vpcs __f64x2_t _ZGVnN2vv_atan2pi (__f64x2_t, __f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_acosh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_acospi (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_asinh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_asinpi (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_atanh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_atanpi (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_cbrt (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_cospi (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_erfc (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t);
@@ -207,11 +252,14 @@ __vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_logp1 (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2vv_pow (__f64x2_t, __f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_sinpi (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t);
__vpcs __f64x2_t _ZGVnN2v_tanh (__f64x2_t);
+__vpcs __f64x2_t _ZGVnN2v_tanpi (__f64x2_t);
# undef __ADVSIMD_VEC_MATH_SUPPORTED
#endif /* __ADVSIMD_VEC_MATH_SUPPORTED */
@@ -219,15 +267,20 @@ __vpcs __f64x2_t _ZGVnN2v_tanh (__f64x2_t);
#ifdef __SVE_VEC_MATH_SUPPORTED
__sv_f32_t _ZGVsMxvv_atan2f (__sv_f32_t, __sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxvv_atan2pif (__sv_f32_t, __sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_acoshf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_acospif (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_asinhf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_asinpif (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_atanhf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_atanpif (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_cbrtf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_cospif (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_erfcf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t);
@@ -239,22 +292,30 @@ __sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_logp1f (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxvv_powf (__sv_f32_t, __sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_sinpif (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t);
__sv_f32_t _ZGVsMxv_tanhf (__sv_f32_t, __sv_bool_t);
+__sv_f32_t _ZGVsMxv_tanpif (__sv_f32_t, __sv_bool_t);
__sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxvv_atan2pi (__sv_f64_t, __sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_acosh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_acospi (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_asinh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_asinpi (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_atanh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_atanpi (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_cbrt (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_cospi (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_erfc (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t);
@@ -266,11 +327,14 @@ __sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_logp1 (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxvv_pow (__sv_f64_t, __sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_sinpi (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_tan (__sv_f64_t, __sv_bool_t);
__sv_f64_t _ZGVsMxv_tanh (__sv_f64_t, __sv_bool_t);
+__sv_f64_t _ZGVsMxv_tanpi (__sv_f64_t, __sv_bool_t);
# undef __SVE_VEC_MATH_SUPPORTED
#endif /* __SVE_VEC_MATH_SUPPORTED */
diff --git a/sysdeps/aarch64/fpu/cbrt_advsimd.c b/sysdeps/aarch64/fpu/cbrt_advsimd.c
index adfbb60..78ee9e2 100644
--- a/sysdeps/aarch64/fpu/cbrt_advsimd.c
+++ b/sysdeps/aarch64/fpu/cbrt_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) cbrt function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cbrt_sve.c b/sysdeps/aarch64/fpu/cbrt_sve.c
index fc976ed..342b530 100644
--- a/sysdeps/aarch64/fpu/cbrt_sve.c
+++ b/sysdeps/aarch64/fpu/cbrt_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) cbrt function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cbrtf_advsimd.c b/sysdeps/aarch64/fpu/cbrtf_advsimd.c
index 27debb8..f9ae1c6 100644
--- a/sysdeps/aarch64/fpu/cbrtf_advsimd.c
+++ b/sysdeps/aarch64/fpu/cbrtf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) cbrt function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cbrtf_sve.c b/sysdeps/aarch64/fpu/cbrtf_sve.c
index 23c220c..3a66aed 100644
--- a/sysdeps/aarch64/fpu/cbrtf_sve.c
+++ b/sysdeps/aarch64/fpu/cbrtf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) cbrt function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cos_advsimd.c b/sysdeps/aarch64/fpu/cos_advsimd.c
index 3924c9c..0b5b7af 100644
--- a/sysdeps/aarch64/fpu/cos_advsimd.c
+++ b/sysdeps/aarch64/fpu/cos_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) cos function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
static const struct data
{
float64x2_t poly[7];
- float64x2_t range_val, shift, inv_pi, half_pi, pi_1, pi_2, pi_3;
+ float64x2_t range_val, inv_pi, pi_1, pi_2, pi_3;
} data = {
/* Worst-case error is 3.3 ulp in [-pi/2, pi/2]. */
.poly = { V2 (-0x1.555555555547bp-3), V2 (0x1.1111111108a4dp-7),
@@ -30,11 +30,9 @@ static const struct data
V2 (-0x1.ae633919987c6p-26), V2 (0x1.60e277ae07cecp-33),
V2 (-0x1.9e9540300a1p-41) },
.inv_pi = V2 (0x1.45f306dc9c883p-2),
- .half_pi = V2 (0x1.921fb54442d18p+0),
.pi_1 = V2 (0x1.921fb54442d18p+1),
.pi_2 = V2 (0x1.1a62633145c06p-53),
.pi_3 = V2 (0x1.c1cd129024e09p-106),
- .shift = V2 (0x1.8p52),
.range_val = V2 (0x1p23)
};
@@ -68,10 +66,9 @@ float64x2_t VPCS_ATTR V_NAME_D1 (cos) (float64x2_t x)
#endif
/* n = rint((|x|+pi/2)/pi) - 0.5. */
- n = vfmaq_f64 (d->shift, d->inv_pi, vaddq_f64 (r, d->half_pi));
- odd = vshlq_n_u64 (vreinterpretq_u64_f64 (n), 63);
- n = vsubq_f64 (n, d->shift);
- n = vsubq_f64 (n, v_f64 (0.5));
+ n = vrndaq_f64 (vfmaq_f64 (v_f64 (0.5), r, d->inv_pi));
+ odd = vshlq_n_u64 (vreinterpretq_u64_s64 (vcvtq_s64_f64 (n)), 63);
+ n = vsubq_f64 (n, v_f64 (0.5f));
/* r = |x| - n*pi (range reduction into -pi/2 .. pi/2). */
r = vfmsq_f64 (r, d->pi_1, n);
diff --git a/sysdeps/aarch64/fpu/cos_sve.c b/sysdeps/aarch64/fpu/cos_sve.c
index 1c3e25b..1931faf 100644
--- a/sysdeps/aarch64/fpu/cos_sve.c
+++ b/sysdeps/aarch64/fpu/cos_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) cos function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cosf_advsimd.c b/sysdeps/aarch64/fpu/cosf_advsimd.c
index d0c285b..4d51679 100644
--- a/sysdeps/aarch64/fpu/cosf_advsimd.c
+++ b/sysdeps/aarch64/fpu/cosf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) cos function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
static const struct data
{
float32x4_t poly[4];
- float32x4_t range_val, inv_pi, half_pi, shift, pi_1, pi_2, pi_3;
+ float32x4_t range_val, inv_pi, pi_1, pi_2, pi_3;
} data = {
/* 1.886 ulp error. */
.poly = { V4 (-0x1.555548p-3f), V4 (0x1.110df4p-7f), V4 (-0x1.9f42eap-13f),
@@ -33,8 +33,6 @@ static const struct data
.pi_3 = V4 (-0x1.ee59dap-49f),
.inv_pi = V4 (0x1.45f306p-2f),
- .shift = V4 (0x1.8p+23f),
- .half_pi = V4 (0x1.921fb6p0f),
.range_val = V4 (0x1p20f)
};
@@ -69,9 +67,8 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (cos) (float32x4_t x)
#endif
/* n = rint((|x|+pi/2)/pi) - 0.5. */
- n = vfmaq_f32 (d->shift, d->inv_pi, vaddq_f32 (r, d->half_pi));
- odd = vshlq_n_u32 (vreinterpretq_u32_f32 (n), 31);
- n = vsubq_f32 (n, d->shift);
+ n = vrndaq_f32 (vfmaq_f32 (v_f32 (0.5), r, d->inv_pi));
+ odd = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 31);
n = vsubq_f32 (n, v_f32 (0.5f));
/* r = |x| - n*pi (range reduction into -pi/2 .. pi/2). */
diff --git a/sysdeps/aarch64/fpu/cosf_sve.c b/sysdeps/aarch64/fpu/cosf_sve.c
index 4d7f4ea..31a4f63 100644
--- a/sysdeps/aarch64/fpu/cosf_sve.c
+++ b/sysdeps/aarch64/fpu/cosf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) cos function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cosh_advsimd.c b/sysdeps/aarch64/fpu/cosh_advsimd.c
index 4bee734..302d229 100644
--- a/sysdeps/aarch64/fpu/cosh_advsimd.c
+++ b/sysdeps/aarch64/fpu/cosh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) cosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/cosh_sve.c b/sysdeps/aarch64/fpu/cosh_sve.c
index 919f346..f5a163b 100644
--- a/sysdeps/aarch64/fpu/cosh_sve.c
+++ b/sysdeps/aarch64/fpu/cosh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) cosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,69 +21,99 @@
static const struct data
{
- float64_t poly[3];
- float64_t inv_ln2, ln2_hi, ln2_lo, shift, thres;
- uint64_t index_mask, special_bound;
+ double c0, c2;
+ double c1, c3;
+ float64_t inv_ln2, ln2_hi, ln2_lo, shift;
+ uint64_t special_bound;
} data = {
- .poly = { 0x1.fffffffffffd4p-2, 0x1.5555571d6b68cp-3,
- 0x1.5555576a59599p-5, },
-
- .inv_ln2 = 0x1.71547652b82fep8, /* N/ln2. */
- /* -ln2/N. */
- .ln2_hi = -0x1.62e42fefa39efp-9,
- .ln2_lo = -0x1.abc9e3b39803f3p-64,
- .shift = 0x1.8p+52,
- .thres = 704.0,
-
- .index_mask = 0xff,
- /* 0x1.6p9, above which exp overflows. */
- .special_bound = 0x4086000000000000,
+ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */
+ .c0 = 0x1.fffffffffdbcdp-2,
+ .c1 = 0x1.555555555444cp-3,
+ .c2 = 0x1.555573c6a9f7dp-5,
+ .c3 = 0x1.1111266d28935p-7,
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
+ /* 1/ln2. */
+ .inv_ln2 = 0x1.71547652b82fep+0,
+ .shift = 0x1.800000000ff80p+46, /* 1.5*2^46+1022. */
+
+ /* asuint(ln(2^(1024 - 1/128))), the value above which exp overflows. */
+ .special_bound = 0x40862e37e7d8ba72,
};
-static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
-{
- return sv_call_f64 (cosh, x, y, special);
-}
-
-/* Helper for approximating exp(x). Copied from sv_exp_tail, with no
- special-case handling or tail. */
+/* Helper for approximating exp(x)/2.
+ Functionally identical to FEXPA exp(x), but an adjustment in
+ the shift value which leads to a reduction in the exponent of scale by 1,
+ thus halving the result at no cost. */
static inline svfloat64_t
-exp_inline (svfloat64_t x, const svbool_t pg, const struct data *d)
+exp_over_two_inline (const svbool_t pg, svfloat64_t x, const struct data *d)
{
/* Calculate exp(x). */
svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2);
+ svuint64_t u = svreinterpret_u64 (z);
svfloat64_t n = svsub_x (pg, z, d->shift);
- svfloat64_t r = svmla_x (pg, x, n, d->ln2_hi);
- r = svmla_x (pg, r, n, d->ln2_lo);
+ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1);
+ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
- svuint64_t u = svreinterpret_u64 (z);
- svuint64_t e = svlsl_x (pg, u, 52 - V_EXP_TAIL_TABLE_BITS);
- svuint64_t i = svand_x (pg, u, d->index_mask);
+ svfloat64_t r = x;
+ r = svmls_lane (r, n, ln2, 0);
+ r = svmls_lane (r, n, ln2, 1);
- svfloat64_t y = svmla_x (pg, sv_f64 (d->poly[1]), r, d->poly[2]);
- y = svmla_x (pg, sv_f64 (d->poly[0]), r, y);
- y = svmla_x (pg, sv_f64 (1.0), r, y);
- y = svmul_x (pg, r, y);
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1);
+ svfloat64_t p04 = svmla_x (pg, p01, p23, r2);
+ svfloat64_t p = svmla_x (pg, r, p04, r2);
- /* s = 2^(n/N). */
- u = svld1_gather_index (pg, __v_exp_tail_data, i);
- svfloat64_t s = svreinterpret_f64 (svadd_x (pg, u, e));
+ svfloat64_t scale = svexpa (u);
- return svmla_x (pg, s, s, y);
+ return svmla_x (pg, scale, scale, p);
+}
+
+/* Vectorised special case to handle values past where exp_inline overflows.
+ Halves the input value and uses the identity exp(x) = exp(x/2)^2 to double
+ the valid range of inputs, and returns inf for anything past that. */
+static svfloat64_t NOINLINE
+special_case (svbool_t pg, svbool_t special, svfloat64_t ax, svfloat64_t t,
+ const struct data *d)
+{
+ /* Finish fast path to compute values for non-special cases. */
+ svfloat64_t inv_twoexp = svdivr_x (pg, t, 0.25);
+ svfloat64_t y = svadd_x (pg, t, inv_twoexp);
+
+ /* Halves input value, and then check if any cases
+ are still going to overflow. */
+ ax = svmul_x (special, ax, 0.5);
+ svbool_t is_safe
+ = svcmplt (special, svreinterpret_u64 (ax), d->special_bound);
+
+ /* Computes exp(x/2), and sets any overflowing lanes to inf. */
+ svfloat64_t half_exp = exp_over_two_inline (special, ax, d);
+ half_exp = svsel (is_safe, half_exp, sv_f64 (INFINITY));
+
+ /* Construct special case cosh(x) = (exp(x/2)^2)/2. */
+ svfloat64_t exp = svmul_x (svptrue_b64 (), half_exp, 2);
+ svfloat64_t special_y = svmul_x (special, exp, half_exp);
+
+ /* Select correct return values for special and non-special cases. */
+ special_y = svsel (special, special_y, y);
+
+ /* Ensure an input of nan is correctly propagated. */
+ svbool_t is_nan
+ = svcmpgt (special, svreinterpret_u64 (ax), sv_u64 (0x7ff0000000000000));
+ return svsel (is_nan, ax, svsel (special, special_y, y));
}
/* Approximation for SVE double-precision cosh(x) using exp_inline.
cosh(x) = (exp(x) + exp(-x)) / 2.
- The greatest observed error is in the scalar fall-back region, so is the
- same as the scalar routine, 1.93 ULP:
- _ZGVsMxv_cosh (0x1.628ad45039d2fp+9) got 0x1.fd774e958236dp+1021
- want 0x1.fd774e958236fp+1021.
-
- The greatest observed error in the non-special region is 1.54 ULP:
- _ZGVsMxv_cosh (0x1.ba5651dd4486bp+2) got 0x1.f5e2bb8d5c98fp+8
- want 0x1.f5e2bb8d5c991p+8. */
+ The greatest observed error in special case region is 2.66 + 0.5 ULP:
+ _ZGVsMxv_cosh (0x1.633b532ffbc1ap+9) got 0x1.f9b2d3d22399ep+1023
+ want 0x1.f9b2d3d22399bp+1023
+
+ The greatest observed error in the non-special region is 1.01 + 0.5 ULP:
+ _ZGVsMxv_cosh (0x1.998ecbb3c1f81p+1) got 0x1.890b225657f84p+3
+ want 0x1.890b225657f82p+3. */
svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
@@ -92,14 +122,13 @@ svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg)
svbool_t special = svcmpgt (pg, svreinterpret_u64 (ax), d->special_bound);
/* Up to the point that exp overflows, we can use it to calculate cosh by
- exp(|x|) / 2 + 1 / (2 * exp(|x|)). */
- svfloat64_t t = exp_inline (ax, pg, d);
- svfloat64_t half_t = svmul_x (pg, t, 0.5);
- svfloat64_t half_over_t = svdivr_x (pg, t, 0.5);
+ (exp(|x|)/2 + 1) / (2 * exp(|x|)). */
+ svfloat64_t half_exp = exp_over_two_inline (pg, ax, d);
- /* Fall back to scalar for any special cases. */
+ /* Falls back to entirely standalone vectorized special case. */
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svadd_x (pg, half_t, half_over_t), special);
+ return special_case (pg, special, ax, half_exp, d);
- return svadd_x (pg, half_t, half_over_t);
+ svfloat64_t inv_twoexp = svdivr_x (pg, half_exp, 0.25);
+ return svadd_x (pg, half_exp, inv_twoexp);
}
diff --git a/sysdeps/aarch64/fpu/coshf_advsimd.c b/sysdeps/aarch64/fpu/coshf_advsimd.c
index c1ab492..35e1562 100644
--- a/sysdeps/aarch64/fpu/coshf_advsimd.c
+++ b/sysdeps/aarch64/fpu/coshf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) cosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,19 +23,27 @@
static const struct data
{
struct v_expf_data expf_consts;
- uint32x4_t tiny_bound, special_bound;
+ uint32x4_t tiny_bound;
+ float32x4_t bound;
+#if WANT_SIMD_EXCEPT
+ uint32x4_t special_bound;
+#endif
} data = {
.expf_consts = V_EXPF_DATA,
.tiny_bound = V4 (0x20000000), /* 0x1p-63: Round to 1 below this. */
/* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */
+ .bound = V4 (0x1.5a92d8p+6),
+#if WANT_SIMD_EXCEPT
.special_bound = V4 (0x42ad496c),
+#endif
};
#if !WANT_SIMD_EXCEPT
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, float32x4_t half_t, float32x4_t half_over_t,
+ uint32x4_t special)
{
- return v_call_f32 (coshf, x, y, special);
+ return v_call_f32 (coshf, x, vaddq_f32 (half_t, half_over_t), special);
}
#endif
@@ -47,14 +55,13 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- float32x4_t ax = vabsq_f32 (x);
- uint32x4_t iax = vreinterpretq_u32_f32 (ax);
- uint32x4_t special = vcgeq_u32 (iax, d->special_bound);
-
#if WANT_SIMD_EXCEPT
/* If fp exceptions are to be triggered correctly, fall back to the scalar
variant for all inputs if any input is a special value or above the bound
at which expf overflows. */
+ float32x4_t ax = vabsq_f32 (x);
+ uint32x4_t iax = vreinterpretq_u32_f32 (ax);
+ uint32x4_t special = vcgeq_u32 (iax, d->special_bound);
if (__glibc_unlikely (v_any_u32 (special)))
return v_call_f32 (coshf, x, x, v_u32 (-1));
@@ -63,10 +70,13 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x)
input to 0, which will generate no exceptions. */
if (__glibc_unlikely (v_any_u32 (tiny)))
ax = v_zerofy_f32 (ax, tiny);
+ float32x4_t t = v_expf_inline (ax, &d->expf_consts);
+#else
+ uint32x4_t special = vcageq_f32 (x, d->bound);
+ float32x4_t t = v_expf_inline (x, &d->expf_consts);
#endif
/* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */
- float32x4_t t = v_expf_inline (ax, &d->expf_consts);
float32x4_t half_t = vmulq_n_f32 (t, 0.5);
float32x4_t half_over_t = vdivq_f32 (v_f32 (0.5), t);
@@ -75,7 +85,7 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x)
return vbslq_f32 (tiny, v_f32 (1), vaddq_f32 (half_t, half_over_t));
#else
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (x, vaddq_f32 (half_t, half_over_t), special);
+ return special_case (x, half_t, half_over_t, special);
#endif
return vaddq_f32 (half_t, half_over_t);
diff --git a/sysdeps/aarch64/fpu/coshf_sve.c b/sysdeps/aarch64/fpu/coshf_sve.c
index e5d8a29..8056055 100644
--- a/sysdeps/aarch64/fpu/coshf_sve.c
+++ b/sysdeps/aarch64/fpu/coshf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) cosh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,37 +23,42 @@
static const struct data
{
struct sv_expf_data expf_consts;
- uint32_t special_bound;
+ float special_bound;
} data = {
.expf_consts = SV_EXPF_DATA,
/* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */
- .special_bound = 0x42ad496c,
+ .special_bound = 0x1.5a92d8p+6,
};
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t pg)
+special_case (svfloat32_t x, svfloat32_t half_e, svfloat32_t half_over_e,
+ svbool_t pg)
{
- return sv_call_f32 (coshf, x, y, pg);
+ return sv_call_f32 (coshf, x, svadd_x (svptrue_b32 (), half_e, half_over_e),
+ pg);
}
/* Single-precision vector cosh, using vector expf.
- Maximum error is 1.89 ULP:
- _ZGVsMxv_coshf (-0x1.65898cp+6) got 0x1.f00aep+127
- want 0x1.f00adcp+127. */
+ Maximum error is 2.56 +0.5 ULP:
+ _ZGVsMxv_coshf(-0x1.5b40f4p+1) got 0x1.e47748p+2
+ want 0x1.e4774ep+2. */
svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svfloat32_t ax = svabs_x (pg, x);
- svbool_t special = svcmpge (pg, svreinterpret_u32 (ax), d->special_bound);
+ svbool_t special = svacge (pg, x, d->special_bound);
- /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */
- svfloat32_t t = expf_inline (ax, pg, &d->expf_consts);
- svfloat32_t half_t = svmul_x (pg, t, 0.5);
- svfloat32_t half_over_t = svdivr_x (pg, t, 0.5);
+ /* Calculate cosh by exp(x) / 2 + exp(-x) / 2.
+ Note that x is passed to exp here, rather than |x|. This is to avoid using
+ destructive unary ABS for better register usage. However it means the
+ routine is not exactly symmetrical, as the exp helper is slightly less
+ accurate in the negative range. */
+ svfloat32_t e = expf_inline (x, pg, &d->expf_consts);
+ svfloat32_t half_e = svmul_x (svptrue_b32 (), e, 0.5);
+ svfloat32_t half_over_e = svdivr_x (pg, e, 0.5);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svadd_x (pg, half_t, half_over_t), special);
+ return special_case (x, half_e, half_over_e, special);
- return svadd_x (pg, half_t, half_over_t);
+ return svadd_x (svptrue_b32 (), half_e, half_over_e);
}
diff --git a/sysdeps/aarch64/fpu/cospi_advsimd.c b/sysdeps/aarch64/fpu/cospi_advsimd.c
new file mode 100644
index 0000000..dcd12c8
--- /dev/null
+++ b/sysdeps/aarch64/fpu/cospi_advsimd.c
@@ -0,0 +1,87 @@
+/* Double-precision (Advanced SIMD) cospi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+#include "poly_advsimd_f64.h"
+
+static const struct data
+{
+ float64x2_t poly[10];
+ float64x2_t range_val;
+} data = {
+ /* Polynomial coefficients generated using Remez algorithm,
+ see sinpi.sollya for details. */
+ .poly = { V2 (0x1.921fb54442d184p1), V2 (-0x1.4abbce625be53p2),
+ V2 (0x1.466bc6775ab16p1), V2 (-0x1.32d2cce62dc33p-1),
+ V2 (0x1.507834891188ep-4), V2 (-0x1.e30750a28c88ep-8),
+ V2 (0x1.e8f48308acda4p-12), V2 (-0x1.6fc0032b3c29fp-16),
+ V2 (0x1.af86ae521260bp-21), V2 (-0x1.012a9870eeb7dp-25) },
+ .range_val = V2 (0x1p63),
+};
+
+static float64x2_t VPCS_ATTR NOINLINE
+special_case (float64x2_t x, float64x2_t y, uint64x2_t odd, uint64x2_t cmp)
+{
+ /* Fall back to scalar code. */
+ y = vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), odd));
+ return v_call_f64 (cospi, x, y, cmp);
+}
+
+/* Approximation for vector double-precision cospi(x).
+ Maximum Error 3.06 ULP:
+ _ZGVnN2v_cospi(0x1.7dd4c0b03cc66p-5) got 0x1.fa854babfb6bep-1
+ want 0x1.fa854babfb6c1p-1. */
+float64x2_t VPCS_ATTR V_NAME_D1 (cospi) (float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+#if WANT_SIMD_EXCEPT
+ float64x2_t r = vabsq_f64 (x);
+ uint64x2_t cmp = vcaleq_f64 (v_f64 (0x1p64), x);
+
+ /* When WANT_SIMD_EXCEPT = 1, special lanes should be zero'd
+ to avoid them overflowing and throwing exceptions. */
+ r = v_zerofy_f64 (r, cmp);
+ uint64x2_t odd = vshlq_n_u64 (vcvtnq_u64_f64 (r), 63);
+
+#else
+ float64x2_t r = x;
+ uint64x2_t cmp = vcageq_f64 (r, d->range_val);
+ uint64x2_t odd
+ = vshlq_n_u64 (vreinterpretq_u64_s64 (vcvtaq_s64_f64 (r)), 63);
+
+#endif
+
+ r = vsubq_f64 (r, vrndaq_f64 (r));
+
+ /* cospi(x) = sinpi(0.5 - abs(x)) for values -1/2 .. 1/2. */
+ r = vsubq_f64 (v_f64 (0.5), vabsq_f64 (r));
+
+ /* y = sin(r). */
+ float64x2_t r2 = vmulq_f64 (r, r);
+ float64x2_t r4 = vmulq_f64 (r2, r2);
+ float64x2_t y = vmulq_f64 (v_pw_horner_9_f64 (r2, r4, d->poly), r);
+
+ /* Fallback to scalar. */
+ if (__glibc_unlikely (v_any_u64 (cmp)))
+ return special_case (x, y, odd, cmp);
+
+ /* Reintroduce the sign bit for inputs which round to odd. */
+ return vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), odd));
+}
diff --git a/sysdeps/aarch64/fpu/cospi_sve.c b/sysdeps/aarch64/fpu/cospi_sve.c
new file mode 100644
index 0000000..dd98815
--- /dev/null
+++ b/sysdeps/aarch64/fpu/cospi_sve.c
@@ -0,0 +1,65 @@
+/* Double-precision (SVE) cospi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+#include "poly_sve_f64.h"
+
+static const struct data
+{
+ double poly[10];
+ double range_val;
+} data = {
+ /* Polynomial coefficients generated using Remez algorithm,
+ see sinpi.sollya for details. */
+ .poly = { 0x1.921fb54442d184p1, -0x1.4abbce625be53p2, 0x1.466bc6775ab16p1,
+ -0x1.32d2cce62dc33p-1, 0x1.507834891188ep-4, -0x1.e30750a28c88ep-8,
+ 0x1.e8f48308acda4p-12, -0x1.6fc0032b3c29fp-16,
+ 0x1.af86ae521260bp-21, -0x1.012a9870eeb7dp-25 },
+ .range_val = 0x1p53,
+};
+
+/* A fast SVE implementation of cospi.
+ Maximum error 3.20 ULP:
+ _ZGVsMxv_cospi(0x1.f18ba32c63159p-6) got 0x1.fdabf595f9763p-1
+ want 0x1.fdabf595f9766p-1. */
+svfloat64_t SV_NAME_D1 (cospi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ /* Using cospi(x) = sinpi(0.5 - x)
+ range reduction and offset into sinpi range -1/2 .. 1/2
+ r = 0.5 - |x - rint(x)|. */
+ svfloat64_t n = svrinta_x (pg, x);
+ svfloat64_t r = svsub_x (pg, x, n);
+ r = svsub_x (pg, sv_f64 (0.5), svabs_x (pg, r));
+
+ /* Result should be negated based on if n is odd or not.
+ If ax >= 2^53, the result will always be positive. */
+ svbool_t cmp = svaclt (pg, x, d->range_val);
+ svuint64_t intn = svreinterpret_u64 (svcvt_s64_z (pg, n));
+ svuint64_t sign = svlsl_z (cmp, intn, 63);
+
+ /* y = sin(r). */
+ svfloat64_t r2 = svmul_x (pg, r, r);
+ svfloat64_t r4 = svmul_x (pg, r2, r2);
+ svfloat64_t y = sv_pw_horner_9_f64_x (pg, r2, r4, d->poly);
+ y = svmul_x (pg, y, r);
+
+ return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/cospif_advsimd.c b/sysdeps/aarch64/fpu/cospif_advsimd.c
new file mode 100644
index 0000000..a81471f
--- /dev/null
+++ b/sysdeps/aarch64/fpu/cospif_advsimd.c
@@ -0,0 +1,87 @@
+/* Single-precision (Advanced SIMD) cospi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+#include "poly_advsimd_f32.h"
+
+static const struct data
+{
+ float32x4_t poly[6];
+ float32x4_t range_val;
+} data = {
+ /* Taylor series coefficents for sin(pi * x). */
+ .poly = { V4 (0x1.921fb6p1f), V4 (-0x1.4abbcep2f), V4 (0x1.466bc6p1f),
+ V4 (-0x1.32d2ccp-1f), V4 (0x1.50783p-4f), V4 (-0x1.e30750p-8f) },
+ .range_val = V4 (0x1p31f),
+};
+
+static float32x4_t VPCS_ATTR NOINLINE
+special_case (float32x4_t x, float32x4_t y, uint32x4_t odd, uint32x4_t cmp)
+{
+ y = vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), odd));
+ return v_call_f32 (cospif, x, y, cmp);
+}
+
+/* Approximation for vector single-precision cospi(x)
+ Maximum Error: 3.17 ULP:
+ _ZGVnN4v_cospif(0x1.d341a8p-5) got 0x1.f7cd56p-1
+ want 0x1.f7cd5p-1. */
+float32x4_t VPCS_ATTR V_NAME_F1 (cospi) (float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+#if WANT_SIMD_EXCEPT
+ float32x4_t r = vabsq_f32 (x);
+ uint32x4_t cmp = vcaleq_f32 (v_f32 (0x1p32f), x);
+
+ /* When WANT_SIMD_EXCEPT = 1, special lanes should be zero'd
+ to avoid them overflowing and throwing exceptions. */
+ r = v_zerofy_f32 (r, cmp);
+ uint32x4_t odd = vshlq_n_u32 (vcvtnq_u32_f32 (r), 31);
+
+#else
+ float32x4_t r = x;
+ uint32x4_t cmp = vcageq_f32 (r, d->range_val);
+
+ uint32x4_t odd
+ = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (r)), 31);
+
+#endif
+
+ /* r = x - rint(x). */
+ r = vsubq_f32 (r, vrndaq_f32 (r));
+
+ /* cospi(x) = sinpi(0.5 - abs(x)) for values -1/2 .. 1/2. */
+ r = vsubq_f32 (v_f32 (0.5f), vabsq_f32 (r));
+
+ /* Pairwise Horner approximation for y = sin(r * pi). */
+ float32x4_t r2 = vmulq_f32 (r, r);
+ float32x4_t r4 = vmulq_f32 (r2, r2);
+ float32x4_t y = vmulq_f32 (v_pw_horner_5_f32 (r2, r4, d->poly), r);
+
+ /* Fallback to scalar. */
+ if (__glibc_unlikely (v_any_u32 (cmp)))
+ return special_case (x, y, odd, cmp);
+
+ /* Reintroduce the sign bit for inputs which round to odd. */
+ return vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), odd));
+}
+
+libmvec_hidden_def (V_NAME_F1 (cospi))
+HALF_WIDTH_ALIAS_F1 (cospi)
diff --git a/sysdeps/aarch64/fpu/cospif_sve.c b/sysdeps/aarch64/fpu/cospif_sve.c
new file mode 100644
index 0000000..e8980da
--- /dev/null
+++ b/sysdeps/aarch64/fpu/cospif_sve.c
@@ -0,0 +1,61 @@
+/* Single-precision (SVE) cospi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+#include "poly_sve_f32.h"
+
+static const struct data
+{
+ float poly[6];
+ float range_val;
+} data = {
+ /* Taylor series coefficents for sin(pi * x). */
+ .poly = { 0x1.921fb6p1f, -0x1.4abbcep2f, 0x1.466bc6p1f, -0x1.32d2ccp-1f,
+ 0x1.50783p-4f, -0x1.e30750p-8f },
+ .range_val = 0x1p31f,
+};
+
+/* A fast SVE implementation of cospif.
+ Maximum error: 2.60 ULP:
+ _ZGVsMxv_cospif(+/-0x1.cae664p-4) got 0x1.e09c9ep-1
+ want 0x1.e09c98p-1. */
+svfloat32_t SV_NAME_F1 (cospi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ /* Using cospi(x) = sinpi(0.5 - x)
+ range reduction and offset into sinpi range -1/2 .. 1/2
+ r = 0.5 - |x - rint(x)|. */
+ svfloat32_t n = svrinta_x (pg, x);
+ svfloat32_t r = svsub_x (pg, x, n);
+ r = svsub_x (pg, sv_f32 (0.5f), svabs_x (pg, r));
+
+ /* Result should be negated based on if n is odd or not.
+ If ax >= 2^31, the result will always be positive. */
+ svbool_t cmp = svaclt (pg, x, d->range_val);
+ svuint32_t intn = svreinterpret_u32 (svcvt_s32_x (pg, n));
+ svuint32_t sign = svlsl_z (cmp, intn, 31);
+
+ /* y = sin(r). */
+ svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t y = sv_horner_5_f32_x (pg, r2, d->poly);
+ y = svmul_x (pg, y, r);
+
+ return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/erf_advsimd.c b/sysdeps/aarch64/fpu/erf_advsimd.c
index 19cbb7d..ec1ad0b 100644
--- a/sysdeps/aarch64/fpu/erf_advsimd.c
+++ b/sysdeps/aarch64/fpu/erf_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) erf function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,19 +22,21 @@
static const struct data
{
float64x2_t third;
- float64x2_t tenth, two_over_five, two_over_fifteen;
- float64x2_t two_over_nine, two_over_fortyfive;
+ float64x2_t tenth, two_over_five, two_over_nine;
+ double two_over_fifteen, two_over_fortyfive;
float64x2_t max, shift;
+ uint64x2_t max_idx;
#if WANT_SIMD_EXCEPT
float64x2_t tiny_bound, huge_bound, scale_minus_one;
#endif
} data = {
+ .max_idx = V2 (768),
.third = V2 (0x1.5555555555556p-2), /* used to compute 2/3 and 1/6 too. */
- .two_over_fifteen = V2 (0x1.1111111111111p-3),
+ .two_over_fifteen = 0x1.1111111111111p-3,
.tenth = V2 (-0x1.999999999999ap-4),
.two_over_five = V2 (-0x1.999999999999ap-2),
.two_over_nine = V2 (-0x1.c71c71c71c71cp-3),
- .two_over_fortyfive = V2 (0x1.6c16c16c16c17p-5),
+ .two_over_fortyfive = 0x1.6c16c16c16c17p-5,
.max = V2 (5.9921875), /* 6 - 1/128. */
.shift = V2 (0x1p45),
#if WANT_SIMD_EXCEPT
@@ -56,8 +58,8 @@ static inline struct entry
lookup (uint64x2_t i)
{
struct entry e;
- float64x2_t e1 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 0)].erf),
- e2 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 1)].erf);
+ float64x2_t e1 = vld1q_f64 (&__v_erf_data.tab[vgetq_lane_u64 (i, 0)].erf),
+ e2 = vld1q_f64 (&__v_erf_data.tab[vgetq_lane_u64 (i, 1)].erf);
e.erf = vuzp1q_f64 (e1, e2);
e.scale = vuzp2q_f64 (e1, e2);
return e;
@@ -87,8 +89,8 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x)
float64x2_t a = vabsq_f64 (x);
/* Reciprocal conditions that do not catch NaNs so they can be used in BSLs
to return expected results. */
- uint64x2_t a_le_max = vcleq_f64 (a, dat->max);
- uint64x2_t a_gt_max = vcgtq_f64 (a, dat->max);
+ uint64x2_t a_le_max = vcaleq_f64 (x, dat->max);
+ uint64x2_t a_gt_max = vcagtq_f64 (x, dat->max);
#if WANT_SIMD_EXCEPT
/* |x| huge or tiny. */
@@ -115,7 +117,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x)
segfault. */
uint64x2_t i
= vsubq_u64 (vreinterpretq_u64_f64 (z), vreinterpretq_u64_f64 (shift));
- i = vbslq_u64 (a_le_max, i, v_u64 (768));
+ i = vbslq_u64 (a_le_max, i, dat->max_idx);
struct entry e = lookup (i);
float64x2_t r = vsubq_f64 (z, shift);
@@ -125,14 +127,19 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x)
float64x2_t d2 = vmulq_f64 (d, d);
float64x2_t r2 = vmulq_f64 (r, r);
+ float64x2_t two_over_fifteen_and_fortyfive
+ = vld1q_f64 (&dat->two_over_fifteen);
+
/* poly (d, r) = 1 + p1(r) * d + p2(r) * d^2 + ... + p5(r) * d^5. */
float64x2_t p1 = r;
float64x2_t p2
= vfmsq_f64 (dat->third, r2, vaddq_f64 (dat->third, dat->third));
float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->third));
- float64x2_t p4 = vfmaq_f64 (dat->two_over_five, r2, dat->two_over_fifteen);
+ float64x2_t p4 = vfmaq_laneq_f64 (dat->two_over_five, r2,
+ two_over_fifteen_and_fortyfive, 0);
p4 = vfmsq_f64 (dat->tenth, r2, p4);
- float64x2_t p5 = vfmaq_f64 (dat->two_over_nine, r2, dat->two_over_fortyfive);
+ float64x2_t p5 = vfmaq_laneq_f64 (dat->two_over_nine, r2,
+ two_over_fifteen_and_fortyfive, 1);
p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->third), r2, p5));
float64x2_t p34 = vfmaq_f64 (p3, d, p4);
diff --git a/sysdeps/aarch64/fpu/erf_data.c b/sysdeps/aarch64/fpu/erf_data.c
index 6d2dcd2..80c3f6b 100644
--- a/sysdeps/aarch64/fpu/erf_data.c
+++ b/sysdeps/aarch64/fpu/erf_data.c
@@ -1,6 +1,6 @@
/* Table for Advanced SIMD erf approximation
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,14 +19,14 @@
#include "vecmath_config.h"
-/* Lookup table used in erf.
+/* Lookup table used in vector erf.
For each possible rounded input r (multiples of 1/128), between
r = 0.0 and r = 6.0 (769 values):
- - the first entry __erff_data.tab.erf contains the values of erf(r),
- - the second entry __erff_data.tab.scale contains the values of
+ - the first entry __v_erff_data.tab.erf contains the values of erf(r),
+ - the second entry __v_erff_data.tab.scale contains the values of
2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the
algorithm, since lookup is performed only for x >= 1/64-1/512. */
-const struct erf_data __erf_data = {
+const struct v_erf_data __v_erf_data = {
.tab = { { 0x0.0000000000000p+0, 0x1.20dd750429b6dp+0 },
{ 0x1.20dbf3deb1340p-7, 0x1.20d8f1975c85dp+0 },
{ 0x1.20d77083f17a0p-6, 0x1.20cb67bd452c7p+0 },
diff --git a/sysdeps/aarch64/fpu/erf_sve.c b/sysdeps/aarch64/fpu/erf_sve.c
index 7d51417..44241d4 100644
--- a/sysdeps/aarch64/fpu/erf_sve.c
+++ b/sysdeps/aarch64/fpu/erf_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) erf function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,14 +67,16 @@ svfloat64_t SV_NAME_D1 (erf) (svfloat64_t x, const svbool_t pg)
svfloat64_t a = svabs_x (pg, x);
svfloat64_t shift = sv_f64 (dat->shift);
svfloat64_t z = svadd_x (pg, a, shift);
- svuint64_t i
- = svsub_x (pg, svreinterpret_u64 (z), svreinterpret_u64 (shift));
+ svuint64_t i = svand_x (pg, svreinterpret_u64 (z), 0xfff);
+ i = svadd_x (pg, i, i);
/* Lookup without shortcut for small values but with predicate to avoid
segfault for large values and NaNs. */
svfloat64_t r = svsub_x (pg, z, shift);
- svfloat64_t erfr = svld1_gather_index (a_lt_max, __sv_erf_data.erf, i);
- svfloat64_t scale = svld1_gather_index (a_lt_max, __sv_erf_data.scale, i);
+ svfloat64_t erfr
+ = svld1_gather_index (a_lt_max, &__v_erf_data.tab[0].erf, i);
+ svfloat64_t scale
+ = svld1_gather_index (a_lt_max, &__v_erf_data.tab[0].scale, i);
/* erf(x) ~ erf(r) + scale * d * poly (r, d). */
svfloat64_t d = svsub_x (pg, a, r);
diff --git a/sysdeps/aarch64/fpu/erfc_advsimd.c b/sysdeps/aarch64/fpu/erfc_advsimd.c
index f1b3bfe..6b0fadb 100644
--- a/sysdeps/aarch64/fpu/erfc_advsimd.c
+++ b/sysdeps/aarch64/fpu/erfc_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) erfc function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,8 +24,8 @@ static const struct data
{
uint64x2_t offset, table_scale;
float64x2_t max, shift;
- float64x2_t p20, p40, p41, p42;
- float64x2_t p51, p52;
+ float64x2_t p20, p40, p41, p51;
+ double p42, p52;
double qr5[2], qr6[2], qr7[2], qr8[2], qr9[2];
#if WANT_SIMD_EXCEPT
float64x2_t uflow_bound;
@@ -41,9 +41,9 @@ static const struct data
.p20 = V2 (0x1.5555555555555p-2), /* 1/3, used to compute 2/3 and 1/6. */
.p40 = V2 (-0x1.999999999999ap-4), /* 1/10. */
.p41 = V2 (-0x1.999999999999ap-2), /* 2/5. */
- .p42 = V2 (0x1.1111111111111p-3), /* 2/15. */
+ .p42 = 0x1.1111111111111p-3, /* 2/15. */
.p51 = V2 (-0x1.c71c71c71c71cp-3), /* 2/9. */
- .p52 = V2 (0x1.6c16c16c16c17p-5), /* 2/45. */
+ .p52 = 0x1.6c16c16c16c17p-5, /* 2/45. */
/* Qi = (i+1) / i, Ri = -2 * i / ((i+1)*(i+2)), for i = 5, ..., 9. */
.qr5 = { 0x1.3333333333333p0, -0x1.e79e79e79e79ep-3 },
.qr6 = { 0x1.2aaaaaaaaaaabp0, -0x1.b6db6db6db6dbp-3 },
@@ -69,9 +69,9 @@ lookup (uint64x2_t i)
{
struct entry e;
float64x2_t e1
- = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 0) - Off].erfc);
+ = vld1q_f64 (&__v_erfc_data.tab[vgetq_lane_u64 (i, 0) - Off].erfc);
float64x2_t e2
- = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 1) - Off].erfc);
+ = vld1q_f64 (&__v_erfc_data.tab[vgetq_lane_u64 (i, 1) - Off].erfc);
e.erfc = vuzp1q_f64 (e1, e2);
e.scale = vuzp2q_f64 (e1, e2);
return e;
@@ -157,9 +157,10 @@ float64x2_t V_NAME_D1 (erfc) (float64x2_t x)
float64x2_t p1 = r;
float64x2_t p2 = vfmsq_f64 (dat->p20, r2, vaddq_f64 (dat->p20, dat->p20));
float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->p20));
- float64x2_t p4 = vfmaq_f64 (dat->p41, r2, dat->p42);
+ float64x2_t p42_p52 = vld1q_f64 (&dat->p42);
+ float64x2_t p4 = vfmaq_laneq_f64 (dat->p41, r2, p42_p52, 0);
p4 = vfmsq_f64 (dat->p40, r2, p4);
- float64x2_t p5 = vfmaq_f64 (dat->p51, r2, dat->p52);
+ float64x2_t p5 = vfmaq_laneq_f64 (dat->p51, r2, p42_p52, 1);
p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->p20), r2, p5));
/* Compute p_i using recurrence relation:
p_{i+2} = (p_i + r * Q_{i+1} * p_{i+1}) * R_{i+1}. */
diff --git a/sysdeps/aarch64/fpu/erfc_data.c b/sysdeps/aarch64/fpu/erfc_data.c
index 76a94e4..e4b61a0 100644
--- a/sysdeps/aarch64/fpu/erfc_data.c
+++ b/sysdeps/aarch64/fpu/erfc_data.c
@@ -1,6 +1,6 @@
/* Table for Advanced SIMD erfc
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,14 +19,14 @@
#include "vecmath_config.h"
-/* Lookup table used in erfc.
+/* Lookup table used in vector erfc.
For each possible rounded input r (multiples of 1/128), between
r = 0.0 and r = ~27.0 (3488 values):
- - the first entry __erfc_data.tab.erfc contains the values of erfc(r),
- - the second entry __erfc_data.tab.scale contains the values of
+ - the first entry __v_erfc_data.tab.erfc contains the values of erfc(r),
+ - the second entry __v_erfc_data.tab.scale contains the values of
2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore
they are scaled by a large enough value 2^128 (fits in 8bit). */
-const struct erfc_data __erfc_data = {
+const struct v_erfc_data __v_erfc_data = {
.tab = { { 0x1p128, 0x1.20dd750429b6dp128 },
{ 0x1.fb7c9030853b3p127, 0x1.20d8f1975c85dp128 },
{ 0x1.f6f9447be0743p127, 0x1.20cb67bd452c7p128 },
diff --git a/sysdeps/aarch64/fpu/erfc_sve.c b/sysdeps/aarch64/fpu/erfc_sve.c
index c17d3e4..036d823 100644
--- a/sysdeps/aarch64/fpu/erfc_sve.c
+++ b/sysdeps/aarch64/fpu/erfc_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) erfc function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -104,7 +104,7 @@ svfloat64_t SV_NAME_D1 (erfc) (svfloat64_t x, const svbool_t pg)
/* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */
i = svadd_x (pg, i, i);
- const float64_t *p = &__erfc_data.tab[0].erfc - 2 * dat->off_arr;
+ const float64_t *p = &__v_erfc_data.tab[0].erfc - 2 * dat->off_arr;
svfloat64_t erfcr = svld1_gather_index (pg, p, i);
svfloat64_t scale = svld1_gather_index (pg, p + 1, i);
diff --git a/sysdeps/aarch64/fpu/erfcf_advsimd.c b/sysdeps/aarch64/fpu/erfcf_advsimd.c
index ca5bc3a..c469004 100644
--- a/sysdeps/aarch64/fpu/erfcf_advsimd.c
+++ b/sysdeps/aarch64/fpu/erfcf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) erfc function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -62,13 +62,13 @@ lookup (uint32x4_t i)
{
struct entry e;
float32x2_t t0
- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 0) - Off].erfc);
+ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 0) - Off].erfc);
float32x2_t t1
- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 1) - Off].erfc);
+ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 1) - Off].erfc);
float32x2_t t2
- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 2) - Off].erfc);
+ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 2) - Off].erfc);
float32x2_t t3
- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 3) - Off].erfc);
+ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 3) - Off].erfc);
float32x4_t e1 = vcombine_f32 (t0, t1);
float32x4_t e2 = vcombine_f32 (t2, t3);
e.erfc = vuzp1q_f32 (e1, e2);
diff --git a/sysdeps/aarch64/fpu/erfcf_data.c b/sysdeps/aarch64/fpu/erfcf_data.c
index 77fb889..b150532 100644
--- a/sysdeps/aarch64/fpu/erfcf_data.c
+++ b/sysdeps/aarch64/fpu/erfcf_data.c
@@ -1,6 +1,6 @@
/* Table for Advanced SIMD erfcf
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,14 +19,14 @@
#include "vecmath_config.h"
-/* Lookup table used in erfcf.
+/* Lookup table used in vector erfcf.
For each possible rounded input r (multiples of 1/64), between
r = 0.0 and r = 10.0625 (645 values):
- - the first entry __erfcf_data.tab.erfc contains the values of erfc(r),
- - the second entry __erfcf_data.tab.scale contains the values of
+ - the first entry __v_erfcf_data.tab.erfc contains the values of erfc(r),
+ - the second entry __v_erfcf_data.tab.scale contains the values of
2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore
they are scaled by a large enough value 2^47 (fits in 8 bits). */
-const struct erfcf_data __erfcf_data = {
+const struct v_erfcf_data __v_erfcf_data = {
.tab = { { 0x1p47, 0x1.20dd76p47 },
{ 0x1.f6f944p46, 0x1.20cb68p47 },
{ 0x1.edf3aap46, 0x1.209546p47 },
diff --git a/sysdeps/aarch64/fpu/erfcf_sve.c b/sysdeps/aarch64/fpu/erfcf_sve.c
index 48d1677..b57ab51 100644
--- a/sysdeps/aarch64/fpu/erfcf_sve.c
+++ b/sysdeps/aarch64/fpu/erfcf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) erfc function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -76,23 +76,23 @@ svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg)
svuint32_t i = svqadd (svreinterpret_u32 (z), dat->off_idx);
/* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */
- i = svmul_x (pg, i, 2);
- const float32_t *p = &__erfcf_data.tab[0].erfc - 2 * dat->off_arr;
+ i = svlsl_x (svptrue_b32 (), i, 1);
+ const float32_t *p = &__v_erfcf_data.tab[0].erfc - 2 * dat->off_arr;
svfloat32_t erfcr = svld1_gather_index (pg, p, i);
svfloat32_t scale = svld1_gather_index (pg, p + 1, i);
/* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */
svfloat32_t r = svsub_x (pg, z, shift);
svfloat32_t d = svsub_x (pg, a, r);
- svfloat32_t d2 = svmul_x (pg, d, d);
- svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t d2 = svmul_x (svptrue_b32 (), d, d);
+ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r);
svfloat32_t coeffs = svld1rq (svptrue_b32 (), &dat->third);
- svfloat32_t third = svdup_lane (coeffs, 0);
svfloat32_t p1 = r;
- svfloat32_t p2 = svmls_lane (third, r2, coeffs, 1);
- svfloat32_t p3 = svmul_x (pg, r, svmla_lane (sv_f32 (-0.5), r2, coeffs, 0));
+ svfloat32_t p2 = svmls_lane (sv_f32 (dat->third), r2, coeffs, 1);
+ svfloat32_t p3
+ = svmul_x (svptrue_b32 (), r, svmla_lane (sv_f32 (-0.5), r2, coeffs, 0));
svfloat32_t p4 = svmla_lane (sv_f32 (dat->two_over_five), r2, coeffs, 2);
p4 = svmls_x (pg, sv_f32 (dat->tenth), r2, p4);
diff --git a/sysdeps/aarch64/fpu/erff_advsimd.c b/sysdeps/aarch64/fpu/erff_advsimd.c
index f2fe6ff..72e49a7 100644
--- a/sysdeps/aarch64/fpu/erff_advsimd.c
+++ b/sysdeps/aarch64/fpu/erff_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) erf function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -47,10 +47,10 @@ static inline struct entry
lookup (uint32x4_t i)
{
struct entry e;
- float32x2_t t0 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 0)].erf);
- float32x2_t t1 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 1)].erf);
- float32x2_t t2 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 2)].erf);
- float32x2_t t3 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 3)].erf);
+ float32x2_t t0 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 0)].erf);
+ float32x2_t t1 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 1)].erf);
+ float32x2_t t2 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 2)].erf);
+ float32x2_t t3 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 3)].erf);
float32x4_t e1 = vcombine_f32 (t0, t1);
float32x4_t e2 = vcombine_f32 (t2, t3);
e.erf = vuzp1q_f32 (e1, e2);
diff --git a/sysdeps/aarch64/fpu/erff_data.c b/sysdeps/aarch64/fpu/erff_data.c
index 9a32940..e474015 100644
--- a/sysdeps/aarch64/fpu/erff_data.c
+++ b/sysdeps/aarch64/fpu/erff_data.c
@@ -1,6 +1,6 @@
/* Table for Advanced SIMD erff approximation
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,14 +19,14 @@
#include "vecmath_config.h"
-/* Lookup table used in erff.
+/* Lookup table used in vector erff.
For each possible rounded input r (multiples of 1/128), between
r = 0.0 and r = 4.0 (513 values):
- - the first entry __erff_data.tab.erf contains the values of erf(r),
- - the second entry __erff_data.tab.scale contains the values of
+ - the first entry __v_erff_data.tab.erf contains the values of erf(r),
+ - the second entry __v_erff_data.tab.scale contains the values of
2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the
algorithm, since lookup is performed only for x >= 1/64-1/512. */
-const struct erff_data __erff_data = {
+const struct v_erff_data __v_erff_data = {
.tab = { { 0x0.000000p+0, 0x1.20dd76p+0 },
{ 0x1.20dbf4p-7, 0x1.20d8f2p+0 },
{ 0x1.20d770p-6, 0x1.20cb68p+0 },
diff --git a/sysdeps/aarch64/fpu/erff_sve.c b/sysdeps/aarch64/fpu/erff_sve.c
index 38f00db..e9345fb 100644
--- a/sysdeps/aarch64/fpu/erff_sve.c
+++ b/sysdeps/aarch64/fpu/erff_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) erf function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -62,18 +62,17 @@ svfloat32_t SV_NAME_F1 (erf) (svfloat32_t x, const svbool_t pg)
svfloat32_t shift = sv_f32 (dat->shift);
svfloat32_t z = svadd_x (pg, a, shift);
- svuint32_t i
- = svsub_x (pg, svreinterpret_u32 (z), svreinterpret_u32 (shift));
-
- /* Saturate lookup index. */
- i = svsel (a_ge_max, sv_u32 (512), i);
+ svuint32_t i = svand_x (pg, svreinterpret_u32 (z), 0xfff);
+ i = svadd_x (pg, i, i);
/* r and erf(r) set to 0 for |x| below min. */
svfloat32_t r = svsub_z (a_gt_min, z, shift);
- svfloat32_t erfr = svld1_gather_index (a_gt_min, __sv_erff_data.erf, i);
+ svfloat32_t erfr
+ = svld1_gather_index (a_gt_min, &__v_erff_data.tab[0].erf, i);
/* scale set to 2/sqrt(pi) for |x| below min. */
- svfloat32_t scale = svld1_gather_index (a_gt_min, __sv_erff_data.scale, i);
+ svfloat32_t scale
+ = svld1_gather_index (a_gt_min, &__v_erff_data.tab[0].scale, i);
scale = svsel (a_gt_min, scale, sv_f32 (dat->scale));
/* erf(x) ~ erf(r) + scale * d * (1 - r * d + 1/3 * d^2). */
diff --git a/sysdeps/aarch64/fpu/exp10_advsimd.c b/sysdeps/aarch64/fpu/exp10_advsimd.c
index eeb31ca..1417787 100644
--- a/sysdeps/aarch64/fpu/exp10_advsimd.c
+++ b/sysdeps/aarch64/fpu/exp10_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) exp10 function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/exp10_sve.c b/sysdeps/aarch64/fpu/exp10_sve.c
index ddf6470..53b2893 100644
--- a/sysdeps/aarch64/fpu/exp10_sve.c
+++ b/sysdeps/aarch64/fpu/exp10_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) exp10 function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,21 +18,23 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
#define SpecialBound 307.0 /* floor (log10 (2^1023)). */
static const struct data
{
- double poly[5];
+ double c1, c3, c2, c4, c0;
double shift, log10_2, log2_10_hi, log2_10_lo, scale_thres, special_bound;
} data = {
/* Coefficients generated using Remez algorithm.
rel error: 0x1.9fcb9b3p-60
abs error: 0x1.a20d9598p-60 in [ -log10(2)/128, log10(2)/128 ]
max ulp err 0.52 +0.5. */
- .poly = { 0x1.26bb1bbb55516p1, 0x1.53524c73cd32ap1, 0x1.0470591daeafbp1,
- 0x1.2bd77b1361ef6p0, 0x1.142b5d54e9621p-1 },
+ .c0 = 0x1.26bb1bbb55516p1,
+ .c1 = 0x1.53524c73cd32ap1,
+ .c2 = 0x1.0470591daeafbp1,
+ .c3 = 0x1.2bd77b1361ef6p0,
+ .c4 = 0x1.142b5d54e9621p-1,
/* 1.5*2^46+1023. This value is further explained below. */
.shift = 0x1.800000000ffc0p+46,
.log10_2 = 0x1.a934f0979a371p1, /* 1/log2(10). */
@@ -70,9 +72,9 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n,
/* |n| > 1280 => 2^(n) overflows. */
svbool_t p_cmp = svacgt (pg, n, d->scale_thres);
- svfloat64_t r1 = svmul_x (pg, s1, s1);
+ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1);
svfloat64_t r2 = svmla_x (pg, s2, s2, y);
- svfloat64_t r0 = svmul_x (pg, r2, s1);
+ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1);
return svsel (p_cmp, r1, r0);
}
@@ -103,11 +105,14 @@ svfloat64_t SV_NAME_D1 (exp10) (svfloat64_t x, svbool_t pg)
comes at significant performance cost. */
svuint64_t u = svreinterpret_u64 (z);
svfloat64_t scale = svexpa (u);
-
+ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2);
/* Approximate exp10(r) using polynomial. */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t y = svmla_x (pg, svmul_x (pg, r, d->poly[0]), r2,
- sv_pairwise_poly_3_f64_x (pg, r, r2, d->poly + 1));
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), r, c24, 0);
+ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), r, c24, 1);
+ svfloat64_t p14 = svmla_x (pg, p12, p34, r2);
+
+ svfloat64_t y = svmla_x (pg, svmul_x (svptrue_b64 (), r, d->c0), r2, p14);
/* Assemble result as exp10(x) = 2^n * exp10(r). If |x| > SpecialBound
multiplication may overflow, so use special case routine. */
diff --git a/sysdeps/aarch64/fpu/exp10f_advsimd.c b/sysdeps/aarch64/fpu/exp10f_advsimd.c
index cf53e73..47726ed 100644
--- a/sysdeps/aarch64/fpu/exp10f_advsimd.c
+++ b/sysdeps/aarch64/fpu/exp10f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) exp10 function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,16 +18,15 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
#define ScaleBound 192.0f
static const struct data
{
- float32x4_t poly[5];
- float log10_2_and_inv[4];
- float32x4_t shift;
-
+ float32x4_t c0, c1, c3;
+ float log10_2_high, log10_2_low, c2, c4;
+ float32x4_t inv_log10_2, special_bound;
+ uint32x4_t exponent_bias, special_offset, special_bias;
#if !WANT_SIMD_EXCEPT
float32x4_t scale_thresh;
#endif
@@ -37,19 +36,24 @@ static const struct data
rel error: 0x1.89dafa3p-24
abs error: 0x1.167d55p-23 in [-log10(2)/2, log10(2)/2]
maxerr: 1.85943 +0.5 ulp. */
- .poly = { V4 (0x1.26bb16p+1f), V4 (0x1.5350d2p+1f), V4 (0x1.04744ap+1f),
- V4 (0x1.2d8176p+0f), V4 (0x1.12b41ap-1f) },
- .shift = V4 (0x1.8p23f),
-
- /* Stores constants 1/log10(2), log10(2)_high, log10(2)_low, 0. */
- .log10_2_and_inv = { 0x1.a934fp+1, 0x1.344136p-2, -0x1.ec10cp-27, 0 },
+ .c0 = V4 (0x1.26bb16p+1f),
+ .c1 = V4 (0x1.5350d2p+1f),
+ .c2 = 0x1.04744ap+1f,
+ .c3 = V4 (0x1.2d8176p+0f),
+ .c4 = 0x1.12b41ap-1f,
+ .inv_log10_2 = V4 (0x1.a934fp+1),
+ .log10_2_high = 0x1.344136p-2,
+ .log10_2_low = 0x1.ec10cp-27,
+ /* rint (log2 (2^127 / (1 + sqrt (2)))). */
+ .special_bound = V4 (126.0f),
+ .exponent_bias = V4 (0x3f800000),
+ .special_offset = V4 (0x82000000),
+ .special_bias = V4 (0x7f000000),
#if !WANT_SIMD_EXCEPT
.scale_thresh = V4 (ScaleBound)
#endif
};
-#define ExponentBias v_u32 (0x3f800000)
-
#if WANT_SIMD_EXCEPT
# define SpecialBound 38.0f /* rint(log10(2^127)). */
@@ -67,17 +71,15 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp)
#else
-# define SpecialBound 126.0f /* rint (log2 (2^127 / (1 + sqrt (2)))). */
-# define SpecialOffset v_u32 (0x82000000)
-# define SpecialBias v_u32 (0x7f000000)
+# define SpecialBound 126.0f
static float32x4_t VPCS_ATTR NOINLINE
special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1,
float32x4_t scale, const struct data *d)
{
/* 2^n may overflow, break it up into s1*s2. */
- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset);
- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias));
+ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset);
+ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias));
float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b));
uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh);
float32x4_t r2 = vmulq_f32 (s1, s1);
@@ -112,23 +114,23 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp10) (float32x4_t x)
/* exp10(x) = 2^n * 10^r = 2^n * (1 + poly (r)),
with poly(r) in [1/sqrt(2), sqrt(2)] and
x = r + n * log10 (2), with r in [-log10(2)/2, log10(2)/2]. */
- float32x4_t log10_2_and_inv = vld1q_f32 (d->log10_2_and_inv);
- float32x4_t z = vfmaq_laneq_f32 (d->shift, x, log10_2_and_inv, 0);
- float32x4_t n = vsubq_f32 (z, d->shift);
- float32x4_t r = vfmsq_laneq_f32 (x, n, log10_2_and_inv, 1);
- r = vfmsq_laneq_f32 (r, n, log10_2_and_inv, 2);
- uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23);
+ float32x4_t log10_2_c24 = vld1q_f32 (&d->log10_2_high);
+ float32x4_t n = vrndaq_f32 (vmulq_f32 (x, d->inv_log10_2));
+ float32x4_t r = vfmsq_laneq_f32 (x, n, log10_2_c24, 0);
+ r = vfmaq_laneq_f32 (r, n, log10_2_c24, 1);
+ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (n)), 23);
- float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias));
+ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
#if !WANT_SIMD_EXCEPT
- uint32x4_t cmp = vcagtq_f32 (n, v_f32 (SpecialBound));
+ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound);
#endif
float32x4_t r2 = vmulq_f32 (r, r);
- float32x4_t poly
- = vfmaq_f32 (vmulq_f32 (r, d->poly[0]),
- v_pairwise_poly_3_f32 (r, r2, d->poly + 1), r2);
+ float32x4_t p12 = vfmaq_laneq_f32 (d->c1, r, log10_2_c24, 2);
+ float32x4_t p34 = vfmaq_laneq_f32 (d->c3, r, log10_2_c24, 3);
+ float32x4_t p14 = vfmaq_f32 (p12, r2, p34);
+ float32x4_t poly = vfmaq_f32 (vmulq_f32 (r, d->c0), p14, r2);
if (__glibc_unlikely (v_any_u32 (cmp)))
#if WANT_SIMD_EXCEPT
diff --git a/sysdeps/aarch64/fpu/exp10f_sve.c b/sysdeps/aarch64/fpu/exp10f_sve.c
index e09b2f3..f3e7f8b 100644
--- a/sysdeps/aarch64/fpu/exp10f_sve.c
+++ b/sysdeps/aarch64/fpu/exp10f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) exp10 function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,74 +18,70 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
-/* For x < -SpecialBound, the result is subnormal and not handled correctly by
- FEXPA. */
-#define SpecialBound 37.9
+/* For x < -Thres (-log10(2^126)), the result is subnormal and not handled
+ correctly by FEXPA. */
+#define Thres 0x1.2f702p+5
static const struct data
{
- float poly[5];
- float shift, log10_2, log2_10_hi, log2_10_lo, special_bound;
+ float log10_2, log2_10_hi, log2_10_lo, c1;
+ float c0, shift, thres;
} data = {
/* Coefficients generated using Remez algorithm with minimisation of relative
- error.
- rel error: 0x1.89dafa3p-24
- abs error: 0x1.167d55p-23 in [-log10(2)/2, log10(2)/2]
- maxerr: 0.52 +0.5 ulp. */
- .poly = { 0x1.26bb16p+1f, 0x1.5350d2p+1f, 0x1.04744ap+1f, 0x1.2d8176p+0f,
- 0x1.12b41ap-1f },
+ error. */
+ .c0 = 0x1.26bb62p1,
+ .c1 = 0x1.53524cp1,
/* 1.5*2^17 + 127, a shift value suitable for FEXPA. */
- .shift = 0x1.903f8p17f,
+ .shift = 0x1.803f8p17f,
.log10_2 = 0x1.a934fp+1,
.log2_10_hi = 0x1.344136p-2,
.log2_10_lo = -0x1.ec10cp-27,
- .special_bound = SpecialBound,
+ .thres = Thres,
};
-static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
-{
- return sv_call_f32 (exp10f, x, y, special);
-}
-
-/* Single-precision SVE exp10f routine. Implements the same algorithm
- as AdvSIMD exp10f.
- Worst case error is 1.02 ULPs.
- _ZGVsMxv_exp10f(-0x1.040488p-4) got 0x1.ba5f9ep-1
- want 0x1.ba5f9cp-1. */
-svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg)
+static inline svfloat32_t
+sv_exp10f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)
{
- const struct data *d = ptr_barrier (&data);
/* exp10(x) = 2^(n/N) * 10^r = 2^n * (1 + poly (r)),
with poly(r) in [1/sqrt(2), sqrt(2)] and
x = r + n * log10(2) / N, with r in [-log10(2)/2N, log10(2)/2N]. */
-
- /* Load some constants in quad-word chunks to minimise memory access (last
- lane is wasted). */
- svfloat32_t log10_2_and_inv = svld1rq (svptrue_b32 (), &d->log10_2);
+ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->log10_2);
/* n = round(x/(log10(2)/N)). */
svfloat32_t shift = sv_f32 (d->shift);
- svfloat32_t z = svmla_lane (shift, x, log10_2_and_inv, 0);
+ svfloat32_t z = svmla_lane (shift, x, lane_consts, 0);
svfloat32_t n = svsub_x (pg, z, shift);
/* r = x - n*log10(2)/N. */
- svfloat32_t r = svmls_lane (x, n, log10_2_and_inv, 1);
- r = svmls_lane (r, n, log10_2_and_inv, 2);
+ svfloat32_t r = x;
+ r = svmls_lane (r, n, lane_consts, 1);
+ r = svmls_lane (r, n, lane_consts, 2);
- svbool_t special = svacgt (pg, x, d->special_bound);
svfloat32_t scale = svexpa (svreinterpret_u32 (z));
/* Polynomial evaluation: poly(r) ~ exp10(r)-1. */
- svfloat32_t r2 = svmul_x (pg, r, r);
- svfloat32_t poly
- = svmla_x (pg, svmul_x (pg, r, d->poly[0]),
- sv_pairwise_poly_3_f32_x (pg, r, r2, d->poly + 1), r2);
+ svfloat32_t poly = svmla_lane (sv_f32 (d->c0), r, lane_consts, 3);
+ poly = svmul_x (pg, poly, r);
+ return svmla_x (pg, scale, scale, poly);
+}
- if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (pg, scale, scale, poly), special);
+static svfloat32_t NOINLINE
+special_case (svfloat32_t x, svbool_t special, const struct data *d)
+{
+ return sv_call_f32 (exp10f, x, sv_exp10f_inline (x, svptrue_b32 (), d),
+ special);
+}
- return svmla_x (pg, scale, scale, poly);
+/* Single-precision SVE exp10f routine. Based on the FEXPA instruction.
+ Worst case error is 1.10 ULP.
+ _ZGVsMxv_exp10f (0x1.cc76dep+3) got 0x1.be0172p+47
+ want 0x1.be017p+47. */
+svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t special = svacgt (pg, x, d->thres);
+ if (__glibc_unlikely (svptest_any (special, special)))
+ return special_case (x, special, d);
+ return sv_exp10f_inline (x, pg, d);
}
diff --git a/sysdeps/aarch64/fpu/exp2_advsimd.c b/sysdeps/aarch64/fpu/exp2_advsimd.c
index ae1e63d..71affe8 100644
--- a/sysdeps/aarch64/fpu/exp2_advsimd.c
+++ b/sysdeps/aarch64/fpu/exp2_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/exp2_sve.c b/sysdeps/aarch64/fpu/exp2_sve.c
index 22848eb..c135852 100644
--- a/sysdeps/aarch64/fpu/exp2_sve.c
+++ b/sysdeps/aarch64/fpu/exp2_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,25 +18,22 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
-
-#define N (1 << V_EXP_TABLE_BITS)
#define BigBound 1022
#define UOFlowBound 1280
static const struct data
{
- double poly[4];
+ double c2, c4;
+ double c0, c1, c3;
double shift, big_bound, uoflow_bound;
} data = {
/* Coefficients are computed using Remez algorithm with
minimisation of the absolute error. */
- .poly = { 0x1.62e42fefa3686p-1, 0x1.ebfbdff82c241p-3, 0x1.c6b09b16de99ap-5,
- 0x1.3b2abf5571ad8p-7 },
- .shift = 0x1.8p52 / N,
- .uoflow_bound = UOFlowBound,
- .big_bound = BigBound,
+ .c0 = 0x1.62e42fefa39efp-1, .c1 = 0x1.ebfbdff82a31bp-3,
+ .c2 = 0x1.c6b08d706c8a5p-5, .c3 = 0x1.3b2ad2ff7d2f3p-7,
+ .c4 = 0x1.5d8761184beb3p-10, .shift = 0x1.800000000ffc0p+46,
+ .uoflow_bound = UOFlowBound, .big_bound = BigBound,
};
#define SpecialOffset 0x6000000000000000 /* 0x1p513. */
@@ -65,47 +62,52 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n,
svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b));
/* |n| > 1280 => 2^(n) overflows. */
- svbool_t p_cmp = svacgt (pg, n, d->uoflow_bound);
+ svbool_t p_cmp = svacle (pg, n, d->uoflow_bound);
- svfloat64_t r1 = svmul_x (pg, s1, s1);
+ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1);
svfloat64_t r2 = svmla_x (pg, s2, s2, y);
- svfloat64_t r0 = svmul_x (pg, r2, s1);
+ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1);
- return svsel (p_cmp, r1, r0);
+ return svsel (p_cmp, r0, r1);
}
/* Fast vector implementation of exp2.
- Maximum measured error is 1.65 ulp.
- _ZGVsMxv_exp2(-0x1.4c264ab5b559bp-6) got 0x1.f8db0d4df721fp-1
- want 0x1.f8db0d4df721dp-1. */
+ Maximum measured error is 0.52 + 0.5 ulp.
+ _ZGVsMxv_exp2 (0x1.3b72ad5b701bfp-1) got 0x1.8861641b49e08p+0
+ want 0x1.8861641b49e07p+0. */
svfloat64_t SV_NAME_D1 (exp2) (svfloat64_t x, svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svbool_t no_big_scale = svacle (pg, x, d->big_bound);
- svbool_t special = svnot_z (pg, no_big_scale);
-
- /* Reduce x to k/N + r, where k is integer and r in [-1/2N, 1/2N]. */
- svfloat64_t shift = sv_f64 (d->shift);
- svfloat64_t kd = svadd_x (pg, x, shift);
- svuint64_t ki = svreinterpret_u64 (kd);
- /* kd = k/N. */
- kd = svsub_x (pg, kd, shift);
- svfloat64_t r = svsub_x (pg, x, kd);
-
- /* scale ~= 2^(k/N). */
- svuint64_t idx = svand_x (pg, ki, N - 1);
- svuint64_t sbits = svld1_gather_index (pg, __v_exp_data, idx);
- /* This is only a valid scale when -1023*N < k < 1024*N. */
- svuint64_t top = svlsl_x (pg, ki, 52 - V_EXP_TABLE_BITS);
- svfloat64_t scale = svreinterpret_f64 (svadd_x (pg, sbits, top));
+ svbool_t special = svacge (pg, x, d->big_bound);
+
+ svfloat64_t z = svadd_x (svptrue_b64 (), x, d->shift);
+ svfloat64_t n = svsub_x (svptrue_b64 (), z, d->shift);
+ svfloat64_t r = svsub_x (svptrue_b64 (), x, n);
+
+ svfloat64_t scale = svexpa (svreinterpret_u64 (z));
+
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2);
/* Approximate exp2(r) using polynomial. */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t p = sv_pairwise_poly_3_f64_x (pg, r, r2, d->poly);
- svfloat64_t y = svmul_x (pg, r, p);
+ /* y = exp2(r) - 1 ~= r * (C0 + C1 r + C2 r^2 + C3 r^3 + C4 r^4). */
+ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), r, c24, 0);
+ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), r, c24, 1);
+ svfloat64_t p = svmla_x (pg, p12, p34, r2);
+ p = svmad_x (pg, p, r, d->c0);
+ svfloat64_t y = svmul_x (svptrue_b64 (), r, p);
/* Assemble exp2(x) = exp2(r) * scale. */
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (pg, scale, y, kd, d);
+ {
+ /* FEXPA zeroes the sign bit, however the sign is meaningful to the
+ special case function so needs to be copied.
+ e = sign bit of u << 46. */
+ svuint64_t e = svand_x (pg, svlsl_x (pg, svreinterpret_u64 (z), 46),
+ 0x8000000000000000);
+ scale = svreinterpret_f64 (svadd_x (pg, e, svreinterpret_u64 (scale)));
+ return special_case (pg, scale, y, n, d);
+ }
+
return svmla_x (pg, scale, scale, y);
}
diff --git a/sysdeps/aarch64/fpu/exp2f_advsimd.c b/sysdeps/aarch64/fpu/exp2f_advsimd.c
index 69e0b19..7cbce0d 100644
--- a/sysdeps/aarch64/fpu/exp2f_advsimd.c
+++ b/sysdeps/aarch64/fpu/exp2f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,24 +21,28 @@
static const struct data
{
- float32x4_t poly[5];
- uint32x4_t exponent_bias;
+ float32x4_t c1, c3;
+ uint32x4_t exponent_bias, special_offset, special_bias;
#if !WANT_SIMD_EXCEPT
- float32x4_t special_bound, scale_thresh;
+ float32x4_t scale_thresh, special_bound;
#endif
+ float c0, c2, c4, zero;
} data = {
/* maxerr: 1.962 ulp. */
- .poly = { V4 (0x1.59977ap-10f), V4 (0x1.3ce9e4p-7f), V4 (0x1.c6bd32p-5f),
- V4 (0x1.ebf9bcp-3f), V4 (0x1.62e422p-1f) },
+ .c0 = 0x1.59977ap-10f,
+ .c1 = V4 (0x1.3ce9e4p-7f),
+ .c2 = 0x1.c6bd32p-5f,
+ .c3 = V4 (0x1.ebf9bcp-3f),
+ .c4 = 0x1.62e422p-1f,
.exponent_bias = V4 (0x3f800000),
+ .special_offset = V4 (0x82000000),
+ .special_bias = V4 (0x7f000000),
#if !WANT_SIMD_EXCEPT
.special_bound = V4 (126.0f),
.scale_thresh = V4 (192.0f),
#endif
};
-#define C(i) d->poly[i]
-
#if WANT_SIMD_EXCEPT
# define TinyBound v_u32 (0x20000000) /* asuint (0x1p-63). */
@@ -55,16 +59,13 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp)
#else
-# define SpecialOffset v_u32 (0x82000000)
-# define SpecialBias v_u32 (0x7f000000)
-
static float32x4_t VPCS_ATTR NOINLINE
special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1,
float32x4_t scale, const struct data *d)
{
/* 2^n may overflow, break it up into s1*s2. */
- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset);
- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias));
+ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset);
+ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias));
float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b));
uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh);
float32x4_t r2 = vmulq_f32 (s1, s1);
@@ -80,13 +81,11 @@ special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1,
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp2) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- float32x4_t n, r, r2, scale, p, q, poly;
- uint32x4_t cmp, e;
#if WANT_SIMD_EXCEPT
/* asuint(|x|) - TinyBound >= BigBound - TinyBound. */
uint32x4_t ia = vreinterpretq_u32_f32 (vabsq_f32 (x));
- cmp = vcgeq_u32 (vsubq_u32 (ia, TinyBound), SpecialBound);
+ uint32x4_t cmp = vcgeq_u32 (vsubq_u32 (ia, TinyBound), SpecialBound);
float32x4_t xm = x;
/* If any lanes are special, mask them with 1 and retain a copy of x to allow
special_case to fix special lanes later. This is only necessary if fenv
@@ -95,23 +94,24 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp2) (float32x4_t x)
x = vbslq_f32 (cmp, v_f32 (1), x);
#endif
- /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
- x = n + r, with r in [-1/2, 1/2]. */
- n = vrndaq_f32 (x);
- r = vsubq_f32 (x, n);
- e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (x)), 23);
- scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
+ /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
+ x = n + r, with r in [-1/2, 1/2]. */
+ float32x4_t n = vrndaq_f32 (x);
+ float32x4_t r = vsubq_f32 (x, n);
+ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (x)), 23);
+ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
#if !WANT_SIMD_EXCEPT
- cmp = vcagtq_f32 (n, d->special_bound);
+ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound);
#endif
- r2 = vmulq_f32 (r, r);
- p = vfmaq_f32 (C (1), C (0), r);
- q = vfmaq_f32 (C (3), C (2), r);
+ float32x4_t c024 = vld1q_f32 (&d->c0);
+ float32x4_t r2 = vmulq_f32 (r, r);
+ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, c024, 0);
+ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, c024, 1);
q = vfmaq_f32 (q, p, r2);
- p = vmulq_f32 (C (4), r);
- poly = vfmaq_f32 (p, q, r2);
+ p = vmulq_laneq_f32 (r, c024, 2);
+ float32x4_t poly = vfmaq_f32 (p, q, r2);
if (__glibc_unlikely (v_any_u32 (cmp)))
#if WANT_SIMD_EXCEPT
diff --git a/sysdeps/aarch64/fpu/exp2f_sve.c b/sysdeps/aarch64/fpu/exp2f_sve.c
index 8a686e3..989cefb 100644
--- a/sysdeps/aarch64/fpu/exp2f_sve.c
+++ b/sysdeps/aarch64/fpu/exp2f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,60 +18,57 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
#define Thres 0x1.5d5e2ap+6f
static const struct data
{
- float poly[5];
- float shift, thres;
+ float c0, c1, shift, thres;
} data = {
- /* Coefficients copied from the polynomial in AdvSIMD variant, reversed for
- compatibility with polynomial helpers. */
- .poly = { 0x1.62e422p-1f, 0x1.ebf9bcp-3f, 0x1.c6bd32p-5f, 0x1.3ce9e4p-7f,
- 0x1.59977ap-10f },
+ /* Coefficients generated using Remez algorithm with minimisation of relative
+ error. */
+ .c0 = 0x1.62e485p-1,
+ .c1 = 0x1.ebfbe0p-3,
/* 1.5*2^17 + 127. */
- .shift = 0x1.903f8p17f,
+ .shift = 0x1.803f8p17f,
/* Roughly 87.3. For x < -Thres, the result is subnormal and not handled
correctly by FEXPA. */
.thres = Thres,
};
-static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
-{
- return sv_call_f32 (exp2f, x, y, special);
-}
-
-/* Single-precision SVE exp2f routine. Implements the same algorithm
- as AdvSIMD exp2f.
- Worst case error is 1.04 ULPs.
- SV_NAME_F1 (exp2)(0x1.943b9p-1) got 0x1.ba7eb2p+0
- want 0x1.ba7ebp+0. */
-svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg)
+static inline svfloat32_t
+sv_exp2f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)
{
- const struct data *d = ptr_barrier (&data);
/* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
x = n + r, with r in [-1/2, 1/2]. */
- svfloat32_t shift = sv_f32 (d->shift);
- svfloat32_t z = svadd_x (pg, x, shift);
- svfloat32_t n = svsub_x (pg, z, shift);
- svfloat32_t r = svsub_x (pg, x, n);
+ svfloat32_t z = svadd_x (svptrue_b32 (), x, d->shift);
+ svfloat32_t n = svsub_x (svptrue_b32 (), z, d->shift);
+ svfloat32_t r = svsub_x (svptrue_b32 (), x, n);
- svbool_t special = svacgt (pg, x, d->thres);
svfloat32_t scale = svexpa (svreinterpret_u32 (z));
- /* Polynomial evaluation: poly(r) ~ exp2(r)-1.
- Evaluate polynomial use hybrid scheme - offset ESTRIN by 1 for
- coefficients 1 to 4, and apply most significant coefficient directly. */
- svfloat32_t r2 = svmul_x (pg, r, r);
- svfloat32_t p14 = sv_pairwise_poly_3_f32_x (pg, r, r2, d->poly + 1);
- svfloat32_t p0 = svmul_x (pg, r, d->poly[0]);
- svfloat32_t poly = svmla_x (pg, p0, r2, p14);
-
- if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (pg, scale, scale, poly), special);
+ svfloat32_t poly = svmla_x (pg, sv_f32 (d->c0), r, sv_f32 (d->c1));
+ poly = svmul_x (svptrue_b32 (), poly, r);
return svmla_x (pg, scale, scale, poly);
}
+
+static svfloat32_t NOINLINE
+special_case (svfloat32_t x, svbool_t special, const struct data *d)
+{
+ return sv_call_f32 (exp2f, x, sv_exp2f_inline (x, svptrue_b32 (), d),
+ special);
+}
+
+/* Single-precision SVE exp2f routine, based on the FEXPA instruction.
+ Worst case error is 1.09 ULPs.
+ _ZGVsMxv_exp2f (0x1.9a2a94p-1) got 0x1.be1054p+0
+ want 0x1.be1052p+0. */
+svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+ svbool_t special = svacgt (pg, x, d->thres);
+ if (__glibc_unlikely (svptest_any (special, special)))
+ return special_case (x, special, d);
+ return sv_exp2f_inline (x, pg, d);
+}
diff --git a/sysdeps/aarch64/fpu/exp_advsimd.c b/sysdeps/aarch64/fpu/exp_advsimd.c
index 5e3a9a0..bd97012 100644
--- a/sysdeps/aarch64/fpu/exp_advsimd.c
+++ b/sysdeps/aarch64/fpu/exp_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) exp function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/exp_sve.c b/sysdeps/aarch64/fpu/exp_sve.c
index aabaaa1..dc04948 100644
--- a/sysdeps/aarch64/fpu/exp_sve.c
+++ b/sysdeps/aarch64/fpu/exp_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) exp function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,12 +21,15 @@
static const struct data
{
- double poly[4];
+ double c0, c2;
+ double c1, c3;
double ln2_hi, ln2_lo, inv_ln2, shift, thres;
+
} data = {
- .poly = { /* ulp error: 0.53. */
- 0x1.fffffffffdbcdp-2, 0x1.555555555444cp-3, 0x1.555573c6a9f7dp-5,
- 0x1.1111266d28935p-7 },
+ .c0 = 0x1.fffffffffdbcdp-2,
+ .c1 = 0x1.555555555444cp-3,
+ .c2 = 0x1.555573c6a9f7dp-5,
+ .c3 = 0x1.1111266d28935p-7,
.ln2_hi = 0x1.62e42fefa3800p-1,
.ln2_lo = 0x1.ef35793c76730p-45,
/* 1/ln2. */
@@ -36,7 +39,6 @@ static const struct data
.thres = 704.0,
};
-#define C(i) sv_f64 (d->poly[i])
#define SpecialOffset 0x6000000000000000 /* 0x1p513. */
/* SpecialBias1 + SpecialBias1 = asuint(1.0). */
#define SpecialBias1 0x7000000000000000 /* 0x1p769. */
@@ -56,20 +58,20 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n)
svuint64_t b
= svdup_u64_z (p_sign, SpecialOffset); /* Inactive lanes set to 0. */
- /* Set s1 to generate overflow depending on sign of exponent n. */
- svfloat64_t s1 = svreinterpret_f64 (
- svsubr_x (pg, b, SpecialBias1)); /* 0x70...0 - b. */
- /* Offset s to avoid overflow in final result if n is below threshold. */
+ /* Set s1 to generate overflow depending on sign of exponent n,
+ ie. s1 = 0x70...0 - b. */
+ svfloat64_t s1 = svreinterpret_f64 (svsubr_x (pg, b, SpecialBias1));
+ /* Offset s to avoid overflow in final result if n is below threshold.
+ ie. s2 = as_u64 (s) - 0x3010...0 + b. */
svfloat64_t s2 = svreinterpret_f64 (
- svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2),
- b)); /* as_u64 (s) - 0x3010...0 + b. */
+ svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b));
/* |n| > 1280 => 2^(n) overflows. */
svbool_t p_cmp = svacgt (pg, n, 1280.0);
- svfloat64_t r1 = svmul_x (pg, s1, s1);
+ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1);
svfloat64_t r2 = svmla_x (pg, s2, s2, y);
- svfloat64_t r0 = svmul_x (pg, r2, s1);
+ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1);
return svsel (p_cmp, r1, r0);
}
@@ -103,16 +105,16 @@ svfloat64_t SV_NAME_D1 (exp) (svfloat64_t x, const svbool_t pg)
svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2);
svuint64_t u = svreinterpret_u64 (z);
svfloat64_t n = svsub_x (pg, z, d->shift);
-
+ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1);
/* r = x - n * ln2, r is in [-ln2/(2N), ln2/(2N)]. */
svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
svfloat64_t r = svmls_lane (x, n, ln2, 0);
r = svmls_lane (r, n, ln2, 1);
/* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5. */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t p01 = svmla_x (pg, C (0), C (1), r);
- svfloat64_t p23 = svmla_x (pg, C (2), C (3), r);
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1);
svfloat64_t p04 = svmla_x (pg, p01, p23, r2);
svfloat64_t y = svmla_x (pg, r, p04, r2);
diff --git a/sysdeps/aarch64/fpu/expf_advsimd.c b/sysdeps/aarch64/fpu/expf_advsimd.c
index 99d2e64..f1e93b8 100644
--- a/sysdeps/aarch64/fpu/expf_advsimd.c
+++ b/sysdeps/aarch64/fpu/expf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) exp function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,21 +21,25 @@
static const struct data
{
- float32x4_t poly[5];
- float32x4_t shift, inv_ln2, ln2_hi, ln2_lo;
- uint32x4_t exponent_bias;
+ float32x4_t c1, c3, c4, inv_ln2;
+ float ln2_hi, ln2_lo, c0, c2;
+ uint32x4_t exponent_bias, special_offset, special_bias;
#if !WANT_SIMD_EXCEPT
float32x4_t special_bound, scale_thresh;
#endif
} data = {
/* maxerr: 1.45358 +0.5 ulp. */
- .poly = { V4 (0x1.0e4020p-7f), V4 (0x1.573e2ep-5f), V4 (0x1.555e66p-3f),
- V4 (0x1.fffdb6p-2f), V4 (0x1.ffffecp-1f) },
- .shift = V4 (0x1.8p23f),
+ .c0 = 0x1.0e4020p-7f,
+ .c1 = V4 (0x1.573e2ep-5f),
+ .c2 = 0x1.555e66p-3f,
+ .c3 = V4 (0x1.fffdb6p-2f),
+ .c4 = V4 (0x1.ffffecp-1f),
.inv_ln2 = V4 (0x1.715476p+0f),
- .ln2_hi = V4 (0x1.62e4p-1f),
- .ln2_lo = V4 (0x1.7f7d1cp-20f),
+ .ln2_hi = 0x1.62e4p-1f,
+ .ln2_lo = 0x1.7f7d1cp-20f,
.exponent_bias = V4 (0x3f800000),
+ .special_offset = V4 (0x82000000),
+ .special_bias = V4 (0x7f000000),
#if !WANT_SIMD_EXCEPT
.special_bound = V4 (126.0f),
.scale_thresh = V4 (192.0f),
@@ -60,19 +64,17 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp)
#else
-# define SpecialOffset v_u32 (0x82000000)
-# define SpecialBias v_u32 (0x7f000000)
-
static float32x4_t VPCS_ATTR NOINLINE
special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1,
float32x4_t scale, const struct data *d)
{
/* 2^n may overflow, break it up into s1*s2. */
- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset);
- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias));
+ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset);
+ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias));
float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b));
uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh);
float32x4_t r2 = vmulq_f32 (s1, s1);
+ // (s2 + p*s2)*s1 = s2(p+1)s1
float32x4_t r1 = vmulq_f32 (vfmaq_f32 (s2, poly, s2), s1);
/* Similar to r1 but avoids double rounding in the subnormal range. */
float32x4_t r0 = vfmaq_f32 (scale, poly, scale);
@@ -85,12 +87,11 @@ special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1,
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- float32x4_t n, r, r2, scale, p, q, poly, z;
- uint32x4_t cmp, e;
+ float32x4_t ln2_c02 = vld1q_f32 (&d->ln2_hi);
#if WANT_SIMD_EXCEPT
/* asuint(x) - TinyBound >= BigBound - TinyBound. */
- cmp = vcgeq_u32 (
+ uint32x4_t cmp = vcgeq_u32 (
vsubq_u32 (vandq_u32 (vreinterpretq_u32_f32 (x), v_u32 (0x7fffffff)),
TinyBound),
SpecialBound);
@@ -104,23 +105,22 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp) (float32x4_t x)
/* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
x = ln2*n + r, with r in [-ln2/2, ln2/2]. */
- z = vfmaq_f32 (d->shift, x, d->inv_ln2);
- n = vsubq_f32 (z, d->shift);
- r = vfmsq_f32 (x, n, d->ln2_hi);
- r = vfmsq_f32 (r, n, d->ln2_lo);
- e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23);
- scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
+ float32x4_t n = vrndaq_f32 (vmulq_f32 (x, d->inv_ln2));
+ float32x4_t r = vfmsq_laneq_f32 (x, n, ln2_c02, 0);
+ r = vfmsq_laneq_f32 (r, n, ln2_c02, 1);
+ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 23);
+ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
#if !WANT_SIMD_EXCEPT
- cmp = vcagtq_f32 (n, d->special_bound);
+ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound);
#endif
- r2 = vmulq_f32 (r, r);
- p = vfmaq_f32 (C (1), C (0), r);
- q = vfmaq_f32 (C (3), C (2), r);
+ float32x4_t r2 = vmulq_f32 (r, r);
+ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, ln2_c02, 2);
+ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, ln2_c02, 3);
q = vfmaq_f32 (q, p, r2);
- p = vmulq_f32 (C (4), r);
- poly = vfmaq_f32 (p, q, r2);
+ p = vmulq_f32 (d->c4, r);
+ float32x4_t poly = vfmaq_f32 (p, q, r2);
if (__glibc_unlikely (v_any_u32 (cmp)))
#if WANT_SIMD_EXCEPT
diff --git a/sysdeps/aarch64/fpu/expf_sve.c b/sysdeps/aarch64/fpu/expf_sve.c
index 3ba79bc..c361997 100644
--- a/sysdeps/aarch64/fpu/expf_sve.c
+++ b/sysdeps/aarch64/fpu/expf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) exp function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,72 +18,36 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
+#include "sv_expf_inline.h"
+
+/* Roughly 87.3. For x < -Thres, the result is subnormal and not handled
+ correctly by FEXPA. */
+#define Thres 0x1.5d5e2ap+6f
static const struct data
{
- float poly[5];
- float inv_ln2, ln2_hi, ln2_lo, shift, thres;
+ struct sv_expf_data d;
+ float thres;
} data = {
- /* Coefficients copied from the polynomial in AdvSIMD variant, reversed for
- compatibility with polynomial helpers. */
- .poly = { 0x1.ffffecp-1f, 0x1.fffdb6p-2f, 0x1.555e66p-3f, 0x1.573e2ep-5f,
- 0x1.0e4020p-7f },
- .inv_ln2 = 0x1.715476p+0f,
- .ln2_hi = 0x1.62e4p-1f,
- .ln2_lo = 0x1.7f7d1cp-20f,
- /* 1.5*2^17 + 127. */
- .shift = 0x1.903f8p17f,
- /* Roughly 87.3. For x < -Thres, the result is subnormal and not handled
- correctly by FEXPA. */
- .thres = 0x1.5d5e2ap+6f,
+ .d = SV_EXPF_DATA,
+ .thres = Thres,
};
-#define C(i) sv_f32 (d->poly[i])
-#define ExponentBias 0x3f800000
-
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svfloat32_t x, svbool_t special, const struct sv_expf_data *d)
{
- return sv_call_f32 (expf, x, y, special);
+ return sv_call_f32 (expf, x, expf_inline (x, svptrue_b32 (), d), special);
}
/* Optimised single-precision SVE exp function.
- Worst-case error is 1.04 ulp:
- SV_NAME_F1 (exp)(0x1.a8eda4p+1) got 0x1.ba74bcp+4
- want 0x1.ba74bap+4. */
+ Worst-case error is 0.88 +0.50 ULP:
+ _ZGVsMxv_expf(-0x1.bba276p-6) got 0x1.f25288p-1
+ want 0x1.f2528ap-1. */
svfloat32_t SV_NAME_F1 (exp) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
-
- /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
- x = ln2*n + r, with r in [-ln2/2, ln2/2]. */
-
- /* Load some constants in quad-word chunks to minimise memory access (last
- lane is wasted). */
- svfloat32_t invln2_and_ln2 = svld1rq (svptrue_b32 (), &d->inv_ln2);
-
- /* n = round(x/(ln2/N)). */
- svfloat32_t z = svmla_lane (sv_f32 (d->shift), x, invln2_and_ln2, 0);
- svfloat32_t n = svsub_x (pg, z, d->shift);
-
- /* r = x - n*ln2/N. */
- svfloat32_t r = svmls_lane (x, n, invln2_and_ln2, 1);
- r = svmls_lane (r, n, invln2_and_ln2, 2);
-
- /* scale = 2^(n/N). */
svbool_t is_special_case = svacgt (pg, x, d->thres);
- svfloat32_t scale = svexpa (svreinterpret_u32 (z));
-
- /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */
- svfloat32_t p12 = svmla_x (pg, C (1), C (2), r);
- svfloat32_t p34 = svmla_x (pg, C (3), C (4), r);
- svfloat32_t r2 = svmul_x (pg, r, r);
- svfloat32_t p14 = svmla_x (pg, p12, p34, r2);
- svfloat32_t p0 = svmul_x (pg, r, C (0));
- svfloat32_t poly = svmla_x (pg, p0, r2, p14);
-
if (__glibc_unlikely (svptest_any (pg, is_special_case)))
- return special_case (x, svmla_x (pg, scale, scale, poly), is_special_case);
-
- return svmla_x (pg, scale, scale, poly);
+ return special_case (x, is_special_case, &d->d);
+ return expf_inline (x, pg, &d->d);
}
diff --git a/sysdeps/aarch64/fpu/expm1_advsimd.c b/sysdeps/aarch64/fpu/expm1_advsimd.c
index 3db3b80..01e7292 100644
--- a/sysdeps/aarch64/fpu/expm1_advsimd.c
+++ b/sysdeps/aarch64/fpu/expm1_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD expm1
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,31 +18,18 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
+#include "v_expm1_inline.h"
static const struct data
{
- float64x2_t poly[11];
- float64x2_t invln2;
- double ln2[2];
- float64x2_t shift;
- int64x2_t exponent_bias;
+ struct v_expm1_data d;
#if WANT_SIMD_EXCEPT
uint64x2_t thresh, tiny_bound;
#else
float64x2_t oflow_bound;
#endif
} data = {
- /* Generated using fpminimax, with degree=12 in [log(2)/2, log(2)/2]. */
- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5),
- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10),
- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16),
- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22),
- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29) },
- .invln2 = V2 (0x1.71547652b82fep0),
- .ln2 = { 0x1.62e42fefa39efp-1, 0x1.abc9e3b39803fp-56 },
- .shift = V2 (0x1.8p52),
- .exponent_bias = V2 (0x3ff0000000000000),
+ .d = V_EXPM1_DATA,
#if WANT_SIMD_EXCEPT
/* asuint64(oflow_bound) - asuint64(0x1p-51), shifted left by 1 for abs
compare. */
@@ -58,67 +45,36 @@ static const struct data
};
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
+special_case (float64x2_t x, uint64x2_t special, const struct data *d)
{
- return v_call_f64 (expm1, x, y, special);
+ return v_call_f64 (expm1, x, expm1_inline (v_zerofy_f64 (x, special), &d->d),
+ special);
}
/* Double-precision vector exp(x) - 1 function.
- The maximum error observed error is 2.18 ULP:
- _ZGVnN2v_expm1 (0x1.634ba0c237d7bp-2) got 0x1.a8b9ea8d66e22p-2
- want 0x1.a8b9ea8d66e2p-2. */
+ The maximum error observed error is 2.05 ULP:
+ _ZGVnN2v_expm1(0x1.634902eaff3adp-2) got 0x1.a8b636e2a9388p-2
+ want 0x1.a8b636e2a9386p-2. */
float64x2_t VPCS_ATTR V_NAME_D1 (expm1) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
- uint64x2_t ix = vreinterpretq_u64_f64 (x);
-
#if WANT_SIMD_EXCEPT
+ uint64x2_t ix = vreinterpretq_u64_f64 (x);
/* If fp exceptions are to be triggered correctly, fall back to scalar for
|x| < 2^-51, |x| > oflow_bound, Inf & NaN. Add ix to itself for
shift-left by 1, and compare with thresh which was left-shifted offline -
this is effectively an absolute compare. */
uint64x2_t special
= vcgeq_u64 (vsubq_u64 (vaddq_u64 (ix, ix), d->tiny_bound), d->thresh);
- if (__glibc_unlikely (v_any_u64 (special)))
- x = v_zerofy_f64 (x, special);
#else
/* Large input, NaNs and Infs. */
uint64x2_t special = vcageq_f64 (x, d->oflow_bound);
#endif
- /* Reduce argument to smaller range:
- Let i = round(x / ln2)
- and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
- where 2^i is exact because i is an integer. */
- float64x2_t n = vsubq_f64 (vfmaq_f64 (d->shift, d->invln2, x), d->shift);
- int64x2_t i = vcvtq_s64_f64 (n);
- float64x2_t ln2 = vld1q_f64 (&d->ln2[0]);
- float64x2_t f = vfmsq_laneq_f64 (x, n, ln2, 0);
- f = vfmsq_laneq_f64 (f, n, ln2, 1);
-
- /* Approximate expm1(f) using polynomial.
- Taylor expansion for expm1(x) has the form:
- x + ax^2 + bx^3 + cx^4 ....
- So we calculate the polynomial P(f) = a + bf + cf^2 + ...
- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
- float64x2_t f2 = vmulq_f64 (f, f);
- float64x2_t f4 = vmulq_f64 (f2, f2);
- float64x2_t f8 = vmulq_f64 (f4, f4);
- float64x2_t p = vfmaq_f64 (f, f2, v_estrin_10_f64 (f, f2, f4, f8, d->poly));
-
- /* Assemble the result.
- expm1(x) ~= 2^i * (p + 1) - 1
- Let t = 2^i. */
- int64x2_t u = vaddq_s64 (vshlq_n_s64 (i, 52), d->exponent_bias);
- float64x2_t t = vreinterpretq_f64_s64 (u);
-
if (__glibc_unlikely (v_any_u64 (special)))
- return special_case (vreinterpretq_f64_u64 (ix),
- vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t),
- special);
+ return special_case (x, special, d);
/* expm1(x) ~= p * t + (t - 1). */
- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t);
+ return expm1_inline (x, &d->d);
}
diff --git a/sysdeps/aarch64/fpu/expm1_sve.c b/sysdeps/aarch64/fpu/expm1_sve.c
index c933cf9..b1d940b 100644
--- a/sysdeps/aarch64/fpu/expm1_sve.c
+++ b/sysdeps/aarch64/fpu/expm1_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE expm1
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,82 +18,164 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
-#define SpecialBound 0x1.62b7d369a5aa9p+9
-#define ExponentBias 0x3ff0000000000000
+#define FexpaBound 0x1.4cb5ecef28adap-3 /* 15*ln2/64. */
+#define SpecialBound 0x1.628c2855bfaddp+9 /* ln(2^(1023 + 1/128)). */
static const struct data
{
- double poly[11];
- double shift, inv_ln2, special_bound;
- /* To be loaded in one quad-word. */
+ double c2, c4;
+ double inv_ln2;
double ln2_hi, ln2_lo;
+ double c0, c1, c3;
+ double shift, thres;
+ uint64_t expm1_data[32];
} data = {
- /* Generated using fpminimax. */
- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5,
- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, 0x1.a01a01affa35dp-13,
- 0x1.a01a018b4ecbbp-16, 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22,
- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, },
-
- .special_bound = SpecialBound,
- .inv_ln2 = 0x1.71547652b82fep0,
- .ln2_hi = 0x1.62e42fefa39efp-1,
- .ln2_lo = 0x1.abc9e3b39803fp-56,
- .shift = 0x1.8p52,
+ /* Table emulating FEXPA - 1, for values of FEXPA close to 1.
+ The table holds values of 2^(i/64) - 1, computed in arbitrary precision.
+ The first half of the table stores values associated to i from 0 to 15.
+ The second half of the table stores values associated to i from 0 to -15. */
+ .expm1_data = {
+ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901,
+ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb,
+ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2,
+ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a,
+ 0x0000000000000000, 0xbfc331751ec3a814, 0xbfc20224341286e4, 0xbfc0cf85bed0f8b7,
+ 0xbfbf332113d56b1f, 0xbfbcc0768d4175a6, 0xbfba46f918837cb7, 0xbfb7c695afc3b424,
+ 0xbfb53f391822dbc7, 0xbfb2b0cfe1266bd4, 0xbfb01b466423250a, 0xbfaafd11874c009e,
+ 0xbfa5b505d5b6f268, 0xbfa05e4119ea5d89, 0xbf95f134923757f3, 0xbf860f9f985bc9f4,
+ },
+
+ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */
+ .c0 = 0x1p-1,
+ .c1 = 0x1.55555555548f9p-3,
+ .c2 = 0x1.5555555554c22p-5,
+ .c3 = 0x1.111123aaa2fb2p-7,
+ .c4 = 0x1.6c16d77d98e5bp-10,
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
+ .inv_ln2 = 0x1.71547652b82fep+0,
+ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */
+ .thres = SpecialBound,
};
-static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t pg)
+#define SpecialOffset 0x6000000000000000 /* 0x1p513. */
+/* SpecialBias1 + SpecialBias1 = asuint(1.0). */
+#define SpecialBias1 0x7000000000000000 /* 0x1p769. */
+#define SpecialBias2 0x3010000000000000 /* 0x1p-254. */
+
+static NOINLINE svfloat64_t
+special_case (svbool_t pg, svfloat64_t y, svfloat64_t s, svfloat64_t p,
+ svfloat64_t n)
{
- return sv_call_f64 (expm1, x, y, pg);
+ /* s=2^n may overflow, break it up into s=s1*s2,
+ such that exp = s + s*y can be computed as s1*(s2+s2*y)
+ and s1*s1 overflows only if n>0. */
+
+ /* If n<=0 then set b to 0x6, 0 otherwise. */
+ svbool_t p_sign = svcmple (pg, n, 0.0); /* n <= 0. */
+ svuint64_t b
+ = svdup_u64_z (p_sign, SpecialOffset); /* Inactive lanes set to 0. */
+
+ /* Set s1 to generate overflow depending on sign of exponent n,
+ ie. s1 = 0x70...0 - b. */
+ svfloat64_t s1 = svreinterpret_f64 (svsubr_x (pg, b, SpecialBias1));
+ /* Offset s to avoid overflow in final result if n is below threshold.
+ ie. s2 = as_u64 (s) - 0x3010...0 + b. */
+ svfloat64_t s2 = svreinterpret_f64 (
+ svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b));
+
+ /* |n| > 1280 => 2^(n) overflows. */
+ svbool_t p_cmp = svacgt (pg, n, 1280.0);
+
+ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1);
+ svfloat64_t r2 = svmla_x (pg, s2, s2, p);
+ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1);
+
+ svbool_t is_safe = svacle (pg, n, 1023); /* Only correct special lanes. */
+ return svsel (is_safe, y, svsub_x (pg, svsel (p_cmp, r1, r0), 1.0));
}
-/* Double-precision vector exp(x) - 1 function.
- The maximum error observed error is 2.18 ULP:
- _ZGVsMxv_expm1(0x1.634ba0c237d7bp-2) got 0x1.a8b9ea8d66e22p-2
- want 0x1.a8b9ea8d66e2p-2. */
+/* FEXPA based SVE expm1 algorithm.
+ Maximum measured error is 2.81 + 0.5 ULP:
+ _ZGVsMxv_expm1 (0x1.974060e619bfp-3) got 0x1.c290e5858bb53p-3
+ want 0x1.c290e5858bb5p-3. */
svfloat64_t SV_NAME_D1 (expm1) (svfloat64_t x, svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- /* Large, Nan/Inf. */
- svbool_t special = svnot_z (pg, svaclt (pg, x, d->special_bound));
-
- /* Reduce argument to smaller range:
- Let i = round(x / ln2)
- and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
- where 2^i is exact because i is an integer. */
- svfloat64_t shift = sv_f64 (d->shift);
- svfloat64_t n = svsub_x (pg, svmla_x (pg, shift, x, d->inv_ln2), shift);
- svint64_t i = svcvt_s64_x (pg, n);
- svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
- svfloat64_t f = svmls_lane (x, n, ln2, 0);
- f = svmls_lane (f, n, ln2, 1);
-
- /* Approximate expm1(f) using polynomial.
- Taylor expansion for expm1(x) has the form:
- x + ax^2 + bx^3 + cx^4 ....
- So we calculate the polynomial P(f) = a + bf + cf^2 + ...
- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
- svfloat64_t f2 = svmul_x (pg, f, f);
- svfloat64_t f4 = svmul_x (pg, f2, f2);
- svfloat64_t f8 = svmul_x (pg, f4, f4);
- svfloat64_t p
- = svmla_x (pg, f, f2, sv_estrin_10_f64_x (pg, f, f2, f4, f8, d->poly));
-
- /* Assemble the result.
- expm1(x) ~= 2^i * (p + 1) - 1
- Let t = 2^i. */
- svint64_t u = svadd_x (pg, svlsl_x (pg, i, 52), ExponentBias);
- svfloat64_t t = svreinterpret_f64 (u);
-
- /* expm1(x) ~= p * t + (t - 1). */
- svfloat64_t y = svmla_x (pg, svsub_x (pg, t, 1), p, t);
+ svbool_t special = svacgt (pg, x, d->thres);
- if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, y, special);
+ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2);
+ svuint64_t u = svreinterpret_u64 (z);
+ svfloat64_t n = svsub_x (pg, z, d->shift);
+ /* r = x - n * ln2, r is in [-ln2/128, ln2/128]. */
+ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
+ svfloat64_t r = x;
+ r = svmls_lane (r, n, ln2, 0);
+ r = svmls_lane (r, n, ln2, 1);
+
+ /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2);
+
+ svfloat64_t p;
+ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0);
+ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1);
+ p = svmad_x (pg, c34, r2, c12);
+ p = svmad_x (pg, p, r, sv_f64 (d->c0));
+ p = svmad_x (pg, p, r2, r);
+
+ svfloat64_t scale = svexpa (u);
+ svfloat64_t scalem1 = svsub_x (pg, scale, sv_f64 (1.0));
+
+ /* We want to construct expm1(x) = (scale - 1) + scale * poly.
+ However, for values of scale close to 1, scale-1 causes large ULP errors
+ due to cancellation.
+
+ This can be circumvented by using a small lookup for scale-1
+ when our input is below a certain bound, otherwise we can use FEXPA.
+
+ This bound is based upon the table size:
+ Bound = (TableSize-1/64) * ln2.
+ The current bound is based upon a table size of 16. */
+ svbool_t is_small = svaclt (pg, x, FexpaBound);
+
+ if (svptest_any (pg, is_small))
+ {
+ /* Index via the input of FEXPA, but we only care about the lower 4 bits.
+ */
+ svuint64_t base_idx = svand_x (pg, u, 0xf);
+
+ /* We can use the sign of x as a fifth bit to account for the asymmetry
+ of e^x around 0. */
+ svuint64_t signBit
+ = svlsl_x (pg, svlsr_x (pg, svreinterpret_u64 (x), 63), 4);
+ svuint64_t idx = svorr_x (pg, base_idx, signBit);
+
+ /* Lookup values for scale - 1 for small x. */
+ svfloat64_t lookup = svreinterpret_f64 (
+ svld1_gather_index (is_small, d->expm1_data, idx));
+
+ /* Select the appropriate scale - 1 value based on x. */
+ scalem1 = svsel (is_small, lookup, scalem1);
+ }
+
+ svfloat64_t y = svmla_x (pg, scalem1, scale, p);
+
+ /* FEXPA returns nan for large inputs so we special case those. */
+ if (__glibc_unlikely (svptest_any (pg, special)))
+ {
+ /* FEXPA zeroes the sign bit, however the sign is meaningful to the
+ special case function so needs to be copied.
+ e = sign bit of u << 46. */
+ svuint64_t e = svand_x (pg, svlsl_x (pg, u, 46), 0x8000000000000000);
+ /* Copy sign to s. */
+ scale = svreinterpret_f64 (svadd_x (pg, e, svreinterpret_u64 (scale)));
+ return special_case (pg, y, scale, p, n);
+ }
+
+ /* return expm1 = (scale - 1) + (scale * poly). */
return y;
}
diff --git a/sysdeps/aarch64/fpu/expm1f_advsimd.c b/sysdeps/aarch64/fpu/expm1f_advsimd.c
index a0616ec..a5712cf 100644
--- a/sysdeps/aarch64/fpu/expm1f_advsimd.c
+++ b/sysdeps/aarch64/fpu/expm1f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD expm1
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,27 +18,18 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
+#include "v_expm1f_inline.h"
static const struct data
{
- float32x4_t poly[5];
- float invln2_and_ln2[4];
- float32x4_t shift;
- int32x4_t exponent_bias;
+ struct v_expm1f_data d;
#if WANT_SIMD_EXCEPT
uint32x4_t thresh;
#else
float32x4_t oflow_bound;
#endif
} data = {
- /* Generated using fpminimax with degree=5 in [-log(2)/2, log(2)/2]. */
- .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5),
- V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) },
- /* Stores constants: invln2, ln2_hi, ln2_lo, 0. */
- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 },
- .shift = V4 (0x1.8p23f),
- .exponent_bias = V4 (0x3f800000),
+ .d = V_EXPM1F_DATA,
#if !WANT_SIMD_EXCEPT
/* Value above which expm1f(x) should overflow. Absolute value of the
underflow bound is greater than this, so it catches both cases - there is
@@ -55,67 +46,38 @@ static const struct data
#define TinyBound v_u32 (0x34000000 << 1)
static float32x4_t VPCS_ATTR NOINLINE
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, uint32x4_t special, const struct data *d)
{
- return v_call_f32 (expm1f, x, y, special);
+ return v_call_f32 (
+ expm1f, x, expm1f_inline (v_zerofy_f32 (x, special), &d->d), special);
}
/* Single-precision vector exp(x) - 1 function.
- The maximum error is 1.51 ULP:
- _ZGVnN4v_expm1f (0x1.8baa96p-2) got 0x1.e2fb9p-2
- want 0x1.e2fb94p-2. */
+ The maximum error is 1.62 ULP:
+ _ZGVnN4v_expm1f(0x1.85f83p-2) got 0x1.da9f4p-2
+ want 0x1.da9f44p-2. */
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (expm1) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- uint32x4_t ix = vreinterpretq_u32_f32 (x);
#if WANT_SIMD_EXCEPT
+ uint32x4_t ix = vreinterpretq_u32_f32 (x);
/* If fp exceptions are to be triggered correctly, fall back to scalar for
|x| < 2^-23, |x| > oflow_bound, Inf & NaN. Add ix to itself for
shift-left by 1, and compare with thresh which was left-shifted offline -
this is effectively an absolute compare. */
uint32x4_t special
= vcgeq_u32 (vsubq_u32 (vaddq_u32 (ix, ix), TinyBound), d->thresh);
- if (__glibc_unlikely (v_any_u32 (special)))
- x = v_zerofy_f32 (x, special);
#else
/* Handles very large values (+ve and -ve), +/-NaN, +/-Inf. */
uint32x4_t special = vcagtq_f32 (x, d->oflow_bound);
#endif
- /* Reduce argument to smaller range:
- Let i = round(x / ln2)
- and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
- where 2^i is exact because i is an integer. */
- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2);
- float32x4_t j
- = vsubq_f32 (vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0), d->shift);
- int32x4_t i = vcvtq_s32_f32 (j);
- float32x4_t f = vfmsq_laneq_f32 (x, j, invln2_and_ln2, 1);
- f = vfmsq_laneq_f32 (f, j, invln2_and_ln2, 2);
-
- /* Approximate expm1(f) using polynomial.
- Taylor expansion for expm1(x) has the form:
- x + ax^2 + bx^3 + cx^4 ....
- So we calculate the polynomial P(f) = a + bf + cf^2 + ...
- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
- float32x4_t p = v_horner_4_f32 (f, d->poly);
- p = vfmaq_f32 (f, vmulq_f32 (f, f), p);
-
- /* Assemble the result.
- expm1(x) ~= 2^i * (p + 1) - 1
- Let t = 2^i. */
- int32x4_t u = vaddq_s32 (vshlq_n_s32 (i, 23), d->exponent_bias);
- float32x4_t t = vreinterpretq_f32_s32 (u);
-
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (vreinterpretq_f32_u32 (ix),
- vfmaq_f32 (vsubq_f32 (t, v_f32 (1.0f)), p, t),
- special);
+ return special_case (x, special, d);
/* expm1(x) ~= p * t + (t - 1). */
- return vfmaq_f32 (vsubq_f32 (t, v_f32 (1.0f)), p, t);
+ return expm1f_inline (x, &d->d);
}
libmvec_hidden_def (V_NAME_F1 (expm1))
HALF_WIDTH_ALIAS_F1 (expm1)
diff --git a/sysdeps/aarch64/fpu/expm1f_sve.c b/sysdeps/aarch64/fpu/expm1f_sve.c
index 7c85212..21cb2e1 100644
--- a/sysdeps/aarch64/fpu/expm1f_sve.c
+++ b/sysdeps/aarch64/fpu/expm1f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE expm1
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,6 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
/* Largest value of x for which expm1(x) should round to -1. */
#define SpecialBound 0x1.5ebc4p+6f
@@ -28,20 +27,17 @@ static const struct data
/* These 4 are grouped together so they can be loaded as one quadword, then
used with _lane forms of svmla/svmls. */
float c2, c4, ln2_hi, ln2_lo;
- float c0, c1, c3, inv_ln2, special_bound, shift;
+ float c0, inv_ln2, c1, c3, special_bound;
} data = {
/* Generated using fpminimax. */
.c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3,
.c2 = 0x1.555736p-5, .c3 = 0x1.12287cp-7,
- .c4 = 0x1.6b55a2p-10,
+ .c4 = 0x1.6b55a2p-10, .inv_ln2 = 0x1.715476p+0f,
+ .special_bound = SpecialBound, .ln2_lo = 0x1.7f7d1cp-20f,
+ .ln2_hi = 0x1.62e4p-1f,
- .special_bound = SpecialBound, .shift = 0x1.8p23f,
- .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f,
- .ln2_lo = 0x1.7f7d1cp-20f,
};
-#define C(i) sv_f32 (d->c##i)
-
static svfloat32_t NOINLINE
special_case (svfloat32_t x, svbool_t pg)
{
@@ -71,9 +67,8 @@ svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, svbool_t pg)
and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
where 2^i is exact because i is an integer. */
- svfloat32_t j = svmla_x (pg, sv_f32 (d->shift), x, d->inv_ln2);
- j = svsub_x (pg, j, d->shift);
- svint32_t i = svcvt_s32_x (pg, j);
+ svfloat32_t j = svmul_x (svptrue_b32 (), x, d->inv_ln2);
+ j = svrinta_x (pg, j);
svfloat32_t f = svmls_lane (x, j, lane_constants, 2);
f = svmls_lane (f, j, lane_constants, 3);
@@ -83,17 +78,17 @@ svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, svbool_t pg)
x + ax^2 + bx^3 + cx^4 ....
So we calculate the polynomial P(f) = a + bf + cf^2 + ...
and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
- svfloat32_t p12 = svmla_lane (C (1), f, lane_constants, 0);
- svfloat32_t p34 = svmla_lane (C (3), f, lane_constants, 1);
- svfloat32_t f2 = svmul_x (pg, f, f);
+ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), f, lane_constants, 0);
+ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), f, lane_constants, 1);
+ svfloat32_t f2 = svmul_x (svptrue_b32 (), f, f);
svfloat32_t p = svmla_x (pg, p12, f2, p34);
- p = svmla_x (pg, C (0), f, p);
+
+ p = svmla_x (pg, sv_f32 (d->c0), f, p);
p = svmla_x (pg, f, f2, p);
/* Assemble the result.
expm1(x) ~= 2^i * (p + 1) - 1
Let t = 2^i. */
- svfloat32_t t = svreinterpret_f32 (
- svadd_x (pg, svreinterpret_u32 (svlsl_x (pg, i, 23)), 0x3f800000));
- return svmla_x (pg, svsub_x (pg, t, 1), p, t);
+ svfloat32_t t = svscale_x (pg, sv_f32 (1.0f), svcvt_s32_x (pg, j));
+ return svmla_x (pg, svsub_x (pg, t, 1.0f), p, t);
}
diff --git a/sysdeps/aarch64/fpu/fclrexcpt.c b/sysdeps/aarch64/fpu/fclrexcpt.c
index cbc7afd..841794a 100644
--- a/sysdeps/aarch64/fpu/fclrexcpt.c
+++ b/sysdeps/aarch64/fpu/fclrexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fedisblxcpt.c b/sysdeps/aarch64/fpu/fedisblxcpt.c
index 7f5284a..ee4e2d8 100644
--- a/sysdeps/aarch64/fpu/fedisblxcpt.c
+++ b/sysdeps/aarch64/fpu/fedisblxcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/feenablxcpt.c b/sysdeps/aarch64/fpu/feenablxcpt.c
index a03604a..0d214fc 100644
--- a/sysdeps/aarch64/fpu/feenablxcpt.c
+++ b/sysdeps/aarch64/fpu/feenablxcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fegetenv.c b/sysdeps/aarch64/fpu/fegetenv.c
index 0b83aea..eb8117c 100644
--- a/sysdeps/aarch64/fpu/fegetenv.c
+++ b/sysdeps/aarch64/fpu/fegetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fegetexcept.c b/sysdeps/aarch64/fpu/fegetexcept.c
index 5c3f02a..9fb2cb5 100644
--- a/sysdeps/aarch64/fpu/fegetexcept.c
+++ b/sysdeps/aarch64/fpu/fegetexcept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fegetmode.c b/sysdeps/aarch64/fpu/fegetmode.c
index f1d743c..de9454c 100644
--- a/sysdeps/aarch64/fpu/fegetmode.c
+++ b/sysdeps/aarch64/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. AArch64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/fegetround.c b/sysdeps/aarch64/fpu/fegetround.c
index c7243e4..d6758c9 100644
--- a/sysdeps/aarch64/fpu/fegetround.c
+++ b/sysdeps/aarch64/fpu/fegetround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/feholdexcpt.c b/sysdeps/aarch64/fpu/feholdexcpt.c
index 3948cfd..79ae549 100644
--- a/sysdeps/aarch64/fpu/feholdexcpt.c
+++ b/sysdeps/aarch64/fpu/feholdexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fenv_private.h b/sysdeps/aarch64/fpu/fenv_private.h
index 0052656..eb16572 100644
--- a/sysdeps/aarch64/fpu/fenv_private.h
+++ b/sysdeps/aarch64/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. AArch64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/fesetenv.c b/sysdeps/aarch64/fpu/fesetenv.c
index f51c44f..6a0df36 100644
--- a/sysdeps/aarch64/fpu/fesetenv.c
+++ b/sysdeps/aarch64/fpu/fesetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fesetexcept.c b/sysdeps/aarch64/fpu/fesetexcept.c
index c610e74..6913973 100644
--- a/sysdeps/aarch64/fpu/fesetexcept.c
+++ b/sysdeps/aarch64/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. AArch64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/fesetmode.c b/sysdeps/aarch64/fpu/fesetmode.c
index 669594e..d6b3682 100644
--- a/sysdeps/aarch64/fpu/fesetmode.c
+++ b/sysdeps/aarch64/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. AArch64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/fesetround.c b/sysdeps/aarch64/fpu/fesetround.c
index def7872..cd0c3bc 100644
--- a/sysdeps/aarch64/fpu/fesetround.c
+++ b/sysdeps/aarch64/fpu/fesetround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/feupdateenv.c b/sysdeps/aarch64/fpu/feupdateenv.c
index f3f0525..4690e84 100644
--- a/sysdeps/aarch64/fpu/feupdateenv.c
+++ b/sysdeps/aarch64/fpu/feupdateenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/fgetexcptflg.c b/sysdeps/aarch64/fpu/fgetexcptflg.c
index 932a96f..a65b295 100644
--- a/sysdeps/aarch64/fpu/fgetexcptflg.c
+++ b/sysdeps/aarch64/fpu/fgetexcptflg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h b/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h
index 92e15f0..d753035 100644
--- a/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h
@@ -1,5 +1,5 @@
! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*-
-! Copyright (C) 2019-2024 Free Software Foundation, Inc.
+! Copyright (C) 2019-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/finite_pow.h b/sysdeps/aarch64/fpu/finite_pow.h
index 84c93d4..bbe6d2d 100644
--- a/sysdeps/aarch64/fpu/finite_pow.h
+++ b/sysdeps/aarch64/fpu/finite_pow.h
@@ -1,6 +1,6 @@
/* Double-precision x^y function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/fpu_control.h b/sysdeps/aarch64/fpu/fpu_control.h
index 263cf36..a93dbf5 100644
--- a/sysdeps/aarch64/fpu/fpu_control.h
+++ b/sysdeps/aarch64/fpu/fpu_control.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -29,17 +29,31 @@
# define _FPU_GETFPSR(fpsr) (fpsr = __builtin_aarch64_get_fpsr ())
# define _FPU_SETFPSR(fpsr) __builtin_aarch64_set_fpsr (fpsr)
#else
-# define _FPU_GETCW(fpcr) \
- __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr))
-
-# define _FPU_SETCW(fpcr) \
- __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr))
-
-# define _FPU_GETFPSR(fpsr) \
- __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr))
-
-# define _FPU_SETFPSR(fpsr) \
- __asm__ __volatile__ ("msr fpsr, %0" : : "r" (fpsr))
+# define _FPU_GETCW(fpcr) \
+ ({ \
+ __uint64_t __fpcr; \
+ __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (__fpcr)); \
+ fpcr = __fpcr; \
+ })
+
+# define _FPU_SETCW(fpcr) \
+ ({ \
+ __uint64_t __fpcr = fpcr; \
+ __asm__ __volatile__ ("msr fpcr, %0" : : "r" (__fpcr)); \
+ })
+
+# define _FPU_GETFPSR(fpsr) \
+ ({ \
+ __uint64_t __fpsr; \
+ __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (__fpsr)); \
+ fpsr = __fpsr; \
+ })
+
+# define _FPU_SETFPSR(fpsr) \
+ ({ \
+ __uint64_t __fpsr = fpsr; \
+ __asm__ __volatile__ ("msr fpsr, %0" : : "r" (__fpsr)); \
+ })
#endif
/* Reserved bits should be preserved when modifying register
diff --git a/sysdeps/aarch64/fpu/fraiseexcpt.c b/sysdeps/aarch64/fpu/fraiseexcpt.c
index 5abf498..518a6eb 100644
--- a/sysdeps/aarch64/fpu/fraiseexcpt.c
+++ b/sysdeps/aarch64/fpu/fraiseexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -19,11 +19,12 @@
#include <fenv.h>
#include <fpu_control.h>
#include <float.h>
+#include <stdint.h>
int
__feraiseexcept (int excepts)
{
- int fpsr;
+ uint64_t fpsr;
const float fp_zero = 0.0;
const float fp_one = 1.0;
const float fp_max = FLT_MAX;
diff --git a/sysdeps/aarch64/fpu/fsetexcptflg.c b/sysdeps/aarch64/fpu/fsetexcptflg.c
index d4df771..1afb1eb 100644
--- a/sysdeps/aarch64/fpu/fsetexcptflg.c
+++ b/sysdeps/aarch64/fpu/fsetexcptflg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/ftestexcept.c b/sysdeps/aarch64/fpu/ftestexcept.c
index d40148d..1c709e8 100644
--- a/sysdeps/aarch64/fpu/ftestexcept.c
+++ b/sysdeps/aarch64/fpu/ftestexcept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/get-rounding-mode.h b/sysdeps/aarch64/fpu/get-rounding-mode.h
index 5adb830..ae3c11d 100644
--- a/sysdeps/aarch64/fpu/get-rounding-mode.h
+++ b/sysdeps/aarch64/fpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. AArch64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/hypot_advsimd.c b/sysdeps/aarch64/fpu/hypot_advsimd.c
index e4e279f..9af5402 100644
--- a/sysdeps/aarch64/fpu/hypot_advsimd.c
+++ b/sysdeps/aarch64/fpu/hypot_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) hypot function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/hypot_sve.c b/sysdeps/aarch64/fpu/hypot_sve.c
index 7441704..1e7803a 100644
--- a/sysdeps/aarch64/fpu/hypot_sve.c
+++ b/sysdeps/aarch64/fpu/hypot_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) hypot function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/hypotf_advsimd.c b/sysdeps/aarch64/fpu/hypotf_advsimd.c
index 34818b0..e2206f0 100644
--- a/sysdeps/aarch64/fpu/hypotf_advsimd.c
+++ b/sysdeps/aarch64/fpu/hypotf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) hypot function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/hypotf_sve.c b/sysdeps/aarch64/fpu/hypotf_sve.c
index 3a403de..489db8f 100644
--- a/sysdeps/aarch64/fpu/hypotf_sve.c
+++ b/sysdeps/aarch64/fpu/hypotf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) hypot function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/log10_advsimd.c b/sysdeps/aarch64/fpu/log10_advsimd.c
index c065aae..faa2b25 100644
--- a/sysdeps/aarch64/fpu/log10_advsimd.c
+++ b/sysdeps/aarch64/fpu/log10_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) log10 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,36 +18,36 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
-
-#define N (1 << V_LOG10_TABLE_BITS)
static const struct data
{
- uint64x2_t min_norm;
+ uint64x2_t off, sign_exp_mask, offset_lower_bound;
uint32x4_t special_bound;
- float64x2_t poly[5];
- float64x2_t invln10, log10_2, ln2;
- uint64x2_t sign_exp_mask;
+ double invln10, log10_2;
+ double c1, c3;
+ float64x2_t c0, c2, c4;
} data = {
/* Computed from log coefficients divided by log(10) then rounded to double
precision. */
- .poly = { V2 (-0x1.bcb7b1526e506p-3), V2 (0x1.287a7636be1d1p-3),
- V2 (-0x1.bcb7b158af938p-4), V2 (0x1.63c78734e6d07p-4),
- V2 (-0x1.287461742fee4p-4) },
- .ln2 = V2 (0x1.62e42fefa39efp-1),
- .invln10 = V2 (0x1.bcb7b1526e50ep-2),
- .log10_2 = V2 (0x1.34413509f79ffp-2),
- .min_norm = V2 (0x0010000000000000), /* asuint64(0x1p-1022). */
- .special_bound = V4 (0x7fe00000), /* asuint64(inf) - min_norm. */
+ .c0 = V2 (-0x1.bcb7b1526e506p-3),
+ .c1 = 0x1.287a7636be1d1p-3,
+ .c2 = V2 (-0x1.bcb7b158af938p-4),
+ .c3 = 0x1.63c78734e6d07p-4,
+ .c4 = V2 (-0x1.287461742fee4p-4),
+ .invln10 = 0x1.bcb7b1526e50ep-2,
+ .log10_2 = 0x1.34413509f79ffp-2,
+ .off = V2 (0x3fe6900900000000),
.sign_exp_mask = V2 (0xfff0000000000000),
+ /* Lower bound is 0x0010000000000000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound - offset (which wraps around). */
+ .offset_lower_bound = V2 (0x0010000000000000 - 0x3fe6900900000000),
+ .special_bound = V4 (0x7fe00000), /* asuint64(inf) - 0x0010000000000000. */
};
-#define Off v_u64 (0x3fe6900900000000)
+#define N (1 << V_LOG10_TABLE_BITS)
#define IndexMask (N - 1)
-#define T(s, i) __v_log10_data.s[i]
-
struct entry
{
float64x2_t invc;
@@ -70,10 +70,11 @@ lookup (uint64x2_t i)
}
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, float64x2_t hi, float64x2_t r2,
- uint32x2_t special)
+special_case (float64x2_t hi, uint64x2_t u_off, float64x2_t y, float64x2_t r2,
+ uint32x2_t special, const struct data *d)
{
- return v_call_f64 (log10, x, vfmaq_f64 (hi, r2, y), vmovl_u32 (special));
+ float64x2_t x = vreinterpretq_f64_u64 (vaddq_u64 (u_off, d->off));
+ return v_call_f64 (log10, x, vfmaq_f64 (hi, y, r2), vmovl_u32 (special));
}
/* Fast implementation of double-precision vector log10
@@ -85,19 +86,24 @@ special_case (float64x2_t x, float64x2_t y, float64x2_t hi, float64x2_t r2,
float64x2_t VPCS_ATTR V_NAME_D1 (log10) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
- uint64x2_t ix = vreinterpretq_u64_f64 (x);
- uint32x2_t special = vcge_u32 (vsubhn_u64 (ix, d->min_norm),
- vget_low_u32 (d->special_bound));
+
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint64x2_t u = vreinterpretq_u64_f64 (x);
+ uint64x2_t u_off = vsubq_u64 (u, d->off);
/* x = 2^k z; where z is in range [OFF,2*OFF) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- uint64x2_t tmp = vsubq_u64 (ix, Off);
- int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52);
- uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, d->sign_exp_mask));
+ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (u_off), 52);
+ uint64x2_t iz = vsubq_u64 (u, vandq_u64 (u_off, d->sign_exp_mask));
float64x2_t z = vreinterpretq_f64_u64 (iz);
- struct entry e = lookup (tmp);
+ struct entry e = lookup (u_off);
+
+ uint32x2_t special = vcge_u32 (vsubhn_u64 (u_off, d->offset_lower_bound),
+ vget_low_u32 (d->special_bound));
/* log10(x) = log1p(z/c-1)/log(10) + log10(c) + k*log10(2). */
float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc);
@@ -105,17 +111,22 @@ float64x2_t VPCS_ATTR V_NAME_D1 (log10) (float64x2_t x)
/* hi = r / log(10) + log10(c) + k*log10(2).
Constants in v_log10_data.c are computed (in extended precision) as
- e.log10c := e.logc * ivln10. */
- float64x2_t w = vfmaq_f64 (e.log10c, r, d->invln10);
+ e.log10c := e.logc * invln10. */
+ float64x2_t cte = vld1q_f64 (&d->invln10);
+ float64x2_t hi = vfmaq_laneq_f64 (e.log10c, r, cte, 0);
/* y = log10(1+r) + n * log10(2). */
- float64x2_t hi = vfmaq_f64 (w, kd, d->log10_2);
+ hi = vfmaq_laneq_f64 (hi, kd, cte, 1);
/* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */
float64x2_t r2 = vmulq_f64 (r, r);
- float64x2_t y = v_pw_horner_4_f64 (r, r2, d->poly);
+ float64x2_t odd_coeffs = vld1q_f64 (&d->c1);
+ float64x2_t y = vfmaq_laneq_f64 (d->c2, r, odd_coeffs, 1);
+ float64x2_t p = vfmaq_laneq_f64 (d->c0, r, odd_coeffs, 0);
+ y = vfmaq_f64 (y, d->c4, r2);
+ y = vfmaq_f64 (p, y, r2);
if (__glibc_unlikely (v_any_u32h (special)))
- return special_case (x, y, hi, r2, special);
- return vfmaq_f64 (hi, r2, y);
+ return special_case (hi, u_off, y, r2, special, d);
+ return vfmaq_f64 (hi, y, r2);
}
diff --git a/sysdeps/aarch64/fpu/log10_sve.c b/sysdeps/aarch64/fpu/log10_sve.c
index ab73621..35283a5 100644
--- a/sysdeps/aarch64/fpu/log10_sve.c
+++ b/sysdeps/aarch64/fpu/log10_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) log10 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,28 +23,49 @@
#define Min 0x0010000000000000
#define Max 0x7ff0000000000000
#define Thres 0x7fe0000000000000 /* Max - Min. */
-#define Off 0x3fe6900900000000
#define N (1 << V_LOG10_TABLE_BITS)
+static const struct data
+{
+ double c0, c2;
+ double c1, c3;
+ double invln10, log10_2;
+ double c4;
+ uint64_t off;
+} data = {
+ .c0 = -0x1.bcb7b1526e506p-3,
+ .c1 = 0x1.287a7636be1d1p-3,
+ .c2 = -0x1.bcb7b158af938p-4,
+ .c3 = 0x1.63c78734e6d07p-4,
+ .c4 = -0x1.287461742fee4p-4,
+ .invln10 = 0x1.bcb7b1526e50ep-2,
+ .log10_2 = 0x1.34413509f79ffp-2,
+ .off = 0x3fe6900900000000,
+};
+
static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
+special_case (svfloat64_t hi, svuint64_t tmp, svfloat64_t y, svfloat64_t r2,
+ svbool_t special, const struct data *d)
{
- return sv_call_f64 (log10, x, y, special);
+ svfloat64_t x = svreinterpret_f64 (svadd_x (svptrue_b64 (), tmp, d->off));
+ return sv_call_f64 (log10, x, svmla_x (svptrue_b64 (), hi, r2, y), special);
}
-/* SVE log10 algorithm.
+/* Double-precision SVE log10 routine.
Maximum measured error is 2.46 ulps.
SV_NAME_D1 (log10)(0x1.131956cd4b627p+0) got 0x1.fffbdf6eaa669p-6
want 0x1.fffbdf6eaa667p-6. */
svfloat64_t SV_NAME_D1 (log10) (svfloat64_t x, const svbool_t pg)
{
+ const struct data *d = ptr_barrier (&data);
+
svuint64_t ix = svreinterpret_u64 (x);
svbool_t special = svcmpge (pg, svsub_x (pg, ix, Min), Thres);
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- svuint64_t tmp = svsub_x (pg, ix, Off);
+ svuint64_t tmp = svsub_x (pg, ix, d->off);
svuint64_t i = svlsr_x (pg, tmp, 51 - V_LOG10_TABLE_BITS);
i = svand_x (pg, i, (N - 1) << 1);
svfloat64_t k = svcvt_f64_x (pg, svasr_x (pg, svreinterpret_s64 (tmp), 52));
@@ -62,15 +83,19 @@ svfloat64_t SV_NAME_D1 (log10) (svfloat64_t x, const svbool_t pg)
svfloat64_t r = svmad_x (pg, invc, z, -1.0);
/* hi = log(c) + k*log(2). */
- svfloat64_t w = svmla_x (pg, logc, r, __v_log10_data.invln10);
- svfloat64_t hi = svmla_x (pg, w, k, __v_log10_data.log10_2);
+ svfloat64_t invln10_log10_2 = svld1rq_f64 (svptrue_b64 (), &d->invln10);
+ svfloat64_t w = svmla_lane_f64 (logc, r, invln10_log10_2, 0);
+ svfloat64_t hi = svmla_lane_f64 (w, k, invln10_log10_2, 1);
/* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t y = sv_pw_horner_4_f64_x (pg, r, r2, __v_log10_data.poly);
+ svfloat64_t odd_coeffs = svld1rq_f64 (svptrue_b64 (), &d->c1);
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t y = svmla_lane_f64 (sv_f64 (d->c2), r, odd_coeffs, 1);
+ svfloat64_t p = svmla_lane_f64 (sv_f64 (d->c0), r, odd_coeffs, 0);
+ y = svmla_x (pg, y, r2, d->c4);
+ y = svmla_x (pg, p, r2, y);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (svnot_z (pg, special), hi, r2, y),
- special);
+ return special_case (hi, tmp, y, r2, special, d);
return svmla_x (pg, hi, r2, y);
}
diff --git a/sysdeps/aarch64/fpu/log10f_advsimd.c b/sysdeps/aarch64/fpu/log10f_advsimd.c
index 9347422..092abea 100644
--- a/sysdeps/aarch64/fpu/log10f_advsimd.c
+++ b/sysdeps/aarch64/fpu/log10f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) log10 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,35 +18,43 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
static const struct data
{
- uint32x4_t min_norm;
+ float32x4_t c0, c2, c4, c6, inv_ln10, ln2;
+ uint32x4_t off, offset_lower_bound;
uint16x8_t special_bound;
- float32x4_t poly[8];
- float32x4_t inv_ln10, ln2;
- uint32x4_t off, mantissa_mask;
+ uint32x4_t mantissa_mask;
+ float c1, c3, c5, c7;
} data = {
/* Use order 9 for log10(1+x), i.e. order 8 for log10(1+x)/x, with x in
[-1/3, 1/3] (offset=2/3). Max. relative error: 0x1.068ee468p-25. */
- .poly = { V4 (-0x1.bcb79cp-3f), V4 (0x1.2879c8p-3f), V4 (-0x1.bcd472p-4f),
- V4 (0x1.6408f8p-4f), V4 (-0x1.246f8p-4f), V4 (0x1.f0e514p-5f),
- V4 (-0x1.0fc92cp-4f), V4 (0x1.f5f76ap-5f) },
+ .c0 = V4 (-0x1.bcb79cp-3f),
+ .c1 = 0x1.2879c8p-3f,
+ .c2 = V4 (-0x1.bcd472p-4f),
+ .c3 = 0x1.6408f8p-4f,
+ .c4 = V4 (-0x1.246f8p-4f),
+ .c5 = 0x1.f0e514p-5f,
+ .c6 = V4 (-0x1.0fc92cp-4f),
+ .c7 = 0x1.f5f76ap-5f,
.ln2 = V4 (0x1.62e43p-1f),
.inv_ln10 = V4 (0x1.bcb7b2p-2f),
- .min_norm = V4 (0x00800000),
- .special_bound = V8 (0x7f00), /* asuint32(inf) - min_norm. */
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .offset_lower_bound = V4 (0x00800000 - 0x3f2aaaab),
+ .special_bound = V8 (0x7f00), /* top16(asuint32(inf) - 0x00800000). */
.off = V4 (0x3f2aaaab), /* 0.666667. */
.mantissa_mask = V4 (0x007fffff),
};
static float32x4_t VPCS_ATTR NOINLINE
-special_case (float32x4_t x, float32x4_t y, float32x4_t p, float32x4_t r2,
- uint16x4_t cmp)
+special_case (float32x4_t y, uint32x4_t u_off, float32x4_t p, float32x4_t r2,
+ uint16x4_t cmp, const struct data *d)
{
/* Fall back to scalar code. */
- return v_call_f32 (log10f, x, vfmaq_f32 (y, p, r2), vmovl_u16 (cmp));
+ return v_call_f32 (log10f, vreinterpretq_f32_u32 (vaddq_u32 (u_off, d->off)),
+ vfmaq_f32 (y, p, r2), vmovl_u16 (cmp));
}
/* Fast implementation of AdvSIMD log10f,
@@ -58,26 +66,41 @@ special_case (float32x4_t x, float32x4_t y, float32x4_t p, float32x4_t r2,
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (log10) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- uint32x4_t u = vreinterpretq_u32_f32 (x);
- uint16x4_t special = vcge_u16 (vsubhn_u32 (u, d->min_norm),
- vget_low_u16 (d->special_bound));
+ float32x4_t c1357 = vld1q_f32 (&d->c1);
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint32x4_t u_off = vreinterpretq_u32_f32 (x);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- u = vsubq_u32 (u, d->off);
+ u_off = vsubq_u32 (u_off, d->off);
float32x4_t n = vcvtq_f32_s32 (
- vshrq_n_s32 (vreinterpretq_s32_u32 (u), 23)); /* signextend. */
- u = vaddq_u32 (vandq_u32 (u, d->mantissa_mask), d->off);
+ vshrq_n_s32 (vreinterpretq_s32_u32 (u_off), 23)); /* signextend. */
+
+ uint16x4_t special = vcge_u16 (vsubhn_u32 (u_off, d->offset_lower_bound),
+ vget_low_u16 (d->special_bound));
+
+ uint32x4_t u = vaddq_u32 (vandq_u32 (u_off, d->mantissa_mask), d->off);
float32x4_t r = vsubq_f32 (vreinterpretq_f32_u32 (u), v_f32 (1.0f));
/* y = log10(1+r) + n * log10(2). */
float32x4_t r2 = vmulq_f32 (r, r);
- float32x4_t poly = v_pw_horner_7_f32 (r, r2, d->poly);
+
+ float32x4_t c01 = vfmaq_laneq_f32 (d->c0, r, c1357, 0);
+ float32x4_t c23 = vfmaq_laneq_f32 (d->c2, r, c1357, 1);
+ float32x4_t c45 = vfmaq_laneq_f32 (d->c4, r, c1357, 2);
+ float32x4_t c67 = vfmaq_laneq_f32 (d->c6, r, c1357, 3);
+
+ float32x4_t p47 = vfmaq_f32 (c45, r2, c67);
+ float32x4_t p27 = vfmaq_f32 (c23, r2, p47);
+ float32x4_t poly = vfmaq_f32 (c01, r2, p27);
+
/* y = Log10(2) * n + poly * InvLn(10). */
float32x4_t y = vfmaq_f32 (r, d->ln2, n);
y = vmulq_f32 (y, d->inv_ln10);
if (__glibc_unlikely (v_any_u16h (special)))
- return special_case (x, y, poly, r2, special);
+ return special_case (y, u_off, poly, r2, special, d);
return vfmaq_f32 (y, poly, r2);
}
libmvec_hidden_def (V_NAME_F1 (log10))
diff --git a/sysdeps/aarch64/fpu/log10f_sve.c b/sysdeps/aarch64/fpu/log10f_sve.c
index bdbb49c..4a8ddc5 100644
--- a/sysdeps/aarch64/fpu/log10f_sve.c
+++ b/sysdeps/aarch64/fpu/log10f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) log10 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,7 @@ static const struct data
float poly_0246[4];
float poly_1357[4];
float ln2, inv_ln10;
+ uint32_t off, lower;
} data = {
.poly_1357 = {
/* Coefficients copied from the AdvSIMD routine, then rearranged so that coeffs
@@ -35,18 +36,23 @@ static const struct data
-0x1.0fc92cp-4f },
.ln2 = 0x1.62e43p-1f,
.inv_ln10 = 0x1.bcb7b2p-2f,
+ .off = 0x3f2aaaab,
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .lower = 0x00800000 - 0x3f2aaaab
};
-#define Min 0x00800000
-#define Max 0x7f800000
-#define Thres 0x7f000000 /* Max - Min. */
-#define Offset 0x3f2aaaab /* 0.666667. */
+#define Thres 0x7f000000 /* asuint32(inf) - 0x00800000. */
#define MantissaMask 0x007fffff
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y,
+ svbool_t cmp)
{
- return sv_call_f32 (log10f, x, y, special);
+ return sv_call_f32 (
+ log10f, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)),
+ svmla_x (svptrue_b32 (), p, r2, y), cmp);
}
/* Optimised implementation of SVE log10f using the same algorithm and
@@ -57,23 +63,25 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svuint32_t ix = svreinterpret_u32 (x);
- svbool_t special = svcmpge (pg, svsub_x (pg, ix, Min), Thres);
+
+ svuint32_t u_off = svreinterpret_u32 (x);
+
+ u_off = svsub_x (pg, u_off, d->off);
+ svbool_t special = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thres);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- ix = svsub_x (pg, ix, Offset);
svfloat32_t n = svcvt_f32_x (
- pg, svasr_x (pg, svreinterpret_s32 (ix), 23)); /* signextend. */
- ix = svand_x (pg, ix, MantissaMask);
- ix = svadd_x (pg, ix, Offset);
+ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* signextend. */
+ svuint32_t ix = svand_x (pg, u_off, MantissaMask);
+ ix = svadd_x (pg, ix, d->off);
svfloat32_t r = svsub_x (pg, svreinterpret_f32 (ix), 1.0f);
/* y = log10(1+r) + n*log10(2)
log10(1+r) ~ r * InvLn(10) + P(r)
where P(r) is a polynomial. Use order 9 for log10(1+x), i.e. order 8 for
log10(1+x)/x, with x in [-1/3, 1/3] (offset=2/3). */
- svfloat32_t r2 = svmul_x (pg, r, r);
- svfloat32_t r4 = svmul_x (pg, r2, r2);
+ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r);
+ svfloat32_t r4 = svmul_x (svptrue_b32 (), r2, r2);
svfloat32_t p_1357 = svld1rq (svptrue_b32 (), &d->poly_1357[0]);
svfloat32_t q_01 = svmla_lane (sv_f32 (d->poly_0246[0]), r, p_1357, 0);
svfloat32_t q_23 = svmla_lane (sv_f32 (d->poly_0246[1]), r, p_1357, 1);
@@ -88,7 +96,6 @@ svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg)
hi = svmul_x (pg, hi, d->inv_ln10);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (svnot_z (pg, special), hi, r2, y),
- special);
- return svmla_x (pg, hi, r2, y);
+ return special_case (u_off, hi, r2, y, special);
+ return svmla_x (svptrue_b32 (), hi, r2, y);
}
diff --git a/sysdeps/aarch64/fpu/log1p_advsimd.c b/sysdeps/aarch64/fpu/log1p_advsimd.c
index ffc418f..44474be 100644
--- a/sysdeps/aarch64/fpu/log1p_advsimd.c
+++ b/sysdeps/aarch64/fpu/log1p_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision AdvSIMD log1p
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,43 +17,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "v_math.h"
-#include "poly_advsimd_f64.h"
+#define WANT_V_LOG1P_K0_SHORTCUT 0
+#include "v_log1p_inline.h"
const static struct data
{
- float64x2_t poly[19], ln2[2];
- uint64x2_t hf_rt2_top, one_m_hf_rt2_top, umask, inf, minus_one;
- int64x2_t one_top;
-} data = {
- /* Generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. */
- .poly = { V2 (-0x1.ffffffffffffbp-2), V2 (0x1.55555555551a9p-2),
- V2 (-0x1.00000000008e3p-2), V2 (0x1.9999999a32797p-3),
- V2 (-0x1.555555552fecfp-3), V2 (0x1.249248e071e5ap-3),
- V2 (-0x1.ffffff8bf8482p-4), V2 (0x1.c71c8f07da57ap-4),
- V2 (-0x1.9999ca4ccb617p-4), V2 (0x1.7459ad2e1dfa3p-4),
- V2 (-0x1.554d2680a3ff2p-4), V2 (0x1.3b4c54d487455p-4),
- V2 (-0x1.2548a9ffe80e6p-4), V2 (0x1.0f389a24b2e07p-4),
- V2 (-0x1.eee4db15db335p-5), V2 (0x1.e95b494d4a5ddp-5),
- V2 (-0x1.15fdf07cb7c73p-4), V2 (0x1.0310b70800fcfp-4),
- V2 (-0x1.cfa7385bdb37ep-6) },
- .ln2 = { V2 (0x1.62e42fefa3800p-1), V2 (0x1.ef35793c76730p-45) },
- /* top32(asuint64(sqrt(2)/2)) << 32. */
- .hf_rt2_top = V2 (0x3fe6a09e00000000),
- /* (top32(asuint64(1)) - top32(asuint64(sqrt(2)/2))) << 32. */
- .one_m_hf_rt2_top = V2 (0x00095f6200000000),
- .umask = V2 (0x000fffff00000000),
- .one_top = V2 (0x3ff),
- .inf = V2 (0x7ff0000000000000),
- .minus_one = V2 (0xbff0000000000000)
-};
+ struct v_log1p_data d;
+ uint64x2_t inf, minus_one;
+} data = { .d = V_LOG1P_CONSTANTS_TABLE,
+ .inf = V2 (0x7ff0000000000000),
+ .minus_one = V2 (0xbff0000000000000) };
#define BottomMask v_u64 (0xffffffff)
-static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
+static float64x2_t NOINLINE VPCS_ATTR
+special_case (float64x2_t x, uint64x2_t cmp, const struct data *d)
{
- return v_call_f64 (log1p, x, y, special);
+ /* Side-step special lanes so fenv exceptions are not triggered
+ inadvertently. */
+ float64x2_t x_nospecial = v_zerofy_f64 (x, cmp);
+ return v_call_f64 (log1p, x, log1p_inline (x_nospecial, &d->d), cmp);
}
/* Vector log1p approximation using polynomial on reduced interval. Routine is
@@ -66,64 +49,14 @@ VPCS_ATTR float64x2_t V_NAME_D1 (log1p) (float64x2_t x)
const struct data *d = ptr_barrier (&data);
uint64x2_t ix = vreinterpretq_u64_f64 (x);
uint64x2_t ia = vreinterpretq_u64_f64 (vabsq_f64 (x));
- uint64x2_t special = vcgeq_u64 (ia, d->inf);
-#if WANT_SIMD_EXCEPT
- special = vorrq_u64 (special,
- vcgeq_u64 (ix, vreinterpretq_u64_f64 (v_f64 (-1))));
- if (__glibc_unlikely (v_any_u64 (special)))
- x = v_zerofy_f64 (x, special);
-#else
- special = vorrq_u64 (special, vcleq_f64 (x, v_f64 (-1)));
-#endif
+ uint64x2_t special_cases
+ = vorrq_u64 (vcgeq_u64 (ia, d->inf), vcgeq_u64 (ix, d->minus_one));
- /* With x + 1 = t * 2^k (where t = f + 1 and k is chosen such that f
- is in [sqrt(2)/2, sqrt(2)]):
- log1p(x) = k*log(2) + log1p(f).
+ if (__glibc_unlikely (v_any_u64 (special_cases)))
+ return special_case (x, special_cases, d);
- f may not be representable exactly, so we need a correction term:
- let m = round(1 + x), c = (1 + x) - m.
- c << m: at very small x, log1p(x) ~ x, hence:
- log(1+x) - log(m) ~ c/m.
-
- We therefore calculate log1p(x) by k*log2 + log1p(f) + c/m. */
-
- /* Obtain correctly scaled k by manipulation in the exponent.
- The scalar algorithm casts down to 32-bit at this point to calculate k and
- u_red. We stay in double-width to obtain f and k, using the same constants
- as the scalar algorithm but shifted left by 32. */
- float64x2_t m = vaddq_f64 (x, v_f64 (1));
- uint64x2_t mi = vreinterpretq_u64_f64 (m);
- uint64x2_t u = vaddq_u64 (mi, d->one_m_hf_rt2_top);
-
- int64x2_t ki
- = vsubq_s64 (vreinterpretq_s64_u64 (vshrq_n_u64 (u, 52)), d->one_top);
- float64x2_t k = vcvtq_f64_s64 (ki);
-
- /* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */
- uint64x2_t utop = vaddq_u64 (vandq_u64 (u, d->umask), d->hf_rt2_top);
- uint64x2_t u_red = vorrq_u64 (utop, vandq_u64 (mi, BottomMask));
- float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1));
-
- /* Correction term c/m. */
- float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1))), m);
-
- /* Approximate log1p(x) on the reduced input using a polynomial. Because
- log1p(0)=0 we choose an approximation of the form:
- x + C0*x^2 + C1*x^3 + C2x^4 + ...
- Hence approximation has the form f + f^2 * P(f)
- where P(x) = C0 + C1*x + C2x^2 + ...
- Assembling this all correctly is dealt with at the final step. */
- float64x2_t f2 = vmulq_f64 (f, f);
- float64x2_t p = v_pw_horner_18_f64 (f, f2, d->poly);
-
- float64x2_t ylo = vfmaq_f64 (cm, k, d->ln2[1]);
- float64x2_t yhi = vfmaq_f64 (f, k, d->ln2[0]);
- float64x2_t y = vaddq_f64 (ylo, yhi);
-
- if (__glibc_unlikely (v_any_u64 (special)))
- return special_case (vreinterpretq_f64_u64 (ix), vfmaq_f64 (y, f2, p),
- special);
-
- return vfmaq_f64 (y, f2, p);
+ return log1p_inline (x, &d->d);
}
+
+strong_alias (V_NAME_D1 (log1p), V_NAME_D1 (logp1))
diff --git a/sysdeps/aarch64/fpu/log1p_sve.c b/sysdeps/aarch64/fpu/log1p_sve.c
index 04f7e57..821c078 100644
--- a/sysdeps/aarch64/fpu/log1p_sve.c
+++ b/sysdeps/aarch64/fpu/log1p_sve.c
@@ -1,6 +1,6 @@
/* Double-precision SVE log1p
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,19 +22,33 @@
static const struct data
{
- double poly[19];
+ float64_t c0, c2, c4, c6, c8, c10, c12, c14, c16;
+ float64_t c1, c3, c5, c7, c9, c11, c13, c15, c17, c18;
double ln2_hi, ln2_lo;
uint64_t hfrt2_top, onemhfrt2_top, inf, mone;
} data = {
/* Generated using Remez in [ sqrt(2)/2 - 1, sqrt(2) - 1]. Order 20
- polynomial, however first 2 coefficients are 0 and 1 so are not stored. */
- .poly = { -0x1.ffffffffffffbp-2, 0x1.55555555551a9p-2, -0x1.00000000008e3p-2,
- 0x1.9999999a32797p-3, -0x1.555555552fecfp-3, 0x1.249248e071e5ap-3,
- -0x1.ffffff8bf8482p-4, 0x1.c71c8f07da57ap-4, -0x1.9999ca4ccb617p-4,
- 0x1.7459ad2e1dfa3p-4, -0x1.554d2680a3ff2p-4, 0x1.3b4c54d487455p-4,
- -0x1.2548a9ffe80e6p-4, 0x1.0f389a24b2e07p-4, -0x1.eee4db15db335p-5,
- 0x1.e95b494d4a5ddp-5, -0x1.15fdf07cb7c73p-4, 0x1.0310b70800fcfp-4,
- -0x1.cfa7385bdb37ep-6, },
+ polynomial, however first 2 coefficients are 0 and 1 so are not
+ stored. */
+ .c0 = -0x1.ffffffffffffbp-2,
+ .c1 = 0x1.55555555551a9p-2,
+ .c2 = -0x1.00000000008e3p-2,
+ .c3 = 0x1.9999999a32797p-3,
+ .c4 = -0x1.555555552fecfp-3,
+ .c5 = 0x1.249248e071e5ap-3,
+ .c6 = -0x1.ffffff8bf8482p-4,
+ .c7 = 0x1.c71c8f07da57ap-4,
+ .c8 = -0x1.9999ca4ccb617p-4,
+ .c9 = 0x1.7459ad2e1dfa3p-4,
+ .c10 = -0x1.554d2680a3ff2p-4,
+ .c11 = 0x1.3b4c54d487455p-4,
+ .c12 = -0x1.2548a9ffe80e6p-4,
+ .c13 = 0x1.0f389a24b2e07p-4,
+ .c14 = -0x1.eee4db15db335p-5,
+ .c15 = 0x1.e95b494d4a5ddp-5,
+ .c16 = -0x1.15fdf07cb7c73p-4,
+ .c17 = 0x1.0310b70800fcfp-4,
+ .c18 = -0x1.cfa7385bdb37ep-6,
.ln2_hi = 0x1.62e42fefa3800p-1,
.ln2_lo = 0x1.ef35793c76730p-45,
/* top32(asuint64(sqrt(2)/2)) << 32. */
@@ -49,7 +63,7 @@ static const struct data
#define BottomMask 0xffffffff
static svfloat64_t NOINLINE
-special_case (svbool_t special, svfloat64_t x, svfloat64_t y)
+special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
{
return sv_call_f64 (log1p, x, y, special);
}
@@ -91,8 +105,9 @@ svfloat64_t SV_NAME_D1 (log1p) (svfloat64_t x, svbool_t pg)
/* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */
svuint64_t utop
= svadd_x (pg, svand_x (pg, u, 0x000fffff00000000), d->hfrt2_top);
- svuint64_t u_red = svorr_x (pg, utop, svand_x (pg, mi, BottomMask));
- svfloat64_t f = svsub_x (pg, svreinterpret_f64 (u_red), 1);
+ svuint64_t u_red
+ = svorr_x (pg, utop, svand_x (svptrue_b64 (), mi, BottomMask));
+ svfloat64_t f = svsub_x (svptrue_b64 (), svreinterpret_f64 (u_red), 1);
/* Correction term c/m. */
svfloat64_t cm = svdiv_x (pg, svsub_x (pg, x, svsub_x (pg, m, 1)), m);
@@ -103,16 +118,49 @@ svfloat64_t SV_NAME_D1 (log1p) (svfloat64_t x, svbool_t pg)
Hence approximation has the form f + f^2 * P(f)
where P(x) = C0 + C1*x + C2x^2 + ...
Assembling this all correctly is dealt with at the final step. */
- svfloat64_t f2 = svmul_x (pg, f, f), f4 = svmul_x (pg, f2, f2),
- f8 = svmul_x (pg, f4, f4), f16 = svmul_x (pg, f8, f8);
- svfloat64_t p = sv_estrin_18_f64_x (pg, f, f2, f4, f8, f16, d->poly);
+ svfloat64_t f2 = svmul_x (svptrue_b64 (), f, f),
+ f4 = svmul_x (svptrue_b64 (), f2, f2),
+ f8 = svmul_x (svptrue_b64 (), f4, f4),
+ f16 = svmul_x (svptrue_b64 (), f8, f8);
+
+ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1);
+ svfloat64_t c57 = svld1rq (svptrue_b64 (), &d->c5);
+ svfloat64_t c911 = svld1rq (svptrue_b64 (), &d->c9);
+ svfloat64_t c1315 = svld1rq (svptrue_b64 (), &d->c13);
+ svfloat64_t c1718 = svld1rq (svptrue_b64 (), &d->c17);
+
+ /* Order-18 Estrin scheme. */
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), f, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), f, c13, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), f, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), f, c57, 1);
+
+ svfloat64_t p03 = svmla_x (pg, p01, f2, p23);
+ svfloat64_t p47 = svmla_x (pg, p45, f2, p67);
+ svfloat64_t p07 = svmla_x (pg, p03, f4, p47);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), f, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), f, c911, 1);
+ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), f, c1315, 0);
+ svfloat64_t p1415 = svmla_lane (sv_f64 (d->c14), f, c1315, 1);
+
+ svfloat64_t p811 = svmla_x (pg, p89, f2, p1011);
+ svfloat64_t p1215 = svmla_x (pg, p1213, f2, p1415);
+ svfloat64_t p815 = svmla_x (pg, p811, f4, p1215);
+
+ svfloat64_t p015 = svmla_x (pg, p07, f8, p815);
+ svfloat64_t p1617 = svmla_lane (sv_f64 (d->c16), f, c1718, 0);
+ svfloat64_t p1618 = svmla_lane (p1617, f2, c1718, 1);
+ svfloat64_t p = svmla_x (pg, p015, f16, p1618);
svfloat64_t ylo = svmla_x (pg, cm, k, d->ln2_lo);
svfloat64_t yhi = svmla_x (pg, f, k, d->ln2_hi);
- svfloat64_t y = svmla_x (pg, svadd_x (pg, ylo, yhi), f2, p);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (special, x, y);
-
- return y;
+ return special_case (
+ x, svmla_x (svptrue_b64 (), svadd_x (svptrue_b64 (), ylo, yhi), f2, p),
+ special);
+ return svmla_x (svptrue_b64 (), svadd_x (svptrue_b64 (), ylo, yhi), f2, p);
}
+
+strong_alias (SV_NAME_D1 (log1p), SV_NAME_D1 (logp1))
diff --git a/sysdeps/aarch64/fpu/log1pf_advsimd.c b/sysdeps/aarch64/fpu/log1pf_advsimd.c
index dc15334..887c504 100644
--- a/sysdeps/aarch64/fpu/log1pf_advsimd.c
+++ b/sysdeps/aarch64/fpu/log1pf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision AdvSIMD log1p
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,113 +18,81 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
+#include "v_log1pf_inline.h"
+
+#if WANT_SIMD_EXCEPT
const static struct data
{
- float32x4_t poly[8], ln2;
- uint32x4_t tiny_bound, minus_one, four, thresh;
- int32x4_t three_quarters;
+ uint32x4_t minus_one, thresh;
+ struct v_log1pf_data d;
} data = {
- .poly = { /* Generated using FPMinimax in [-0.25, 0.5]. First two coefficients
- (1, -0.5) are not stored as they can be generated more
- efficiently. */
- V4 (0x1.5555aap-2f), V4 (-0x1.000038p-2f), V4 (0x1.99675cp-3f),
- V4 (-0x1.54ef78p-3f), V4 (0x1.28a1f4p-3f), V4 (-0x1.0da91p-3f),
- V4 (0x1.abcb6p-4f), V4 (-0x1.6f0d5ep-5f) },
- .ln2 = V4 (0x1.62e43p-1f),
- .tiny_bound = V4 (0x34000000), /* asuint32(0x1p-23). ulp=0.5 at 0x1p-23. */
- .thresh = V4 (0x4b800000), /* asuint32(INFINITY) - tiny_bound. */
+ .d = V_LOG1PF_CONSTANTS_TABLE,
+ .thresh = V4 (0x4b800000), /* asuint32(INFINITY) - TinyBound. */
.minus_one = V4 (0xbf800000),
- .four = V4 (0x40800000),
- .three_quarters = V4 (0x3f400000)
};
-static inline float32x4_t
-eval_poly (float32x4_t m, const float32x4_t *p)
-{
- /* Approximate log(1+m) on [-0.25, 0.5] using split Estrin scheme. */
- float32x4_t p_12 = vfmaq_f32 (v_f32 (-0.5), m, p[0]);
- float32x4_t p_34 = vfmaq_f32 (p[1], m, p[2]);
- float32x4_t p_56 = vfmaq_f32 (p[3], m, p[4]);
- float32x4_t p_78 = vfmaq_f32 (p[5], m, p[6]);
-
- float32x4_t m2 = vmulq_f32 (m, m);
- float32x4_t p_02 = vfmaq_f32 (m, m2, p_12);
- float32x4_t p_36 = vfmaq_f32 (p_34, m2, p_56);
- float32x4_t p_79 = vfmaq_f32 (p_78, m2, p[7]);
-
- float32x4_t m4 = vmulq_f32 (m2, m2);
- float32x4_t p_06 = vfmaq_f32 (p_02, m4, p_36);
- return vfmaq_f32 (p_06, m4, vmulq_f32 (m4, p_79));
-}
+/* asuint32(0x1p-23). ulp=0.5 at 0x1p-23. */
+# define TinyBound v_u32 (0x34000000)
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, uint32x4_t cmp, const struct data *d)
{
- return v_call_f32 (log1pf, x, y, special);
+ /* Side-step special lanes so fenv exceptions are not triggered
+ inadvertently. */
+ float32x4_t x_nospecial = v_zerofy_f32 (x, cmp);
+ return v_call_f32 (log1pf, x, log1pf_inline (x_nospecial, &d->d), cmp);
}
-/* Vector log1pf approximation using polynomial on reduced interval. Accuracy
- is roughly 2.02 ULP:
- log1pf(0x1.21e13ap-2) got 0x1.fe8028p-3 want 0x1.fe802cp-3. */
+/* Vector log1pf approximation using polynomial on reduced interval. Worst-case
+ error is 1.69 ULP:
+ _ZGVnN4v_log1pf(0x1.04418ap-2) got 0x1.cfcbd8p-3
+ want 0x1.cfcbdcp-3. */
VPCS_ATTR float32x4_t V_NAME_F1 (log1p) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
-
uint32x4_t ix = vreinterpretq_u32_f32 (x);
uint32x4_t ia = vreinterpretq_u32_f32 (vabsq_f32 (x));
+
uint32x4_t special_cases
- = vorrq_u32 (vcgeq_u32 (vsubq_u32 (ia, d->tiny_bound), d->thresh),
+ = vorrq_u32 (vcgeq_u32 (vsubq_u32 (ia, TinyBound), d->thresh),
vcgeq_u32 (ix, d->minus_one));
- float32x4_t special_arg = x;
-#if WANT_SIMD_EXCEPT
if (__glibc_unlikely (v_any_u32 (special_cases)))
- /* Side-step special lanes so fenv exceptions are not triggered
- inadvertently. */
- x = v_zerofy_f32 (x, special_cases);
-#endif
+ return special_case (x, special_cases, d);
- /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
- is in [-0.25, 0.5]):
- log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
-
- We approximate log1p(m) with a polynomial, then scale by
- k*log(2). Instead of doing this directly, we use an intermediate
- scale factor s = 4*k*log(2) to ensure the scale is representable
- as a normalised fp32 number. */
+ return log1pf_inline (x, &d->d);
+}
- float32x4_t m = vaddq_f32 (x, v_f32 (1.0f));
+#else
- /* Choose k to scale x to the range [-1/4, 1/2]. */
- int32x4_t k
- = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d->three_quarters),
- v_s32 (0xff800000));
- uint32x4_t ku = vreinterpretq_u32_s32 (k);
+const static struct v_log1pf_data data = V_LOG1PF_CONSTANTS_TABLE;
- /* Scale x by exponent manipulation. */
- float32x4_t m_scale
- = vreinterpretq_f32_u32 (vsubq_u32 (vreinterpretq_u32_f32 (x), ku));
+static float32x4_t NOINLINE VPCS_ATTR
+special_case (float32x4_t x, uint32x4_t cmp)
+{
+ return v_call_f32 (log1pf, x, log1pf_inline (x, ptr_barrier (&data)), cmp);
+}
- /* Scale up to ensure that the scale factor is representable as normalised
- fp32 number, and scale m down accordingly. */
- float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d->four, ku));
- m_scale = vaddq_f32 (m_scale, vfmaq_f32 (v_f32 (-1.0f), v_f32 (0.25f), s));
+/* Vector log1pf approximation using polynomial on reduced interval. Worst-case
+ error is 1.63 ULP:
+ _ZGVnN4v_log1pf(0x1.216d12p-2) got 0x1.fdcb12p-3
+ want 0x1.fdcb16p-3. */
+VPCS_ATTR float32x4_t V_NAME_F1 (log1p) (float32x4_t x)
+{
+ uint32x4_t special_cases = vornq_u32 (vcleq_f32 (x, v_f32 (-1)),
+ vcaleq_f32 (x, v_f32 (0x1p127f)));
- /* Evaluate polynomial on the reduced interval. */
- float32x4_t p = eval_poly (m_scale, d->poly);
+ if (__glibc_unlikely (v_any_u32 (special_cases)))
+ return special_case (x, special_cases);
- /* The scale factor to be applied back at the end - by multiplying float(k)
- by 2^-23 we get the unbiased exponent of k. */
- float32x4_t scale_back = vcvtq_f32_s32 (vshrq_n_s32 (k, 23));
+ return log1pf_inline (x, ptr_barrier (&data));
+}
- /* Apply the scaling back. */
- float32x4_t y = vfmaq_f32 (p, scale_back, d->ln2);
+#endif
- if (__glibc_unlikely (v_any_u32 (special_cases)))
- return special_case (special_arg, y, special_cases);
- return y;
-}
libmvec_hidden_def (V_NAME_F1 (log1p))
HALF_WIDTH_ALIAS_F1 (log1p)
+strong_alias (V_NAME_F1 (log1p), V_NAME_F1 (logp1))
+libmvec_hidden_def (V_NAME_F1 (logp1))
+HALF_WIDTH_ALIAS_F1 (logp1)
diff --git a/sysdeps/aarch64/fpu/log1pf_sve.c b/sysdeps/aarch64/fpu/log1pf_sve.c
index f645cc9..937115f 100644
--- a/sysdeps/aarch64/fpu/log1pf_sve.c
+++ b/sysdeps/aarch64/fpu/log1pf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision SVE log1p
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,30 +18,13 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f32.h"
-
-static const struct data
-{
- float poly[8];
- float ln2, exp_bias;
- uint32_t four, three_quarters;
-} data = {.poly = {/* Do not store first term of polynomial, which is -0.5, as
- this can be fmov-ed directly instead of including it in
- the main load-and-mla polynomial schedule. */
- 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f,
- -0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f,
- 0x1.abcb6p-4f, -0x1.6f0d5ep-5f},
- .ln2 = 0x1.62e43p-1f,
- .exp_bias = 0x1p-23f,
- .four = 0x40800000,
- .three_quarters = 0x3f400000};
-
-#define SignExponentMask 0xff800000
+#include "sv_log1pf_inline.h"
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svfloat32_t x, svbool_t special)
{
- return sv_call_f32 (log1pf, x, y, special);
+ return sv_call_f32 (log1pf, x, sv_log1pf_inline (x, svptrue_b32 ()),
+ special);
}
/* Vector log1pf approximation using polynomial on reduced interval. Worst-case
@@ -50,51 +33,14 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
want 0x1.9f323ep-2. */
svfloat32_t SV_NAME_F1 (log1p) (svfloat32_t x, svbool_t pg)
{
- const struct data *d = ptr_barrier (&data);
/* x < -1, Inf/Nan. */
svbool_t special = svcmpeq (pg, svreinterpret_u32 (x), 0x7f800000);
special = svorn_z (pg, special, svcmpge (pg, x, -1));
- /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
- is in [-0.25, 0.5]):
- log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
-
- We approximate log1p(m) with a polynomial, then scale by
- k*log(2). Instead of doing this directly, we use an intermediate
- scale factor s = 4*k*log(2) to ensure the scale is representable
- as a normalised fp32 number. */
- svfloat32_t m = svadd_x (pg, x, 1);
-
- /* Choose k to scale x to the range [-1/4, 1/2]. */
- svint32_t k
- = svand_x (pg, svsub_x (pg, svreinterpret_s32 (m), d->three_quarters),
- sv_s32 (SignExponentMask));
-
- /* Scale x by exponent manipulation. */
- svfloat32_t m_scale = svreinterpret_f32 (
- svsub_x (pg, svreinterpret_u32 (x), svreinterpret_u32 (k)));
-
- /* Scale up to ensure that the scale factor is representable as normalised
- fp32 number, and scale m down accordingly. */
- svfloat32_t s = svreinterpret_f32 (svsubr_x (pg, k, d->four));
- m_scale = svadd_x (pg, m_scale, svmla_x (pg, sv_f32 (-1), s, 0.25));
-
- /* Evaluate polynomial on reduced interval. */
- svfloat32_t ms2 = svmul_x (pg, m_scale, m_scale),
- ms4 = svmul_x (pg, ms2, ms2);
- svfloat32_t p = sv_estrin_7_f32_x (pg, m_scale, ms2, ms4, d->poly);
- p = svmad_x (pg, m_scale, p, -0.5);
- p = svmla_x (pg, m_scale, m_scale, svmul_x (pg, m_scale, p));
-
- /* The scale factor to be applied back at the end - by multiplying float(k)
- by 2^-23 we get the unbiased exponent of k. */
- svfloat32_t scale_back = svmul_x (pg, svcvt_f32_x (pg, k), d->exp_bias);
-
- /* Apply the scaling back. */
- svfloat32_t y = svmla_x (pg, p, scale_back, d->ln2);
-
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, y, special);
+ return special_case (x, special);
- return y;
+ return sv_log1pf_inline (x, pg);
}
+
+strong_alias (SV_NAME_F1 (log1p), SV_NAME_F1 (logp1))
diff --git a/sysdeps/aarch64/fpu/log2_advsimd.c b/sysdeps/aarch64/fpu/log2_advsimd.c
index 4057c55..1130e47 100644
--- a/sysdeps/aarch64/fpu/log2_advsimd.c
+++ b/sysdeps/aarch64/fpu/log2_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,31 +18,33 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
-
-#define N (1 << V_LOG2_TABLE_BITS)
static const struct data
{
- uint64x2_t min_norm;
+ uint64x2_t off, sign_exp_mask, offset_lower_bound;
uint32x4_t special_bound;
- float64x2_t poly[5];
- float64x2_t invln2;
- uint64x2_t sign_exp_mask;
+ float64x2_t c0, c2;
+ double c1, c3, invln2, c4;
} data = {
/* Each coefficient was generated to approximate log(r) for |r| < 0x1.fp-9
and N = 128, then scaled by log2(e) in extended precision and rounded back
to double precision. */
- .poly = { V2 (-0x1.71547652b83p-1), V2 (0x1.ec709dc340953p-2),
- V2 (-0x1.71547651c8f35p-2), V2 (0x1.2777ebe12dda5p-2),
- V2 (-0x1.ec738d616fe26p-3) },
- .invln2 = V2 (0x1.71547652b82fep0),
- .min_norm = V2 (0x0010000000000000), /* asuint64(0x1p-1022). */
- .special_bound = V4 (0x7fe00000), /* asuint64(inf) - min_norm. */
+ .c0 = V2 (-0x1.71547652b8300p-1),
+ .c1 = 0x1.ec709dc340953p-2,
+ .c2 = V2 (-0x1.71547651c8f35p-2),
+ .c3 = 0x1.2777ebe12dda5p-2,
+ .c4 = -0x1.ec738d616fe26p-3,
+ .invln2 = 0x1.71547652b82fep0,
+ .off = V2 (0x3fe6900900000000),
.sign_exp_mask = V2 (0xfff0000000000000),
+ /* Lower bound is 0x0010000000000000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound - offset (which wraps around). */
+ .offset_lower_bound = V2 (0x0010000000000000 - 0x3fe6900900000000),
+ .special_bound = V4 (0x7fe00000), /* asuint64(inf) - asuint64(0x1p-1022). */
};
-#define Off v_u64 (0x3fe6900900000000)
+#define N (1 << V_LOG2_TABLE_BITS)
#define IndexMask (N - 1)
struct entry
@@ -67,10 +69,11 @@ lookup (uint64x2_t i)
}
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, float64x2_t w, float64x2_t r2,
- uint32x2_t special)
+special_case (float64x2_t hi, uint64x2_t u_off, float64x2_t y, float64x2_t r2,
+ uint32x2_t special, const struct data *d)
{
- return v_call_f64 (log2, x, vfmaq_f64 (w, r2, y), vmovl_u32 (special));
+ float64x2_t x = vreinterpretq_f64_u64 (vaddq_u64 (u_off, d->off));
+ return v_call_f64 (log2, x, vfmaq_f64 (hi, y, r2), vmovl_u32 (special));
}
/* Double-precision vector log2 routine. Implements the same algorithm as
@@ -81,31 +84,41 @@ special_case (float64x2_t x, float64x2_t y, float64x2_t w, float64x2_t r2,
float64x2_t VPCS_ATTR V_NAME_D1 (log2) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
- uint64x2_t ix = vreinterpretq_u64_f64 (x);
- uint32x2_t special = vcge_u32 (vsubhn_u64 (ix, d->min_norm),
- vget_low_u32 (d->special_bound));
+
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint64x2_t u = vreinterpretq_u64_f64 (x);
+ uint64x2_t u_off = vsubq_u64 (u, d->off);
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- uint64x2_t tmp = vsubq_u64 (ix, Off);
- int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52);
- uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, d->sign_exp_mask));
+ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (u_off), 52);
+ uint64x2_t iz = vsubq_u64 (u, vandq_u64 (u_off, d->sign_exp_mask));
float64x2_t z = vreinterpretq_f64_u64 (iz);
- struct entry e = lookup (tmp);
+ struct entry e = lookup (u_off);
- /* log2(x) = log1p(z/c-1)/log(2) + log2(c) + k. */
+ uint32x2_t special = vcge_u32 (vsubhn_u64 (u_off, d->offset_lower_bound),
+ vget_low_u32 (d->special_bound));
+ /* log2(x) = log1p(z/c-1)/log(2) + log2(c) + k. */
float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc);
float64x2_t kd = vcvtq_f64_s64 (k);
- float64x2_t w = vfmaq_f64 (e.log2c, r, d->invln2);
+
+ float64x2_t invln2_and_c4 = vld1q_f64 (&d->invln2);
+ float64x2_t hi
+ = vfmaq_laneq_f64 (vaddq_f64 (e.log2c, kd), r, invln2_and_c4, 0);
float64x2_t r2 = vmulq_f64 (r, r);
- float64x2_t y = v_pw_horner_4_f64 (r, r2, d->poly);
- w = vaddq_f64 (kd, w);
+ float64x2_t odd_coeffs = vld1q_f64 (&d->c1);
+ float64x2_t y = vfmaq_laneq_f64 (d->c2, r, odd_coeffs, 1);
+ float64x2_t p = vfmaq_laneq_f64 (d->c0, r, odd_coeffs, 0);
+ y = vfmaq_laneq_f64 (y, r2, invln2_and_c4, 1);
+ y = vfmaq_f64 (p, r2, y);
if (__glibc_unlikely (v_any_u32h (special)))
- return special_case (x, y, w, r2, special);
- return vfmaq_f64 (w, r2, y);
+ return special_case (hi, u_off, y, r2, special, d);
+ return vfmaq_f64 (hi, y, r2);
}
diff --git a/sysdeps/aarch64/fpu/log2_sve.c b/sysdeps/aarch64/fpu/log2_sve.c
index 743fa2a..e05dc4e 100644
--- a/sysdeps/aarch64/fpu/log2_sve.c
+++ b/sysdeps/aarch64/fpu/log2_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) log2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,15 +21,32 @@
#include "poly_sve_f64.h"
#define N (1 << V_LOG2_TABLE_BITS)
-#define Off 0x3fe6900900000000
#define Max (0x7ff0000000000000)
#define Min (0x0010000000000000)
#define Thresh (0x7fe0000000000000) /* Max - Min. */
+static const struct data
+{
+ double c0, c2;
+ double c1, c3;
+ double invln2, c4;
+ uint64_t off;
+} data = {
+ .c0 = -0x1.71547652b83p-1,
+ .c1 = 0x1.ec709dc340953p-2,
+ .c2 = -0x1.71547651c8f35p-2,
+ .c3 = 0x1.2777ebe12dda5p-2,
+ .c4 = -0x1.ec738d616fe26p-3,
+ .invln2 = 0x1.71547652b82fep0,
+ .off = 0x3fe6900900000000,
+};
+
static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t cmp)
+special_case (svfloat64_t w, svuint64_t tmp, svfloat64_t y, svfloat64_t r2,
+ svbool_t special, const struct data *d)
{
- return sv_call_f64 (log2, x, y, cmp);
+ svfloat64_t x = svreinterpret_f64 (svadd_x (svptrue_b64 (), tmp, d->off));
+ return sv_call_f64 (log2, x, svmla_x (svptrue_b64 (), w, r2, y), special);
}
/* Double-precision SVE log2 routine.
@@ -40,13 +57,15 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t cmp)
want 0x1.fffb34198d9ddp-5. */
svfloat64_t SV_NAME_D1 (log2) (svfloat64_t x, const svbool_t pg)
{
+ const struct data *d = ptr_barrier (&data);
+
svuint64_t ix = svreinterpret_u64 (x);
svbool_t special = svcmpge (pg, svsub_x (pg, ix, Min), Thresh);
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- svuint64_t tmp = svsub_x (pg, ix, Off);
+ svuint64_t tmp = svsub_x (pg, ix, d->off);
svuint64_t i = svlsr_x (pg, tmp, 51 - V_LOG2_TABLE_BITS);
i = svand_x (pg, i, (N - 1) << 1);
svfloat64_t k = svcvt_f64_x (pg, svasr_x (pg, svreinterpret_s64 (tmp), 52));
@@ -59,15 +78,19 @@ svfloat64_t SV_NAME_D1 (log2) (svfloat64_t x, const svbool_t pg)
/* log2(x) = log1p(z/c-1)/log(2) + log2(c) + k. */
+ svfloat64_t invln2_and_c4 = svld1rq_f64 (svptrue_b64 (), &d->invln2);
svfloat64_t r = svmad_x (pg, invc, z, -1.0);
- svfloat64_t w = svmla_x (pg, log2c, r, __v_log2_data.invln2);
-
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t y = sv_pw_horner_4_f64_x (pg, r, r2, __v_log2_data.poly);
+ svfloat64_t w = svmla_lane_f64 (log2c, r, invln2_and_c4, 0);
w = svadd_x (pg, k, w);
+ svfloat64_t odd_coeffs = svld1rq_f64 (svptrue_b64 (), &d->c1);
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t y = svmla_lane_f64 (sv_f64 (d->c2), r, odd_coeffs, 1);
+ svfloat64_t p = svmla_lane_f64 (sv_f64 (d->c0), r, odd_coeffs, 0);
+ y = svmla_lane_f64 (y, r2, invln2_and_c4, 1);
+ y = svmla_x (pg, p, r2, y);
+
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (svnot_z (pg, special), w, r2, y),
- special);
+ return special_case (w, tmp, y, r2, special, d);
return svmla_x (pg, w, r2, y);
}
diff --git a/sysdeps/aarch64/fpu/log2f_advsimd.c b/sysdeps/aarch64/fpu/log2f_advsimd.c
index db21836..28f1857 100644
--- a/sysdeps/aarch64/fpu/log2f_advsimd.c
+++ b/sysdeps/aarch64/fpu/log2f_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) exp2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,34 +18,43 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f32.h"
static const struct data
{
- uint32x4_t min_norm;
+ float32x4_t c0, c2, c4, c6, c8;
+ uint32x4_t off, offset_lower_bound;
uint16x8_t special_bound;
- uint32x4_t off, mantissa_mask;
- float32x4_t poly[9];
+ uint32x4_t mantissa_mask;
+ float c1, c3, c5, c7;
} data = {
/* Coefficients generated using Remez algorithm approximate
log2(1+r)/r for r in [ -1/3, 1/3 ].
rel error: 0x1.c4c4b0cp-26. */
- .poly = { V4 (0x1.715476p0f), /* (float)(1 / ln(2)). */
- V4 (-0x1.715458p-1f), V4 (0x1.ec701cp-2f), V4 (-0x1.7171a4p-2f),
- V4 (0x1.27a0b8p-2f), V4 (-0x1.e5143ep-3f), V4 (0x1.9d8ecap-3f),
- V4 (-0x1.c675bp-3f), V4 (0x1.9e495p-3f) },
- .min_norm = V4 (0x00800000),
- .special_bound = V8 (0x7f00), /* asuint32(inf) - min_norm. */
+ .c0 = V4 (0x1.715476p0f), /* (float)(1 / ln(2)). */
+ .c1 = -0x1.715458p-1f,
+ .c2 = V4 (0x1.ec701cp-2f),
+ .c3 = -0x1.7171a4p-2f,
+ .c4 = V4 (0x1.27a0b8p-2f),
+ .c5 = -0x1.e5143ep-3f,
+ .c6 = V4 (0x1.9d8ecap-3f),
+ .c7 = -0x1.c675bp-3f,
+ .c8 = V4 (0x1.9e495p-3f),
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .offset_lower_bound = V4 (0x00800000 - 0x3f2aaaab),
+ .special_bound = V8 (0x7f00), /* top16(asuint32(inf) - 0x00800000). */
.off = V4 (0x3f2aaaab), /* 0.666667. */
.mantissa_mask = V4 (0x007fffff),
};
static float32x4_t VPCS_ATTR NOINLINE
-special_case (float32x4_t x, float32x4_t n, float32x4_t p, float32x4_t r,
- uint16x4_t cmp)
+special_case (float32x4_t n, uint32x4_t u_off, float32x4_t p, float32x4_t r,
+ uint16x4_t cmp, const struct data *d)
{
/* Fall back to scalar code. */
- return v_call_f32 (log2f, x, vfmaq_f32 (n, p, r), vmovl_u16 (cmp));
+ return v_call_f32 (log2f, vreinterpretq_f32_u32 (vaddq_u32 (u_off, d->off)),
+ vfmaq_f32 (n, p, r), vmovl_u16 (cmp));
}
/* Fast implementation for single precision AdvSIMD log2,
@@ -56,24 +65,40 @@ special_case (float32x4_t x, float32x4_t n, float32x4_t p, float32x4_t r,
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (log2) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- uint32x4_t u = vreinterpretq_u32_f32 (x);
- uint16x4_t special = vcge_u16 (vsubhn_u32 (u, d->min_norm),
- vget_low_u16 (d->special_bound));
+
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint32x4_t u_off = vreinterpretq_u32_f32 (x);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- u = vsubq_u32 (u, d->off);
+ u_off = vsubq_u32 (u_off, d->off);
float32x4_t n = vcvtq_f32_s32 (
- vshrq_n_s32 (vreinterpretq_s32_u32 (u), 23)); /* signextend. */
- u = vaddq_u32 (vandq_u32 (u, d->mantissa_mask), d->off);
+ vshrq_n_s32 (vreinterpretq_s32_u32 (u_off), 23)); /* signextend. */
+
+ uint16x4_t special = vcge_u16 (vsubhn_u32 (u_off, d->offset_lower_bound),
+ vget_low_u16 (d->special_bound));
+
+ uint32x4_t u = vaddq_u32 (vandq_u32 (u_off, d->mantissa_mask), d->off);
float32x4_t r = vsubq_f32 (vreinterpretq_f32_u32 (u), v_f32 (1.0f));
/* y = log2(1+r) + n. */
float32x4_t r2 = vmulq_f32 (r, r);
- float32x4_t p = v_pw_horner_8_f32 (r, r2, d->poly);
+
+ float32x4_t c1357 = vld1q_f32 (&d->c1);
+ float32x4_t c01 = vfmaq_laneq_f32 (d->c0, r, c1357, 0);
+ float32x4_t c23 = vfmaq_laneq_f32 (d->c2, r, c1357, 1);
+ float32x4_t c45 = vfmaq_laneq_f32 (d->c4, r, c1357, 2);
+ float32x4_t c67 = vfmaq_laneq_f32 (d->c6, r, c1357, 3);
+ float32x4_t p68 = vfmaq_f32 (c67, r2, d->c8);
+ float32x4_t p48 = vfmaq_f32 (c45, r2, p68);
+ float32x4_t p28 = vfmaq_f32 (c23, r2, p48);
+ float32x4_t p = vfmaq_f32 (c01, r2, p28);
if (__glibc_unlikely (v_any_u16h (special)))
- return special_case (x, n, p, r, special);
+ return special_case (n, u_off, p, r, special, d);
return vfmaq_f32 (n, p, r);
}
+
libmvec_hidden_def (V_NAME_F1 (log2))
HALF_WIDTH_ALIAS_F1 (log2)
diff --git a/sysdeps/aarch64/fpu/log2f_sve.c b/sysdeps/aarch64/fpu/log2f_sve.c
index 5031c42..515eeff 100644
--- a/sysdeps/aarch64/fpu/log2f_sve.c
+++ b/sysdeps/aarch64/fpu/log2f_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) log2 function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@ static const struct data
{
float poly_02468[5];
float poly_1357[4];
+ uint32_t off, lower;
} data = {
.poly_1357 = {
/* Coefficients copied from the AdvSIMD routine, then rearranged so that coeffs
@@ -32,18 +33,23 @@ static const struct data
},
.poly_02468 = { 0x1.715476p0f, 0x1.ec701cp-2f, 0x1.27a0b8p-2f,
0x1.9d8ecap-3f, 0x1.9e495p-3f },
+ .off = 0x3f2aaaab,
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .lower = 0x00800000 - 0x3f2aaaab
};
-#define Min (0x00800000)
-#define Max (0x7f800000)
-#define Thres (0x7f000000) /* Max - Min. */
+#define Thresh (0x7f000000) /* asuint32(inf) - 0x00800000. */
#define MantissaMask (0x007fffff)
-#define Off (0x3f2aaaab) /* 0.666667. */
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)
+special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y,
+ svbool_t cmp)
{
- return sv_call_f32 (log2f, x, y, cmp);
+ return sv_call_f32 (
+ log2f, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)),
+ svmla_x (svptrue_b32 (), p, r2, y), cmp);
}
/* Optimised implementation of SVE log2f, using the same algorithm
@@ -55,19 +61,20 @@ svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svuint32_t u = svreinterpret_u32 (x);
- svbool_t special = svcmpge (pg, svsub_x (pg, u, Min), Thres);
+ svuint32_t u_off = svreinterpret_u32 (x);
+
+ u_off = svsub_x (pg, u_off, d->off);
+ svbool_t special = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thresh);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- u = svsub_x (pg, u, Off);
svfloat32_t n = svcvt_f32_x (
- pg, svasr_x (pg, svreinterpret_s32 (u), 23)); /* Sign-extend. */
- u = svand_x (pg, u, MantissaMask);
- u = svadd_x (pg, u, Off);
+ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* Sign-extend. */
+ svuint32_t u = svand_x (pg, u_off, MantissaMask);
+ u = svadd_x (pg, u, d->off);
svfloat32_t r = svsub_x (pg, svreinterpret_f32 (u), 1.0f);
/* y = log2(1+r) + n. */
- svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r);
/* Evaluate polynomial using pairwise Horner scheme. */
svfloat32_t p_1357 = svld1rq (svptrue_b32 (), &d->poly_1357[0]);
@@ -81,6 +88,6 @@ svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg)
y = svmla_x (pg, q_01, r2, y);
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svmla_x (svnot_z (pg, special), n, r, y), special);
- return svmla_x (pg, n, r, y);
+ return special_case (u_off, n, r, y, special);
+ return svmla_x (svptrue_b32 (), n, r, y);
}
diff --git a/sysdeps/aarch64/fpu/log_advsimd.c b/sysdeps/aarch64/fpu/log_advsimd.c
index 015a6da..92c2c1d 100644
--- a/sysdeps/aarch64/fpu/log_advsimd.c
+++ b/sysdeps/aarch64/fpu/log_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) log function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,27 +21,29 @@
static const struct data
{
- uint64x2_t min_norm;
+ uint64x2_t off, sign_exp_mask, offset_lower_bound;
uint32x4_t special_bound;
- float64x2_t poly[5];
- float64x2_t ln2;
- uint64x2_t sign_exp_mask;
+ float64x2_t c0, c2;
+ double c1, c3, ln2, c4;
} data = {
- /* Worst-case error: 1.17 + 0.5 ulp.
- Rel error: 0x1.6272e588p-56 in [ -0x1.fc1p-9 0x1.009p-8 ]. */
- .poly = { V2 (-0x1.ffffffffffff7p-2), V2 (0x1.55555555170d4p-2),
- V2 (-0x1.0000000399c27p-2), V2 (0x1.999b2e90e94cap-3),
- V2 (-0x1.554e550bd501ep-3) },
- .ln2 = V2 (0x1.62e42fefa39efp-1),
- .min_norm = V2 (0x0010000000000000),
- .special_bound = V4 (0x7fe00000), /* asuint64(inf) - min_norm. */
- .sign_exp_mask = V2 (0xfff0000000000000)
+ /* Rel error: 0x1.6272e588p-56 in [ -0x1.fc1p-9 0x1.009p-8 ]. */
+ .c0 = V2 (-0x1.ffffffffffff7p-2),
+ .c1 = 0x1.55555555170d4p-2,
+ .c2 = V2 (-0x1.0000000399c27p-2),
+ .c3 = 0x1.999b2e90e94cap-3,
+ .c4 = -0x1.554e550bd501ep-3,
+ .ln2 = 0x1.62e42fefa39efp-1,
+ .sign_exp_mask = V2 (0xfff0000000000000),
+ .off = V2 (0x3fe6900900000000),
+ /* Lower bound is 0x0010000000000000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound - offset (which wraps around). */
+ .offset_lower_bound = V2 (0x0010000000000000 - 0x3fe6900900000000),
+ .special_bound = V4 (0x7fe00000), /* asuint64(inf) - asuint64(0x1p-126). */
};
-#define A(i) d->poly[i]
#define N (1 << V_LOG_TABLE_BITS)
#define IndexMask (N - 1)
-#define Off v_u64 (0x3fe6900900000000)
struct entry
{
@@ -64,48 +66,56 @@ lookup (uint64x2_t i)
}
static float64x2_t VPCS_ATTR NOINLINE
-special_case (float64x2_t x, float64x2_t y, float64x2_t hi, float64x2_t r2,
- uint32x2_t cmp)
+special_case (float64x2_t hi, uint64x2_t u_off, float64x2_t y, float64x2_t r2,
+ uint32x2_t special, const struct data *d)
{
- return v_call_f64 (log, x, vfmaq_f64 (hi, y, r2), vmovl_u32 (cmp));
+ float64x2_t x = vreinterpretq_f64_u64 (vaddq_u64 (u_off, d->off));
+ return v_call_f64 (log, x, vfmaq_f64 (hi, y, r2), vmovl_u32 (special));
}
+/* Double-precision vector log routine.
+ The maximum observed error is 2.17 ULP:
+ _ZGVnN2v_log(0x1.a6129884398a3p+0) got 0x1.ffffff1cca043p-2
+ want 0x1.ffffff1cca045p-2. */
float64x2_t VPCS_ATTR V_NAME_D1 (log) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
- float64x2_t z, r, r2, p, y, kd, hi;
- uint64x2_t ix, iz, tmp;
- uint32x2_t cmp;
- int64x2_t k;
- struct entry e;
- ix = vreinterpretq_u64_f64 (x);
- cmp = vcge_u32 (vsubhn_u64 (ix, d->min_norm),
- vget_low_u32 (d->special_bound));
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint64x2_t u = vreinterpretq_u64_f64 (x);
+ uint64x2_t u_off = vsubq_u64 (u, d->off);
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- tmp = vsubq_u64 (ix, Off);
- k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); /* arithmetic shift. */
- iz = vsubq_u64 (ix, vandq_u64 (tmp, d->sign_exp_mask));
- z = vreinterpretq_f64_u64 (iz);
- e = lookup (tmp);
+ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (u_off), 52);
+ uint64x2_t iz = vsubq_u64 (u, vandq_u64 (u_off, d->sign_exp_mask));
+ float64x2_t z = vreinterpretq_f64_u64 (iz);
+
+ struct entry e = lookup (u_off);
+
+ uint32x2_t special = vcge_u32 (vsubhn_u64 (u_off, d->offset_lower_bound),
+ vget_low_u32 (d->special_bound));
/* log(x) = log1p(z/c-1) + log(c) + k*Ln2. */
- r = vfmaq_f64 (v_f64 (-1.0), z, e.invc);
- kd = vcvtq_f64_s64 (k);
+ float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc);
+ float64x2_t kd = vcvtq_f64_s64 (k);
/* hi = r + log(c) + k*Ln2. */
- hi = vfmaq_f64 (vaddq_f64 (e.logc, r), kd, d->ln2);
+ float64x2_t ln2_and_c4 = vld1q_f64 (&d->ln2);
+ float64x2_t hi = vfmaq_laneq_f64 (vaddq_f64 (e.logc, r), kd, ln2_and_c4, 0);
+
/* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */
- r2 = vmulq_f64 (r, r);
- y = vfmaq_f64 (A (2), A (3), r);
- p = vfmaq_f64 (A (0), A (1), r);
- y = vfmaq_f64 (y, A (4), r2);
- y = vfmaq_f64 (p, y, r2);
-
- if (__glibc_unlikely (v_any_u32h (cmp)))
- return special_case (x, y, hi, r2, cmp);
+ float64x2_t odd_coeffs = vld1q_f64 (&d->c1);
+ float64x2_t r2 = vmulq_f64 (r, r);
+ float64x2_t y = vfmaq_laneq_f64 (d->c2, r, odd_coeffs, 1);
+ float64x2_t p = vfmaq_laneq_f64 (d->c0, r, odd_coeffs, 0);
+ y = vfmaq_laneq_f64 (y, r2, ln2_and_c4, 1);
+ y = vfmaq_f64 (p, r2, y);
+
+ if (__glibc_unlikely (v_any_u32h (special)))
+ return special_case (hi, u_off, y, r2, special, d);
return vfmaq_f64 (hi, y, r2);
}
diff --git a/sysdeps/aarch64/fpu/log_sve.c b/sysdeps/aarch64/fpu/log_sve.c
index 9b689f2..dcf84e8 100644
--- a/sysdeps/aarch64/fpu/log_sve.c
+++ b/sysdeps/aarch64/fpu/log_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) log function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,39 +19,54 @@
#include "sv_math.h"
-#define P(i) sv_f64 (__v_log_data.poly[i])
#define N (1 << V_LOG_TABLE_BITS)
-#define Off (0x3fe6900900000000)
-#define MaxTop (0x7ff)
-#define MinTop (0x001)
-#define ThreshTop (0x7fe) /* MaxTop - MinTop. */
+#define Max (0x7ff0000000000000)
+#define Min (0x0010000000000000)
+#define Thresh (0x7fe0000000000000) /* Max - Min. */
+
+static const struct data
+{
+ double c0, c2;
+ double c1, c3;
+ double ln2, c4;
+ uint64_t off;
+} data = {
+ .c0 = -0x1.ffffffffffff7p-2,
+ .c1 = 0x1.55555555170d4p-2,
+ .c2 = -0x1.0000000399c27p-2,
+ .c3 = 0x1.999b2e90e94cap-3,
+ .c4 = -0x1.554e550bd501ep-3,
+ .ln2 = 0x1.62e42fefa39efp-1,
+ .off = 0x3fe6900900000000,
+};
static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t cmp)
+special_case (svfloat64_t hi, svuint64_t tmp, svfloat64_t y, svfloat64_t r2,
+ svbool_t special, const struct data *d)
{
- return sv_call_f64 (log, x, y, cmp);
+ svfloat64_t x = svreinterpret_f64 (svadd_x (svptrue_b64 (), tmp, d->off));
+ return sv_call_f64 (log, x, svmla_x (svptrue_b64 (), hi, r2, y), special);
}
-/* SVE port of AdvSIMD log algorithm.
- Maximum measured error is 2.17 ulp:
- SV_NAME_D1 (log)(0x1.a6129884398a3p+0) got 0x1.ffffff1cca043p-2
- want 0x1.ffffff1cca045p-2. */
+/* Double-precision SVE log routine.
+ Maximum measured error is 2.64 ulp:
+ SV_NAME_D1 (log)(0x1.95e54bc91a5e2p+184) got 0x1.fffffffe88cacp+6
+ want 0x1.fffffffe88cafp+6. */
svfloat64_t SV_NAME_D1 (log) (svfloat64_t x, const svbool_t pg)
{
+ const struct data *d = ptr_barrier (&data);
+
svuint64_t ix = svreinterpret_u64 (x);
- svuint64_t top = svlsr_x (pg, ix, 52);
- svbool_t cmp = svcmpge (pg, svsub_x (pg, top, MinTop), sv_u64 (ThreshTop));
+ svbool_t special = svcmpge (pg, svsub_x (pg, ix, Min), Thresh);
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- svuint64_t tmp = svsub_x (pg, ix, Off);
+ svuint64_t tmp = svsub_x (pg, ix, d->off);
/* Calculate table index = (tmp >> (52 - V_LOG_TABLE_BITS)) % N.
The actual value of i is double this due to table layout. */
svuint64_t i
= svand_x (pg, svlsr_x (pg, tmp, (51 - V_LOG_TABLE_BITS)), (N - 1) << 1);
- svint64_t k
- = svasr_x (pg, svreinterpret_s64 (tmp), 52); /* Arithmetic shift. */
svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, 0xfffULL << 52));
svfloat64_t z = svreinterpret_f64 (iz);
/* Lookup in 2 global lists (length N). */
@@ -59,18 +74,22 @@ svfloat64_t SV_NAME_D1 (log) (svfloat64_t x, const svbool_t pg)
svfloat64_t logc = svld1_gather_index (pg, &__v_log_data.table[0].logc, i);
/* log(x) = log1p(z/c-1) + log(c) + k*Ln2. */
- svfloat64_t r = svmad_x (pg, invc, z, -1);
- svfloat64_t kd = svcvt_f64_x (pg, k);
+ svfloat64_t kd = svcvt_f64_x (pg, svasr_x (pg, svreinterpret_s64 (tmp), 52));
/* hi = r + log(c) + k*Ln2. */
- svfloat64_t hi = svmla_x (pg, svadd_x (pg, logc, r), kd, __v_log_data.ln2);
+ svfloat64_t ln2_and_c4 = svld1rq_f64 (svptrue_b64 (), &d->ln2);
+ svfloat64_t r = svmad_x (pg, invc, z, -1);
+ svfloat64_t hi = svmla_lane_f64 (logc, kd, ln2_and_c4, 0);
+ hi = svadd_x (pg, r, hi);
+
/* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t y = svmla_x (pg, P (2), r, P (3));
- svfloat64_t p = svmla_x (pg, P (0), r, P (1));
- y = svmla_x (pg, y, r2, P (4));
+ svfloat64_t odd_coeffs = svld1rq_f64 (svptrue_b64 (), &d->c1);
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t y = svmla_lane_f64 (sv_f64 (d->c2), r, odd_coeffs, 1);
+ svfloat64_t p = svmla_lane_f64 (sv_f64 (d->c0), r, odd_coeffs, 0);
+ y = svmla_lane_f64 (y, r2, ln2_and_c4, 1);
y = svmla_x (pg, p, r2, y);
- if (__glibc_unlikely (svptest_any (pg, cmp)))
- return special_case (x, svmla_x (svnot_z (pg, cmp), hi, r2, y), cmp);
+ if (__glibc_unlikely (svptest_any (pg, special)))
+ return special_case (hi, tmp, y, r2, special, d);
return svmla_x (pg, hi, r2, y);
}
diff --git a/sysdeps/aarch64/fpu/logf_advsimd.c b/sysdeps/aarch64/fpu/logf_advsimd.c
index 3c0d0fc..8a0c9a1 100644
--- a/sysdeps/aarch64/fpu/logf_advsimd.c
+++ b/sysdeps/aarch64/fpu/logf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) log function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,66 +21,71 @@
static const struct data
{
- uint32x4_t min_norm;
+ float32x4_t c2, c4, c6, ln2;
+ uint32x4_t off, offset_lower_bound, mantissa_mask;
uint16x8_t special_bound;
- float32x4_t poly[7];
- float32x4_t ln2, tiny_bound;
- uint32x4_t off, mantissa_mask;
+ float c1, c3, c5, c0;
} data = {
/* 3.34 ulp error. */
- .poly = { V4 (-0x1.3e737cp-3f), V4 (0x1.5a9aa2p-3f), V4 (-0x1.4f9934p-3f),
- V4 (0x1.961348p-3f), V4 (-0x1.00187cp-2f), V4 (0x1.555d7cp-2f),
- V4 (-0x1.ffffc8p-2f) },
+ .c0 = -0x1.3e737cp-3f,
+ .c1 = 0x1.5a9aa2p-3f,
+ .c2 = V4 (-0x1.4f9934p-3f),
+ .c3 = 0x1.961348p-3f,
+ .c4 = V4 (-0x1.00187cp-2f),
+ .c5 = 0x1.555d7cp-2f,
+ .c6 = V4 (-0x1.ffffc8p-2f),
.ln2 = V4 (0x1.62e43p-1f),
- .tiny_bound = V4 (0x1p-126),
- .min_norm = V4 (0x00800000),
- .special_bound = V8 (0x7f00), /* asuint32(inf) - min_norm. */
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .offset_lower_bound = V4 (0x00800000 - 0x3f2aaaab),
+ .special_bound = V8 (0x7f00), /* top16(asuint32(inf) - 0x00800000). */
.off = V4 (0x3f2aaaab), /* 0.666667. */
.mantissa_mask = V4 (0x007fffff)
};
-#define P(i) d->poly[7 - i]
-
static float32x4_t VPCS_ATTR NOINLINE
-special_case (float32x4_t x, float32x4_t y, float32x4_t r2, float32x4_t p,
- uint16x4_t cmp)
+special_case (float32x4_t p, uint32x4_t u_off, float32x4_t y, float32x4_t r2,
+ uint16x4_t cmp, const struct data *d)
{
/* Fall back to scalar code. */
- return v_call_f32 (logf, x, vfmaq_f32 (p, y, r2), vmovl_u16 (cmp));
+ return v_call_f32 (logf, vreinterpretq_f32_u32 (vaddq_u32 (u_off, d->off)),
+ vfmaq_f32 (p, y, r2), vmovl_u16 (cmp));
}
float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (log) (float32x4_t x)
{
const struct data *d = ptr_barrier (&data);
- float32x4_t n, p, q, r, r2, y;
- uint32x4_t u;
- uint16x4_t cmp;
+ float32x4_t c1350 = vld1q_f32 (&d->c1);
- u = vreinterpretq_u32_f32 (x);
- cmp = vcge_u16 (vsubhn_u32 (u, d->min_norm),
- vget_low_u16 (d->special_bound));
+ /* To avoid having to mov x out of the way, keep u after offset has been
+ applied, and recover x by adding the offset back in the special-case
+ handler. */
+ uint32x4_t u_off = vsubq_u32 (vreinterpretq_u32_f32 (x), d->off);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- u = vsubq_u32 (u, d->off);
- n = vcvtq_f32_s32 (
- vshrq_n_s32 (vreinterpretq_s32_u32 (u), 23)); /* signextend. */
- u = vandq_u32 (u, d->mantissa_mask);
- u = vaddq_u32 (u, d->off);
- r = vsubq_f32 (vreinterpretq_f32_u32 (u), v_f32 (1.0f));
+ float32x4_t n = vcvtq_f32_s32 (
+ vshrq_n_s32 (vreinterpretq_s32_u32 (u_off), 23)); /* signextend. */
+ uint16x4_t cmp = vcge_u16 (vsubhn_u32 (u_off, d->offset_lower_bound),
+ vget_low_u16 (d->special_bound));
+
+ uint32x4_t u = vaddq_u32 (vandq_u32 (u_off, d->mantissa_mask), d->off);
+ float32x4_t r = vsubq_f32 (vreinterpretq_f32_u32 (u), v_f32 (1.0f));
/* y = log(1+r) + n*ln2. */
- r2 = vmulq_f32 (r, r);
+ float32x4_t r2 = vmulq_f32 (r, r);
/* n*ln2 + r + r2*(P1 + r*P2 + r2*(P3 + r*P4 + r2*(P5 + r*P6 + r2*P7))). */
- p = vfmaq_f32 (P (5), P (6), r);
- q = vfmaq_f32 (P (3), P (4), r);
- y = vfmaq_f32 (P (1), P (2), r);
- p = vfmaq_f32 (p, P (7), r2);
+ float32x4_t p = vfmaq_laneq_f32 (d->c2, r, c1350, 0);
+ float32x4_t q = vfmaq_laneq_f32 (d->c4, r, c1350, 1);
+ float32x4_t y = vfmaq_laneq_f32 (d->c6, r, c1350, 2);
+ p = vfmaq_laneq_f32 (p, r2, c1350, 3);
+
q = vfmaq_f32 (q, p, r2);
y = vfmaq_f32 (y, q, r2);
p = vfmaq_f32 (r, d->ln2, n);
if (__glibc_unlikely (v_any_u16h (cmp)))
- return special_case (x, y, r2, p, cmp);
+ return special_case (p, u_off, y, r2, cmp, d);
return vfmaq_f32 (p, y, r2);
}
libmvec_hidden_def (V_NAME_F1 (log))
diff --git a/sysdeps/aarch64/fpu/logf_sve.c b/sysdeps/aarch64/fpu/logf_sve.c
index d64e810..2e81a93 100644
--- a/sysdeps/aarch64/fpu/logf_sve.c
+++ b/sysdeps/aarch64/fpu/logf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) log function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,7 @@ static const struct data
float poly_0135[4];
float poly_246[3];
float ln2;
+ uint32_t off, lower;
} data = {
.poly_0135 = {
/* Coefficients copied from the AdvSIMD routine in math/, then rearranged so
@@ -32,19 +33,24 @@ static const struct data
-0x1.3e737cp-3f, 0x1.5a9aa2p-3f, 0x1.961348p-3f, 0x1.555d7cp-2f
},
.poly_246 = { -0x1.4f9934p-3f, -0x1.00187cp-2f, -0x1.ffffc8p-2f },
- .ln2 = 0x1.62e43p-1f
+ .ln2 = 0x1.62e43p-1f,
+ .off = 0x3f2aaaab,
+ /* Lower bound is the smallest positive normal float 0x00800000. For
+ optimised register use subnormals are detected after offset has been
+ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */
+ .lower = 0x00800000 - 0x3f2aaaab
};
-#define Min (0x00800000)
-#define Max (0x7f800000)
-#define Thresh (0x7f000000) /* Max - Min. */
+#define Thresh (0x7f000000) /* asuint32(inf) - 0x00800000. */
#define Mask (0x007fffff)
-#define Off (0x3f2aaaab) /* 0.666667. */
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)
+special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y,
+ svbool_t cmp)
{
- return sv_call_f32 (logf, x, y, cmp);
+ return sv_call_f32 (
+ logf, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)),
+ svmla_x (svptrue_b32 (), p, r2, y), cmp);
}
/* Optimised implementation of SVE logf, using the same algorithm and
@@ -55,19 +61,21 @@ svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svuint32_t u = svreinterpret_u32 (x);
- svbool_t cmp = svcmpge (pg, svsub_x (pg, u, Min), Thresh);
+ svuint32_t u_off = svreinterpret_u32 (x);
+
+ u_off = svsub_x (pg, u_off, d->off);
+ svbool_t cmp = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thresh);
/* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */
- u = svsub_x (pg, u, Off);
svfloat32_t n = svcvt_f32_x (
- pg, svasr_x (pg, svreinterpret_s32 (u), 23)); /* Sign-extend. */
- u = svand_x (pg, u, Mask);
- u = svadd_x (pg, u, Off);
+ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* Sign-extend. */
+
+ svuint32_t u = svand_x (pg, u_off, Mask);
+ u = svadd_x (pg, u, d->off);
svfloat32_t r = svsub_x (pg, svreinterpret_f32 (u), 1.0f);
/* y = log(1+r) + n*ln2. */
- svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r);
/* n*ln2 + r + r2*(P6 + r*P5 + r2*(P4 + r*P3 + r2*(P2 + r*P1 + r2*P0))). */
svfloat32_t p_0135 = svld1rq (svptrue_b32 (), &d->poly_0135[0]);
svfloat32_t p = svmla_lane (sv_f32 (d->poly_246[0]), r, p_0135, 1);
@@ -80,6 +88,6 @@ svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg)
p = svmla_x (pg, r, n, d->ln2);
if (__glibc_unlikely (svptest_any (pg, cmp)))
- return special_case (x, svmla_x (svnot_z (pg, cmp), p, r2, y), cmp);
+ return special_case (u_off, p, r2, y, cmp);
return svmla_x (pg, p, r2, y);
}
diff --git a/sysdeps/aarch64/fpu/math-barriers.h b/sysdeps/aarch64/fpu/math-barriers.h
index 695251e..bf23350 100644
--- a/sysdeps/aarch64/fpu/math-barriers.h
+++ b/sysdeps/aarch64/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. AArch64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/math-tests-arch.h b/sysdeps/aarch64/fpu/math-tests-arch.h
index 235deec..1062f84 100644
--- a/sysdeps/aarch64/fpu/math-tests-arch.h
+++ b/sysdeps/aarch64/fpu/math-tests-arch.h
@@ -1,6 +1,6 @@
/* Runtime architecture check for math tests. AArch64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
index bbcb2bd..1030d97 100644
--- a/sysdeps/aarch64/fpu/math_private.h
+++ b/sysdeps/aarch64/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Configure optimized libm functions. AArch64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_advsimd_f32.h b/sysdeps/aarch64/fpu/poly_advsimd_f32.h
index 2d11d0c..284ab07 100644
--- a/sysdeps/aarch64/fpu/poly_advsimd_f32.h
+++ b/sysdeps/aarch64/fpu/poly_advsimd_f32.h
@@ -1,7 +1,7 @@
/* Helpers for evaluating polynomials on single-precision AdvSIMD input, using
various schemes.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_advsimd_f64.h b/sysdeps/aarch64/fpu/poly_advsimd_f64.h
index 1ea5f85..179c7fd 100644
--- a/sysdeps/aarch64/fpu/poly_advsimd_f64.h
+++ b/sysdeps/aarch64/fpu/poly_advsimd_f64.h
@@ -1,7 +1,7 @@
/* Helpers for evaluating polynomials on double-precision AdvSIMD input, using
various schemes.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_generic.h b/sysdeps/aarch64/fpu/poly_generic.h
index 595cda9..562e5bd 100644
--- a/sysdeps/aarch64/fpu/poly_generic.h
+++ b/sysdeps/aarch64/fpu/poly_generic.h
@@ -1,6 +1,6 @@
/* Generic helpers for evaluating polynomials with various schemes.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_sve_f32.h b/sysdeps/aarch64/fpu/poly_sve_f32.h
index ef6db29..f0766e8 100644
--- a/sysdeps/aarch64/fpu/poly_sve_f32.h
+++ b/sysdeps/aarch64/fpu/poly_sve_f32.h
@@ -1,7 +1,7 @@
/* Helpers for evaluating polynomials on single-precision SVE input, using
various schemes.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_sve_f64.h b/sysdeps/aarch64/fpu/poly_sve_f64.h
index f7c8468..b36c164 100644
--- a/sysdeps/aarch64/fpu/poly_sve_f64.h
+++ b/sysdeps/aarch64/fpu/poly_sve_f64.h
@@ -1,7 +1,7 @@
/* Helpers for evaluating polynomials on double-precision SVE input, using
various schemes.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/poly_sve_generic.h b/sysdeps/aarch64/fpu/poly_sve_generic.h
index 227760c..6e8efc5 100644
--- a/sysdeps/aarch64/fpu/poly_sve_generic.h
+++ b/sysdeps/aarch64/fpu/poly_sve_generic.h
@@ -1,7 +1,7 @@
/* Helpers for evaluating polynomials with various schemes - specific to SVE
but precision-agnostic.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/pow_advsimd.c b/sysdeps/aarch64/fpu/pow_advsimd.c
index 3c91e3e..e5bb4f0 100644
--- a/sysdeps/aarch64/fpu/pow_advsimd.c
+++ b/sysdeps/aarch64/fpu/pow_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (AdvSIMD) pow function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,9 +22,6 @@
/* Defines parameters of the approximation and scalar fallback. */
#include "finite_pow.h"
-#define VecSmallExp v_u64 (SmallExp)
-#define VecThresExp v_u64 (ThresExp)
-
#define VecSmallPowX v_u64 (SmallPowX)
#define VecThresPowX v_u64 (ThresPowX)
#define VecSmallPowY v_u64 (SmallPowY)
@@ -32,36 +29,48 @@
static const struct data
{
- float64x2_t log_poly[6];
- float64x2_t exp_poly[3];
- float64x2_t ln2_hi, ln2_lo;
- float64x2_t shift, inv_ln2_n, ln2_hi_n, ln2_lo_n, small_powx;
uint64x2_t inf;
+ float64x2_t small_powx;
+ uint64x2_t offset, mask;
+ uint64x2_t mask_sub_0, mask_sub_1;
+ float64x2_t log_c0, log_c2, log_c4, log_c5;
+ double log_c1, log_c3;
+ double ln2_lo, ln2_hi;
+ uint64x2_t small_exp, thres_exp;
+ double ln2_lo_n, ln2_hi_n;
+ double inv_ln2_n, exp_c2;
+ float64x2_t exp_c0, exp_c1;
} data = {
+ /* Power threshold. */
+ .inf = V2 (0x7ff0000000000000),
+ .small_powx = V2 (0x1p-126),
+ .offset = V2 (Off),
+ .mask = V2 (0xfffULL << 52),
+ .mask_sub_0 = V2 (1ULL << 52),
+ .mask_sub_1 = V2 (52ULL << 52),
/* Coefficients copied from v_pow_log_data.c
relative error: 0x1.11922ap-70 in [-0x1.6bp-8, 0x1.6bp-8]
Coefficients are scaled to match the scaling during evaluation. */
- .log_poly
- = { V2 (0x1.555555555556p-2 * -2), V2 (-0x1.0000000000006p-2 * -2),
- V2 (0x1.999999959554ep-3 * 4), V2 (-0x1.555555529a47ap-3 * 4),
- V2 (0x1.2495b9b4845e9p-3 * -8), V2 (-0x1.0002b8b263fc3p-3 * -8) },
- .ln2_hi = V2 (0x1.62e42fefa3800p-1),
- .ln2_lo = V2 (0x1.ef35793c76730p-45),
+ .log_c0 = V2 (0x1.555555555556p-2 * -2),
+ .log_c1 = -0x1.0000000000006p-2 * -2,
+ .log_c2 = V2 (0x1.999999959554ep-3 * 4),
+ .log_c3 = -0x1.555555529a47ap-3 * 4,
+ .log_c4 = V2 (0x1.2495b9b4845e9p-3 * -8),
+ .log_c5 = V2 (-0x1.0002b8b263fc3p-3 * -8),
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
/* Polynomial coefficients: abs error: 1.43*2^-58, ulp error: 0.549
(0.550 without fma) if |x| < ln2/512. */
- .exp_poly = { V2 (0x1.fffffffffffd4p-2), V2 (0x1.5555571d6ef9p-3),
- V2 (0x1.5555576a5adcep-5) },
- .shift = V2 (0x1.8p52), /* round to nearest int. without intrinsics. */
- .inv_ln2_n = V2 (0x1.71547652b82fep8), /* N/ln2. */
- .ln2_hi_n = V2 (0x1.62e42fefc0000p-9), /* ln2/N. */
- .ln2_lo_n = V2 (-0x1.c610ca86c3899p-45),
- .small_powx = V2 (0x1p-126),
- .inf = V2 (0x7ff0000000000000)
+ .exp_c0 = V2 (0x1.fffffffffffd4p-2),
+ .exp_c1 = V2 (0x1.5555571d6ef9p-3),
+ .exp_c2 = 0x1.5555576a5adcep-5,
+ .small_exp = V2 (0x3c90000000000000),
+ .thres_exp = V2 (0x03f0000000000000),
+ .inv_ln2_n = 0x1.71547652b82fep8, /* N/ln2. */
+ .ln2_hi_n = 0x1.62e42fefc0000p-9, /* ln2/N. */
+ .ln2_lo_n = -0x1.c610ca86c3899p-45,
};
-#define A(i) data.log_poly[i]
-#define C(i) data.exp_poly[i]
-
/* This version implements an algorithm close to scalar pow but
- does not implement the trick in the exp's specialcase subroutine to avoid
double-rounding,
@@ -91,10 +100,9 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d)
/* x = 2^k z; where z is in range [OFF,2*OFF) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- uint64x2_t tmp = vsubq_u64 (ix, v_u64 (Off));
- int64x2_t k
- = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); /* arithmetic shift. */
- uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, v_u64 (0xfffULL << 52)));
+ uint64x2_t tmp = vsubq_u64 (ix, d->offset);
+ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52);
+ uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, d->mask));
float64x2_t z = vreinterpretq_f64_u64 (iz);
float64x2_t kd = vcvtq_f64_s64 (k);
/* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */
@@ -105,9 +113,10 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d)
|z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */
float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, invc);
/* k*Ln2 + log(c) + r. */
- float64x2_t t1 = vfmaq_f64 (logc, kd, d->ln2_hi);
+ float64x2_t ln2 = vld1q_f64 (&d->ln2_lo);
+ float64x2_t t1 = vfmaq_laneq_f64 (logc, kd, ln2, 1);
float64x2_t t2 = vaddq_f64 (t1, r);
- float64x2_t lo1 = vfmaq_f64 (logctail, kd, d->ln2_lo);
+ float64x2_t lo1 = vfmaq_laneq_f64 (logctail, kd, ln2, 0);
float64x2_t lo2 = vaddq_f64 (vsubq_f64 (t1, t2), r);
/* Evaluation is optimized assuming superscalar pipelined execution. */
float64x2_t ar = vmulq_f64 (v_f64 (-0.5), r);
@@ -118,9 +127,10 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d)
float64x2_t lo3 = vfmaq_f64 (vnegq_f64 (ar2), ar, r);
float64x2_t lo4 = vaddq_f64 (vsubq_f64 (t2, hi), ar2);
/* p = log1p(r) - r - A[0]*r*r. */
- float64x2_t a56 = vfmaq_f64 (A (4), r, A (5));
- float64x2_t a34 = vfmaq_f64 (A (2), r, A (3));
- float64x2_t a12 = vfmaq_f64 (A (0), r, A (1));
+ float64x2_t odd_coeffs = vld1q_f64 (&d->log_c1);
+ float64x2_t a56 = vfmaq_f64 (d->log_c4, r, d->log_c5);
+ float64x2_t a34 = vfmaq_laneq_f64 (d->log_c2, r, odd_coeffs, 1);
+ float64x2_t a12 = vfmaq_laneq_f64 (d->log_c0, r, odd_coeffs, 0);
float64x2_t p = vfmaq_f64 (a34, ar2, a56);
p = vfmaq_f64 (a12, ar2, p);
p = vmulq_f64 (ar3, p);
@@ -140,28 +150,28 @@ exp_special_case (float64x2_t x, float64x2_t xtail)
/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. */
static inline float64x2_t
-v_exp_inline (float64x2_t x, float64x2_t xtail, const struct data *d)
+v_exp_inline (float64x2_t x, float64x2_t neg_xtail, const struct data *d)
{
/* Fallback to scalar exp_inline for all lanes if any lane
contains value of x s.t. |x| <= 2^-54 or >= 512. */
- uint64x2_t abstop
- = vshrq_n_u64 (vandq_u64 (vreinterpretq_u64_f64 (x), d->inf), 52);
- uint64x2_t uoflowx
- = vcgeq_u64 (vsubq_u64 (abstop, VecSmallExp), VecThresExp);
+ uint64x2_t uoflowx = vcgeq_u64 (
+ vsubq_u64 (vreinterpretq_u64_f64 (vabsq_f64 (x)), d->small_exp),
+ d->thres_exp);
if (__glibc_unlikely (v_any_u64 (uoflowx)))
- return exp_special_case (x, xtail);
+ return exp_special_case (x, vnegq_f64 (neg_xtail));
/* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */
/* x = ln2/N*k + r, with k integer and r in [-ln2/2N, ln2/2N]. */
- float64x2_t z = vmulq_f64 (d->inv_ln2_n, x);
/* z - kd is in [-1, 1] in non-nearest rounding modes. */
- float64x2_t kd = vaddq_f64 (z, d->shift);
- uint64x2_t ki = vreinterpretq_u64_f64 (kd);
- kd = vsubq_f64 (kd, d->shift);
- float64x2_t r = vfmsq_f64 (x, kd, d->ln2_hi_n);
- r = vfmsq_f64 (r, kd, d->ln2_lo_n);
+ float64x2_t exp_consts = vld1q_f64 (&d->inv_ln2_n);
+ float64x2_t z = vmulq_laneq_f64 (x, exp_consts, 0);
+ float64x2_t kd = vrndnq_f64 (z);
+ uint64x2_t ki = vreinterpretq_u64_s64 (vcvtaq_s64_f64 (z));
+ float64x2_t ln2_n = vld1q_f64 (&d->ln2_lo_n);
+ float64x2_t r = vfmsq_laneq_f64 (x, kd, ln2_n, 1);
+ r = vfmsq_laneq_f64 (r, kd, ln2_n, 0);
/* The code assumes 2^-200 < |xtail| < 2^-8/N. */
- r = vaddq_f64 (r, xtail);
+ r = vsubq_f64 (r, neg_xtail);
/* 2^(k/N) ~= scale. */
uint64x2_t idx = vandq_u64 (ki, v_u64 (N_EXP - 1));
uint64x2_t top = vshlq_n_u64 (ki, 52 - V_POW_EXP_TABLE_BITS);
@@ -170,8 +180,8 @@ v_exp_inline (float64x2_t x, float64x2_t xtail, const struct data *d)
sbits = vaddq_u64 (sbits, top);
/* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */
float64x2_t r2 = vmulq_f64 (r, r);
- float64x2_t tmp = vfmaq_f64 (C (1), r, C (2));
- tmp = vfmaq_f64 (C (0), r, tmp);
+ float64x2_t tmp = vfmaq_laneq_f64 (d->exp_c1, r, exp_consts, 1);
+ tmp = vfmaq_f64 (d->exp_c0, r, tmp);
tmp = vfmaq_f64 (r, r2, tmp);
float64x2_t scale = vreinterpretq_f64_u64 (sbits);
/* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there
@@ -230,8 +240,8 @@ float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y)
{
/* Normalize subnormal x so exponent becomes negative. */
uint64x2_t vix_norm = vreinterpretq_u64_f64 (
- vabsq_f64 (vmulq_f64 (x, vcvtq_f64_u64 (v_u64 (1ULL << 52)))));
- vix_norm = vsubq_u64 (vix_norm, v_u64 (52ULL << 52));
+ vabsq_f64 (vmulq_f64 (x, vcvtq_f64_u64 (d->mask_sub_0))));
+ vix_norm = vsubq_u64 (vix_norm, d->mask_sub_1);
vix = vbslq_u64 (sub_x, vix_norm, vix);
}
}
@@ -242,8 +252,7 @@ float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y)
/* Vector Exp(y_loghi, y_loglo). */
float64x2_t vehi = vmulq_f64 (y, vhi);
- float64x2_t velo = vmulq_f64 (y, vlo);
float64x2_t vemi = vfmsq_f64 (vehi, y, vhi);
- velo = vsubq_f64 (velo, vemi);
- return v_exp_inline (vehi, velo, d);
+ float64x2_t neg_velo = vfmsq_f64 (vemi, y, vlo);
+ return v_exp_inline (vehi, neg_velo, d);
}
diff --git a/sysdeps/aarch64/fpu/pow_sve.c b/sysdeps/aarch64/fpu/pow_sve.c
index 4c0bf89..b8c1b39 100644
--- a/sysdeps/aarch64/fpu/pow_sve.c
+++ b/sysdeps/aarch64/fpu/pow_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) pow function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,19 +44,18 @@
/* Data is defined in v_pow_log_data.c. */
#define N_LOG (1 << V_POW_LOG_TABLE_BITS)
-#define A __v_pow_log_data.poly
#define Off 0x3fe6955500000000
/* Data is defined in v_pow_exp_data.c. */
#define N_EXP (1 << V_POW_EXP_TABLE_BITS)
#define SignBias (0x800 << V_POW_EXP_TABLE_BITS)
-#define C __v_pow_exp_data.poly
#define SmallExp 0x3c9 /* top12(0x1p-54). */
#define BigExp 0x408 /* top12(512.). */
#define ThresExp 0x03f /* BigExp - SmallExp. */
#define HugeExp 0x409 /* top12(1024.). */
/* Constants associated with pow. */
+#define SmallBoundX 0x1p-126
#define SmallPowX 0x001 /* top12(0x1p-126). */
#define BigPowX 0x7ff /* top12(INFINITY). */
#define ThresPowX 0x7fe /* BigPowX - SmallPowX. */
@@ -64,6 +63,31 @@
#define BigPowY 0x43e /* top12(0x1.749p62). */
#define ThresPowY 0x080 /* BigPowY - SmallPowY. */
+static const struct data
+{
+ double log_c0, log_c2, log_c4, log_c6, ln2_hi, ln2_lo;
+ double log_c1, log_c3, log_c5, off;
+ double n_over_ln2, exp_c2, ln2_over_n_hi, ln2_over_n_lo;
+ double exp_c0, exp_c1;
+} data = {
+ .log_c0 = -0x1p-1,
+ .log_c1 = -0x1.555555555556p-1,
+ .log_c2 = 0x1.0000000000006p-1,
+ .log_c3 = 0x1.999999959554ep-1,
+ .log_c4 = -0x1.555555529a47ap-1,
+ .log_c5 = -0x1.2495b9b4845e9p0,
+ .log_c6 = 0x1.0002b8b263fc3p0,
+ .off = Off,
+ .exp_c0 = 0x1.fffffffffffd4p-2,
+ .exp_c1 = 0x1.5555571d6ef9p-3,
+ .exp_c2 = 0x1.5555576a5adcep-5,
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
+ .n_over_ln2 = 0x1.71547652b82fep0 * N_EXP,
+ .ln2_over_n_hi = 0x1.62e42fefc0000p-9,
+ .ln2_over_n_lo = -0x1.c610ca86c3899p-45,
+};
+
/* Check if x is an integer. */
static inline svbool_t
sv_isint (svbool_t pg, svfloat64_t x)
@@ -82,7 +106,7 @@ sv_isnotint (svbool_t pg, svfloat64_t x)
static inline svbool_t
sv_isodd (svbool_t pg, svfloat64_t x)
{
- svfloat64_t y = svmul_x (pg, x, 0.5);
+ svfloat64_t y = svmul_x (svptrue_b64 (), x, 0.5);
return sv_isnotint (pg, y);
}
@@ -121,7 +145,7 @@ zeroinfnan (uint64_t i)
static inline svbool_t
sv_zeroinfnan (svbool_t pg, svuint64_t i)
{
- return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2), 1),
+ return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1),
2 * asuint64 (INFINITY) - 1);
}
@@ -174,16 +198,17 @@ sv_call_specialcase (svfloat64_t x1, svuint64_t u1, svuint64_t u2,
additional 15 bits precision. IX is the bit representation of x, but
normalized in the subnormal range using the sign bit for the exponent. */
static inline svfloat64_t
-sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail)
+sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail,
+ const struct data *d)
{
/* x = 2^k z; where z is in range [Off,2*Off) and exact.
The range is split into N subintervals.
The ith subinterval contains z and c is near its center. */
- svuint64_t tmp = svsub_x (pg, ix, Off);
+ svuint64_t tmp = svsub_x (pg, ix, d->off);
svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, 52 - V_POW_LOG_TABLE_BITS),
sv_u64 (N_LOG - 1));
svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52);
- svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, sv_u64 (0xfffULL << 52)));
+ svuint64_t iz = svsub_x (pg, ix, svlsl_x (pg, svreinterpret_u64 (k), 52));
svfloat64_t z = svreinterpret_f64 (iz);
svfloat64_t kd = svcvt_f64_x (pg, k);
@@ -199,40 +224,85 @@ sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail)
|z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */
svfloat64_t r = svmad_x (pg, z, invc, -1.0);
/* k*Ln2 + log(c) + r. */
- svfloat64_t t1 = svmla_x (pg, logc, kd, __v_pow_log_data.ln2_hi);
+
+ svfloat64_t ln2_hilo = svld1rq_f64 (svptrue_b64 (), &d->ln2_hi);
+ svfloat64_t t1 = svmla_lane_f64 (logc, kd, ln2_hilo, 0);
svfloat64_t t2 = svadd_x (pg, t1, r);
- svfloat64_t lo1 = svmla_x (pg, logctail, kd, __v_pow_log_data.ln2_lo);
+ svfloat64_t lo1 = svmla_lane_f64 (logctail, kd, ln2_hilo, 1);
svfloat64_t lo2 = svadd_x (pg, svsub_x (pg, t1, t2), r);
/* Evaluation is optimized assuming superscalar pipelined execution. */
- svfloat64_t ar = svmul_x (pg, r, -0.5); /* A[0] = -0.5. */
- svfloat64_t ar2 = svmul_x (pg, r, ar);
- svfloat64_t ar3 = svmul_x (pg, r, ar2);
+
+ svfloat64_t log_c02 = svld1rq_f64 (svptrue_b64 (), &d->log_c0);
+ svfloat64_t ar = svmul_lane_f64 (r, log_c02, 0);
+ svfloat64_t ar2 = svmul_x (svptrue_b64 (), r, ar);
+ svfloat64_t ar3 = svmul_x (svptrue_b64 (), r, ar2);
/* k*Ln2 + log(c) + r + A[0]*r*r. */
svfloat64_t hi = svadd_x (pg, t2, ar2);
- svfloat64_t lo3 = svmla_x (pg, svneg_x (pg, ar2), ar, r);
+ svfloat64_t lo3 = svmls_x (pg, ar2, ar, r);
svfloat64_t lo4 = svadd_x (pg, svsub_x (pg, t2, hi), ar2);
/* p = log1p(r) - r - A[0]*r*r. */
/* p = (ar3 * (A[1] + r * A[2] + ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r *
A[6])))). */
- svfloat64_t a56 = svmla_x (pg, sv_f64 (A[5]), r, A[6]);
- svfloat64_t a34 = svmla_x (pg, sv_f64 (A[3]), r, A[4]);
- svfloat64_t a12 = svmla_x (pg, sv_f64 (A[1]), r, A[2]);
+
+ svfloat64_t log_c46 = svld1rq_f64 (svptrue_b64 (), &d->log_c4);
+ svfloat64_t a56 = svmla_lane_f64 (sv_f64 (d->log_c5), r, log_c46, 1);
+ svfloat64_t a34 = svmla_lane_f64 (sv_f64 (d->log_c3), r, log_c46, 0);
+ svfloat64_t a12 = svmla_lane_f64 (sv_f64 (d->log_c1), r, log_c02, 1);
svfloat64_t p = svmla_x (pg, a34, ar2, a56);
p = svmla_x (pg, a12, ar2, p);
- p = svmul_x (pg, ar3, p);
+ p = svmul_x (svptrue_b64 (), ar3, p);
svfloat64_t lo = svadd_x (
- pg, svadd_x (pg, svadd_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p);
+ pg, svadd_x (pg, svsub_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p);
svfloat64_t y = svadd_x (pg, hi, lo);
*tail = svadd_x (pg, svsub_x (pg, hi, y), lo);
return y;
}
+static inline svfloat64_t
+sv_exp_core (svbool_t pg, svfloat64_t x, svfloat64_t xtail,
+ svuint64_t sign_bias, svfloat64_t *tmp, svuint64_t *sbits,
+ svuint64_t *ki, const struct data *d)
+{
+ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */
+ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */
+ svfloat64_t n_over_ln2_and_c2 = svld1rq_f64 (svptrue_b64 (), &d->n_over_ln2);
+ svfloat64_t z = svmul_lane_f64 (x, n_over_ln2_and_c2, 0);
+ /* z - kd is in [-1, 1] in non-nearest rounding modes. */
+ svfloat64_t kd = svrinta_x (pg, z);
+ *ki = svreinterpret_u64 (svcvt_s64_x (pg, kd));
+
+ svfloat64_t ln2_over_n_hilo
+ = svld1rq_f64 (svptrue_b64 (), &d->ln2_over_n_hi);
+ svfloat64_t r = x;
+ r = svmls_lane_f64 (r, kd, ln2_over_n_hilo, 0);
+ r = svmls_lane_f64 (r, kd, ln2_over_n_hilo, 1);
+ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */
+ r = svadd_x (pg, r, xtail);
+ /* 2^(k/N) ~= scale. */
+ svuint64_t idx = svand_x (pg, *ki, N_EXP - 1);
+ svuint64_t top
+ = svlsl_x (pg, svadd_x (pg, *ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS);
+ /* This is only a valid scale when -1023*N < k < 1024*N. */
+ *sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx);
+ *sbits = svadd_x (pg, *sbits, top);
+ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ *tmp = svmla_lane_f64 (sv_f64 (d->exp_c1), r, n_over_ln2_and_c2, 1);
+ *tmp = svmla_x (pg, sv_f64 (d->exp_c0), r, *tmp);
+ *tmp = svmla_x (pg, r, r2, *tmp);
+ svfloat64_t scale = svreinterpret_f64 (*sbits);
+ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there
+ is no spurious underflow here even without fma. */
+ z = svmla_x (pg, scale, scale, *tmp);
+ return z;
+}
+
/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|.
The sign_bias argument is SignBias or 0 and sets the sign to -1 or 1. */
static inline svfloat64_t
sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail,
- svuint64_t sign_bias)
+ svuint64_t sign_bias, const struct data *d)
{
/* 3 types of special cases: tiny (uflow and spurious uflow), huge (oflow)
and other cases of large values of x (scale * (1 + TMP) oflow). */
@@ -240,73 +310,46 @@ sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail,
/* |x| is large (|x| >= 512) or tiny (|x| <= 0x1p-54). */
svbool_t uoflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), ThresExp);
- /* Conditions special, uflow and oflow are all expressed as uoflow &&
- something, hence do not bother computing anything if no lane in uoflow is
- true. */
- svbool_t special = svpfalse_b ();
- svbool_t uflow = svpfalse_b ();
- svbool_t oflow = svpfalse_b ();
+ svfloat64_t tmp;
+ svuint64_t sbits, ki;
if (__glibc_unlikely (svptest_any (pg, uoflow)))
{
+ svfloat64_t z
+ = sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d);
+
/* |x| is tiny (|x| <= 0x1p-54). */
- uflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000);
+ svbool_t uflow
+ = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000);
uflow = svand_z (pg, uoflow, uflow);
/* |x| is huge (|x| >= 1024). */
- oflow = svcmpge (pg, abstop, HugeExp);
+ svbool_t oflow = svcmpge (pg, abstop, HugeExp);
oflow = svand_z (pg, uoflow, svbic_z (pg, oflow, uflow));
+
/* For large |x| values (512 < |x| < 1024) scale * (1 + TMP) can overflow
- or underflow. */
- special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow));
+ or underflow. */
+ svbool_t special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow));
+
+ /* Update result with special and large cases. */
+ z = sv_call_specialcase (tmp, sbits, ki, z, special);
+
+ /* Handle underflow and overflow. */
+ svbool_t x_is_neg = svcmplt (pg, x, 0);
+ svuint64_t sign_mask
+ = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS);
+ svfloat64_t res_uoflow
+ = svsel (x_is_neg, sv_f64 (0.0), sv_f64 (INFINITY));
+ res_uoflow = svreinterpret_f64 (
+ svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask));
+ /* Avoid spurious underflow for tiny x. */
+ svfloat64_t res_spurious_uflow
+ = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000));
+
+ z = svsel (oflow, res_uoflow, z);
+ z = svsel (uflow, res_spurious_uflow, z);
+ return z;
}
- /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */
- /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */
- svfloat64_t z = svmul_x (pg, x, __v_pow_exp_data.n_over_ln2);
- /* z - kd is in [-1, 1] in non-nearest rounding modes. */
- svfloat64_t shift = sv_f64 (__v_pow_exp_data.shift);
- svfloat64_t kd = svadd_x (pg, z, shift);
- svuint64_t ki = svreinterpret_u64 (kd);
- kd = svsub_x (pg, kd, shift);
- svfloat64_t r = x;
- r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_hi);
- r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_lo);
- /* The code assumes 2^-200 < |xtail| < 2^-8/N. */
- r = svadd_x (pg, r, xtail);
- /* 2^(k/N) ~= scale. */
- svuint64_t idx = svand_x (pg, ki, N_EXP - 1);
- svuint64_t top
- = svlsl_x (pg, svadd_x (pg, ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS);
- /* This is only a valid scale when -1023*N < k < 1024*N. */
- svuint64_t sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx);
- sbits = svadd_x (pg, sbits, top);
- /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t tmp = svmla_x (pg, sv_f64 (C[1]), r, C[2]);
- tmp = svmla_x (pg, sv_f64 (C[0]), r, tmp);
- tmp = svmla_x (pg, r, r2, tmp);
- svfloat64_t scale = svreinterpret_f64 (sbits);
- /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there
- is no spurious underflow here even without fma. */
- z = svmla_x (pg, scale, scale, tmp);
-
- /* Update result with special and large cases. */
- if (__glibc_unlikely (svptest_any (pg, special)))
- z = sv_call_specialcase (tmp, sbits, ki, z, special);
-
- /* Handle underflow and overflow. */
- svuint64_t sign_bit = svlsr_x (pg, svreinterpret_u64 (x), 63);
- svbool_t x_is_neg = svcmpne (pg, sign_bit, 0);
- svuint64_t sign_mask = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS);
- svfloat64_t res_uoflow = svsel (x_is_neg, sv_f64 (0.0), sv_f64 (INFINITY));
- res_uoflow = svreinterpret_f64 (
- svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask));
- z = svsel (oflow, res_uoflow, z);
- /* Avoid spurious underflow for tiny x. */
- svfloat64_t res_spurious_uflow
- = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000));
- z = svsel (uflow, res_spurious_uflow, z);
-
- return z;
+ return sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d);
}
static inline double
@@ -341,47 +384,39 @@ pow_sc (double x, double y)
svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg)
{
+ const struct data *d = ptr_barrier (&data);
+
/* This preamble handles special case conditions used in the final scalar
fallbacks. It also updates ix and sign_bias, that are used in the core
computation too, i.e., exp( y * log (x) ). */
svuint64_t vix0 = svreinterpret_u64 (x);
svuint64_t viy0 = svreinterpret_u64 (y);
- svuint64_t vtopx0 = svlsr_x (svptrue_b64 (), vix0, 52);
/* Negative x cases. */
- svuint64_t sign_bit = svlsr_m (pg, vix0, 63);
- svbool_t xisneg = svcmpeq (pg, sign_bit, 1);
+ svbool_t xisneg = svcmplt (pg, x, 0);
/* Set sign_bias and ix depending on sign of x and nature of y. */
- svbool_t yisnotint_xisneg = svpfalse_b ();
+ svbool_t yint_or_xpos = pg;
svuint64_t sign_bias = sv_u64 (0);
svuint64_t vix = vix0;
- svuint64_t vtopx1 = vtopx0;
if (__glibc_unlikely (svptest_any (pg, xisneg)))
{
/* Determine nature of y. */
- yisnotint_xisneg = sv_isnotint (xisneg, y);
- svbool_t yisint_xisneg = sv_isint (xisneg, y);
+ yint_or_xpos = sv_isint (xisneg, y);
svbool_t yisodd_xisneg = sv_isodd (xisneg, y);
/* ix set to abs(ix) if y is integer. */
- vix = svand_m (yisint_xisneg, vix0, 0x7fffffffffffffff);
- vtopx1 = svand_m (yisint_xisneg, vtopx0, 0x7ff);
+ vix = svand_m (yint_or_xpos, vix0, 0x7fffffffffffffff);
/* Set to SignBias if x is negative and y is odd. */
sign_bias = svsel (yisodd_xisneg, sv_u64 (SignBias), sv_u64 (0));
}
- /* Special cases of x or y: zero, inf and nan. */
- svbool_t xspecial = sv_zeroinfnan (pg, vix0);
- svbool_t yspecial = sv_zeroinfnan (pg, viy0);
- svbool_t special = svorr_z (pg, xspecial, yspecial);
-
/* Small cases of x: |x| < 0x1p-126. */
- svuint64_t vabstopx0 = svand_x (pg, vtopx0, 0x7ff);
- svbool_t xsmall = svcmplt (pg, vabstopx0, SmallPowX);
- if (__glibc_unlikely (svptest_any (pg, xsmall)))
+ svbool_t xsmall = svaclt (yint_or_xpos, x, SmallBoundX);
+ if (__glibc_unlikely (svptest_any (yint_or_xpos, xsmall)))
{
/* Normalize subnormal x so exponent becomes negative. */
- svbool_t topx_is_null = svcmpeq (xsmall, vtopx1, 0);
+ svuint64_t vtopx = svlsr_x (svptrue_b64 (), vix, 52);
+ svbool_t topx_is_null = svcmpeq (xsmall, vtopx, 0);
svuint64_t vix_norm = svreinterpret_u64 (svmul_m (xsmall, x, 0x1p52));
vix_norm = svand_m (xsmall, vix_norm, 0x7fffffffffffffff);
@@ -391,20 +426,24 @@ svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg)
/* y_hi = log(ix, &y_lo). */
svfloat64_t vlo;
- svfloat64_t vhi = sv_log_inline (pg, vix, &vlo);
+ svfloat64_t vhi = sv_log_inline (yint_or_xpos, vix, &vlo, d);
/* z = exp(y_hi, y_lo, sign_bias). */
- svfloat64_t vehi = svmul_x (pg, y, vhi);
- svfloat64_t velo = svmul_x (pg, y, vlo);
- svfloat64_t vemi = svmls_x (pg, vehi, y, vhi);
- velo = svsub_x (pg, velo, vemi);
- svfloat64_t vz = sv_exp_inline (pg, vehi, velo, sign_bias);
+ svfloat64_t vehi = svmul_x (svptrue_b64 (), y, vhi);
+ svfloat64_t vemi = svmls_x (yint_or_xpos, vehi, y, vhi);
+ svfloat64_t velo = svnmls_x (yint_or_xpos, vemi, y, vlo);
+ svfloat64_t vz = sv_exp_inline (yint_or_xpos, vehi, velo, sign_bias, d);
/* Cases of finite y and finite negative x. */
- vz = svsel (yisnotint_xisneg, sv_f64 (__builtin_nan ("")), vz);
+ vz = svsel (yint_or_xpos, vz, sv_f64 (__builtin_nan ("")));
+
+ /* Special cases of x or y: zero, inf and nan. */
+ svbool_t xspecial = sv_zeroinfnan (svptrue_b64 (), vix0);
+ svbool_t yspecial = sv_zeroinfnan (svptrue_b64 (), viy0);
+ svbool_t special = svorr_z (svptrue_b64 (), xspecial, yspecial);
/* Cases of zero/inf/nan x or y. */
- if (__glibc_unlikely (svptest_any (pg, special)))
+ if (__glibc_unlikely (svptest_any (svptrue_b64 (), special)))
vz = sv_call2_f64 (pow_sc, x, y, vz, special);
return vz;
diff --git a/sysdeps/aarch64/fpu/powf_advsimd.c b/sysdeps/aarch64/fpu/powf_advsimd.c
index 8232e70..5a4626b 100644
--- a/sysdeps/aarch64/fpu/powf_advsimd.c
+++ b/sysdeps/aarch64/fpu/powf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (AdvSIMD) pow function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/powf_sve.c b/sysdeps/aarch64/fpu/powf_sve.c
index 4f6a142..7046990 100644
--- a/sysdeps/aarch64/fpu/powf_sve.c
+++ b/sysdeps/aarch64/fpu/powf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) pow function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,6 @@
#define Tlogc __v_powf_data.logc
#define Texp __v_powf_data.scale
#define SignBias (1 << (V_POWF_EXP2_TABLE_BITS + 11))
-#define Shift 0x1.8p52
#define Norm 0x1p23f /* 0x4b000000. */
/* Overall ULP error bound for pow is 2.6 ulp
@@ -36,7 +35,7 @@ static const struct data
double log_poly[4];
double exp_poly[3];
float uflow_bound, oflow_bound, small_bound;
- uint32_t sign_bias, sign_mask, subnormal_bias, off;
+ uint32_t sign_bias, subnormal_bias, off;
} data = {
/* rel err: 1.5 * 2^-30. Each coefficients is multiplied the value of
V_POWF_EXP2_N. */
@@ -53,7 +52,6 @@ static const struct data
.small_bound = 0x1p-126f,
.off = 0x3f35d000,
.sign_bias = SignBias,
- .sign_mask = 0x80000000,
.subnormal_bias = 0x0b800000, /* 23 << 23. */
};
@@ -86,7 +84,7 @@ svisodd (svbool_t pg, svfloat32_t x)
static inline svbool_t
sv_zeroinfnan (svbool_t pg, svuint32_t i)
{
- return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2u), 1),
+ return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1),
2u * 0x7f800000 - 1);
}
@@ -150,9 +148,14 @@ powf_specialcase (float x, float y, float z)
}
/* Scalar fallback for special case routines with custom signature. */
-static inline svfloat32_t
-sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y, svbool_t cmp)
+static svfloat32_t NOINLINE
+sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y)
{
+ /* Special cases of x or y: zero, inf and nan. */
+ svbool_t xspecial = sv_zeroinfnan (svptrue_b32 (), svreinterpret_u32 (x1));
+ svbool_t yspecial = sv_zeroinfnan (svptrue_b32 (), svreinterpret_u32 (x2));
+ svbool_t cmp = svorr_z (svptrue_b32 (), xspecial, yspecial);
+
svbool_t p = svpfirst (cmp, svpfalse ());
while (svptest_any (cmp, p))
{
@@ -182,30 +185,30 @@ sv_powf_core_ext (const svbool_t pg, svuint64_t i, svfloat64_t z, svint64_t k,
/* Polynomial to approximate log1p(r)/ln2. */
svfloat64_t logx = A (0);
- logx = svmla_x (pg, A (1), r, logx);
- logx = svmla_x (pg, A (2), r, logx);
- logx = svmla_x (pg, A (3), r, logx);
- logx = svmla_x (pg, y0, r, logx);
+ logx = svmad_x (pg, r, logx, A (1));
+ logx = svmad_x (pg, r, logx, A (2));
+ logx = svmad_x (pg, r, logx, A (3));
+ logx = svmad_x (pg, r, logx, y0);
*pylogx = svmul_x (pg, y, logx);
/* z - kd is in [-1, 1] in non-nearest rounding modes. */
- svfloat64_t kd = svadd_x (pg, *pylogx, Shift);
- svuint64_t ki = svreinterpret_u64 (kd);
- kd = svsub_x (pg, kd, Shift);
+ svfloat64_t kd = svrinta_x (svptrue_b64 (), *pylogx);
+ svuint64_t ki = svreinterpret_u64 (svcvt_s64_x (svptrue_b64 (), kd));
r = svsub_x (pg, *pylogx, kd);
/* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1). */
- svuint64_t t
- = svld1_gather_index (pg, Texp, svand_x (pg, ki, V_POWF_EXP2_N - 1));
- svuint64_t ski = svadd_x (pg, ki, sign_bias);
- t = svadd_x (pg, t, svlsl_x (pg, ski, 52 - V_POWF_EXP2_TABLE_BITS));
+ svuint64_t t = svld1_gather_index (
+ svptrue_b64 (), Texp, svand_x (svptrue_b64 (), ki, V_POWF_EXP2_N - 1));
+ svuint64_t ski = svadd_x (svptrue_b64 (), ki, sign_bias);
+ t = svadd_x (svptrue_b64 (), t,
+ svlsl_x (svptrue_b64 (), ski, 52 - V_POWF_EXP2_TABLE_BITS));
svfloat64_t s = svreinterpret_f64 (t);
svfloat64_t p = C (0);
p = svmla_x (pg, C (1), p, r);
p = svmla_x (pg, C (2), p, r);
- p = svmla_x (pg, s, p, svmul_x (pg, s, r));
+ p = svmla_x (pg, s, p, svmul_x (svptrue_b64 (), s, r));
return p;
}
@@ -219,19 +222,16 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k,
{
const svbool_t ptrue = svptrue_b64 ();
- /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two in
- order to perform core computation in double precision. */
+ /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two
+ * in order to perform core computation in double precision. */
const svbool_t pg_lo = svunpklo (pg);
const svbool_t pg_hi = svunpkhi (pg);
- svfloat64_t y_lo = svcvt_f64_x (
- ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y))));
- svfloat64_t y_hi = svcvt_f64_x (
- ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y))));
- svfloat32_t z = svreinterpret_f32 (iz);
- svfloat64_t z_lo = svcvt_f64_x (
- ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (z))));
- svfloat64_t z_hi = svcvt_f64_x (
- ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (z))));
+ svfloat64_t y_lo
+ = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y))));
+ svfloat64_t y_hi
+ = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y))));
+ svfloat64_t z_lo = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (iz)));
+ svfloat64_t z_hi = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (iz)));
svuint64_t i_lo = svunpklo (i);
svuint64_t i_hi = svunpkhi (i);
svint64_t k_lo = svunpklo (k);
@@ -258,9 +258,9 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k,
/* Implementation of SVE powf.
Provides the same accuracy as AdvSIMD powf, since it relies on the same
algorithm. The theoretical maximum error is under 2.60 ULPs.
- Maximum measured error is 2.56 ULPs:
- SV_NAME_F2 (pow) (0x1.004118p+0, 0x1.5d14a4p+16) got 0x1.fd4bp+127
- want 0x1.fd4b06p+127. */
+ Maximum measured error is 2.57 ULPs:
+ SV_NAME_F2 (pow) (0x1.031706p+0, 0x1.ce2ec2p+12) got 0x1.fff868p+127
+ want 0x1.fff862p+127. */
svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
@@ -269,21 +269,19 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg)
svuint32_t viy0 = svreinterpret_u32 (y);
/* Negative x cases. */
- svuint32_t sign_bit = svand_m (pg, vix0, d->sign_mask);
- svbool_t xisneg = svcmpeq (pg, sign_bit, d->sign_mask);
+ svbool_t xisneg = svcmplt (pg, x, sv_f32 (0));
/* Set sign_bias and ix depending on sign of x and nature of y. */
- svbool_t yisnotint_xisneg = svpfalse_b ();
+ svbool_t yint_or_xpos = pg;
svuint32_t sign_bias = sv_u32 (0);
svuint32_t vix = vix0;
if (__glibc_unlikely (svptest_any (pg, xisneg)))
{
/* Determine nature of y. */
- yisnotint_xisneg = svisnotint (xisneg, y);
- svbool_t yisint_xisneg = svisint (xisneg, y);
+ yint_or_xpos = svisint (xisneg, y);
svbool_t yisodd_xisneg = svisodd (xisneg, y);
/* ix set to abs(ix) if y is integer. */
- vix = svand_m (yisint_xisneg, vix0, 0x7fffffff);
+ vix = svand_m (yint_or_xpos, vix0, 0x7fffffff);
/* Set to SignBias if x is negative and y is odd. */
sign_bias = svsel (yisodd_xisneg, sv_u32 (d->sign_bias), sv_u32 (0));
}
@@ -294,8 +292,8 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg)
svbool_t cmp = svorr_z (pg, xspecial, yspecial);
/* Small cases of x: |x| < 0x1p-126. */
- svbool_t xsmall = svaclt (pg, x, d->small_bound);
- if (__glibc_unlikely (svptest_any (pg, xsmall)))
+ svbool_t xsmall = svaclt (yint_or_xpos, x, d->small_bound);
+ if (__glibc_unlikely (svptest_any (yint_or_xpos, xsmall)))
{
/* Normalize subnormal x so exponent becomes negative. */
svuint32_t vix_norm = svreinterpret_u32 (svmul_x (xsmall, x, Norm));
@@ -304,32 +302,35 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg)
vix = svsel (xsmall, vix_norm, vix);
}
/* Part of core computation carried in working precision. */
- svuint32_t tmp = svsub_x (pg, vix, d->off);
- svuint32_t i = svand_x (pg, svlsr_x (pg, tmp, (23 - V_POWF_LOG2_TABLE_BITS)),
- V_POWF_LOG2_N - 1);
- svuint32_t top = svand_x (pg, tmp, 0xff800000);
- svuint32_t iz = svsub_x (pg, vix, top);
- svint32_t k
- = svasr_x (pg, svreinterpret_s32 (top), (23 - V_POWF_EXP2_TABLE_BITS));
-
- /* Compute core in extended precision and return intermediate ylogx results to
- handle cases of underflow and underflow in exp. */
+ svuint32_t tmp = svsub_x (yint_or_xpos, vix, d->off);
+ svuint32_t i = svand_x (
+ yint_or_xpos, svlsr_x (yint_or_xpos, tmp, (23 - V_POWF_LOG2_TABLE_BITS)),
+ V_POWF_LOG2_N - 1);
+ svuint32_t top = svand_x (yint_or_xpos, tmp, 0xff800000);
+ svuint32_t iz = svsub_x (yint_or_xpos, vix, top);
+ svint32_t k = svasr_x (yint_or_xpos, svreinterpret_s32 (top),
+ (23 - V_POWF_EXP2_TABLE_BITS));
+
+ /* Compute core in extended precision and return intermediate ylogx results
+ * to handle cases of underflow and underflow in exp. */
svfloat32_t ylogx;
- svfloat32_t ret = sv_powf_core (pg, i, iz, k, y, sign_bias, &ylogx, d);
+ svfloat32_t ret
+ = sv_powf_core (yint_or_xpos, i, iz, k, y, sign_bias, &ylogx, d);
/* Handle exp special cases of underflow and overflow. */
- svuint32_t sign = svlsl_x (pg, sign_bias, 20 - V_POWF_EXP2_TABLE_BITS);
+ svuint32_t sign
+ = svlsl_x (yint_or_xpos, sign_bias, 20 - V_POWF_EXP2_TABLE_BITS);
svfloat32_t ret_oflow
- = svreinterpret_f32 (svorr_x (pg, sign, asuint (INFINITY)));
+ = svreinterpret_f32 (svorr_x (yint_or_xpos, sign, asuint (INFINITY)));
svfloat32_t ret_uflow = svreinterpret_f32 (sign);
- ret = svsel (svcmple (pg, ylogx, d->uflow_bound), ret_uflow, ret);
- ret = svsel (svcmpgt (pg, ylogx, d->oflow_bound), ret_oflow, ret);
+ ret = svsel (svcmple (yint_or_xpos, ylogx, d->uflow_bound), ret_uflow, ret);
+ ret = svsel (svcmpgt (yint_or_xpos, ylogx, d->oflow_bound), ret_oflow, ret);
/* Cases of finite y and finite negative x. */
- ret = svsel (yisnotint_xisneg, sv_f32 (__builtin_nanf ("")), ret);
+ ret = svsel (yint_or_xpos, ret, sv_f32 (__builtin_nanf ("")));
- if (__glibc_unlikely (svptest_any (pg, cmp)))
- return sv_call_powf_sc (x, y, ret, cmp);
+ if (__glibc_unlikely (svptest_any (cmp, cmp)))
+ return sv_call_powf_sc (x, y, ret);
return ret;
}
diff --git a/sysdeps/aarch64/fpu/s_llrint.c b/sysdeps/aarch64/fpu/s_llrint.c
index e0e3e1b..3ed519c 100644
--- a/sysdeps/aarch64/fpu/s_llrint.c
+++ b/sysdeps/aarch64/fpu/s_llrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_llrintf.c b/sysdeps/aarch64/fpu/s_llrintf.c
index 2585f91..0f33958 100644
--- a/sysdeps/aarch64/fpu/s_llrintf.c
+++ b/sysdeps/aarch64/fpu/s_llrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_llround.c b/sysdeps/aarch64/fpu/s_llround.c
index 9092089..a1b46e8 100644
--- a/sysdeps/aarch64/fpu/s_llround.c
+++ b/sysdeps/aarch64/fpu/s_llround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_llroundf.c b/sysdeps/aarch64/fpu/s_llroundf.c
index 578290a..5269f44 100644
--- a/sysdeps/aarch64/fpu/s_llroundf.c
+++ b/sysdeps/aarch64/fpu/s_llroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_lrint.c b/sysdeps/aarch64/fpu/s_lrint.c
index 6b5242e..66b3cca 100644
--- a/sysdeps/aarch64/fpu/s_lrint.c
+++ b/sysdeps/aarch64/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -22,60 +22,9 @@
#include <math-barriers.h>
#include <libm-alias-double.h>
-# define IREG_SIZE 64
-
-# ifdef __ILP32__
-# define OREG_SIZE 32
-# else
-# define OREG_SIZE 64
-# endif
-
-# define IREGS "d"
-
-#if OREG_SIZE == 32
-# define OREGS "w"
-#else
-# define OREGS "x"
-#endif
-
-
long int
__lrint (double x)
{
-
-#if IREG_SIZE == 64 && OREG_SIZE == 32
- long int result;
-
- if (__builtin_fabs (x) > INT32_MAX)
- {
- /* Converting large values to a 32 bit int may cause the frintx/fcvtza
- sequence to set both FE_INVALID and FE_INEXACT. To avoid this
- check the rounding mode and do a single instruction with the
- appropriate rounding mode. */
-
- switch (get_rounding_mode ())
- {
- case FE_TONEAREST:
- asm volatile ("fcvtns" "\t%" OREGS "0, %" IREGS "1"
- : "=r" (result) : "w" (x));
- break;
- case FE_UPWARD:
- asm volatile ("fcvtps" "\t%" OREGS "0, %" IREGS "1"
- : "=r" (result) : "w" (x));
- break;
- case FE_DOWNWARD:
- asm volatile ("fcvtms" "\t%" OREGS "0, %" IREGS "1"
- : "=r" (result) : "w" (x));
- break;
- case FE_TOWARDZERO:
- default:
- asm volatile ("fcvtzs" "\t%" OREGS "0, %" IREGS "1"
- : "=r" (result) : "w" (x));
- }
- return result;
- }
-#endif
-
double r = __builtin_rint (x);
/* Prevent gcc from calling lrint directly when compiled with
diff --git a/sysdeps/aarch64/fpu/s_lrintf.c b/sysdeps/aarch64/fpu/s_lrintf.c
index 5933576..cc9d44c 100644
--- a/sysdeps/aarch64/fpu/s_lrintf.c
+++ b/sysdeps/aarch64/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_lround.c b/sysdeps/aarch64/fpu/s_lround.c
index 5d7b092..ab5c7ce 100644
--- a/sysdeps/aarch64/fpu/s_lround.c
+++ b/sysdeps/aarch64/fpu/s_lround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_lroundf.c b/sysdeps/aarch64/fpu/s_lroundf.c
index 0365e88..236f1a8 100644
--- a/sysdeps/aarch64/fpu/s_lroundf.c
+++ b/sysdeps/aarch64/fpu/s_lroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_roundeven.c b/sysdeps/aarch64/fpu/s_roundeven.c
index d69b352..de9ee56 100644
--- a/sysdeps/aarch64/fpu/s_roundeven.c
+++ b/sysdeps/aarch64/fpu/s_roundeven.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/s_roundevenf.c b/sysdeps/aarch64/fpu/s_roundevenf.c
index 2278976..63b8aa7 100644
--- a/sysdeps/aarch64/fpu/s_roundevenf.c
+++ b/sysdeps/aarch64/fpu/s_roundevenf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py b/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py
index 8cc8d4f..7aaa563 100644
--- a/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py
+++ b/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py
@@ -1,5 +1,5 @@
#!/usr/bin/python3
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py b/sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py
index 591e4d3..594e2a4 100755
--- a/sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py
+++ b/sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py
@@ -1,5 +1,5 @@
#!/usr/bin/python3
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/sin_advsimd.c b/sysdeps/aarch64/fpu/sin_advsimd.c
index a0d9d3b..4e5118d 100644
--- a/sysdeps/aarch64/fpu/sin_advsimd.c
+++ b/sysdeps/aarch64/fpu/sin_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) sin function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
static const struct data
{
float64x2_t poly[7];
- float64x2_t range_val, inv_pi, shift, pi_1, pi_2, pi_3;
+ float64x2_t range_val, inv_pi, pi_1, pi_2, pi_3;
} data = {
.poly = { V2 (-0x1.555555555547bp-3), V2 (0x1.1111111108a4dp-7),
V2 (-0x1.a01a019936f27p-13), V2 (0x1.71de37a97d93ep-19),
@@ -34,12 +34,13 @@ static const struct data
.pi_1 = V2 (0x1.921fb54442d18p+1),
.pi_2 = V2 (0x1.1a62633145c06p-53),
.pi_3 = V2 (0x1.c1cd129024e09p-106),
- .shift = V2 (0x1.8p52),
};
#if WANT_SIMD_EXCEPT
-# define TinyBound v_u64 (0x3000000000000000) /* asuint64 (0x1p-255). */
-# define Thresh v_u64 (0x1160000000000000) /* RangeVal - TinyBound. */
+/* asuint64(0x1p-253)), below which multiply by inv_pi underflows. */
+# define TinyBound v_u64 (0x3020000000000000)
+/* RangeVal - TinyBound. */
+# define Thresh v_u64 (0x1160000000000000)
#endif
#define C(i) d->poly[i]
@@ -72,16 +73,15 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sin) (float64x2_t x)
fenv). These lanes will be fixed by special-case handler later. */
uint64x2_t ir = vreinterpretq_u64_f64 (vabsq_f64 (x));
cmp = vcgeq_u64 (vsubq_u64 (ir, TinyBound), Thresh);
- r = vbslq_f64 (cmp, vreinterpretq_f64_u64 (cmp), x);
+ r = vreinterpretq_f64_u64 (vbicq_u64 (vreinterpretq_u64_f64 (x), cmp));
#else
r = x;
cmp = vcageq_f64 (x, d->range_val);
#endif
/* n = rint(|x|/pi). */
- n = vfmaq_f64 (d->shift, d->inv_pi, r);
- odd = vshlq_n_u64 (vreinterpretq_u64_f64 (n), 63);
- n = vsubq_f64 (n, d->shift);
+ n = vrndaq_f64 (vmulq_f64 (r, d->inv_pi));
+ odd = vshlq_n_u64 (vreinterpretq_u64_s64 (vcvtq_s64_f64 (n)), 63);
/* r = |x| - n*pi (range reduction into -pi/2 .. pi/2). */
r = vfmsq_f64 (r, d->pi_1, n);
diff --git a/sysdeps/aarch64/fpu/sin_sve.c b/sysdeps/aarch64/fpu/sin_sve.c
index 123a56b..fee3dc3 100644
--- a/sysdeps/aarch64/fpu/sin_sve.c
+++ b/sysdeps/aarch64/fpu/sin_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) sin function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/sinf_advsimd.c b/sysdeps/aarch64/fpu/sinf_advsimd.c
index 375dfc3..4cda651 100644
--- a/sysdeps/aarch64/fpu/sinf_advsimd.c
+++ b/sysdeps/aarch64/fpu/sinf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) sin function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
static const struct data
{
float32x4_t poly[4];
- float32x4_t range_val, inv_pi, shift, pi_1, pi_2, pi_3;
+ float32x4_t range_val, inv_pi, pi_1, pi_2, pi_3;
} data = {
/* 1.886 ulp error. */
.poly = { V4 (-0x1.555548p-3f), V4 (0x1.110df4p-7f), V4 (-0x1.9f42eap-13f),
@@ -33,13 +33,14 @@ static const struct data
.pi_3 = V4 (-0x1.ee59dap-49f),
.inv_pi = V4 (0x1.45f306p-2f),
- .shift = V4 (0x1.8p+23f),
.range_val = V4 (0x1p20f)
};
#if WANT_SIMD_EXCEPT
-# define TinyBound v_u32 (0x21000000) /* asuint32(0x1p-61f). */
-# define Thresh v_u32 (0x28800000) /* RangeVal - TinyBound. */
+/* asuint32(0x1p-59f), below which multiply by inv_pi underflows. */
+# define TinyBound v_u32 (0x22000000)
+/* RangeVal - TinyBound. */
+# define Thresh v_u32 (0x27800000)
#endif
#define C(i) d->poly[i]
@@ -64,23 +65,22 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sin) (float32x4_t x)
/* If fenv exceptions are to be triggered correctly, set any special lanes
to 1 (which is neutral w.r.t. fenv). These lanes will be fixed by
special-case handler later. */
- r = vbslq_f32 (cmp, vreinterpretq_f32_u32 (cmp), x);
+ r = vreinterpretq_f32_u32 (vbicq_u32 (vreinterpretq_u32_f32 (x), cmp));
#else
r = x;
cmp = vcageq_f32 (x, d->range_val);
#endif
- /* n = rint(|x|/pi) */
- n = vfmaq_f32 (d->shift, d->inv_pi, r);
- odd = vshlq_n_u32 (vreinterpretq_u32_f32 (n), 31);
- n = vsubq_f32 (n, d->shift);
+ /* n = rint(|x|/pi). */
+ n = vrndaq_f32 (vmulq_f32 (r, d->inv_pi));
+ odd = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 31);
- /* r = |x| - n*pi (range reduction into -pi/2 .. pi/2) */
+ /* r = |x| - n*pi (range reduction into -pi/2 .. pi/2). */
r = vfmsq_f32 (r, d->pi_1, n);
r = vfmsq_f32 (r, d->pi_2, n);
r = vfmsq_f32 (r, d->pi_3, n);
- /* y = sin(r) */
+ /* y = sin(r). */
r2 = vmulq_f32 (r, r);
y = vfmaq_f32 (C (2), C (3), r2);
y = vfmaq_f32 (C (1), y, r2);
diff --git a/sysdeps/aarch64/fpu/sinf_sve.c b/sysdeps/aarch64/fpu/sinf_sve.c
index 0d1ff81..14c4510 100644
--- a/sysdeps/aarch64/fpu/sinf_sve.c
+++ b/sysdeps/aarch64/fpu/sinf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) sin function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/sinh_advsimd.c b/sysdeps/aarch64/fpu/sinh_advsimd.c
index 3e3b76c..0d6a485 100644
--- a/sysdeps/aarch64/fpu/sinh_advsimd.c
+++ b/sysdeps/aarch64/fpu/sinh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) sinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,72 +18,31 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
+#include "v_expm1_inline.h"
static const struct data
{
- float64x2_t poly[11], inv_ln2;
- double m_ln2[2];
- float64x2_t shift;
+ struct v_expm1_data d;
uint64x2_t halff;
- int64x2_t onef;
#if WANT_SIMD_EXCEPT
uint64x2_t tiny_bound, thresh;
#else
- uint64x2_t large_bound;
+ float64x2_t large_bound;
#endif
} data = {
- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */
- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5),
- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10),
- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16),
- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22),
- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), },
-
- .inv_ln2 = V2 (0x1.71547652b82fep0),
- .m_ln2 = {-0x1.62e42fefa39efp-1, -0x1.abc9e3b39803fp-56},
- .shift = V2 (0x1.8p52),
-
+ .d = V_EXPM1_DATA,
.halff = V2 (0x3fe0000000000000),
- .onef = V2 (0x3ff0000000000000),
#if WANT_SIMD_EXCEPT
/* 2^-26, below which sinh(x) rounds to x. */
.tiny_bound = V2 (0x3e50000000000000),
/* asuint(large_bound) - asuint(tiny_bound). */
.thresh = V2 (0x0230000000000000),
#else
-/* 2^9. expm1 helper overflows for large input. */
- .large_bound = V2 (0x4080000000000000),
+ /* 2^9. expm1 helper overflows for large input. */
+ .large_bound = V2 (0x1p+9),
#endif
};
-static inline float64x2_t
-expm1_inline (float64x2_t x)
-{
- const struct data *d = ptr_barrier (&data);
-
- /* Reduce argument:
- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
- where i = round(x / ln2)
- and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */
- float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift);
- int64x2_t i = vcvtq_s64_f64 (j);
-
- float64x2_t m_ln2 = vld1q_f64 (d->m_ln2);
- float64x2_t f = vfmaq_laneq_f64 (x, j, m_ln2, 0);
- f = vfmaq_laneq_f64 (f, j, m_ln2, 1);
- /* Approximate expm1(f) using polynomial. */
- float64x2_t f2 = vmulq_f64 (f, f);
- float64x2_t f4 = vmulq_f64 (f2, f2);
- float64x2_t f8 = vmulq_f64 (f4, f4);
- float64x2_t p = vfmaq_f64 (f, f2, v_estrin_10_f64 (f, f2, f4, f8, d->poly));
- /* t = 2^i. */
- float64x2_t t = vreinterpretq_f64_u64 (
- vreinterpretq_u64_s64 (vaddq_s64 (vshlq_n_s64 (i, 52), d->onef)));
- /* expm1(x) ~= p * t + (t - 1). */
- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t);
-}
-
static float64x2_t NOINLINE VPCS_ATTR
special_case (float64x2_t x)
{
@@ -92,23 +51,23 @@ special_case (float64x2_t x)
/* Approximation for vector double-precision sinh(x) using expm1.
sinh(x) = (exp(x) - exp(-x)) / 2.
- The greatest observed error is 2.57 ULP:
- _ZGVnN2v_sinh (0x1.9fb1d49d1d58bp-2) got 0x1.ab34e59d678dcp-2
- want 0x1.ab34e59d678d9p-2. */
+ The greatest observed error is 2.52 ULP:
+ _ZGVnN2v_sinh(-0x1.a098a2177a2b9p-2) got -0x1.ac2f05bb66fccp-2
+ want -0x1.ac2f05bb66fc9p-2. */
float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
float64x2_t ax = vabsq_f64 (x);
- uint64x2_t sign
- = veorq_u64 (vreinterpretq_u64_f64 (x), vreinterpretq_u64_f64 (ax));
- float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->halff));
+ uint64x2_t ix = vreinterpretq_u64_f64 (x);
+ float64x2_t halfsign = vreinterpretq_f64_u64 (
+ vbslq_u64 (v_u64 (0x8000000000000000), ix, d->halff));
#if WANT_SIMD_EXCEPT
uint64x2_t special = vcgeq_u64 (
vsubq_u64 (vreinterpretq_u64_f64 (ax), d->tiny_bound), d->thresh);
#else
- uint64x2_t special = vcgeq_u64 (vreinterpretq_u64_f64 (ax), d->large_bound);
+ uint64x2_t special = vcageq_f64 (x, d->large_bound);
#endif
/* Fall back to scalar variant for all lanes if any of them are special. */
@@ -118,7 +77,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x)
/* Up to the point that expm1 overflows, we can use it to calculate sinh
using a slight rearrangement of the definition of sinh. This allows us to
retain acceptable accuracy for very small inputs. */
- float64x2_t t = expm1_inline (ax);
+ float64x2_t t = expm1_inline (ax, &d->d);
t = vaddq_f64 (t, vdivq_f64 (t, vaddq_f64 (t, v_f64 (1.0))));
return vmulq_f64 (t, halfsign);
}
diff --git a/sysdeps/aarch64/fpu/sinh_sve.c b/sysdeps/aarch64/fpu/sinh_sve.c
index df5f6c8..072ba8f 100644
--- a/sysdeps/aarch64/fpu/sinh_sve.c
+++ b/sysdeps/aarch64/fpu/sinh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) atanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,90 +18,153 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[11];
- float64_t inv_ln2, m_ln2_hi, m_ln2_lo, shift;
uint64_t halff;
- int64_t onef;
- uint64_t large_bound;
+ double c2, c4;
+ double inv_ln2;
+ double ln2_hi, ln2_lo;
+ double c0, c1, c3;
+ double shift, special_bound, bound;
+ uint64_t expm1_data[20];
} data = {
- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */
- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5,
- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10,
- 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16,
- 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22,
- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, },
-
- .inv_ln2 = 0x1.71547652b82fep0,
- .m_ln2_hi = -0x1.62e42fefa39efp-1,
- .m_ln2_lo = -0x1.abc9e3b39803fp-56,
- .shift = 0x1.8p52,
-
+ /* Table lookup of 2^(i/64) - 1, for values of i from 0..19. */
+ .expm1_data = {
+ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901,
+ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb,
+ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2,
+ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a,
+ 0x3fc837f0518db8a9, 0x3fc9e0459320b7fa, 0x3fcb8d39b9d54e55, 0x3fcd3ed9a72cffb7,
+ },
+
+ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */
+ .c0 = 0x1p-1,
+ .c1 = 0x1.55555555548f9p-3,
+ .c2 = 0x1.5555555554c22p-5,
+ .c3 = 0x1.111123aaa2fb2p-7,
+ .c4 = 0x1.6c16d77d98e5bp-10,
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
+ .inv_ln2 = 0x1.71547652b82fep+0,
+ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */
.halff = 0x3fe0000000000000,
- .onef = 0x3ff0000000000000,
- /* 2^9. expm1 helper overflows for large input. */
- .large_bound = 0x4080000000000000,
+ .special_bound = 0x1.62e37e7d8ba72p+9, /* ln(2^(1024 - 1/128)). */
+ .bound = 0x1.a56ef8ec924ccp-3 /* 19*ln2/64. */
};
+/* A specialised FEXPA expm1 that is only valid for positive inputs and
+ has no special cases. Based off the full FEXPA expm1 implementated for
+ _ZGVsMxv_expm1, with a slightly modified file to keep sinh under 3.5ULP. */
static inline svfloat64_t
-expm1_inline (svfloat64_t x, svbool_t pg)
+expm1_inline (svbool_t pg, svfloat64_t x)
{
const struct data *d = ptr_barrier (&data);
- /* Reduce argument:
- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
- where i = round(x / ln2)
- and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */
- svfloat64_t j
- = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift);
- svint64_t i = svcvt_s64_x (pg, j);
- svfloat64_t f = svmla_x (pg, x, j, d->m_ln2_hi);
- f = svmla_x (pg, f, j, d->m_ln2_lo);
- /* Approximate expm1(f) using polynomial. */
- svfloat64_t f2 = svmul_x (pg, f, f);
- svfloat64_t f4 = svmul_x (pg, f2, f2);
- svfloat64_t f8 = svmul_x (pg, f4, f4);
- svfloat64_t p
- = svmla_x (pg, f, f2, sv_estrin_10_f64_x (pg, f, f2, f4, f8, d->poly));
- /* t = 2^i. */
- svfloat64_t t = svscale_x (pg, sv_f64 (1), i);
- /* expm1(x) ~= p * t + (t - 1). */
- return svmla_x (pg, svsub_x (pg, t, 1.0), p, t);
+ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2);
+ svuint64_t u = svreinterpret_u64 (z);
+ svfloat64_t n = svsub_x (pg, z, d->shift);
+
+ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
+ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2);
+
+ svfloat64_t r = x;
+ r = svmls_lane (r, n, ln2, 0);
+ r = svmls_lane (r, n, ln2, 1);
+
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+
+ svfloat64_t p;
+ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0);
+ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1);
+ p = svmad_x (pg, c34, r2, c12);
+ p = svmad_x (pg, p, r, sv_f64 (d->c0));
+ p = svmad_x (pg, p, r2, r);
+
+ svfloat64_t scale = svexpa (u);
+
+ /* We want to construct expm1(x) = (scale - 1) + scale * poly.
+ However, for values of scale close to 1, scale-1 causes large ULP errors
+ due to cancellation.
+
+ This can be circumvented by using a small lookup for scale-1
+ when our input is below a certain bound, otherwise we can use FEXPA. */
+ svbool_t is_small = svaclt (pg, x, d->bound);
+
+ /* Index via the input of FEXPA, but we only care about the lower 5 bits. */
+ svuint64_t base_idx = svand_x (pg, u, 0x1f);
+
+ /* Compute scale - 1 from FEXPA, and lookup values where this fails. */
+ svfloat64_t scalem1_estimate = svsub_x (pg, scale, sv_f64 (1.0));
+ svuint64_t scalem1_lookup
+ = svld1_gather_index (is_small, d->expm1_data, base_idx);
+
+ /* Select the appropriate scale - 1 value based on x. */
+ svfloat64_t scalem1
+ = svsel (is_small, svreinterpret_f64 (scalem1_lookup), scalem1_estimate);
+
+ /* return expm1 = scale - 1 + (scale * poly). */
+ return svmla_x (pg, scalem1, scale, p);
}
+/* Vectorised special case to handle values past where exp_inline overflows.
+ Halves the input value and uses the identity exp(x) = exp(x/2)^2 to double
+ the valid range of inputs, and returns inf for anything past that. */
static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svbool_t pg)
+special_case (svbool_t pg, svbool_t special, svfloat64_t ax,
+ svfloat64_t halfsign, const struct data *d)
{
- return sv_call_f64 (sinh, x, x, pg);
+ /* Halves input value, and then check if any cases
+ are still going to overflow. */
+ ax = svmul_x (special, ax, 0.5);
+ svbool_t is_safe = svaclt (special, ax, d->special_bound);
+
+ svfloat64_t t = expm1_inline (pg, ax);
+
+ /* Finish fastpass to compute values for non-special cases. */
+ svfloat64_t y = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0)));
+ y = svmul_x (pg, y, halfsign);
+
+ /* Computes special lane, and set remaining overflow lanes to inf. */
+ svfloat64_t half_special_y = svmul_x (svptrue_b64 (), t, halfsign);
+ svfloat64_t special_y = svmul_x (svptrue_b64 (), half_special_y, t);
+
+ svuint64_t signed_inf
+ = svorr_x (svptrue_b64 (), svreinterpret_u64 (halfsign),
+ sv_u64 (0x7ff0000000000000));
+ special_y = svsel (is_safe, special_y, svreinterpret_f64 (signed_inf));
+
+ /* Join resulting vectors together and return. */
+ return svsel (special, special_y, y);
}
-/* Approximation for SVE double-precision sinh(x) using expm1.
- sinh(x) = (exp(x) - exp(-x)) / 2.
- The greatest observed error is 2.57 ULP:
- _ZGVsMxv_sinh (0x1.a008538399931p-2) got 0x1.ab929fc64bd66p-2
- want 0x1.ab929fc64bd63p-2. */
+/* Approximation for SVE double-precision sinh(x) using FEXPA expm1.
+ Uses sinh(x) = e^2x - 1 / 2e^x, rewritten for accuracy.
+ The greatest observed error in the non-special region is 2.63 + 0.5 ULP:
+ _ZGVsMxv_sinh (0x1.b5e0e13ba88aep-2) got 0x1.c3587faf97b0cp-2
+ want 0x1.c3587faf97b09p-2
+
+ The greatest observed error in the special region is 2.65 + 0.5 ULP:
+ _ZGVsMxv_sinh (0x1.633ce847dab1ap+9) got 0x1.fffd30eea0066p+1023
+ want 0x1.fffd30eea0063p+1023. */
svfloat64_t SV_NAME_D1 (sinh) (svfloat64_t x, svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
+ svbool_t special = svacge (pg, x, d->special_bound);
svfloat64_t ax = svabs_x (pg, x);
svuint64_t sign
= sveor_x (pg, svreinterpret_u64 (x), svreinterpret_u64 (ax));
svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, d->halff));
- svbool_t special = svcmpge (pg, svreinterpret_u64 (ax), d->large_bound);
-
/* Fall back to scalar variant for all lanes if any are special. */
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, pg);
+ return special_case (pg, special, ax, halfsign, d);
/* Up to the point that expm1 overflows, we can use it to calculate sinh
using a slight rearrangement of the definition of sinh. This allows us to
retain acceptable accuracy for very small inputs. */
- svfloat64_t t = expm1_inline (ax, pg);
+ svfloat64_t t = expm1_inline (pg, ax);
t = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0)));
return svmul_x (pg, t, halfsign);
}
diff --git a/sysdeps/aarch64/fpu/sinhf_advsimd.c b/sysdeps/aarch64/fpu/sinhf_advsimd.c
index 6bb7482..41d1910 100644
--- a/sysdeps/aarch64/fpu/sinhf_advsimd.c
+++ b/sysdeps/aarch64/fpu/sinhf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) sinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,15 +23,13 @@
static const struct data
{
struct v_expm1f_data expm1f_consts;
- uint32x4_t halff;
#if WANT_SIMD_EXCEPT
uint32x4_t tiny_bound, thresh;
#else
- uint32x4_t oflow_bound;
+ float32x4_t oflow_bound;
#endif
} data = {
.expm1f_consts = V_EXPM1F_DATA,
- .halff = V4 (0x3f000000),
#if WANT_SIMD_EXCEPT
/* 0x1.6a09e8p-32, below which expm1f underflows. */
.tiny_bound = V4 (0x2fb504f4),
@@ -39,14 +37,15 @@ static const struct data
.thresh = V4 (0x12fbbbb3),
#else
/* 0x1.61814ep+6, above which expm1f helper overflows. */
- .oflow_bound = V4 (0x42b0c0a7),
+ .oflow_bound = V4 (0x1.61814ep+6),
#endif
};
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, float32x4_t t, float32x4_t halfsign,
+ uint32x4_t special)
{
- return v_call_f32 (sinhf, x, y, special);
+ return v_call_f32 (sinhf, x, vmulq_f32 (t, halfsign), special);
}
/* Approximation for vector single-precision sinh(x) using expm1.
@@ -60,15 +59,15 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinh) (float32x4_t x)
uint32x4_t ix = vreinterpretq_u32_f32 (x);
float32x4_t ax = vabsq_f32 (x);
- uint32x4_t iax = vreinterpretq_u32_f32 (ax);
- uint32x4_t sign = veorq_u32 (ix, iax);
- float32x4_t halfsign = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->halff));
+ float32x4_t halfsign = vreinterpretq_f32_u32 (
+ vbslq_u32 (v_u32 (0x80000000), ix, vreinterpretq_u32_f32 (v_f32 (0.5))));
#if WANT_SIMD_EXCEPT
- uint32x4_t special = vcgeq_u32 (vsubq_u32 (iax, d->tiny_bound), d->thresh);
+ uint32x4_t special = vcgeq_u32 (
+ vsubq_u32 (vreinterpretq_u32_f32 (ax), d->tiny_bound), d->thresh);
ax = v_zerofy_f32 (ax, special);
#else
- uint32x4_t special = vcgeq_u32 (iax, d->oflow_bound);
+ uint32x4_t special = vcageq_f32 (x, d->oflow_bound);
#endif
/* Up to the point that expm1f overflows, we can use it to calculate sinhf
@@ -80,7 +79,7 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinh) (float32x4_t x)
/* Fall back to the scalar variant for any lanes that should trigger an
exception. */
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (x, vmulq_f32 (t, halfsign), special);
+ return special_case (x, t, halfsign, special);
return vmulq_f32 (t, halfsign);
}
diff --git a/sysdeps/aarch64/fpu/sinhf_sve.c b/sysdeps/aarch64/fpu/sinhf_sve.c
index 6c204b5..90692ac 100644
--- a/sysdeps/aarch64/fpu/sinhf_sve.c
+++ b/sysdeps/aarch64/fpu/sinhf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) sinh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -63,5 +63,5 @@ svfloat32_t SV_NAME_F1 (sinh) (svfloat32_t x, const svbool_t pg)
if (__glibc_unlikely (svptest_any (pg, special)))
return special_case (x, svmul_x (pg, t, halfsign), special);
- return svmul_x (pg, t, halfsign);
+ return svmul_x (svptrue_b32 (), t, halfsign);
}
diff --git a/sysdeps/aarch64/fpu/sinpi_advsimd.c b/sysdeps/aarch64/fpu/sinpi_advsimd.c
new file mode 100644
index 0000000..6965644
--- /dev/null
+++ b/sysdeps/aarch64/fpu/sinpi_advsimd.c
@@ -0,0 +1,87 @@
+/* Double-precision (Advanced SIMD) sinpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+#include "poly_advsimd_f64.h"
+
+static const struct data
+{
+ float64x2_t poly[10];
+} data = {
+ /* Polynomial coefficients generated using Remez algorithm,
+ see sinpi.sollya for details. */
+ .poly = { V2 (0x1.921fb54442d184p1), V2 (-0x1.4abbce625be53p2),
+ V2 (0x1.466bc6775ab16p1), V2 (-0x1.32d2cce62dc33p-1),
+ V2 (0x1.507834891188ep-4), V2 (-0x1.e30750a28c88ep-8),
+ V2 (0x1.e8f48308acda4p-12), V2 (-0x1.6fc0032b3c29fp-16),
+ V2 (0x1.af86ae521260bp-21), V2 (-0x1.012a9870eeb7dp-25) },
+};
+
+#if WANT_SIMD_EXCEPT
+# define TinyBound v_u64 (0x3bf0000000000000) /* asuint64(0x1p-64). */
+/* asuint64(0x1p64) - TinyBound. */
+# define Thresh v_u64 (0x07f0000000000000)
+
+static float64x2_t VPCS_ATTR NOINLINE
+special_case (float64x2_t x, float64x2_t y, uint64x2_t odd, uint64x2_t cmp)
+{
+ /* Fall back to scalar code. */
+ y = vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), odd));
+ return v_call_f64 (sinpi, x, y, cmp);
+}
+#endif
+
+/* Approximation for vector double-precision sinpi(x).
+ Maximum Error 3.05 ULP:
+ _ZGVnN2v_sinpi(0x1.d32750db30b4ap-2) got 0x1.fb295878301c7p-1
+ want 0x1.fb295878301cap-1. */
+float64x2_t VPCS_ATTR V_NAME_D1 (sinpi) (float64x2_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+#if WANT_SIMD_EXCEPT
+ uint64x2_t ir = vreinterpretq_u64_f64 (vabsq_f64 (x));
+ uint64x2_t cmp = vcgeq_u64 (vsubq_u64 (ir, TinyBound), Thresh);
+
+ /* When WANT_SIMD_EXCEPT = 1, special lanes should be set to 0
+ to avoid them under/overflowing and throwing exceptions. */
+ float64x2_t r = v_zerofy_f64 (x, cmp);
+#else
+ float64x2_t r = x;
+#endif
+
+ /* If r is odd, the sign of the result should be inverted. */
+ uint64x2_t odd
+ = vshlq_n_u64 (vreinterpretq_u64_s64 (vcvtaq_s64_f64 (r)), 63);
+
+ /* r = x - rint(x). Range reduction to -1/2 .. 1/2. */
+ r = vsubq_f64 (r, vrndaq_f64 (r));
+
+ /* y = sin(r). */
+ float64x2_t r2 = vmulq_f64 (r, r);
+ float64x2_t r4 = vmulq_f64 (r2, r2);
+ float64x2_t y = vmulq_f64 (v_pw_horner_9_f64 (r2, r4, d->poly), r);
+
+#if WANT_SIMD_EXCEPT
+ if (__glibc_unlikely (v_any_u64 (cmp)))
+ return special_case (x, y, odd, cmp);
+#endif
+
+ return vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), odd));
+}
diff --git a/sysdeps/aarch64/fpu/sinpi_sve.c b/sysdeps/aarch64/fpu/sinpi_sve.c
new file mode 100644
index 0000000..b9c6257
--- /dev/null
+++ b/sysdeps/aarch64/fpu/sinpi_sve.c
@@ -0,0 +1,61 @@
+/* Double-precision (SVE) sinpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+#include "poly_sve_f64.h"
+
+static const struct data
+{
+ double poly[10], range_val;
+} data = {
+ /* Polynomial coefficients generated using Remez algorithm,
+ see sinpi.sollya for details. */
+ .poly = { 0x1.921fb54442d184p1, -0x1.4abbce625be53p2, 0x1.466bc6775ab16p1,
+ -0x1.32d2cce62dc33p-1, 0x1.507834891188ep-4, -0x1.e30750a28c88ep-8,
+ 0x1.e8f48308acda4p-12, -0x1.6fc0032b3c29fp-16,
+ 0x1.af86ae521260bp-21, -0x1.012a9870eeb7dp-25 },
+ .range_val = 0x1p63,
+};
+
+/* A fast SVE implementation of sinpi.
+ Maximum error 3.10 ULP:
+ _ZGVsMxv_sinpi(0x1.df1a14f1b235p-2) got 0x1.fd64f541606cp-1
+ want 0x1.fd64f541606c3p-1. */
+svfloat64_t SV_NAME_D1 (sinpi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ /* range reduction into -1/2 .. 1/2)
+ with n = rint(x) and r = r - n. */
+ svfloat64_t n = svrinta_x (pg, x);
+ svfloat64_t r = svsub_x (pg, x, n);
+
+ /* Result should be negated based on if n is odd or not. */
+ svbool_t cmp = svaclt (pg, x, d->range_val);
+ svuint64_t intn = svreinterpret_u64 (svcvt_s64_z (pg, n));
+ svuint64_t sign = svlsl_z (cmp, intn, 63);
+
+ /* y = sin(r). */
+ svfloat64_t r2 = svmul_x (pg, r, r);
+ svfloat64_t r4 = svmul_x (pg, r2, r2);
+ svfloat64_t y = sv_pw_horner_9_f64_x (pg, r2, r4, d->poly);
+ y = svmul_x (pg, y, r);
+
+ return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/sinpif_advsimd.c b/sysdeps/aarch64/fpu/sinpif_advsimd.c
new file mode 100644
index 0000000..2e77aaa
--- /dev/null
+++ b/sysdeps/aarch64/fpu/sinpif_advsimd.c
@@ -0,0 +1,85 @@
+/* Single-precision (Advanced SIMD) sinpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+#include "poly_advsimd_f32.h"
+
+static const struct data
+{
+ float32x4_t poly[6];
+} data = {
+ /* Taylor series coefficents for sin(pi * x). */
+ .poly = { V4 (0x1.921fb6p1f), V4 (-0x1.4abbcep2f), V4 (0x1.466bc6p1f),
+ V4 (-0x1.32d2ccp-1f), V4 (0x1.50783p-4f), V4 (-0x1.e30750p-8f) },
+};
+
+#if WANT_SIMD_EXCEPT
+# define TinyBound v_u32 (0x30000000) /* asuint32(0x1p-31f). */
+# define Thresh v_u32 (0x1f000000) /* asuint32(0x1p31f) - TinyBound. */
+
+static float32x4_t VPCS_ATTR NOINLINE
+special_case (float32x4_t x, float32x4_t y, uint32x4_t odd, uint32x4_t cmp)
+{
+ /* Fall back to scalar code. */
+ y = vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), odd));
+ return v_call_f32 (sinpif, x, y, cmp);
+}
+#endif
+
+/* Approximation for vector single-precision sinpi(x)
+ Maximum Error 3.03 ULP:
+ _ZGVnN4v_sinpif(0x1.c597ccp-2) got 0x1.f7cd56p-1
+ want 0x1.f7cd5p-1. */
+float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinpi) (float32x4_t x)
+{
+ const struct data *d = ptr_barrier (&data);
+
+#if WANT_SIMD_EXCEPT
+ uint32x4_t ir = vreinterpretq_u32_f32 (vabsq_f32 (x));
+ uint32x4_t cmp = vcgeq_u32 (vsubq_u32 (ir, TinyBound), Thresh);
+
+ /* When WANT_SIMD_EXCEPT = 1, special lanes should be set to 0
+ to avoid them under/overflowing and throwing exceptions. */
+ float32x4_t r = v_zerofy_f32 (x, cmp);
+#else
+ float32x4_t r = x;
+#endif
+
+ /* If r is odd, the sign of the result should be inverted. */
+ uint32x4_t odd
+ = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (r)), 31);
+
+ /* r = x - rint(x). Range reduction to -1/2 .. 1/2. */
+ r = vsubq_f32 (r, vrndaq_f32 (r));
+
+ /* Pairwise Horner approximation for y = sin(r * pi). */
+ float32x4_t r2 = vmulq_f32 (r, r);
+ float32x4_t r4 = vmulq_f32 (r2, r2);
+ float32x4_t y = vmulq_f32 (v_pw_horner_5_f32 (r2, r4, d->poly), r);
+
+#if WANT_SIMD_EXCEPT
+ if (__glibc_unlikely (v_any_u32 (cmp)))
+ return special_case (x, y, odd, cmp);
+#endif
+
+ return vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), odd));
+}
+
+libmvec_hidden_def (V_NAME_F1 (sinpi))
+HALF_WIDTH_ALIAS_F1 (sinpi)
diff --git a/sysdeps/aarch64/fpu/sinpif_sve.c b/sysdeps/aarch64/fpu/sinpif_sve.c
new file mode 100644
index 0000000..10ff569
--- /dev/null
+++ b/sysdeps/aarch64/fpu/sinpif_sve.c
@@ -0,0 +1,57 @@
+/* Single-precision (SVE) sinpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+#include "poly_sve_f32.h"
+
+static const struct data
+{
+ float poly[6], range_val;
+} data = {
+ /* Taylor series coefficents for sin(pi * x). */
+ .poly = { 0x1.921fb6p1f, -0x1.4abbcep2f, 0x1.466bc6p1f, -0x1.32d2ccp-1f,
+ 0x1.50783p-4f, -0x1.e30750p-8f },
+ .range_val = 0x1p31,
+};
+
+/* A fast SVE implementation of sinpif.
+ Maximum error 2.48 ULP:
+ _ZGVsMxv_sinpif(0x1.d062b6p-2) got 0x1.fa8c06p-1
+ want 0x1.fa8c02p-1. */
+svfloat32_t SV_NAME_F1 (sinpi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct data *d = ptr_barrier (&data);
+
+ /* range reduction into -1/2 .. 1/2
+ with n = rint(x) and r = r - n. */
+ svfloat32_t n = svrinta_x (pg, x);
+ svfloat32_t r = svsub_x (pg, x, n);
+
+ /* Result should be negated based on if n is odd or not. */
+ svbool_t cmp = svaclt (pg, x, d->range_val);
+ svuint32_t intn = svreinterpret_u32 (svcvt_s32_z (pg, n));
+ svuint32_t sign = svlsl_z (cmp, intn, 31);
+
+ /* y = sin(r). */
+ svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t y = sv_horner_5_f32_x (pg, r2, d->poly);
+ y = svmul_x (pg, y, r);
+
+ return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/sv_erf_data.c b/sysdeps/aarch64/fpu/sv_erf_data.c
deleted file mode 100644
index a53878f..0000000
--- a/sysdeps/aarch64/fpu/sv_erf_data.c
+++ /dev/null
@@ -1,1570 +0,0 @@
-/* Table for SVE erf approximation
-
- Copyright (C) 2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include "vecmath_config.h"
-
-/* Lookup table used in vector erf.
- For each possible rounded input r (multiples of 1/128), between
- r = 0.0 and r = 6.0 (769 values):
- - the first entry __erf_data.tab.erf contains the values of erf(r),
- - the second entry __erf_data.tab.scale contains the values of
- 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the
- algorithm, since lookup is performed only for x >= 1/64-1/512. */
-const struct sv_erf_data __sv_erf_data = {
- .erf = { 0x0.0000000000000p+0,
- 0x1.20dbf3deb1340p-7,
- 0x1.20d77083f17a0p-6,
- 0x1.b137e0cf584dcp-6,
- 0x1.20c5645dd2538p-5,
- 0x1.68e5d3bbc9526p-5,
- 0x1.b0fafef135745p-5,
- 0x1.f902a77bd3821p-5,
- 0x1.207d480e90658p-4,
- 0x1.44703e87e8593p-4,
- 0x1.68591a1e83b5dp-4,
- 0x1.8c36beb8a8d23p-4,
- 0x1.b0081148a873ap-4,
- 0x1.d3cbf7e70a4b3p-4,
- 0x1.f78159ec8bb50p-4,
- 0x1.0d939005f65e5p-3,
- 0x1.1f5e1a35c3b89p-3,
- 0x1.311fc15f56d14p-3,
- 0x1.42d7fc2f64959p-3,
- 0x1.548642321d7c6p-3,
- 0x1.662a0bdf7a89fp-3,
- 0x1.77c2d2a765f9ep-3,
- 0x1.895010fdbdbfdp-3,
- 0x1.9ad142662e14dp-3,
- 0x1.ac45e37fe2526p-3,
- 0x1.bdad72110a648p-3,
- 0x1.cf076d1233237p-3,
- 0x1.e05354b96ff36p-3,
- 0x1.f190aa85540e2p-3,
- 0x1.015f78a3dcf3dp-2,
- 0x1.09eed6982b948p-2,
- 0x1.127631eb8de32p-2,
- 0x1.1af54e232d609p-2,
- 0x1.236bef825d9a2p-2,
- 0x1.2bd9db0f7827fp-2,
- 0x1.343ed6989b7d9p-2,
- 0x1.3c9aa8b84bedap-2,
- 0x1.44ed18d9f6462p-2,
- 0x1.4d35ef3e5372ep-2,
- 0x1.5574f4ffac98ep-2,
- 0x1.5da9f415ff23fp-2,
- 0x1.65d4b75b00471p-2,
- 0x1.6df50a8dff772p-2,
- 0x1.760aba57a76bfp-2,
- 0x1.7e15944d9d3e4p-2,
- 0x1.861566f5fd3c0p-2,
- 0x1.8e0a01cab516bp-2,
- 0x1.95f3353cbb146p-2,
- 0x1.9dd0d2b721f39p-2,
- 0x1.a5a2aca209394p-2,
- 0x1.ad68966569a87p-2,
- 0x1.b522646bbda68p-2,
- 0x1.bccfec24855b8p-2,
- 0x1.c4710406a65fcp-2,
- 0x1.cc058392a6d2dp-2,
- 0x1.d38d4354c3bd0p-2,
- 0x1.db081ce6e2a48p-2,
- 0x1.e275eaf25e458p-2,
- 0x1.e9d68931ae650p-2,
- 0x1.f129d471eabb1p-2,
- 0x1.f86faa9428f9dp-2,
- 0x1.ffa7ea8eb5fd0p-2,
- 0x1.03693a371519cp-1,
- 0x1.06f794ab2cae7p-1,
- 0x1.0a7ef5c18edd2p-1,
- 0x1.0dff4f247f6c6p-1,
- 0x1.1178930ada115p-1,
- 0x1.14eab43841b55p-1,
- 0x1.1855a5fd3dd50p-1,
- 0x1.1bb95c3746199p-1,
- 0x1.1f15cb50bc4dep-1,
- 0x1.226ae840d4d70p-1,
- 0x1.25b8a88b6dd7fp-1,
- 0x1.28ff0240d52cdp-1,
- 0x1.2c3debfd7d6c1p-1,
- 0x1.2f755ce9a21f4p-1,
- 0x1.32a54cb8db67bp-1,
- 0x1.35cdb3a9a144dp-1,
- 0x1.38ee8a84beb71p-1,
- 0x1.3c07ca9cb4f9ep-1,
- 0x1.3f196dcd0f135p-1,
- 0x1.42236e79a5fa6p-1,
- 0x1.4525c78dd5966p-1,
- 0x1.4820747ba2dc2p-1,
- 0x1.4b13713ad3513p-1,
- 0x1.4dfeba47f63ccp-1,
- 0x1.50e24ca35fd2cp-1,
- 0x1.53be25d016a4fp-1,
- 0x1.569243d2b3a9bp-1,
- 0x1.595ea53035283p-1,
- 0x1.5c2348ecc4dc3p-1,
- 0x1.5ee02e8a71a53p-1,
- 0x1.61955607dd15dp-1,
- 0x1.6442bfdedd397p-1,
- 0x1.66e86d0312e82p-1,
- 0x1.69865ee075011p-1,
- 0x1.6c1c9759d0e5fp-1,
- 0x1.6eab18c74091bp-1,
- 0x1.7131e5f496a5ap-1,
- 0x1.73b1021fc0cb8p-1,
- 0x1.762870f720c6fp-1,
- 0x1.78983697dc96fp-1,
- 0x1.7b00578c26037p-1,
- 0x1.7d60d8c979f7bp-1,
- 0x1.7fb9bfaed8078p-1,
- 0x1.820b1202f27fbp-1,
- 0x1.8454d5f25760dp-1,
- 0x1.8697120d92a4ap-1,
- 0x1.88d1cd474a2e0p-1,
- 0x1.8b050ef253c37p-1,
- 0x1.8d30debfc572ep-1,
- 0x1.8f5544bd00c04p-1,
- 0x1.91724951b8fc6p-1,
- 0x1.9387f53df5238p-1,
- 0x1.959651980da31p-1,
- 0x1.979d67caa6631p-1,
- 0x1.999d4192a5715p-1,
- 0x1.9b95e8fd26abap-1,
- 0x1.9d8768656cc42p-1,
- 0x1.9f71ca72cffb6p-1,
- 0x1.a1551a16aaeafp-1,
- 0x1.a331628a45b92p-1,
- 0x1.a506af4cc00f4p-1,
- 0x1.a6d50c20fa293p-1,
- 0x1.a89c850b7d54dp-1,
- 0x1.aa5d265064366p-1,
- 0x1.ac16fc7143263p-1,
- 0x1.adca142b10f98p-1,
- 0x1.af767a741088bp-1,
- 0x1.b11c3c79bb424p-1,
- 0x1.b2bb679ead19cp-1,
- 0x1.b4540978921eep-1,
- 0x1.b5e62fce16095p-1,
- 0x1.b771e894d602ep-1,
- 0x1.b8f741ef54f83p-1,
- 0x1.ba764a2af2b78p-1,
- 0x1.bbef0fbde6221p-1,
- 0x1.bd61a1453ab44p-1,
- 0x1.bece0d82d1a5cp-1,
- 0x1.c034635b66e23p-1,
- 0x1.c194b1d49a184p-1,
- 0x1.c2ef0812fc1bdp-1,
- 0x1.c443755820d64p-1,
- 0x1.c5920900b5fd1p-1,
- 0x1.c6dad2829ec62p-1,
- 0x1.c81de16b14cefp-1,
- 0x1.c95b455cce69dp-1,
- 0x1.ca930e0e2a825p-1,
- 0x1.cbc54b476248dp-1,
- 0x1.ccf20ce0c0d27p-1,
- 0x1.ce1962c0e0d8bp-1,
- 0x1.cf3b5cdaf0c39p-1,
- 0x1.d0580b2cfd249p-1,
- 0x1.d16f7dbe41ca0p-1,
- 0x1.d281c49d818d0p-1,
- 0x1.d38eefdf64fddp-1,
- 0x1.d4970f9ce00d9p-1,
- 0x1.d59a33f19ed42p-1,
- 0x1.d6986cfa798e7p-1,
- 0x1.d791cad3eff01p-1,
- 0x1.d8865d98abe01p-1,
- 0x1.d97635600bb89p-1,
- 0x1.da61623cb41e0p-1,
- 0x1.db47f43b2980dp-1,
- 0x1.dc29fb60715afp-1,
- 0x1.dd0787a8bb39dp-1,
- 0x1.dde0a90611a0dp-1,
- 0x1.deb56f5f12d28p-1,
- 0x1.df85ea8db188ep-1,
- 0x1.e0522a5dfda73p-1,
- 0x1.e11a3e8cf4eb8p-1,
- 0x1.e1de36c75ba58p-1,
- 0x1.e29e22a89d766p-1,
- 0x1.e35a11b9b61cep-1,
- 0x1.e4121370224ccp-1,
- 0x1.e4c6372cd8927p-1,
- 0x1.e5768c3b4a3fcp-1,
- 0x1.e62321d06c5e0p-1,
- 0x1.e6cc0709c8a0dp-1,
- 0x1.e7714aec96534p-1,
- 0x1.e812fc64db369p-1,
- 0x1.e8b12a44944a8p-1,
- 0x1.e94be342e6743p-1,
- 0x1.e9e335fb56f87p-1,
- 0x1.ea7730ed0bbb9p-1,
- 0x1.eb07e27a133aap-1,
- 0x1.eb9558e6b42cep-1,
- 0x1.ec1fa258c4beap-1,
- 0x1.eca6ccd709544p-1,
- 0x1.ed2ae6489ac1ep-1,
- 0x1.edabfc7453e63p-1,
- 0x1.ee2a1d004692cp-1,
- 0x1.eea5557137ae0p-1,
- 0x1.ef1db32a2277cp-1,
- 0x1.ef93436bc2daap-1,
- 0x1.f006135426b26p-1,
- 0x1.f0762fde45ee6p-1,
- 0x1.f0e3a5e1a1788p-1,
- 0x1.f14e8211e8c55p-1,
- 0x1.f1b6d0fea5f4dp-1,
- 0x1.f21c9f12f0677p-1,
- 0x1.f27ff89525acfp-1,
- 0x1.f2e0e9a6a8b09p-1,
- 0x1.f33f7e43a706bp-1,
- 0x1.f39bc242e43e6p-1,
- 0x1.f3f5c1558b19ep-1,
- 0x1.f44d870704911p-1,
- 0x1.f4a31ebcd47dfp-1,
- 0x1.f4f693b67bd77p-1,
- 0x1.f547f10d60597p-1,
- 0x1.f59741b4b97cfp-1,
- 0x1.f5e4907982a07p-1,
- 0x1.f62fe80272419p-1,
- 0x1.f67952cff6282p-1,
- 0x1.f6c0db3c34641p-1,
- 0x1.f7068b7b10fd9p-1,
- 0x1.f74a6d9a38383p-1,
- 0x1.f78c8b812d498p-1,
- 0x1.f7cceef15d631p-1,
- 0x1.f80ba18636f07p-1,
- 0x1.f848acb544e95p-1,
- 0x1.f88419ce4e184p-1,
- 0x1.f8bdf1fb78370p-1,
- 0x1.f8f63e416ebffp-1,
- 0x1.f92d077f8d56dp-1,
- 0x1.f96256700da8ep-1,
- 0x1.f99633a838a57p-1,
- 0x1.f9c8a7989af0dp-1,
- 0x1.f9f9ba8d3c733p-1,
- 0x1.fa2974addae45p-1,
- 0x1.fa57ddfe27376p-1,
- 0x1.fa84fe5e05c8dp-1,
- 0x1.fab0dd89d1309p-1,
- 0x1.fadb831a9f9c3p-1,
- 0x1.fb04f6868a944p-1,
- 0x1.fb2d3f20f9101p-1,
- 0x1.fb54641aebbc9p-1,
- 0x1.fb7a6c834b5a2p-1,
- 0x1.fb9f5f4739170p-1,
- 0x1.fbc3433260ca5p-1,
- 0x1.fbe61eef4cf6ap-1,
- 0x1.fc07f907bc794p-1,
- 0x1.fc28d7e4f9cd0p-1,
- 0x1.fc48c1d033c7ap-1,
- 0x1.fc67bcf2d7b8fp-1,
- 0x1.fc85cf56ecd38p-1,
- 0x1.fca2fee770c79p-1,
- 0x1.fcbf5170b578bp-1,
- 0x1.fcdacca0bfb73p-1,
- 0x1.fcf57607a6e7cp-1,
- 0x1.fd0f5317f582fp-1,
- 0x1.fd2869270a56fp-1,
- 0x1.fd40bd6d7a785p-1,
- 0x1.fd58550773cb5p-1,
- 0x1.fd6f34f52013ap-1,
- 0x1.fd85621b0876dp-1,
- 0x1.fd9ae142795e3p-1,
- 0x1.fdafb719e6a69p-1,
- 0x1.fdc3e835500b3p-1,
- 0x1.fdd7790ea5bc0p-1,
- 0x1.fdea6e062d0c9p-1,
- 0x1.fdfccb62e52d3p-1,
- 0x1.fe0e9552ebdd6p-1,
- 0x1.fe1fcfebe2083p-1,
- 0x1.fe307f2b503d0p-1,
- 0x1.fe40a6f70af4bp-1,
- 0x1.fe504b1d9696cp-1,
- 0x1.fe5f6f568b301p-1,
- 0x1.fe6e1742f7cf6p-1,
- 0x1.fe7c466dc57a1p-1,
- 0x1.fe8a004c19ae6p-1,
- 0x1.fe97483db8670p-1,
- 0x1.fea4218d6594ap-1,
- 0x1.feb08f7146046p-1,
- 0x1.febc950b3fa75p-1,
- 0x1.fec835695932ep-1,
- 0x1.fed37386190fbp-1,
- 0x1.fede5248e38f4p-1,
- 0x1.fee8d486585eep-1,
- 0x1.fef2fd00af31ap-1,
- 0x1.fefcce6813974p-1,
- 0x1.ff064b5afffbep-1,
- 0x1.ff0f766697c76p-1,
- 0x1.ff18520700971p-1,
- 0x1.ff20e0a7ba8c2p-1,
- 0x1.ff2924a3f7a83p-1,
- 0x1.ff312046f2339p-1,
- 0x1.ff38d5cc4227fp-1,
- 0x1.ff404760319b4p-1,
- 0x1.ff47772010262p-1,
- 0x1.ff4e671a85425p-1,
- 0x1.ff55194fe19dfp-1,
- 0x1.ff5b8fb26f5f6p-1,
- 0x1.ff61cc26c1578p-1,
- 0x1.ff67d08401202p-1,
- 0x1.ff6d9e943c231p-1,
- 0x1.ff733814af88cp-1,
- 0x1.ff789eb6130c9p-1,
- 0x1.ff7dd41ce2b4dp-1,
- 0x1.ff82d9e1a76d8p-1,
- 0x1.ff87b1913e853p-1,
- 0x1.ff8c5cad200a5p-1,
- 0x1.ff90dcaba4096p-1,
- 0x1.ff9532f846ab0p-1,
- 0x1.ff9960f3eb327p-1,
- 0x1.ff9d67f51ddbap-1,
- 0x1.ffa14948549a7p-1,
- 0x1.ffa506302ebaep-1,
- 0x1.ffa89fe5b3625p-1,
- 0x1.ffac17988ef4bp-1,
- 0x1.ffaf6e6f4f5c0p-1,
- 0x1.ffb2a5879f35ep-1,
- 0x1.ffb5bdf67fe6fp-1,
- 0x1.ffb8b8c88295fp-1,
- 0x1.ffbb970200110p-1,
- 0x1.ffbe599f4f9d9p-1,
- 0x1.ffc10194fcb64p-1,
- 0x1.ffc38fcffbb7cp-1,
- 0x1.ffc60535dd7f5p-1,
- 0x1.ffc862a501fd7p-1,
- 0x1.ffcaa8f4c9beap-1,
- 0x1.ffccd8f5c66d1p-1,
- 0x1.ffcef371ea4d7p-1,
- 0x1.ffd0f92cb6ba7p-1,
- 0x1.ffd2eae369a07p-1,
- 0x1.ffd4c94d29fdbp-1,
- 0x1.ffd6951b33686p-1,
- 0x1.ffd84ef9009eep-1,
- 0x1.ffd9f78c7524ap-1,
- 0x1.ffdb8f7605ee7p-1,
- 0x1.ffdd1750e1220p-1,
- 0x1.ffde8fb314ebfp-1,
- 0x1.ffdff92db56e5p-1,
- 0x1.ffe1544d01ccbp-1,
- 0x1.ffe2a1988857cp-1,
- 0x1.ffe3e19349dc7p-1,
- 0x1.ffe514bbdc197p-1,
- 0x1.ffe63b8c8b5f7p-1,
- 0x1.ffe7567b7b5e1p-1,
- 0x1.ffe865fac722bp-1,
- 0x1.ffe96a78a04a9p-1,
- 0x1.ffea645f6d6dap-1,
- 0x1.ffeb5415e7c44p-1,
- 0x1.ffec39ff380b9p-1,
- 0x1.ffed167b12ac2p-1,
- 0x1.ffede9e5d3262p-1,
- 0x1.ffeeb49896c6dp-1,
- 0x1.ffef76e956a9fp-1,
- 0x1.fff0312b010b5p-1,
- 0x1.fff0e3ad91ec2p-1,
- 0x1.fff18ebe2b0e1p-1,
- 0x1.fff232a72b48ep-1,
- 0x1.fff2cfb0453d9p-1,
- 0x1.fff3661e9569dp-1,
- 0x1.fff3f634b79f9p-1,
- 0x1.fff48032dbe40p-1,
- 0x1.fff50456dab8cp-1,
- 0x1.fff582dc48d30p-1,
- 0x1.fff5fbfc8a439p-1,
- 0x1.fff66feee5129p-1,
- 0x1.fff6dee89352ep-1,
- 0x1.fff7491cd4af6p-1,
- 0x1.fff7aebcff755p-1,
- 0x1.fff80ff8911fdp-1,
- 0x1.fff86cfd3e657p-1,
- 0x1.fff8c5f702ccfp-1,
- 0x1.fff91b102fca8p-1,
- 0x1.fff96c717b695p-1,
- 0x1.fff9ba420e834p-1,
- 0x1.fffa04a7928b1p-1,
- 0x1.fffa4bc63ee9ap-1,
- 0x1.fffa8fc0e5f33p-1,
- 0x1.fffad0b901755p-1,
- 0x1.fffb0ecebee1bp-1,
- 0x1.fffb4a210b172p-1,
- 0x1.fffb82cd9dcbfp-1,
- 0x1.fffbb8f1049c6p-1,
- 0x1.fffbeca6adbe9p-1,
- 0x1.fffc1e08f25f5p-1,
- 0x1.fffc4d3120aa1p-1,
- 0x1.fffc7a37857d2p-1,
- 0x1.fffca53375ce3p-1,
- 0x1.fffcce3b57bffp-1,
- 0x1.fffcf564ab6b7p-1,
- 0x1.fffd1ac4135f9p-1,
- 0x1.fffd3e6d5cd87p-1,
- 0x1.fffd607387b07p-1,
- 0x1.fffd80e8ce0dap-1,
- 0x1.fffd9fdeabccep-1,
- 0x1.fffdbd65e5ad0p-1,
- 0x1.fffdd98e903b2p-1,
- 0x1.fffdf46816833p-1,
- 0x1.fffe0e0140857p-1,
- 0x1.fffe26683972ap-1,
- 0x1.fffe3daa95b18p-1,
- 0x1.fffe53d558ae9p-1,
- 0x1.fffe68f4fa777p-1,
- 0x1.fffe7d156d244p-1,
- 0x1.fffe904222101p-1,
- 0x1.fffea2860ee1ep-1,
- 0x1.fffeb3ebb267bp-1,
- 0x1.fffec47d19457p-1,
- 0x1.fffed443e2787p-1,
- 0x1.fffee34943b15p-1,
- 0x1.fffef1960d85dp-1,
- 0x1.fffeff32af7afp-1,
- 0x1.ffff0c273bea2p-1,
- 0x1.ffff187b6bc0ep-1,
- 0x1.ffff2436a21dcp-1,
- 0x1.ffff2f5fefcaap-1,
- 0x1.ffff39fe16963p-1,
- 0x1.ffff44178c8d2p-1,
- 0x1.ffff4db27f146p-1,
- 0x1.ffff56d4d5e5ep-1,
- 0x1.ffff5f8435efcp-1,
- 0x1.ffff67c604180p-1,
- 0x1.ffff6f9f67e55p-1,
- 0x1.ffff77154e0d6p-1,
- 0x1.ffff7e2c6aea2p-1,
- 0x1.ffff84e93cd75p-1,
- 0x1.ffff8b500e77cp-1,
- 0x1.ffff9164f8e46p-1,
- 0x1.ffff972be5c59p-1,
- 0x1.ffff9ca891572p-1,
- 0x1.ffffa1de8c582p-1,
- 0x1.ffffa6d13de73p-1,
- 0x1.ffffab83e54b8p-1,
- 0x1.ffffaff99bac4p-1,
- 0x1.ffffb43555b5fp-1,
- 0x1.ffffb839e52f3p-1,
- 0x1.ffffbc09fa7cdp-1,
- 0x1.ffffbfa82616bp-1,
- 0x1.ffffc316d9ed0p-1,
- 0x1.ffffc6586abf6p-1,
- 0x1.ffffc96f1165ep-1,
- 0x1.ffffcc5cec0c1p-1,
- 0x1.ffffcf23ff5fcp-1,
- 0x1.ffffd1c637b2bp-1,
- 0x1.ffffd4456a10dp-1,
- 0x1.ffffd6a3554a1p-1,
- 0x1.ffffd8e1a2f22p-1,
- 0x1.ffffdb01e8546p-1,
- 0x1.ffffdd05a75eap-1,
- 0x1.ffffdeee4f810p-1,
- 0x1.ffffe0bd3e852p-1,
- 0x1.ffffe273c15b7p-1,
- 0x1.ffffe41314e06p-1,
- 0x1.ffffe59c6698bp-1,
- 0x1.ffffe710d565ep-1,
- 0x1.ffffe8717232dp-1,
- 0x1.ffffe9bf4098cp-1,
- 0x1.ffffeafb377d5p-1,
- 0x1.ffffec2641a9ep-1,
- 0x1.ffffed413e5b7p-1,
- 0x1.ffffee4d01cd6p-1,
- 0x1.ffffef4a55bd4p-1,
- 0x1.fffff039f9e8fp-1,
- 0x1.fffff11ca4876p-1,
- 0x1.fffff1f302bc1p-1,
- 0x1.fffff2bdb904dp-1,
- 0x1.fffff37d63a36p-1,
- 0x1.fffff43297019p-1,
- 0x1.fffff4dde0118p-1,
- 0x1.fffff57fc4a95p-1,
- 0x1.fffff618c3da6p-1,
- 0x1.fffff6a956450p-1,
- 0x1.fffff731ee681p-1,
- 0x1.fffff7b2f8ed6p-1,
- 0x1.fffff82cdcf1bp-1,
- 0x1.fffff89ffc4aap-1,
- 0x1.fffff90cb3c81p-1,
- 0x1.fffff9735b73bp-1,
- 0x1.fffff9d446cccp-1,
- 0x1.fffffa2fc5015p-1,
- 0x1.fffffa8621251p-1,
- 0x1.fffffad7a2652p-1,
- 0x1.fffffb248c39dp-1,
- 0x1.fffffb6d1e95dp-1,
- 0x1.fffffbb196132p-1,
- 0x1.fffffbf22c1e2p-1,
- 0x1.fffffc2f171e3p-1,
- 0x1.fffffc688a9cfp-1,
- 0x1.fffffc9eb76acp-1,
- 0x1.fffffcd1cbc28p-1,
- 0x1.fffffd01f36afp-1,
- 0x1.fffffd2f57d68p-1,
- 0x1.fffffd5a2041fp-1,
- 0x1.fffffd8271d12p-1,
- 0x1.fffffda86faa9p-1,
- 0x1.fffffdcc3b117p-1,
- 0x1.fffffdedf37edp-1,
- 0x1.fffffe0db6b91p-1,
- 0x1.fffffe2ba0ea5p-1,
- 0x1.fffffe47ccb60p-1,
- 0x1.fffffe62534d4p-1,
- 0x1.fffffe7b4c81ep-1,
- 0x1.fffffe92ced93p-1,
- 0x1.fffffea8ef9cfp-1,
- 0x1.fffffebdc2ec6p-1,
- 0x1.fffffed15bcbap-1,
- 0x1.fffffee3cc32cp-1,
- 0x1.fffffef5251c2p-1,
- 0x1.ffffff0576917p-1,
- 0x1.ffffff14cfb92p-1,
- 0x1.ffffff233ee1dp-1,
- 0x1.ffffff30d18e8p-1,
- 0x1.ffffff3d9480fp-1,
- 0x1.ffffff4993c46p-1,
- 0x1.ffffff54dab72p-1,
- 0x1.ffffff5f74141p-1,
- 0x1.ffffff6969fb8p-1,
- 0x1.ffffff72c5fb6p-1,
- 0x1.ffffff7b91176p-1,
- 0x1.ffffff83d3d07p-1,
- 0x1.ffffff8b962bep-1,
- 0x1.ffffff92dfba2p-1,
- 0x1.ffffff99b79d2p-1,
- 0x1.ffffffa0248e8p-1,
- 0x1.ffffffa62ce54p-1,
- 0x1.ffffffabd69b4p-1,
- 0x1.ffffffb127525p-1,
- 0x1.ffffffb624592p-1,
- 0x1.ffffffbad2affp-1,
- 0x1.ffffffbf370cdp-1,
- 0x1.ffffffc355dfdp-1,
- 0x1.ffffffc733572p-1,
- 0x1.ffffffcad3626p-1,
- 0x1.ffffffce39b67p-1,
- 0x1.ffffffd169d0cp-1,
- 0x1.ffffffd466fa5p-1,
- 0x1.ffffffd7344aap-1,
- 0x1.ffffffd9d4aabp-1,
- 0x1.ffffffdc4ad7ap-1,
- 0x1.ffffffde9964ep-1,
- 0x1.ffffffe0c2bf0p-1,
- 0x1.ffffffe2c92dbp-1,
- 0x1.ffffffe4aed5ep-1,
- 0x1.ffffffe675bbdp-1,
- 0x1.ffffffe81fc4ep-1,
- 0x1.ffffffe9aeb97p-1,
- 0x1.ffffffeb24467p-1,
- 0x1.ffffffec81ff2p-1,
- 0x1.ffffffedc95e7p-1,
- 0x1.ffffffeefbc85p-1,
- 0x1.fffffff01a8b6p-1,
- 0x1.fffffff126e1ep-1,
- 0x1.fffffff221f30p-1,
- 0x1.fffffff30cd3fp-1,
- 0x1.fffffff3e8892p-1,
- 0x1.fffffff4b606fp-1,
- 0x1.fffffff57632dp-1,
- 0x1.fffffff629e44p-1,
- 0x1.fffffff6d1e56p-1,
- 0x1.fffffff76ef3fp-1,
- 0x1.fffffff801c1fp-1,
- 0x1.fffffff88af67p-1,
- 0x1.fffffff90b2e3p-1,
- 0x1.fffffff982fc1p-1,
- 0x1.fffffff9f2e9fp-1,
- 0x1.fffffffa5b790p-1,
- 0x1.fffffffabd229p-1,
- 0x1.fffffffb18582p-1,
- 0x1.fffffffb6d844p-1,
- 0x1.fffffffbbd0aap-1,
- 0x1.fffffffc0748fp-1,
- 0x1.fffffffc4c96cp-1,
- 0x1.fffffffc8d462p-1,
- 0x1.fffffffcc9a41p-1,
- 0x1.fffffffd01f89p-1,
- 0x1.fffffffd36871p-1,
- 0x1.fffffffd678edp-1,
- 0x1.fffffffd954aep-1,
- 0x1.fffffffdbff2ap-1,
- 0x1.fffffffde7ba0p-1,
- 0x1.fffffffe0cd16p-1,
- 0x1.fffffffe2f664p-1,
- 0x1.fffffffe4fa30p-1,
- 0x1.fffffffe6daf7p-1,
- 0x1.fffffffe89b0cp-1,
- 0x1.fffffffea3c9ap-1,
- 0x1.fffffffebc1a9p-1,
- 0x1.fffffffed2c21p-1,
- 0x1.fffffffee7dc8p-1,
- 0x1.fffffffefb847p-1,
- 0x1.ffffffff0dd2bp-1,
- 0x1.ffffffff1ede9p-1,
- 0x1.ffffffff2ebdap-1,
- 0x1.ffffffff3d843p-1,
- 0x1.ffffffff4b453p-1,
- 0x1.ffffffff58126p-1,
- 0x1.ffffffff63fc3p-1,
- 0x1.ffffffff6f121p-1,
- 0x1.ffffffff79626p-1,
- 0x1.ffffffff82fabp-1,
- 0x1.ffffffff8be77p-1,
- 0x1.ffffffff94346p-1,
- 0x1.ffffffff9bec8p-1,
- 0x1.ffffffffa319fp-1,
- 0x1.ffffffffa9c63p-1,
- 0x1.ffffffffaffa4p-1,
- 0x1.ffffffffb5be5p-1,
- 0x1.ffffffffbb1a2p-1,
- 0x1.ffffffffc014ep-1,
- 0x1.ffffffffc4b56p-1,
- 0x1.ffffffffc901cp-1,
- 0x1.ffffffffccfffp-1,
- 0x1.ffffffffd0b56p-1,
- 0x1.ffffffffd4271p-1,
- 0x1.ffffffffd759dp-1,
- 0x1.ffffffffda520p-1,
- 0x1.ffffffffdd13cp-1,
- 0x1.ffffffffdfa2dp-1,
- 0x1.ffffffffe202dp-1,
- 0x1.ffffffffe4371p-1,
- 0x1.ffffffffe642ap-1,
- 0x1.ffffffffe8286p-1,
- 0x1.ffffffffe9eb0p-1,
- 0x1.ffffffffeb8d0p-1,
- 0x1.ffffffffed10ap-1,
- 0x1.ffffffffee782p-1,
- 0x1.ffffffffefc57p-1,
- 0x1.fffffffff0fa7p-1,
- 0x1.fffffffff218fp-1,
- 0x1.fffffffff3227p-1,
- 0x1.fffffffff4188p-1,
- 0x1.fffffffff4fc9p-1,
- 0x1.fffffffff5cfdp-1,
- 0x1.fffffffff6939p-1,
- 0x1.fffffffff748ep-1,
- 0x1.fffffffff7f0dp-1,
- 0x1.fffffffff88c5p-1,
- 0x1.fffffffff91c6p-1,
- 0x1.fffffffff9a1bp-1,
- 0x1.fffffffffa1d2p-1,
- 0x1.fffffffffa8f6p-1,
- 0x1.fffffffffaf92p-1,
- 0x1.fffffffffb5b0p-1,
- 0x1.fffffffffbb58p-1,
- 0x1.fffffffffc095p-1,
- 0x1.fffffffffc56dp-1,
- 0x1.fffffffffc9e8p-1,
- 0x1.fffffffffce0dp-1,
- 0x1.fffffffffd1e1p-1,
- 0x1.fffffffffd56cp-1,
- 0x1.fffffffffd8b3p-1,
- 0x1.fffffffffdbbap-1,
- 0x1.fffffffffde86p-1,
- 0x1.fffffffffe11dp-1,
- 0x1.fffffffffe380p-1,
- 0x1.fffffffffe5b6p-1,
- 0x1.fffffffffe7c0p-1,
- 0x1.fffffffffe9a2p-1,
- 0x1.fffffffffeb60p-1,
- 0x1.fffffffffecfbp-1,
- 0x1.fffffffffee77p-1,
- 0x1.fffffffffefd6p-1,
- 0x1.ffffffffff11ap-1,
- 0x1.ffffffffff245p-1,
- 0x1.ffffffffff359p-1,
- 0x1.ffffffffff457p-1,
- 0x1.ffffffffff542p-1,
- 0x1.ffffffffff61bp-1,
- 0x1.ffffffffff6e3p-1,
- 0x1.ffffffffff79bp-1,
- 0x1.ffffffffff845p-1,
- 0x1.ffffffffff8e2p-1,
- 0x1.ffffffffff973p-1,
- 0x1.ffffffffff9f8p-1,
- 0x1.ffffffffffa73p-1,
- 0x1.ffffffffffae4p-1,
- 0x1.ffffffffffb4cp-1,
- 0x1.ffffffffffbadp-1,
- 0x1.ffffffffffc05p-1,
- 0x1.ffffffffffc57p-1,
- 0x1.ffffffffffca2p-1,
- 0x1.ffffffffffce7p-1,
- 0x1.ffffffffffd27p-1,
- 0x1.ffffffffffd62p-1,
- 0x1.ffffffffffd98p-1,
- 0x1.ffffffffffdcap-1,
- 0x1.ffffffffffdf8p-1,
- 0x1.ffffffffffe22p-1,
- 0x1.ffffffffffe49p-1,
- 0x1.ffffffffffe6cp-1,
- 0x1.ffffffffffe8dp-1,
- 0x1.ffffffffffeabp-1,
- 0x1.ffffffffffec7p-1,
- 0x1.ffffffffffee1p-1,
- 0x1.ffffffffffef8p-1,
- 0x1.fffffffffff0ep-1,
- 0x1.fffffffffff22p-1,
- 0x1.fffffffffff34p-1,
- 0x1.fffffffffff45p-1,
- 0x1.fffffffffff54p-1,
- 0x1.fffffffffff62p-1,
- 0x1.fffffffffff6fp-1,
- 0x1.fffffffffff7bp-1,
- 0x1.fffffffffff86p-1,
- 0x1.fffffffffff90p-1,
- 0x1.fffffffffff9ap-1,
- 0x1.fffffffffffa2p-1,
- 0x1.fffffffffffaap-1,
- 0x1.fffffffffffb1p-1,
- 0x1.fffffffffffb8p-1,
- 0x1.fffffffffffbep-1,
- 0x1.fffffffffffc3p-1,
- 0x1.fffffffffffc8p-1,
- 0x1.fffffffffffcdp-1,
- 0x1.fffffffffffd1p-1,
- 0x1.fffffffffffd5p-1,
- 0x1.fffffffffffd9p-1,
- 0x1.fffffffffffdcp-1,
- 0x1.fffffffffffdfp-1,
- 0x1.fffffffffffe2p-1,
- 0x1.fffffffffffe4p-1,
- 0x1.fffffffffffe7p-1,
- 0x1.fffffffffffe9p-1,
- 0x1.fffffffffffebp-1,
- 0x1.fffffffffffedp-1,
- 0x1.fffffffffffeep-1,
- 0x1.ffffffffffff0p-1,
- 0x1.ffffffffffff1p-1,
- 0x1.ffffffffffff3p-1,
- 0x1.ffffffffffff4p-1,
- 0x1.ffffffffffff5p-1,
- 0x1.ffffffffffff6p-1,
- 0x1.ffffffffffff7p-1,
- 0x1.ffffffffffff7p-1,
- 0x1.ffffffffffff8p-1,
- 0x1.ffffffffffff9p-1,
- 0x1.ffffffffffff9p-1,
- 0x1.ffffffffffffap-1,
- 0x1.ffffffffffffbp-1,
- 0x1.ffffffffffffbp-1,
- 0x1.ffffffffffffbp-1,
- 0x1.ffffffffffffcp-1,
- 0x1.ffffffffffffcp-1,
- 0x1.ffffffffffffdp-1,
- 0x1.ffffffffffffdp-1,
- 0x1.ffffffffffffdp-1,
- 0x1.ffffffffffffdp-1,
- 0x1.ffffffffffffep-1,
- 0x1.ffffffffffffep-1,
- 0x1.ffffffffffffep-1,
- 0x1.ffffffffffffep-1,
- 0x1.ffffffffffffep-1,
- 0x1.ffffffffffffep-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.fffffffffffffp-1,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- 0x1.0000000000000p+0,
- },
- .scale = { 0x1.20dd750429b6dp+0,
- 0x1.20d8f1975c85dp+0,
- 0x1.20cb67bd452c7p+0,
- 0x1.20b4d8bac36c1p+0,
- 0x1.209546ad13ccfp+0,
- 0x1.206cb4897b148p+0,
- 0x1.203b261cd0052p+0,
- 0x1.2000a00ae3804p+0,
- 0x1.1fbd27cdc72d3p+0,
- 0x1.1f70c3b4f2cc7p+0,
- 0x1.1f1b7ae44867fp+0,
- 0x1.1ebd5552f795bp+0,
- 0x1.1e565bca400d4p+0,
- 0x1.1de697e413d28p+0,
- 0x1.1d6e14099944ap+0,
- 0x1.1cecdb718d61cp+0,
- 0x1.1c62fa1e869b6p+0,
- 0x1.1bd07cdd189acp+0,
- 0x1.1b357141d95d5p+0,
- 0x1.1a91e5a748165p+0,
- 0x1.19e5e92b964abp+0,
- 0x1.19318bae53a04p+0,
- 0x1.1874ddcdfce24p+0,
- 0x1.17aff0e56ec10p+0,
- 0x1.16e2d7093cd8cp+0,
- 0x1.160da304ed92fp+0,
- 0x1.153068581b781p+0,
- 0x1.144b3b337c90cp+0,
- 0x1.135e3075d076bp+0,
- 0x1.12695da8b5bdep+0,
- 0x1.116cd8fd67618p+0,
- 0x1.1068b94962e5ep+0,
- 0x1.0f5d1602f7e41p+0,
- 0x1.0e4a073dc1b91p+0,
- 0x1.0d2fa5a70c168p+0,
- 0x1.0c0e0a8223359p+0,
- 0x1.0ae54fa490722p+0,
- 0x1.09b58f724416bp+0,
- 0x1.087ee4d9ad247p+0,
- 0x1.07416b4fbfe7cp+0,
- 0x1.05fd3ecbec297p+0,
- 0x1.04b27bc403d30p+0,
- 0x1.03613f2812dafp+0,
- 0x1.0209a65e29545p+0,
- 0x1.00abcf3e187a9p+0,
- 0x1.fe8fb01a47307p-1,
- 0x1.fbbbbef34b4b2p-1,
- 0x1.f8dc092d58ff8p-1,
- 0x1.f5f0cdaf15313p-1,
- 0x1.f2fa4c16c0019p-1,
- 0x1.eff8c4b1375dbp-1,
- 0x1.ecec7870ebca7p-1,
- 0x1.e9d5a8e4c934ep-1,
- 0x1.e6b4982f158b9p-1,
- 0x1.e38988fc46e72p-1,
- 0x1.e054be79d3042p-1,
- 0x1.dd167c4cf9d2ap-1,
- 0x1.d9cf06898cdafp-1,
- 0x1.d67ea1a8b5368p-1,
- 0x1.d325927fb9d89p-1,
- 0x1.cfc41e36c7df9p-1,
- 0x1.cc5a8a3fbea40p-1,
- 0x1.c8e91c4d01368p-1,
- 0x1.c5701a484ef9dp-1,
- 0x1.c1efca49a5011p-1,
- 0x1.be68728e29d5dp-1,
- 0x1.bada596f25436p-1,
- 0x1.b745c55905bf8p-1,
- 0x1.b3aafcc27502ep-1,
- 0x1.b00a46237d5bep-1,
- 0x1.ac63e7ecc1411p-1,
- 0x1.a8b8287ec6a09p-1,
- 0x1.a5074e2157620p-1,
- 0x1.a1519efaf889ep-1,
- 0x1.9d97610879642p-1,
- 0x1.99d8da149c13fp-1,
- 0x1.96164fafd8de3p-1,
- 0x1.925007283d7aap-1,
- 0x1.8e86458169af8p-1,
- 0x1.8ab94f6caa71dp-1,
- 0x1.86e9694134b9ep-1,
- 0x1.8316d6f48133dp-1,
- 0x1.7f41dc12c9e89p-1,
- 0x1.7b6abbb7aaf19p-1,
- 0x1.7791b886e7403p-1,
- 0x1.73b714a552763p-1,
- 0x1.6fdb11b1e0c34p-1,
- 0x1.6bfdf0beddaf5p-1,
- 0x1.681ff24b4ab04p-1,
- 0x1.6441563c665d4p-1,
- 0x1.60625bd75d07bp-1,
- 0x1.5c8341bb23767p-1,
- 0x1.58a445da7c74cp-1,
- 0x1.54c5a57629db0p-1,
- 0x1.50e79d1749ac9p-1,
- 0x1.4d0a6889dfd9fp-1,
- 0x1.492e42d78d2c5p-1,
- 0x1.4553664273d24p-1,
- 0x1.417a0c4049fd0p-1,
- 0x1.3da26d759aef5p-1,
- 0x1.39ccc1b136d5ap-1,
- 0x1.35f93fe7d1b3dp-1,
- 0x1.32281e2fd1a92p-1,
- 0x1.2e5991bd4cbfcp-1,
- 0x1.2a8dcede3673bp-1,
- 0x1.26c508f6bd0ffp-1,
- 0x1.22ff727dd6f7bp-1,
- 0x1.1f3d3cf9ffe5ap-1,
- 0x1.1b7e98fe26217p-1,
- 0x1.17c3b626c7a11p-1,
- 0x1.140cc3173f007p-1,
- 0x1.1059ed7740313p-1,
- 0x1.0cab61f084b93p-1,
- 0x1.09014c2ca74dap-1,
- 0x1.055bd6d32e8d7p-1,
- 0x1.01bb2b87c6968p-1,
- 0x1.fc3ee5d1524b0p-2,
- 0x1.f511a91a67d2ap-2,
- 0x1.edeeee0959518p-2,
- 0x1.e6d6ffaa65a25p-2,
- 0x1.dfca26f5bbf88p-2,
- 0x1.d8c8aace11e63p-2,
- 0x1.d1d2cfff91594p-2,
- 0x1.cae8d93f1d7b6p-2,
- 0x1.c40b0729ed547p-2,
- 0x1.bd3998457afdap-2,
- 0x1.b674c8ffc6283p-2,
- 0x1.afbcd3afe8ab6p-2,
- 0x1.a911f096fbc26p-2,
- 0x1.a27455e14c93cp-2,
- 0x1.9be437a7de946p-2,
- 0x1.9561c7f23a47bp-2,
- 0x1.8eed36b886d93p-2,
- 0x1.8886b1e5ecfd1p-2,
- 0x1.822e655b417e6p-2,
- 0x1.7be47af1f5d89p-2,
- 0x1.75a91a7f4d2edp-2,
- 0x1.6f7c69d7d3ef8p-2,
- 0x1.695e8cd31867ep-2,
- 0x1.634fa54fa285fp-2,
- 0x1.5d4fd33729015p-2,
- 0x1.575f3483021c3p-2,
- 0x1.517de540ce2a3p-2,
- 0x1.4babff975a04cp-2,
- 0x1.45e99bcbb7915p-2,
- 0x1.4036d0468a7a2p-2,
- 0x1.3a93b1998736cp-2,
- 0x1.35005285227f1p-2,
- 0x1.2f7cc3fe6f423p-2,
- 0x1.2a09153529381p-2,
- 0x1.24a55399ea239p-2,
- 0x1.1f518ae487dc8p-2,
- 0x1.1a0dc51a9934dp-2,
- 0x1.14da0a961fd14p-2,
- 0x1.0fb6620c550afp-2,
- 0x1.0aa2d09497f2bp-2,
- 0x1.059f59af7a906p-2,
- 0x1.00abff4dec7a3p-2,
- 0x1.f79183b101c5bp-3,
- 0x1.edeb406d9c824p-3,
- 0x1.e4652fadcb6b2p-3,
- 0x1.daff4969c0b04p-3,
- 0x1.d1b982c501370p-3,
- 0x1.c893ce1dcbef7p-3,
- 0x1.bf8e1b1ca2279p-3,
- 0x1.b6a856c3ed54fp-3,
- 0x1.ade26b7fbed95p-3,
- 0x1.a53c4135a6526p-3,
- 0x1.9cb5bd549b111p-3,
- 0x1.944ec2e4f5630p-3,
- 0x1.8c07329874652p-3,
- 0x1.83deeada4d25ap-3,
- 0x1.7bd5c7df3fe9cp-3,
- 0x1.73eba3b5b07b7p-3,
- 0x1.6c205655be71fp-3,
- 0x1.6473b5b15a7a1p-3,
- 0x1.5ce595c455b0ap-3,
- 0x1.5575c8a468361p-3,
- 0x1.4e241e912c305p-3,
- 0x1.46f066040a832p-3,
- 0x1.3fda6bc016994p-3,
- 0x1.38e1fae1d6a9dp-3,
- 0x1.3206dceef5f87p-3,
- 0x1.2b48d9e5dea1cp-3,
- 0x1.24a7b84d38971p-3,
- 0x1.1e233d434b813p-3,
- 0x1.17bb2c8d41535p-3,
- 0x1.116f48a6476ccp-3,
- 0x1.0b3f52ce8c383p-3,
- 0x1.052b0b1a174eap-3,
- 0x1.fe6460fef4680p-4,
- 0x1.f2a901ccafb37p-4,
- 0x1.e723726b824a9p-4,
- 0x1.dbd32ac4c99b0p-4,
- 0x1.d0b7a0f921e7cp-4,
- 0x1.c5d0497c09e74p-4,
- 0x1.bb1c972f23e50p-4,
- 0x1.b09bfb7d11a83p-4,
- 0x1.a64de673e8837p-4,
- 0x1.9c31c6df3b1b8p-4,
- 0x1.92470a61b6965p-4,
- 0x1.888d1d8e510a3p-4,
- 0x1.7f036c0107294p-4,
- 0x1.75a96077274bap-4,
- 0x1.6c7e64e7281cbp-4,
- 0x1.6381e2980956bp-4,
- 0x1.5ab342383d177p-4,
- 0x1.5211ebf41880bp-4,
- 0x1.499d478bca735p-4,
- 0x1.4154bc68d75c3p-4,
- 0x1.3937b1b319259p-4,
- 0x1.31458e6542847p-4,
- 0x1.297db960e4f63p-4,
- 0x1.21df9981f8e53p-4,
- 0x1.1a6a95b1e786fp-4,
- 0x1.131e14fa1625dp-4,
- 0x1.0bf97e95f2a64p-4,
- 0x1.04fc3a0481321p-4,
- 0x1.fc4b5e32d6259p-5,
- 0x1.eeea8c1b1db93p-5,
- 0x1.e1d4cf1e2450ap-5,
- 0x1.d508f9a1ea64ep-5,
- 0x1.c885df3451a07p-5,
- 0x1.bc4a54a84e834p-5,
- 0x1.b055303221015p-5,
- 0x1.a4a549829587ep-5,
- 0x1.993979e14fffdp-5,
- 0x1.8e109c4622913p-5,
- 0x1.83298d717210ep-5,
- 0x1.78832c03aa2b1p-5,
- 0x1.6e1c5893c380bp-5,
- 0x1.63f3f5c4de13bp-5,
- 0x1.5a08e85af27e0p-5,
- 0x1.505a174e9c929p-5,
- 0x1.46e66be002240p-5,
- 0x1.3dacd1a8d8ccdp-5,
- 0x1.34ac36ad8dafep-5,
- 0x1.2be38b6d92415p-5,
- 0x1.2351c2f2d1449p-5,
- 0x1.1af5d2e04f3f6p-5,
- 0x1.12ceb37ff9bc3p-5,
- 0x1.0adb5fcfa8c75p-5,
- 0x1.031ad58d56279p-5,
- 0x1.f7182a851bca2p-6,
- 0x1.e85c449e377f2p-6,
- 0x1.da0005e5f28dfp-6,
- 0x1.cc0180af00a8bp-6,
- 0x1.be5ecd2fcb5f9p-6,
- 0x1.b1160991ff737p-6,
- 0x1.a4255a00b9f03p-6,
- 0x1.978ae8b55ce1bp-6,
- 0x1.8b44e6031383ep-6,
- 0x1.7f5188610ddc8p-6,
- 0x1.73af0c737bb45p-6,
- 0x1.685bb5134ef13p-6,
- 0x1.5d55cb54cd53ap-6,
- 0x1.529b9e8cf9a1ep-6,
- 0x1.482b8455dc491p-6,
- 0x1.3e03d891b37dep-6,
- 0x1.3422fd6d12e2bp-6,
- 0x1.2a875b5ffab56p-6,
- 0x1.212f612dee7fbp-6,
- 0x1.181983e5133ddp-6,
- 0x1.0f443edc5ce49p-6,
- 0x1.06ae13b0d3255p-6,
- 0x1.fcab1483ea7fcp-7,
- 0x1.ec72615a894c4p-7,
- 0x1.dcaf3691fc448p-7,
- 0x1.cd5ec93c12431p-7,
- 0x1.be7e5ac24963bp-7,
- 0x1.b00b38d6b3575p-7,
- 0x1.a202bd6372dcep-7,
- 0x1.94624e78e0fafp-7,
- 0x1.87275e3a6869dp-7,
- 0x1.7a4f6aca256cbp-7,
- 0x1.6dd7fe3358230p-7,
- 0x1.61beae53b72b7p-7,
- 0x1.56011cc3b036dp-7,
- 0x1.4a9cf6bda3f4cp-7,
- 0x1.3f8ff5042a88ep-7,
- 0x1.34d7dbc76d7e5p-7,
- 0x1.2a727a89a3f14p-7,
- 0x1.205dac02bd6b9p-7,
- 0x1.1697560347b25p-7,
- 0x1.0d1d69569b82dp-7,
- 0x1.03ede1a45bfeep-7,
- 0x1.f60d8aa2a88f2p-8,
- 0x1.e4cc4abf7d065p-8,
- 0x1.d4143a9dfe965p-8,
- 0x1.c3e1a5f5c077cp-8,
- 0x1.b430ecf4a83a8p-8,
- 0x1.a4fe83fb9db25p-8,
- 0x1.9646f35a76623p-8,
- 0x1.8806d70b2fc36p-8,
- 0x1.7a3ade6c8b3e4p-8,
- 0x1.6cdfcbfc1e263p-8,
- 0x1.5ff2750fe7820p-8,
- 0x1.536fc18f7ce5cp-8,
- 0x1.4754abacdf1dcp-8,
- 0x1.3b9e3f9d06e3fp-8,
- 0x1.30499b503957fp-8,
- 0x1.2553ee2a336bfp-8,
- 0x1.1aba78ba3af89p-8,
- 0x1.107a8c7323a6ep-8,
- 0x1.06918b6355624p-8,
- 0x1.f9f9cfd9c3035p-9,
- 0x1.e77448fb66bb9p-9,
- 0x1.d58da68fd1170p-9,
- 0x1.c4412bf4b8f0bp-9,
- 0x1.b38a3af2e55b4p-9,
- 0x1.a3645330550ffp-9,
- 0x1.93cb11a30d765p-9,
- 0x1.84ba3004a50d0p-9,
- 0x1.762d84469c18fp-9,
- 0x1.6821000795a03p-9,
- 0x1.5a90b00981d93p-9,
- 0x1.4d78bba8ca5fdp-9,
- 0x1.40d564548fad7p-9,
- 0x1.34a305080681fp-9,
- 0x1.28de11c5031ebp-9,
- 0x1.1d83170fbf6fbp-9,
- 0x1.128eb96be8798p-9,
- 0x1.07fdb4dafea5fp-9,
- 0x1.fb99b8b8279e1p-10,
- 0x1.e7f232d9e2630p-10,
- 0x1.d4fed7195d7e8p-10,
- 0x1.c2b9cf7f893bfp-10,
- 0x1.b11d702b3deb1p-10,
- 0x1.a024365f771bdp-10,
- 0x1.8fc8c794b03b5p-10,
- 0x1.8005f08d6f1efp-10,
- 0x1.70d6a46e07ddap-10,
- 0x1.6235fbd7a4345p-10,
- 0x1.541f340697987p-10,
- 0x1.468dadf4080abp-10,
- 0x1.397ced7af2b15p-10,
- 0x1.2ce898809244ep-10,
- 0x1.20cc76202c5fap-10,
- 0x1.15246dda49d47p-10,
- 0x1.09ec86c75d497p-10,
- 0x1.fe41cd9bb4eeep-11,
- 0x1.e97ba3b77f306p-11,
- 0x1.d57f524723822p-11,
- 0x1.c245d4b998479p-11,
- 0x1.afc85e0f82e12p-11,
- 0x1.9e005769dbc1dp-11,
- 0x1.8ce75e9f6f8a0p-11,
- 0x1.7c7744d9378f7p-11,
- 0x1.6caa0d3582fe9p-11,
- 0x1.5d79eb71e893bp-11,
- 0x1.4ee1429bf7cc0p-11,
- 0x1.40daa3c89f5b6p-11,
- 0x1.3360ccd23db3ap-11,
- 0x1.266ea71d4f71ap-11,
- 0x1.19ff4663ae9dfp-11,
- 0x1.0e0de78654d1ep-11,
- 0x1.0295ef6591848p-11,
- 0x1.ef25d37f49fe1p-12,
- 0x1.da01102b5f851p-12,
- 0x1.c5b5412dcafadp-12,
- 0x1.b23a5a23e4210p-12,
- 0x1.9f8893d8fd1c1p-12,
- 0x1.8d986a4187285p-12,
- 0x1.7c629a822bc9ep-12,
- 0x1.6be02102b3520p-12,
- 0x1.5c0a378c90bcap-12,
- 0x1.4cda5374ea275p-12,
- 0x1.3e4a23d1f4702p-12,
- 0x1.30538fbb77ecdp-12,
- 0x1.22f0b496539bdp-12,
- 0x1.161be46ad3b50p-12,
- 0x1.09cfa445b00ffp-12,
- 0x1.fc0d55470cf51p-13,
- 0x1.e577bbcd49935p-13,
- 0x1.cfd4a5adec5bfp-13,
- 0x1.bb1a9657ce465p-13,
- 0x1.a740684026555p-13,
- 0x1.943d4a1d1ed39p-13,
- 0x1.8208bc334a6a5p-13,
- 0x1.709a8db59f25cp-13,
- 0x1.5feada379d8b7p-13,
- 0x1.4ff207314a102p-13,
- 0x1.40a8c1949f75ep-13,
- 0x1.3207fb7420eb9p-13,
- 0x1.2408e9ba3327fp-13,
- 0x1.16a501f0e42cap-13,
- 0x1.09d5f819c9e29p-13,
- 0x1.fb2b792b40a22p-14,
- 0x1.e3bcf436a1a95p-14,
- 0x1.cd55277c18d05p-14,
- 0x1.b7e94604479dcp-14,
- 0x1.a36eec00926ddp-14,
- 0x1.8fdc1b2dcf7b9p-14,
- 0x1.7d2737527c3f9p-14,
- 0x1.6b4702d7d5849p-14,
- 0x1.5a329b7d30748p-14,
- 0x1.49e17724f4d41p-14,
- 0x1.3a4b60ba9aa4dp-14,
- 0x1.2b6875310f785p-14,
- 0x1.1d312098e9dbap-14,
- 0x1.0f9e1b4dd36dfp-14,
- 0x1.02a8673a94691p-14,
- 0x1.ec929a665b449p-15,
- 0x1.d4f4b4c8e09edp-15,
- 0x1.be6abbb10a5aap-15,
- 0x1.a8e8cc1fadef6p-15,
- 0x1.94637d5bacfdbp-15,
- 0x1.80cfdc72220cfp-15,
- 0x1.6e2367dc27f95p-15,
- 0x1.5c540b4936fd2p-15,
- 0x1.4b581b8d170fcp-15,
- 0x1.3b2652b06c2b2p-15,
- 0x1.2bb5cc22e5db6p-15,
- 0x1.1cfe010e2052dp-15,
- 0x1.0ef6c4c84a0fep-15,
- 0x1.01984165a5f36p-15,
- 0x1.e9b5e8d00ce76p-16,
- 0x1.d16f5716c6c1ap-16,
- 0x1.ba4f035d60e02p-16,
- 0x1.a447b7b03f045p-16,
- 0x1.8f4ccca7fc90dp-16,
- 0x1.7b5223dac7336p-16,
- 0x1.684c227fcacefp-16,
- 0x1.562fac4329b48p-16,
- 0x1.44f21e49054f2p-16,
- 0x1.34894a5e24657p-16,
- 0x1.24eb7254ccf83p-16,
- 0x1.160f438c70913p-16,
- 0x1.07ebd2a2d2844p-16,
- 0x1.f4f12e9ab070ap-17,
- 0x1.db5ad0b27805cp-17,
- 0x1.c304efa2c6f4ep-17,
- 0x1.abe09e9144b5ep-17,
- 0x1.95df988e76644p-17,
- 0x1.80f439b4ee04bp-17,
- 0x1.6d11788a69c64p-17,
- 0x1.5a2adfa0b4bc4p-17,
- 0x1.4834877429b8fp-17,
- 0x1.37231085c7d9ap-17,
- 0x1.26eb9daed6f7ep-17,
- 0x1.1783ceac28910p-17,
- 0x1.08e1badf0fcedp-17,
- 0x1.f5f7d88472604p-18,
- 0x1.db92b5212fb8dp-18,
- 0x1.c282cd3957edap-18,
- 0x1.aab7abace48dcp-18,
- 0x1.94219bfcb4928p-18,
- 0x1.7eb1a2075864dp-18,
- 0x1.6a597219a93d9p-18,
- 0x1.570b69502f313p-18,
- 0x1.44ba864670882p-18,
- 0x1.335a62115bce2p-18,
- 0x1.22df298214423p-18,
- 0x1.133d96ae7e0ddp-18,
- 0x1.046aeabcfcdecp-18,
- 0x1.ecb9cfe1d8642p-19,
- 0x1.d21397ead99cbp-19,
- 0x1.b8d094c86d374p-19,
- 0x1.a0df0f0c626dcp-19,
- 0x1.8a2e269750a39p-19,
- 0x1.74adc8f4064d3p-19,
- 0x1.604ea819f007cp-19,
- 0x1.4d0231928c6f9p-19,
- 0x1.3aba85fe22e1fp-19,
- 0x1.296a70f414053p-19,
- 0x1.1905613b3abf2p-19,
- 0x1.097f6156f32c5p-19,
- 0x1.f59a20caf6695p-20,
- 0x1.d9c73698fb1dcp-20,
- 0x1.bf716c6168baep-20,
- 0x1.a6852c6b58392p-20,
- 0x1.8eefd70594a88p-20,
- 0x1.789fb715aae95p-20,
- 0x1.6383f726a8e04p-20,
- 0x1.4f8c96f26a26ap-20,
- 0x1.3caa61607f920p-20,
- 0x1.2acee2f5ecdb8p-20,
- 0x1.19ec60b1242edp-20,
- 0x1.09f5cf4dd2877p-20,
- 0x1.f5bd95d8730d8p-21,
- 0x1.d9371e2ff7c35p-21,
- 0x1.be41de54d155ap-21,
- 0x1.a4c89e08ef4f3p-21,
- 0x1.8cb738399b12cp-21,
- 0x1.75fa8dbc84becp-21,
- 0x1.608078a70dcbcp-21,
- 0x1.4c37c0394d094p-21,
- 0x1.39100d5687bfep-21,
- 0x1.26f9df8519bd6p-21,
- 0x1.15e6827001f18p-21,
- 0x1.05c803e4831c1p-21,
- 0x1.ed22548cffd35p-22,
- 0x1.d06ad6ecdf971p-22,
- 0x1.b551c847fbc96p-22,
- 0x1.9bc09f112b494p-22,
- 0x1.83a1ff0aa239dp-22,
- 0x1.6ce1aa3fd7bddp-22,
- 0x1.576c72b514859p-22,
- 0x1.43302cc4a0da8p-22,
- 0x1.301ba221dc9bbp-22,
- 0x1.1e1e857adc568p-22,
- 0x1.0d2966b1746f7p-22,
- 0x1.fa5b4f49cc6b2p-23,
- 0x1.dc3ae30b55c16p-23,
- 0x1.bfd7555a3bd68p-23,
- 0x1.a517d9e61628ap-23,
- 0x1.8be4f8f6c951fp-23,
- 0x1.74287ded49339p-23,
- 0x1.5dcd669f2cd34p-23,
- 0x1.48bfd38302870p-23,
- 0x1.34ecf8a3c124ap-23,
- 0x1.22430f521cbcfp-23,
- 0x1.10b1488aeb235p-23,
- 0x1.0027c00a263a6p-23,
- 0x1.e12ee004efc37p-24,
- 0x1.c3e44ae32b16bp-24,
- 0x1.a854ea14102a8p-24,
- 0x1.8e6761569f45dp-24,
- 0x1.7603bac345f65p-24,
- 0x1.5f1353cdad001p-24,
- 0x1.4980cb3c80949p-24,
- 0x1.3537f00b6ad4dp-24,
- 0x1.2225b12bffc68p-24,
- 0x1.10380e1adb7e9p-24,
- 0x1.febc107d5efaap-25,
- 0x1.df0f2a0ee6946p-25,
- 0x1.c14b2188bcee4p-25,
- 0x1.a553644f7f07dp-25,
- 0x1.8b0cfce0579dfp-25,
- 0x1.725e7c5dd20f7p-25,
- 0x1.5b2fe547a1340p-25,
- 0x1.456a974e92e93p-25,
- 0x1.30f93c3699078p-25,
- 0x1.1dc7b5b978cf8p-25,
- 0x1.0bc30c5d52f15p-25,
- 0x1.f5b2be65a0c7fp-26,
- 0x1.d5f3a8dea7357p-26,
- 0x1.b82915b03515bp-26,
- 0x1.9c3517e789488p-26,
- 0x1.81fb7df06136ep-26,
- 0x1.6961b8d641d06p-26,
- 0x1.524ec4d916caep-26,
- 0x1.3cab1343d18d1p-26,
- 0x1.2860757487a01p-26,
- 0x1.155a09065d4f7p-26,
- 0x1.0384250e4c9fcp-26,
- 0x1.e59890b926c78p-27,
- 0x1.c642116a8a9e3p-27,
- 0x1.a8e405e651ab6p-27,
- 0x1.8d5f98114f872p-27,
- 0x1.7397c5a66e307p-27,
- 0x1.5b71456c5a4c4p-27,
- 0x1.44d26de513197p-27,
- 0x1.2fa31d6371537p-27,
- 0x1.1bcca373b7b43p-27,
- 0x1.0939ab853339fp-27,
- 0x1.efac5187b2863p-28,
- 0x1.cf1e86235d0e6p-28,
- 0x1.b0a68a2128babp-28,
- 0x1.9423165bc4444p-28,
- 0x1.7974e743dea3cp-28,
- 0x1.607e9eacd1050p-28,
- 0x1.4924a74dec728p-28,
- 0x1.334d19e0c2160p-28,
- 0x1.1edfa3c5f5ccap-28,
- 0x1.0bc56f1b54701p-28,
- 0x1.f3d2185e047d9p-29,
- 0x1.d26cb87945e87p-29,
- 0x1.b334fac4b9f99p-29,
- 0x1.96076f7918d1cp-29,
- 0x1.7ac2d72fc2c63p-29,
- 0x1.614801550319ep-29,
- 0x1.4979ac8b28926p-29,
- 0x1.333c68e2d0548p-29,
- 0x1.1e767bce37dd7p-29,
- 0x1.0b0fc5b6d05a0p-29,
- 0x1.f1e3523b41d7dp-30,
- 0x1.d00de6608effep-30,
- 0x1.b0778b7b3301ap-30,
- 0x1.92fb04ec0f6cfp-30,
- 0x1.77756ec9f78fap-30,
- 0x1.5dc61922d5a06p-30,
- 0x1.45ce65699ff6dp-30,
- 0x1.2f71a5f159970p-30,
- 0x1.1a94ff571654fp-30,
- 0x1.071f4bbea09ecp-30,
- 0x1.e9f1ff8ddd774p-31,
- 0x1.c818223a202c7p-31,
- 0x1.a887bd2b4404dp-31,
- 0x1.8b1a336c5eb6bp-31,
- 0x1.6fab63324088ap-31,
- 0x1.56197e30205bap-31,
- 0x1.3e44e45301b92p-31,
- 0x1.281000bfe4c3fp-31,
- 0x1.135f28f2d50b4p-31,
- 0x1.00187dded5975p-31,
- 0x1.dc479de0ef001p-32,
- 0x1.bad4fdad3caa1p-32,
- 0x1.9baed3ed27ab8p-32,
- 0x1.7ead9ce4285bbp-32,
- 0x1.63ac6b4edc88ep-32,
- 0x1.4a88be2a6390cp-32,
- 0x1.332259185f1a0p-32,
- 0x1.1d5b1f3793044p-32,
- 0x1.0916f04b6e18bp-32,
- 0x1.ec77101de6926p-33,
- 0x1.c960bf23153e0p-33,
- 0x1.a8bd20fc65ef7p-33,
- 0x1.8a61745ec7d1dp-33,
- 0x1.6e25d0e756261p-33,
- 0x1.53e4f7d1666cbp-33,
- 0x1.3b7c27a7ddb0ep-33,
- 0x1.24caf2c32af14p-33,
- 0x1.0fb3186804d0fp-33,
- 0x1.f830c0bb41fd7p-34,
- 0x1.d3c0f1a91c846p-34,
- 0x1.b1e5acf351d87p-34,
- 0x1.92712d259ce66p-34,
- 0x1.7538c60a04476p-34,
- 0x1.5a14b04b47879p-34,
- 0x1.40dfd87456f4cp-34,
- 0x1.2977b1172b9d5p-34,
- 0x1.13bc07e891491p-34,
- 0x1.ff1dbb4300811p-35,
- 0x1.d9a880f306bd8p-35,
- 0x1.b6e45220b55e0p-35,
- 0x1.96a0b33f2c4dap-35,
- 0x1.78b07e9e924acp-35,
- 0x1.5ce9ab1670dd2p-35,
- 0x1.4325167006bb0p-35,
- 0x1.2b3e53538ff3fp-35,
- 0x1.15137a7f44864p-35,
- 0x1.0084ff125639dp-35,
- 0x1.daeb0b7311ec7p-36,
- 0x1.b7937d1c40c52p-36,
- 0x1.96d082f59ab06p-36,
- 0x1.7872d9fa10aadp-36,
- 0x1.5c4e8e37bc7d0p-36,
- 0x1.423ac0df49a40p-36,
- 0x1.2a117230ad284p-36,
- 0x1.13af4f04f9998p-36,
- 0x1.fde703724e560p-37,
- 0x1.d77f0c82e7641p-37,
- 0x1.b3ee02611d7ddp-37,
- 0x1.92ff33023d5bdp-37,
- 0x1.7481a9e69f53fp-37,
- 0x1.5847eda620959p-37,
- 0x1.3e27c1fcc74bdp-37,
- 0x1.25f9ee0b923dcp-37,
- 0x1.0f9a0686531ffp-37,
- 0x1.f5cc7718082afp-38,
- 0x1.cf7e53d6a2ca5p-38,
- 0x1.ac0f5f3229372p-38,
- 0x1.8b498644847eap-38,
- 0x1.6cfa9bcca59dcp-38,
- 0x1.50f411d4fd2cdp-38,
- 0x1.370ab8327af5ep-38,
- 0x1.1f167f88c6b6ep-38,
- 0x1.08f24085d4597p-38,
- 0x1.e8f70e181d619p-39,
- 0x1.c324c20e337dcp-39,
- 0x1.a03261574b54ep-39,
- 0x1.7fe903cdf5855p-39,
- 0x1.6215c58da3450p-39,
- 0x1.46897d4b69fc6p-39,
- 0x1.2d1877d731b7bp-39,
- 0x1.159a386b11517p-39,
- 0x1.ffd27ae9393cep-40,
- 0x1.d7c593130dd0bp-40,
- 0x1.b2cd607c79bcfp-40,
- 0x1.90ae4d3405651p-40,
- 0x1.71312dd1759e2p-40,
- 0x1.5422ef5d8949dp-40,
- 0x1.39544b0ecc957p-40,
- 0x1.20997f73e73ddp-40,
- 0x1.09ca0eaacd277p-40,
- 0x1.e9810295890ecp-41,
- 0x1.c2b45b5aa4a1dp-41,
- 0x1.9eee068fa7596p-41,
- 0x1.7df2b399c10a8p-41,
- 0x1.5f8b87a31bd85p-41,
- 0x1.4385c96e9a2d9p-41,
- 0x1.29b2933ef4cbcp-41,
- 0x1.11e68a6378f8ap-41,
- 0x1.f7f338086a86bp-42,
- 0x1.cf8d7d9ce040ap-42,
- 0x1.aa577251ae484p-42,
- 0x1.8811d739efb5ep-42,
- 0x1.68823e52970bep-42,
- 0x1.4b72ae68e8b4cp-42,
- 0x1.30b14dbe876bcp-42,
- 0x1.181012ef86610p-42,
- 0x1.01647ba798744p-42,
- 0x1.d90e917701675p-43,
- 0x1.b2a87e86d0c8ap-43,
- 0x1.8f53dcb377293p-43,
- 0x1.6ed2f2515e933p-43,
- 0x1.50ecc9ed47f19p-43,
- 0x1.356cd5ce7799ep-43,
- 0x1.1c229a587ab78p-43,
- 0x1.04e15ecc7f3f6p-43,
- 0x1.deffc7e6a6017p-44,
- 0x1.b7b040832f310p-44,
- 0x1.938e021f36d76p-44,
- 0x1.7258610b3b233p-44,
- 0x1.53d3bfc82a909p-44,
- 0x1.37c92babdc2fdp-44,
- 0x1.1e06010120f6ap-44,
- 0x1.065b9616170d4p-44,
- 0x1.e13dd96b3753ap-45,
- 0x1.b950d32467392p-45,
- 0x1.94a72263259a5p-45,
- 0x1.72fd93e036cdcp-45,
- 0x1.54164576929abp-45,
- 0x1.37b83c521fe96p-45,
- 0x1.1daf033182e96p-45,
- 0x1.05ca50205d26ap-45,
- 0x1.dfbb6235639fap-46,
- 0x1.b7807e294781fp-46,
- 0x1.9298add70a734p-46,
- 0x1.70beaf9c7ffb6p-46,
- 0x1.51b2cd6709222p-46,
- 0x1.353a6cf7f7fffp-46,
- 0x1.1b1fa8cbe84a7p-46,
- 0x1.0330f0fd69921p-46,
- 0x1.da81670f96f9bp-47,
- 0x1.b24a16b4d09aap-47,
- 0x1.8d6eeb6efdbd6p-47,
- 0x1.6ba91ac734785p-47,
- 0x1.4cb7966770ab5p-47,
- 0x1.305e9721d0981p-47,
- 0x1.1667311fff70ap-47,
- 0x1.fd3de10d62855p-48,
- 0x1.d1aefbcd48d0cp-48,
- 0x1.a9cc93c25aca9p-48,
- 0x1.85487ee3ea735p-48,
- 0x1.63daf8b4b1e0cp-48,
- 0x1.45421e69a6ca1p-48,
- 0x1.294175802d99ap-48,
- 0x1.0fa17bf41068fp-48,
- 0x1.f05e82aae2bb9p-49,
- 0x1.c578101b29058p-49,
- 0x1.9e39dc5dd2f7cp-49,
- 0x1.7a553a728bbf2p-49,
- 0x1.5982008db1304p-49,
- 0x1.3b7e00422e51bp-49,
- 0x1.200c898d9ee3ep-49,
- 0x1.06f5f7eb65a56p-49,
- 0x1.e00e9148a1d25p-50,
- 0x1.b623734024e92p-50,
- 0x1.8fd4e01891bf8p-50,
- 0x1.6cd44c7470d89p-50,
- 0x1.4cd9c04158cd7p-50,
- 0x1.2fa34bf5c8344p-50,
- 0x1.14f4890ff2461p-50,
- 0x1.f92c49dfa4df5p-51,
- 0x1.ccaaea71ab0dfp-51,
- 0x1.a40829f001197p-51,
- 0x1.7eef13b59e96cp-51,
- 0x1.5d11e1a252bf5p-51,
- 0x1.3e296303b2297p-51,
- 0x1.21f47009f43cep-51,
- 0x1.083768c5e4541p-51,
- 0x1.e1777d831265ep-52,
- 0x1.b69f10b0191b5p-52,
- 0x1.8f8a3a05b5b52p-52,
- 0x1.6be573c40c8e7p-52,
- 0x1.4b645ba991fdbp-52,
- 0x1.2dc119095729fp-52,
- },
-};
diff --git a/sysdeps/aarch64/fpu/sv_erff_data.c b/sysdeps/aarch64/fpu/sv_erff_data.c
deleted file mode 100644
index 6dcd72a..0000000
--- a/sysdeps/aarch64/fpu/sv_erff_data.c
+++ /dev/null
@@ -1,1058 +0,0 @@
-/* Table for SVE erff approximation
-
- Copyright (C) 2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include "vecmath_config.h"
-
-/* Lookup table used in SVE erff.
- For each possible rounded input r (multiples of 1/128), between
- r = 0.0 and r = 4.0 (513 values):
- - __erff_data.erf contains the values of erf(r),
- - __erff_data.scale contains the values of 2/sqrt(pi)*exp(-r^2).
- Note that indices 0 and 1 are never hit by the algorithm, since lookup is
- performed only for x >= 1/64-1/512. */
-const struct sv_erff_data __sv_erff_data = {
- .erf = { 0x0.000000p+0,
- 0x1.20dbf4p-7,
- 0x1.20d770p-6,
- 0x1.b137e0p-6,
- 0x1.20c564p-5,
- 0x1.68e5d4p-5,
- 0x1.b0fafep-5,
- 0x1.f902a8p-5,
- 0x1.207d48p-4,
- 0x1.44703ep-4,
- 0x1.68591ap-4,
- 0x1.8c36bep-4,
- 0x1.b00812p-4,
- 0x1.d3cbf8p-4,
- 0x1.f7815ap-4,
- 0x1.0d9390p-3,
- 0x1.1f5e1ap-3,
- 0x1.311fc2p-3,
- 0x1.42d7fcp-3,
- 0x1.548642p-3,
- 0x1.662a0cp-3,
- 0x1.77c2d2p-3,
- 0x1.895010p-3,
- 0x1.9ad142p-3,
- 0x1.ac45e4p-3,
- 0x1.bdad72p-3,
- 0x1.cf076ep-3,
- 0x1.e05354p-3,
- 0x1.f190aap-3,
- 0x1.015f78p-2,
- 0x1.09eed6p-2,
- 0x1.127632p-2,
- 0x1.1af54ep-2,
- 0x1.236bf0p-2,
- 0x1.2bd9dcp-2,
- 0x1.343ed6p-2,
- 0x1.3c9aa8p-2,
- 0x1.44ed18p-2,
- 0x1.4d35f0p-2,
- 0x1.5574f4p-2,
- 0x1.5da9f4p-2,
- 0x1.65d4b8p-2,
- 0x1.6df50ap-2,
- 0x1.760abap-2,
- 0x1.7e1594p-2,
- 0x1.861566p-2,
- 0x1.8e0a02p-2,
- 0x1.95f336p-2,
- 0x1.9dd0d2p-2,
- 0x1.a5a2acp-2,
- 0x1.ad6896p-2,
- 0x1.b52264p-2,
- 0x1.bccfecp-2,
- 0x1.c47104p-2,
- 0x1.cc0584p-2,
- 0x1.d38d44p-2,
- 0x1.db081cp-2,
- 0x1.e275eap-2,
- 0x1.e9d68ap-2,
- 0x1.f129d4p-2,
- 0x1.f86faap-2,
- 0x1.ffa7eap-2,
- 0x1.03693ap-1,
- 0x1.06f794p-1,
- 0x1.0a7ef6p-1,
- 0x1.0dff50p-1,
- 0x1.117894p-1,
- 0x1.14eab4p-1,
- 0x1.1855a6p-1,
- 0x1.1bb95cp-1,
- 0x1.1f15ccp-1,
- 0x1.226ae8p-1,
- 0x1.25b8a8p-1,
- 0x1.28ff02p-1,
- 0x1.2c3decp-1,
- 0x1.2f755cp-1,
- 0x1.32a54cp-1,
- 0x1.35cdb4p-1,
- 0x1.38ee8ap-1,
- 0x1.3c07cap-1,
- 0x1.3f196ep-1,
- 0x1.42236ep-1,
- 0x1.4525c8p-1,
- 0x1.482074p-1,
- 0x1.4b1372p-1,
- 0x1.4dfebap-1,
- 0x1.50e24cp-1,
- 0x1.53be26p-1,
- 0x1.569244p-1,
- 0x1.595ea6p-1,
- 0x1.5c2348p-1,
- 0x1.5ee02ep-1,
- 0x1.619556p-1,
- 0x1.6442c0p-1,
- 0x1.66e86ep-1,
- 0x1.69865ep-1,
- 0x1.6c1c98p-1,
- 0x1.6eab18p-1,
- 0x1.7131e6p-1,
- 0x1.73b102p-1,
- 0x1.762870p-1,
- 0x1.789836p-1,
- 0x1.7b0058p-1,
- 0x1.7d60d8p-1,
- 0x1.7fb9c0p-1,
- 0x1.820b12p-1,
- 0x1.8454d6p-1,
- 0x1.869712p-1,
- 0x1.88d1cep-1,
- 0x1.8b050ep-1,
- 0x1.8d30dep-1,
- 0x1.8f5544p-1,
- 0x1.91724ap-1,
- 0x1.9387f6p-1,
- 0x1.959652p-1,
- 0x1.979d68p-1,
- 0x1.999d42p-1,
- 0x1.9b95e8p-1,
- 0x1.9d8768p-1,
- 0x1.9f71cap-1,
- 0x1.a1551ap-1,
- 0x1.a33162p-1,
- 0x1.a506b0p-1,
- 0x1.a6d50cp-1,
- 0x1.a89c86p-1,
- 0x1.aa5d26p-1,
- 0x1.ac16fcp-1,
- 0x1.adca14p-1,
- 0x1.af767ap-1,
- 0x1.b11c3cp-1,
- 0x1.b2bb68p-1,
- 0x1.b4540ap-1,
- 0x1.b5e630p-1,
- 0x1.b771e8p-1,
- 0x1.b8f742p-1,
- 0x1.ba764ap-1,
- 0x1.bbef10p-1,
- 0x1.bd61a2p-1,
- 0x1.bece0ep-1,
- 0x1.c03464p-1,
- 0x1.c194b2p-1,
- 0x1.c2ef08p-1,
- 0x1.c44376p-1,
- 0x1.c5920ap-1,
- 0x1.c6dad2p-1,
- 0x1.c81de2p-1,
- 0x1.c95b46p-1,
- 0x1.ca930ep-1,
- 0x1.cbc54cp-1,
- 0x1.ccf20cp-1,
- 0x1.ce1962p-1,
- 0x1.cf3b5cp-1,
- 0x1.d0580cp-1,
- 0x1.d16f7ep-1,
- 0x1.d281c4p-1,
- 0x1.d38ef0p-1,
- 0x1.d49710p-1,
- 0x1.d59a34p-1,
- 0x1.d6986cp-1,
- 0x1.d791cap-1,
- 0x1.d8865ep-1,
- 0x1.d97636p-1,
- 0x1.da6162p-1,
- 0x1.db47f4p-1,
- 0x1.dc29fcp-1,
- 0x1.dd0788p-1,
- 0x1.dde0aap-1,
- 0x1.deb570p-1,
- 0x1.df85eap-1,
- 0x1.e0522ap-1,
- 0x1.e11a3ep-1,
- 0x1.e1de36p-1,
- 0x1.e29e22p-1,
- 0x1.e35a12p-1,
- 0x1.e41214p-1,
- 0x1.e4c638p-1,
- 0x1.e5768cp-1,
- 0x1.e62322p-1,
- 0x1.e6cc08p-1,
- 0x1.e7714ap-1,
- 0x1.e812fcp-1,
- 0x1.e8b12ap-1,
- 0x1.e94be4p-1,
- 0x1.e9e336p-1,
- 0x1.ea7730p-1,
- 0x1.eb07e2p-1,
- 0x1.eb9558p-1,
- 0x1.ec1fa2p-1,
- 0x1.eca6ccp-1,
- 0x1.ed2ae6p-1,
- 0x1.edabfcp-1,
- 0x1.ee2a1ep-1,
- 0x1.eea556p-1,
- 0x1.ef1db4p-1,
- 0x1.ef9344p-1,
- 0x1.f00614p-1,
- 0x1.f07630p-1,
- 0x1.f0e3a6p-1,
- 0x1.f14e82p-1,
- 0x1.f1b6d0p-1,
- 0x1.f21ca0p-1,
- 0x1.f27ff8p-1,
- 0x1.f2e0eap-1,
- 0x1.f33f7ep-1,
- 0x1.f39bc2p-1,
- 0x1.f3f5c2p-1,
- 0x1.f44d88p-1,
- 0x1.f4a31ep-1,
- 0x1.f4f694p-1,
- 0x1.f547f2p-1,
- 0x1.f59742p-1,
- 0x1.f5e490p-1,
- 0x1.f62fe8p-1,
- 0x1.f67952p-1,
- 0x1.f6c0dcp-1,
- 0x1.f7068cp-1,
- 0x1.f74a6ep-1,
- 0x1.f78c8cp-1,
- 0x1.f7cceep-1,
- 0x1.f80ba2p-1,
- 0x1.f848acp-1,
- 0x1.f8841ap-1,
- 0x1.f8bdf2p-1,
- 0x1.f8f63ep-1,
- 0x1.f92d08p-1,
- 0x1.f96256p-1,
- 0x1.f99634p-1,
- 0x1.f9c8a8p-1,
- 0x1.f9f9bap-1,
- 0x1.fa2974p-1,
- 0x1.fa57dep-1,
- 0x1.fa84fep-1,
- 0x1.fab0dep-1,
- 0x1.fadb84p-1,
- 0x1.fb04f6p-1,
- 0x1.fb2d40p-1,
- 0x1.fb5464p-1,
- 0x1.fb7a6cp-1,
- 0x1.fb9f60p-1,
- 0x1.fbc344p-1,
- 0x1.fbe61ep-1,
- 0x1.fc07fap-1,
- 0x1.fc28d8p-1,
- 0x1.fc48c2p-1,
- 0x1.fc67bcp-1,
- 0x1.fc85d0p-1,
- 0x1.fca2fep-1,
- 0x1.fcbf52p-1,
- 0x1.fcdaccp-1,
- 0x1.fcf576p-1,
- 0x1.fd0f54p-1,
- 0x1.fd286ap-1,
- 0x1.fd40bep-1,
- 0x1.fd5856p-1,
- 0x1.fd6f34p-1,
- 0x1.fd8562p-1,
- 0x1.fd9ae2p-1,
- 0x1.fdafb8p-1,
- 0x1.fdc3e8p-1,
- 0x1.fdd77ap-1,
- 0x1.fdea6ep-1,
- 0x1.fdfcccp-1,
- 0x1.fe0e96p-1,
- 0x1.fe1fd0p-1,
- 0x1.fe3080p-1,
- 0x1.fe40a6p-1,
- 0x1.fe504cp-1,
- 0x1.fe5f70p-1,
- 0x1.fe6e18p-1,
- 0x1.fe7c46p-1,
- 0x1.fe8a00p-1,
- 0x1.fe9748p-1,
- 0x1.fea422p-1,
- 0x1.feb090p-1,
- 0x1.febc96p-1,
- 0x1.fec836p-1,
- 0x1.fed374p-1,
- 0x1.fede52p-1,
- 0x1.fee8d4p-1,
- 0x1.fef2fep-1,
- 0x1.fefccep-1,
- 0x1.ff064cp-1,
- 0x1.ff0f76p-1,
- 0x1.ff1852p-1,
- 0x1.ff20e0p-1,
- 0x1.ff2924p-1,
- 0x1.ff3120p-1,
- 0x1.ff38d6p-1,
- 0x1.ff4048p-1,
- 0x1.ff4778p-1,
- 0x1.ff4e68p-1,
- 0x1.ff551ap-1,
- 0x1.ff5b90p-1,
- 0x1.ff61ccp-1,
- 0x1.ff67d0p-1,
- 0x1.ff6d9ep-1,
- 0x1.ff7338p-1,
- 0x1.ff789ep-1,
- 0x1.ff7dd4p-1,
- 0x1.ff82dap-1,
- 0x1.ff87b2p-1,
- 0x1.ff8c5cp-1,
- 0x1.ff90dcp-1,
- 0x1.ff9532p-1,
- 0x1.ff9960p-1,
- 0x1.ff9d68p-1,
- 0x1.ffa14ap-1,
- 0x1.ffa506p-1,
- 0x1.ffa8a0p-1,
- 0x1.ffac18p-1,
- 0x1.ffaf6ep-1,
- 0x1.ffb2a6p-1,
- 0x1.ffb5bep-1,
- 0x1.ffb8b8p-1,
- 0x1.ffbb98p-1,
- 0x1.ffbe5ap-1,
- 0x1.ffc102p-1,
- 0x1.ffc390p-1,
- 0x1.ffc606p-1,
- 0x1.ffc862p-1,
- 0x1.ffcaa8p-1,
- 0x1.ffccd8p-1,
- 0x1.ffcef4p-1,
- 0x1.ffd0fap-1,
- 0x1.ffd2eap-1,
- 0x1.ffd4cap-1,
- 0x1.ffd696p-1,
- 0x1.ffd84ep-1,
- 0x1.ffd9f8p-1,
- 0x1.ffdb90p-1,
- 0x1.ffdd18p-1,
- 0x1.ffde90p-1,
- 0x1.ffdffap-1,
- 0x1.ffe154p-1,
- 0x1.ffe2a2p-1,
- 0x1.ffe3e2p-1,
- 0x1.ffe514p-1,
- 0x1.ffe63cp-1,
- 0x1.ffe756p-1,
- 0x1.ffe866p-1,
- 0x1.ffe96ap-1,
- 0x1.ffea64p-1,
- 0x1.ffeb54p-1,
- 0x1.ffec3ap-1,
- 0x1.ffed16p-1,
- 0x1.ffedeap-1,
- 0x1.ffeeb4p-1,
- 0x1.ffef76p-1,
- 0x1.fff032p-1,
- 0x1.fff0e4p-1,
- 0x1.fff18ep-1,
- 0x1.fff232p-1,
- 0x1.fff2d0p-1,
- 0x1.fff366p-1,
- 0x1.fff3f6p-1,
- 0x1.fff480p-1,
- 0x1.fff504p-1,
- 0x1.fff582p-1,
- 0x1.fff5fcp-1,
- 0x1.fff670p-1,
- 0x1.fff6dep-1,
- 0x1.fff74ap-1,
- 0x1.fff7aep-1,
- 0x1.fff810p-1,
- 0x1.fff86cp-1,
- 0x1.fff8c6p-1,
- 0x1.fff91cp-1,
- 0x1.fff96cp-1,
- 0x1.fff9bap-1,
- 0x1.fffa04p-1,
- 0x1.fffa4cp-1,
- 0x1.fffa90p-1,
- 0x1.fffad0p-1,
- 0x1.fffb0ep-1,
- 0x1.fffb4ap-1,
- 0x1.fffb82p-1,
- 0x1.fffbb8p-1,
- 0x1.fffbecp-1,
- 0x1.fffc1ep-1,
- 0x1.fffc4ep-1,
- 0x1.fffc7ap-1,
- 0x1.fffca6p-1,
- 0x1.fffccep-1,
- 0x1.fffcf6p-1,
- 0x1.fffd1ap-1,
- 0x1.fffd3ep-1,
- 0x1.fffd60p-1,
- 0x1.fffd80p-1,
- 0x1.fffda0p-1,
- 0x1.fffdbep-1,
- 0x1.fffddap-1,
- 0x1.fffdf4p-1,
- 0x1.fffe0ep-1,
- 0x1.fffe26p-1,
- 0x1.fffe3ep-1,
- 0x1.fffe54p-1,
- 0x1.fffe68p-1,
- 0x1.fffe7ep-1,
- 0x1.fffe90p-1,
- 0x1.fffea2p-1,
- 0x1.fffeb4p-1,
- 0x1.fffec4p-1,
- 0x1.fffed4p-1,
- 0x1.fffee4p-1,
- 0x1.fffef2p-1,
- 0x1.ffff00p-1,
- 0x1.ffff0cp-1,
- 0x1.ffff18p-1,
- 0x1.ffff24p-1,
- 0x1.ffff30p-1,
- 0x1.ffff3ap-1,
- 0x1.ffff44p-1,
- 0x1.ffff4ep-1,
- 0x1.ffff56p-1,
- 0x1.ffff60p-1,
- 0x1.ffff68p-1,
- 0x1.ffff70p-1,
- 0x1.ffff78p-1,
- 0x1.ffff7ep-1,
- 0x1.ffff84p-1,
- 0x1.ffff8cp-1,
- 0x1.ffff92p-1,
- 0x1.ffff98p-1,
- 0x1.ffff9cp-1,
- 0x1.ffffa2p-1,
- 0x1.ffffa6p-1,
- 0x1.ffffacp-1,
- 0x1.ffffb0p-1,
- 0x1.ffffb4p-1,
- 0x1.ffffb8p-1,
- 0x1.ffffbcp-1,
- 0x1.ffffc0p-1,
- 0x1.ffffc4p-1,
- 0x1.ffffc6p-1,
- 0x1.ffffcap-1,
- 0x1.ffffccp-1,
- 0x1.ffffd0p-1,
- 0x1.ffffd2p-1,
- 0x1.ffffd4p-1,
- 0x1.ffffd6p-1,
- 0x1.ffffd8p-1,
- 0x1.ffffdcp-1,
- 0x1.ffffdep-1,
- 0x1.ffffdep-1,
- 0x1.ffffe0p-1,
- 0x1.ffffe2p-1,
- 0x1.ffffe4p-1,
- 0x1.ffffe6p-1,
- 0x1.ffffe8p-1,
- 0x1.ffffe8p-1,
- 0x1.ffffeap-1,
- 0x1.ffffeap-1,
- 0x1.ffffecp-1,
- 0x1.ffffeep-1,
- 0x1.ffffeep-1,
- 0x1.fffff0p-1,
- 0x1.fffff0p-1,
- 0x1.fffff2p-1,
- 0x1.fffff2p-1,
- 0x1.fffff2p-1,
- 0x1.fffff4p-1,
- 0x1.fffff4p-1,
- 0x1.fffff4p-1,
- 0x1.fffff6p-1,
- 0x1.fffff6p-1,
- 0x1.fffff6p-1,
- 0x1.fffff8p-1,
- 0x1.fffff8p-1,
- 0x1.fffff8p-1,
- 0x1.fffff8p-1,
- 0x1.fffffap-1,
- 0x1.fffffap-1,
- 0x1.fffffap-1,
- 0x1.fffffap-1,
- 0x1.fffffap-1,
- 0x1.fffffap-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffcp-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.fffffep-1,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- 0x1.000000p+0,
- },
- .scale = { 0x1.20dd76p+0,
- 0x1.20d8f2p+0,
- 0x1.20cb68p+0,
- 0x1.20b4d8p+0,
- 0x1.209546p+0,
- 0x1.206cb4p+0,
- 0x1.203b26p+0,
- 0x1.2000a0p+0,
- 0x1.1fbd28p+0,
- 0x1.1f70c4p+0,
- 0x1.1f1b7ap+0,
- 0x1.1ebd56p+0,
- 0x1.1e565cp+0,
- 0x1.1de698p+0,
- 0x1.1d6e14p+0,
- 0x1.1cecdcp+0,
- 0x1.1c62fap+0,
- 0x1.1bd07cp+0,
- 0x1.1b3572p+0,
- 0x1.1a91e6p+0,
- 0x1.19e5eap+0,
- 0x1.19318cp+0,
- 0x1.1874dep+0,
- 0x1.17aff0p+0,
- 0x1.16e2d8p+0,
- 0x1.160da4p+0,
- 0x1.153068p+0,
- 0x1.144b3cp+0,
- 0x1.135e30p+0,
- 0x1.12695ep+0,
- 0x1.116cd8p+0,
- 0x1.1068bap+0,
- 0x1.0f5d16p+0,
- 0x1.0e4a08p+0,
- 0x1.0d2fa6p+0,
- 0x1.0c0e0ap+0,
- 0x1.0ae550p+0,
- 0x1.09b590p+0,
- 0x1.087ee4p+0,
- 0x1.07416cp+0,
- 0x1.05fd3ep+0,
- 0x1.04b27cp+0,
- 0x1.036140p+0,
- 0x1.0209a6p+0,
- 0x1.00abd0p+0,
- 0x1.fe8fb0p-1,
- 0x1.fbbbbep-1,
- 0x1.f8dc0ap-1,
- 0x1.f5f0cep-1,
- 0x1.f2fa4cp-1,
- 0x1.eff8c4p-1,
- 0x1.ecec78p-1,
- 0x1.e9d5a8p-1,
- 0x1.e6b498p-1,
- 0x1.e38988p-1,
- 0x1.e054bep-1,
- 0x1.dd167cp-1,
- 0x1.d9cf06p-1,
- 0x1.d67ea2p-1,
- 0x1.d32592p-1,
- 0x1.cfc41ep-1,
- 0x1.cc5a8ap-1,
- 0x1.c8e91cp-1,
- 0x1.c5701ap-1,
- 0x1.c1efcap-1,
- 0x1.be6872p-1,
- 0x1.bada5ap-1,
- 0x1.b745c6p-1,
- 0x1.b3aafcp-1,
- 0x1.b00a46p-1,
- 0x1.ac63e8p-1,
- 0x1.a8b828p-1,
- 0x1.a5074ep-1,
- 0x1.a1519ep-1,
- 0x1.9d9762p-1,
- 0x1.99d8dap-1,
- 0x1.961650p-1,
- 0x1.925008p-1,
- 0x1.8e8646p-1,
- 0x1.8ab950p-1,
- 0x1.86e96ap-1,
- 0x1.8316d6p-1,
- 0x1.7f41dcp-1,
- 0x1.7b6abcp-1,
- 0x1.7791b8p-1,
- 0x1.73b714p-1,
- 0x1.6fdb12p-1,
- 0x1.6bfdf0p-1,
- 0x1.681ff2p-1,
- 0x1.644156p-1,
- 0x1.60625cp-1,
- 0x1.5c8342p-1,
- 0x1.58a446p-1,
- 0x1.54c5a6p-1,
- 0x1.50e79ep-1,
- 0x1.4d0a68p-1,
- 0x1.492e42p-1,
- 0x1.455366p-1,
- 0x1.417a0cp-1,
- 0x1.3da26ep-1,
- 0x1.39ccc2p-1,
- 0x1.35f940p-1,
- 0x1.32281ep-1,
- 0x1.2e5992p-1,
- 0x1.2a8dcep-1,
- 0x1.26c508p-1,
- 0x1.22ff72p-1,
- 0x1.1f3d3cp-1,
- 0x1.1b7e98p-1,
- 0x1.17c3b6p-1,
- 0x1.140cc4p-1,
- 0x1.1059eep-1,
- 0x1.0cab62p-1,
- 0x1.09014cp-1,
- 0x1.055bd6p-1,
- 0x1.01bb2cp-1,
- 0x1.fc3ee6p-2,
- 0x1.f511aap-2,
- 0x1.edeeeep-2,
- 0x1.e6d700p-2,
- 0x1.dfca26p-2,
- 0x1.d8c8aap-2,
- 0x1.d1d2d0p-2,
- 0x1.cae8dap-2,
- 0x1.c40b08p-2,
- 0x1.bd3998p-2,
- 0x1.b674c8p-2,
- 0x1.afbcd4p-2,
- 0x1.a911f0p-2,
- 0x1.a27456p-2,
- 0x1.9be438p-2,
- 0x1.9561c8p-2,
- 0x1.8eed36p-2,
- 0x1.8886b2p-2,
- 0x1.822e66p-2,
- 0x1.7be47ap-2,
- 0x1.75a91ap-2,
- 0x1.6f7c6ap-2,
- 0x1.695e8cp-2,
- 0x1.634fa6p-2,
- 0x1.5d4fd4p-2,
- 0x1.575f34p-2,
- 0x1.517de6p-2,
- 0x1.4bac00p-2,
- 0x1.45e99cp-2,
- 0x1.4036d0p-2,
- 0x1.3a93b2p-2,
- 0x1.350052p-2,
- 0x1.2f7cc4p-2,
- 0x1.2a0916p-2,
- 0x1.24a554p-2,
- 0x1.1f518ap-2,
- 0x1.1a0dc6p-2,
- 0x1.14da0ap-2,
- 0x1.0fb662p-2,
- 0x1.0aa2d0p-2,
- 0x1.059f5ap-2,
- 0x1.00ac00p-2,
- 0x1.f79184p-3,
- 0x1.edeb40p-3,
- 0x1.e46530p-3,
- 0x1.daff4ap-3,
- 0x1.d1b982p-3,
- 0x1.c893cep-3,
- 0x1.bf8e1cp-3,
- 0x1.b6a856p-3,
- 0x1.ade26cp-3,
- 0x1.a53c42p-3,
- 0x1.9cb5bep-3,
- 0x1.944ec2p-3,
- 0x1.8c0732p-3,
- 0x1.83deeap-3,
- 0x1.7bd5c8p-3,
- 0x1.73eba4p-3,
- 0x1.6c2056p-3,
- 0x1.6473b6p-3,
- 0x1.5ce596p-3,
- 0x1.5575c8p-3,
- 0x1.4e241ep-3,
- 0x1.46f066p-3,
- 0x1.3fda6cp-3,
- 0x1.38e1fap-3,
- 0x1.3206dcp-3,
- 0x1.2b48dap-3,
- 0x1.24a7b8p-3,
- 0x1.1e233ep-3,
- 0x1.17bb2cp-3,
- 0x1.116f48p-3,
- 0x1.0b3f52p-3,
- 0x1.052b0cp-3,
- 0x1.fe6460p-4,
- 0x1.f2a902p-4,
- 0x1.e72372p-4,
- 0x1.dbd32ap-4,
- 0x1.d0b7a0p-4,
- 0x1.c5d04ap-4,
- 0x1.bb1c98p-4,
- 0x1.b09bfcp-4,
- 0x1.a64de6p-4,
- 0x1.9c31c6p-4,
- 0x1.92470ap-4,
- 0x1.888d1ep-4,
- 0x1.7f036cp-4,
- 0x1.75a960p-4,
- 0x1.6c7e64p-4,
- 0x1.6381e2p-4,
- 0x1.5ab342p-4,
- 0x1.5211ecp-4,
- 0x1.499d48p-4,
- 0x1.4154bcp-4,
- 0x1.3937b2p-4,
- 0x1.31458ep-4,
- 0x1.297dbap-4,
- 0x1.21df9ap-4,
- 0x1.1a6a96p-4,
- 0x1.131e14p-4,
- 0x1.0bf97ep-4,
- 0x1.04fc3ap-4,
- 0x1.fc4b5ep-5,
- 0x1.eeea8cp-5,
- 0x1.e1d4d0p-5,
- 0x1.d508fap-5,
- 0x1.c885e0p-5,
- 0x1.bc4a54p-5,
- 0x1.b05530p-5,
- 0x1.a4a54ap-5,
- 0x1.99397ap-5,
- 0x1.8e109cp-5,
- 0x1.83298ep-5,
- 0x1.78832cp-5,
- 0x1.6e1c58p-5,
- 0x1.63f3f6p-5,
- 0x1.5a08e8p-5,
- 0x1.505a18p-5,
- 0x1.46e66cp-5,
- 0x1.3dacd2p-5,
- 0x1.34ac36p-5,
- 0x1.2be38cp-5,
- 0x1.2351c2p-5,
- 0x1.1af5d2p-5,
- 0x1.12ceb4p-5,
- 0x1.0adb60p-5,
- 0x1.031ad6p-5,
- 0x1.f7182ap-6,
- 0x1.e85c44p-6,
- 0x1.da0006p-6,
- 0x1.cc0180p-6,
- 0x1.be5ecep-6,
- 0x1.b1160ap-6,
- 0x1.a4255ap-6,
- 0x1.978ae8p-6,
- 0x1.8b44e6p-6,
- 0x1.7f5188p-6,
- 0x1.73af0cp-6,
- 0x1.685bb6p-6,
- 0x1.5d55ccp-6,
- 0x1.529b9ep-6,
- 0x1.482b84p-6,
- 0x1.3e03d8p-6,
- 0x1.3422fep-6,
- 0x1.2a875cp-6,
- 0x1.212f62p-6,
- 0x1.181984p-6,
- 0x1.0f443ep-6,
- 0x1.06ae14p-6,
- 0x1.fcab14p-7,
- 0x1.ec7262p-7,
- 0x1.dcaf36p-7,
- 0x1.cd5ecap-7,
- 0x1.be7e5ap-7,
- 0x1.b00b38p-7,
- 0x1.a202bep-7,
- 0x1.94624ep-7,
- 0x1.87275ep-7,
- 0x1.7a4f6ap-7,
- 0x1.6dd7fep-7,
- 0x1.61beaep-7,
- 0x1.56011cp-7,
- 0x1.4a9cf6p-7,
- 0x1.3f8ff6p-7,
- 0x1.34d7dcp-7,
- 0x1.2a727ap-7,
- 0x1.205dacp-7,
- 0x1.169756p-7,
- 0x1.0d1d6ap-7,
- 0x1.03ede2p-7,
- 0x1.f60d8ap-8,
- 0x1.e4cc4ap-8,
- 0x1.d4143ap-8,
- 0x1.c3e1a6p-8,
- 0x1.b430ecp-8,
- 0x1.a4fe84p-8,
- 0x1.9646f4p-8,
- 0x1.8806d8p-8,
- 0x1.7a3adep-8,
- 0x1.6cdfccp-8,
- 0x1.5ff276p-8,
- 0x1.536fc2p-8,
- 0x1.4754acp-8,
- 0x1.3b9e40p-8,
- 0x1.30499cp-8,
- 0x1.2553eep-8,
- 0x1.1aba78p-8,
- 0x1.107a8cp-8,
- 0x1.06918cp-8,
- 0x1.f9f9d0p-9,
- 0x1.e77448p-9,
- 0x1.d58da6p-9,
- 0x1.c4412cp-9,
- 0x1.b38a3ap-9,
- 0x1.a36454p-9,
- 0x1.93cb12p-9,
- 0x1.84ba30p-9,
- 0x1.762d84p-9,
- 0x1.682100p-9,
- 0x1.5a90b0p-9,
- 0x1.4d78bcp-9,
- 0x1.40d564p-9,
- 0x1.34a306p-9,
- 0x1.28de12p-9,
- 0x1.1d8318p-9,
- 0x1.128ebap-9,
- 0x1.07fdb4p-9,
- 0x1.fb99b8p-10,
- 0x1.e7f232p-10,
- 0x1.d4fed8p-10,
- 0x1.c2b9d0p-10,
- 0x1.b11d70p-10,
- 0x1.a02436p-10,
- 0x1.8fc8c8p-10,
- 0x1.8005f0p-10,
- 0x1.70d6a4p-10,
- 0x1.6235fcp-10,
- 0x1.541f34p-10,
- 0x1.468daep-10,
- 0x1.397ceep-10,
- 0x1.2ce898p-10,
- 0x1.20cc76p-10,
- 0x1.15246ep-10,
- 0x1.09ec86p-10,
- 0x1.fe41cep-11,
- 0x1.e97ba4p-11,
- 0x1.d57f52p-11,
- 0x1.c245d4p-11,
- 0x1.afc85ep-11,
- 0x1.9e0058p-11,
- 0x1.8ce75ep-11,
- 0x1.7c7744p-11,
- 0x1.6caa0ep-11,
- 0x1.5d79ecp-11,
- 0x1.4ee142p-11,
- 0x1.40daa4p-11,
- 0x1.3360ccp-11,
- 0x1.266ea8p-11,
- 0x1.19ff46p-11,
- 0x1.0e0de8p-11,
- 0x1.0295f0p-11,
- 0x1.ef25d4p-12,
- 0x1.da0110p-12,
- 0x1.c5b542p-12,
- 0x1.b23a5ap-12,
- 0x1.9f8894p-12,
- 0x1.8d986ap-12,
- 0x1.7c629ap-12,
- 0x1.6be022p-12,
- 0x1.5c0a38p-12,
- 0x1.4cda54p-12,
- 0x1.3e4a24p-12,
- 0x1.305390p-12,
- 0x1.22f0b4p-12,
- 0x1.161be4p-12,
- 0x1.09cfa4p-12,
- 0x1.fc0d56p-13,
- 0x1.e577bcp-13,
- 0x1.cfd4a6p-13,
- 0x1.bb1a96p-13,
- 0x1.a74068p-13,
- 0x1.943d4ap-13,
- 0x1.8208bcp-13,
- 0x1.709a8ep-13,
- 0x1.5feadap-13,
- 0x1.4ff208p-13,
- 0x1.40a8c2p-13,
- 0x1.3207fcp-13,
- 0x1.2408eap-13,
- 0x1.16a502p-13,
- 0x1.09d5f8p-13,
- 0x1.fb2b7ap-14,
- 0x1.e3bcf4p-14,
- 0x1.cd5528p-14,
- 0x1.b7e946p-14,
- 0x1.a36eecp-14,
- 0x1.8fdc1cp-14,
- 0x1.7d2738p-14,
- 0x1.6b4702p-14,
- 0x1.5a329cp-14,
- 0x1.49e178p-14,
- 0x1.3a4b60p-14,
- 0x1.2b6876p-14,
- 0x1.1d3120p-14,
- 0x1.0f9e1cp-14,
- 0x1.02a868p-14,
- 0x1.ec929ap-15,
- 0x1.d4f4b4p-15,
- 0x1.be6abcp-15,
- 0x1.a8e8ccp-15,
- 0x1.94637ep-15,
- 0x1.80cfdcp-15,
- 0x1.6e2368p-15,
- 0x1.5c540cp-15,
- 0x1.4b581cp-15,
- 0x1.3b2652p-15,
- 0x1.2bb5ccp-15,
- 0x1.1cfe02p-15,
- 0x1.0ef6c4p-15,
- 0x1.019842p-15,
- 0x1.e9b5e8p-16,
- 0x1.d16f58p-16,
- 0x1.ba4f04p-16,
- 0x1.a447b8p-16,
- 0x1.8f4cccp-16,
- 0x1.7b5224p-16,
- 0x1.684c22p-16,
- 0x1.562facp-16,
- 0x1.44f21ep-16,
- 0x1.34894ap-16,
- 0x1.24eb72p-16,
- 0x1.160f44p-16,
- 0x1.07ebd2p-16,
- 0x1.f4f12ep-17,
- 0x1.db5ad0p-17,
- 0x1.c304f0p-17,
- 0x1.abe09ep-17,
- 0x1.95df98p-17,
- 0x1.80f43ap-17,
- 0x1.6d1178p-17,
- 0x1.5a2ae0p-17,
- 0x1.483488p-17,
- 0x1.372310p-17,
- 0x1.26eb9ep-17,
- 0x1.1783cep-17,
- 0x1.08e1bap-17,
- 0x1.f5f7d8p-18,
- 0x1.db92b6p-18,
- 0x1.c282cep-18,
- 0x1.aab7acp-18,
- 0x1.94219cp-18,
- 0x1.7eb1a2p-18,
- 0x1.6a5972p-18,
- 0x1.570b6ap-18,
- 0x1.44ba86p-18,
- 0x1.335a62p-18,
- 0x1.22df2ap-18,
- 0x1.133d96p-18,
- 0x1.046aeap-18,
- 0x1.ecb9d0p-19,
- 0x1.d21398p-19,
- 0x1.b8d094p-19,
- 0x1.a0df10p-19,
- 0x1.8a2e26p-19,
- 0x1.74adc8p-19,
- 0x1.604ea8p-19,
- 0x1.4d0232p-19,
- 0x1.3aba86p-19,
- 0x1.296a70p-19,
- 0x1.190562p-19,
- 0x1.097f62p-19,
- 0x1.f59a20p-20,
- 0x1.d9c736p-20,
- 0x1.bf716cp-20,
- 0x1.a6852cp-20,
- 0x1.8eefd8p-20,
- 0x1.789fb8p-20,
- 0x1.6383f8p-20,
- 0x1.4f8c96p-20,
- 0x1.3caa62p-20,
- 0x1.2acee2p-20,
- 0x1.19ec60p-20,
- 0x1.09f5d0p-20,
- 0x1.f5bd96p-21,
- 0x1.d9371ep-21,
- 0x1.be41dep-21,
- 0x1.a4c89ep-21,
- 0x1.8cb738p-21,
- 0x1.75fa8ep-21,
- 0x1.608078p-21,
- 0x1.4c37c0p-21,
- 0x1.39100ep-21,
- 0x1.26f9e0p-21,
- 0x1.15e682p-21,
- 0x1.05c804p-21,
- 0x1.ed2254p-22,
- 0x1.d06ad6p-22,
- 0x1.b551c8p-22,
- 0x1.9bc0a0p-22,
- 0x1.83a200p-22,
- 0x1.6ce1aap-22,
- 0x1.576c72p-22,
- 0x1.43302cp-22,
- 0x1.301ba2p-22,
- 0x1.1e1e86p-22,
- 0x1.0d2966p-22,
- 0x1.fa5b50p-23,
- 0x1.dc3ae4p-23,
- 0x1.bfd756p-23,
- 0x1.a517dap-23,
- 0x1.8be4f8p-23,
- 0x1.74287ep-23,
- 0x1.5dcd66p-23,
- 0x1.48bfd4p-23,
- 0x1.34ecf8p-23,
- 0x1.224310p-23,
- 0x1.10b148p-23,
- },
-};
diff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h
index 23963b5..e2d2e90 100644
--- a/sysdeps/aarch64/fpu/sv_expf_inline.h
+++ b/sysdeps/aarch64/fpu/sv_expf_inline.h
@@ -1,6 +1,6 @@
/* SVE helper for single-precision routines which depend on exp
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,52 +24,41 @@
struct sv_expf_data
{
- float poly[5];
- float inv_ln2, ln2_hi, ln2_lo, shift;
+ float ln2_hi, ln2_lo, c1, null;
+ float inv_ln2, shift;
};
-/* Coefficients copied from the polynomial in AdvSIMD variant, reversed for
- compatibility with polynomial helpers. Shift is 1.5*2^17 + 127. */
+/* Shift is 1.5*2^17 + 127. */
#define SV_EXPF_DATA \
{ \
- .poly = { 0x1.ffffecp-1f, 0x1.fffdb6p-2f, 0x1.555e66p-3f, 0x1.573e2ep-5f, \
- 0x1.0e4020p-7f }, \
- \
- .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \
+ .c1 = 0.5f, .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \
.ln2_lo = 0x1.7f7d1cp-20f, .shift = 0x1.803f8p17f, \
}
-#define C(i) sv_f32 (d->poly[i])
-
static inline svfloat32_t
expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d)
{
/* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
x = ln2*n + r, with r in [-ln2/2, ln2/2]. */
- /* Load some constants in quad-word chunks to minimise memory access. */
- svfloat32_t c4_invln2_and_ln2 = svld1rq (svptrue_b32 (), &d->poly[4]);
+ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->ln2_hi);
/* n = round(x/(ln2/N)). */
- svfloat32_t z = svmla_lane (sv_f32 (d->shift), x, c4_invln2_and_ln2, 1);
+ svfloat32_t z = svmad_x (pg, sv_f32 (d->inv_ln2), x, d->shift);
svfloat32_t n = svsub_x (pg, z, d->shift);
/* r = x - n*ln2/N. */
- svfloat32_t r = svmls_lane (x, n, c4_invln2_and_ln2, 2);
- r = svmls_lane (r, n, c4_invln2_and_ln2, 3);
+ svfloat32_t r = x;
+ r = svmls_lane (r, n, lane_consts, 0);
+ r = svmls_lane (r, n, lane_consts, 1);
/* scale = 2^(n/N). */
- svfloat32_t scale = svexpa (svreinterpret_u32_f32 (z));
+ svfloat32_t scale = svexpa (svreinterpret_u32 (z));
- /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */
- svfloat32_t p12 = svmla_x (pg, C (1), C (2), r);
- svfloat32_t p34 = svmla_lane (C (3), r, c4_invln2_and_ln2, 0);
- svfloat32_t r2 = svmul_f32_x (pg, r, r);
- svfloat32_t p14 = svmla_x (pg, p12, p34, r2);
- svfloat32_t p0 = svmul_f32_x (pg, r, C (0));
- svfloat32_t poly = svmla_x (pg, p0, r2, p14);
+ /* poly(r) = exp(r) - 1 ~= r + 0.5 r^2. */
+ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r);
+ svfloat32_t poly = svmla_lane (r, r2, lane_consts, 2);
return svmla_x (pg, scale, scale, poly);
}
-
#endif
diff --git a/sysdeps/aarch64/fpu/sv_expm1f_inline.h b/sysdeps/aarch64/fpu/sv_expm1f_inline.h
index 5b72451..ef2b8ea 100644
--- a/sysdeps/aarch64/fpu/sv_expm1f_inline.h
+++ b/sysdeps/aarch64/fpu/sv_expm1f_inline.h
@@ -1,6 +1,6 @@
/* Single-precision inline helper for vector (SVE) expm1 function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,21 +27,18 @@ struct sv_expm1f_data
/* These 4 are grouped together so they can be loaded as one quadword, then
used with _lane forms of svmla/svmls. */
float32_t c2, c4, ln2_hi, ln2_lo;
- float32_t c0, c1, c3, inv_ln2, shift;
+ float c0, inv_ln2, c1, c3, special_bound;
};
/* Coefficients generated using fpminimax. */
#define SV_EXPM1F_DATA \
{ \
- .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, .c2 = 0x1.555736p-5, \
- .c3 = 0x1.12287cp-7, .c4 = 0x1.6b55a2p-10, \
+ .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, .inv_ln2 = 0x1.715476p+0f, \
+ .c2 = 0x1.555736p-5, .c3 = 0x1.12287cp-7, \
\
- .shift = 0x1.8p23f, .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \
- .ln2_lo = 0x1.7f7d1cp-20f, \
+ .c4 = 0x1.6b55a2p-10, .ln2_lo = 0x1.7f7d1cp-20f, .ln2_hi = 0x1.62e4p-1f, \
}
-#define C(i) sv_f32 (d->c##i)
-
static inline svfloat32_t
expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d)
{
@@ -55,9 +52,8 @@ expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d)
and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
where 2^i is exact because i is an integer. */
- svfloat32_t j = svmla_x (pg, sv_f32 (d->shift), x, d->inv_ln2);
- j = svsub_x (pg, j, d->shift);
- svint32_t i = svcvt_s32_x (pg, j);
+ svfloat32_t j = svmul_x (svptrue_b32 (), x, d->inv_ln2);
+ j = svrinta_x (pg, j);
svfloat32_t f = svmls_lane (x, j, lane_constants, 2);
f = svmls_lane (f, j, lane_constants, 3);
@@ -67,18 +63,18 @@ expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d)
x + ax^2 + bx^3 + cx^4 ....
So we calculate the polynomial P(f) = a + bf + cf^2 + ...
and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
- svfloat32_t p12 = svmla_lane (C (1), f, lane_constants, 0);
- svfloat32_t p34 = svmla_lane (C (3), f, lane_constants, 1);
- svfloat32_t f2 = svmul_x (pg, f, f);
+ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), f, lane_constants, 0);
+ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), f, lane_constants, 1);
+ svfloat32_t f2 = svmul_x (svptrue_b32 (), f, f);
svfloat32_t p = svmla_x (pg, p12, f2, p34);
- p = svmla_x (pg, C (0), f, p);
+ p = svmla_x (pg, sv_f32 (d->c0), f, p);
p = svmla_x (pg, f, f2, p);
/* Assemble the result.
expm1(x) ~= 2^i * (p + 1) - 1
Let t = 2^i. */
- svfloat32_t t = svscale_x (pg, sv_f32 (1), i);
- return svmla_x (pg, svsub_x (pg, t, 1), p, t);
+ svfloat32_t t = svscale_x (pg, sv_f32 (1.0f), svcvt_s32_x (pg, j));
+ return svmla_x (pg, svsub_x (pg, t, 1.0f), p, t);
}
#endif
diff --git a/sysdeps/aarch64/fpu/sv_log1p_inline.h b/sysdeps/aarch64/fpu/sv_log1p_inline.h
index da01967..c2b196f 100644
--- a/sysdeps/aarch64/fpu/sv_log1p_inline.h
+++ b/sysdeps/aarch64/fpu/sv_log1p_inline.h
@@ -1,6 +1,6 @@
/* Helper for double-precision SVE routines which depend on log1p
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,11 +21,12 @@
#define AARCH64_FPU_SV_LOG1P_INLINE_H
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct sv_log1p_data
{
- double poly[19], ln2[2];
+ double c0, c2, c4, c6, c8, c10, c12, c14, c16;
+ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c18;
+ double ln2_lo, ln2_hi;
uint64_t hf_rt2_top;
uint64_t one_m_hf_rt2_top;
uint32_t bottom_mask;
@@ -33,15 +34,30 @@ static const struct sv_log1p_data
} sv_log1p_data = {
/* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1].
*/
- .poly = { -0x1.ffffffffffffbp-2, 0x1.55555555551a9p-2, -0x1.00000000008e3p-2,
- 0x1.9999999a32797p-3, -0x1.555555552fecfp-3, 0x1.249248e071e5ap-3,
- -0x1.ffffff8bf8482p-4, 0x1.c71c8f07da57ap-4, -0x1.9999ca4ccb617p-4,
- 0x1.7459ad2e1dfa3p-4, -0x1.554d2680a3ff2p-4, 0x1.3b4c54d487455p-4,
- -0x1.2548a9ffe80e6p-4, 0x1.0f389a24b2e07p-4, -0x1.eee4db15db335p-5,
- 0x1.e95b494d4a5ddp-5, -0x1.15fdf07cb7c73p-4, 0x1.0310b70800fcfp-4,
- -0x1.cfa7385bdb37ep-6 },
- .ln2 = { 0x1.62e42fefa3800p-1, 0x1.ef35793c76730p-45 },
+ .c0 = -0x1.ffffffffffffbp-2,
+ .c1 = 0x1.55555555551a9p-2,
+ .c2 = -0x1.00000000008e3p-2,
+ .c3 = 0x1.9999999a32797p-3,
+ .c4 = -0x1.555555552fecfp-3,
+ .c5 = 0x1.249248e071e5ap-3,
+ .c6 = -0x1.ffffff8bf8482p-4,
+ .c7 = 0x1.c71c8f07da57ap-4,
+ .c8 = -0x1.9999ca4ccb617p-4,
+ .c9 = 0x1.7459ad2e1dfa3p-4,
+ .c10 = -0x1.554d2680a3ff2p-4,
+ .c11 = 0x1.3b4c54d487455p-4,
+ .c12 = -0x1.2548a9ffe80e6p-4,
+ .c13 = 0x1.0f389a24b2e07p-4,
+ .c14 = -0x1.eee4db15db335p-5,
+ .c15 = 0x1.e95b494d4a5ddp-5,
+ .c16 = -0x1.15fdf07cb7c73p-4,
+ .c17 = 0x1.0310b70800fcfp-4,
+ .c18 = -0x1.cfa7385bdb37ep-6,
+ .ln2_lo = 0x1.62e42fefa3800p-1,
+ .ln2_hi = 0x1.ef35793c76730p-45,
+ /* top32(asuint64(sqrt(2)/2)) << 32. */
.hf_rt2_top = 0x3fe6a09e00000000,
+ /* (top32(asuint64(1)) - top32(asuint64(sqrt(2)/2))) << 32. */
.one_m_hf_rt2_top = 0x00095f6200000000,
.bottom_mask = 0xffffffff,
.one_top = 0x3ff
@@ -51,14 +67,14 @@ static inline svfloat64_t
sv_log1p_inline (svfloat64_t x, const svbool_t pg)
{
/* Helper for calculating log(x + 1). Adapted from v_log1p_inline.h, which
- differs from v_log1p_2u5.c by:
+ differs from advsimd/log1p.c by:
- No special-case handling - this should be dealt with by the caller.
- Pairwise Horner polynomial evaluation for improved accuracy.
- Optionally simulate the shortcut for k=0, used in the scalar routine,
using svsel, for improved accuracy when the argument to log1p is close
to 0. This feature is enabled by defining WANT_SV_LOG1P_K0_SHORTCUT as 1
in the source of the caller before including this file.
- See sv_log1p_2u1.c for details of the algorithm. */
+ See sve/log1p.c for details of the algorithm. */
const struct sv_log1p_data *d = ptr_barrier (&sv_log1p_data);
svfloat64_t m = svadd_x (pg, x, 1);
svuint64_t mi = svreinterpret_u64 (m);
@@ -79,7 +95,7 @@ sv_log1p_inline (svfloat64_t x, const svbool_t pg)
svfloat64_t cm;
#ifndef WANT_SV_LOG1P_K0_SHORTCUT
-#error \
+#error \
"Cannot use sv_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0"
#elif WANT_SV_LOG1P_K0_SHORTCUT
/* Shortcut if k is 0 - set correction term to 0 and f to x. The result is
@@ -96,14 +112,46 @@ sv_log1p_inline (svfloat64_t x, const svbool_t pg)
#endif
/* Approximate log1p(f) on the reduced input using a polynomial. */
- svfloat64_t f2 = svmul_x (pg, f, f);
- svfloat64_t p = sv_pw_horner_18_f64_x (pg, f, f2, d->poly);
+ svfloat64_t f2 = svmul_x (svptrue_b64 (), f, f),
+ f4 = svmul_x (svptrue_b64 (), f2, f2),
+ f8 = svmul_x (svptrue_b64 (), f4, f4),
+ f16 = svmul_x (svptrue_b64 (), f8, f8);
+
+ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1);
+ svfloat64_t c57 = svld1rq (svptrue_b64 (), &d->c5);
+ svfloat64_t c911 = svld1rq (svptrue_b64 (), &d->c9);
+ svfloat64_t c1315 = svld1rq (svptrue_b64 (), &d->c13);
+ svfloat64_t c1718 = svld1rq (svptrue_b64 (), &d->c17);
+
+ /* Order-18 Estrin scheme. */
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), f, c13, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), f, c13, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), f, c57, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), f, c57, 1);
+
+ svfloat64_t p03 = svmla_x (pg, p01, f2, p23);
+ svfloat64_t p47 = svmla_x (pg, p45, f2, p67);
+ svfloat64_t p07 = svmla_x (pg, p03, f4, p47);
+
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), f, c911, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), f, c911, 1);
+ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), f, c1315, 0);
+ svfloat64_t p1415 = svmla_lane (sv_f64 (d->c14), f, c1315, 1);
+
+ svfloat64_t p811 = svmla_x (pg, p89, f2, p1011);
+ svfloat64_t p1215 = svmla_x (pg, p1213, f2, p1415);
+ svfloat64_t p815 = svmla_x (pg, p811, f4, p1215);
+
+ svfloat64_t p015 = svmla_x (pg, p07, f8, p815);
+ svfloat64_t p1617 = svmla_lane (sv_f64 (d->c16), f, c1718, 0);
+ svfloat64_t p1618 = svmla_lane (p1617, f2, c1718, 1);
+ svfloat64_t p = svmla_x (pg, p015, f16, p1618);
/* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */
- svfloat64_t ylo = svmla_x (pg, cm, k, d->ln2[0]);
- svfloat64_t yhi = svmla_x (pg, f, k, d->ln2[1]);
+ svfloat64_t ln2_lo_hi = svld1rq (svptrue_b64 (), &d->ln2_lo);
+ svfloat64_t ylo = svmla_lane (cm, k, ln2_lo_hi, 0);
+ svfloat64_t yhi = svmla_lane (f, k, ln2_lo_hi, 1);
- return svmla_x (pg, svadd_x (pg, ylo, yhi), f2, p);
+ return svmad_x (pg, p, f2, svadd_x (pg, ylo, yhi));
}
-
#endif
diff --git a/sysdeps/aarch64/fpu/sv_log1pf_inline.h b/sysdeps/aarch64/fpu/sv_log1pf_inline.h
index b94b2da..59cbf6c 100644
--- a/sysdeps/aarch64/fpu/sv_log1pf_inline.h
+++ b/sysdeps/aarch64/fpu/sv_log1pf_inline.h
@@ -1,6 +1,6 @@
/* Helper for single-precision SVE routines which depend on log1p
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,55 +22,76 @@
#include "sv_math.h"
#include "vecmath_config.h"
-#include "poly_sve_f32.h"
+
+#define SignExponentMask 0xff800000
static const struct sv_log1pf_data
{
- float32_t poly[9];
- float32_t ln2;
- float32_t scale_back;
+ float c0, c2, c4, c6;
+ float c1, c3, c5, c7;
+ float ln2, exp_bias, quarter;
+ uint32_t four, three_quarters;
} sv_log1pf_data = {
- /* Polynomial generated using FPMinimax in [-0.25, 0.5]. */
- .poly = { -0x1p-1f, 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f,
- -0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, 0x1.abcb6p-4f,
- -0x1.6f0d5ep-5f },
- .scale_back = 0x1.0p-23f,
- .ln2 = 0x1.62e43p-1f,
+ /* Do not store first term of polynomial, which is -0.5, as
+ this can be fmov-ed directly instead of including it in
+ the main load-and-mla polynomial schedule. */
+ .c0 = 0x1.5555aap-2f, .c1 = -0x1.000038p-2f, .c2 = 0x1.99675cp-3f,
+ .c3 = -0x1.54ef78p-3f, .c4 = 0x1.28a1f4p-3f, .c5 = -0x1.0da91p-3f,
+ .c6 = 0x1.abcb6p-4f, .c7 = -0x1.6f0d5ep-5f, .ln2 = 0x1.62e43p-1f,
+ .exp_bias = 0x1p-23f, .quarter = 0x1p-2f, .four = 0x40800000,
+ .three_quarters = 0x3f400000,
};
static inline svfloat32_t
-eval_poly (svfloat32_t m, const float32_t *c, svbool_t pg)
-{
- svfloat32_t p_12 = svmla_x (pg, sv_f32 (c[0]), m, sv_f32 (c[1]));
- svfloat32_t m2 = svmul_x (pg, m, m);
- svfloat32_t q = svmla_x (pg, m, m2, p_12);
- svfloat32_t p = sv_pw_horner_6_f32_x (pg, m, m2, c + 2);
- p = svmul_x (pg, m2, p);
-
- return svmla_x (pg, q, m2, p);
-}
-
-static inline svfloat32_t
sv_log1pf_inline (svfloat32_t x, svbool_t pg)
{
const struct sv_log1pf_data *d = ptr_barrier (&sv_log1pf_data);
- svfloat32_t m = svadd_x (pg, x, 1.0f);
-
- svint32_t ks = svsub_x (pg, svreinterpret_s32 (m),
- svreinterpret_s32 (svdup_f32 (0.75f)));
- ks = svand_x (pg, ks, 0xff800000);
- svuint32_t k = svreinterpret_u32 (ks);
- svfloat32_t s = svreinterpret_f32 (
- svsub_x (pg, svreinterpret_u32 (svdup_f32 (4.0f)), k));
-
- svfloat32_t m_scale
- = svreinterpret_f32 (svsub_x (pg, svreinterpret_u32 (x), k));
- m_scale
- = svadd_x (pg, m_scale, svmla_x (pg, sv_f32 (-1.0f), sv_f32 (0.25f), s));
- svfloat32_t p = eval_poly (m_scale, d->poly, pg);
- svfloat32_t scale_back = svmul_x (pg, svcvt_f32_x (pg, k), d->scale_back);
- return svmla_x (pg, p, scale_back, d->ln2);
+ /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
+ is in [-0.25, 0.5]):
+ log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
+
+ We approximate log1p(m) with a polynomial, then scale by
+ k*log(2). Instead of doing this directly, we use an intermediate
+ scale factor s = 4*k*log(2) to ensure the scale is representable
+ as a normalised fp32 number. */
+ svfloat32_t m = svadd_x (pg, x, 1);
+
+ /* Choose k to scale x to the range [-1/4, 1/2]. */
+ svint32_t k
+ = svand_x (pg, svsub_x (pg, svreinterpret_s32 (m), d->three_quarters),
+ sv_s32 (SignExponentMask));
+
+ /* Scale x by exponent manipulation. */
+ svfloat32_t m_scale = svreinterpret_f32 (
+ svsub_x (pg, svreinterpret_u32 (x), svreinterpret_u32 (k)));
+
+ /* Scale up to ensure that the scale factor is representable as normalised
+ fp32 number, and scale m down accordingly. */
+ svfloat32_t s = svreinterpret_f32 (svsubr_x (pg, k, d->four));
+ svfloat32_t fconst = svld1rq_f32 (svptrue_b32 (), &d->ln2);
+ m_scale = svadd_x (pg, m_scale, svmla_lane_f32 (sv_f32 (-1), s, fconst, 2));
+
+ /* Evaluate polynomial on reduced interval. */
+ svfloat32_t ms2 = svmul_x (svptrue_b32 (), m_scale, m_scale);
+
+ svfloat32_t c1357 = svld1rq_f32 (svptrue_b32 (), &d->c1);
+ svfloat32_t p01 = svmla_lane_f32 (sv_f32 (d->c0), m_scale, c1357, 0);
+ svfloat32_t p23 = svmla_lane_f32 (sv_f32 (d->c2), m_scale, c1357, 1);
+ svfloat32_t p45 = svmla_lane_f32 (sv_f32 (d->c4), m_scale, c1357, 2);
+ svfloat32_t p67 = svmla_lane_f32 (sv_f32 (d->c6), m_scale, c1357, 3);
+
+ svfloat32_t p = svmla_x (pg, p45, p67, ms2);
+ p = svmla_x (pg, p23, p, ms2);
+ p = svmla_x (pg, p01, p, ms2);
+
+ p = svmad_x (pg, m_scale, p, -0.5);
+ p = svmla_x (pg, m_scale, m_scale, svmul_x (pg, m_scale, p));
+
+ /* The scale factor to be applied back at the end - by multiplying float(k)
+ by 2^-23 we get the unbiased exponent of k. */
+ svfloat32_t scale_back = svmul_lane_f32 (svcvt_f32_x (pg, k), fconst, 1);
+ return svmla_lane_f32 (p, scale_back, fconst, 0);
}
#endif
diff --git a/sysdeps/aarch64/fpu/sv_math.h b/sysdeps/aarch64/fpu/sv_math.h
index 41a2013..3d576df 100644
--- a/sysdeps/aarch64/fpu/sv_math.h
+++ b/sysdeps/aarch64/fpu/sv_math.h
@@ -1,5 +1,5 @@
/* Utilities for SVE libmvec routines.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/tan_advsimd.c b/sysdeps/aarch64/fpu/tan_advsimd.c
index d56a102..825c975 100644
--- a/sysdeps/aarch64/fpu/tan_advsimd.c
+++ b/sysdeps/aarch64/fpu/tan_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) tan function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/tan_sve.c b/sysdeps/aarch64/fpu/tan_sve.c
index b2e4447..6cbd4f2 100644
--- a/sysdeps/aarch64/fpu/tan_sve.c
+++ b/sysdeps/aarch64/fpu/tan_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) tan function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,24 +22,38 @@
static const struct data
{
- double poly[9];
- double half_pi_hi, half_pi_lo, inv_half_pi, range_val, shift;
+ double c2, c4, c6, c8;
+ double poly_1357[4];
+ double c0, inv_half_pi;
+ double half_pi_hi, half_pi_lo, range_val;
} data = {
/* Polynomial generated with FPMinimax. */
- .poly = { 0x1.5555555555556p-2, 0x1.1111111110a63p-3, 0x1.ba1ba1bb46414p-5,
- 0x1.664f47e5b5445p-6, 0x1.226e5e5ecdfa3p-7, 0x1.d6c7ddbf87047p-9,
- 0x1.7ea75d05b583ep-10, 0x1.289f22964a03cp-11,
- 0x1.4e4fd14147622p-12, },
+ .c2 = 0x1.ba1ba1bb46414p-5,
+ .c4 = 0x1.226e5e5ecdfa3p-7,
+ .c6 = 0x1.7ea75d05b583ep-10,
+ .c8 = 0x1.4e4fd14147622p-12,
+ .poly_1357 = { 0x1.1111111110a63p-3, 0x1.664f47e5b5445p-6,
+ 0x1.d6c7ddbf87047p-9, 0x1.289f22964a03cp-11 },
+ .c0 = 0x1.5555555555556p-2,
+ .inv_half_pi = 0x1.45f306dc9c883p-1,
.half_pi_hi = 0x1.921fb54442d18p0,
.half_pi_lo = 0x1.1a62633145c07p-54,
- .inv_half_pi = 0x1.45f306dc9c883p-1,
.range_val = 0x1p23,
- .shift = 0x1.8p52,
};
static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
+special_case (svfloat64_t x, svfloat64_t p, svfloat64_t q, svbool_t pg,
+ svbool_t special)
{
+ svbool_t use_recip = svcmpeq (
+ pg, svand_x (pg, svreinterpret_u64 (svcvt_s64_x (pg, q)), 1), 0);
+
+ svfloat64_t n = svmad_x (pg, p, p, -1);
+ svfloat64_t d = svmul_x (svptrue_b64 (), p, 2);
+ svfloat64_t swap = n;
+ n = svneg_m (n, use_recip, d);
+ d = svsel (use_recip, swap, d);
+ svfloat64_t y = svdiv_x (svnot_z (pg, special), n, d);
return sv_call_f64 (tan, x, y, special);
}
@@ -50,15 +64,10 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
svfloat64_t SV_NAME_D1 (tan) (svfloat64_t x, svbool_t pg)
{
const struct data *dat = ptr_barrier (&data);
-
- /* Invert condition to catch NaNs and Infs as well as large values. */
- svbool_t special = svnot_z (pg, svaclt (pg, x, dat->range_val));
-
+ svfloat64_t half_pi_c0 = svld1rq (svptrue_b64 (), &dat->c0);
/* q = nearest integer to 2 * x / pi. */
- svfloat64_t shift = sv_f64 (dat->shift);
- svfloat64_t q = svmla_x (pg, shift, x, dat->inv_half_pi);
- q = svsub_x (pg, q, shift);
- svint64_t qi = svcvt_s64_x (pg, q);
+ svfloat64_t q = svmul_lane (x, half_pi_c0, 1);
+ q = svrinta_x (pg, q);
/* Use q to reduce x to r in [-pi/4, pi/4], by:
r = x - q * pi/2, in extended precision. */
@@ -68,7 +77,7 @@ svfloat64_t SV_NAME_D1 (tan) (svfloat64_t x, svbool_t pg)
r = svmls_lane (r, q, half_pi, 1);
/* Further reduce r to [-pi/8, pi/8], to be reconstructed using double angle
formula. */
- r = svmul_x (pg, r, 0.5);
+ r = svmul_x (svptrue_b64 (), r, 0.5);
/* Approximate tan(r) using order 8 polynomial.
tan(x) is odd, so polynomial has the form:
@@ -76,29 +85,51 @@ svfloat64_t SV_NAME_D1 (tan) (svfloat64_t x, svbool_t pg)
Hence we first approximate P(r) = C1 + C2 * r^2 + C3 * r^4 + ...
Then compute the approximation by:
tan(r) ~= r + r^3 * (C0 + r^2 * P(r)). */
- svfloat64_t r2 = svmul_x (pg, r, r);
- svfloat64_t r4 = svmul_x (pg, r2, r2);
- svfloat64_t r8 = svmul_x (pg, r4, r4);
+
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t r4 = svmul_x (svptrue_b64 (), r2, r2);
+ svfloat64_t r8 = svmul_x (svptrue_b64 (), r4, r4);
/* Use offset version coeff array by 1 to evaluate from C1 onwards. */
- svfloat64_t p = sv_estrin_7_f64_x (pg, r2, r4, r8, dat->poly + 1);
- p = svmad_x (pg, p, r2, dat->poly[0]);
- p = svmla_x (pg, r, r2, svmul_x (pg, p, r));
+ svfloat64_t C_24 = svld1rq (svptrue_b64 (), &dat->c2);
+ svfloat64_t C_68 = svld1rq (svptrue_b64 (), &dat->c6);
+
+ /* Use offset version coeff array by 1 to evaluate from C1 onwards. */
+ svfloat64_t p01 = svmla_lane (sv_f64 (dat->poly_1357[0]), r2, C_24, 0);
+ svfloat64_t p23 = svmla_lane_f64 (sv_f64 (dat->poly_1357[1]), r2, C_24, 1);
+ svfloat64_t p03 = svmla_x (pg, p01, p23, r4);
+
+ svfloat64_t p45 = svmla_lane (sv_f64 (dat->poly_1357[2]), r2, C_68, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (dat->poly_1357[3]), r2, C_68, 1);
+ svfloat64_t p47 = svmla_x (pg, p45, p67, r4);
+
+ svfloat64_t p = svmla_x (pg, p03, p47, r8);
+
+ svfloat64_t z = svmul_x (svptrue_b64 (), p, r);
+ z = svmul_x (svptrue_b64 (), r2, z);
+ z = svmla_lane (z, r, half_pi_c0, 0);
+ p = svmla_x (pg, r, r2, z);
/* Recombination uses double-angle formula:
tan(2x) = 2 * tan(x) / (1 - (tan(x))^2)
and reciprocity around pi/2:
tan(x) = 1 / (tan(pi/2 - x))
to assemble result using change-of-sign and conditional selection of
- numerator/denominator dependent on odd/even-ness of q (hence quadrant). */
- svbool_t use_recip
- = svcmpeq (pg, svand_x (pg, svreinterpret_u64 (qi), 1), 0);
+ numerator/denominator dependent on odd/even-ness of q (quadrant). */
+
+ /* Invert condition to catch NaNs and Infs as well as large values. */
+ svbool_t special = svnot_z (pg, svaclt (pg, x, dat->range_val));
+
+ if (__glibc_unlikely (svptest_any (pg, special)))
+ {
+ return special_case (x, p, q, pg, special);
+ }
+ svbool_t use_recip = svcmpeq (
+ pg, svand_x (pg, svreinterpret_u64 (svcvt_s64_x (pg, q)), 1), 0);
svfloat64_t n = svmad_x (pg, p, p, -1);
- svfloat64_t d = svmul_x (pg, p, 2);
+ svfloat64_t d = svmul_x (svptrue_b64 (), p, 2);
svfloat64_t swap = n;
n = svneg_m (n, use_recip, d);
d = svsel (use_recip, swap, d);
- if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svdiv_x (svnot_z (pg, special), n, d), special);
return svdiv_x (pg, n, d);
}
diff --git a/sysdeps/aarch64/fpu/tanf_advsimd.c b/sysdeps/aarch64/fpu/tanf_advsimd.c
index 705586f..a8adf16 100644
--- a/sysdeps/aarch64/fpu/tanf_advsimd.c
+++ b/sysdeps/aarch64/fpu/tanf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) tan function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/tanf_sve.c b/sysdeps/aarch64/fpu/tanf_sve.c
index f342583..8bd5440 100644
--- a/sysdeps/aarch64/fpu/tanf_sve.c
+++ b/sysdeps/aarch64/fpu/tanf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) tan function
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -60,21 +60,16 @@ svfloat32_t SV_NAME_F1 (tan) (svfloat32_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- /* Determine whether input is too large to perform fast regression. */
- svbool_t cmp = svacge (pg, x, d->range_val);
-
svfloat32_t odd_coeffs = svld1rq (svptrue_b32 (), &d->c1);
svfloat32_t pi_vals = svld1rq (svptrue_b32 (), &d->pio2_1);
/* n = rint(x/(pi/2)). */
- svfloat32_t q = svmla_lane (sv_f32 (d->shift), x, pi_vals, 3);
- svfloat32_t n = svsub_x (pg, q, d->shift);
+ svfloat32_t n = svrintn_x (pg, svmul_lane (x, pi_vals, 3));
/* n is already a signed integer, simply convert it. */
svint32_t in = svcvt_s32_x (pg, n);
/* Determine if x lives in an interval, where |tan(x)| grows to infinity. */
svint32_t alt = svand_x (pg, in, 1);
svbool_t pred_alt = svcmpne (pg, alt, 0);
-
/* r = x - n * (pi/2) (range reduction into 0 .. pi/4). */
svfloat32_t r;
r = svmls_lane (x, n, pi_vals, 0);
@@ -93,7 +88,7 @@ svfloat32_t SV_NAME_F1 (tan) (svfloat32_t x, const svbool_t pg)
/* Evaluate polynomial approximation of tangent on [-pi/4, pi/4],
using Estrin on z^2. */
- svfloat32_t z2 = svmul_x (pg, z, z);
+ svfloat32_t z2 = svmul_x (svptrue_b32 (), r, r);
svfloat32_t p01 = svmla_lane (sv_f32 (d->c0), z2, odd_coeffs, 0);
svfloat32_t p23 = svmla_lane (sv_f32 (d->c2), z2, odd_coeffs, 1);
svfloat32_t p45 = svmla_lane (sv_f32 (d->c4), z2, odd_coeffs, 2);
@@ -106,13 +101,14 @@ svfloat32_t SV_NAME_F1 (tan) (svfloat32_t x, const svbool_t pg)
svfloat32_t y = svmla_x (pg, z, p, svmul_x (pg, z, z2));
- /* Transform result back, if necessary. */
- svfloat32_t inv_y = svdivr_x (pg, y, 1.0f);
-
/* No need to pass pg to specialcase here since cmp is a strict subset,
guaranteed by the cmpge above. */
+
+ /* Determine whether input is too large to perform fast regression. */
+ svbool_t cmp = svacge (pg, x, d->range_val);
if (__glibc_unlikely (svptest_any (pg, cmp)))
- return special_case (x, svsel (pred_alt, inv_y, y), cmp);
+ return special_case (x, svdivr_x (pg, y, 1.0f), cmp);
+ svfloat32_t inv_y = svdivr_x (pg, y, 1.0f);
return svsel (pred_alt, inv_y, y);
}
diff --git a/sysdeps/aarch64/fpu/tanh_advsimd.c b/sysdeps/aarch64/fpu/tanh_advsimd.c
index 1da1dfa..40acefd 100644
--- a/sysdeps/aarch64/fpu/tanh_advsimd.c
+++ b/sysdeps/aarch64/fpu/tanh_advsimd.c
@@ -1,6 +1,6 @@
/* Double-precision vector (Advanced SIMD) tanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,68 +18,30 @@
<https://www.gnu.org/licenses/>. */
#include "v_math.h"
-#include "poly_advsimd_f64.h"
+#include "v_expm1_inline.h"
static const struct data
{
- float64x2_t poly[11];
- float64x2_t inv_ln2, ln2_hi, ln2_lo, shift;
- uint64x2_t onef;
+ struct v_expm1_data d;
uint64x2_t thresh, tiny_bound;
} data = {
- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */
- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5),
- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10),
- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16),
- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22),
- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), },
-
- .inv_ln2 = V2 (0x1.71547652b82fep0),
- .ln2_hi = V2 (-0x1.62e42fefa39efp-1),
- .ln2_lo = V2 (-0x1.abc9e3b39803fp-56),
- .shift = V2 (0x1.8p52),
-
- .onef = V2 (0x3ff0000000000000),
+ .d = V_EXPM1_DATA,
.tiny_bound = V2 (0x3e40000000000000), /* asuint64 (0x1p-27). */
/* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */
.thresh = V2 (0x01f241bf835f9d5f),
};
-static inline float64x2_t
-expm1_inline (float64x2_t x, const struct data *d)
-{
- /* Helper routine for calculating exp(x) - 1. Vector port of the helper from
- the scalar variant of tanh. */
-
- /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */
- float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift);
- int64x2_t i = vcvtq_s64_f64 (j);
- float64x2_t f = vfmaq_f64 (x, j, d->ln2_hi);
- f = vfmaq_f64 (f, j, d->ln2_lo);
-
- /* Approximate expm1(f) using polynomial. */
- float64x2_t f2 = vmulq_f64 (f, f);
- float64x2_t f4 = vmulq_f64 (f2, f2);
- float64x2_t p = vfmaq_f64 (
- f, f2, v_estrin_10_f64 (f, f2, f4, vmulq_f64 (f4, f4), d->poly));
-
- /* t = 2 ^ i. */
- float64x2_t t = vreinterpretq_f64_u64 (
- vaddq_u64 (vreinterpretq_u64_s64 (i << 52), d->onef));
- /* expm1(x) = p * t + (t - 1). */
- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1)), p, t);
-}
-
static float64x2_t NOINLINE VPCS_ATTR
-special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
+special_case (float64x2_t x, float64x2_t q, float64x2_t qp2,
+ uint64x2_t special)
{
- return v_call_f64 (tanh, x, y, special);
+ return v_call_f64 (tanh, x, vdivq_f64 (q, qp2), special);
}
/* Vector approximation for double-precision tanh(x), using a simplified
- version of expm1. The greatest observed error is 2.77 ULP:
- _ZGVnN2v_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3
- want -0x1.bd6a21a163624p-3. */
+ version of expm1. The greatest observed error is 2.70 ULP:
+ _ZGVnN2v_tanh(-0x1.c59aa220cb177p-3) got -0x1.be5452a6459fep-3
+ want -0x1.be5452a6459fbp-3. */
float64x2_t VPCS_ATTR V_NAME_D1 (tanh) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
@@ -100,10 +62,10 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tanh) (float64x2_t x)
u = vaddq_f64 (u, u);
/* tanh(x) = (e^2x - 1) / (e^2x + 1). */
- float64x2_t q = expm1_inline (u, d);
- float64x2_t qp2 = vaddq_f64 (q, v_f64 (2));
+ float64x2_t q = expm1_inline (u, &d->d);
+ float64x2_t qp2 = vaddq_f64 (q, v_f64 (2.0));
if (__glibc_unlikely (v_any_u64 (special)))
- return special_case (x, vdivq_f64 (q, qp2), special);
+ return special_case (x, q, qp2, special);
return vdivq_f64 (q, qp2);
}
diff --git a/sysdeps/aarch64/fpu/tanh_sve.c b/sysdeps/aarch64/fpu/tanh_sve.c
index d25e011..5869419 100644
--- a/sysdeps/aarch64/fpu/tanh_sve.c
+++ b/sysdeps/aarch64/fpu/tanh_sve.c
@@ -1,6 +1,6 @@
/* Double-precision vector (SVE) tanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,83 +18,117 @@
<https://www.gnu.org/licenses/>. */
#include "sv_math.h"
-#include "poly_sve_f64.h"
static const struct data
{
- float64_t poly[11];
- float64_t inv_ln2, ln2_hi, ln2_lo, shift;
- uint64_t thresh, tiny_bound;
+ double ln2_hi, ln2_lo;
+ double c2, c4;
+ double c0, c1, c3;
+ double two_over_ln2, shift;
+ uint64_t tiny_bound;
+ double large_bound, fexpa_bound;
+ uint64_t e2xm1_data[20];
} data = {
- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */
- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5,
- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10,
- 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16,
- 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22,
- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, },
-
- .inv_ln2 = 0x1.71547652b82fep0,
- .ln2_hi = -0x1.62e42fefa39efp-1,
- .ln2_lo = -0x1.abc9e3b39803fp-56,
- .shift = 0x1.8p52,
-
+ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */
+ .c0 = 0x1p-1,
+ .c1 = 0x1.55555555548f9p-3,
+ .c2 = 0x1.5555555554c22p-5,
+ .c3 = 0x1.111123aaa2fb2p-7,
+ .c4 = 0x1.6c16d77d98e5bp-10,
+ .ln2_hi = 0x1.62e42fefa3800p-1,
+ .ln2_lo = 0x1.ef35793c76730p-45,
+ .two_over_ln2 = 0x1.71547652b82fep+1,
+ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */
.tiny_bound = 0x3e40000000000000, /* asuint64 (0x1p-27). */
- /* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */
- .thresh = 0x01f241bf835f9d5f,
+ .large_bound = 0x1.30fc1931f09cap+4, /* arctanh(1 - 2^-54). */
+ .fexpa_bound = 0x1.a56ef8ec924ccp-4, /* 19/64 * ln2/2. */
+ /* Table lookup of 2^(i/64) - 1, for values of i from 0..19. */
+ .e2xm1_data = {
+ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901,
+ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb,
+ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2,
+ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a,
+ 0x3fc837f0518db8a9, 0x3fc9e0459320b7fa, 0x3fcb8d39b9d54e55, 0x3fcd3ed9a72cffb7,
+ },
};
+/* An expm1 inspired, FEXPA based helper function that returns an
+ accurate estimate for e^2x - 1. With no special case or support for
+ negative inputs of x. */
static inline svfloat64_t
-expm1_inline (svfloat64_t x, const svbool_t pg, const struct data *d)
-{
- /* Helper routine for calculating exp(x) - 1. Vector port of the helper from
- the scalar variant of tanh. */
-
- /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */
- svfloat64_t j
- = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift);
- svint64_t i = svcvt_s64_x (pg, j);
- svfloat64_t f = svmla_x (pg, x, j, d->ln2_hi);
- f = svmla_x (pg, f, j, d->ln2_lo);
-
- /* Approximate expm1(f) using polynomial. */
- svfloat64_t f2 = svmul_x (pg, f, f);
- svfloat64_t f4 = svmul_x (pg, f2, f2);
- svfloat64_t p = svmla_x (
- pg, f, f2,
- sv_estrin_10_f64_x (pg, f, f2, f4, svmul_x (pg, f4, f4), d->poly));
-
- /* t = 2 ^ i. */
- svfloat64_t t = svscale_x (pg, sv_f64 (1), i);
- /* expm1(x) = p * t + (t - 1). */
- return svmla_x (pg, svsub_x (pg, t, 1), p, t);
-}
-
-static svfloat64_t NOINLINE
-special_case (svfloat64_t x, svfloat64_t y, svbool_t special)
+e2xm1_inline (const svbool_t pg, svfloat64_t x, const struct data *d)
{
- return sv_call_f64 (tanh, x, y, special);
+ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->two_over_ln2);
+ svuint64_t u = svreinterpret_u64 (z);
+ svfloat64_t n = svsub_x (pg, z, d->shift);
+
+ /* r = x - n * ln2/2, r is in [-ln2/(2N), ln2/(2N)]. */
+ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi);
+ svfloat64_t r = svadd_x (pg, x, x);
+ r = svmls_lane (r, n, ln2, 0);
+ r = svmls_lane (r, n, ln2, 1);
+
+ /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */
+ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r);
+ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2);
+
+ svfloat64_t p;
+ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0);
+ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1);
+ p = svmad_x (pg, c34, r2, c12);
+ p = svmad_x (pg, p, r, sv_f64 (d->c0));
+ p = svmad_x (pg, p, r2, r);
+
+ svfloat64_t scale = svexpa (u);
+
+ /* We want to construct e2xm1(x) = (scale - 1) + scale * poly.
+ However, for values of scale close to 1, scale-1 causes large ULP errors
+ due to cancellation.
+
+ This can be circumvented by using a small lookup for scale-1
+ when our input is below a certain bound, otherwise we can use FEXPA. */
+ svbool_t is_small = svaclt (pg, x, d->fexpa_bound);
+
+ /* Index via the input of FEXPA, but we only care about the lower 5 bits. */
+ svuint64_t base_idx = svand_x (pg, u, 0x1f);
+
+ /* Compute scale - 1 from FEXPA, and lookup values where this fails. */
+ svfloat64_t scalem1_estimate = svsub_x (pg, scale, sv_f64 (1.0));
+ svuint64_t scalem1_lookup
+ = svld1_gather_index (is_small, d->e2xm1_data, base_idx);
+
+ /* Select the appropriate scale - 1 value based on x. */
+ svfloat64_t scalem1
+ = svsel (is_small, svreinterpret_f64 (scalem1_lookup), scalem1_estimate);
+ return svmla_x (pg, scalem1, scale, p);
}
-/* SVE approximation for double-precision tanh(x), using a simplified
- version of expm1. The greatest observed error is 2.77 ULP:
- _ZGVsMxv_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3
- want -0x1.bd6a21a163624p-3. */
+/* SVE approximation for double-precision tanh(x), using a modified version of
+ FEXPA expm1 to calculate e^2x - 1.
+ The greatest observed error is 2.79 + 0.5 ULP:
+ _ZGVsMxv_tanh (0x1.fff868eb3c223p-9) got 0x1.fff7be486cae6p-9
+ want 0x1.fff7be486cae9p-9. */
svfloat64_t SV_NAME_D1 (tanh) (svfloat64_t x, svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
- svuint64_t ia = svreinterpret_u64 (svabs_x (pg, x));
+ svbool_t large = svacge (pg, x, d->large_bound);
- /* Trigger special-cases for tiny, boring and infinity/NaN. */
- svbool_t special = svcmpgt (pg, svsub_x (pg, ia, d->tiny_bound), d->thresh);
+ /* We can use tanh(x) = (e^2x - 1) / (e^2x + 1) to approximate tanh.
+ As an additional optimisation, we can ensure more accurate values of e^x
+ by only using positive inputs. So we calculate tanh(|x|), and restore the
+ sign of the input before returning. */
+ svfloat64_t ax = svabs_x (pg, x);
+ svuint64_t sign_bit
+ = sveor_x (pg, svreinterpret_u64 (x), svreinterpret_u64 (ax));
- svfloat64_t u = svadd_x (pg, x, x);
+ svfloat64_t p = e2xm1_inline (pg, ax, d);
+ svfloat64_t q = svadd_x (pg, p, 2);
- /* tanh(x) = (e^2x - 1) / (e^2x + 1). */
- svfloat64_t q = expm1_inline (u, pg, d);
- svfloat64_t qp2 = svadd_x (pg, q, 2);
+ /* For sufficiently high inputs, the result of tanh(|x|) is 1 when correctly
+ rounded, at this point we can return 1 directly, with sign correction.
+ This will also act as a guard against our approximation overflowing. */
+ svfloat64_t y = svsel (large, sv_f64 (1.0), svdiv_x (pg, p, q));
- if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svdiv_x (pg, q, qp2), special);
- return svdiv_x (pg, q, qp2);
+ return svreinterpret_f64 (svorr_x (pg, sign_bit, svreinterpret_u64 (y)));
}
diff --git a/sysdeps/aarch64/fpu/tanhf_advsimd.c b/sysdeps/aarch64/fpu/tanhf_advsimd.c
index 50defd6..f61a456 100644
--- a/sysdeps/aarch64/fpu/tanhf_advsimd.c
+++ b/sysdeps/aarch64/fpu/tanhf_advsimd.c
@@ -1,6 +1,6 @@
/* Single-precision vector (Advanced SIMD) tanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,13 +28,16 @@ static const struct data
/* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */
.boring_bound = V4 (0x41102cb3),
.large_bound = V4 (0x7f800000),
- .onef = V4 (0x3f800000),
};
static float32x4_t NOINLINE VPCS_ATTR
-special_case (float32x4_t x, float32x4_t y, uint32x4_t special)
+special_case (float32x4_t x, uint32x4_t is_boring, float32x4_t boring,
+ float32x4_t q, uint32x4_t special)
{
- return v_call_f32 (tanhf, x, y, special);
+ return v_call_f32 (
+ tanhf, x,
+ vbslq_f32 (is_boring, boring, vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0)))),
+ special);
}
/* Approximation for single-precision vector tanh(x), using a simplified
@@ -50,7 +53,9 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tanh) (float32x4_t x)
uint32x4_t iax = vreinterpretq_u32_f32 (ax);
uint32x4_t sign = veorq_u32 (ix, iax);
uint32x4_t is_boring = vcgtq_u32 (iax, d->boring_bound);
- float32x4_t boring = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->onef));
+ /* expm1 exponent bias is 1.0f reinterpreted to int. */
+ float32x4_t boring = vreinterpretq_f32_u32 (vorrq_u32 (
+ sign, vreinterpretq_u32_s32 (d->expm1f_consts.exponent_bias)));
#if WANT_SIMD_EXCEPT
/* If fp exceptions are to be triggered properly, set all special and boring
@@ -66,10 +71,12 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tanh) (float32x4_t x)
/* tanh(x) = (e^2x - 1) / (e^2x + 1). */
float32x4_t q = expm1f_inline (vmulq_n_f32 (x, 2), &d->expm1f_consts);
- float32x4_t y = vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0)));
+
if (__glibc_unlikely (v_any_u32 (special)))
- return special_case (vreinterpretq_f32_u32 (ix),
- vbslq_f32 (is_boring, boring, y), special);
+ return special_case (vreinterpretq_f32_u32 (ix), is_boring, boring, q,
+ special);
+
+ float32x4_t y = vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0)));
return vbslq_f32 (is_boring, boring, y);
}
libmvec_hidden_def (V_NAME_F1 (tanh))
diff --git a/sysdeps/aarch64/fpu/tanhf_sve.c b/sysdeps/aarch64/fpu/tanhf_sve.c
index 0b94523..e12f86d 100644
--- a/sysdeps/aarch64/fpu/tanhf_sve.c
+++ b/sysdeps/aarch64/fpu/tanhf_sve.c
@@ -1,6 +1,6 @@
/* Single-precision vector (SVE) tanh function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,20 +19,27 @@
#include "sv_expm1f_inline.h"
+/* Largest value of x for which tanhf(x) rounds to 1 (or -1 for negative). */
+#define BoringBound 0x1.205966p+3f
+
static const struct data
{
struct sv_expm1f_data expm1f_consts;
- uint32_t boring_bound, onef;
+ uint32_t onef, special_bound;
+ float boring_bound;
} data = {
.expm1f_consts = SV_EXPM1F_DATA,
- /* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */
- .boring_bound = 0x41102cb3,
.onef = 0x3f800000,
+ .special_bound = 0x7f800000,
+ .boring_bound = BoringBound,
};
static svfloat32_t NOINLINE
-special_case (svfloat32_t x, svfloat32_t y, svbool_t special)
+special_case (svfloat32_t x, svbool_t pg, svbool_t is_boring,
+ svfloat32_t boring, svfloat32_t q, svbool_t special)
{
+ svfloat32_t y
+ = svsel_f32 (is_boring, boring, svdiv_x (pg, q, svadd_x (pg, q, 2.0)));
return sv_call_f32 (tanhf, x, y, special);
}
@@ -47,15 +54,16 @@ svfloat32_t SV_NAME_F1 (tanh) (svfloat32_t x, const svbool_t pg)
svfloat32_t ax = svabs_x (pg, x);
svuint32_t iax = svreinterpret_u32 (ax);
svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax);
- svbool_t is_boring = svcmpgt (pg, iax, d->boring_bound);
svfloat32_t boring = svreinterpret_f32 (svorr_x (pg, sign, d->onef));
-
- svbool_t special = svcmpgt (pg, iax, 0x7f800000);
+ svbool_t special = svcmpgt (pg, iax, d->special_bound);
+ svbool_t is_boring = svacgt (pg, x, d->boring_bound);
/* tanh(x) = (e^2x - 1) / (e^2x + 1). */
- svfloat32_t q = expm1f_inline (svmul_x (pg, x, 2.0), pg, &d->expm1f_consts);
- svfloat32_t y = svdiv_x (pg, q, svadd_x (pg, q, 2.0));
+ svfloat32_t q = expm1f_inline (svmul_x (svptrue_b32 (), x, 2.0), pg,
+ &d->expm1f_consts);
+
if (__glibc_unlikely (svptest_any (pg, special)))
- return special_case (x, svsel_f32 (is_boring, boring, y), special);
+ return special_case (x, pg, is_boring, boring, q, special);
+ svfloat32_t y = svdiv_x (pg, q, svadd_x (pg, q, 2.0));
return svsel_f32 (is_boring, boring, y);
}
diff --git a/sysdeps/aarch64/fpu/tanpi_advsimd.c b/sysdeps/aarch64/fpu/tanpi_advsimd.c
new file mode 100644
index 0000000..0a93bee
--- /dev/null
+++ b/sysdeps/aarch64/fpu/tanpi_advsimd.c
@@ -0,0 +1,88 @@
+/* Double-precision (Advanced SIMD) tanpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+const static struct v_tanpi_data
+{
+ float64x2_t c0, c2, c4, c6, c8, c10, c12;
+ double c1, c3, c5, c7, c9, c11, c13, c14;
+} tanpi_data = {
+ /* Coefficents for tan(pi * x) computed with fpminimax
+ on [ 0x1p-1022 0x1p-2 ]
+ approx rel error: 0x1.7eap-55
+ approx abs error: 0x1.7eap-55. */
+ .c0 = V2 (0x1.921fb54442d18p1), /* pi. */
+ .c1 = 0x1.4abbce625be52p3, .c2 = V2 (0x1.466bc6775b0f9p5),
+ .c3 = 0x1.45fff9b426f5ep7, .c4 = V2 (0x1.45f4730dbca5cp9),
+ .c5 = 0x1.45f3265994f85p11, .c6 = V2 (0x1.45f4234b330cap13),
+ .c7 = 0x1.45dca11be79ebp15, .c8 = V2 (0x1.47283fc5eea69p17),
+ .c9 = 0x1.3a6d958cdefaep19, .c10 = V2 (0x1.927896baee627p21),
+ .c11 = -0x1.89333f6acd922p19, .c12 = V2 (0x1.5d4e912bb8456p27),
+ .c13 = -0x1.a854d53ab6874p29, .c14 = 0x1.1b76de7681424p32,
+};
+
+/* Approximation for double-precision vector tanpi(x)
+ The maximum error is 3.06 ULP:
+ _ZGVnN2v_tanpi(0x1.0a4a07dfcca3ep-1) got -0x1.fa30112702c98p+3
+ want -0x1.fa30112702c95p+3. */
+float64x2_t VPCS_ATTR V_NAME_D1 (tanpi) (float64x2_t x)
+{
+ const struct v_tanpi_data *d = ptr_barrier (&tanpi_data);
+
+ float64x2_t n = vrndnq_f64 (x);
+
+ /* inf produces nan that propagates. */
+ float64x2_t xr = vsubq_f64 (x, n);
+ float64x2_t ar = vabdq_f64 (x, n);
+ uint64x2_t flip = vcgtq_f64 (ar, v_f64 (0.25));
+ float64x2_t r = vbslq_f64 (flip, vsubq_f64 (v_f64 (0.5), ar), ar);
+
+ /* Order-14 pairwise Horner. */
+ float64x2_t r2 = vmulq_f64 (r, r);
+ float64x2_t r4 = vmulq_f64 (r2, r2);
+
+ float64x2_t c_1_3 = vld1q_f64 (&d->c1);
+ float64x2_t c_5_7 = vld1q_f64 (&d->c5);
+ float64x2_t c_9_11 = vld1q_f64 (&d->c9);
+ float64x2_t c_13_14 = vld1q_f64 (&d->c13);
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, r2, c_1_3, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, r2, c_1_3, 1);
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, r2, c_5_7, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, r2, c_5_7, 1);
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, r2, c_9_11, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, r2, c_9_11, 1);
+ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, r2, c_13_14, 0);
+
+ float64x2_t p = vfmaq_laneq_f64 (p1213, r4, c_13_14, 1);
+ p = vfmaq_f64 (p1011, r4, p);
+ p = vfmaq_f64 (p89, r4, p);
+ p = vfmaq_f64 (p67, r4, p);
+ p = vfmaq_f64 (p45, r4, p);
+ p = vfmaq_f64 (p23, r4, p);
+ p = vfmaq_f64 (p01, r4, p);
+ p = vmulq_f64 (r, p);
+
+ float64x2_t p_recip = vdivq_f64 (v_f64 (1.0), p);
+ float64x2_t y = vbslq_f64 (flip, p_recip, p);
+
+ uint64x2_t sign
+ = veorq_u64 (vreinterpretq_u64_f64 (xr), vreinterpretq_u64_f64 (ar));
+ return vreinterpretq_f64_u64 (vorrq_u64 (vreinterpretq_u64_f64 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/tanpi_sve.c b/sysdeps/aarch64/fpu/tanpi_sve.c
new file mode 100644
index 0000000..57c643a
--- /dev/null
+++ b/sysdeps/aarch64/fpu/tanpi_sve.c
@@ -0,0 +1,88 @@
+/* Double-precision (SVE) tanpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+const static struct v_tanpi_data
+{
+ double c0, c2, c4, c6, c8, c10, c12;
+ double c1, c3, c5, c7, c9, c11, c13, c14;
+} tanpi_data = {
+ /* Coefficents for tan(pi * x) computed with fpminimax
+ on [ 0x1p-1022 0x1p-2 ]
+ approx rel error: 0x1.7eap-55
+ approx abs error: 0x1.7eap-55. */
+ .c0 = 0x1.921fb54442d18p1, /* pi. */
+ .c1 = 0x1.4abbce625be52p3, .c2 = 0x1.466bc6775b0f9p5,
+ .c3 = 0x1.45fff9b426f5ep7, .c4 = 0x1.45f4730dbca5cp9,
+ .c5 = 0x1.45f3265994f85p11, .c6 = 0x1.45f4234b330cap13,
+ .c7 = 0x1.45dca11be79ebp15, .c8 = 0x1.47283fc5eea69p17,
+ .c9 = 0x1.3a6d958cdefaep19, .c10 = 0x1.927896baee627p21,
+ .c11 = -0x1.89333f6acd922p19, .c12 = 0x1.5d4e912bb8456p27,
+ .c13 = -0x1.a854d53ab6874p29, .c14 = 0x1.1b76de7681424p32,
+};
+
+/* Approximation for double-precision vector tanpi(x)
+ The maximum error is 3.06 ULP:
+ _ZGVsMxv_tanpi(0x1.0a4a07dfcca3ep-1) got -0x1.fa30112702c98p+3
+ want -0x1.fa30112702c95p+3. */
+svfloat64_t SV_NAME_D1 (tanpi) (svfloat64_t x, const svbool_t pg)
+{
+ const struct v_tanpi_data *d = ptr_barrier (&tanpi_data);
+
+ svfloat64_t n = svrintn_x (pg, x);
+
+ /* inf produces nan that propagates. */
+ svfloat64_t xr = svsub_x (pg, x, n);
+ svfloat64_t ar = svabd_x (pg, x, n);
+ svbool_t flip = svcmpgt (pg, ar, 0.25);
+ svfloat64_t r = svsel (flip, svsubr_x (pg, ar, 0.5), ar);
+
+ /* Order-14 pairwise Horner. */
+ svfloat64_t r2 = svmul_x (pg, r, r);
+ svfloat64_t r4 = svmul_x (pg, r2, r2);
+
+ svfloat64_t c_1_3 = svld1rq (pg, &d->c1);
+ svfloat64_t c_5_7 = svld1rq (pg, &d->c5);
+ svfloat64_t c_9_11 = svld1rq (pg, &d->c9);
+ svfloat64_t c_13_14 = svld1rq (pg, &d->c13);
+ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r2, c_1_3, 0);
+ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r2, c_1_3, 1);
+ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), r2, c_5_7, 0);
+ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), r2, c_5_7, 1);
+ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), r2, c_9_11, 0);
+ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), r2, c_9_11, 1);
+ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), r2, c_13_14, 0);
+
+ svfloat64_t p = svmla_lane (p1213, r4, c_13_14, 1);
+ p = svmad_x (pg, p, r4, p1011);
+ p = svmad_x (pg, p, r4, p89);
+ p = svmad_x (pg, p, r4, p67);
+ p = svmad_x (pg, p, r4, p45);
+ p = svmad_x (pg, p, r4, p23);
+ p = svmad_x (pg, p, r4, p01);
+ p = svmul_x (pg, r, p);
+
+ svfloat64_t p_recip = svdivr_x (pg, p, 1.0);
+ svfloat64_t y = svsel (flip, p_recip, p);
+
+ svuint64_t sign
+ = sveor_x (pg, svreinterpret_u64 (xr), svreinterpret_u64 (ar));
+ return svreinterpret_f64 (svorr_x (pg, svreinterpret_u64 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/tanpif_advsimd.c b/sysdeps/aarch64/fpu/tanpif_advsimd.c
new file mode 100644
index 0000000..248cb0f
--- /dev/null
+++ b/sysdeps/aarch64/fpu/tanpif_advsimd.c
@@ -0,0 +1,72 @@
+/* Single-precision (Advanced SIMD) tanpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "v_math.h"
+
+const static struct v_tanpif_data
+{
+ float32x4_t c0, c2, c4, c6;
+ float c1, c3, c5, c7;
+} tanpif_data = {
+ /* Coefficents for tan(pi * x). */
+ .c0 = V4 (0x1.921fb4p1f), .c1 = 0x1.4abbcep3f, .c2 = V4 (0x1.466b8p5f),
+ .c3 = 0x1.461c72p7f, .c4 = V4 (0x1.42e9d4p9f), .c5 = 0x1.69e2c4p11f,
+ .c6 = V4 (0x1.e85558p11f), .c7 = 0x1.a52e08p16f,
+};
+
+/* Approximation for single-precision vector tanpi(x)
+ The maximum error is 3.34 ULP:
+ _ZGVnN4v_tanpif(0x1.d6c09ap-2) got 0x1.f70aacp+2
+ want 0x1.f70aa6p+2. */
+float32x4_t VPCS_ATTR V_NAME_F1 (tanpi) (float32x4_t x)
+{
+ const struct v_tanpif_data *d = ptr_barrier (&tanpif_data);
+
+ float32x4_t n = vrndnq_f32 (x);
+
+ /* inf produces nan that propagates. */
+ float32x4_t xr = vsubq_f32 (x, n);
+ float32x4_t ar = vabdq_f32 (x, n);
+ uint32x4_t flip = vcgtq_f32 (ar, v_f32 (0.25f));
+ float32x4_t r = vbslq_f32 (flip, vsubq_f32 (v_f32 (0.5f), ar), ar);
+
+ /* Order-7 pairwise Horner polynomial evaluation scheme. */
+ float32x4_t r2 = vmulq_f32 (r, r);
+ float32x4_t r4 = vmulq_f32 (r2, r2);
+
+ float32x4_t odd_coeffs = vld1q_f32 (&d->c1);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, r2, odd_coeffs, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, r2, odd_coeffs, 1);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, r2, odd_coeffs, 2);
+ float32x4_t p67 = vfmaq_laneq_f32 (d->c6, r2, odd_coeffs, 3);
+ float32x4_t p = vfmaq_f32 (p45, r4, p67);
+ p = vfmaq_f32 (p23, r4, p);
+ p = vfmaq_f32 (p01, r4, p);
+
+ p = vmulq_f32 (r, p);
+ float32x4_t p_recip = vdivq_f32 (v_f32 (1.0f), p);
+ float32x4_t y = vbslq_f32 (flip, p_recip, p);
+
+ uint32x4_t sign
+ = veorq_u32 (vreinterpretq_u32_f32 (xr), vreinterpretq_u32_f32 (ar));
+ return vreinterpretq_f32_u32 (vorrq_u32 (vreinterpretq_u32_f32 (y), sign));
+}
+
+libmvec_hidden_def (V_NAME_F1 (tanpi))
+HALF_WIDTH_ALIAS_F1 (tanpi)
diff --git a/sysdeps/aarch64/fpu/tanpif_sve.c b/sysdeps/aarch64/fpu/tanpif_sve.c
new file mode 100644
index 0000000..0285f56
--- /dev/null
+++ b/sysdeps/aarch64/fpu/tanpif_sve.c
@@ -0,0 +1,68 @@
+/* Single-precision (SVE) tanpi function
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "sv_math.h"
+
+const static struct v_tanpif_data
+{
+ float c0, c2, c4, c6;
+ float c1, c3, c5, c7;
+} tanpif_data = {
+ /* Coefficients for tan(pi * x). */
+ .c0 = 0x1.921fb4p1f, .c1 = 0x1.4abbcep3f, .c2 = 0x1.466b8p5f,
+ .c3 = 0x1.461c72p7f, .c4 = 0x1.42e9d4p9f, .c5 = 0x1.69e2c4p11f,
+ .c6 = 0x1.e85558p11f, .c7 = 0x1.a52e08p16f,
+};
+
+/* Approximation for single-precision vector tanpif(x)
+ The maximum error is 3.34 ULP:
+ _ZGVsMxv_tanpif(0x1.d6c09ap-2) got 0x1.f70aacp+2
+ want 0x1.f70aa6p+2. */
+svfloat32_t SV_NAME_F1 (tanpi) (svfloat32_t x, const svbool_t pg)
+{
+ const struct v_tanpif_data *d = ptr_barrier (&tanpif_data);
+ svfloat32_t odd_coeffs = svld1rq (pg, &d->c1);
+ svfloat32_t n = svrintn_x (pg, x);
+
+ /* inf produces nan that propagates. */
+ svfloat32_t xr = svsub_x (pg, x, n);
+ svfloat32_t ar = svabd_x (pg, x, n);
+ svbool_t flip = svcmpgt (pg, ar, 0.25f);
+ svfloat32_t r = svsel (flip, svsub_x (pg, sv_f32 (0.5f), ar), ar);
+
+ svfloat32_t r2 = svmul_x (pg, r, r);
+ svfloat32_t r4 = svmul_x (pg, r2, r2);
+
+ /* Order-7 Pairwise Horner. */
+ svfloat32_t p01 = svmla_lane (sv_f32 (d->c0), r2, odd_coeffs, 0);
+ svfloat32_t p23 = svmla_lane (sv_f32 (d->c2), r2, odd_coeffs, 1);
+ svfloat32_t p45 = svmla_lane (sv_f32 (d->c4), r2, odd_coeffs, 2);
+ svfloat32_t p67 = svmla_lane (sv_f32 (d->c6), r2, odd_coeffs, 3);
+ svfloat32_t p = svmad_x (pg, p67, r4, p45);
+ p = svmad_x (pg, p, r4, p23);
+ p = svmad_x (pg, p, r4, p01);
+ svfloat32_t poly = svmul_x (pg, r, p);
+
+ svfloat32_t poly_recip = svdiv_x (pg, sv_f32 (1.0), poly);
+ svfloat32_t y = svsel (flip, poly_recip, poly);
+
+ svuint32_t sign
+ = sveor_x (pg, svreinterpret_u32 (xr), svreinterpret_u32 (ar));
+ return svreinterpret_f32 (svorr_x (pg, svreinterpret_u32 (y), sign));
+}
diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c
index 8c98161..a3fef22 100644
--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c
+++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c
@@ -1,6 +1,6 @@
/* Scalar wrappers for double-precision Advanced SIMD vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,14 +25,19 @@
VPCS_VECTOR_WRAPPER (acos_advsimd, _ZGVnN2v_acos)
VPCS_VECTOR_WRAPPER (acosh_advsimd, _ZGVnN2v_acosh)
+VPCS_VECTOR_WRAPPER (acospi_advsimd, _ZGVnN2v_acospi)
VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin)
VPCS_VECTOR_WRAPPER (asinh_advsimd, _ZGVnN2v_asinh)
+VPCS_VECTOR_WRAPPER (asinpi_advsimd, _ZGVnN2v_asinpi)
VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan)
VPCS_VECTOR_WRAPPER (atanh_advsimd, _ZGVnN2v_atanh)
+VPCS_VECTOR_WRAPPER (atanpi_advsimd, _ZGVnN2v_atanpi)
VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2)
+VPCS_VECTOR_WRAPPER_ff (atan2pi_advsimd, _ZGVnN2vv_atan2pi)
VPCS_VECTOR_WRAPPER (cbrt_advsimd, _ZGVnN2v_cbrt)
VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos)
VPCS_VECTOR_WRAPPER (cosh_advsimd, _ZGVnN2v_cosh)
+VPCS_VECTOR_WRAPPER (cospi_advsimd, _ZGVnN2v_cospi)
VPCS_VECTOR_WRAPPER (erf_advsimd, _ZGVnN2v_erf)
VPCS_VECTOR_WRAPPER (erfc_advsimd, _ZGVnN2v_erfc)
VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp)
@@ -47,5 +52,7 @@ VPCS_VECTOR_WRAPPER (log2_advsimd, _ZGVnN2v_log2)
VPCS_VECTOR_WRAPPER_ff (pow_advsimd, _ZGVnN2vv_pow)
VPCS_VECTOR_WRAPPER (sin_advsimd, _ZGVnN2v_sin)
VPCS_VECTOR_WRAPPER (sinh_advsimd, _ZGVnN2v_sinh)
+VPCS_VECTOR_WRAPPER (sinpi_advsimd, _ZGVnN2v_sinpi)
VPCS_VECTOR_WRAPPER (tan_advsimd, _ZGVnN2v_tan)
VPCS_VECTOR_WRAPPER (tanh_advsimd, _ZGVnN2v_tanh)
+VPCS_VECTOR_WRAPPER (tanpi_advsimd, _ZGVnN2v_tanpi)
diff --git a/sysdeps/aarch64/fpu/test-double-advsimd.h b/sysdeps/aarch64/fpu/test-double-advsimd.h
index ae2764e..f2ae992 100644
--- a/sysdeps/aarch64/fpu/test-double-advsimd.h
+++ b/sysdeps/aarch64/fpu/test-double-advsimd.h
@@ -1,6 +1,6 @@
/* Test declarations for double-precision Advanced SIMD vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c
index 2583428..f4a5ae8 100644
--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c
+++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c
@@ -1,6 +1,6 @@
/* Scalar wrappers for double-precision SVE vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,14 +44,19 @@
SVE_VECTOR_WRAPPER (acos_sve, _ZGVsMxv_acos)
SVE_VECTOR_WRAPPER (acosh_sve, _ZGVsMxv_acosh)
+SVE_VECTOR_WRAPPER (acospi_sve, _ZGVsMxv_acospi)
SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin)
SVE_VECTOR_WRAPPER (asinh_sve, _ZGVsMxv_asinh)
+SVE_VECTOR_WRAPPER (asinpi_sve, _ZGVsMxv_asinpi)
SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan)
SVE_VECTOR_WRAPPER (atanh_sve, _ZGVsMxv_atanh)
+SVE_VECTOR_WRAPPER (atanpi_sve, _ZGVsMxv_atanpi)
SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2)
+SVE_VECTOR_WRAPPER_ff (atan2pi_sve, _ZGVsMxvv_atan2pi)
SVE_VECTOR_WRAPPER (cbrt_sve, _ZGVsMxv_cbrt)
SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos)
SVE_VECTOR_WRAPPER (cosh_sve, _ZGVsMxv_cosh)
+SVE_VECTOR_WRAPPER (cospi_sve, _ZGVsMxv_cospi)
SVE_VECTOR_WRAPPER (erf_sve, _ZGVsMxv_erf)
SVE_VECTOR_WRAPPER (erfc_sve, _ZGVsMxv_erfc)
SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp)
@@ -66,5 +71,7 @@ SVE_VECTOR_WRAPPER (log2_sve, _ZGVsMxv_log2)
SVE_VECTOR_WRAPPER_ff (pow_sve, _ZGVsMxvv_pow)
SVE_VECTOR_WRAPPER (sin_sve, _ZGVsMxv_sin)
SVE_VECTOR_WRAPPER (sinh_sve, _ZGVsMxv_sinh)
+SVE_VECTOR_WRAPPER (sinpi_sve, _ZGVsMxv_sinpi)
SVE_VECTOR_WRAPPER (tan_sve, _ZGVsMxv_tan)
SVE_VECTOR_WRAPPER (tanh_sve, _ZGVsMxv_tanh)
+SVE_VECTOR_WRAPPER (tanpi_sve, _ZGVsMxv_tanpi)
diff --git a/sysdeps/aarch64/fpu/test-double-sve.h b/sysdeps/aarch64/fpu/test-double-sve.h
index 9738967..0219a6a 100644
--- a/sysdeps/aarch64/fpu/test-double-sve.h
+++ b/sysdeps/aarch64/fpu/test-double-sve.h
@@ -1,6 +1,6 @@
/* Test declarations for double-precision SVE vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c
index 2667901..bc22956 100644
--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c
+++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c
@@ -1,6 +1,6 @@
/* Scalar wrappers for single-precision Advanced SIMD vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,14 +25,19 @@
VPCS_VECTOR_WRAPPER (acosf_advsimd, _ZGVnN4v_acosf)
VPCS_VECTOR_WRAPPER (acoshf_advsimd, _ZGVnN4v_acoshf)
+VPCS_VECTOR_WRAPPER (acospif_advsimd, _ZGVnN4v_acospif)
VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf)
VPCS_VECTOR_WRAPPER (asinhf_advsimd, _ZGVnN4v_asinhf)
+VPCS_VECTOR_WRAPPER (asinpif_advsimd, _ZGVnN4v_asinpif)
VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf)
VPCS_VECTOR_WRAPPER (atanhf_advsimd, _ZGVnN4v_atanhf)
+VPCS_VECTOR_WRAPPER (atanpif_advsimd, _ZGVnN4v_atanpif)
VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f)
+VPCS_VECTOR_WRAPPER_ff (atan2pif_advsimd, _ZGVnN4vv_atan2pif)
VPCS_VECTOR_WRAPPER (cbrtf_advsimd, _ZGVnN4v_cbrtf)
VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf)
VPCS_VECTOR_WRAPPER (coshf_advsimd, _ZGVnN4v_coshf)
+VPCS_VECTOR_WRAPPER (cospif_advsimd, _ZGVnN4v_cospif)
VPCS_VECTOR_WRAPPER (erff_advsimd, _ZGVnN4v_erff)
VPCS_VECTOR_WRAPPER (erfcf_advsimd, _ZGVnN4v_erfcf)
VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf)
@@ -47,5 +52,7 @@ VPCS_VECTOR_WRAPPER (log2f_advsimd, _ZGVnN4v_log2f)
VPCS_VECTOR_WRAPPER_ff (powf_advsimd, _ZGVnN4vv_powf)
VPCS_VECTOR_WRAPPER (sinf_advsimd, _ZGVnN4v_sinf)
VPCS_VECTOR_WRAPPER (sinhf_advsimd, _ZGVnN4v_sinhf)
+VPCS_VECTOR_WRAPPER (sinpif_advsimd, _ZGVnN4v_sinpif)
VPCS_VECTOR_WRAPPER (tanf_advsimd, _ZGVnN4v_tanf)
VPCS_VECTOR_WRAPPER (tanhf_advsimd, _ZGVnN4v_tanhf)
+VPCS_VECTOR_WRAPPER (tanpif_advsimd, _ZGVnN4v_tanpif)
diff --git a/sysdeps/aarch64/fpu/test-float-advsimd.h b/sysdeps/aarch64/fpu/test-float-advsimd.h
index e5502bc..11c057d 100644
--- a/sysdeps/aarch64/fpu/test-float-advsimd.h
+++ b/sysdeps/aarch64/fpu/test-float-advsimd.h
@@ -1,6 +1,6 @@
/* Test declarations for singlex-precision Advanced SIMD vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c
index 0f972b7..ad0d6ad 100644
--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c
+++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c
@@ -1,6 +1,6 @@
/* Scalar wrappers for single-precision SVE vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,14 +44,19 @@
SVE_VECTOR_WRAPPER (acosf_sve, _ZGVsMxv_acosf)
SVE_VECTOR_WRAPPER (acoshf_sve, _ZGVsMxv_acoshf)
+SVE_VECTOR_WRAPPER (acospif_sve, _ZGVsMxv_acospif)
SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf)
SVE_VECTOR_WRAPPER (asinhf_sve, _ZGVsMxv_asinhf)
+SVE_VECTOR_WRAPPER (asinpif_sve, _ZGVsMxv_asinpif)
SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf)
SVE_VECTOR_WRAPPER (atanhf_sve, _ZGVsMxv_atanhf)
+SVE_VECTOR_WRAPPER (atanpif_sve, _ZGVsMxv_atanpif)
SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f)
+SVE_VECTOR_WRAPPER_ff (atan2pif_sve, _ZGVsMxvv_atan2pif)
SVE_VECTOR_WRAPPER (cbrtf_sve, _ZGVsMxv_cbrtf)
SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf)
SVE_VECTOR_WRAPPER (coshf_sve, _ZGVsMxv_coshf)
+SVE_VECTOR_WRAPPER (cospif_sve, _ZGVsMxv_cospif)
SVE_VECTOR_WRAPPER (erff_sve, _ZGVsMxv_erff)
SVE_VECTOR_WRAPPER (erfcf_sve, _ZGVsMxv_erfcf)
SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf)
@@ -66,5 +71,7 @@ SVE_VECTOR_WRAPPER (log2f_sve, _ZGVsMxv_log2f)
SVE_VECTOR_WRAPPER_ff (powf_sve, _ZGVsMxvv_powf)
SVE_VECTOR_WRAPPER (sinf_sve, _ZGVsMxv_sinf)
SVE_VECTOR_WRAPPER (sinhf_sve, _ZGVsMxv_sinhf)
+SVE_VECTOR_WRAPPER (sinpif_sve, _ZGVsMxv_sinpif)
SVE_VECTOR_WRAPPER (tanf_sve, _ZGVsMxv_tanf)
SVE_VECTOR_WRAPPER (tanhf_sve, _ZGVsMxv_tanhf)
+SVE_VECTOR_WRAPPER (tanpif_sve, _ZGVsMxv_tanpif)
diff --git a/sysdeps/aarch64/fpu/test-float-sve.h b/sysdeps/aarch64/fpu/test-float-sve.h
index 058af48..368a1dd 100644
--- a/sysdeps/aarch64/fpu/test-float-sve.h
+++ b/sysdeps/aarch64/fpu/test-float-sve.h
@@ -1,6 +1,6 @@
/* Test declarations for single-precision SVE vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/test-vpcs-vector-wrapper.h b/sysdeps/aarch64/fpu/test-vpcs-vector-wrapper.h
index 421e500..75c9619 100644
--- a/sysdeps/aarch64/fpu/test-vpcs-vector-wrapper.h
+++ b/sysdeps/aarch64/fpu/test-vpcs-vector-wrapper.h
@@ -1,6 +1,6 @@
/* Scalar wrapper for vpcs-enabled Advanced SIMD vector math functions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_exp_data.c b/sysdeps/aarch64/fpu/v_exp_data.c
index 6bc54e3..d9fc7b5 100644
--- a/sysdeps/aarch64/fpu/v_exp_data.c
+++ b/sysdeps/aarch64/fpu/v_exp_data.c
@@ -1,6 +1,6 @@
/* Scale values for vector exp and exp2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_exp_tail_data.c b/sysdeps/aarch64/fpu/v_exp_tail_data.c
index 151e97c..ffd21b0 100644
--- a/sysdeps/aarch64/fpu/v_exp_tail_data.c
+++ b/sysdeps/aarch64/fpu/v_exp_tail_data.c
@@ -1,6 +1,6 @@
/* Lookup table for high-precision exp(x, tail) function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_expf_inline.h b/sysdeps/aarch64/fpu/v_expf_inline.h
index 08b06e0..3d5cba8 100644
--- a/sysdeps/aarch64/fpu/v_expf_inline.h
+++ b/sysdeps/aarch64/fpu/v_expf_inline.h
@@ -1,6 +1,6 @@
/* Helper for single-precision AdvSIMD routines which depend on exp
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,50 +24,45 @@
struct v_expf_data
{
- float32x4_t poly[5];
- float32x4_t shift;
- float invln2_and_ln2[4];
+ float ln2_hi, ln2_lo, c0, c2;
+ float32x4_t inv_ln2, c1, c3, c4;
+ /* asuint(1.0f). */
+ uint32x4_t exponent_bias;
};
/* maxerr: 1.45358 +0.5 ulp. */
#define V_EXPF_DATA \
{ \
- .poly = { V4 (0x1.0e4020p-7f), V4 (0x1.573e2ep-5f), V4 (0x1.555e66p-3f), \
- V4 (0x1.fffdb6p-2f), V4 (0x1.ffffecp-1f) }, \
- .shift = V4 (0x1.8p23f), \
- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \
+ .c0 = 0x1.0e4020p-7f, .c1 = V4 (0x1.573e2ep-5f), .c2 = 0x1.555e66p-3f, \
+ .c3 = V4 (0x1.fffdb6p-2f), .c4 = V4 (0x1.ffffecp-1f), \
+ .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \
+ .inv_ln2 = V4 (0x1.715476p+0f), .exponent_bias = V4 (0x3f800000), \
}
-#define ExponentBias v_u32 (0x3f800000) /* asuint(1.0f). */
-#define C(i) d->poly[i]
-
static inline float32x4_t
v_expf_inline (float32x4_t x, const struct v_expf_data *d)
{
- /* Helper routine for calculating exp(x).
+ /* Helper routine for calculating exp(ax).
Copied from v_expf.c, with all special-case handling removed - the
calling routine should handle special values if required. */
- /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
- x = ln2*n + r, with r in [-ln2/2, ln2/2]. */
- float32x4_t n, r, z;
- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2);
- z = vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0);
- n = vsubq_f32 (z, d->shift);
- r = vfmsq_laneq_f32 (x, n, invln2_and_ln2, 1);
- r = vfmsq_laneq_f32 (r, n, invln2_and_ln2, 2);
- uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23);
- float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias));
+ /* exp(ax) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]
+ ax = ln2*n + r, with r in [-ln2/2, ln2/2]. */
+ float32x4_t ax = vabsq_f32 (x);
+ float32x4_t ln2_c02 = vld1q_f32 (&d->ln2_hi);
+ float32x4_t n = vrndaq_f32 (vmulq_f32 (ax, d->inv_ln2));
+ float32x4_t r = vfmsq_laneq_f32 (ax, n, ln2_c02, 0);
+ r = vfmsq_laneq_f32 (r, n, ln2_c02, 1);
+ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 23);
+ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias));
/* Custom order-4 Estrin avoids building high order monomial. */
float32x4_t r2 = vmulq_f32 (r, r);
- float32x4_t p, q, poly;
- p = vfmaq_f32 (C (1), C (0), r);
- q = vfmaq_f32 (C (3), C (2), r);
+ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, ln2_c02, 2);
+ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, ln2_c02, 3);
q = vfmaq_f32 (q, p, r2);
- p = vmulq_f32 (C (4), r);
- poly = vfmaq_f32 (p, q, r2);
+ p = vmulq_f32 (d->c4, r);
+ float32x4_t poly = vfmaq_f32 (p, q, r2);
return vfmaq_f32 (scale, poly, scale);
}
-
#endif
diff --git a/sysdeps/aarch64/fpu/v_expm1_inline.h b/sysdeps/aarch64/fpu/v_expm1_inline.h
new file mode 100644
index 0000000..46f6092
--- /dev/null
+++ b/sysdeps/aarch64/fpu/v_expm1_inline.h
@@ -0,0 +1,97 @@
+/* Double-precision inline helper for vector (Advanced SIMD) expm1 function
+
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef AARCH64_FPU_V_EXPM1_INLINE_H
+#define AARCH64_FPU_V_EXPM1_INLINE_H
+
+#include "v_math.h"
+
+struct v_expm1_data
+{
+ float64x2_t c2, c4, c6, c8;
+ float64x2_t invln2;
+ int64x2_t exponent_bias;
+ double c1, c3, c5, c7, c9, c10;
+ double ln2[2];
+};
+
+/* Generated using fpminimax, with degree=12 in [log(2)/2, log(2)/2]. */
+#define V_EXPM1_DATA \
+ { \
+ .c1 = 0x1.5555555555559p-3, .c2 = V2 (0x1.555555555554bp-5), \
+ .c3 = 0x1.111111110f663p-7, .c4 = V2 (0x1.6c16c16c1b5f3p-10), \
+ .c5 = 0x1.a01a01affa35dp-13, .c6 = V2 (0x1.a01a018b4ecbbp-16), \
+ .c7 = 0x1.71ddf82db5bb4p-19, .c8 = V2 (0x1.27e517fc0d54bp-22), \
+ .c9 = 0x1.af5eedae67435p-26, .c10 = 0x1.1f143d060a28ap-29, \
+ .ln2 = { 0x1.62e42fefa39efp-1, 0x1.abc9e3b39803fp-56 }, \
+ .invln2 = V2 (0x1.71547652b82fep0), \
+ .exponent_bias = V2 (0x3ff0000000000000), \
+ }
+
+static inline float64x2_t
+expm1_inline (float64x2_t x, const struct v_expm1_data *d)
+{
+ /* Helper routine for calculating exp(x) - 1. */
+
+ float64x2_t ln2 = vld1q_f64 (&d->ln2[0]);
+
+ /* Reduce argument to smaller range:
+ Let i = round(x / ln2)
+ and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
+ exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
+ where 2^i is exact because i is an integer. */
+ float64x2_t n = vrndaq_f64 (vmulq_f64 (x, d->invln2));
+ int64x2_t i = vcvtq_s64_f64 (n);
+ float64x2_t f = vfmsq_laneq_f64 (x, n, ln2, 0);
+ f = vfmsq_laneq_f64 (f, n, ln2, 1);
+
+ /* Approximate expm1(f) using polynomial.
+ Taylor expansion for expm1(x) has the form:
+ x + ax^2 + bx^3 + cx^4 ....
+ So we calculate the polynomial P(f) = a + bf + cf^2 + ...
+ and assemble the approximation expm1(f) ~= f + f^2 * P(f). */
+ float64x2_t f2 = vmulq_f64 (f, f);
+ float64x2_t f4 = vmulq_f64 (f2, f2);
+ float64x2_t lane_consts_13 = vld1q_f64 (&d->c1);
+ float64x2_t lane_consts_57 = vld1q_f64 (&d->c5);
+ float64x2_t lane_consts_910 = vld1q_f64 (&d->c9);
+ float64x2_t p01 = vfmaq_laneq_f64 (v_f64 (0.5), f, lane_consts_13, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, f, lane_consts_13, 1);
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, f, lane_consts_57, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, f, lane_consts_57, 1);
+ float64x2_t p03 = vfmaq_f64 (p01, f2, p23);
+ float64x2_t p47 = vfmaq_f64 (p45, f2, p67);
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, f, lane_consts_910, 0);
+ float64x2_t p = vfmaq_laneq_f64 (p89, f2, lane_consts_910, 1);
+ p = vfmaq_f64 (p47, f4, p);
+ p = vfmaq_f64 (p03, f4, p);
+
+ p = vfmaq_f64 (f, f2, p);
+
+ /* Assemble the result.
+ expm1(x) ~= 2^i * (p + 1) - 1
+ Let t = 2^i. */
+ int64x2_t u = vaddq_s64 (vshlq_n_s64 (i, 52), d->exponent_bias);
+ float64x2_t t = vreinterpretq_f64_s64 (u);
+
+ /* expm1(x) ~= p * t + (t - 1). */
+ return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t);
+}
+
+#endif
diff --git a/sysdeps/aarch64/fpu/v_expm1f_inline.h b/sysdeps/aarch64/fpu/v_expm1f_inline.h
index 59b552d..bfad1f0 100644
--- a/sysdeps/aarch64/fpu/v_expm1f_inline.h
+++ b/sysdeps/aarch64/fpu/v_expm1f_inline.h
@@ -1,6 +1,6 @@
/* Single-precision inline helper for vector (Advanced SIMD) expm1 function
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,48 +21,46 @@
#define AARCH64_FPU_V_EXPM1F_INLINE_H
#include "v_math.h"
-#include "poly_advsimd_f32.h"
struct v_expm1f_data
{
- float32x4_t poly[5];
- float invln2_and_ln2[4];
- float32x4_t shift;
+ float32x4_t c0, c2;
int32x4_t exponent_bias;
+ float c1, c3, inv_ln2, c4;
+ float ln2_hi, ln2_lo;
};
/* Coefficients generated using fpminimax with degree=5 in [-log(2)/2,
- log(2)/2]. Exponent bias is asuint(1.0f).
- invln2_and_ln2 Stores constants: invln2, ln2_lo, ln2_hi, 0. */
+ log(2)/2]. Exponent bias is asuint(1.0f). */
#define V_EXPM1F_DATA \
{ \
- .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5), \
- V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) }, \
- .shift = V4 (0x1.8p23f), .exponent_bias = V4 (0x3f800000), \
- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \
+ .c0 = V4 (0x1.fffffep-2), .c1 = 0x1.5554aep-3, .c2 = V4 (0x1.555736p-5), \
+ .c3 = 0x1.12287cp-7, .c4 = 0x1.6b55a2p-10, \
+ .exponent_bias = V4 (0x3f800000), .inv_ln2 = 0x1.715476p+0f, \
+ .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \
}
static inline float32x4_t
expm1f_inline (float32x4_t x, const struct v_expm1f_data *d)
{
- /* Helper routine for calculating exp(x) - 1.
- Copied from v_expm1f_1u6.c, with all special-case handling removed - the
- calling routine should handle special values if required. */
+ /* Helper routine for calculating exp(x) - 1. */
+
+ float32x2_t ln2 = vld1_f32 (&d->ln2_hi);
+ float32x4_t lane_consts = vld1q_f32 (&d->c1);
/* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */
- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2);
- float32x4_t j
- = vsubq_f32 (vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0), d->shift);
+ float32x4_t j = vrndaq_f32 (vmulq_laneq_f32 (x, lane_consts, 2));
int32x4_t i = vcvtq_s32_f32 (j);
- float32x4_t f = vfmsq_laneq_f32 (x, j, invln2_and_ln2, 1);
- f = vfmsq_laneq_f32 (f, j, invln2_and_ln2, 2);
+ float32x4_t f = vfmsq_lane_f32 (x, j, ln2, 0);
+ f = vfmsq_lane_f32 (f, j, ln2, 1);
- /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f).
- Uses Estrin scheme, where the main _ZGVnN4v_expm1f routine uses
- Horner. */
+ /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f). */
float32x4_t f2 = vmulq_f32 (f, f);
float32x4_t f4 = vmulq_f32 (f2, f2);
- float32x4_t p = v_estrin_4_f32 (f, f2, f4, d->poly);
+ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, f, lane_consts, 0);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, f, lane_consts, 1);
+ float32x4_t p = vfmaq_f32 (p01, f2, p23);
+ p = vfmaq_laneq_f32 (p, f4, lane_consts, 3);
p = vfmaq_f32 (f, f2, p);
/* t = 2^i. */
diff --git a/sysdeps/aarch64/fpu/v_log10_data.c b/sysdeps/aarch64/fpu/v_log10_data.c
index 2d6a1d9..becd40b 100644
--- a/sysdeps/aarch64/fpu/v_log10_data.c
+++ b/sysdeps/aarch64/fpu/v_log10_data.c
@@ -1,6 +1,6 @@
/* Lookup table for double-precision log10(x) vector function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_log1p_inline.h b/sysdeps/aarch64/fpu/v_log1p_inline.h
index 242e43b..d38f8fb 100644
--- a/sysdeps/aarch64/fpu/v_log1p_inline.h
+++ b/sysdeps/aarch64/fpu/v_log1p_inline.h
@@ -1,6 +1,6 @@
/* Helper for double-precision Advanced SIMD routines which depend on log1p
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,29 +21,30 @@
#define AARCH64_FPU_V_LOG1P_INLINE_H
#include "v_math.h"
-#include "poly_advsimd_f64.h"
struct v_log1p_data
{
- float64x2_t poly[19], ln2[2];
+ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16;
uint64x2_t hf_rt2_top, one_m_hf_rt2_top, umask;
int64x2_t one_top;
+ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c18;
+ double ln2[2];
};
/* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. */
#define V_LOG1P_CONSTANTS_TABLE \
{ \
- .poly = { V2 (-0x1.ffffffffffffbp-2), V2 (0x1.55555555551a9p-2), \
- V2 (-0x1.00000000008e3p-2), V2 (0x1.9999999a32797p-3), \
- V2 (-0x1.555555552fecfp-3), V2 (0x1.249248e071e5ap-3), \
- V2 (-0x1.ffffff8bf8482p-4), V2 (0x1.c71c8f07da57ap-4), \
- V2 (-0x1.9999ca4ccb617p-4), V2 (0x1.7459ad2e1dfa3p-4), \
- V2 (-0x1.554d2680a3ff2p-4), V2 (0x1.3b4c54d487455p-4), \
- V2 (-0x1.2548a9ffe80e6p-4), V2 (0x1.0f389a24b2e07p-4), \
- V2 (-0x1.eee4db15db335p-5), V2 (0x1.e95b494d4a5ddp-5), \
- V2 (-0x1.15fdf07cb7c73p-4), V2 (0x1.0310b70800fcfp-4), \
- V2 (-0x1.cfa7385bdb37ep-6) }, \
- .ln2 = { V2 (0x1.62e42fefa3800p-1), V2 (0x1.ef35793c76730p-45) }, \
+ .c0 = V2 (-0x1.ffffffffffffbp-2), .c1 = 0x1.55555555551a9p-2, \
+ .c2 = V2 (-0x1.00000000008e3p-2), .c3 = 0x1.9999999a32797p-3, \
+ .c4 = V2 (-0x1.555555552fecfp-3), .c5 = 0x1.249248e071e5ap-3, \
+ .c6 = V2 (-0x1.ffffff8bf8482p-4), .c7 = 0x1.c71c8f07da57ap-4, \
+ .c8 = V2 (-0x1.9999ca4ccb617p-4), .c9 = 0x1.7459ad2e1dfa3p-4, \
+ .c10 = V2 (-0x1.554d2680a3ff2p-4), .c11 = 0x1.3b4c54d487455p-4, \
+ .c12 = V2 (-0x1.2548a9ffe80e6p-4), .c13 = 0x1.0f389a24b2e07p-4, \
+ .c14 = V2 (-0x1.eee4db15db335p-5), .c15 = 0x1.e95b494d4a5ddp-5, \
+ .c16 = V2 (-0x1.15fdf07cb7c73p-4), .c17 = 0x1.0310b70800fcfp-4, \
+ .c18 = -0x1.cfa7385bdb37ep-6, \
+ .ln2 = { 0x1.62e42fefa3800p-1, 0x1.ef35793c76730p-45 }, \
.hf_rt2_top = V2 (0x3fe6a09e00000000), \
.one_m_hf_rt2_top = V2 (0x00095f6200000000), \
.umask = V2 (0x000fffff00000000), .one_top = V2 (0x3ff) \
@@ -52,18 +53,44 @@ struct v_log1p_data
#define BottomMask v_u64 (0xffffffff)
static inline float64x2_t
+eval_poly (float64x2_t m, float64x2_t m2, const struct v_log1p_data *d)
+{
+ /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner. */
+ float64x2_t c13 = vld1q_f64 (&d->c1);
+ float64x2_t c57 = vld1q_f64 (&d->c5);
+ float64x2_t c911 = vld1q_f64 (&d->c9);
+ float64x2_t c1315 = vld1q_f64 (&d->c13);
+ float64x2_t c1718 = vld1q_f64 (&d->c17);
+ float64x2_t p1617 = vfmaq_laneq_f64 (d->c16, m, c1718, 0);
+ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, m, c1315, 1);
+ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, m, c1315, 0);
+ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, m, c911, 1);
+ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, m, c911, 0);
+ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, m, c57, 1);
+ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, m, c57, 0);
+ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, m, c13, 1);
+ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, m, c13, 0);
+ float64x2_t p = vfmaq_laneq_f64 (p1617, m2, c1718, 1);
+ p = vfmaq_f64 (p1415, m2, p);
+ p = vfmaq_f64 (p1213, m2, p);
+ p = vfmaq_f64 (p1011, m2, p);
+ p = vfmaq_f64 (p89, m2, p);
+ p = vfmaq_f64 (p67, m2, p);
+ p = vfmaq_f64 (p45, m2, p);
+ p = vfmaq_f64 (p23, m2, p);
+ return vfmaq_f64 (p01, m2, p);
+}
+
+static inline float64x2_t
log1p_inline (float64x2_t x, const struct v_log1p_data *d)
{
- /* Helper for calculating log(x + 1). Copied from v_log1p_2u5.c, with several
- modifications:
+ /* Helper for calculating log(x + 1):
- No special-case handling - this should be dealt with by the caller.
- - Pairwise Horner polynomial evaluation for improved accuracy.
- Optionally simulate the shortcut for k=0, used in the scalar routine,
- using v_sel, for improved accuracy when the argument to log1p is close to
- 0. This feature is enabled by defining WANT_V_LOG1P_K0_SHORTCUT as 1 in
- the source of the caller before including this file.
- See v_log1pf_2u1.c for details of the algorithm. */
- float64x2_t m = vaddq_f64 (x, v_f64 (1));
+ using v_sel, for improved accuracy when the argument to log1p is close
+ to 0. This feature is enabled by defining WANT_V_LOG1P_K0_SHORTCUT as 1
+ in the source of the caller before including this file. */
+ float64x2_t m = vaddq_f64 (x, v_f64 (1.0));
uint64x2_t mi = vreinterpretq_u64_f64 (m);
uint64x2_t u = vaddq_u64 (mi, d->one_m_hf_rt2_top);
@@ -74,14 +101,14 @@ log1p_inline (float64x2_t x, const struct v_log1p_data *d)
/* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */
uint64x2_t utop = vaddq_u64 (vandq_u64 (u, d->umask), d->hf_rt2_top);
uint64x2_t u_red = vorrq_u64 (utop, vandq_u64 (mi, BottomMask));
- float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1));
+ float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1.0));
/* Correction term c/m. */
- float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1))), m);
+ float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1.0))), m);
#ifndef WANT_V_LOG1P_K0_SHORTCUT
-#error \
- "Cannot use v_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0"
+# error \
+ "Cannot use v_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0"
#elif WANT_V_LOG1P_K0_SHORTCUT
/* Shortcut if k is 0 - set correction term to 0 and f to x. The result is
that the approximation is solely the polynomial. */
@@ -92,11 +119,12 @@ log1p_inline (float64x2_t x, const struct v_log1p_data *d)
/* Approximate log1p(f) on the reduced input using a polynomial. */
float64x2_t f2 = vmulq_f64 (f, f);
- float64x2_t p = v_pw_horner_18_f64 (f, f2, d->poly);
+ float64x2_t p = eval_poly (f, f2, d);
/* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */
- float64x2_t ylo = vfmaq_f64 (cm, k, d->ln2[1]);
- float64x2_t yhi = vfmaq_f64 (f, k, d->ln2[0]);
+ float64x2_t ln2 = vld1q_f64 (&d->ln2[0]);
+ float64x2_t ylo = vfmaq_laneq_f64 (cm, k, ln2, 1);
+ float64x2_t yhi = vfmaq_laneq_f64 (f, k, ln2, 0);
return vfmaq_f64 (vaddq_f64 (ylo, yhi), f2, p);
}
diff --git a/sysdeps/aarch64/fpu/v_log1pf_inline.h b/sysdeps/aarch64/fpu/v_log1pf_inline.h
index 643a6cd..ad84d5c 100644
--- a/sysdeps/aarch64/fpu/v_log1pf_inline.h
+++ b/sysdeps/aarch64/fpu/v_log1pf_inline.h
@@ -1,6 +1,6 @@
/* Helper for single-precision Advanced SIMD routines which depend on log1p
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,54 +25,81 @@
struct v_log1pf_data
{
- float32x4_t poly[8], ln2;
uint32x4_t four;
int32x4_t three_quarters;
+ float c0, c3, c5, c7;
+ float32x4_t c4, c6, c1, c2, ln2;
};
/* Polynomial generated using FPMinimax in [-0.25, 0.5]. First two coefficients
(1, -0.5) are not stored as they can be generated more efficiently. */
#define V_LOG1PF_CONSTANTS_TABLE \
{ \
- .poly \
- = { V4 (0x1.5555aap-2f), V4 (-0x1.000038p-2f), V4 (0x1.99675cp-3f), \
- V4 (-0x1.54ef78p-3f), V4 (0x1.28a1f4p-3f), V4 (-0x1.0da91p-3f), \
- V4 (0x1.abcb6p-4f), V4 (-0x1.6f0d5ep-5f) }, \
- .ln2 = V4 (0x1.62e43p-1f), .four = V4 (0x40800000), \
- .three_quarters = V4 (0x3f400000) \
+ .c0 = 0x1.5555aap-2f, .c1 = V4 (-0x1.000038p-2f), \
+ .c2 = V4 (0x1.99675cp-3f), .c3 = -0x1.54ef78p-3f, \
+ .c4 = V4 (0x1.28a1f4p-3f), .c5 = -0x1.0da91p-3f, \
+ .c6 = V4 (0x1.abcb6p-4f), .c7 = -0x1.6f0d5ep-5f, \
+ .ln2 = V4 (0x1.62e43p-1f), .four = V4 (0x40800000), \
+ .three_quarters = V4 (0x3f400000) \
}
static inline float32x4_t
-eval_poly (float32x4_t m, const float32x4_t *c)
+eval_poly (float32x4_t m, const struct v_log1pf_data *d)
{
- /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner (main routine
- uses split Estrin, but this way reduces register pressure in the calling
- routine). */
- float32x4_t q = vfmaq_f32 (v_f32 (-0.5), m, c[0]);
+ /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner. */
+ float32x4_t c0357 = vld1q_f32 (&d->c0);
+ float32x4_t q = vfmaq_laneq_f32 (v_f32 (-0.5), m, c0357, 0);
float32x4_t m2 = vmulq_f32 (m, m);
- q = vfmaq_f32 (m, m2, q);
- float32x4_t p = v_pw_horner_6_f32 (m, m2, c + 1);
+ float32x4_t p67 = vfmaq_laneq_f32 (d->c6, m, c0357, 3);
+ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, m, c0357, 2);
+ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, m, c0357, 1);
+ float32x4_t p = vfmaq_f32 (p45, m2, p67);
+ p = vfmaq_f32 (p23, m2, p);
+ p = vfmaq_f32 (d->c1, m, p);
p = vmulq_f32 (m2, p);
- return vfmaq_f32 (q, m2, p);
+ p = vfmaq_f32 (m, m2, p);
+ return vfmaq_f32 (p, m2, q);
}
static inline float32x4_t
-log1pf_inline (float32x4_t x, const struct v_log1pf_data d)
+log1pf_inline (float32x4_t x, const struct v_log1pf_data *d)
{
- /* Helper for calculating log(x + 1). Copied from log1pf_2u1.c, with no
- special-case handling. See that file for details of the algorithm. */
+ /* Helper for calculating log(x + 1). */
+
+ /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
+ is in [-0.25, 0.5]):
+ log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
+
+ We approximate log1p(m) with a polynomial, then scale by
+ k*log(2). Instead of doing this directly, we use an intermediate
+ scale factor s = 4*k*log(2) to ensure the scale is representable
+ as a normalised fp32 number. */
float32x4_t m = vaddq_f32 (x, v_f32 (1.0f));
+
+ /* Choose k to scale x to the range [-1/4, 1/2]. */
int32x4_t k
- = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d.three_quarters),
+ = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d->three_quarters),
v_s32 (0xff800000));
uint32x4_t ku = vreinterpretq_u32_s32 (k);
- float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d.four, ku));
+
+ /* Scale up to ensure that the scale factor is representable as normalised
+ fp32 number, and scale m down accordingly. */
+ float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d->four, ku));
+
+ /* Scale x by exponent manipulation. */
float32x4_t m_scale
= vreinterpretq_f32_u32 (vsubq_u32 (vreinterpretq_u32_f32 (x), ku));
m_scale = vaddq_f32 (m_scale, vfmaq_f32 (v_f32 (-1.0f), v_f32 (0.25f), s));
- float32x4_t p = eval_poly (m_scale, d.poly);
+
+ /* Evaluate polynomial on the reduced interval. */
+ float32x4_t p = eval_poly (m_scale, d);
+
+ /* The scale factor to be applied back at the end - by multiplying float(k)
+ by 2^-23 we get the unbiased exponent of k. */
float32x4_t scale_back = vmulq_f32 (vcvtq_f32_s32 (k), v_f32 (0x1.0p-23f));
- return vfmaq_f32 (p, scale_back, d.ln2);
+
+ /* Apply the scaling back. */
+ return vfmaq_f32 (p, scale_back, d->ln2);
}
#endif
diff --git a/sysdeps/aarch64/fpu/v_log2_data.c b/sysdeps/aarch64/fpu/v_log2_data.c
index 41bc6ca..4a61a5b 100644
--- a/sysdeps/aarch64/fpu/v_log2_data.c
+++ b/sysdeps/aarch64/fpu/v_log2_data.c
@@ -1,6 +1,6 @@
/* Coefficients and table entries for vector log2
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_log_data.c b/sysdeps/aarch64/fpu/v_log_data.c
index 510b3e7..8f26cbd 100644
--- a/sysdeps/aarch64/fpu/v_log_data.c
+++ b/sysdeps/aarch64/fpu/v_log_data.c
@@ -1,6 +1,6 @@
/* Lookup table for double-precision log(x) vector function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_math.h b/sysdeps/aarch64/fpu/v_math.h
index 12824fc..35d1b56 100644
--- a/sysdeps/aarch64/fpu/v_math.h
+++ b/sysdeps/aarch64/fpu/v_math.h
@@ -1,5 +1,5 @@
/* Utilities for Advanced SIMD libmvec routines.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_pow_exp_data.c b/sysdeps/aarch64/fpu/v_pow_exp_data.c
index 8b7fb83..0f24368 100644
--- a/sysdeps/aarch64/fpu/v_pow_exp_data.c
+++ b/sysdeps/aarch64/fpu/v_pow_exp_data.c
@@ -1,6 +1,6 @@
/* Shared data between exp, exp2 and pow.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_pow_log_data.c b/sysdeps/aarch64/fpu/v_pow_log_data.c
index 0242fff..01bf6f4 100644
--- a/sysdeps/aarch64/fpu/v_pow_log_data.c
+++ b/sysdeps/aarch64/fpu/v_pow_log_data.c
@@ -1,6 +1,6 @@
/* Data for the log part of pow.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/v_powf_data.c b/sysdeps/aarch64/fpu/v_powf_data.c
index f789b84..b727136 100644
--- a/sysdeps/aarch64/fpu/v_powf_data.c
+++ b/sysdeps/aarch64/fpu/v_powf_data.c
@@ -1,6 +1,6 @@
/* Coefficients for single-precision SVE pow(x) function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h
index 7f0a8aa..3af4852 100644
--- a/sysdeps/aarch64/fpu/vecmath_config.h
+++ b/sysdeps/aarch64/fpu/vecmath_config.h
@@ -1,5 +1,5 @@
/* Configuration for libmvec routines.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,49 +75,37 @@ extern const struct v_log10_data
} table[1 << V_LOG10_TABLE_BITS];
} __v_log10_data attribute_hidden;
-extern const struct erff_data
+extern const struct v_erff_data
{
struct
{
float erf, scale;
} tab[513];
-} __erff_data attribute_hidden;
+} __v_erff_data attribute_hidden;
-extern const struct sv_erff_data
-{
- float erf[513];
- float scale[513];
-} __sv_erff_data attribute_hidden;
-
-extern const struct erf_data
+extern const struct v_erf_data
{
struct
{
double erf, scale;
} tab[769];
-} __erf_data attribute_hidden;
-
-extern const struct sv_erf_data
-{
- double erf[769];
- double scale[769];
-} __sv_erf_data attribute_hidden;
+} __v_erf_data attribute_hidden;
-extern const struct erfc_data
+extern const struct v_erfc_data
{
struct
{
double erfc, scale;
} tab[3488];
-} __erfc_data attribute_hidden;
+} __v_erfc_data attribute_hidden;
-extern const struct erfcf_data
+extern const struct v_erfcf_data
{
struct
{
float erfc, scale;
} tab[645];
-} __erfcf_data attribute_hidden;
+} __v_erfcf_data attribute_hidden;
/* Some data for AdvSIMD and SVE pow's internal exp and log. */
#define V_POW_EXP_TABLE_BITS 8
diff --git a/sysdeps/aarch64/hp-timing.h b/sysdeps/aarch64/hp-timing.h
index 1e6dccd..d0620df 100644
--- a/sysdeps/aarch64/hp-timing.h
+++ b/sysdeps/aarch64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. AArch64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/jmpbuf-offsets.h b/sysdeps/aarch64/jmpbuf-offsets.h
index 632328c..2720526 100644
--- a/sysdeps/aarch64/jmpbuf-offsets.h
+++ b/sysdeps/aarch64/jmpbuf-offsets.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -39,6 +39,68 @@
#define JB_D14 20
#define JB_D15 21
+/* The target specific part of jmp_buf has no space for expansion but
+ the public jmp_buf ABI type has. Unfortunately there is another type
+ that is used with setjmp APIs and exposed by thread cancellation (in
+ binaries built with -fno-exceptions) which complicates the situation.
+
+ // Internal layout of the public jmp_buf type on AArch64.
+ // This is passed to setjmp, longjmp, sigsetjmp, siglongjmp.
+ struct
+ {
+ uint64_t jmpbuf[22]; // Target specific part.
+ uint32_t mask_was_saved; // savemask bool used by sigsetjmp/siglongjmp.
+ uint32_t pad;
+ uint64_t saved_mask; // sigset_t bits used on linux.
+ uint64_t unused[15]; // sigset_t bits not used on linux.
+ };
+
+ // Internal layout of the public __pthread_unwind_buf_t type.
+ // This is passed to sigsetjmp with !savemask and to the internal
+ // __libc_longjmp (currently alias of longjmp on AArch64).
+ struct
+ {
+ uint64_t jmpbuf[22]; // Must match jmp_buf.
+ uint32_t mask_was_saved; // Must match jmp_buf, always 0.
+ uint32_t pad;
+ void *prev; // List for unwinding.
+ void *cleanup; // Cleanup handlers.
+ uint32_t canceltype; // 1 bit cancellation type.
+ uint32_t pad2;
+ void *pad3;
+ };
+
+ Ideally only the target specific part of jmp_buf (A) is accessed by
+ __setjmp and __longjmp. But that is always embedded into one of the
+ two types above so the bits that are unused in those types (B) may be
+ reused for target specific purposes. Setjmp can't distinguish between
+ jmp_buf and __pthread_unwind_buf_t, but longjmp can: only an internal
+ longjmp call uses the latter, so state that is not needed for cancel
+ cleanups can go to fields (C). If generic code is refactored then the
+ usage of additional fields can be optimized (D). And some fields are
+ only accessible in the savedmask case (E). Reusability of jmp_buf
+ fields on AArch64 for target purposes:
+
+ struct
+ {
+ uint64_t A[22]; // 0 .. 176
+ uint32_t D; // 176 .. 180
+ uint32_t B; // 180 .. 184
+ uint64_t D; // 184 .. 192
+ uint64_t C; // 192 .. 200
+ uint32_t C; // 200 .. 204
+ uint32_t B; // 204 .. 208
+ uint64_t B; // 208 .. 216
+ uint64_t E[12]; // 216 .. 312
+ }
+
+ The B fields can be used with minimal glibc code changes. We need a
+ 64 bit field for the Guarded Control Stack pointer (GCSPR_EL0) which
+ can use a C field too as cancellation cleanup does not execute RET
+ for a previous BL of the cancelled thread, but that would require a
+ custom __libc_longjmp. This layout can change in the future. */
+#define JB_GCSPR 208
+
#ifndef __ASSEMBLER__
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/aarch64/jmpbuf-unwind.h b/sysdeps/aarch64/jmpbuf-unwind.h
index 469e853..a04d55a 100644
--- a/sysdeps/aarch64/jmpbuf-unwind.h
+++ b/sysdeps/aarch64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/ldsodefs.h b/sysdeps/aarch64/ldsodefs.h
index 5999daa..b66ae23 100644
--- a/sysdeps/aarch64/ldsodefs.h
+++ b/sysdeps/aarch64/ldsodefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/libc-mtag.h b/sysdeps/aarch64/libc-mtag.h
index 7b7e65b..e41dc47 100644
--- a/sysdeps/aarch64/libc-mtag.h
+++ b/sysdeps/aarch64/libc-mtag.h
@@ -1,5 +1,5 @@
/* libc-internal interface for tagged (colored) memory support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/libc-start.c b/sysdeps/aarch64/libc-start.c
index a293849..53fe801 100644
--- a/sysdeps/aarch64/libc-start.c
+++ b/sysdeps/aarch64/libc-start.c
@@ -1,5 +1,5 @@
/* Override csu/libc-start.c on AArch64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/libc-tls.c b/sysdeps/aarch64/libc-tls.c
index 182283d..fdba205 100644
--- a/sysdeps/aarch64/libc-tls.c
+++ b/sysdeps/aarch64/libc-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps
deleted file mode 100644
index 846fb2c..0000000
--- a/sysdeps/aarch64/libm-test-ulps
+++ /dev/null
@@ -1,1734 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_advsimd":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_sve":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_advsimd":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_sve":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_advsimd":
-double: 2
-float: 2
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_sve":
-double: 2
-float: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_advsimd":
-double: 1
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_sve":
-double: 1
-float: 2
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-ldouble: 2
-
-Function: "atan2_advsimd":
-double: 1
-float: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_sve":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan_advsimd":
-double: 1
-float: 1
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_sve":
-double: 1
-float: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_advsimd":
-double: 1
-float: 1
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_sve":
-double: 2
-float: 1
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_advsimd":
-double: 1
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_sve":
-double: 1
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_advsimd":
-double: 2
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "cos_sve":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_advsimd":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_sve":
-double: 2
-float: 2
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_advsimd":
-double: 1
-float: 2
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_sve":
-double: 1
-float: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "erfc_advsimd":
-double: 1
-float: 1
-
-Function: "erfc_downward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "erfc_sve":
-double: 1
-float: 1
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "erfc_upward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp10_advsimd":
-double: 1
-float: 2
-
-Function: "exp10_downward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10_sve":
-double: 1
-float: 1
-
-Function: "exp10_towardzero":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 4
-float: 2
-ldouble: 3
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 3
-ldouble: 6
-
-Function: "exp10m1_upward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: "exp2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_advsimd":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_sve":
-double: 1
-float: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "exp_advsimd":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_sve":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_advsimd":
-double: 2
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_sve":
-double: 2
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "gamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "gamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_advsimd":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_sve":
-double: 1
-float: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 3
-float: 8
-ldouble: 6
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 9
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 9
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 4
-ldouble: 7
-
-Function: "lgamma":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "log":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_advsimd":
-double: 1
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_sve":
-double: 1
-float: 2
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 3
-ldouble: 4
-
-Function: "log10p1_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "log10p1_upward":
-double: 2
-float: 3
-ldouble: 4
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_advsimd":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log1p_sve":
-double: 1
-float: 1
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log2_advsimd":
-double: 1
-float: 2
-
-Function: "log2_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "log2_sve":
-double: 1
-float: 2
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-float: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_advsimd":
-double: 1
-float: 3
-
-Function: "log_downward":
-float: 2
-ldouble: 1
-
-Function: "log_sve":
-double: 1
-float: 3
-
-Function: "log_towardzero":
-float: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_advsimd":
-double: 1
-float: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_sve":
-double: 1
-float: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_advsimd":
-double: 2
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sin_sve":
-double: 2
-float: 1
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_advsimd":
-double: 2
-float: 1
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_sve":
-double: 2
-float: 1
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_advsimd":
-double: 2
-float: 2
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_sve":
-double: 2
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_advsimd":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_sve":
-double: 2
-float: 2
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 2
-float: 8
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 8
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 3
-float: 8
-ldouble: 3
-
-Function: "y0_upward":
-double: 2
-float: 8
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 8
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/aarch64/libm-test-ulps-name b/sysdeps/aarch64/libm-test-ulps-name
deleted file mode 100644
index 1f66c5c..0000000
--- a/sysdeps/aarch64/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-AArch64
diff --git a/sysdeps/aarch64/linkmap.h b/sysdeps/aarch64/linkmap.h
index 56a63fc..e56c890 100644
--- a/sysdeps/aarch64/linkmap.h
+++ b/sysdeps/aarch64/linkmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -23,4 +23,5 @@ struct link_map_machine
ElfW(Addr) plt; /* Address of .plt */
void *tlsdesc_table; /* Address of TLS descriptor hash table. */
bool bti_fail; /* Failed to enable Branch Target Identification. */
+ bool gcs; /* Guarded Control Stack marking. */
};
diff --git a/sysdeps/aarch64/machine-gmon.h b/sysdeps/aarch64/machine-gmon.h
index 6890b99..05323c9 100644
--- a/sysdeps/aarch64/machine-gmon.h
+++ b/sysdeps/aarch64/machine-gmon.h
@@ -1,5 +1,5 @@
/* AArch64 definitions for profiling support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,9 +27,8 @@ static void mcount_internal (u_long frompc, u_long selfpc);
#define _MCOUNT_DECL(frompc, selfpc) \
static inline void mcount_internal (u_long frompc, u_long selfpc)
-/* Note: strip_pac is needed for frompc because of gcc PR target/94791. */
#define MCOUNT \
void __mcount (void *frompc) \
{ \
- mcount_internal ((u_long) strip_pac (frompc), (u_long) RETURN_ADDRESS (0)); \
+ mcount_internal ((u_long) frompc, (u_long) RETURN_ADDRESS (0)); \
}
diff --git a/sysdeps/aarch64/math-tests-trap.h b/sysdeps/aarch64/math-tests-trap.h
index 72a58ca..543d545 100644
--- a/sysdeps/aarch64/math-tests-trap.h
+++ b/sysdeps/aarch64/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
AArch64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/mcount.c b/sysdeps/aarch64/mcount.c
index 1651ab9..0a26c6c 100644
--- a/sysdeps/aarch64/mcount.c
+++ b/sysdeps/aarch64/mcount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/memchr.S b/sysdeps/aarch64/memchr.S
index a9fa405..76ed5f4 100644
--- a/sysdeps/aarch64/memchr.S
+++ b/sysdeps/aarch64/memchr.S
@@ -1,6 +1,6 @@
/* memchr - find a character in a memory zone
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -57,8 +57,6 @@
exactly which byte matched. */
ENTRY (MEMCHR)
- PTR_ARG (0)
- SIZE_ARG (2)
bic src, srcin, 15
cbz cntin, L(nomatch)
ld1 {vdata.16b}, [src]
diff --git a/sysdeps/aarch64/memcmp.S b/sysdeps/aarch64/memcmp.S
index 5afa794..a7482f6 100644
--- a/sysdeps/aarch64/memcmp.S
+++ b/sysdeps/aarch64/memcmp.S
@@ -1,6 +1,6 @@
/* memcmp - compare memory
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -44,10 +44,6 @@
ENTRY (memcmp)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
cmp limit, 16
b.lo L(less16)
ldp data1, data3, [src1]
diff --git a/sysdeps/aarch64/memcpy.S b/sysdeps/aarch64/memcpy.S
index f21c21d..d41e617 100644
--- a/sysdeps/aarch64/memcpy.S
+++ b/sysdeps/aarch64/memcpy.S
@@ -1,5 +1,5 @@
/* Generic optimized memcpy using SIMD.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -70,10 +70,6 @@
from the end. */
ENTRY (MEMCPY)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
add srcend, src, count
add dstend, dstin, count
cmp count, 128
@@ -187,10 +183,6 @@ libc_hidden_builtin_def (MEMCPY)
ENTRY (MEMMOVE)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
add srcend, src, count
add dstend, dstin, count
cmp count, 128
diff --git a/sysdeps/aarch64/memrchr.S b/sysdeps/aarch64/memrchr.S
index c5274f5..2586c45 100644
--- a/sysdeps/aarch64/memrchr.S
+++ b/sysdeps/aarch64/memrchr.S
@@ -1,6 +1,6 @@
/* memrchr - find the last occurrence of a byte in a memory block
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -55,8 +55,6 @@
exactly which byte matched. */
ENTRY (__memrchr)
- PTR_ARG (0)
- SIZE_ARG (2)
add end, srcin, cntin
sub endm1, end, 1
bic src, endm1, 15
diff --git a/sysdeps/aarch64/memset-reg.h b/sysdeps/aarch64/memset-reg.h
deleted file mode 100644
index 6c7f60b..0000000
--- a/sysdeps/aarch64/memset-reg.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Register aliases for memset to be used across implementations.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define dstin x0
-#define val x1
-#define valw w1
-#define count x2
-#define dst x3
-#define dstend x4
-#define tmp1 x5
-#define tmp1w w5
-#define tmp2 x6
-#define tmp2w w6
-#define zva_len x7
-#define zva_lenw w7
diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S
index 7ef77ee..5bd1bc7 100644
--- a/sysdeps/aarch64/memset.S
+++ b/sysdeps/aarch64/memset.S
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Generic optimized memset using SIMD.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -17,7 +18,6 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include "memset-reg.h"
#ifndef MEMSET
# define MEMSET memset
@@ -25,167 +25,113 @@
/* Assumptions:
*
- * ARMv8-a, AArch64, unaligned accesses
+ * ARMv8-a, AArch64, Advanced SIMD, unaligned accesses.
*
*/
-ENTRY (MEMSET)
-
- PTR_ARG (0)
- SIZE_ARG (2)
+#define dstin x0
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
+#define zva_val x5
+#define off x3
+#define dstend2 x5
+ENTRY (MEMSET)
dup v0.16B, valw
+ cmp count, 16
+ b.lo L(set_small)
+
add dstend, dstin, count
+ cmp count, 64
+ b.hs L(set_128)
- cmp count, 96
- b.hi L(set_long)
- cmp count, 16
- b.hs L(set_medium)
- mov val, v0.D[0]
+ /* Set 16..63 bytes. */
+ mov off, 16
+ and off, off, count, lsr 1
+ sub dstend2, dstend, off
+ str q0, [dstin]
+ str q0, [dstin, off]
+ str q0, [dstend2, -16]
+ str q0, [dstend, -16]
+ ret
+ .p2align 4
/* Set 0..15 bytes. */
- tbz count, 3, 1f
- str val, [dstin]
- str val, [dstend, -8]
- ret
- nop
-1: tbz count, 2, 2f
- str valw, [dstin]
- str valw, [dstend, -4]
+L(set_small):
+ add dstend, dstin, count
+ cmp count, 4
+ b.lo 2f
+ lsr off, count, 3
+ sub dstend2, dstend, off, lsl 2
+ str s0, [dstin]
+ str s0, [dstin, off, lsl 2]
+ str s0, [dstend2, -4]
+ str s0, [dstend, -4]
ret
+
+ /* Set 0..3 bytes. */
2: cbz count, 3f
+ lsr off, count, 1
strb valw, [dstin]
- tbz count, 1, 3f
- strh valw, [dstend, -2]
+ strb valw, [dstin, off]
+ strb valw, [dstend, -1]
3: ret
- /* Set 17..96 bytes. */
-L(set_medium):
- str q0, [dstin]
- tbnz count, 6, L(set96)
- str q0, [dstend, -16]
- tbz count, 5, 1f
- str q0, [dstin, 16]
- str q0, [dstend, -32]
-1: ret
-
.p2align 4
- /* Set 64..96 bytes. Write 64 bytes from the start and
- 32 bytes from the end. */
-L(set96):
- str q0, [dstin, 16]
+L(set_128):
+ bic dst, dstin, 15
+ cmp count, 128
+ b.hi L(set_long)
+ stp q0, q0, [dstin]
stp q0, q0, [dstin, 32]
+ stp q0, q0, [dstend, -64]
stp q0, q0, [dstend, -32]
ret
- .p2align 3
- nop
+ .p2align 4
L(set_long):
- and valw, valw, 255
- bic dst, dstin, 15
str q0, [dstin]
- cmp count, 256
- ccmp valw, 0, 0, cs
- b.eq L(try_zva)
-L(no_zva):
- sub count, dstend, dst /* Count is 16 too large. */
- sub dst, dst, 16 /* Dst is biased by -32. */
- sub count, count, 64 + 16 /* Adjust count and bias for loop. */
-1: stp q0, q0, [dst, 32]
- stp q0, q0, [dst, 64]!
-L(tail64):
- subs count, count, 64
- b.hi 1b
-2: stp q0, q0, [dstend, -64]
- stp q0, q0, [dstend, -32]
- ret
-
-L(try_zva):
+ str q0, [dst, 16]
+ tst valw, 255
+ b.ne L(no_zva)
#ifndef ZVA64_ONLY
- .p2align 3
- mrs tmp1, dczid_el0
- tbnz tmp1w, 4, L(no_zva)
- and tmp1w, tmp1w, 15
- cmp tmp1w, 4 /* ZVA size is 64 bytes. */
- b.ne L(zva_128)
- nop
+ mrs zva_val, dczid_el0
+ and zva_val, zva_val, 31
+ cmp zva_val, 4 /* ZVA size is 64 bytes. */
+ b.ne L(no_zva)
#endif
- /* Write the first and last 64 byte aligned block using stp rather
- than using DC ZVA. This is faster on some cores.
- */
- .p2align 4
-L(zva_64):
- str q0, [dst, 16]
- stp q0, q0, [dst, 32]
- bic dst, dst, 63
- stp q0, q0, [dst, 64]
- stp q0, q0, [dst, 96]
- sub count, dstend, dst /* Count is now 128 too large. */
- sub count, count, 128+64+64 /* Adjust count and bias for loop. */
- add dst, dst, 128
-1: dc zva, dst
- add dst, dst, 64
- subs count, count, 64
- b.hi 1b
- stp q0, q0, [dst, 0]
stp q0, q0, [dst, 32]
+ bic dst, dstin, 63
+ sub count, dstend, dst /* Count is now 64 too large. */
+ sub count, count, 64 + 64 /* Adjust count and bias for loop. */
+
+ /* Write last bytes before ZVA loop. */
stp q0, q0, [dstend, -64]
stp q0, q0, [dstend, -32]
+
+ .p2align 4
+L(zva64_loop):
+ add dst, dst, 64
+ dc zva, dst
+ subs count, count, 64
+ b.hi L(zva64_loop)
ret
-#ifndef ZVA64_ONLY
.p2align 3
-L(zva_128):
- cmp tmp1w, 5 /* ZVA size is 128 bytes. */
- b.ne L(zva_other)
-
- str q0, [dst, 16]
+L(no_zva):
+ sub count, dstend, dst /* Count is 32 too large. */
+ sub count, count, 64 + 32 /* Adjust count and bias for loop. */
+L(no_zva_loop):
stp q0, q0, [dst, 32]
stp q0, q0, [dst, 64]
- stp q0, q0, [dst, 96]
- bic dst, dst, 127
- sub count, dstend, dst /* Count is now 128 too large. */
- sub count, count, 128+128 /* Adjust count and bias for loop. */
- add dst, dst, 128
-1: dc zva, dst
- add dst, dst, 128
- subs count, count, 128
- b.hi 1b
- stp q0, q0, [dstend, -128]
- stp q0, q0, [dstend, -96]
+ add dst, dst, 64
+ subs count, count, 64
+ b.hi L(no_zva_loop)
stp q0, q0, [dstend, -64]
stp q0, q0, [dstend, -32]
ret
-L(zva_other):
- mov tmp2w, 4
- lsl zva_lenw, tmp2w, tmp1w
- add tmp1, zva_len, 64 /* Max alignment bytes written. */
- cmp count, tmp1
- blo L(no_zva)
-
- sub tmp2, zva_len, 1
- add tmp1, dst, zva_len
- add dst, dst, 16
- subs count, tmp1, dst /* Actual alignment bytes to write. */
- bic tmp1, tmp1, tmp2 /* Aligned dc zva start address. */
- beq 2f
-1: stp q0, q0, [dst], 64
- stp q0, q0, [dst, -32]
- subs count, count, 64
- b.hi 1b
-2: mov dst, tmp1
- sub count, dstend, tmp1 /* Remaining bytes to write. */
- subs count, count, zva_len
- b.lo 4f
-3: dc zva, dst
- add dst, dst, zva_len
- subs count, count, zva_len
- b.hs 3b
-4: add count, count, zva_len
- sub dst, dst, 32 /* Bias dst for tail loop. */
- b L(tail64)
-#endif
-
END (MEMSET)
libc_hidden_builtin_def (MEMSET)
diff --git a/sysdeps/aarch64/multiarch/Makefile b/sysdeps/aarch64/multiarch/Makefile
index 3e251cc..1c3c392 100644
--- a/sysdeps/aarch64/multiarch/Makefile
+++ b/sysdeps/aarch64/multiarch/Makefile
@@ -7,8 +7,6 @@ sysdep_routines += \
memcpy_mops \
memcpy_oryon1 \
memcpy_sve \
- memcpy_thunderx \
- memcpy_thunderx2 \
memmove_mops \
memset_a64fx \
memset_emag \
@@ -16,6 +14,7 @@ sysdep_routines += \
memset_kunpeng \
memset_mops \
memset_oryon1 \
+ memset_sve_zva64 \
memset_zva64 \
strlen_asimd \
strlen_generic \
diff --git a/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h
index 70e5a90..63ac28f 100644
--- a/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/multiarch/ifunc-impl-list.c b/sysdeps/aarch64/multiarch/ifunc-impl-list.c
index b2fda54..0e26171 100644
--- a/sysdeps/aarch64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/aarch64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. AARCH64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -35,23 +35,15 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/aarch64/multiarch/memcpy.c, memmove.c and memset.c. */
IFUNC_IMPL (i, name, memcpy,
- IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_thunderx)
IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_oryon1)
- IFUNC_IMPL_ADD (array, i, memcpy, !bti, __memcpy_thunderx2)
-#if HAVE_AARCH64_SVE_ASM
- IFUNC_IMPL_ADD (array, i, memcpy, sve && !bti, __memcpy_a64fx)
+ IFUNC_IMPL_ADD (array, i, memcpy, sve, __memcpy_a64fx)
IFUNC_IMPL_ADD (array, i, memcpy, sve, __memcpy_sve)
-#endif
IFUNC_IMPL_ADD (array, i, memcpy, mops, __memcpy_mops)
IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_generic))
IFUNC_IMPL (i, name, memmove,
- IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_thunderx)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_oryon1)
- IFUNC_IMPL_ADD (array, i, memmove, !bti, __memmove_thunderx2)
-#if HAVE_AARCH64_SVE_ASM
- IFUNC_IMPL_ADD (array, i, memmove, sve && !bti, __memmove_a64fx)
+ IFUNC_IMPL_ADD (array, i, memmove, sve, __memmove_a64fx)
IFUNC_IMPL_ADD (array, i, memmove, sve, __memmove_sve)
-#endif
IFUNC_IMPL_ADD (array, i, memmove, mops, __memmove_mops)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_generic))
IFUNC_IMPL (i, name, memset,
@@ -59,9 +51,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, memset, (zva_size == 64), __memset_oryon1)
IFUNC_IMPL_ADD (array, i, memset, 1, __memset_emag)
IFUNC_IMPL_ADD (array, i, memset, 1, __memset_kunpeng)
-#if HAVE_AARCH64_SVE_ASM
- IFUNC_IMPL_ADD (array, i, memset, sve && !bti && zva_size == 256, __memset_a64fx)
-#endif
+ IFUNC_IMPL_ADD (array, i, memset, sve && zva_size == 256, __memset_a64fx)
+ IFUNC_IMPL_ADD (array, i, memset, sve && zva_size == 64, __memset_sve_zva64)
IFUNC_IMPL_ADD (array, i, memset, mops, __memset_mops)
IFUNC_IMPL_ADD (array, i, memset, 1, __memset_generic))
IFUNC_IMPL (i, name, memchr,
diff --git a/sysdeps/aarch64/multiarch/init-arch.h b/sysdeps/aarch64/multiarch/init-arch.h
index 61dc400..75b3e08 100644
--- a/sysdeps/aarch64/multiarch/init-arch.h
+++ b/sysdeps/aarch64/multiarch/init-arch.h
@@ -1,6 +1,6 @@
/* Define INIT_ARCH so that midr is initialized before use by IFUNCs.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -31,7 +31,7 @@
unsigned __attribute__((unused)) zva_size = \
GLRO(dl_aarch64_cpu_features).zva_size; \
bool __attribute__((unused)) bti = \
- HAVE_AARCH64_BTI && GLRO(dl_aarch64_cpu_features).bti; \
+ GLRO(dl_aarch64_cpu_features).bti; \
bool __attribute__((unused)) mte = \
MTE_ENABLED (); \
bool __attribute__((unused)) sve = \
diff --git a/sysdeps/aarch64/multiarch/memchr.c b/sysdeps/aarch64/multiarch/memchr.c
index 5069e76..299508a 100644
--- a/sysdeps/aarch64/multiarch/memchr.c
+++ b/sysdeps/aarch64/multiarch/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr. AARCH64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/multiarch/memchr_generic.S b/sysdeps/aarch64/multiarch/memchr_generic.S
index 8d55427..5c9d5a4 100644
--- a/sysdeps/aarch64/multiarch/memchr_generic.S
+++ b/sysdeps/aarch64/multiarch/memchr_generic.S
@@ -1,5 +1,5 @@
/* Memchr for aarch64, default version for internal use.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/multiarch/memchr_nosimd.S b/sysdeps/aarch64/multiarch/memchr_nosimd.S
index 0a65139..86892b2 100644
--- a/sysdeps/aarch64/multiarch/memchr_nosimd.S
+++ b/sysdeps/aarch64/multiarch/memchr_nosimd.S
@@ -1,6 +1,6 @@
/* memchr - find a character in a memory zone using base integer registers
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -60,9 +60,6 @@
ENTRY (__memchr_nosimd)
- PTR_ARG (0)
- SIZE_ARG (2)
-
/* Do not dereference srcin if no bytes to compare. */
cbz cntin, L(none_chr)
diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
index 15c9547..894dabe 100644
--- a/sysdeps/aarch64/multiarch/memcpy.c
+++ b/sysdeps/aarch64/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy. AARCH64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -30,8 +30,6 @@
extern __typeof (__redirect_memcpy) __libc_memcpy;
extern __typeof (__redirect_memcpy) __memcpy_generic attribute_hidden;
-extern __typeof (__redirect_memcpy) __memcpy_thunderx attribute_hidden;
-extern __typeof (__redirect_memcpy) __memcpy_thunderx2 attribute_hidden;
extern __typeof (__redirect_memcpy) __memcpy_a64fx attribute_hidden;
extern __typeof (__redirect_memcpy) __memcpy_sve attribute_hidden;
extern __typeof (__redirect_memcpy) __memcpy_mops attribute_hidden;
@@ -45,7 +43,7 @@ select_memcpy_ifunc (void)
if (mops)
return __memcpy_mops;
- if (sve && HAVE_AARCH64_SVE_ASM)
+ if (sve)
{
if (IS_A64FX (midr))
return __memcpy_a64fx;
@@ -55,12 +53,6 @@ select_memcpy_ifunc (void)
if (IS_ORYON1 (midr))
return __memcpy_oryon1;
- if (IS_THUNDERX (midr))
- return __memcpy_thunderx;
-
- if (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr))
- return __memcpy_thunderx2;
-
return __memcpy_generic;
}
diff --git a/sysdeps/aarch64/multiarch/memcpy_a64fx.S b/sysdeps/aarch64/multiarch/memcpy_a64fx.S
index d826aaf..acad6e8 100644
--- a/sysdeps/aarch64/multiarch/memcpy_a64fx.S
+++ b/sysdeps/aarch64/multiarch/memcpy_a64fx.S
@@ -1,5 +1,5 @@
/* Optimized memcpy for Fujitsu A64FX processor.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -19,9 +19,6 @@
#include <sysdep.h>
-#undef BTI_C
-#define BTI_C
-
/* Assumptions:
*
* ARMv8.2-a, AArch64, unaligned accesses, sve
@@ -38,8 +35,6 @@
#define vlen x7
#define vlen8 x8
-#if HAVE_AARCH64_SVE_ASM
-
.arch armv8.2-a+sve
.macro ld1b_unroll8
@@ -91,15 +86,8 @@
st1b z7.b, p0, [dst, 7, mul vl]
.endm
-#undef BTI_C
-#define BTI_C
-
ENTRY (__memcpy_a64fx)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
cntb vlen
cmp n, vlen, lsl 1
b.hi L(copy_small)
@@ -236,10 +224,6 @@ END (__memcpy_a64fx)
ENTRY_ALIGN (__memmove_a64fx, 4)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
/* Fast case for up to 2 vectors. */
cntb vlen
cmp n, vlen, lsl 1
@@ -304,4 +288,3 @@ L(full_overlap):
b L(last_bytes)
END (__memmove_a64fx)
-#endif /* HAVE_AARCH64_SVE_ASM */
diff --git a/sysdeps/aarch64/multiarch/memcpy_generic.S b/sysdeps/aarch64/multiarch/memcpy_generic.S
index 577c359..f044ebc 100644
--- a/sysdeps/aarch64/multiarch/memcpy_generic.S
+++ b/sysdeps/aarch64/multiarch/memcpy_generic.S
@@ -1,5 +1,5 @@
/* A Generic Optimized memcpy implementation for AARCH64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/multiarch/memcpy_mops.S b/sysdeps/aarch64/multiarch/memcpy_mops.S
index b094af3..664f7b4 100644
--- a/sysdeps/aarch64/multiarch/memcpy_mops.S
+++ b/sysdeps/aarch64/multiarch/memcpy_mops.S
@@ -1,5 +1,5 @@
/* Optimized memcpy for MOPS.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -26,10 +26,6 @@
*/
ENTRY (__memcpy_mops)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
mov x3, x0
.inst 0x19010443 /* cpyfp [x3]!, [x1]!, x2! */
.inst 0x19410443 /* cpyfm [x3]!, [x1]!, x2! */
diff --git a/sysdeps/aarch64/multiarch/memcpy_oryon1.S b/sysdeps/aarch64/multiarch/memcpy_oryon1.S
index 4efc43d..cc267db 100644
--- a/sysdeps/aarch64/multiarch/memcpy_oryon1.S
+++ b/sysdeps/aarch64/multiarch/memcpy_oryon1.S
@@ -1,5 +1,5 @@
/* A oryon-1 core Optimized memcpy implementation for AARCH64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -63,10 +63,6 @@
ENTRY (__memmove_oryon1)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
sub tmp1, dstin, src
cmp count, 96
ccmp tmp1, count, 2, hi
@@ -77,10 +73,6 @@ END (__memmove_oryon1)
ENTRY (__memcpy_oryon1)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
add srcend, src, count
add dstend, dstin, count
cmp count, 16
diff --git a/sysdeps/aarch64/multiarch/memcpy_sve.S b/sysdeps/aarch64/multiarch/memcpy_sve.S
index 3ce49d7..0ba6358 100644
--- a/sysdeps/aarch64/multiarch/memcpy_sve.S
+++ b/sysdeps/aarch64/multiarch/memcpy_sve.S
@@ -1,5 +1,5 @@
/* Optimized memcpy for SVE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -56,15 +56,9 @@
The loop tail is handled by always copying 64 bytes from the end.
*/
-#if HAVE_AARCH64_SVE_ASM
-
.arch armv8.2-a+sve
ENTRY (__memcpy_sve)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
cmp count, 128
b.hi L(copy_long)
cntb vlen
@@ -144,10 +138,6 @@ END (__memcpy_sve)
ENTRY (__memmove_sve)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
cmp count, 128
b.hi L(move_long)
cntb vlen
@@ -207,4 +197,3 @@ L(return):
ret
END (__memmove_sve)
-#endif
diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx.S b/sysdeps/aarch64/multiarch/memcpy_thunderx.S
deleted file mode 100644
index 5d8438a..0000000
--- a/sysdeps/aarch64/multiarch/memcpy_thunderx.S
+++ /dev/null
@@ -1,305 +0,0 @@
-/* A Thunderx Optimized memcpy implementation for AARCH64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* The actual code in this memcpy and memmove should be identical to the
- generic version except for the code under '#ifdef THUNDERX'. This is
- to make is easier to keep this version and the generic version in sync
- for changes that are not specific to thunderx. */
-
-#include <sysdep.h>
-
-/* Assumptions:
- *
- * ARMv8-a, AArch64, unaligned accesses.
- *
- */
-
-#define dstin x0
-#define src x1
-#define count x2
-#define dst x3
-#define srcend x4
-#define dstend x5
-#define A_l x6
-#define A_lw w6
-#define A_h x7
-#define A_hw w7
-#define B_l x8
-#define B_lw w8
-#define B_h x9
-#define C_l x10
-#define C_h x11
-#define D_l x12
-#define D_h x13
-#define E_l src
-#define E_h count
-#define F_l srcend
-#define F_h dst
-#define G_l count
-#define G_h dst
-#define tmp1 x14
-
-/* Copies are split into 3 main cases: small copies of up to 16 bytes,
- medium copies of 17..96 bytes which are fully unrolled. Large copies
- of more than 96 bytes align the destination and use an unrolled loop
- processing 64 bytes per iteration.
- In order to share code with memmove, small and medium copies read all
- data before writing, allowing any kind of overlap. So small, medium
- and large backwards memmoves are handled by falling through into memcpy.
- Overlapping large forward memmoves use a loop that copies backwards.
-*/
-
-ENTRY (__memmove_thunderx)
-
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
- sub tmp1, dstin, src
- cmp count, 96
- ccmp tmp1, count, 2, hi
- b.lo L(move_long)
-
- /* Common case falls through into memcpy. */
-END (__memmove_thunderx)
-
-ENTRY (__memcpy_thunderx)
-
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
- prfm PLDL1KEEP, [src]
- add srcend, src, count
- add dstend, dstin, count
- cmp count, 16
- b.ls L(copy16)
- cmp count, 96
- b.hi L(copy_long)
-
- /* Medium copies: 17..96 bytes. */
- sub tmp1, count, 1
- ldp A_l, A_h, [src]
- tbnz tmp1, 6, L(copy96)
- ldp D_l, D_h, [srcend, -16]
- tbz tmp1, 5, 1f
- ldp B_l, B_h, [src, 16]
- ldp C_l, C_h, [srcend, -32]
- stp B_l, B_h, [dstin, 16]
- stp C_l, C_h, [dstend, -32]
-1:
- stp A_l, A_h, [dstin]
- stp D_l, D_h, [dstend, -16]
- ret
-
- .p2align 4
- /* Small copies: 0..16 bytes. */
-L(copy16):
- cmp count, 8
- b.lo 1f
- ldr A_l, [src]
- ldr A_h, [srcend, -8]
- str A_l, [dstin]
- str A_h, [dstend, -8]
- ret
- .p2align 4
-1:
- tbz count, 2, 1f
- ldr A_lw, [src]
- ldr A_hw, [srcend, -4]
- str A_lw, [dstin]
- str A_hw, [dstend, -4]
- ret
-
- /* Copy 0..3 bytes. Use a branchless sequence that copies the same
- byte 3 times if count==1, or the 2nd byte twice if count==2. */
-1:
- cbz count, 2f
- lsr tmp1, count, 1
- ldrb A_lw, [src]
- ldrb A_hw, [srcend, -1]
- ldrb B_lw, [src, tmp1]
- strb A_lw, [dstin]
- strb B_lw, [dstin, tmp1]
- strb A_hw, [dstend, -1]
-2: ret
-
- .p2align 4
- /* Copy 64..96 bytes. Copy 64 bytes from the start and
- 32 bytes from the end. */
-L(copy96):
- ldp B_l, B_h, [src, 16]
- ldp C_l, C_h, [src, 32]
- ldp D_l, D_h, [src, 48]
- ldp E_l, E_h, [srcend, -32]
- ldp F_l, F_h, [srcend, -16]
- stp A_l, A_h, [dstin]
- stp B_l, B_h, [dstin, 16]
- stp C_l, C_h, [dstin, 32]
- stp D_l, D_h, [dstin, 48]
- stp E_l, E_h, [dstend, -32]
- stp F_l, F_h, [dstend, -16]
- ret
-
- /* Align DST to 16 byte alignment so that we don't cross cache line
- boundaries on both loads and stores. There are at least 96 bytes
- to copy, so copy 16 bytes unaligned and then align. The loop
- copies 64 bytes per iteration and prefetches one iteration ahead. */
-
- .p2align 4
-L(copy_long):
-
- /* On thunderx, large memcpy's are helped by software prefetching.
- This loop is identical to the one below it but with prefetching
- instructions included. For loops that are less than 32768 bytes,
- the prefetching does not help and slow the code down so we only
- use the prefetching loop for the largest memcpys. */
-
- cmp count, #32768
- b.lo L(copy_long_without_prefetch)
- and tmp1, dstin, 15
- bic dst, dstin, 15
- ldp D_l, D_h, [src]
- sub src, src, tmp1
- prfm pldl1strm, [src, 384]
- add count, count, tmp1 /* Count is now 16 too large. */
- ldp A_l, A_h, [src, 16]
- stp D_l, D_h, [dstin]
- ldp B_l, B_h, [src, 32]
- ldp C_l, C_h, [src, 48]
- ldp D_l, D_h, [src, 64]!
- subs count, count, 128 + 16 /* Test and readjust count. */
-
-L(prefetch_loop64):
- tbz src, #6, 1f
- prfm pldl1strm, [src, 512]
-1:
- stp A_l, A_h, [dst, 16]
- ldp A_l, A_h, [src, 16]
- stp B_l, B_h, [dst, 32]
- ldp B_l, B_h, [src, 32]
- stp C_l, C_h, [dst, 48]
- ldp C_l, C_h, [src, 48]
- stp D_l, D_h, [dst, 64]!
- ldp D_l, D_h, [src, 64]!
- subs count, count, 64
- b.hi L(prefetch_loop64)
- b L(last64)
-
-L(copy_long_without_prefetch):
-
- and tmp1, dstin, 15
- bic dst, dstin, 15
- ldp D_l, D_h, [src]
- sub src, src, tmp1
- add count, count, tmp1 /* Count is now 16 too large. */
- ldp A_l, A_h, [src, 16]
- stp D_l, D_h, [dstin]
- ldp B_l, B_h, [src, 32]
- ldp C_l, C_h, [src, 48]
- ldp D_l, D_h, [src, 64]!
- subs count, count, 128 + 16 /* Test and readjust count. */
- b.ls L(last64)
-L(loop64):
- stp A_l, A_h, [dst, 16]
- ldp A_l, A_h, [src, 16]
- stp B_l, B_h, [dst, 32]
- ldp B_l, B_h, [src, 32]
- stp C_l, C_h, [dst, 48]
- ldp C_l, C_h, [src, 48]
- stp D_l, D_h, [dst, 64]!
- ldp D_l, D_h, [src, 64]!
- subs count, count, 64
- b.hi L(loop64)
-
- /* Write the last full set of 64 bytes. The remainder is at most 64
- bytes, so it is safe to always copy 64 bytes from the end even if
- there is just 1 byte left. */
-L(last64):
- ldp E_l, E_h, [srcend, -64]
- stp A_l, A_h, [dst, 16]
- ldp A_l, A_h, [srcend, -48]
- stp B_l, B_h, [dst, 32]
- ldp B_l, B_h, [srcend, -32]
- stp C_l, C_h, [dst, 48]
- ldp C_l, C_h, [srcend, -16]
- stp D_l, D_h, [dst, 64]
- stp E_l, E_h, [dstend, -64]
- stp A_l, A_h, [dstend, -48]
- stp B_l, B_h, [dstend, -32]
- stp C_l, C_h, [dstend, -16]
- ret
-
- .p2align 4
-L(move_long):
- cbz tmp1, 3f
-
- add srcend, src, count
- add dstend, dstin, count
-
- /* Align dstend to 16 byte alignment so that we don't cross cache line
- boundaries on both loads and stores. There are at least 96 bytes
- to copy, so copy 16 bytes unaligned and then align. The loop
- copies 64 bytes per iteration and prefetches one iteration ahead. */
-
- and tmp1, dstend, 15
- ldp D_l, D_h, [srcend, -16]
- sub srcend, srcend, tmp1
- sub count, count, tmp1
- ldp A_l, A_h, [srcend, -16]
- stp D_l, D_h, [dstend, -16]
- ldp B_l, B_h, [srcend, -32]
- ldp C_l, C_h, [srcend, -48]
- ldp D_l, D_h, [srcend, -64]!
- sub dstend, dstend, tmp1
- subs count, count, 128
- b.ls 2f
-
- nop
-1:
- stp A_l, A_h, [dstend, -16]
- ldp A_l, A_h, [srcend, -16]
- stp B_l, B_h, [dstend, -32]
- ldp B_l, B_h, [srcend, -32]
- stp C_l, C_h, [dstend, -48]
- ldp C_l, C_h, [srcend, -48]
- stp D_l, D_h, [dstend, -64]!
- ldp D_l, D_h, [srcend, -64]!
- subs count, count, 64
- b.hi 1b
-
- /* Write the last full set of 64 bytes. The remainder is at most 64
- bytes, so it is safe to always copy 64 bytes from the start even if
- there is just 1 byte left. */
-2:
- ldp G_l, G_h, [src, 48]
- stp A_l, A_h, [dstend, -16]
- ldp A_l, A_h, [src, 32]
- stp B_l, B_h, [dstend, -32]
- ldp B_l, B_h, [src, 16]
- stp C_l, C_h, [dstend, -48]
- ldp C_l, C_h, [src]
- stp D_l, D_h, [dstend, -64]
- stp G_l, G_h, [dstin, 48]
- stp A_l, A_h, [dstin, 32]
- stp B_l, B_h, [dstin, 16]
- stp C_l, C_h, [dstin]
-3: ret
-
-END (__memcpy_thunderx)
diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S b/sysdeps/aarch64/multiarch/memcpy_thunderx2.S
deleted file mode 100644
index a3d79aa..0000000
--- a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S
+++ /dev/null
@@ -1,457 +0,0 @@
-/* A Thunderx2 Optimized memcpy implementation for AARCH64.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* Assumptions:
- *
- * ARMv8-a, AArch64, unaligned accesses.
- *
- */
-
-#define dstin x0
-#define src x1
-#define count x2
-#define dst x3
-#define srcend x4
-#define dstend x5
-#define tmp2 x6
-#define tmp3 x7
-#define tmp3w w7
-#define A_l x6
-#define A_lw w6
-#define A_h x7
-#define A_hw w7
-#define B_l x8
-#define B_lw w8
-#define B_h x9
-#define C_l x10
-#define C_h x11
-#define D_l x12
-#define D_h x13
-#define E_l src
-#define E_h count
-#define F_l srcend
-#define F_h dst
-#define G_l count
-#define G_h dst
-#define tmp1 x14
-
-#define A_q q0
-#define B_q q1
-#define C_q q2
-#define D_q q3
-#define E_q q4
-#define F_q q5
-#define G_q q6
-#define H_q q7
-#define I_q q16
-#define J_q q17
-
-#define A_v v0
-#define B_v v1
-#define C_v v2
-#define D_v v3
-#define E_v v4
-#define F_v v5
-#define G_v v6
-#define H_v v7
-#define I_v v16
-#define J_v v17
-
-/* Overlapping large forward memmoves use a loop that copies backwards.
- Otherwise memcpy is used. Small moves branch to memcopy16 directly.
- The longer memcpy cases fall through to the memcpy head.
-*/
-
-ENTRY (__memmove_thunderx2)
-
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
- add srcend, src, count
- cmp count, 16
- b.ls L(memcopy16)
- sub tmp1, dstin, src
- cmp count, 96
- ccmp tmp1, count, 2, hi
- b.lo L(move_long)
-
-END (__memmove_thunderx2)
-
-
-/* Copies are split into 3 main cases: small copies of up to 16 bytes,
- medium copies of 17..96 bytes which are fully unrolled. Large copies
- of more than 96 bytes align the destination and use load-and-merge
- approach in the case src and dst addresses are unaligned not evenly,
- so that, actual loads and stores are always aligned.
- Large copies use the loops processing 64 bytes per iteration for
- unaligned case and 128 bytes per iteration for aligned ones.
-*/
-
-#define MEMCPY_PREFETCH_LDR 640
-
-ENTRY (__memcpy_thunderx2)
-
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
- add srcend, src, count
- cmp count, 16
- b.ls L(memcopy16)
- ldr A_q, [src], #16
- add dstend, dstin, count
- and tmp1, src, 15
- cmp count, 96
- b.hi L(memcopy_long)
-
- /* Medium copies: 17..96 bytes. */
- ldr E_q, [srcend, -16]
- cmp count, 64
- b.gt L(memcpy_copy96)
- cmp count, 48
- b.le L(bytes_17_to_48)
- /* 49..64 bytes */
- ldp B_q, C_q, [src]
- str E_q, [dstend, -16]
- stp A_q, B_q, [dstin]
- str C_q, [dstin, 32]
- ret
-
-L(bytes_17_to_48):
- /* 17..48 bytes*/
- cmp count, 32
- b.gt L(bytes_32_to_48)
- /* 17..32 bytes*/
- str A_q, [dstin]
- str E_q, [dstend, -16]
- ret
-
-L(bytes_32_to_48):
- /* 32..48 */
- ldr B_q, [src]
- str A_q, [dstin]
- str E_q, [dstend, -16]
- str B_q, [dstin, 16]
- ret
-
- .p2align 4
- /* Small copies: 0..16 bytes. */
-L(memcopy16):
- cmp count, 8
- b.lo L(bytes_0_to_8)
- ldr A_l, [src]
- ldr A_h, [srcend, -8]
- add dstend, dstin, count
- str A_l, [dstin]
- str A_h, [dstend, -8]
- ret
- .p2align 4
-
-L(bytes_0_to_8):
- tbz count, 2, L(bytes_0_to_3)
- ldr A_lw, [src]
- ldr A_hw, [srcend, -4]
- add dstend, dstin, count
- str A_lw, [dstin]
- str A_hw, [dstend, -4]
- ret
-
- /* Copy 0..3 bytes. Use a branchless sequence that copies the same
- byte 3 times if count==1, or the 2nd byte twice if count==2. */
-L(bytes_0_to_3):
- cbz count, 1f
- lsr tmp1, count, 1
- ldrb A_lw, [src]
- ldrb A_hw, [srcend, -1]
- add dstend, dstin, count
- ldrb B_lw, [src, tmp1]
- strb B_lw, [dstin, tmp1]
- strb A_hw, [dstend, -1]
- strb A_lw, [dstin]
-1:
- ret
-
- .p2align 4
-
-L(memcpy_copy96):
- /* Copying 65..96 bytes. A_q (first 16 bytes) and
- E_q(last 16 bytes) are already loaded. The size
- is large enough to benefit from aligned loads */
- bic src, src, 15
- ldp B_q, C_q, [src]
- /* Loaded 64 bytes, second 16-bytes chunk can be
- overlapping with the first chunk by tmp1 bytes.
- Stored 16 bytes. */
- sub dst, dstin, tmp1
- add count, count, tmp1
- /* The range of count being [65..96] becomes [65..111]
- after tmp [0..15] gets added to it,
- count now is <bytes-left-to-load>+48 */
- cmp count, 80
- b.gt L(copy96_medium)
- ldr D_q, [src, 32]
- stp B_q, C_q, [dst, 16]
- str D_q, [dst, 48]
- str A_q, [dstin]
- str E_q, [dstend, -16]
- ret
-
- .p2align 4
-L(copy96_medium):
- ldp D_q, G_q, [src, 32]
- cmp count, 96
- b.gt L(copy96_large)
- stp B_q, C_q, [dst, 16]
- stp D_q, G_q, [dst, 48]
- str A_q, [dstin]
- str E_q, [dstend, -16]
- ret
-
-L(copy96_large):
- ldr F_q, [src, 64]
- str B_q, [dst, 16]
- stp C_q, D_q, [dst, 32]
- stp G_q, F_q, [dst, 64]
- str A_q, [dstin]
- str E_q, [dstend, -16]
- ret
-
- .p2align 4
-L(memcopy_long):
- bic src, src, 15
- ldp B_q, C_q, [src], #32
- sub dst, dstin, tmp1
- add count, count, tmp1
- add dst, dst, 16
- and tmp1, dst, 15
- ldp D_q, E_q, [src], #32
- str A_q, [dstin]
-
- /* Already loaded 64+16 bytes. Check if at
- least 64 more bytes left */
- subs count, count, 64+64+16
- b.lt L(loop128_exit0)
- cmp count, MEMCPY_PREFETCH_LDR + 64 + 32
- b.lt L(loop128)
- cbnz tmp1, L(dst_unaligned)
- sub count, count, MEMCPY_PREFETCH_LDR + 64 + 32
-
- .p2align 4
-
-L(loop128_prefetch):
- prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR]
- ldp F_q, G_q, [src], #32
- stp B_q, C_q, [dst], #32
- ldp H_q, I_q, [src], #32
- prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR]
- ldp B_q, C_q, [src], #32
- stp D_q, E_q, [dst], #32
- ldp D_q, E_q, [src], #32
- stp F_q, G_q, [dst], #32
- stp H_q, I_q, [dst], #32
- subs count, count, 128
- b.ge L(loop128_prefetch)
-
- add count, count, MEMCPY_PREFETCH_LDR + 64 + 32
- .p2align 4
-L(loop128):
- ldp F_q, G_q, [src], #32
- ldp H_q, I_q, [src], #32
- stp B_q, C_q, [dst], #32
- stp D_q, E_q, [dst], #32
- subs count, count, 64
- b.lt L(loop128_exit1)
- ldp B_q, C_q, [src], #32
- ldp D_q, E_q, [src], #32
- stp F_q, G_q, [dst], #32
- stp H_q, I_q, [dst], #32
- subs count, count, 64
- b.ge L(loop128)
-L(loop128_exit0):
- ldp F_q, G_q, [srcend, -64]
- ldp H_q, I_q, [srcend, -32]
- stp B_q, C_q, [dst], #32
- stp D_q, E_q, [dst]
- stp F_q, G_q, [dstend, -64]
- stp H_q, I_q, [dstend, -32]
- ret
-L(loop128_exit1):
- ldp B_q, C_q, [srcend, -64]
- ldp D_q, E_q, [srcend, -32]
- stp F_q, G_q, [dst], #32
- stp H_q, I_q, [dst]
- stp B_q, C_q, [dstend, -64]
- stp D_q, E_q, [dstend, -32]
- ret
-
-L(dst_unaligned_tail):
- ldp C_q, D_q, [srcend, -64]
- ldp E_q, F_q, [srcend, -32]
- stp A_q, B_q, [dst], #32
- stp H_q, I_q, [dst], #16
- str G_q, [dst, tmp1]
- stp C_q, D_q, [dstend, -64]
- stp E_q, F_q, [dstend, -32]
- ret
-
-L(dst_unaligned):
- /* For the unaligned store case the code loads two
- aligned chunks and then merges them using ext
- instruction. This can be up to 30% faster than
- the the simple unaligned store access.
-
- Current state: tmp1 = dst % 16; C_q, D_q, E_q
- contains data yet to be stored. src and dst points
- to next-to-be-processed data. A_q, B_q contains
- data already stored before, count = bytes left to
- be load decremented by 64.
-
- The control is passed here if at least 64 bytes left
- to be loaded. The code does two aligned loads and then
- extracts (16-tmp1) bytes from the first register and
- tmp1 bytes from the next register forming the value
- for the aligned store.
-
- As ext instruction can only have it's index encoded
- as immediate. 15 code chunks process each possible
- index value. Computed goto is used to reach the
- required code. */
-
- /* Store the 16 bytes to dst and align dst for further
- operations, several bytes will be stored at this
- address once more */
-
- ldp F_q, G_q, [src], #32
- stp B_q, C_q, [dst], #32
- bic dst, dst, 15
- sub count, count, 32
- adrp tmp2, L(ext_table)
- add tmp2, tmp2, :lo12:L(ext_table)
- add tmp2, tmp2, tmp1, LSL #2
- ldr tmp3w, [tmp2]
- add tmp2, tmp2, tmp3w, SXTW
- br tmp2
-
-.p2align 4
- /* to make the loop in each chunk 16-bytes aligned */
- nop
-#define EXT_CHUNK(shft) \
-L(ext_size_ ## shft):;\
- ext A_v.16b, C_v.16b, D_v.16b, 16-shft;\
- ext B_v.16b, D_v.16b, E_v.16b, 16-shft;\
- ext H_v.16b, E_v.16b, F_v.16b, 16-shft;\
-1:;\
- stp A_q, B_q, [dst], #32;\
- prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR];\
- ldp C_q, D_q, [src], #32;\
- ext I_v.16b, F_v.16b, G_v.16b, 16-shft;\
- stp H_q, I_q, [dst], #32;\
- ext A_v.16b, G_v.16b, C_v.16b, 16-shft;\
- ext B_v.16b, C_v.16b, D_v.16b, 16-shft;\
- ldp F_q, G_q, [src], #32;\
- ext H_v.16b, D_v.16b, F_v.16b, 16-shft;\
- subs count, count, 64;\
- b.ge 1b;\
-2:;\
- ext I_v.16b, F_v.16b, G_v.16b, 16-shft;\
- b L(dst_unaligned_tail);
-
-EXT_CHUNK(1)
-EXT_CHUNK(2)
-EXT_CHUNK(3)
-EXT_CHUNK(4)
-EXT_CHUNK(5)
-EXT_CHUNK(6)
-EXT_CHUNK(7)
-EXT_CHUNK(8)
-EXT_CHUNK(9)
-EXT_CHUNK(10)
-EXT_CHUNK(11)
-EXT_CHUNK(12)
-EXT_CHUNK(13)
-EXT_CHUNK(14)
-EXT_CHUNK(15)
-
-L(move_long):
- .p2align 4
-1:
- cbz tmp1, 3f
-
- add srcend, src, count
- add dstend, dstin, count
-
- and tmp1, srcend, 15
- ldr D_q, [srcend, -16]
- sub srcend, srcend, tmp1
- sub count, count, tmp1
- ldp A_q, B_q, [srcend, -32]
- str D_q, [dstend, -16]
- ldp C_q, D_q, [srcend, -64]!
- sub dstend, dstend, tmp1
- subs count, count, 128
- b.ls 2f
-
- .p2align 4
-1:
- subs count, count, 64
- stp A_q, B_q, [dstend, -32]
- ldp A_q, B_q, [srcend, -32]
- stp C_q, D_q, [dstend, -64]!
- ldp C_q, D_q, [srcend, -64]!
- b.hi 1b
-
- /* Write the last full set of 64 bytes. The remainder is at most 64
- bytes, so it is safe to always copy 64 bytes from the start even if
- there is just 1 byte left. */
-2:
- ldp E_q, F_q, [src, 32]
- ldp G_q, H_q, [src]
- stp A_q, B_q, [dstend, -32]
- stp C_q, D_q, [dstend, -64]
- stp E_q, F_q, [dstin, 32]
- stp G_q, H_q, [dstin]
-3: ret
-
-
-END (__memcpy_thunderx2)
- .section .rodata
- .p2align 4
-
-L(ext_table):
- /* The first entry is for the alignment of 0 and is never
- actually used (could be any value). */
- .word 0
- .word L(ext_size_1) -.
- .word L(ext_size_2) -.
- .word L(ext_size_3) -.
- .word L(ext_size_4) -.
- .word L(ext_size_5) -.
- .word L(ext_size_6) -.
- .word L(ext_size_7) -.
- .word L(ext_size_8) -.
- .word L(ext_size_9) -.
- .word L(ext_size_10) -.
- .word L(ext_size_11) -.
- .word L(ext_size_12) -.
- .word L(ext_size_13) -.
- .word L(ext_size_14) -.
- .word L(ext_size_15) -.
diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
index fe95037..6b0d0ce 100644
--- a/sysdeps/aarch64/multiarch/memmove.c
+++ b/sysdeps/aarch64/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. AARCH64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,8 +29,6 @@
extern __typeof (__redirect_memmove) __libc_memmove;
extern __typeof (__redirect_memmove) __memmove_generic attribute_hidden;
-extern __typeof (__redirect_memmove) __memmove_thunderx attribute_hidden;
-extern __typeof (__redirect_memmove) __memmove_thunderx2 attribute_hidden;
extern __typeof (__redirect_memmove) __memmove_a64fx attribute_hidden;
extern __typeof (__redirect_memmove) __memmove_sve attribute_hidden;
extern __typeof (__redirect_memmove) __memmove_mops attribute_hidden;
@@ -43,19 +41,13 @@ select_memmove_ifunc (void)
if (mops)
return __memmove_mops;
- if (sve && HAVE_AARCH64_SVE_ASM)
+ if (sve)
{
if (IS_A64FX (midr))
return __memmove_a64fx;
return prefer_sve_ifuncs ? __memmove_sve : __memmove_generic;
}
- if (IS_THUNDERX (midr))
- return __memmove_thunderx;
-
- if (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr))
- return __memmove_thunderx2;
-
return __memmove_generic;
}
diff --git a/sysdeps/aarch64/multiarch/memmove_mops.S b/sysdeps/aarch64/multiarch/memmove_mops.S
index 7df0d22..ec650a5 100644
--- a/sysdeps/aarch64/multiarch/memmove_mops.S
+++ b/sysdeps/aarch64/multiarch/memmove_mops.S
@@ -1,5 +1,5 @@
/* Optimized memmove for MOPS.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -26,10 +26,6 @@
*/
ENTRY (__memmove_mops)
- PTR_ARG (0)
- PTR_ARG (1)
- SIZE_ARG (2)
-
mov x3, x0
.inst 0x1d010443 /* cpyp [x3]!, [x1]!, x2! */
.inst 0x1d410443 /* cpym [x3]!, [x1]!, x2! */
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
index bd063c1..2b0a58b 100644
--- a/sysdeps/aarch64/multiarch/memset.c
+++ b/sysdeps/aarch64/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset. AARCH64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -36,6 +36,7 @@ extern __typeof (__redirect_memset) __memset_a64fx attribute_hidden;
extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
extern __typeof (__redirect_memset) __memset_mops attribute_hidden;
extern __typeof (__redirect_memset) __memset_oryon1 attribute_hidden;
+extern __typeof (__redirect_memset) __memset_sve_zva64 attribute_hidden;
static inline __typeof (__redirect_memset) *
select_memset_ifunc (void)
@@ -45,10 +46,13 @@ select_memset_ifunc (void)
if (mops)
return __memset_mops;
- if (sve && HAVE_AARCH64_SVE_ASM)
+ if (sve)
{
if (IS_A64FX (midr) && zva_size == 256)
return __memset_a64fx;
+
+ if (prefer_sve_ifuncs && zva_size == 64)
+ return __memset_sve_zva64;
}
if (IS_ORYON1 (midr) && zva_size == 64)
diff --git a/sysdeps/aarch64/multiarch/memset_a64fx.S b/sysdeps/aarch64/multiarch/memset_a64fx.S
index 2e6d882..e921240 100644
--- a/sysdeps/aarch64/multiarch/memset_a64fx.S
+++ b/sysdeps/aarch64/multiarch/memset_a64fx.S
@@ -1,5 +1,5 @@
/* Optimized memset for Fujitsu A64FX processor.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -18,7 +18,6 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <sysdeps/aarch64/memset-reg.h>
/* Assumptions:
*
@@ -32,10 +31,16 @@
#define PF_DIST_L1 (CACHE_LINE_SIZE * 16) // Prefetch distance L1
#define vector_length x9
-#if HAVE_AARCH64_SVE_ASM
-
.arch armv8.2-a+sve
+#define dstin x0
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
+#define tmp1 x5
+#define tmp2 x6
+
.macro st1b_unroll first=0, last=7
st1b z0.b, p0, [dst, \first, mul vl]
.if \last-\first
@@ -43,13 +48,7 @@
.endif
.endm
-
-#undef BTI_C
-#define BTI_C
-
ENTRY (__memset_a64fx)
- PTR_ARG (0)
- SIZE_ARG (2)
cntb vector_length
dup z0.b, valw
@@ -165,5 +164,3 @@ L(L2):
b L(last)
END (__memset_a64fx)
-
-#endif /* HAVE_AARCH64_SVE_ASM */
diff --git a/sysdeps/aarch64/multiarch/memset_emag.S b/sysdeps/aarch64/multiarch/memset_emag.S
index 6d714ed..ef71464 100644
--- a/sysdeps/aarch64/multiarch/memset_emag.S
+++ b/sysdeps/aarch64/multiarch/memset_emag.S
@@ -1,5 +1,5 @@
/* Optimized memset for AmpereComputing emag processor.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -18,7 +18,6 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include "memset-reg.h"
/* Assumptions:
*
@@ -26,10 +25,14 @@
*
*/
-ENTRY (__memset_emag)
+#define dstin x0
+#define val x1
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
- PTR_ARG (0)
- SIZE_ARG (2)
+ENTRY (__memset_emag)
bfi valw, valw, 8, 8
bfi valw, valw, 16, 16
diff --git a/sysdeps/aarch64/multiarch/memset_generic.S b/sysdeps/aarch64/multiarch/memset_generic.S
index e125a5e..115a480 100644
--- a/sysdeps/aarch64/multiarch/memset_generic.S
+++ b/sysdeps/aarch64/multiarch/memset_generic.S
@@ -1,5 +1,5 @@
/* Memset for aarch64, default version for internal use.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/multiarch/memset_kunpeng.S b/sysdeps/aarch64/multiarch/memset_kunpeng.S
index 7b21550..837b8f1 100644
--- a/sysdeps/aarch64/multiarch/memset_kunpeng.S
+++ b/sysdeps/aarch64/multiarch/memset_kunpeng.S
@@ -1,5 +1,5 @@
/* Optimized memset for Huawei Kunpeng processor.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -18,7 +18,6 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <sysdeps/aarch64/memset-reg.h>
/* Assumptions:
*
@@ -26,10 +25,13 @@
*
*/
-ENTRY (__memset_kunpeng)
+#define dstin x0
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
- PTR_ARG (0)
- SIZE_ARG (2)
+ENTRY (__memset_kunpeng)
dup v0.16B, valw
add dstend, dstin, count
diff --git a/sysdeps/aarch64/multiarch/memset_mops.S b/sysdeps/aarch64/multiarch/memset_mops.S
index e879c81..283fd49 100644
--- a/sysdeps/aarch64/multiarch/memset_mops.S
+++ b/sysdeps/aarch64/multiarch/memset_mops.S
@@ -1,5 +1,5 @@
/* Optimized memset for MOPS.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -26,9 +26,6 @@
*/
ENTRY (__memset_mops)
- PTR_ARG (0)
- SIZE_ARG (2)
-
mov x3, x0
.inst 0x19c10443 /* setp [x3]!, x2!, x1 */
.inst 0x19c14443 /* setm [x3]!, x2!, x1 */
diff --git a/sysdeps/aarch64/multiarch/memset_oryon1.S b/sysdeps/aarch64/multiarch/memset_oryon1.S
index b43a43b..88f4ef4 100644
--- a/sysdeps/aarch64/multiarch/memset_oryon1.S
+++ b/sysdeps/aarch64/multiarch/memset_oryon1.S
@@ -1,5 +1,5 @@
/* Optimized memset for Qualcomm's oyron-1 core.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -19,16 +19,19 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include "memset-reg.h"
/* Assumptions:
ARMv8-a, AArch64, unaligned accesses
*/
-ENTRY (__memset_oryon1)
+#define dstin x0
+#define val x1
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
- PTR_ARG (0)
- SIZE_ARG (2)
+ENTRY (__memset_oryon1)
bfi valw, valw, 8, 8
bfi valw, valw, 16, 16
diff --git a/sysdeps/aarch64/multiarch/memset_sve_zva64.S b/sysdeps/aarch64/multiarch/memset_sve_zva64.S
new file mode 100644
index 0000000..c385e1a
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memset_sve_zva64.S
@@ -0,0 +1,120 @@
+/* Optimized memset for SVE.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64, Advanced SIMD, SVE, unaligned accesses.
+ * ZVA size is 64.
+ */
+
+.arch armv8.2-a+sve
+
+#define dstin x0
+#define val x1
+#define valw w1
+#define count x2
+#define dst x3
+#define dstend x4
+#define zva_val x5
+#define vlen x5
+#define off x3
+#define dstend2 x5
+
+ENTRY (__memset_sve_zva64)
+ dup v0.16B, valw
+ cmp count, 16
+ b.lo L(set_16)
+
+ add dstend, dstin, count
+ cmp count, 64
+ b.hs L(set_128)
+
+ /* Set 16..63 bytes. */
+ mov off, 16
+ and off, off, count, lsr 1
+ sub dstend2, dstend, off
+ str q0, [dstin]
+ str q0, [dstin, off]
+ str q0, [dstend2, -16]
+ str q0, [dstend, -16]
+ ret
+
+ .p2align 4
+L(set_16):
+ whilelo p0.b, xzr, count
+ st1b z0.b, p0, [dstin]
+ ret
+
+ .p2align 4
+L(set_128):
+ bic dst, dstin, 15
+ cmp count, 128
+ b.hi L(set_long)
+ stp q0, q0, [dstin]
+ stp q0, q0, [dstin, 32]
+ stp q0, q0, [dstend, -64]
+ stp q0, q0, [dstend, -32]
+ ret
+
+ .p2align 4
+L(set_long):
+ cmp count, 256
+ b.lo L(no_zva)
+ tst valw, 255
+ b.ne L(no_zva)
+
+ str q0, [dstin]
+ str q0, [dst, 16]
+ bic dst, dstin, 31
+ stp q0, q0, [dst, 32]
+ bic dst, dstin, 63
+ sub count, dstend, dst /* Count is now 64 too large. */
+ sub count, count, 128 /* Adjust count and bias for loop. */
+
+ sub x8, dstend, 1 /* Write last bytes before ZVA loop. */
+ bic x8, x8, 15
+ stp q0, q0, [x8, -48]
+ str q0, [x8, -16]
+ str q0, [dstend, -16]
+
+ .p2align 4
+L(zva64_loop):
+ add dst, dst, 64
+ dc zva, dst
+ subs count, count, 64
+ b.hi L(zva64_loop)
+ ret
+
+L(no_zva):
+ str q0, [dstin]
+ sub count, dstend, dst /* Count is 16 too large. */
+ sub count, count, 64 + 16 /* Adjust count and bias for loop. */
+L(no_zva_loop):
+ stp q0, q0, [dst, 16]
+ stp q0, q0, [dst, 48]
+ add dst, dst, 64
+ subs count, count, 64
+ b.hi L(no_zva_loop)
+ stp q0, q0, [dstend, -64]
+ stp q0, q0, [dstend, -32]
+ ret
+
+END (__memset_sve_zva64)
diff --git a/sysdeps/aarch64/multiarch/memset_zva64.S b/sysdeps/aarch64/multiarch/memset_zva64.S
index fb67cb1..91640b7 100644
--- a/sysdeps/aarch64/multiarch/memset_zva64.S
+++ b/sysdeps/aarch64/multiarch/memset_zva64.S
@@ -1,5 +1,5 @@
/* Optimized memset for zva size = 64.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/multiarch/strlen.c b/sysdeps/aarch64/multiarch/strlen.c
index f78592c..c7ee383 100644
--- a/sysdeps/aarch64/multiarch/strlen.c
+++ b/sysdeps/aarch64/multiarch/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen. AARCH64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/multiarch/strlen_asimd.S b/sysdeps/aarch64/multiarch/strlen_asimd.S
index 67dcc94..457e721 100644
--- a/sysdeps/aarch64/multiarch/strlen_asimd.S
+++ b/sysdeps/aarch64/multiarch/strlen_asimd.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation using SIMD.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -87,7 +87,6 @@
character, return the length, if not, continue in the main loop. */
ENTRY (__strlen_asimd)
- PTR_ARG (0)
and tmp1, srcin, MIN_PAGE_SIZE - 1
cmp tmp1, MIN_PAGE_SIZE - 32
b.hi L(page_cross)
diff --git a/sysdeps/aarch64/multiarch/strlen_generic.S b/sysdeps/aarch64/multiarch/strlen_generic.S
index ceeafe9..270586c 100644
--- a/sysdeps/aarch64/multiarch/strlen_generic.S
+++ b/sysdeps/aarch64/multiarch/strlen_generic.S
@@ -1,5 +1,5 @@
/* A Generic Optimized strlen implementation for AARCH64.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h b/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
index 5fe9577..c282560 100644
--- a/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,23 +21,13 @@
#include <bits/endian.h>
-#ifdef __ILP32__
-# define __SIZEOF_PTHREAD_ATTR_T 32
-# define __SIZEOF_PTHREAD_MUTEX_T 32
-# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 48
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-#else
-# define __SIZEOF_PTHREAD_ATTR_T 64
-# define __SIZEOF_PTHREAD_MUTEX_T 48
-# define __SIZEOF_PTHREAD_MUTEXATTR_T 8
-# define __SIZEOF_PTHREAD_CONDATTR_T 8
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-# define __SIZEOF_PTHREAD_BARRIERATTR_T 8
-#endif
+#define __SIZEOF_PTHREAD_ATTR_T 64
+#define __SIZEOF_PTHREAD_MUTEX_T 48
+#define __SIZEOF_PTHREAD_MUTEXATTR_T 8
+#define __SIZEOF_PTHREAD_CONDATTR_T 8
+#define __SIZEOF_PTHREAD_RWLOCK_T 56
+#define __SIZEOF_PTHREAD_BARRIER_T 32
+#define __SIZEOF_PTHREAD_BARRIERATTR_T 8
#define __SIZEOF_PTHREAD_COND_T 48
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
diff --git a/sysdeps/aarch64/nptl/bits/semaphore.h b/sysdeps/aarch64/nptl/bits/semaphore.h
index 216ee3d..ade6de4 100644
--- a/sysdeps/aarch64/nptl/bits/semaphore.h
+++ b/sysdeps/aarch64/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -20,13 +20,7 @@
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
#endif
-
-#ifdef __ILP32__
-# define __SIZEOF_SEM_T 16
-#else
-# define __SIZEOF_SEM_T 32
-#endif
-
+#define __SIZEOF_SEM_T 32
/* Value returned if `sem_open' failed. */
#define SEM_FAILED ((sem_t *) 0)
diff --git a/sysdeps/aarch64/nptl/bits/struct_rwlock.h b/sysdeps/aarch64/nptl/bits/struct_rwlock.h
index 84bdc0f..d15d053 100644
--- a/sysdeps/aarch64/nptl/bits/struct_rwlock.h
+++ b/sysdeps/aarch64/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* AArch64 internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/nptl/pthreaddef.h b/sysdeps/aarch64/nptl/pthreaddef.h
index 88f8602..c03593d 100644
--- a/sysdeps/aarch64/nptl/pthreaddef.h
+++ b/sysdeps/aarch64/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
index fc9776d..ede7c0d 100644
--- a/sysdeps/aarch64/nptl/tls.h
+++ b/sysdeps/aarch64/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure
index 19657b6..e1b772c 100644
--- a/sysdeps/aarch64/preconfigure
+++ b/sysdeps/aarch64/preconfigure
@@ -3,5 +3,6 @@ aarch64*)
base_machine=aarch64
machine=aarch64
mtls_descriptor=desc
+ mtls_traditional=trad
;;
esac
diff --git a/sysdeps/aarch64/rawmemchr.S b/sysdeps/aarch64/rawmemchr.S
index cdfc6fc..6b8fab1 100644
--- a/sysdeps/aarch64/rawmemchr.S
+++ b/sysdeps/aarch64/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr - find a character in a memory zone
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/rtld-global-offsets.sym b/sysdeps/aarch64/rtld-global-offsets.sym
index 23cdaf7..6c0690b 100644
--- a/sysdeps/aarch64/rtld-global-offsets.sym
+++ b/sysdeps/aarch64/rtld-global-offsets.sym
@@ -3,8 +3,13 @@
#include <ldsodefs.h>
#define GLRO_offsetof(name) offsetof (struct rtld_global_ro, _##name)
+#define GL_offsetof(name) offsetof (struct rtld_global, _##name)
-- Offsets of _rtld_global_ro in libc.so
GLRO_DL_HWCAP_OFFSET GLRO_offsetof (dl_hwcap)
GLRO_DL_HWCAP2_OFFSET GLRO_offsetof (dl_hwcap2)
+
+-- Offsets of _rtld_global in libc.so
+
+GL_DL_AARCH64_GCS_OFFSET GL_offsetof (dl_aarch64_gcs)
diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S
index 43fdb1b..53c5e7d 100644
--- a/sysdeps/aarch64/setjmp.S
+++ b/sysdeps/aarch64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -27,16 +27,28 @@ ENTRY (setjmp)
b 1f
END (setjmp)
-ENTRY (_setjmp)
+ENTRY_ALIGN (_setjmp, 2)
mov x1, #0
b 1f
END (_setjmp)
libc_hidden_def (_setjmp)
-ENTRY (__sigsetjmp)
- PTR_ARG (0)
-
+ENTRY_ALIGN (__sigsetjmp, 2)
1:
+
+#if IS_IN(libc)
+ /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so.
+ The calling convention of __libc_arm_za_disable allows to do
+ this thus allowing to avoid saving to and reading from stack.
+ As a result we also don't need to sign the return address and
+ check it after returning because it is not stored to stack. */
+ mov x13, x30
+ cfi_register (x30, x13)
+ bl __libc_arm_za_disable
+ mov x30, x13
+ cfi_register (x13, x30)
+#endif
+
stp x19, x20, [x0, #JB_X19<<3]
stp x21, x22, [x0, #JB_X21<<3]
stp x23, x24, [x0, #JB_X23<<3]
@@ -44,7 +56,7 @@ ENTRY (__sigsetjmp)
stp x27, x28, [x0, #JB_X27<<3]
#ifdef PTR_MANGLE
- PTR_MANGLE (4, 30, 3, 2)
+ PTR_MANGLE (x4, x30, x3)
stp x29, x4, [x0, #JB_X29<<3]
#else
stp x29, x30, [x0, #JB_X29<<3]
@@ -57,18 +69,25 @@ ENTRY (__sigsetjmp)
stp d10, d11, [x0, #JB_D10<<3]
stp d12, d13, [x0, #JB_D12<<3]
stp d14, d15, [x0, #JB_D14<<3]
+
+ /* GCS support. */
+ mov x16, 1
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ MRS_GCSPR (x2)
+ add x2, x2, 8 /* GCS state right after setjmp returns. */
+ str x2, [x0, #JB_GCSPR]
+L(gcs_done):
+
+ mov x2, sp
#ifdef PTR_MANGLE
- mov x4, sp
- PTR_MANGLE (5, 4, 3, 2)
- str x5, [x0, #JB_SP<<3]
-#else
- mov x2, sp
- str x2, [x0, #JB_SP<<3]
+ PTR_MANGLE (x2, x2, x3)
#endif
+ str x2, [x0, #JB_SP<<3]
#if IS_IN (rtld)
/* In ld.so we never save the signal mask */
mov w0, #0
- RET
+ ret
#else
b C_SYMBOL_NAME(__sigjmp_save)
#endif
diff --git a/sysdeps/aarch64/sfp-machine.h b/sysdeps/aarch64/sfp-machine.h
index a9ecdbf..b41a946 100644
--- a/sysdeps/aarch64/sfp-machine.h
+++ b/sysdeps/aarch64/sfp-machine.h
@@ -74,7 +74,7 @@ do { \
const float fp_1e32 = 1.0e32f; \
const float fp_zero = 0.0; \
const float fp_one = 1.0; \
- unsigned fpsr; \
+ uint64_t fpsr; \
if (_fex & FP_EX_INVALID) \
{ \
__asm__ __volatile__ ("fdiv\ts0, %s0, %s0" \
diff --git a/sysdeps/aarch64/sotruss-lib.c b/sysdeps/aarch64/sotruss-lib.c
index 0c99fd7..b57ad71 100644
--- a/sysdeps/aarch64/sotruss-lib.c
+++ b/sysdeps/aarch64/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for AArch64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/stackinfo.h b/sysdeps/aarch64/stackinfo.h
deleted file mode 100644
index 5a4dce7..0000000
--- a/sysdeps/aarch64/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On AArch64 the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
index 5d187f3..694c338 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -70,8 +70,8 @@ ENTRY(_start)
mov x5, x0
/* Load argc and a pointer to argv */
- ldr PTR_REG (1), [sp, #0]
- add x2, sp, #PTR_SIZE
+ ldr x1, [sp, #0]
+ add x2, sp, 8
/* Setup stack limit in argument register */
mov x6, sp
@@ -79,14 +79,16 @@ ENTRY(_start)
#ifdef PIC
# ifdef SHARED
adrp x0, :got:main
- ldr PTR_REG (0), [x0, #:got_lo12:main]
+ ldr x0, [x0, #:got_lo12:main]
# else
adrp x0, __wrap_main
add x0, x0, :lo12:__wrap_main
# endif
#else
- /* Set up the other arguments in registers */
- MOVL (0, main)
+ movz x0, :abs_g3:main
+ movk x0, :abs_g2_nc:main
+ movk x0, :abs_g1_nc:main
+ movk x0, :abs_g0_nc:main
#endif
mov x3, #0 /* Used to be init. */
mov x4, #0 /* Used to be fini. */
@@ -106,7 +108,7 @@ ENTRY(_start)
because crt1.o and rcrt1.o share code and the later must avoid the
use of GOT relocations before __libc_start_main is called. */
__wrap_main:
- BTI_C
+ bti c
b main
#endif
END(_start)
diff --git a/sysdeps/aarch64/stpcpy.S b/sysdeps/aarch64/stpcpy.S
index daf5fbb..8c84cef 100644
--- a/sysdeps/aarch64/stpcpy.S
+++ b/sysdeps/aarch64/stpcpy.S
@@ -1,5 +1,5 @@
/* stpcpy - copy a string returning pointer to end.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/strchr.S b/sysdeps/aarch64/strchr.S
index ca4c99e..878bd97 100644
--- a/sysdeps/aarch64/strchr.S
+++ b/sysdeps/aarch64/strchr.S
@@ -1,6 +1,6 @@
/* strchr - find a character in a string
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -52,7 +52,6 @@
If it is not a multiple of 4, there was no match. */
ENTRY (strchr)
- PTR_ARG (0)
bic src, srcin, 15
dup vrepchr.16b, chrin
ld1 {vdata.16b}, [src]
diff --git a/sysdeps/aarch64/strchrnul.S b/sysdeps/aarch64/strchrnul.S
index e1a1c7e..39c9909 100644
--- a/sysdeps/aarch64/strchrnul.S
+++ b/sysdeps/aarch64/strchrnul.S
@@ -1,6 +1,6 @@
/* strchrnul - find a character or nul in a string
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -51,7 +51,6 @@
exactly which byte matched. */
ENTRY (__strchrnul)
- PTR_ARG (0)
bic src, srcin, 15
dup vrepchr.16b, chrin
ld1 {vdata.16b}, [src]
diff --git a/sysdeps/aarch64/strcmp.S b/sysdeps/aarch64/strcmp.S
index 47f6fb1..d07ab2e 100644
--- a/sysdeps/aarch64/strcmp.S
+++ b/sysdeps/aarch64/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -62,8 +62,6 @@
NUL too in big-endian, byte-reverse the data before the NUL check. */
ENTRY(strcmp)
- PTR_ARG (0)
- PTR_ARG (1)
sub off2, src2, src1
mov zeroones, REP8_01
and tmp, src1, 7
diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S
index 7053540..ce4c3e8 100644
--- a/sysdeps/aarch64/strcpy.S
+++ b/sysdeps/aarch64/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy - copy a string returning pointer to start/end.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -69,8 +69,6 @@
exactly which byte matched. */
ENTRY (STRCPY)
- PTR_ARG (0)
- PTR_ARG (1)
bic src, srcin, 15
ld1 {vdata.16b}, [src]
cmeq vhas_nul.16b, vdata.16b, 0
diff --git a/sysdeps/aarch64/strlen.S b/sysdeps/aarch64/strlen.S
index 352fb40..1874a55 100644
--- a/sysdeps/aarch64/strlen.S
+++ b/sysdeps/aarch64/strlen.S
@@ -1,5 +1,5 @@
/* Generic optimized strlen using SIMD.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -49,7 +49,6 @@
identifies the first zero byte. */
ENTRY (STRLEN)
- PTR_ARG (0)
bic src, srcin, 15
ld1 {vdata.16b}, [src]
cmeq vhas_nul.16b, vdata.16b, 0
diff --git a/sysdeps/aarch64/strncmp.S b/sysdeps/aarch64/strncmp.S
index 5da88d1..da7545f 100644
--- a/sysdeps/aarch64/strncmp.S
+++ b/sysdeps/aarch64/strncmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/strnlen.S b/sysdeps/aarch64/strnlen.S
index e4fb350..e60dbe0 100644
--- a/sysdeps/aarch64/strnlen.S
+++ b/sysdeps/aarch64/strnlen.S
@@ -1,6 +1,6 @@
/* strnlen - calculate the length of a string with limit.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -49,8 +49,6 @@
identifies the first zero byte. */
ENTRY (__strnlen)
- PTR_ARG (0)
- SIZE_ARG (1)
bic src, srcin, 15
cbz cntin, L(nomatch)
ld1 {vdata.16b}, [src]
diff --git a/sysdeps/aarch64/strrchr.S b/sysdeps/aarch64/strrchr.S
index e52c9b2..8f4e7ee 100644
--- a/sysdeps/aarch64/strrchr.S
+++ b/sysdeps/aarch64/strrchr.S
@@ -1,6 +1,6 @@
/* strrchr: find the last instance of a character in a string.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -55,7 +55,6 @@
if the relevant byte matched the NUL end of string. */
ENTRY (strrchr)
- PTR_ARG (0)
bic src, srcin, 15
dup vrepchr.16b, chrin
movi vrepmask.16b, 0x33
diff --git a/sysdeps/aarch64/sys/ifunc.h b/sysdeps/aarch64/sys/ifunc.h
index eeebae1..a3322a9 100644
--- a/sysdeps/aarch64/sys/ifunc.h
+++ b/sysdeps/aarch64/sys/ifunc.h
@@ -1,5 +1,5 @@
/* Definitions used by AArch64 indirect function resolvers.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,24 +19,77 @@
#ifndef _SYS_IFUNC_H
#define _SYS_IFUNC_H
+#include <sys/cdefs.h>
+
/* A second argument is passed to the ifunc resolver. */
#define _IFUNC_ARG_HWCAP (1ULL << 62)
-/* The prototype of a gnu indirect function resolver on AArch64 is
+/* Maximum number of HWCAP elements that are currently supported. */
+#define _IFUNC_HWCAP_MAX 4
+
+/* The prototype of a GNU indirect function resolver on AArch64 is
+
+ ElfW(Addr) ifunc_resolver (uint64_t, const uint64_t *);
+
+ The following prototype is also compatible:
ElfW(Addr) ifunc_resolver (uint64_t, const __ifunc_arg_t *);
- the first argument should have the _IFUNC_ARG_HWCAP bit set and
- the remaining bits should match the AT_HWCAP settings. */
+ The first argument might have the _IFUNC_ARG_HWCAP bit set and
+ the remaining bits should match the AT_HWCAP settings.
+
+ If the _IFUNC_ARG_HWCAP bit is set in the first argument, then
+ the second argument is passed to the resolver function. In
+ this case, the second argument is a const pointer to a buffer
+ that allows to access all available HWCAP elements.
+
+ This buffer has its size in bytes at offset 0. The HWCAP elements
+ are available at offsets 8, 16, 24, 32... respectively for AT_HWCAP,
+ AT_HWCAP2, AT_HWCAP3, AT_HWCAP4... (these offsets are multiples of
+ sizeof (unsigned long)).
+
+ Indirect function resolvers must check availability of HWCAP
+ elements at runtime before accessing them using the size of the
+ buffer. */
-/* Second argument to an ifunc resolver. */
struct __ifunc_arg_t
{
- unsigned long _size; /* Size of the struct, so it can grow. */
+ unsigned long _size; /* Size of the struct, so it can grow. */
unsigned long _hwcap;
- unsigned long _hwcap2;
+ unsigned long _hwcap2; /* End of 1st published struct. */
+ unsigned long _hwcap3;
+ unsigned long _hwcap4; /* End of 2nd published struct. */
};
typedef struct __ifunc_arg_t __ifunc_arg_t;
+/* Constants for IDs of HWCAP elements to be used with the
+ __ifunc_hwcap function below. */
+enum
+{
+ _IFUNC_ARG_AT_HWCAP = 1,
+ _IFUNC_ARG_AT_HWCAP2 = 2,
+ _IFUNC_ARG_AT_HWCAP3 = 3,
+ _IFUNC_ARG_AT_HWCAP4 = 4,
+};
+
+/* A helper function to obtain HWCAP element by its ID from the
+ parameters ARG0 and ARG1 passed to the ifunc resolver. Note that
+ ID 1 corresponds to AT_HWCAP, ID 2 corresponds to AT_HWCAP2, etc.
+ If there is no element available for the requested ID then 0 is
+ returned. If ID doesn't much any supported AT_HWCAP{,2,...} value,
+ then 0 is also returned. */
+static __inline unsigned long __attribute__ ((unused, always_inline))
+__ifunc_hwcap (unsigned long __id,
+ unsigned long __arg0, const unsigned long *__arg1)
+{
+ if (__glibc_likely (__arg0 & _IFUNC_ARG_HWCAP))
+ {
+ const unsigned long size = __arg1[0];
+ const unsigned long offset = __id * sizeof (unsigned long);
+ return offset < size && __id > 0 ? __arg1[__id] : 0;
+ }
+ return __id == 1 ? __arg0 : 0;
+}
+
#endif
diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
index 464674e..f5e28cb 100644
--- a/sysdeps/aarch64/sysdep.h
+++ b/sysdeps/aarch64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,63 +21,27 @@
#include <sysdeps/generic/sysdep.h>
-#ifdef __LP64__
-# define AARCH64_R(NAME) R_AARCH64_ ## NAME
-# define PTR_REG(n) x##n
-# define PTR_LOG_SIZE 3
-# define PTR_ARG(n)
-# define SIZE_ARG(n)
-#else
-# define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME
-# define PTR_REG(n) w##n
-# define PTR_LOG_SIZE 2
-# define PTR_ARG(n) mov w##n, w##n
-# define SIZE_ARG(n) mov w##n, w##n
-#endif
-
-#define PTR_SIZE (1<<PTR_LOG_SIZE)
-
-#ifndef __ASSEMBLER__
-/* Strip pointer authentication code from pointer p. */
-static inline void *
-strip_pac (void *p)
-{
- register void *ra asm ("x30") = (p);
- asm ("hint 7 // xpaclri" : "+r"(ra));
- return ra;
-}
-
-/* This is needed when glibc is built with -mbranch-protection=pac-ret
- with a gcc that is affected by PR target/94891. */
-# if HAVE_AARCH64_PAC_RET
-# undef RETURN_ADDRESS
-# define RETURN_ADDRESS(n) strip_pac (__builtin_return_address (n))
-# endif
-#endif
-
#ifdef __ASSEMBLER__
+/* CFI directive for return address. */
+#define cfi_negate_ra_state .cfi_negate_ra_state
+
/* Syntactic details of assembler. */
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-/* Branch Target Identitication support. */
-#if HAVE_AARCH64_BTI
-# define BTI_C hint 34
-# define BTI_J hint 36
-#else
-# define BTI_C nop
-# define BTI_J nop
-#endif
-
-/* Return address signing support (pac-ret). */
-#define PACIASP hint 25
-#define AUTIASP hint 29
+/* Guarded Control Stack support. */
+#define CHKFEAT_X16 hint 40
+#define MRS_GCSPR(x) mrs x, s3_3_c2_c5_1
+#define GCSPOPM(x) sysl x, #3, c7, c7, #1
+#define GCSSS1(x) sys #3, c7, c7, #2, x
+#define GCSSS2(x) sysl x, #3, c7, c7, #3
/* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */
#define FEATURE_1_AND 0xc0000000
#define FEATURE_1_BTI 1
#define FEATURE_1_PAC 2
+#define FEATURE_1_GCS 4
/* Add a NT_GNU_PROPERTY_TYPE_0 note. */
#define GNU_PROPERTY(type, value) \
@@ -95,11 +59,7 @@ strip_pac (void *p)
/* Add GNU property note with the supported features to all asm code
where sysdep.h is included. */
-#if HAVE_AARCH64_BTI && HAVE_AARCH64_PAC_RET
-GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC)
-#elif HAVE_AARCH64_BTI
-GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
-#endif
+GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC|FEATURE_1_GCS)
/* Define an entry point visible from C. */
#define ENTRY(name) \
@@ -108,7 +68,7 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
.p2align 6; \
C_LABEL(name) \
cfi_startproc; \
- BTI_C; \
+ bti c; \
CALL_MCOUNT
/* Define an entry point visible from C. */
@@ -118,7 +78,7 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
.p2align align; \
C_LABEL(name) \
cfi_startproc; \
- BTI_C; \
+ bti c; \
CALL_MCOUNT
/* Define an entry point visible from C with a specified alignment and
@@ -135,7 +95,7 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
.endr; \
C_LABEL(name) \
cfi_startproc; \
- BTI_C; \
+ bti c; \
CALL_MCOUNT
#undef END
@@ -187,33 +147,6 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
# define L(name) .L##name
#endif
-/* Load or store to/from a pc-relative EXPR into/from R, using T.
- Note R and T are register numbers and not register names. */
-#define LDST_PCREL(OP, R, T, EXPR) \
- adrp x##T, EXPR; \
- OP PTR_REG (R), [x##T, #:lo12:EXPR]; \
-
-/* Load or store to/from a got-relative EXPR into/from R, using T.
- Note R and T are register numbers and not register names. */
-#define LDST_GLOBAL(OP, R, T, EXPR) \
- adrp x##T, :got:EXPR; \
- ldr PTR_REG (T), [x##T, #:got_lo12:EXPR]; \
- OP PTR_REG (R), [x##T];
-
-/* Load an immediate into R.
- Note R is a register number and not a register name. */
-#ifdef __LP64__
-# define MOVL(R, NAME) \
- movz PTR_REG (R), #:abs_g3:NAME; \
- movk PTR_REG (R), #:abs_g2_nc:NAME; \
- movk PTR_REG (R), #:abs_g1_nc:NAME; \
- movk PTR_REG (R), #:abs_g0_nc:NAME;
-#else
-# define MOVL(R, NAME) \
- movz PTR_REG (R), #:abs_g1:NAME; \
- movk PTR_REG (R), #:abs_g0_nc:NAME;
-#endif
-
/* Since C identifiers are not normally prefixed with an underscore
on this system, the asm identifier `syscall_error' intrudes on the
C name space. Make sure we use an innocuous name. */
diff --git a/sysdeps/aarch64/tlsdesc.c b/sysdeps/aarch64/tlsdesc.c
index 105e4cf..5dc9ed4 100644
--- a/sysdeps/aarch64/tlsdesc.c
+++ b/sysdeps/aarch64/tlsdesc.c
@@ -1,6 +1,6 @@
/* Manage TLS descriptors. AArch64 version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/tst-audit.h b/sysdeps/aarch64/tst-audit.h
index 95e034a..cf05ba5 100644
--- a/sysdeps/aarch64/tst-audit.h
+++ b/sysdeps/aarch64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. AArch64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/aarch64/tst-audit26.c b/sysdeps/aarch64/tst-audit26.c
index cf4026b..8e00cb0 100644
--- a/sysdeps/aarch64/tst-audit26.c
+++ b/sysdeps/aarch64/tst-audit26.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 ABI specifics.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-audit26mod.c b/sysdeps/aarch64/tst-audit26mod.c
index 67f8531..c5d0693 100644
--- a/sysdeps/aarch64/tst-audit26mod.c
+++ b/sysdeps/aarch64/tst-audit26mod.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 ABI specifics.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-audit26mod.h b/sysdeps/aarch64/tst-audit26mod.h
index 4a3f956..6c8ed7f 100644
--- a/sysdeps/aarch64/tst-audit26mod.h
+++ b/sysdeps/aarch64/tst-audit26mod.h
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 specific ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-audit27.c b/sysdeps/aarch64/tst-audit27.c
index 4f34581..b7778aa 100644
--- a/sysdeps/aarch64/tst-audit27.c
+++ b/sysdeps/aarch64/tst-audit27.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 ABI specifics.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-audit27mod.c b/sysdeps/aarch64/tst-audit27mod.c
index a853c28..03c5628 100644
--- a/sysdeps/aarch64/tst-audit27mod.c
+++ b/sysdeps/aarch64/tst-audit27mod.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 ABI specifics.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-audit27mod.h b/sysdeps/aarch64/tst-audit27mod.h
index 008f5a6..5ef272f 100644
--- a/sysdeps/aarch64/tst-audit27mod.h
+++ b/sysdeps/aarch64/tst-audit27mod.h
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 specific ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-auditmod26.c b/sysdeps/aarch64/tst-auditmod26.c
index aecb302..1dd1412 100644
--- a/sysdeps/aarch64/tst-auditmod26.c
+++ b/sysdeps/aarch64/tst-auditmod26.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 specific ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-auditmod27.c b/sysdeps/aarch64/tst-auditmod27.c
index 547ca9f..820acad 100644
--- a/sysdeps/aarch64/tst-auditmod27.c
+++ b/sysdeps/aarch64/tst-auditmod27.c
@@ -1,5 +1,5 @@
/* Check LD_AUDIT for aarch64 specific ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/tst-ifunc-arg-1.c b/sysdeps/aarch64/tst-ifunc-arg-1.c
index d8c3c14..292c5ae 100644
--- a/sysdeps/aarch64/tst-ifunc-arg-1.c
+++ b/sysdeps/aarch64/tst-ifunc-arg-1.c
@@ -1,5 +1,5 @@
/* Test STT_GNU_IFUNC resolver with second argument.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -57,6 +57,21 @@ do_test (void)
TEST_COMPARE (saved_arg2._size, sizeof (__ifunc_arg_t));
TEST_COMPARE (saved_arg2._hwcap, getauxval (AT_HWCAP));
TEST_COMPARE (saved_arg2._hwcap2, getauxval (AT_HWCAP2));
+ TEST_COMPARE (saved_arg2._hwcap3, getauxval (AT_HWCAP3));
+ TEST_COMPARE (saved_arg2._hwcap4, getauxval (AT_HWCAP4));
+
+ const unsigned long *saved_arg2_ptr = (const unsigned long *)&saved_arg2;
+
+ TEST_COMPARE (__ifunc_hwcap (1, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP));
+ TEST_COMPARE (__ifunc_hwcap (2, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP2));
+ TEST_COMPARE (__ifunc_hwcap (3, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP3));
+ TEST_COMPARE (__ifunc_hwcap (4, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP4));
+
+
return 0;
}
diff --git a/sysdeps/aarch64/tst-ifunc-arg-2.c b/sysdeps/aarch64/tst-ifunc-arg-2.c
index a3bca92..c05129a 100644
--- a/sysdeps/aarch64/tst-ifunc-arg-2.c
+++ b/sysdeps/aarch64/tst-ifunc-arg-2.c
@@ -1,5 +1,5 @@
/* Test R_*_IRELATIVE resolver with second argument.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -60,6 +60,20 @@ do_test (void)
TEST_COMPARE (saved_arg2._size, sizeof (__ifunc_arg_t));
TEST_COMPARE (saved_arg2._hwcap, getauxval (AT_HWCAP));
TEST_COMPARE (saved_arg2._hwcap2, getauxval (AT_HWCAP2));
+ TEST_COMPARE (saved_arg2._hwcap3, getauxval (AT_HWCAP3));
+ TEST_COMPARE (saved_arg2._hwcap4, getauxval (AT_HWCAP4));
+
+ const unsigned long *saved_arg2_ptr = (const unsigned long *)&saved_arg2;
+
+ TEST_COMPARE (__ifunc_hwcap (1, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP));
+ TEST_COMPARE (__ifunc_hwcap (2, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP2));
+ TEST_COMPARE (__ifunc_hwcap (3, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP3));
+ TEST_COMPARE (__ifunc_hwcap (4, saved_arg1, saved_arg2_ptr),
+ getauxval (AT_HWCAP4));
+
return 0;
}
diff --git a/sysdeps/aarch64/tst-ifunc-arg-3.c b/sysdeps/aarch64/tst-ifunc-arg-3.c
new file mode 100644
index 0000000..49d8866
--- /dev/null
+++ b/sysdeps/aarch64/tst-ifunc-arg-3.c
@@ -0,0 +1,97 @@
+/* Tests for __ifunc_hwcap helper function.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <sys/ifunc.h>
+#include <support/check.h>
+
+#define CHECK_VALUES_WITH_ARG(p1, p2, p3, p4) \
+ ({ \
+ TEST_COMPARE (__ifunc_hwcap (0, _IFUNC_ARG_HWCAP, arg), 0); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP, _IFUNC_ARG_HWCAP, arg), p1); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP2, _IFUNC_ARG_HWCAP, arg), p2); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP3, _IFUNC_ARG_HWCAP, arg), p3); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP4, _IFUNC_ARG_HWCAP, arg), p4); \
+ TEST_COMPARE (__ifunc_hwcap (5, _IFUNC_ARG_HWCAP, arg), 0); \
+ })
+
+#define CHECK_VALUES_WITHOUT_ARG(p1) \
+ ({ \
+ TEST_COMPARE (__ifunc_hwcap (0, p1, arg), 0); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP, p1, arg), p1); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP2, p1, arg), 0); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP3, p1, arg), 0); \
+ TEST_COMPARE (__ifunc_hwcap (_IFUNC_ARG_AT_HWCAP4, p1, arg), 0); \
+ TEST_COMPARE (__ifunc_hwcap (5, p1, arg), 0); \
+ })
+
+static void
+test_one (const unsigned long *arg)
+{
+ uint64_t size = arg[0] / sizeof (uint64_t);
+
+ switch (size)
+ {
+ case 1:
+ CHECK_VALUES_WITH_ARG (0, 0, 0, 0);
+ CHECK_VALUES_WITHOUT_ARG (0);
+ break;
+ case 2:
+ CHECK_VALUES_WITH_ARG (1, 0, 0, 0);
+ CHECK_VALUES_WITHOUT_ARG (1);
+ break;
+ case 3:
+ CHECK_VALUES_WITH_ARG (1, 2, 0, 0);
+ CHECK_VALUES_WITHOUT_ARG (1);
+ break;
+ case 4:
+ CHECK_VALUES_WITH_ARG (1, 2, 3, 0);
+ CHECK_VALUES_WITHOUT_ARG (1);
+ break;
+ case 5:
+ CHECK_VALUES_WITH_ARG (1, 2, 3, 4);
+ CHECK_VALUES_WITHOUT_ARG (1);
+ break;
+ default:
+ TEST_VERIFY (0); // unexpected size
+ break;
+ }
+}
+
+static int
+do_test (void)
+{
+ uint64_t arg[_IFUNC_HWCAP_MAX + 1] = {
+ 0, /* Placeholder for size */
+ _IFUNC_ARG_AT_HWCAP, /* AT_HWCAP */
+ _IFUNC_ARG_AT_HWCAP2, /* AT_HWCAP2 */
+ _IFUNC_ARG_AT_HWCAP3, /* AT_HWCAP3 */
+ _IFUNC_ARG_AT_HWCAP4, /* AT_HWCAP4 */
+ };
+
+ for (int k = 0; k <= _IFUNC_HWCAP_MAX; k++)
+ {
+ /* Update size */
+ arg[0] = (k + 1) * sizeof (uint64_t);
+ test_one (arg);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/aarch64/tst-ifunc-arg-4.c b/sysdeps/aarch64/tst-ifunc-arg-4.c
new file mode 100644
index 0000000..c95ef9e
--- /dev/null
+++ b/sysdeps/aarch64/tst-ifunc-arg-4.c
@@ -0,0 +1,67 @@
+/* Test for ifunc resolver that uses __ifunc_hwcap helper function.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <sys/auxv.h>
+#include <sys/ifunc.h>
+#include <support/check.h>
+
+static int
+one (void)
+{
+ return 1;
+}
+
+static int
+two (void)
+{
+ return 2;
+}
+
+/* Resolver function. */
+static void *
+resolver (uint64_t arg0, const uint64_t arg1[])
+{
+ uint64_t hwcap2 = __ifunc_hwcap (_IFUNC_ARG_AT_HWCAP2, arg0, arg1);
+ if (hwcap2 & HWCAP2_POE)
+ return (void *)one;
+ else
+ return (void *)two;
+}
+
+/* An extern visible ifunc symbol. */
+int fun (void) __attribute__((ifunc ("resolver")));
+
+static int
+do_test (void)
+{
+ if (getauxval (AT_HWCAP2) & HWCAP2_POE)
+ {
+ printf ("using 1st implementation\n");
+ TEST_VERIFY (fun () == 1);
+ }
+ else
+ {
+ printf ("using 2nd implementation\n");
+ TEST_VERIFY (fun () == 2);
+ }
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/aarch64/tst-sme-helper.h b/sysdeps/aarch64/tst-sme-helper.h
new file mode 100644
index 0000000..f049416
--- /dev/null
+++ b/sysdeps/aarch64/tst-sme-helper.h
@@ -0,0 +1,97 @@
+/* Utility functions for SME tests.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Streaming SVE vector register size. */
+static unsigned long svl;
+
+struct blk {
+ void *za_save_buffer;
+ uint16_t num_za_save_slices;
+ char __reserved[6];
+};
+
+/* Read SVCR to get SM (bit0) and ZA (bit1) state. */
+static unsigned long
+get_svcr (void)
+{
+ register unsigned long x0 asm ("x0");
+ asm volatile (
+ ".inst 0xd53b4240 /* mrs x0, svcr */\n"
+ : "=r" (x0));
+ return x0;
+}
+
+/* Returns tpidr2. */
+static void *
+get_tpidr2 (void)
+{
+ register unsigned long x0 asm ("x0");
+ asm volatile (
+ ".inst 0xd53bd0a0 /* mrs x0, tpidr2_el0 */\n"
+ : "=r"(x0) :: "memory");
+ return (void *) x0;
+}
+
+/* Obtains current streaming SVE vector register size. */
+static unsigned long
+get_svl (void)
+{
+ register unsigned long x0 asm ("x0");
+ asm volatile (
+ ".inst 0x04bf5820 /* rdsvl x0, 1 */\n"
+ : "=r" (x0));
+ return x0;
+}
+
+/* PSTATE.ZA = 1, set ZA state to active. */
+static void
+start_za (void)
+{
+ asm volatile (
+ ".inst 0xd503457f /* smstart za */");
+}
+
+/* Load data into ZA byte by byte from p. */
+static void __attribute__ ((noinline))
+load_za (const void *p)
+{
+ register unsigned long x15 asm ("x15") = 0;
+ register unsigned long x16 asm ("x16") = (unsigned long)p;
+ register unsigned long x17 asm ("x17") = svl;
+
+ asm volatile (
+ ".inst 0xd503437f /* smstart sm */\n"
+ ".L_ldr_loop:\n"
+ ".inst 0xe1006200 /* ldr za[w15, 0], [x16] */\n"
+ "add w15, w15, 1\n"
+ ".inst 0x04305030 /* addvl x16, x16, 1 */\n"
+ "cmp w15, w17\n"
+ "bne .L_ldr_loop\n"
+ ".inst 0xd503427f /* smstop sm */\n"
+ : "+r"(x15), "+r"(x16), "+r"(x17));
+}
+
+/* Set tpidr2 to BLK. */
+static void
+set_tpidr2 (struct blk *blk)
+{
+ register unsigned long x0 asm ("x0") = (unsigned long)blk;
+ asm volatile (
+ ".inst 0xd51bd0a0 /* msr tpidr2_el0, x0 */\n"
+ :: "r"(x0) : "memory");
+}
diff --git a/sysdeps/aarch64/tst-sme-jmp.c b/sysdeps/aarch64/tst-sme-jmp.c
index 3576934..103897a 100644
--- a/sysdeps/aarch64/tst-sme-jmp.c
+++ b/sysdeps/aarch64/tst-sme-jmp.c
@@ -1,5 +1,5 @@
/* Test for SME longjmp.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,87 +27,12 @@
#include <support/support.h>
#include <support/test-driver.h>
-struct blk {
- void *za_save_buffer;
- uint16_t num_za_save_slices;
- char __reserved[6];
-};
+#include "tst-sme-helper.h"
-static unsigned long svl;
static uint8_t *za_orig;
static uint8_t *za_dump;
static uint8_t *za_save;
-static unsigned long
-get_svl (void)
-{
- register unsigned long x0 asm ("x0");
- asm volatile (
- ".inst 0x04bf5820 /* rdsvl x0, 1 */\n"
- : "=r" (x0));
- return x0;
-}
-
-/* PSTATE.ZA = 1, set ZA state to active. */
-static void
-start_za (void)
-{
- asm volatile (
- ".inst 0xd503457f /* smstart za */");
-}
-
-/* Read SVCR to get SM (bit0) and ZA (bit1) state. */
-static unsigned long
-get_svcr (void)
-{
- register unsigned long x0 asm ("x0");
- asm volatile (
- ".inst 0xd53b4240 /* mrs x0, svcr */\n"
- : "=r" (x0));
- return x0;
-}
-
-/* Load data into ZA byte by byte from p. */
-static void __attribute__ ((noinline))
-load_za (const void *p)
-{
- register unsigned long x15 asm ("x15") = 0;
- register unsigned long x16 asm ("x16") = (unsigned long)p;
- register unsigned long x17 asm ("x17") = svl;
-
- asm volatile (
- ".inst 0xd503437f /* smstart sm */\n"
- ".L_ldr_loop:\n"
- ".inst 0xe1006200 /* ldr za[w15, 0], [x16] */\n"
- "add w15, w15, 1\n"
- ".inst 0x04305030 /* addvl x16, x16, 1 */\n"
- "cmp w15, w17\n"
- "bne .L_ldr_loop\n"
- ".inst 0xd503427f /* smstop sm */\n"
- : "+r"(x15), "+r"(x16), "+r"(x17));
-}
-
-/* Set tpidr2 to BLK. */
-static void
-set_tpidr2 (struct blk *blk)
-{
- register unsigned long x0 asm ("x0") = (unsigned long)blk;
- asm volatile (
- ".inst 0xd51bd0a0 /* msr tpidr2_el0, x0 */\n"
- :: "r"(x0) : "memory");
-}
-
-/* Returns tpidr2. */
-static void *
-get_tpidr2 (void)
-{
- register unsigned long x0 asm ("x0");
- asm volatile (
- ".inst 0xd53bd0a0 /* mrs x0, tpidr2_el0 */\n"
- : "=r"(x0) :: "memory");
- return (void *) x0;
-}
-
static void
print_data(const char *msg, void *p)
{
@@ -168,8 +93,8 @@ longjmp_test (void)
{
p = get_tpidr2 ();
printf ("before longjmp: tp2 = %p\n", p);
- if (p != &blk)
- FAIL_EXIT1 ("tpidr2 is clobbered");
+ if (p != NULL)
+ FAIL_EXIT1 ("tpidr2 has not been reset to null");
do_longjmp (env);
FAIL_EXIT1 ("longjmp returned");
}
diff --git a/sysdeps/aarch64/tst-sme-za-state.c b/sysdeps/aarch64/tst-sme-za-state.c
new file mode 100644
index 0000000..63f6eeb
--- /dev/null
+++ b/sysdeps/aarch64/tst-sme-za-state.c
@@ -0,0 +1,119 @@
+/* Test for SME ZA state being cleared on setjmp and longjmp.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <setjmp.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/auxv.h>
+
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+
+#include "tst-sme-helper.h"
+
+static uint8_t *state;
+
+static void
+enable_sme_za_state (struct blk *ptr)
+{
+ set_tpidr2 (ptr);
+ start_za ();
+ load_za (state);
+}
+
+static void
+check_sme_za_state (const char msg[], bool clear)
+{
+ unsigned long svcr = get_svcr ();
+ void *tpidr2 = get_tpidr2 ();
+ printf ("[%s]\n", msg);
+ printf ("svcr = %016lx\n", svcr);
+ printf ("tpidr2 = %016lx\n", (unsigned long)tpidr2);
+ if (clear)
+ {
+ TEST_VERIFY (svcr == 0);
+ TEST_VERIFY (tpidr2 == NULL);
+ }
+ else
+ {
+ TEST_VERIFY (svcr != 0);
+ TEST_VERIFY (tpidr2 != NULL);
+ }
+}
+
+static void
+run (struct blk *ptr)
+{
+ jmp_buf buf;
+ int ret;
+
+ check_sme_za_state ("initial state", /* Clear. */ true);
+
+ /* Enabled ZA state so that effect of disabling be observable. */
+ enable_sme_za_state (ptr);
+ check_sme_za_state ("before setjmp", /* Clear. */ false);
+
+ if ((ret = setjmp (buf)) == 0)
+ {
+ check_sme_za_state ("after setjmp", /* Clear. */ true);
+
+ /* Enabled ZA state so that effect of disabling be observable. */
+ enable_sme_za_state (ptr);
+ check_sme_za_state ("before longjmp", /* Clear. */ false);
+
+ longjmp (buf, 42);
+
+ /* Unreachable. */
+ TEST_VERIFY (false);
+ __builtin_unreachable ();
+ }
+
+ TEST_COMPARE (ret, 42);
+ check_sme_za_state ("after longjmp", /* Clear. */ true);
+}
+
+static int
+do_test (void)
+{
+ unsigned long hwcap2 = getauxval (AT_HWCAP2);
+ if ((hwcap2 & HWCAP2_SME) == 0)
+ return EXIT_UNSUPPORTED;
+
+ /* Get current streaming SVE vector register size. */
+ svl = get_svl ();
+ printf ("svl: %lu\n", svl);
+ TEST_VERIFY_EXIT (!(svl < 16 || svl % 16 != 0 || svl >= (1 << 16)));
+
+ /* Initialise buffer for ZA state of SME. */
+ state = xmalloc (svl * svl);
+ memset (state, 1, svl * svl);
+ struct blk blk = {
+ .za_save_buffer = state,
+ .num_za_save_slices = svl,
+ .__reserved = {0},
+ };
+
+ run (&blk);
+
+ free (state);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/aarch64/tst-vpcs-mod.S b/sysdeps/aarch64/tst-vpcs-mod.S
index 19b01c3..613a4d1 100644
--- a/sysdeps/aarch64/tst-vpcs-mod.S
+++ b/sysdeps/aarch64/tst-vpcs-mod.S
@@ -1,5 +1,5 @@
/* Record the register state before and after a variant PCS call.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -17,6 +17,8 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
+#include "tst-asm-helper.h"
+
.variant_pcs vpcs_call
.global vpcs_call
.type vpcs_call, %function
@@ -121,7 +123,7 @@ vpcs_call_regs:
/* Emulate a BL using B, but save x30 before the branch. */
adr x30, .L_return_addr
stp x30, x29, [x1, 240]
- b vpcs_call
+ bl vpcs_call
.L_return_addr:
/* Restore callee-saved registers. */
diff --git a/sysdeps/aarch64/tst-vpcs.c b/sysdeps/aarch64/tst-vpcs.c
index 4fd44bc..5ac42b7 100644
--- a/sysdeps/aarch64/tst-vpcs.c
+++ b/sysdeps/aarch64/tst-vpcs.c
@@ -1,5 +1,5 @@
/* Test that variant PCS calls don't clobber registers with lazy binding.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile
index 11d5e65..5e143b3 100644
--- a/sysdeps/alpha/Makefile
+++ b/sysdeps/alpha/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/__longjmp.S b/sysdeps/alpha/__longjmp.S
index 0db44e4..b45c095 100644
--- a/sysdeps/alpha/__longjmp.S
+++ b/sysdeps/alpha/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S
index 9344e54..f89e074 100644
--- a/sysdeps/alpha/_mcount.S
+++ b/sysdeps/alpha/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. alpha
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/add_n.S b/sysdeps/alpha/add_n.S
index a3e8f3e..7e807ae 100644
--- a/sysdeps/alpha/add_n.S
+++ b/sysdeps/alpha/add_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_add_n -- Add two limb vectors of the same length > 0 and
# store sum in a third limb vector.
- # Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/addmul_1.S b/sysdeps/alpha/addmul_1.S
index 04c35b5..09b873f 100644
--- a/sysdeps/alpha/addmul_1.S
+++ b/sysdeps/alpha/addmul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
# the result to a second limb vector.
- # Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/alphaev5/add_n.S b/sysdeps/alpha/alphaev5/add_n.S
index 71fdf96..26573cd 100644
--- a/sysdeps/alpha/alphaev5/add_n.S
+++ b/sysdeps/alpha/alphaev5/add_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_add_n -- Add two limb vectors of the same length > 0 and
# store sum in a third limb vector.
- # Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/alphaev5/lshift.S b/sysdeps/alpha/alphaev5/lshift.S
index 2bbf8d0..e5aa464 100644
--- a/sysdeps/alpha/alphaev5/lshift.S
+++ b/sysdeps/alpha/alphaev5/lshift.S
@@ -1,6 +1,6 @@
# Alpha EV5 __mpn_lshift --
- # Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/alphaev5/rshift.S b/sysdeps/alpha/alphaev5/rshift.S
index fcd4f56..0b66fa2 100644
--- a/sysdeps/alpha/alphaev5/rshift.S
+++ b/sysdeps/alpha/alphaev5/rshift.S
@@ -1,6 +1,6 @@
# Alpha EV5 __mpn_rshift --
- # Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/alphaev5/sub_n.S b/sysdeps/alpha/alphaev5/sub_n.S
index 103a192..c84efa6 100644
--- a/sysdeps/alpha/alphaev5/sub_n.S
+++ b/sysdeps/alpha/alphaev5/sub_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
# store difference in a third limb vector.
- # Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/alphaev6/addmul_1.S b/sysdeps/alpha/alphaev6/addmul_1.S
index d5f6871..d32ab23 100644
--- a/sysdeps/alpha/alphaev6/addmul_1.S
+++ b/sysdeps/alpha/alphaev6/addmul_1.S
@@ -1,7 +1,7 @@
# Alpha ev6 mpn_addmul_1 -- Multiply a limb vector with a limb and add
# the result to a second limb vector.
#
- # Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ # Copyright (C) 2000-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
#
diff --git a/sysdeps/alpha/alphaev6/memcpy.S b/sysdeps/alpha/alphaev6/memcpy.S
index 8916f40..237a5fe 100644
--- a/sysdeps/alpha/alphaev6/memcpy.S
+++ b/sysdeps/alpha/alphaev6/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
diff --git a/sysdeps/alpha/alphaev6/memset.S b/sysdeps/alpha/alphaev6/memset.S
index 87af7e1..fd284e9 100644
--- a/sysdeps/alpha/alphaev6/memset.S
+++ b/sysdeps/alpha/alphaev6/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev6/stxcpy.S b/sysdeps/alpha/alphaev6/stxcpy.S
index 4867a1b..502f0c3 100644
--- a/sysdeps/alpha/alphaev6/stxcpy.S
+++ b/sysdeps/alpha/alphaev6/stxcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev6/stxncpy.S b/sysdeps/alpha/alphaev6/stxncpy.S
index f027dd1..8cdfd40 100644
--- a/sysdeps/alpha/alphaev6/stxncpy.S
+++ b/sysdeps/alpha/alphaev6/stxncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/rawmemchr.S b/sysdeps/alpha/alphaev67/rawmemchr.S
index 1dc3d6e..4bff535 100644
--- a/sysdeps/alpha/alphaev67/rawmemchr.S
+++ b/sysdeps/alpha/alphaev67/rawmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/stpcpy.S b/sysdeps/alpha/alphaev67/stpcpy.S
index c902c79..28902d2 100644
--- a/sysdeps/alpha/alphaev67/stpcpy.S
+++ b/sysdeps/alpha/alphaev67/stpcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/stpncpy.S b/sysdeps/alpha/alphaev67/stpncpy.S
index b223672..5fbe918 100644
--- a/sysdeps/alpha/alphaev67/stpncpy.S
+++ b/sysdeps/alpha/alphaev67/stpncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/strcat.S b/sysdeps/alpha/alphaev67/strcat.S
index 43d224b..52770e2 100644
--- a/sysdeps/alpha/alphaev67/strcat.S
+++ b/sysdeps/alpha/alphaev67/strcat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/strchr.S b/sysdeps/alpha/alphaev67/strchr.S
index 963a706..7f14e3f 100644
--- a/sysdeps/alpha/alphaev67/strchr.S
+++ b/sysdeps/alpha/alphaev67/strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/strlen.S b/sysdeps/alpha/alphaev67/strlen.S
index e567f08..79f95ba 100644
--- a/sysdeps/alpha/alphaev67/strlen.S
+++ b/sysdeps/alpha/alphaev67/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/strncat.S b/sysdeps/alpha/alphaev67/strncat.S
index 1b4721b..0f20724 100644
--- a/sysdeps/alpha/alphaev67/strncat.S
+++ b/sysdeps/alpha/alphaev67/strncat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/alphaev67/strrchr.S b/sysdeps/alpha/alphaev67/strrchr.S
index e3b13c0..54dd1e7 100644
--- a/sysdeps/alpha/alphaev67/strrchr.S
+++ b/sysdeps/alpha/alphaev67/strrchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
diff --git a/sysdeps/alpha/atomic-machine.h b/sysdeps/alpha/atomic-machine.h
index bd0595d..393176d 100644
--- a/sysdeps/alpha/atomic-machine.h
+++ b/sysdeps/alpha/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/bits/link.h b/sysdeps/alpha/bits/link.h
index 1271c3b..f7202db 100644
--- a/sysdeps/alpha/bits/link.h
+++ b/sysdeps/alpha/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/bits/mathdef.h b/sysdeps/alpha/bits/mathdef.h
index 13b058e..8154384 100644
--- a/sysdeps/alpha/bits/mathdef.h
+++ b/sysdeps/alpha/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h
index 7a31d17..4aba270 100644
--- a/sysdeps/alpha/bits/setjmp.h
+++ b/sysdeps/alpha/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. Alpha version.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/crti.S b/sysdeps/alpha/crti.S
index 776c847..506fe53 100644
--- a/sysdeps/alpha/crti.S
+++ b/sysdeps/alpha/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Alpha.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/crtn.S b/sysdeps/alpha/crtn.S
index a14b52f..86783b5 100644
--- a/sysdeps/alpha/crtn.S
+++ b/sysdeps/alpha/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Alpha.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/div.S b/sysdeps/alpha/div.S
index ef67bcf..656b321 100644
--- a/sysdeps/alpha/div.S
+++ b/sysdeps/alpha/div.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/div_libc.h b/sysdeps/alpha/div_libc.h
index 8c9b122..a48bcbf 100644
--- a/sysdeps/alpha/div_libc.h
+++ b/sysdeps/alpha/div_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/divl.S b/sysdeps/alpha/divl.S
index bd56a7e..a5bda2b 100644
--- a/sysdeps/alpha/divl.S
+++ b/sysdeps/alpha/divl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/divq.S b/sysdeps/alpha/divq.S
index 7cb4b9d..9d97d2e 100644
--- a/sysdeps/alpha/divq.S
+++ b/sysdeps/alpha/divq.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/divqu.S b/sysdeps/alpha/divqu.S
index bf87afe..cf3cc13 100644
--- a/sysdeps/alpha/divqu.S
+++ b/sysdeps/alpha/divqu.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 5b125f3..b9de916 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/dl-procinfo.h b/sysdeps/alpha/dl-procinfo.h
deleted file mode 100644
index 8d17d42..0000000
--- a/sysdeps/alpha/dl-procinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Alpha version of processor capability information handling macros.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
-
-/* There are no hardware capabilities defined. */
-#define _dl_hwcap_string(idx) ""
-
-/* We don't have any hardware capabilities. */
-#define _DL_HWCAP_COUNT 0
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h
deleted file mode 100644
index ccea4e1..0000000
--- a/sysdeps/alpha/dl-tls.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. Alpha version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/alpha/dl-trampoline.S b/sysdeps/alpha/dl-trampoline.S
index 93225a2..7881139 100644
--- a/sysdeps/alpha/dl-trampoline.S
+++ b/sysdeps/alpha/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Alpha version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/e_sqrtl.c b/sysdeps/alpha/e_sqrtl.c
index 4093bdd..5fe0e44 100644
--- a/sysdeps/alpha/e_sqrtl.c
+++ b/sysdeps/alpha/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/elf-initfini.h b/sysdeps/alpha/elf-initfini.h
index ee72880..9e529e0 100644
--- a/sysdeps/alpha/elf-initfini.h
+++ b/sysdeps/alpha/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. Alpha version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/bits/fenv.h b/sysdeps/alpha/fpu/bits/fenv.h
index b664512..c2c2adc 100644
--- a/sysdeps/alpha/fpu/bits/fenv.h
+++ b/sysdeps/alpha/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/cabsf.c b/sysdeps/alpha/fpu/cabsf.c
index 5a1436a..d7d761e 100644
--- a/sysdeps/alpha/fpu/cabsf.c
+++ b/sysdeps/alpha/fpu/cabsf.c
@@ -1,5 +1,5 @@
/* Return the complex absolute value of float complex value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/cargf.c b/sysdeps/alpha/fpu/cargf.c
index 0a83d05..9bf8970 100644
--- a/sysdeps/alpha/fpu/cargf.c
+++ b/sysdeps/alpha/fpu/cargf.c
@@ -1,5 +1,5 @@
/* Compute argument of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/cfloat-compat.h b/sysdeps/alpha/fpu/cfloat-compat.h
index d2fdb54..4bd0eb9ee 100644
--- a/sysdeps/alpha/fpu/cfloat-compat.h
+++ b/sysdeps/alpha/fpu/cfloat-compat.h
@@ -1,5 +1,5 @@
/* Compatibility macros for old and new Alpha complex float ABI.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/cimagf.c b/sysdeps/alpha/fpu/cimagf.c
index 623fe11..8f32d5a 100644
--- a/sysdeps/alpha/fpu/cimagf.c
+++ b/sysdeps/alpha/fpu/cimagf.c
@@ -1,5 +1,5 @@
/* Return imaginary part of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/conjf.c b/sysdeps/alpha/fpu/conjf.c
index 63725d0..0efa73b 100644
--- a/sysdeps/alpha/fpu/conjf.c
+++ b/sysdeps/alpha/fpu/conjf.c
@@ -1,5 +1,5 @@
/* Return complex conjugate of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/crealf.c b/sysdeps/alpha/fpu/crealf.c
index faf703d..0341ecb 100644
--- a/sysdeps/alpha/fpu/crealf.c
+++ b/sysdeps/alpha/fpu/crealf.c
@@ -1,5 +1,5 @@
/* Return real part of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/e_sqrt.c b/sysdeps/alpha/fpu/e_sqrt.c
index 87e4176..c43e985 100644
--- a/sysdeps/alpha/fpu/e_sqrt.c
+++ b/sysdeps/alpha/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c
index 7524ec6..e3a8d4b 100644
--- a/sysdeps/alpha/fpu/fclrexcpt.c
+++ b/sysdeps/alpha/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fedisblxcpt.c b/sysdeps/alpha/fpu/fedisblxcpt.c
index 27c1a7c..9889743 100644
--- a/sysdeps/alpha/fpu/fedisblxcpt.c
+++ b/sysdeps/alpha/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/feenablxcpt.c b/sysdeps/alpha/fpu/feenablxcpt.c
index a6498ad..0c91e89 100644
--- a/sysdeps/alpha/fpu/feenablxcpt.c
+++ b/sysdeps/alpha/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c
index 6d528d9..92bd9a2 100644
--- a/sysdeps/alpha/fpu/fegetenv.c
+++ b/sysdeps/alpha/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fegetexcept.c b/sysdeps/alpha/fpu/fegetexcept.c
index fe956be..e23db0d 100644
--- a/sysdeps/alpha/fpu/fegetexcept.c
+++ b/sysdeps/alpha/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fegetmode.c b/sysdeps/alpha/fpu/fegetmode.c
index a28285e..65aa59d 100644
--- a/sysdeps/alpha/fpu/fegetmode.c
+++ b/sysdeps/alpha/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. Alpha version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fegetround.c b/sysdeps/alpha/fpu/fegetround.c
index 004f65b..7294c55 100644
--- a/sysdeps/alpha/fpu/fegetround.c
+++ b/sysdeps/alpha/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/feholdexcpt.c b/sysdeps/alpha/fpu/feholdexcpt.c
index 2879b4c..39c7e73 100644
--- a/sysdeps/alpha/fpu/feholdexcpt.c
+++ b/sysdeps/alpha/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fenv_libc.h b/sysdeps/alpha/fpu/fenv_libc.h
index 3303b5b..4e88ece 100644
--- a/sysdeps/alpha/fpu/fenv_libc.h
+++ b/sysdeps/alpha/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fesetenv.c b/sysdeps/alpha/fpu/fesetenv.c
index 5e05ab3..9b01edc 100644
--- a/sysdeps/alpha/fpu/fesetenv.c
+++ b/sysdeps/alpha/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fesetexcept.c b/sysdeps/alpha/fpu/fesetexcept.c
index 8353c30..6981a8f 100644
--- a/sysdeps/alpha/fpu/fesetexcept.c
+++ b/sysdeps/alpha/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. Alpha version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fesetmode.c b/sysdeps/alpha/fpu/fesetmode.c
index b88ce1d..a00c374 100644
--- a/sysdeps/alpha/fpu/fesetmode.c
+++ b/sysdeps/alpha/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. Alpha version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fesetround.c b/sysdeps/alpha/fpu/fesetround.c
index b0438fa..4d66070 100644
--- a/sysdeps/alpha/fpu/fesetround.c
+++ b/sysdeps/alpha/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/feupdateenv.c b/sysdeps/alpha/fpu/feupdateenv.c
index 4fb401a..15e7221 100644
--- a/sysdeps/alpha/fpu/feupdateenv.c
+++ b/sysdeps/alpha/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fgetexcptflg.c b/sysdeps/alpha/fpu/fgetexcptflg.c
index d1f8dba..31989b0 100644
--- a/sysdeps/alpha/fpu/fgetexcptflg.c
+++ b/sysdeps/alpha/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fpu_control.h b/sysdeps/alpha/fpu/fpu_control.h
index 278de75..c7ef328 100644
--- a/sysdeps/alpha/fpu/fpu_control.h
+++ b/sysdeps/alpha/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. Alpha-mapped-to-Intel version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/fsetexcptflg.c b/sysdeps/alpha/fpu/fsetexcptflg.c
index 7b6831f..2c80dbb 100644
--- a/sysdeps/alpha/fpu/fsetexcptflg.c
+++ b/sysdeps/alpha/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/ftestexcept.c b/sysdeps/alpha/fpu/ftestexcept.c
index b887942..183f68b 100644
--- a/sysdeps/alpha/fpu/ftestexcept.c
+++ b/sysdeps/alpha/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/get-rounding-mode.h b/sysdeps/alpha/fpu/get-rounding-mode.h
index b339a82..a7f4694 100644
--- a/sysdeps/alpha/fpu/get-rounding-mode.h
+++ b/sysdeps/alpha/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. Alpha version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
deleted file mode 100644
index e28c2af..0000000
--- a/sysdeps/alpha/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1491 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 4
-
-Function: "erfc_downward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-ldouble: 1
-
-Function: "exp10m1_downward":
-ldouble: 3
-
-Function: "exp10m1_towardzero":
-ldouble: 3
-
-Function: "exp10m1_upward":
-ldouble: 3
-
-Function: "exp2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-ldouble: 1
-
-Function: "exp2m1_downward":
-ldouble: 2
-
-Function: "exp2m1_towardzero":
-ldouble: 2
-
-Function: "exp2m1_upward":
-ldouble: 2
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "hypot":
-double: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 2
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 5
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 5
-float: 8
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "log":
-float: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-ldouble: 3
-
-Function: "log10p1_downward":
-ldouble: 2
-
-Function: "log10p1_towardzero":
-ldouble: 2
-
-Function: "log10p1_upward":
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-float: 3
-ldouble: 1
-
-Function: "log2p1":
-ldouble: 3
-
-Function: "log2p1_downward":
-ldouble: 3
-
-Function: "log2p1_towardzero":
-ldouble: 2
-
-Function: "log2p1_upward":
-ldouble: 2
-
-Function: "log_downward":
-float: 2
-ldouble: 1
-
-Function: "log_towardzero":
-float: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 9
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-ldouble: 3
-
-Function: "y0_upward":
-double: 3
-float: 9
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/alpha/fpu/libm-test-ulps-name b/sysdeps/alpha/fpu/libm-test-ulps-name
deleted file mode 100644
index 5219734..0000000
--- a/sysdeps/alpha/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Alpha
diff --git a/sysdeps/alpha/fpu/math-barriers.h b/sysdeps/alpha/fpu/math-barriers.h
index d401c3c..f5c9b65 100644
--- a/sysdeps/alpha/fpu/math-barriers.h
+++ b/sysdeps/alpha/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. Alpha version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c
index b8c23c2..93c64c9 100644
--- a/sysdeps/alpha/fpu/s_cacosf.c
+++ b/sysdeps/alpha/fpu/s_cacosf.c
@@ -1,5 +1,5 @@
/* Return arc cosine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c
index 3018d43..a44c7bd 100644
--- a/sysdeps/alpha/fpu/s_cacoshf.c
+++ b/sysdeps/alpha/fpu/s_cacoshf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole cosine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c
index b1bb849..3ff7856 100644
--- a/sysdeps/alpha/fpu/s_casinf.c
+++ b/sysdeps/alpha/fpu/s_casinf.c
@@ -1,5 +1,5 @@
/* Return arc sine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c
index b55b3aa..b366658 100644
--- a/sysdeps/alpha/fpu/s_casinhf.c
+++ b/sysdeps/alpha/fpu/s_casinhf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole sine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c
index 986b45c..b855aa8 100644
--- a/sysdeps/alpha/fpu/s_catanf.c
+++ b/sysdeps/alpha/fpu/s_catanf.c
@@ -1,5 +1,5 @@
/* Return arc tangent of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c
index 05d1227..3b64c95 100644
--- a/sysdeps/alpha/fpu/s_catanhf.c
+++ b/sysdeps/alpha/fpu/s_catanhf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole tangent of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c
index 2ee5b6f..ea6dd99 100644
--- a/sysdeps/alpha/fpu/s_ccosf.c
+++ b/sysdeps/alpha/fpu/s_ccosf.c
@@ -1,5 +1,5 @@
/* Return cosine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c
index 6c52c5d..309f8fb 100644
--- a/sysdeps/alpha/fpu/s_ccoshf.c
+++ b/sysdeps/alpha/fpu/s_ccoshf.c
@@ -1,5 +1,5 @@
/* Return hyperbole cosine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c
index 2a77a38..d0278e9 100644
--- a/sysdeps/alpha/fpu/s_cexpf.c
+++ b/sysdeps/alpha/fpu/s_cexpf.c
@@ -1,5 +1,5 @@
/* Return exponent of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c
index 7cda06b..58ed99b 100644
--- a/sysdeps/alpha/fpu/s_clog10f.c
+++ b/sysdeps/alpha/fpu/s_clog10f.c
@@ -1,5 +1,5 @@
/* Return base 10 logarithm of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c
index 99ddd81..408bbed 100644
--- a/sysdeps/alpha/fpu/s_clogf.c
+++ b/sysdeps/alpha/fpu/s_clogf.c
@@ -1,5 +1,5 @@
/* Return natural logarithm of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c
index dc4317a..516f031 100644
--- a/sysdeps/alpha/fpu/s_cpowf.c
+++ b/sysdeps/alpha/fpu/s_cpowf.c
@@ -1,5 +1,5 @@
/* Return power of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c
index fb572a3..18f1030 100644
--- a/sysdeps/alpha/fpu/s_cprojf.c
+++ b/sysdeps/alpha/fpu/s_cprojf.c
@@ -1,5 +1,5 @@
/* Return projection of complex float value to Riemann sphere.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c
index e7ea2a9..4fd642c 100644
--- a/sysdeps/alpha/fpu/s_csinf.c
+++ b/sysdeps/alpha/fpu/s_csinf.c
@@ -1,5 +1,5 @@
/* Return sine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c
index ca576a0..93de2c7 100644
--- a/sysdeps/alpha/fpu/s_csinhf.c
+++ b/sysdeps/alpha/fpu/s_csinhf.c
@@ -1,5 +1,5 @@
/* Return hyperbole sine of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c
index 6485613..7cf7ab2 100644
--- a/sysdeps/alpha/fpu/s_csqrtf.c
+++ b/sysdeps/alpha/fpu/s_csqrtf.c
@@ -1,5 +1,5 @@
/* Return square root of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c
index 4c6c7e9..b007b8c 100644
--- a/sysdeps/alpha/fpu/s_ctanf.c
+++ b/sysdeps/alpha/fpu/s_ctanf.c
@@ -1,5 +1,5 @@
/* Return tangent of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c
index 330e79b..e2568f3 100644
--- a/sysdeps/alpha/fpu/s_ctanhf.c
+++ b/sysdeps/alpha/fpu/s_ctanhf.c
@@ -1,5 +1,5 @@
/* Return hyperbole tangent of complex float value.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_isnan.c b/sysdeps/alpha/fpu/s_isnan.c
index 64239b1..1ff47d6 100644
--- a/sysdeps/alpha/fpu/s_isnan.c
+++ b/sysdeps/alpha/fpu/s_isnan.c
@@ -1,5 +1,5 @@
/* Return 1 if argument is a NaN, else 0.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_lrint.c b/sysdeps/alpha/fpu/s_lrint.c
index c49dd11..998918c 100644
--- a/sysdeps/alpha/fpu/s_lrint.c
+++ b/sysdeps/alpha/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_lrintf.c b/sysdeps/alpha/fpu/s_lrintf.c
index 6448533..47894c9 100644
--- a/sysdeps/alpha/fpu/s_lrintf.c
+++ b/sysdeps/alpha/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_lround.c b/sysdeps/alpha/fpu/s_lround.c
index afba5e1..25a5a5a 100644
--- a/sysdeps/alpha/fpu/s_lround.c
+++ b/sysdeps/alpha/fpu/s_lround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_lroundf.c b/sysdeps/alpha/fpu/s_lroundf.c
index 3ebbddf..300cd46 100644
--- a/sysdeps/alpha/fpu/s_lroundf.c
+++ b/sysdeps/alpha/fpu/s_lroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_rint.c b/sysdeps/alpha/fpu/s_rint.c
index ed0f9ca..c416252 100644
--- a/sysdeps/alpha/fpu/s_rint.c
+++ b/sysdeps/alpha/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c
index 33c6da3..82911f1 100644
--- a/sysdeps/alpha/fpu/s_rintf.c
+++ b/sysdeps/alpha/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/gccframe.h b/sysdeps/alpha/gccframe.h
index a5545ad..52983c9 100644
--- a/sysdeps/alpha/gccframe.h
+++ b/sysdeps/alpha/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. alpha version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/hp-timing.h b/sysdeps/alpha/hp-timing.h
index ed0829e..80bdf19 100644
--- a/sysdeps/alpha/hp-timing.h
+++ b/sysdeps/alpha/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Alpha version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/jmpbuf-offsets.h b/sysdeps/alpha/jmpbuf-offsets.h
index 57d9def..3e0ab5f 100644
--- a/sysdeps/alpha/jmpbuf-offsets.h
+++ b/sysdeps/alpha/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. Alpha version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/jmpbuf-unwind.h b/sysdeps/alpha/jmpbuf-unwind.h
index 93dd432..ab32022 100644
--- a/sysdeps/alpha/jmpbuf-unwind.h
+++ b/sysdeps/alpha/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ldiv.S b/sysdeps/alpha/ldiv.S
index 3186e9b..73411f1 100644
--- a/sysdeps/alpha/ldiv.S
+++ b/sysdeps/alpha/ldiv.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ldsodefs.h b/sysdeps/alpha/ldsodefs.h
index 29c59b3..5a8235f 100644
--- a/sysdeps/alpha/ldsodefs.h
+++ b/sysdeps/alpha/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/libc-tls.c b/sysdeps/alpha/libc-tls.c
index 2de3e72..3b60d04 100644
--- a/sysdeps/alpha/libc-tls.c
+++ b/sysdeps/alpha/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. Alpha version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/lshift.S b/sysdeps/alpha/lshift.S
index 3f4dd54..6025735 100644
--- a/sysdeps/alpha/lshift.S
+++ b/sysdeps/alpha/lshift.S
@@ -1,6 +1,6 @@
# Alpha 21064 __mpn_lshift --
- # Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/machine-gmon.h b/sysdeps/alpha/machine-gmon.h
index 34dd39a..7fcd40d 100644
--- a/sysdeps/alpha/machine-gmon.h
+++ b/sysdeps/alpha/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. alpha
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/memchr.c b/sysdeps/alpha/memchr.c
index 5acdea4..ef0a4d4 100644
--- a/sysdeps/alpha/memchr.c
+++ b/sysdeps/alpha/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/memset.S b/sysdeps/alpha/memset.S
index c64e3d7..d818f65 100644
--- a/sysdeps/alpha/memset.S
+++ b/sysdeps/alpha/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/mul_1.S b/sysdeps/alpha/mul_1.S
index e40f798..a87b435 100644
--- a/sysdeps/alpha/mul_1.S
+++ b/sysdeps/alpha/mul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_mul_1 -- Multiply a limb vector with a limb and store
# the result in a second limb vector.
- # Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/nptl/bits/struct_rwlock.h b/sysdeps/alpha/nptl/bits/struct_rwlock.h
index f6d0877..94106b6 100644
--- a/sysdeps/alpha/nptl/bits/struct_rwlock.h
+++ b/sysdeps/alpha/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* Alpha internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/alpha/nptl/pthread_spin_lock.S b/sysdeps/alpha/nptl/pthread_spin_lock.S
index 8fd34b0..278c582 100644
--- a/sysdeps/alpha/nptl/pthread_spin_lock.S
+++ b/sysdeps/alpha/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/nptl/pthread_spin_trylock.S b/sysdeps/alpha/nptl/pthread_spin_trylock.S
index a49808d..e8b4fa3 100644
--- a/sysdeps/alpha/nptl/pthread_spin_trylock.S
+++ b/sysdeps/alpha/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/nptl/pthreaddef.h b/sysdeps/alpha/nptl/pthreaddef.h
index f8583b3..7057126 100644
--- a/sysdeps/alpha/nptl/pthreaddef.h
+++ b/sysdeps/alpha/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h
index 7c14d49..1a323e4 100644
--- a/sysdeps/alpha/nptl/tls.h
+++ b/sysdeps/alpha/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/Alpha version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/nscd-types.h b/sysdeps/alpha/nscd-types.h
index 22b0ed8..a93cfd3 100644
--- a/sysdeps/alpha/nscd-types.h
+++ b/sysdeps/alpha/nscd-types.h
@@ -1,5 +1,5 @@
/* Types for the NSCD implementation. Alpha version.
- Copyright (c) 2000-2024 Free Software Foundation, Inc.
+ Copyright (c) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_add.c b/sysdeps/alpha/ots_add.c
index 512603e..3ba118f 100644
--- a/sysdeps/alpha/ots_add.c
+++ b/sysdeps/alpha/ots_add.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: addition.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cmp.c b/sysdeps/alpha/ots_cmp.c
index 725bc6a..6f79980 100644
--- a/sysdeps/alpha/ots_cmp.c
+++ b/sysdeps/alpha/ots_cmp.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: comparison.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cmpe.c b/sysdeps/alpha/ots_cmpe.c
index e9f5ae5..0d52104 100644
--- a/sysdeps/alpha/ots_cmpe.c
+++ b/sysdeps/alpha/ots_cmpe.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: comparison.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cvtqux.c b/sysdeps/alpha/ots_cvtqux.c
index 25552b4..b78f147 100644
--- a/sysdeps/alpha/ots_cvtqux.c
+++ b/sysdeps/alpha/ots_cvtqux.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: unsigned integer to float conversion.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cvtqx.c b/sysdeps/alpha/ots_cvtqx.c
index 88bb8da..9f24501 100644
--- a/sysdeps/alpha/ots_cvtqx.c
+++ b/sysdeps/alpha/ots_cvtqx.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: signed integer to float conversion.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cvttx.c b/sysdeps/alpha/ots_cvttx.c
index 1fc9d28..e7c263e 100644
--- a/sysdeps/alpha/ots_cvttx.c
+++ b/sysdeps/alpha/ots_cvttx.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: floating point extension.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cvtxq.c b/sysdeps/alpha/ots_cvtxq.c
index c022099..1e68d2e 100644
--- a/sysdeps/alpha/ots_cvtxq.c
+++ b/sysdeps/alpha/ots_cvtxq.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: float to integer conversion.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_cvtxt.c b/sysdeps/alpha/ots_cvtxt.c
index 313b4e9..4f26176 100644
--- a/sysdeps/alpha/ots_cvtxt.c
+++ b/sysdeps/alpha/ots_cvtxt.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: floating point truncation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_div.c b/sysdeps/alpha/ots_div.c
index 4e47b95..a5d3f56 100644
--- a/sysdeps/alpha/ots_div.c
+++ b/sysdeps/alpha/ots_div.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: division.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_mul.c b/sysdeps/alpha/ots_mul.c
index c604330..a07fd58 100644
--- a/sysdeps/alpha/ots_mul.c
+++ b/sysdeps/alpha/ots_mul.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: multiplication.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_nintxq.c b/sysdeps/alpha/ots_nintxq.c
index 6a81cf9..c2e9816 100644
--- a/sysdeps/alpha/ots_nintxq.c
+++ b/sysdeps/alpha/ots_nintxq.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: convert to fortran nearest.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/ots_sub.c b/sysdeps/alpha/ots_sub.c
index 637fe5b..465a11d 100644
--- a/sysdeps/alpha/ots_sub.c
+++ b/sysdeps/alpha/ots_sub.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: subtraction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/rawmemchr.S b/sysdeps/alpha/rawmemchr.S
index 56c17ba..0680fe6 100644
--- a/sysdeps/alpha/rawmemchr.S
+++ b/sysdeps/alpha/rawmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/reml.S b/sysdeps/alpha/reml.S
index cc9cdeb..995aec9 100644
--- a/sysdeps/alpha/reml.S
+++ b/sysdeps/alpha/reml.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/remq.S b/sysdeps/alpha/remq.S
index 67db456..e0e734d 100644
--- a/sysdeps/alpha/remq.S
+++ b/sysdeps/alpha/remq.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/remqu.S b/sysdeps/alpha/remqu.S
index 0a80d3d..d56ebca 100644
--- a/sysdeps/alpha/remqu.S
+++ b/sysdeps/alpha/remqu.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/rshift.S b/sysdeps/alpha/rshift.S
index 34b5d34..8debbf9 100644
--- a/sysdeps/alpha/rshift.S
+++ b/sysdeps/alpha/rshift.S
@@ -1,6 +1,6 @@
# Alpha 21064 __mpn_rshift --
- # Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S
index c987af5..1c39f78 100644
--- a/sysdeps/alpha/setjmp.S
+++ b/sysdeps/alpha/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/sfp-machine.h b/sysdeps/alpha/sfp-machine.h
index 2d40ecf..b35f261 100644
--- a/sysdeps/alpha/sfp-machine.h
+++ b/sysdeps/alpha/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Alpha userland IEEE 128-bit version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/sotruss-lib.c b/sysdeps/alpha/sotruss-lib.c
index 92a55c6..163d6af 100644
--- a/sysdeps/alpha/sotruss-lib.c
+++ b/sysdeps/alpha/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for Alpha.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/alpha/stackinfo.h b/sysdeps/alpha/stackinfo.h
index d45c280..a469964 100644
--- a/sysdeps/alpha/stackinfo.h
+++ b/sysdeps/alpha/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/start.S b/sysdeps/alpha/start.S
index 74bf240..eecdcb5 100644
--- a/sysdeps/alpha/start.S
+++ b/sysdeps/alpha/start.S
@@ -1,5 +1,5 @@
/* Startup code for Alpha/ELF.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S
index 6daeefe..37a8d0c 100644
--- a/sysdeps/alpha/stpcpy.S
+++ b/sysdeps/alpha/stpcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/stpncpy.S b/sysdeps/alpha/stpncpy.S
index a64a41d..13b7367 100644
--- a/sysdeps/alpha/stpncpy.S
+++ b/sysdeps/alpha/stpncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strcat.S b/sysdeps/alpha/strcat.S
index 4ed8dc5..93b8e65 100644
--- a/sysdeps/alpha/strcat.S
+++ b/sysdeps/alpha/strcat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strchr.S b/sysdeps/alpha/strchr.S
index bd07d1c..178e5ba 100644
--- a/sysdeps/alpha/strchr.S
+++ b/sysdeps/alpha/strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strcmp.S b/sysdeps/alpha/strcmp.S
index ab4c877..bd319a1 100644
--- a/sysdeps/alpha/strcmp.S
+++ b/sysdeps/alpha/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strcpy.S b/sysdeps/alpha/strcpy.S
index 1e7380e..aa792c7 100644
--- a/sysdeps/alpha/strcpy.S
+++ b/sysdeps/alpha/strcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/string-fza.h b/sysdeps/alpha/string-fza.h
index 4d21cee..bf99863 100644
--- a/sysdeps/alpha/string-fza.h
+++ b/sysdeps/alpha/string-fza.h
@@ -1,5 +1,5 @@
/* Basic zero byte detection. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/string-fzb.h b/sysdeps/alpha/string-fzb.h
index 66ad038..0eca4cf 100644
--- a/sysdeps/alpha/string-fzb.h
+++ b/sysdeps/alpha/string-fzb.h
@@ -1,5 +1,5 @@
/* Zero byte detection; boolean. Alpha version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/string-fzi.h b/sysdeps/alpha/string-fzi.h
index d2144df..94fa34a 100644
--- a/sysdeps/alpha/string-fzi.h
+++ b/sysdeps/alpha/string-fzi.h
@@ -1,5 +1,5 @@
/* string-fzi.h -- zero byte detection; indices. Alpha version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/string-shift.h b/sysdeps/alpha/string-shift.h
index a953842..1ae4511 100644
--- a/sysdeps/alpha/string-shift.h
+++ b/sysdeps/alpha/string-shift.h
@@ -1,5 +1,5 @@
/* Shift unaligned word read. Alpha version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strlen.S b/sysdeps/alpha/strlen.S
index a3ec6db..d6fa638 100644
--- a/sysdeps/alpha/strlen.S
+++ b/sysdeps/alpha/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strncat.S b/sysdeps/alpha/strncat.S
index 20b76a6..101e0f6 100644
--- a/sysdeps/alpha/strncat.S
+++ b/sysdeps/alpha/strncat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strncpy.S b/sysdeps/alpha/strncpy.S
index cab70e2..7aec0e9 100644
--- a/sysdeps/alpha/strncpy.S
+++ b/sysdeps/alpha/strncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/strrchr.S b/sysdeps/alpha/strrchr.S
index 1be1d88..325d95a 100644
--- a/sysdeps/alpha/strrchr.S
+++ b/sysdeps/alpha/strrchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S
index 17c3581..e62f6d6 100644
--- a/sysdeps/alpha/stxcpy.S
+++ b/sysdeps/alpha/stxcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/stxncpy.S b/sysdeps/alpha/stxncpy.S
index c1d1937..ed653ff 100644
--- a/sysdeps/alpha/stxncpy.S
+++ b/sysdeps/alpha/stxncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/sub_n.S b/sysdeps/alpha/sub_n.S
index a2b77bc..9ff45c8 100644
--- a/sysdeps/alpha/sub_n.S
+++ b/sysdeps/alpha/sub_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
# store difference in a third limb vector.
- # Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/submul_1.S b/sysdeps/alpha/submul_1.S
index 5144df0..fb36edb 100644
--- a/sysdeps/alpha/submul_1.S
+++ b/sysdeps/alpha/submul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_submul_1 -- Multiply a limb vector with a limb and
# subtract the result from a second limb vector.
- # Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/tst-audit.h b/sysdeps/alpha/tst-audit.h
index ab371b6..8155dd9 100644
--- a/sysdeps/alpha/tst-audit.h
+++ b/sysdeps/alpha/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. Alpha version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/alpha/tst-file-align.h b/sysdeps/alpha/tst-file-align.h
index 6694483..857dd11 100644
--- a/sysdeps/alpha/tst-file-align.h
+++ b/sysdeps/alpha/tst-file-align.h
@@ -1,5 +1,5 @@
/* Check file alignment. Alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/alpha/udiv_qrnnd.S b/sysdeps/alpha/udiv_qrnnd.S
index c9ea1b1..81ee21d 100644
--- a/sysdeps/alpha/udiv_qrnnd.S
+++ b/sysdeps/alpha/udiv_qrnnd.S
@@ -1,6 +1,6 @@
# Alpha 21064 __udiv_qrnnd
- # Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
diff --git a/sysdeps/alpha/unwind-arch.h b/sysdeps/alpha/unwind-arch.h
index b341b11..980fe87 100644
--- a/sysdeps/alpha/unwind-arch.h
+++ b/sysdeps/alpha/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. alpha customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/Makefile b/sysdeps/arc/Makefile
index 0ac1305..531c52a 100644
--- a/sysdeps/arc/Makefile
+++ b/sysdeps/arc/Makefile
@@ -1,5 +1,5 @@
# ARC Makefile
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/__longjmp.S b/sysdeps/arc/__longjmp.S
index b5fbfce..dcc33ae 100644
--- a/sysdeps/arc/__longjmp.S
+++ b/sysdeps/arc/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/atomic-machine.h b/sysdeps/arc/atomic-machine.h
index bc702d1..0133277 100644
--- a/sysdeps/arc/atomic-machine.h
+++ b/sysdeps/arc/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/bits/endianness.h b/sysdeps/arc/bits/endianness.h
index 8f17ca8..4a6e7d4 100644
--- a/sysdeps/arc/bits/endianness.h
+++ b/sysdeps/arc/bits/endianness.h
@@ -5,11 +5,7 @@
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
-/* ARC has selectable endianness. */
-#ifdef __BIG_ENDIAN__
-# define __BYTE_ORDER __BIG_ENDIAN
-#else
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
+/* Only little-endian ARC is supported. */
+#define __BYTE_ORDER __LITTLE_ENDIAN
#endif /* bits/endianness.h */
diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h
index 7c92f50..0559a50 100644
--- a/sysdeps/arc/bits/fenv.h
+++ b/sysdeps/arc/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -69,7 +69,7 @@ typedef struct
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1)
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */
typedef unsigned int femode_t;
diff --git a/sysdeps/arc/bits/link.h b/sysdeps/arc/bits/link.h
index 97c56cf..522ff18 100644
--- a/sysdeps/arc/bits/link.h
+++ b/sysdeps/arc/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/bits/setjmp.h b/sysdeps/arc/bits/setjmp.h
index 1c97bf7..dd3b60f 100644
--- a/sysdeps/arc/bits/setjmp.h
+++ b/sysdeps/arc/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type 'jmp_buf'. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/configure b/sysdeps/arc/configure
index 08e4f23..b419298 100644
--- a/sysdeps/arc/configure
+++ b/sysdeps/arc/configure
@@ -10,7 +10,7 @@ libc_cv_asm_line_sep='`'
printf "%s\n" "#define ASM_LINE_SEP $libc_cv_asm_line_sep" >>confdefs.h
-# For big endian ABI, generate a symbol for selecting right dynamic linker
+# ARC big endian ABI is no longer supported.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
@@ -175,13 +175,8 @@ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arc_be" >&5
printf "%s\n" "$libc_cv_arc_be" >&6; }
if test $libc_cv_arc_be = yes; then
- # For shlib-versions.
- printf "%s\n" "#define HAVE_ARC_BE 1" >>confdefs.h
-
- config_vars="$config_vars
-default-abi = arcbe"
-else
- config_vars="$config_vars
-default-abi = arcle"
+ as_fn_error $? "big-endian not supported" "$LINENO" 5
fi
+config_vars="$config_vars
+default-abi = arcle"
diff --git a/sysdeps/arc/configure.ac b/sysdeps/arc/configure.ac
index 619da4e..48dc6f5 100644
--- a/sysdeps/arc/configure.ac
+++ b/sysdeps/arc/configure.ac
@@ -9,7 +9,7 @@ libc_cv_have_sdata_section=no
libc_cv_asm_line_sep='`'
AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
-# For big endian ABI, generate a symbol for selecting right dynamic linker
+# ARC big endian ABI is no longer supported.
AC_CACHE_CHECK([for big endian],
[libc_cv_arc_be],
[AC_EGREP_CPP(yes,[#ifdef __BIG_ENDIAN__
@@ -17,9 +17,6 @@ AC_CACHE_CHECK([for big endian],
#endif
], libc_cv_arc_be=yes, libc_cv_arc_be=no)])
if test $libc_cv_arc_be = yes; then
- # For shlib-versions.
- AC_DEFINE(HAVE_ARC_BE)
- LIBC_CONFIG_VAR([default-abi], [arcbe])
-else
- LIBC_CONFIG_VAR([default-abi], [arcle])
+ AC_MSG_ERROR([big-endian not supported])
fi
+LIBC_CONFIG_VAR([default-abi], [arcle])
diff --git a/sysdeps/arc/dl-machine.h b/sysdeps/arc/dl-machine.h
index affe131..044cdf1 100644
--- a/sysdeps/arc/dl-machine.h
+++ b/sysdeps/arc/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/dl-runtime.h b/sysdeps/arc/dl-runtime.h
index 792827f..6fddfa2 100644
--- a/sysdeps/arc/dl-runtime.h
+++ b/sysdeps/arc/dl-runtime.h
@@ -1,5 +1,5 @@
/* Helpers for On-demand PLT fixup for shared objects. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/dl-tls.h b/sysdeps/arc/dl-tls.h
deleted file mode 100644
index e498fab..0000000
--- a/sysdeps/arc/dl-tls.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr (tls_index *ti);
-
-/* Value used for dtv entries for which the allocation is delayed. */
-#define TLS_DTV_UNALLOCATED ((void *) -1l)
diff --git a/sysdeps/arc/dl-trampoline.S b/sysdeps/arc/dl-trampoline.S
index 9717be9..441343a 100644
--- a/sysdeps/arc/dl-trampoline.S
+++ b/sysdeps/arc/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fclrexcpt.c b/sysdeps/arc/fpu/fclrexcpt.c
index 5151bb5..96cd84e 100644
--- a/sysdeps/arc/fpu/fclrexcpt.c
+++ b/sysdeps/arc/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fegetenv.c b/sysdeps/arc/fpu/fegetenv.c
index dca7372..e4c402f 100644
--- a/sysdeps/arc/fpu/fegetenv.c
+++ b/sysdeps/arc/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fegetmode.c b/sysdeps/arc/fpu/fegetmode.c
index 2a6f8d7..756468c 100644
--- a/sysdeps/arc/fpu/fegetmode.c
+++ b/sysdeps/arc/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fegetround.c b/sysdeps/arc/fpu/fegetround.c
index 98d998b..ca1424d 100644
--- a/sysdeps/arc/fpu/fegetround.c
+++ b/sysdeps/arc/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/feholdexcpt.c b/sysdeps/arc/fpu/feholdexcpt.c
index c1e26ac..e48b9be 100644
--- a/sysdeps/arc/fpu/feholdexcpt.c
+++ b/sysdeps/arc/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fesetenv.c b/sysdeps/arc/fpu/fesetenv.c
index 34b6937..4c58efb 100644
--- a/sysdeps/arc/fpu/fesetenv.c
+++ b/sysdeps/arc/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment (does not raise exceptions).
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fesetexcept.c b/sysdeps/arc/fpu/fesetexcept.c
index 77082f9..d2661fa 100644
--- a/sysdeps/arc/fpu/fesetexcept.c
+++ b/sysdeps/arc/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fesetmode.c b/sysdeps/arc/fpu/fesetmode.c
index f66fb65..f074bd3 100644
--- a/sysdeps/arc/fpu/fesetmode.c
+++ b/sysdeps/arc/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fesetround.c b/sysdeps/arc/fpu/fesetround.c
index 6eaa21d..dd9b8a4 100644
--- a/sysdeps/arc/fpu/fesetround.c
+++ b/sysdeps/arc/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/feupdateenv.c b/sysdeps/arc/fpu/feupdateenv.c
index 5e8d004..5fe4156 100644
--- a/sysdeps/arc/fpu/feupdateenv.c
+++ b/sysdeps/arc/fpu/feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions,
without clearing currently raised exceptions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fgetexcptflg.c b/sysdeps/arc/fpu/fgetexcptflg.c
index 1e04550..6d2586e 100644
--- a/sysdeps/arc/fpu/fgetexcptflg.c
+++ b/sysdeps/arc/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fraiseexcpt.c b/sysdeps/arc/fpu/fraiseexcpt.c
index 13df625..7469654 100644
--- a/sysdeps/arc/fpu/fraiseexcpt.c
+++ b/sysdeps/arc/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/fsetexcptflg.c b/sysdeps/arc/fpu/fsetexcptflg.c
index 54aee9d..7cedbf8 100644
--- a/sysdeps/arc/fpu/fsetexcptflg.c
+++ b/sysdeps/arc/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/ftestexcept.c b/sysdeps/arc/fpu/ftestexcept.c
index 2f5031b..74327e4 100644
--- a/sysdeps/arc/fpu/ftestexcept.c
+++ b/sysdeps/arc/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/fpu/libm-test-ulps b/sysdeps/arc/fpu/libm-test-ulps
deleted file mode 100644
index 41c8ef1..0000000
--- a/sysdeps/arc/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1158 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 3
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 3
-float: 3
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-
-Function: "asinh":
-double: 3
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-double: 7
-float: 2
-
-Function: "atan2_downward":
-double: 5
-float: 2
-
-Function: "atan2_towardzero":
-double: 5
-float: 2
-
-Function: "atan2_upward":
-double: 8
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 2
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-float: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 2
-float: 1
-
-Function: Real part of "cacos":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 5
-float: 3
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-
-Function: Real part of "cacosh":
-double: 5
-float: 4
-
-Function: Imaginary part of "cacosh":
-double: 2
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 3
-
-Function: "carg":
-double: 7
-float: 2
-
-Function: "carg_downward":
-double: 5
-float: 2
-
-Function: "carg_towardzero":
-double: 5
-float: 2
-
-Function: "carg_upward":
-double: 8
-float: 2
-
-Function: Real part of "casin":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin":
-double: 5
-float: 4
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-
-Function: Real part of "casinh":
-double: 5
-float: 4
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 3
-float: 3
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "catan_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-
-Function: Real part of "catanh":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 2
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 2
-float: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 3
-float: 3
-
-Function: Imaginary part of "ccos":
-double: 3
-float: 3
-
-Function: Real part of "ccos_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 4
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 4
-float: 4
-
-Function: Real part of "ccosh":
-double: 3
-float: 3
-
-Function: Imaginary part of "ccosh":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 4
-float: 4
-
-Function: Real part of "cexp":
-double: 4
-float: 3
-
-Function: Imaginary part of "cexp":
-double: 4
-float: 3
-
-Function: Real part of "cexp_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 4
-float: 4
-
-Function: Real part of "clog":
-double: 5
-float: 4
-
-Function: Imaginary part of "clog":
-double: 7
-float: 2
-
-Function: Real part of "clog10":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10":
-double: 8
-float: 4
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 8
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 6
-float: 6
-
-Function: Imaginary part of "clog10_towardzero":
-double: 9
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 6
-
-Function: Imaginary part of "clog10_upward":
-double: 9
-float: 5
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 5
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 5
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "clog_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "clog_upward":
-double: 8
-float: 2
-
-Function: "cos":
-double: 4
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 4
-float: 2
-
-Function: "cos_upward":
-double: 4
-float: 2
-
-Function: "cosh":
-double: 3
-float: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 3
-float: 2
-
-Function: Real part of "cpow":
-double: 9
-float: 8
-
-Function: Imaginary part of "cpow":
-double: 8
-float: 6
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_upward":
-double: 2
-float: 2
-
-Function: Real part of "csin":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin":
-double: 3
-float: 3
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 3
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "csin_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "csin_upward":
-double: 4
-float: 2
-
-Function: Real part of "csinh":
-double: 3
-float: 3
-
-Function: Imaginary part of "csinh":
-double: 3
-float: 3
-
-Function: Real part of "csinh_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 4
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 4
-float: 4
-
-Function: Real part of "csqrt":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 4
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 4
-float: 4
-
-Function: Real part of "ctan":
-double: 4
-float: 6
-
-Function: Imaginary part of "ctan":
-double: 3
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 3
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 6
-
-Function: Imaginary part of "ctan_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 5
-float: 6
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-
-Function: Real part of "ctanh":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 4
-float: 6
-
-Function: Real part of "ctanh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 6
-
-Function: Real part of "ctanh_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 5
-float: 6
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 2
-
-Function: "erf_upward":
-double: 2
-float: 2
-
-Function: "erfc":
-double: 5
-float: 5
-
-Function: "erfc_downward":
-double: 4
-float: 4
-
-Function: "erfc_towardzero":
-double: 4
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 5
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 4
-float: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 4
-float: 1
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp2_upward":
-double: 2
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 2
-float: 2
-
-Function: "expm1":
-double: 2
-float: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 2
-float: 2
-
-Function: "gamma":
-double: 7
-float: 6
-
-Function: "gamma_downward":
-double: 6
-float: 5
-
-Function: "gamma_towardzero":
-double: 7
-float: 6
-
-Function: "gamma_upward":
-double: 7
-float: 6
-
-Function: "hypot":
-double: 2
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 2
-float: 1
-
-Function: "j0":
-double: 4
-float: 9
-
-Function: "j0_downward":
-double: 6
-float: 8
-
-Function: "j0_towardzero":
-double: 4
-float: 9
-
-Function: "j0_upward":
-double: 4
-float: 9
-
-Function: "j1":
-double: 5
-float: 9
-
-Function: "j1_downward":
-double: 9
-float: 8
-
-Function: "j1_towardzero":
-double: 5
-float: 8
-
-Function: "j1_upward":
-double: 5
-float: 7
-
-Function: "jn":
-double: 9
-float: 8
-
-Function: "jn_downward":
-double: 7
-float: 9
-
-Function: "jn_towardzero":
-double: 7
-float: 9
-
-Function: "jn_upward":
-double: 9
-float: 9
-
-Function: "lgamma":
-double: 7
-float: 6
-
-Function: "lgamma_downward":
-double: 6
-float: 5
-
-Function: "lgamma_towardzero":
-double: 7
-float: 6
-
-Function: "lgamma_upward":
-double: 7
-float: 6
-
-Function: "log":
-double: 1
-float: 1
-
-Function: "log10":
-double: 2
-float: 3
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 4
-
-Function: "log10_upward":
-double: 3
-float: 4
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 1
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_towardzero":
-double: 1
-float: 1
-
-Function: "log2_upward":
-double: 1
-float: 1
-
-Function: "log_towardzero":
-double: 1
-float: 1
-
-Function: "log_upward":
-double: 1
-float: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 1
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 2
-float: 2
-
-Function: "sin":
-double: 7
-float: 1
-
-Function: "sin_downward":
-double: 4
-float: 1
-
-Function: "sin_towardzero":
-double: 3
-float: 1
-
-Function: "sin_upward":
-double: 7
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 4
-float: 1
-
-Function: "sincos_upward":
-double: 2
-float: 1
-
-Function: "sinh":
-double: 3
-float: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-double: 1
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 2
-
-Function: "tan_upward":
-double: 1
-float: 2
-
-Function: "tanh":
-double: 3
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 3
-float: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 9
-
-Function: "tgamma_downward":
-double: 9
-float: 9
-
-Function: "tgamma_towardzero":
-double: 9
-float: 8
-
-Function: "tgamma_upward":
-double: 9
-float: 9
-
-Function: "y0":
-double: 3
-float: 8
-
-Function: "y0_downward":
-double: 3
-float: 8
-
-Function: "y0_towardzero":
-double: 3
-float: 8
-
-Function: "y0_upward":
-double: 4
-float: 8
-
-Function: "y1":
-double: 7
-float: 9
-
-Function: "y1_downward":
-double: 6
-float: 8
-
-Function: "y1_towardzero":
-double: 7
-float: 9
-
-Function: "y1_upward":
-double: 7
-float: 9
-
-Function: "yn":
-double: 9
-float: 9
-
-Function: "yn_downward":
-double: 8
-float: 8
-
-Function: "yn_towardzero":
-double: 9
-float: 9
-
-Function: "yn_upward":
-double: 9
-float: 9
-
-# end of automatic generation
diff --git a/sysdeps/arc/fpu/libm-test-ulps-name b/sysdeps/arc/fpu/libm-test-ulps-name
deleted file mode 100644
index 8c4fba4..0000000
--- a/sysdeps/arc/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-ARC
diff --git a/sysdeps/arc/fpu_control.h b/sysdeps/arc/fpu_control.h
index 0865d2e..c4ae87c 100644
--- a/sysdeps/arc/fpu_control.h
+++ b/sysdeps/arc/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/gccframe.h b/sysdeps/arc/gccframe.h
index aca8a64..89f0f3d 100644
--- a/sysdeps/arc/gccframe.h
+++ b/sysdeps/arc/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/get-rounding-mode.h b/sysdeps/arc/get-rounding-mode.h
index 37ed33e..1132e47 100644
--- a/sysdeps/arc/get-rounding-mode.h
+++ b/sysdeps/arc/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/jmpbuf-offsets.h b/sysdeps/arc/jmpbuf-offsets.h
index 82df9a9..c60c0c8 100644
--- a/sysdeps/arc/jmpbuf-offsets.h
+++ b/sysdeps/arc/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/jmpbuf-unwind.h b/sysdeps/arc/jmpbuf-unwind.h
index 44d4cd3..806d939 100644
--- a/sysdeps/arc/jmpbuf-unwind.h
+++ b/sysdeps/arc/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/ldsodefs.h b/sysdeps/arc/ldsodefs.h
index 3f52a13..8b6c274 100644
--- a/sysdeps/arc/ldsodefs.h
+++ b/sysdeps/arc/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/libc-tls.c b/sysdeps/arc/libc-tls.c
index c96e2fb..8e8309e 100644
--- a/sysdeps/arc/libc-tls.c
+++ b/sysdeps/arc/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/machine-gmon.h b/sysdeps/arc/machine-gmon.h
index bd8ed0a..f6fc159 100644
--- a/sysdeps/arc/machine-gmon.h
+++ b/sysdeps/arc/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/math-tests-trap.h b/sysdeps/arc/math-tests-trap.h
index 8465845..a8d41d0 100644
--- a/sysdeps/arc/math-tests-trap.h
+++ b/sysdeps/arc/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps
deleted file mode 100644
index d3f4595..0000000
--- a/sysdeps/arc/nofpu/libm-test-ulps
+++ /dev/null
@@ -1,279 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "cabs":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "hypot":
-double: 1
-
-Function: "j0":
-double: 2
-float: 9
-
-Function: "j1":
-double: 4
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "pow":
-double: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "tan":
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-
-Function: "y1":
-double: 3
-float: 9
-
-Function: "yn":
-double: 3
-float: 3
-
-# end of automatic generation
diff --git a/sysdeps/arc/nofpu/libm-test-ulps-name b/sysdeps/arc/nofpu/libm-test-ulps-name
deleted file mode 100644
index 8a9879e..0000000
--- a/sysdeps/arc/nofpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-ARC soft-float
diff --git a/sysdeps/arc/nofpu/math-tests-exceptions.h b/sysdeps/arc/nofpu/math-tests-exceptions.h
index eb883b2..63d107c 100644
--- a/sysdeps/arc/nofpu/math-tests-exceptions.h
+++ b/sysdeps/arc/nofpu/math-tests-exceptions.h
@@ -1,5 +1,5 @@
/* Configuration for math tests. Exceptions support ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/nofpu/math-tests-rounding.h b/sysdeps/arc/nofpu/math-tests-rounding.h
index a450fd2..e356d29 100644
--- a/sysdeps/arc/nofpu/math-tests-rounding.h
+++ b/sysdeps/arc/nofpu/math-tests-rounding.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: rounding mode support. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h
index 1b012c9..407658f 100644
--- a/sysdeps/arc/nptl/pthreaddef.h
+++ b/sysdeps/arc/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/nptl/tls.h b/sysdeps/arc/nptl/tls.h
index 14b72d6..6b25e8c 100644
--- a/sysdeps/arc/nptl/tls.h
+++ b/sysdeps/arc/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/setjmp.S b/sysdeps/arc/setjmp.S
index 8fd46ee..7965c77 100644
--- a/sysdeps/arc/setjmp.S
+++ b/sysdeps/arc/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/sfp-machine.h b/sysdeps/arc/sfp-machine.h
index 571d746..bd31d42 100644
--- a/sysdeps/arc/sfp-machine.h
+++ b/sysdeps/arc/sfp-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent software floating-point definitions. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/sotruss-lib.c b/sysdeps/arc/sotruss-lib.c
index 78e5f24..cef5667 100644
--- a/sysdeps/arc/sotruss-lib.c
+++ b/sysdeps/arc/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/stackinfo.h b/sysdeps/arc/stackinfo.h
deleted file mode 100644
index 99a7f56..0000000
--- a/sysdeps/arc/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On ARC the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/arc/start.S b/sysdeps/arc/start.S
index 03ee8a0..372dd3e 100644
--- a/sysdeps/arc/start.S
+++ b/sysdeps/arc/start.S
@@ -1,5 +1,5 @@
/* Startup code for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/sysdep.h b/sysdeps/arc/sysdep.h
index 234ef39..b831b5f 100644
--- a/sysdeps/arc/sysdep.h
+++ b/sysdeps/arc/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arc/tst-audit.h b/sysdeps/arc/tst-audit.h
index 6f2cd65..ff10cc9 100644
--- a/sysdeps/arc/tst-audit.h
+++ b/sysdeps/arc/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
index 619474e..9c4fd6b 100644
--- a/sysdeps/arm/Makefile
+++ b/sysdeps/arm/Makefile
@@ -13,15 +13,15 @@ $(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os
lib-noranlib: $(objpfx)libgcc-stubs.a
ifeq ($(build-shared),yes)
-ifneq (no,$(have-mtls-descriptor))
+ifneq (no,$(have-test-mtls-descriptor))
tests += tst-armtlsdescloc tst-armtlsdescextnow tst-armtlsdescextlazy
modules-names += tst-armtlsdesclocmod
modules-names += tst-armtlsdescextlazymod tst-armtlsdescextnowmod
CPPFLAGS-tst-armtlsdescextnowmod.c += -Dstatic=
CPPFLAGS-tst-armtlsdescextlazymod.c += -Dstatic=
-CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=$(have-mtls-descriptor)
-CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=$(have-mtls-descriptor)
-CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=$(have-mtls-descriptor)
+CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=$(have-test-mtls-descriptor)
+CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=$(have-test-mtls-descriptor)
+CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=$(have-test-mtls-descriptor)
LDFLAGS-tst-armtlsdescextnowmod.so += -Wl,-z,now
tst-armtlsdescloc-ENV = LD_BIND_NOW=1
tst-armtlsdescextnow-ENV = LD_BIND_NOW=1
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
index f86d1b6..dc71936 100644
--- a/sysdeps/arm/__longjmp.S
+++ b/sysdeps/arm/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for ARM.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/add_n.S b/sysdeps/arm/add_n.S
index 8811f48..bbccba4 100644
--- a/sysdeps/arm/add_n.S
+++ b/sysdeps/arm/add_n.S
@@ -1,5 +1,5 @@
/* mpn_add_n -- add (or subtract) bignums.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/addmul_1.S b/sysdeps/arm/addmul_1.S
index 676e486..3564a00 100644
--- a/sysdeps/arm/addmul_1.S
+++ b/sysdeps/arm/addmul_1.S
@@ -1,5 +1,5 @@
/* mpn_addmul_1 -- multiply and accumulate bignums.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_assert.c b/sysdeps/arm/aeabi_assert.c
index 9223b75..355aee2 100644
--- a/sysdeps/arm/aeabi_assert.c
+++ b/sysdeps/arm/aeabi_assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_atexit.c b/sysdeps/arm/aeabi_atexit.c
index a5f69fe..e941ebd 100644
--- a/sysdeps/arm/aeabi_atexit.c
+++ b/sysdeps/arm/aeabi_atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_errno_addr.c b/sysdeps/arm/aeabi_errno_addr.c
index 041aa9a..5dfb7d9 100644
--- a/sysdeps/arm/aeabi_errno_addr.c
+++ b/sysdeps/arm/aeabi_errno_addr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_lcsts.c b/sysdeps/arm/aeabi_lcsts.c
index 8ef08e7..22a1fd6 100644
--- a/sysdeps/arm/aeabi_lcsts.c
+++ b/sysdeps/arm/aeabi_lcsts.c
@@ -1,5 +1,5 @@
/* Link-time constants for ARM EABI.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_localeconv.c b/sysdeps/arm/aeabi_localeconv.c
index 568de21..7d37920 100644
--- a/sysdeps/arm/aeabi_localeconv.c
+++ b/sysdeps/arm/aeabi_localeconv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_math.c b/sysdeps/arm/aeabi_math.c
index eb5455e..7484e70 100644
--- a/sysdeps/arm/aeabi_math.c
+++ b/sysdeps/arm/aeabi_math.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_mb_cur_max.c b/sysdeps/arm/aeabi_mb_cur_max.c
index d454bac..c58df32 100644
--- a/sysdeps/arm/aeabi_mb_cur_max.c
+++ b/sysdeps/arm/aeabi_mb_cur_max.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_memclr.c b/sysdeps/arm/aeabi_memclr.c
index 241916b..0e19f63 100644
--- a/sysdeps/arm/aeabi_memclr.c
+++ b/sysdeps/arm/aeabi_memclr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_memcpy.c b/sysdeps/arm/aeabi_memcpy.c
index fed2f06..809ed9c 100644
--- a/sysdeps/arm/aeabi_memcpy.c
+++ b/sysdeps/arm/aeabi_memcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_memmove.c b/sysdeps/arm/aeabi_memmove.c
index 242ff6b..8fe0429 100644
--- a/sysdeps/arm/aeabi_memmove.c
+++ b/sysdeps/arm/aeabi_memmove.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_memset.c b/sysdeps/arm/aeabi_memset.c
index 02af7be..971647d 100644
--- a/sysdeps/arm/aeabi_memset.c
+++ b/sysdeps/arm/aeabi_memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_sighandlers.S b/sysdeps/arm/aeabi_sighandlers.S
index e88c08f..551edf2 100644
--- a/sysdeps/arm/aeabi_sighandlers.S
+++ b/sysdeps/arm/aeabi_sighandlers.S
@@ -1,5 +1,5 @@
/* Link-time constants for ARM EABI - signal handlers.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/aeabi_unwind_cpp_pr1.c b/sysdeps/arm/aeabi_unwind_cpp_pr1.c
index 67ed0fd..38a4ada 100644
--- a/sysdeps/arm/aeabi_unwind_cpp_pr1.c
+++ b/sysdeps/arm/aeabi_unwind_cpp_pr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/arm-features.h b/sysdeps/arm/arm-features.h
index 69e7e36..04adcc9 100644
--- a/sysdeps/arm/arm-features.h
+++ b/sysdeps/arm/arm-features.h
@@ -1,5 +1,5 @@
/* Macros to test for CPU features on ARM. Generic ARM version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/arm-ifunc.h b/sysdeps/arm/arm-ifunc.h
index c1aa43a..3986b35 100644
--- a/sysdeps/arm/arm-ifunc.h
+++ b/sysdeps/arm/arm-ifunc.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc resolvers. Linux/ARM version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/arm/arm-mcount.S b/sysdeps/arm/arm-mcount.S
index c77a89f..63d7dba 100644
--- a/sysdeps/arm/arm-mcount.S
+++ b/sysdeps/arm/arm-mcount.S
@@ -1,5 +1,5 @@
/* Implementation of profiling support. ARM EABI version.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/arm-unwind-resume.S b/sysdeps/arm/arm-unwind-resume.S
index 859a7a4..6d97bd6 100644
--- a/sysdeps/arm/arm-unwind-resume.S
+++ b/sysdeps/arm/arm-unwind-resume.S
@@ -1,5 +1,5 @@
/* _Unwind_Resume wrapper for ARM EABI.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6/rawmemchr.S b/sysdeps/arm/armv6/rawmemchr.S
index c28cbfd..ed758ae 100644
--- a/sysdeps/arm/armv6/rawmemchr.S
+++ b/sysdeps/arm/armv6/rawmemchr.S
@@ -1,5 +1,5 @@
/* rawmemchr -- find a byte within an unsized memory block.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6/strchr.S b/sysdeps/arm/armv6/strchr.S
index f41538f..3a4034a 100644
--- a/sysdeps/arm/armv6/strchr.S
+++ b/sysdeps/arm/armv6/strchr.S
@@ -1,5 +1,5 @@
/* strchr -- find the first instance of C in a nul-terminated string.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6/strcpy.S b/sysdeps/arm/armv6/strcpy.S
index 5f6a835..67a692b 100644
--- a/sysdeps/arm/armv6/strcpy.S
+++ b/sysdeps/arm/armv6/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy -- copy a nul-terminated string.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6/strlen.S b/sysdeps/arm/armv6/strlen.S
index a859788..34fcdfa 100644
--- a/sysdeps/arm/armv6/strlen.S
+++ b/sysdeps/arm/armv6/strlen.S
@@ -1,5 +1,5 @@
/* strlen -- find the length of a nul-terminated string.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6/strrchr.S b/sysdeps/arm/armv6/strrchr.S
index 31de8c1..8980f08 100644
--- a/sysdeps/arm/armv6/strrchr.S
+++ b/sysdeps/arm/armv6/strrchr.S
@@ -1,5 +1,5 @@
/* strrchr -- find the last occurrence of C in a nul-terminated string
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6t2/memchr.S b/sysdeps/arm/armv6t2/memchr.S
index 28c8356..c342e95 100644
--- a/sysdeps/arm/armv6t2/memchr.S
+++ b/sysdeps/arm/armv6t2/memchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6t2/string-fza.h b/sysdeps/arm/armv6t2/string-fza.h
index ce2614c..124047f 100644
--- a/sysdeps/arm/armv6t2/string-fza.h
+++ b/sysdeps/arm/armv6t2/string-fza.h
@@ -1,5 +1,5 @@
/* Zero byte detection; basics. ARM version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv6t2/strlen.S b/sysdeps/arm/armv6t2/strlen.S
index 1a740a9..f87b3c3 100644
--- a/sysdeps/arm/armv6t2/strlen.S
+++ b/sysdeps/arm/armv6t2/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c b/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
index 37e3c59..7ff9b80 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
+++ b/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. ARM version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-memchr.h b/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
index 1ab045a..586f56b 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
+++ b/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
@@ -1,5 +1,5 @@
/* Common definition for memchr resolver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h b/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
index c160c22..469a8a5 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
+++ b/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
@@ -1,5 +1,5 @@
/* Common definition for memcpy resolver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/memchr.c b/sysdeps/arm/armv7/multiarch/memchr.c
index cd5d53b..bcdaffe 100644
--- a/sysdeps/arm/armv7/multiarch/memchr.c
+++ b/sysdeps/arm/armv7/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/memchr_neon.S b/sysdeps/arm/armv7/multiarch/memchr_neon.S
index 3f593f4..8b6f8af 100644
--- a/sysdeps/arm/armv7/multiarch/memchr_neon.S
+++ b/sysdeps/arm/armv7/multiarch/memchr_neon.S
@@ -1,5 +1,5 @@
/* memchr implemented using NEON.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/memcpy.c b/sysdeps/arm/armv7/multiarch/memcpy.c
index 86f3052..4b0605a 100644
--- a/sysdeps/arm/armv7/multiarch/memcpy.c
+++ b/sysdeps/arm/armv7/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/multiarch/memcpy_impl.S b/sysdeps/arm/armv7/multiarch/memcpy_impl.S
index 9c7dc47..dc70182 100644
--- a/sysdeps/arm/armv7/multiarch/memcpy_impl.S
+++ b/sysdeps/arm/armv7/multiarch/memcpy_impl.S
@@ -1,5 +1,5 @@
/* NEON/VFP/ARM version of memcpy optimized for Cortex-A15.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/armv7/strcmp.S b/sysdeps/arm/armv7/strcmp.S
index f48456b..385e339 100644
--- a/sysdeps/arm/armv7/strcmp.S
+++ b/sysdeps/arm/armv7/strcmp.S
@@ -1,5 +1,5 @@
/* strcmp implementation for ARMv7-A, optimized for Cortex-A15.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/atomic-machine.h b/sysdeps/arm/atomic-machine.h
index 61bf681..39cdef1 100644
--- a/sysdeps/arm/atomic-machine.h
+++ b/sysdeps/arm/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. Pure ARM version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/backtrace.c b/sysdeps/arm/backtrace.c
index 2a1665a..d9192b5 100644
--- a/sysdeps/arm/backtrace.c
+++ b/sysdeps/arm/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bits/dl_find_object.h b/sysdeps/arm/bits/dl_find_object.h
index cedf24e..6365a00 100644
--- a/sysdeps/arm/bits/dl_find_object.h
+++ b/sysdeps/arm/bits/dl_find_object.h
@@ -1,5 +1,5 @@
/* arm definitions for finding objects.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bits/fenv.h b/sysdeps/arm/bits/fenv.h
index 320e3ab..7c5dde8 100644
--- a/sysdeps/arm/bits/fenv.h
+++ b/sysdeps/arm/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bits/link.h b/sysdeps/arm/bits/link.h
index 325484d..a5df392 100644
--- a/sysdeps/arm/bits/link.h
+++ b/sysdeps/arm/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h
index 7ae94a2..81d9abd 100644
--- a/sysdeps/arm/bits/setjmp.h
+++ b/sysdeps/arm/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/arm/bits/wordsize.h
+++ b/sysdeps/arm/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bsd-_setjmp.S b/sysdeps/arm/bsd-_setjmp.S
index e229984..cda6449 100644
--- a/sysdeps/arm/bsd-_setjmp.S
+++ b/sysdeps/arm/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. ARM version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/bsd-setjmp.S b/sysdeps/arm/bsd-setjmp.S
index 3eb9fb7..ae236c1 100644
--- a/sysdeps/arm/bsd-setjmp.S
+++ b/sysdeps/arm/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. ARM version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S
index 9d6bbe9..2864ff4 100644
--- a/sysdeps/arm/crti.S
+++ b/sysdeps/arm/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ARM.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S
index 0839e87..d956a1c 100644
--- a/sysdeps/arm/crtn.S
+++ b/sysdeps/arm/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ARM.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-irel.h b/sysdeps/arm/dl-irel.h
index 8843a67..20e156d 100644
--- a/sysdeps/arm/dl-irel.h
+++ b/sysdeps/arm/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
ARM version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-lookupcfg.h b/sysdeps/arm/dl-lookupcfg.h
index 3cc8e34..52ce8a7 100644
--- a/sysdeps/arm/dl-lookupcfg.h
+++ b/sysdeps/arm/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-machine-rel.h b/sysdeps/arm/dl-machine-rel.h
index d78068f..fa754a4 100644
--- a/sysdeps/arm/dl-machine-rel.h
+++ b/sysdeps/arm/dl-machine-rel.h
@@ -1,5 +1,5 @@
/* ELF dynamic relocation type supported by the architecture. ARM version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 9186831..e597c41 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -351,16 +351,7 @@ elf_machine_rel (struct link_map *map, struct r_scope_elem *scope[],
{
ElfW(Addr) tmp;
# ifndef RTLD_BOOTSTRAP
- /* This is defined in rtld.c, but nowhere in the static
- libc.a; make the reference weak so static programs can
- still link. This declaration cannot be done when
- compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) because
- rtld.c contains the common defn for _dl_rtld_map, which
- is incompatible with a weak decl in the same file. */
-# ifndef SHARED
- weak_extern (_dl_rtld_map);
-# endif
- if (map == &GL(dl_rtld_map))
+ if (is_rtld_link_map (map))
/* Undo the relocation done here during bootstrapping.
Now we will relocate it anew, possibly using a
binding found in the user program or a loaded library
diff --git a/sysdeps/arm/dl-tls.h b/sysdeps/arm/dl-tls.h
deleted file mode 100644
index fe244dd..0000000
--- a/sysdeps/arm/dl-tls.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct dl_tls_index
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
index e36a328..19f7fc4 100644
--- a/sysdeps/arm/dl-tlsdesc.S
+++ b/sysdeps/arm/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-tlsdesc.h b/sysdeps/arm/dl-tlsdesc.h
index 805acb5..17b2501 100644
--- a/sysdeps/arm/dl-tlsdesc.h
+++ b/sysdeps/arm/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S
index 125d5b1..fffac55 100644
--- a/sysdeps/arm/dl-trampoline.S
+++ b/sysdeps/arm/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/elf-initfini.h b/sysdeps/arm/elf-initfini.h
index 2634170..e728f8d 100644
--- a/sysdeps/arm/elf-initfini.h
+++ b/sysdeps/arm/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. Arm version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fclrexcpt.c b/sysdeps/arm/fclrexcpt.c
index 98bda67..91c8cb6 100644
--- a/sysdeps/arm/fclrexcpt.c
+++ b/sysdeps/arm/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fedisblxcpt.c b/sysdeps/arm/fedisblxcpt.c
index 07edfae..aad420c 100644
--- a/sysdeps/arm/fedisblxcpt.c
+++ b/sysdeps/arm/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/feenablxcpt.c b/sysdeps/arm/feenablxcpt.c
index 3f0b5d1..96c24e9 100644
--- a/sysdeps/arm/feenablxcpt.c
+++ b/sysdeps/arm/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fegetenv.c b/sysdeps/arm/fegetenv.c
index d6dceba..2f9073a 100644
--- a/sysdeps/arm/fegetenv.c
+++ b/sysdeps/arm/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fegetexcept.c b/sysdeps/arm/fegetexcept.c
index ed6d5b5..5a6c26e 100644
--- a/sysdeps/arm/fegetexcept.c
+++ b/sysdeps/arm/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fegetmode.c b/sysdeps/arm/fegetmode.c
index ad4d3c4..fe3c62f 100644
--- a/sysdeps/arm/fegetmode.c
+++ b/sysdeps/arm/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. ARM version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fegetround.c b/sysdeps/arm/fegetround.c
index 8b16905..69f486b 100644
--- a/sysdeps/arm/fegetround.c
+++ b/sysdeps/arm/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/feholdexcpt.c b/sysdeps/arm/feholdexcpt.c
index d7116b1..7b8069e 100644
--- a/sysdeps/arm/feholdexcpt.c
+++ b/sysdeps/arm/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fenv_private.h b/sysdeps/arm/fenv_private.h
index e90d498..eb4320e 100644
--- a/sysdeps/arm/fenv_private.h
+++ b/sysdeps/arm/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. ARM VFP version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fesetenv.c b/sysdeps/arm/fesetenv.c
index 5da1f85..d1fec57 100644
--- a/sysdeps/arm/fesetenv.c
+++ b/sysdeps/arm/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fesetexcept.c b/sysdeps/arm/fesetexcept.c
index 437fee7..57dea61 100644
--- a/sysdeps/arm/fesetexcept.c
+++ b/sysdeps/arm/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. ARM version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fesetmode.c b/sysdeps/arm/fesetmode.c
index a168704..aed1cd7 100644
--- a/sysdeps/arm/fesetmode.c
+++ b/sysdeps/arm/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. ARM version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fesetround.c b/sysdeps/arm/fesetround.c
index 891c89c..1d4f25c 100644
--- a/sysdeps/arm/fesetround.c
+++ b/sysdeps/arm/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/feupdateenv.c b/sysdeps/arm/feupdateenv.c
index 414f5ea..7b669d9 100644
--- a/sysdeps/arm/feupdateenv.c
+++ b/sysdeps/arm/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fgetexcptflg.c b/sysdeps/arm/fgetexcptflg.c
index b7f09f0..fff61e6 100644
--- a/sysdeps/arm/fgetexcptflg.c
+++ b/sysdeps/arm/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/find_exidx.c b/sysdeps/arm/find_exidx.c
index a924d59..468e016 100644
--- a/sysdeps/arm/find_exidx.c
+++ b/sysdeps/arm/find_exidx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,6 +15,7 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
+#include <ldsodefs.h>
#include <link.h>
/* Find the exception index table containing PC. */
@@ -23,7 +24,7 @@ _Unwind_Ptr
__gnu_Unwind_Find_exidx (_Unwind_Ptr pc, int * pcount)
{
struct dl_find_object data;
- if (__dl_find_object ((void *) pc, &data) < 0)
+ if (GLRO(dl_find_object) ((void *) pc, &data) < 0)
return 0;
*pcount = data.dlfo_eh_count;
return (_Unwind_Ptr) data.dlfo_eh_frame;
diff --git a/sysdeps/arm/fix-fp-int-convert-overflow.h b/sysdeps/arm/fix-fp-int-convert-overflow.h
index f939250..f09ff2e 100644
--- a/sysdeps/arm/fix-fp-int-convert-overflow.h
+++ b/sysdeps/arm/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. ARM version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fpu_control.h b/sysdeps/arm/fpu_control.h
index b4f9529..b647149 100644
--- a/sysdeps/arm/fpu_control.h
+++ b/sysdeps/arm/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. ARM VFP version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fraiseexcpt.c b/sysdeps/arm/fraiseexcpt.c
index 3aef661..04f6b7b 100644
--- a/sysdeps/arm/fraiseexcpt.c
+++ b/sysdeps/arm/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/fsetexcptflg.c b/sysdeps/arm/fsetexcptflg.c
index 1a8db00..67614c1 100644
--- a/sysdeps/arm/fsetexcptflg.c
+++ b/sysdeps/arm/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/ftestexcept.c b/sysdeps/arm/ftestexcept.c
index 7e5531a..603cbfc 100644
--- a/sysdeps/arm/ftestexcept.c
+++ b/sysdeps/arm/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/gcc-compat.h b/sysdeps/arm/gcc-compat.h
index 034397c..6991c59 100644
--- a/sysdeps/arm/gcc-compat.h
+++ b/sysdeps/arm/gcc-compat.h
@@ -1,5 +1,5 @@
/* Macros for checking required GCC compatibility. ARM version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/gccframe.h b/sysdeps/arm/gccframe.h
index 3fbfe8c..6e3635e 100644
--- a/sysdeps/arm/gccframe.h
+++ b/sysdeps/arm/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. arm version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/get-rounding-mode.h b/sysdeps/arm/get-rounding-mode.h
index 6e32d43..eb67666 100644
--- a/sysdeps/arm/get-rounding-mode.h
+++ b/sysdeps/arm/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. ARM version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/include/bits/setjmp.h b/sysdeps/arm/include/bits/setjmp.h
index 455136e..d99273c 100644
--- a/sysdeps/arm/include/bits/setjmp.h
+++ b/sysdeps/arm/include/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Private jmp_buf-related definitions. ARM EABI version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/jmpbuf-unwind.h b/sysdeps/arm/jmpbuf-unwind.h
index f88b69a..a49e56b 100644
--- a/sysdeps/arm/jmpbuf-unwind.h
+++ b/sysdeps/arm/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/ldsodefs.h b/sysdeps/arm/ldsodefs.h
index 992ab13..32eda65 100644
--- a/sysdeps/arm/ldsodefs.h
+++ b/sysdeps/arm/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/libc-tls.c b/sysdeps/arm/libc-tls.c
index a83c16a..22095cd 100644
--- a/sysdeps/arm/libc-tls.c
+++ b/sysdeps/arm/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
deleted file mode 100644
index 100e9d1..0000000
--- a/sysdeps/arm/libm-test-ulps
+++ /dev/null
@@ -1,1217 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan2_upward":
-double: 1
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: "carg_upward":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 2
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-float: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp10m1":
-double: 3
-float: 2
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 3
-
-Function: "exp10m1_upward":
-double: 4
-float: 4
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp2m1":
-double: 2
-float: 2
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 5
-float: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 9
-
-Function: "j0_downward":
-double: 5
-float: 9
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-
-Function: "j1":
-double: 4
-float: 9
-
-Function: "j1_downward":
-double: 5
-float: 8
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-
-Function: "j1_upward":
-double: 9
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log10p1":
-double: 1
-float: 2
-
-Function: "log10p1_downward":
-double: 2
-float: 3
-
-Function: "log10p1_towardzero":
-double: 3
-float: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 3
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-
-Function: "log2_upward":
-double: 3
-float: 3
-
-Function: "log2p1":
-double: 1
-float: 2
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-
-Function: "log_downward":
-float: 2
-
-Function: "log_towardzero":
-float: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 2
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 2
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-
-Function: "y0_downward":
-double: 3
-float: 9
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-
-Function: "y0_upward":
-double: 3
-float: 9
-
-Function: "y1":
-double: 3
-float: 9
-
-Function: "y1_downward":
-double: 6
-float: 9
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-
-Function: "y1_upward":
-double: 7
-float: 9
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 3
-float: 4
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-Function: "yn_upward":
-double: 4
-float: 5
-
-# end of automatic generation
diff --git a/sysdeps/arm/libm-test-ulps-name b/sysdeps/arm/libm-test-ulps-name
deleted file mode 100644
index 74f9acf..0000000
--- a/sysdeps/arm/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-ARM
diff --git a/sysdeps/arm/machine-gmon.h b/sysdeps/arm/machine-gmon.h
index 473a3cb..a406e15 100644
--- a/sysdeps/arm/machine-gmon.h
+++ b/sysdeps/arm/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. ARM EABI version.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/math-tests-trap.h b/sysdeps/arm/math-tests-trap.h
index 09af2d7..0bf3075 100644
--- a/sysdeps/arm/math-tests-trap.h
+++ b/sysdeps/arm/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
ARM version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/memcpy.S b/sysdeps/arm/memcpy.S
index 6d1928a..5341c4b 100644
--- a/sysdeps/arm/memcpy.S
+++ b/sysdeps/arm/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/arm/memmove.S b/sysdeps/arm/memmove.S
index 32ccf85..9d0c91d 100644
--- a/sysdeps/arm/memmove.S
+++ b/sysdeps/arm/memmove.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/arm/memset.S b/sysdeps/arm/memset.S
index b96d3c6..fd9c79c 100644
--- a/sysdeps/arm/memset.S
+++ b/sysdeps/arm/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/nofpu/math-tests-exceptions.h b/sysdeps/arm/nofpu/math-tests-exceptions.h
index 3a20be8..5442f8d 100644
--- a/sysdeps/arm/nofpu/math-tests-exceptions.h
+++ b/sysdeps/arm/nofpu/math-tests-exceptions.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: support for exceptions. ARM no-FPU version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/nofpu/math-tests-rounding.h b/sysdeps/arm/nofpu/math-tests-rounding.h
index 5dc9cc3..7d9e10b 100644
--- a/sysdeps/arm/nofpu/math-tests-rounding.h
+++ b/sysdeps/arm/nofpu/math-tests-rounding.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: rounding mode support. ARM no-FPU version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/nptl/Makefile b/sysdeps/arm/nptl/Makefile
index 2ff77cb..1e5328b 100644
--- a/sysdeps/arm/nptl/Makefile
+++ b/sysdeps/arm/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/nptl/pthreaddef.h b/sysdeps/arm/nptl/pthreaddef.h
index e513dc9..f556227 100644
--- a/sysdeps/arm/nptl/pthreaddef.h
+++ b/sysdeps/arm/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h
index fb6de17..65a5f2d 100644
--- a/sysdeps/arm/nptl/tls.h
+++ b/sysdeps/arm/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/pointer_guard.h b/sysdeps/arm/pointer_guard.h
index 461d10e..7385905 100644
--- a/sysdeps/arm/pointer_guard.h
+++ b/sysdeps/arm/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer guard implementation. Arm version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/preconfigure b/sysdeps/arm/preconfigure
index c323f6d..8f7b095 100644
--- a/sysdeps/arm/preconfigure
+++ b/sysdeps/arm/preconfigure
@@ -53,14 +53,14 @@ printf "%s\n" "$as_me: WARNING: arm/preconfigure: Did not find ARM architecture
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
+printf %s "checking for egrep -e... " >&6; }
+if test ${ac_cv_path_EGREP_TRADITIONAL+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- if test -z "$GREP"; then
- ac_path_GREP_found=false
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -74,13 +74,14 @@ do
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -89,14 +90,14 @@ case `"$ac_path_GREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -104,35 +105,24 @@ case `"$ac_path_GREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_GREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
+ :
fi
else
- ac_cv_path_GREP=$GREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
+ if test "$ac_cv_path_EGREP_TRADITIONAL"
then :
- printf %s "(cached) " >&6
-else $as_nop
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
+ ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -146,13 +136,14 @@ do
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -161,14 +152,14 @@ case `"$ac_path_EGREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -176,24 +167,25 @@ case `"$ac_path_EGREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_EGREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
- ac_cv_path_EGREP=$EGREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-
- fi
+ ;;
+esac
+fi ;;
+esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
+printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
+ EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -203,11 +195,12 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+ $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
endianness=le
-else $as_nop
- endianness=be
+else case e in #(
+ e) endianness=be ;;
+esac
fi
rm -rf conftest*
diff --git a/sysdeps/arm/setfpucw.c b/sysdeps/arm/setfpucw.c
index 8f6cea4..ca708bc 100644
--- a/sysdeps/arm/setfpucw.c
+++ b/sysdeps/arm/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
index a84897a..318b018 100644
--- a/sysdeps/arm/setjmp.S
+++ b/sysdeps/arm/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for ARM.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/sotruss-lib.c b/sysdeps/arm/sotruss-lib.c
index 94c4241..0ed9f87 100644
--- a/sysdeps/arm/sotruss-lib.c
+++ b/sysdeps/arm/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for ARM.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/stackinfo.h b/sysdeps/arm/stackinfo.h
index 6ef3b5e..3068352 100644
--- a/sysdeps/arm/stackinfo.h
+++ b/sysdeps/arm/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/stap-probe-machine.h b/sysdeps/arm/stap-probe-machine.h
index bb0ac11..bef3782 100644
--- a/sysdeps/arm/stap-probe-machine.h
+++ b/sysdeps/arm/stap-probe-machine.h
@@ -1,5 +1,5 @@
/* Macros for customizing Systemtap <sys/sdt.h>. Arm version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S
index 20a6dbb..64eead3 100644
--- a/sysdeps/arm/start.S
+++ b/sysdeps/arm/start.S
@@ -1,5 +1,5 @@
/* Startup code for ARM & ELF
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/strlen.S b/sysdeps/arm/strlen.S
index ffc67ad..df89e31 100644
--- a/sysdeps/arm/strlen.S
+++ b/sysdeps/arm/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/submul_1.S b/sysdeps/arm/submul_1.S
index 7c0a356..34b7a9d 100644
--- a/sysdeps/arm/submul_1.S
+++ b/sysdeps/arm/submul_1.S
@@ -1,5 +1,5 @@
/* mpn_submul_1 -- multiply and subtract bignums.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h
index 84ba86e..76a33fd 100644
--- a/sysdeps/arm/sys/ucontext.h
+++ b/sysdeps/arm/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
index 8b7fee7..8e66fa5 100644
--- a/sysdeps/arm/sysdep.h
+++ b/sysdeps/arm/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for ARM.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/tlsdesc.c b/sysdeps/arm/tlsdesc.c
index aff8372..a8cafd1 100644
--- a/sysdeps/arm/tlsdesc.c
+++ b/sysdeps/arm/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/tst-armtlsdescloc.c b/sysdeps/arm/tst-armtlsdescloc.c
index f29d70b..f527669 100644
--- a/sysdeps/arm/tst-armtlsdescloc.c
+++ b/sysdeps/arm/tst-armtlsdescloc.c
@@ -1,5 +1,5 @@
/* ARM immediate binding GNU TLS descriptor relocation test.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/tst-armtlsdesclocmod.c b/sysdeps/arm/tst-armtlsdesclocmod.c
index 365ef3d..66291fa 100644
--- a/sysdeps/arm/tst-armtlsdesclocmod.c
+++ b/sysdeps/arm/tst-armtlsdesclocmod.c
@@ -1,5 +1,5 @@
/* DSO used for ARM immediate binding GNU TLS descriptor relocation test.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/tst-audit.h b/sysdeps/arm/tst-audit.h
index 6c22bcb..3154485 100644
--- a/sysdeps/arm/tst-audit.h
+++ b/sysdeps/arm/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/arm/tst-gnu2-tls2.h b/sysdeps/arm/tst-gnu2-tls2.h
index e413ac2..5798300 100644
--- a/sysdeps/arm/tst-gnu2-tls2.h
+++ b/sysdeps/arm/tst-gnu2-tls2.h
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation. ARM version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/unwind-arch.h b/sysdeps/arm/unwind-arch.h
index f5e5193..0322813 100644
--- a/sysdeps/arm/unwind-arch.h
+++ b/sysdeps/arm/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. Arm customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/unwind-dw2-fde-glibc.c b/sysdeps/arm/unwind-dw2-fde-glibc.c
index 3a399d2..4c438c7 100644
--- a/sysdeps/arm/unwind-dw2-fde-glibc.c
+++ b/sysdeps/arm/unwind-dw2-fde-glibc.c
@@ -1,5 +1,5 @@
/* Dummy exception handling and frame unwind runtime interface routines.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/arm/unwind-resume.c b/sysdeps/arm/unwind-resume.c
index 79431e7..0e52974 100644
--- a/sysdeps/arm/unwind-resume.c
+++ b/sysdeps/arm/unwind-resume.c
@@ -1,5 +1,5 @@
/* Unwinder function forwarders for libc. Arm version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/unwind-resume.h b/sysdeps/arm/unwind-resume.h
index 1777eb0..3176158 100644
--- a/sysdeps/arm/unwind-resume.h
+++ b/sysdeps/arm/unwind-resume.h
@@ -1,5 +1,5 @@
/* Definitions for unwind-resume.c. ARM (EABI) version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/arm/unwind.h b/sysdeps/arm/unwind.h
index 16c0473..3e7cd03 100644
--- a/sysdeps/arm/unwind.h
+++ b/sysdeps/arm/unwind.h
@@ -1,5 +1,5 @@
/* Header file for the ARM EABI unwinder
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/sysdeps/csky/abiv2/__longjmp.S b/sysdeps/csky/abiv2/__longjmp.S
index e5f8441..9029947 100644
--- a/sysdeps/csky/abiv2/__longjmp.S
+++ b/sysdeps/csky/abiv2/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for C-SKY ABIV2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/csky-mcount.S b/sysdeps/csky/abiv2/csky-mcount.S
index d87db7b..943e847 100644
--- a/sysdeps/csky/abiv2/csky-mcount.S
+++ b/sysdeps/csky/abiv2/csky-mcount.S
@@ -1,5 +1,5 @@
/* Implementation of profiling support. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/dl-trampoline.S b/sysdeps/csky/abiv2/dl-trampoline.S
index 590aa6d..a9bf139 100644
--- a/sysdeps/csky/abiv2/dl-trampoline.S
+++ b/sysdeps/csky/abiv2/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/memcmp.S b/sysdeps/csky/abiv2/memcmp.S
index bd8ff94..d4076f4 100644
--- a/sysdeps/csky/abiv2/memcmp.S
+++ b/sysdeps/csky/abiv2/memcmp.S
@@ -1,5 +1,5 @@
/* The assembly function for memory compare. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/memcpy.S b/sysdeps/csky/abiv2/memcpy.S
index 322d428..e9476ca 100644
--- a/sysdeps/csky/abiv2/memcpy.S
+++ b/sysdeps/csky/abiv2/memcpy.S
@@ -1,5 +1,5 @@
/* The assembly function for memcpy. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/memset.S b/sysdeps/csky/abiv2/memset.S
index b0d9406..f571665 100644
--- a/sysdeps/csky/abiv2/memset.S
+++ b/sysdeps/csky/abiv2/memset.S
@@ -1,5 +1,5 @@
/* The assembly function for memset. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/setjmp.S b/sysdeps/csky/abiv2/setjmp.S
index 5d62112..e9eac51 100644
--- a/sysdeps/csky/abiv2/setjmp.S
+++ b/sysdeps/csky/abiv2/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for C-SKY ABIV2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/start.S b/sysdeps/csky/abiv2/start.S
index 4c03a55..ce1d7d5 100644
--- a/sysdeps/csky/abiv2/start.S
+++ b/sysdeps/csky/abiv2/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF C-SKY ABIV2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/strcmp.S b/sysdeps/csky/abiv2/strcmp.S
index f907cb3..ad328ff 100644
--- a/sysdeps/csky/abiv2/strcmp.S
+++ b/sysdeps/csky/abiv2/strcmp.S
@@ -1,5 +1,5 @@
/* The assembly function for string compare. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/strcpy.S b/sysdeps/csky/abiv2/strcpy.S
index 0ad32d7..df84d1f 100644
--- a/sysdeps/csky/abiv2/strcpy.S
+++ b/sysdeps/csky/abiv2/strcpy.S
@@ -1,5 +1,5 @@
/* The assembly function for string copy. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/abiv2/strlen.S b/sysdeps/csky/abiv2/strlen.S
index 27127ea..9936a21 100644
--- a/sysdeps/csky/abiv2/strlen.S
+++ b/sysdeps/csky/abiv2/strlen.S
@@ -1,5 +1,5 @@
/* The assembly function for string length. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/atomic-machine.h b/sysdeps/csky/atomic-machine.h
index 63992b1..1117cf0 100644
--- a/sysdeps/csky/atomic-machine.h
+++ b/sysdeps/csky/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/bits/fenv.h b/sysdeps/csky/bits/fenv.h
index 99c4470..cdbb331 100644
--- a/sysdeps/csky/bits/fenv.h
+++ b/sysdeps/csky/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/bits/link.h b/sysdeps/csky/bits/link.h
index c6dcf9d..69a92a0 100644
--- a/sysdeps/csky/bits/link.h
+++ b/sysdeps/csky/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/bits/setjmp.h b/sysdeps/csky/bits/setjmp.h
index b0b1f7f..11ec062 100644
--- a/sysdeps/csky/bits/setjmp.h
+++ b/sysdeps/csky/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/bits/wordsize.h b/sysdeps/csky/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/csky/bits/wordsize.h
+++ b/sysdeps/csky/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/dl-machine.h b/sysdeps/csky/dl-machine.h
index ec45f9b..dd8ff4a 100644
--- a/sysdeps/csky/dl-machine.h
+++ b/sysdeps/csky/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/dl-procinfo.h b/sysdeps/csky/dl-procinfo.h
deleted file mode 100644
index f5f6343..0000000
--- a/sysdeps/csky/dl-procinfo.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* C-SKY version of processor capability information handling macros.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(word, val) -1
-
-/* There are no hardware capabilities defined. */
-#define _dl_hwcap_string(idx) ""
-
-/* We don't have any hardware capabilities. */
-#define _DL_HWCAP_COUNT 0
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/csky/dl-tls.h b/sysdeps/csky/dl-tls.h
deleted file mode 100644
index 3027553..0000000
--- a/sysdeps/csky/dl-tls.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/csky/fpu/fclrexcpt.c b/sysdeps/csky/fpu/fclrexcpt.c
index de106f9..47969f8 100644
--- a/sysdeps/csky/fpu/fclrexcpt.c
+++ b/sysdeps/csky/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fedisblxcpt.c b/sysdeps/csky/fpu/fedisblxcpt.c
index a7e02dc..a924232 100644
--- a/sysdeps/csky/fpu/fedisblxcpt.c
+++ b/sysdeps/csky/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/feenablxcpt.c b/sysdeps/csky/fpu/feenablxcpt.c
index 5d580f9..3fc4446 100644
--- a/sysdeps/csky/fpu/feenablxcpt.c
+++ b/sysdeps/csky/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fegetenv.c b/sysdeps/csky/fpu/fegetenv.c
index 8b45f7a..b25b405 100644
--- a/sysdeps/csky/fpu/fegetenv.c
+++ b/sysdeps/csky/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fegetexcept.c b/sysdeps/csky/fpu/fegetexcept.c
index ff2eea5..6f4c18a 100644
--- a/sysdeps/csky/fpu/fegetexcept.c
+++ b/sysdeps/csky/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fegetmode.c b/sysdeps/csky/fpu/fegetmode.c
index f570026..ed4ba6a 100644
--- a/sysdeps/csky/fpu/fegetmode.c
+++ b/sysdeps/csky/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fegetround.c b/sysdeps/csky/fpu/fegetround.c
index 6922c28..a66b145 100644
--- a/sysdeps/csky/fpu/fegetround.c
+++ b/sysdeps/csky/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/feholdexcpt.c b/sysdeps/csky/fpu/feholdexcpt.c
index 2197abc..ab13f84 100644
--- a/sysdeps/csky/fpu/feholdexcpt.c
+++ b/sysdeps/csky/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fenv_libc.h b/sysdeps/csky/fpu/fenv_libc.h
index 71cb726..3972cc5 100644
--- a/sysdeps/csky/fpu/fenv_libc.h
+++ b/sysdeps/csky/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* fpu registers environment. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fenv_private.h b/sysdeps/csky/fpu/fenv_private.h
index e5c5a89..3240435 100644
--- a/sysdeps/csky/fpu/fenv_private.h
+++ b/sysdeps/csky/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fesetenv.c b/sysdeps/csky/fpu/fesetenv.c
index 870de7f..a6a406e 100644
--- a/sysdeps/csky/fpu/fesetenv.c
+++ b/sysdeps/csky/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fesetexcept.c b/sysdeps/csky/fpu/fesetexcept.c
index d464e20..0a8dff3 100644
--- a/sysdeps/csky/fpu/fesetexcept.c
+++ b/sysdeps/csky/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fesetmode.c b/sysdeps/csky/fpu/fesetmode.c
index 0164040..87287c1 100644
--- a/sysdeps/csky/fpu/fesetmode.c
+++ b/sysdeps/csky/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fesetround.c b/sysdeps/csky/fpu/fesetround.c
index ec570a5..51b477f 100644
--- a/sysdeps/csky/fpu/fesetround.c
+++ b/sysdeps/csky/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/feupdateenv.c b/sysdeps/csky/fpu/feupdateenv.c
index 3379c49..c9384fa 100644
--- a/sysdeps/csky/fpu/feupdateenv.c
+++ b/sysdeps/csky/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fgetexcptflg.c b/sysdeps/csky/fpu/fgetexcptflg.c
index 8ecb890..0d42bd0 100644
--- a/sysdeps/csky/fpu/fgetexcptflg.c
+++ b/sysdeps/csky/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h b/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h
index 18bce91..85ec57b 100644
--- a/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h
+++ b/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. C-SKY version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fraiseexcpt.c b/sysdeps/csky/fpu/fraiseexcpt.c
index 3b4cb20..750b441 100644
--- a/sysdeps/csky/fpu/fraiseexcpt.c
+++ b/sysdeps/csky/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/fsetexcptflg.c b/sysdeps/csky/fpu/fsetexcptflg.c
index 01c639b..7cfd261 100644
--- a/sysdeps/csky/fpu/fsetexcptflg.c
+++ b/sysdeps/csky/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/ftestexcept.c b/sysdeps/csky/fpu/ftestexcept.c
index 973082c..135ddca 100644
--- a/sysdeps/csky/fpu/ftestexcept.c
+++ b/sysdeps/csky/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/fpu/libm-test-ulps b/sysdeps/csky/fpu/libm-test-ulps
deleted file mode 100644
index fc634f8..0000000
--- a/sysdeps/csky/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1126 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-float: 1
-
-Function: "atan2":
-float: 1
-
-Function: "atan2_downward":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan2_upward":
-double: 1
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: "carg_upward":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cos_upward":
-double: 1
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "exp2_downward":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 5
-float: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 8
-
-Function: "j0_downward":
-double: 2
-float: 4
-
-Function: "j0_towardzero":
-double: 4
-float: 5
-
-Function: "j0_upward":
-double: 4
-float: 5
-
-Function: "j1":
-double: 2
-float: 9
-
-Function: "j1_downward":
-double: 3
-float: 5
-
-Function: "j1_towardzero":
-double: 3
-float: 2
-
-Function: "j1_upward":
-double: 3
-float: 5
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_downward":
-double: 3
-
-Function: "log2_towardzero":
-double: 2
-
-Function: "log2_upward":
-double: 3
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 1
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 1
-
-Function: "sincos":
-double: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 8
-float: 7
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 8
-
-Function: "y0_downward":
-double: 3
-float: 6
-
-Function: "y0_towardzero":
-double: 3
-float: 3
-
-Function: "y0_upward":
-double: 3
-float: 6
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "y1_downward":
-double: 3
-float: 2
-
-Function: "y1_towardzero":
-double: 3
-float: 2
-
-Function: "y1_upward":
-double: 7
-float: 2
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 3
-float: 4
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-Function: "yn_upward":
-double: 4
-float: 5
-
-# end of automatic generation
diff --git a/sysdeps/csky/fpu/libm-test-ulps-name b/sysdeps/csky/fpu/libm-test-ulps-name
deleted file mode 100644
index 236b0fb..0000000
--- a/sysdeps/csky/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-CSKY
diff --git a/sysdeps/csky/fpu_control.h b/sysdeps/csky/fpu_control.h
index 173dcd3..9bf103c 100644
--- a/sysdeps/csky/fpu_control.h
+++ b/sysdeps/csky/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/gccframe.h b/sysdeps/csky/gccframe.h
index bd0d2e8..5083a57 100644
--- a/sysdeps/csky/gccframe.h
+++ b/sysdeps/csky/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/jmpbuf-unwind.h b/sysdeps/csky/jmpbuf-unwind.h
index 4e0dbbd..f63d001 100644
--- a/sysdeps/csky/jmpbuf-unwind.h
+++ b/sysdeps/csky/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. C-SkY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/ldsodefs.h b/sysdeps/csky/ldsodefs.h
index 1cc2a8c..cd183b9 100644
--- a/sysdeps/csky/ldsodefs.h
+++ b/sysdeps/csky/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/libc-tls.c b/sysdeps/csky/libc-tls.c
index afb01d6..d036b5d 100644
--- a/sysdeps/csky/libc-tls.c
+++ b/sysdeps/csky/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/machine-gmon.h b/sysdeps/csky/machine-gmon.h
index d295725..e8a1c8d 100644
--- a/sysdeps/csky/machine-gmon.h
+++ b/sysdeps/csky/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/nofpu/libm-test-ulps b/sysdeps/csky/nofpu/libm-test-ulps
deleted file mode 100644
index a1e28c8..0000000
--- a/sysdeps/csky/nofpu/libm-test-ulps
+++ /dev/null
@@ -1,1157 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-float: 1
-
-Function: "atan2":
-float: 1
-
-Function: "atan2_downward":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan2_upward":
-double: 1
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 4
-float: 4
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_downward":
-double: 2
-float: 2
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "cacosh_upward":
-double: 2
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: "carg_upward":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "casin_upward":
-double: 2
-float: 1
-
-Function: Imaginary part of "casin_upward":
-double: 4
-float: 4
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 1
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "casinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 1
-
-Function: Real part of "catan_upward":
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 1
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "catanh_upward":
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 2
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 2
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 1
-float: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 2
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 1
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 1
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 2
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 1
-float: 1
-
-Function: "cosh_towardzero":
-double: 1
-float: 1
-
-Function: "cosh_upward":
-double: 1
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 4
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 4
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 2
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 2
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 2
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 1
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 1
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp10_downward":
-double: 2
-float: 1
-
-Function: "exp10_towardzero":
-double: 2
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-
-Function: "exp_towardzero":
-double: 1
-
-Function: "exp_upward":
-double: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 5
-float: 4
-
-Function: "gamma_towardzero":
-double: 5
-float: 4
-
-Function: "gamma_upward":
-double: 5
-float: 5
-
-Function: "hypot":
-double: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 8
-
-Function: "j0_downward":
-double: 2
-float: 3
-
-Function: "j0_towardzero":
-double: 3
-float: 2
-
-Function: "j0_upward":
-double: 3
-float: 2
-
-Function: "j1":
-double: 2
-float: 9
-
-Function: "j1_downward":
-double: 3
-float: 2
-
-Function: "j1_towardzero":
-double: 3
-float: 2
-
-Function: "j1_upward":
-double: 3
-float: 5
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 5
-float: 4
-
-Function: "lgamma_towardzero":
-double: 5
-float: 4
-
-Function: "lgamma_upward":
-double: 5
-float: 5
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-
-Function: "log2_upward":
-double: 3
-float: 3
-
-Function: "log_downward":
-float: 2
-
-Function: "log_towardzero":
-float: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow10":
-double: 2
-
-Function: "pow10_downward":
-double: 2
-float: 1
-
-Function: "pow10_towardzero":
-double: 2
-float: 1
-
-Function: "pow10_upward":
-double: 2
-float: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 2
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 2
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 2
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 5
-float: 5
-
-Function: "tgamma_towardzero":
-double: 5
-float: 4
-
-Function: "tgamma_upward":
-double: 4
-float: 4
-
-Function: "y0":
-double: 3
-float: 8
-
-Function: "y0_downward":
-double: 3
-float: 2
-
-Function: "y0_towardzero":
-double: 3
-float: 3
-
-Function: "y0_upward":
-double: 3
-float: 4
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "y1_downward":
-double: 3
-float: 2
-
-Function: "y1_towardzero":
-double: 3
-float: 2
-
-Function: "y1_upward":
-double: 7
-float: 2
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 3
-float: 2
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-Function: "yn_upward":
-double: 4
-float: 4
-
-# end of automatic generation
diff --git a/sysdeps/csky/nofpu/libm-test-ulps-name b/sysdeps/csky/nofpu/libm-test-ulps-name
deleted file mode 100644
index d9b35a9..0000000
--- a/sysdeps/csky/nofpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-CSKY soft-float
diff --git a/sysdeps/csky/nptl/pthreaddef.h b/sysdeps/csky/nptl/pthreaddef.h
index a1a2dd5..95c0522 100644
--- a/sysdeps/csky/nptl/pthreaddef.h
+++ b/sysdeps/csky/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/nptl/tls.h b/sysdeps/csky/nptl/tls.h
index f6f916c..afce120 100644
--- a/sysdeps/csky/nptl/tls.h
+++ b/sysdeps/csky/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. NPTL/C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/preconfigure b/sysdeps/csky/preconfigure
index d52b8aa..d52b8aa 100755..100644
--- a/sysdeps/csky/preconfigure
+++ b/sysdeps/csky/preconfigure
diff --git a/sysdeps/csky/sotruss-lib.c b/sysdeps/csky/sotruss-lib.c
index fa8278b..232a21d 100644
--- a/sysdeps/csky/sotruss-lib.c
+++ b/sysdeps/csky/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/csky/stackinfo.h b/sysdeps/csky/stackinfo.h
deleted file mode 100644
index ef22fa3..0000000
--- a/sysdeps/csky/stackinfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Stack environment definitions. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On C-SKY the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/csky/sysdep.h b/sysdeps/csky/sysdep.h
index aa8c2ad..8ca062b 100644
--- a/sysdeps/csky/sysdep.h
+++ b/sysdeps/csky/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h b/sysdeps/csky/thread_pointer.h
index d92b5fe..5e1d49d 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h
+++ b/sysdeps/csky/thread_pointer.h
@@ -1,4 +1,4 @@
-/* Internal definitions for stat functions. Linux/nios2.
+/* __thread_pointer definition. csky version.
Copyright (C) 2021-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -16,6 +16,15 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
-#define STAT_IS_KERNEL_STAT 1
-#define XSTAT_IS_XSTAT64 0
-#define STATFS_IS_STATFS64 0
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+static inline void *
+__thread_pointer (void)
+{
+ void *__thread_register;
+ __asm__ ("mov %0, r31" : "=r" (__thread_register));
+ return __thread_register;
+}
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/csky/tst-audit.h b/sysdeps/csky/tst-audit.h
index 2bd57d0..d9f4bae 100644
--- a/sysdeps/csky/tst-audit.h
+++ b/sysdeps/csky/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/Makefile b/sysdeps/generic/Makefile
index 72522d1..c48e713 100644
--- a/sysdeps/generic/Makefile
+++ b/sysdeps/generic/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@ CFLAGS-wordcopy.c += -Wno-uninitialized
endif
ifeq ($(subdir),elf)
+sysdep_routines += sframe-read sframe
ifeq (yes:yes,$(build-shared):$(unwind-find-fde))
# This is needed to support g++ v2 and v3.
sysdep_routines += framestate unwind-pe
diff --git a/sysdeps/generic/_itoa.h b/sysdeps/generic/_itoa.h
index 573ff34..2f170d3 100644
--- a/sysdeps/generic/_itoa.h
+++ b/sysdeps/generic/_itoa.h
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -51,40 +51,9 @@ hidden_proto (_itoa_upper_digits)
hidden_proto (_itoa_lower_digits)
#endif
-#if IS_IN (libc)
extern char *_itoa_word (_ITOA_WORD_TYPE value, char *buflim,
unsigned int base,
int upper_case) attribute_hidden;
-#else
-static inline char * __attribute__ ((unused, always_inline))
-_itoa_word (_ITOA_WORD_TYPE value, char *buflim,
- unsigned int base, int upper_case)
-{
- const char *digits = (upper_case
- ? _itoa_upper_digits
- : _itoa_lower_digits);
-
- switch (base)
- {
-# define SPECIAL(Base) \
- case Base: \
- do \
- *--buflim = digits[value % Base]; \
- while ((value /= Base) != 0); \
- break
-
- SPECIAL (10);
- SPECIAL (16);
- SPECIAL (8);
- default:
- do
- *--buflim = digits[value % base];
- while ((value /= base) != 0);
- }
- return buflim;
-}
-# undef SPECIAL
-#endif
/* Similar to the _itoa functions, but output starts at buf and pointer
after the last written character is returned. */
diff --git a/sysdeps/generic/abort-instr.h b/sysdeps/generic/abort-instr.h
index 0ce5bcf..ee22d38 100644
--- a/sysdeps/generic/abort-instr.h
+++ b/sysdeps/generic/abort-instr.h
@@ -1,5 +1,5 @@
/* Magic instruction to crash quickly and reliably. Generic/stub version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/adaptive_spin_count.h b/sysdeps/generic/adaptive_spin_count.h
index 06c47b5..c71a254 100644
--- a/sysdeps/generic/adaptive_spin_count.h
+++ b/sysdeps/generic/adaptive_spin_count.h
@@ -1,5 +1,5 @@
/* Maximum adaptive spin count by default
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index 9ef0512..5200f28 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/arch-fd_to_filename.h b/sysdeps/generic/arch-fd_to_filename.h
index a741eb6..0d304a3 100644
--- a/sysdeps/generic/arch-fd_to_filename.h
+++ b/sysdeps/generic/arch-fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Generic stub.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/atomic-machine.h b/sysdeps/generic/atomic-machine.h
index a130225..3ef5eb6 100644
--- a/sysdeps/generic/atomic-machine.h
+++ b/sysdeps/generic/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/calloc-clear-memory.h b/sysdeps/generic/calloc-clear-memory.h
new file mode 100644
index 0000000..f95261b
--- /dev/null
+++ b/sysdeps/generic/calloc-clear-memory.h
@@ -0,0 +1,49 @@
+/* Clear a block of memory for calloc. Generic version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+static __always_inline void *
+clear_memory (INTERNAL_SIZE_T *d, unsigned long clearsize)
+{
+ /* Unroll clear memory size up to 9 * INTERNAL_SIZE_T bytes. We know
+ that contents have an odd number of INTERNAL_SIZE_T-sized words;
+ minimally 3 words. */
+ unsigned long nclears = clearsize / sizeof (INTERNAL_SIZE_T);
+
+ if (nclears > 9)
+ return memset (d, 0, clearsize);
+
+ /* NB: The VRP pass in GCC 14.2 will optimize it out. */
+ if (nclears < 3)
+ __builtin_unreachable ();
+
+ /* Use repeated stores with 1 branch, instead of up to 3. */
+ *(d + 0) = 0;
+ *(d + 1) = 0;
+ *(d + 2) = 0;
+ *(d + nclears - 2) = 0;
+ *(d + nclears - 2 + 1) = 0;
+ if (nclears > 5)
+ {
+ *(d + 3) = 0;
+ *(d + 3 + 1) = 0;
+ *(d + nclears - 4) = 0;
+ *(d + nclears - 4 + 1) = 0;
+ }
+
+ return d;
+}
diff --git a/sysdeps/generic/device-nrs.h b/sysdeps/generic/device-nrs.h
index fafe7c0..ef82efc 100644
--- a/sysdeps/generic/device-nrs.h
+++ b/sysdeps/generic/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dirstream.h b/sysdeps/generic/dirstream.h
index fbbfdcb..1cd07f3 100644
--- a/sysdeps/generic/dirstream.h
+++ b/sysdeps/generic/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-affinity.h b/sysdeps/generic/dl-affinity.h
index d117f73..97c0c8f 100644
--- a/sysdeps/generic/dl-affinity.h
+++ b/sysdeps/generic/dl-affinity.h
@@ -1,5 +1,5 @@
/* CPU affinity handling for the dynamic linker. Stub version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-audit-check.h b/sysdeps/generic/dl-audit-check.h
index aa21f20..85222fc 100644
--- a/sysdeps/generic/dl-audit-check.h
+++ b/sysdeps/generic/dl-audit-check.h
@@ -1,5 +1,5 @@
/* rtld-audit version check. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-auxv.h b/sysdeps/generic/dl-auxv.h
index ce72262..260403d 100644
--- a/sysdeps/generic/dl-auxv.h
+++ b/sysdeps/generic/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
index 919e49f..0ee6571 100644
--- a/sysdeps/generic/dl-cache.h
+++ b/sysdeps/generic/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-call_tls_init_tp.h b/sysdeps/generic/dl-call_tls_init_tp.h
index fc1ceb1..414a5ce 100644
--- a/sysdeps/generic/dl-call_tls_init_tp.h
+++ b/sysdeps/generic/dl-call_tls_init_tp.h
@@ -1,5 +1,5 @@
/* Invoke TLS_INIT_TP and __tls_init_tp with error handling.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-debug.h b/sysdeps/generic/dl-debug.h
index cbaa1e0..87152fa 100644
--- a/sysdeps/generic/dl-debug.h
+++ b/sysdeps/generic/dl-debug.h
@@ -1,5 +1,5 @@
/* Debugging support. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-dtprocnum.h b/sysdeps/generic/dl-dtprocnum.h
index 7b4b510..8cf83a3 100644
--- a/sysdeps/generic/dl-dtprocnum.h
+++ b/sysdeps/generic/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-dtv.h b/sysdeps/generic/dl-dtv.h
index a1d8c09..3886a58 100644
--- a/sysdeps/generic/dl-dtv.h
+++ b/sysdeps/generic/dl-dtv.h
@@ -1,5 +1,5 @@
/* Generic declarations for DTV-based TLS handling in the dynamic linker.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-execve.h b/sysdeps/generic/dl-execve.h
index 717acc3..025ef34 100644
--- a/sysdeps/generic/dl-execve.h
+++ b/sysdeps/generic/dl-execve.h
@@ -1,5 +1,5 @@
/* execve for the dynamic linker. Generic stub version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h b/sysdeps/generic/dl-extra_tls.h
index a0b47b5..7f5b10d 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
+++ b/sysdeps/generic/dl-extra_tls.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* extra tls utils for the dynamic linker. Generic stub version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,22 +16,31 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_IOCTL_H
-# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-#endif
+#ifndef _DL_EXTRA_TLS_H
+#define _DL_EXTRA_TLS_H 1
+#include <stddef.h>
+
+/* In this generic version, the extra TLS block is unused. */
+
+/* Returns the size of the extra TLS block, it must always be a multiple of the
+ alignment. */
+static inline size_t
+_dl_extra_tls_get_size (void)
+{
+ return 0;
+}
-/* Use the definitions from the kernel header files. */
-#include <asm/ioctls.h>
-
-/* Oh well, this is necessary since the kernel data structure is
- different from the user-level version. */
-#undef TCGETS
-#undef TCSETS
-#undef TCSETSW
-#undef TCSETSF
-#define TCGETS _IOR ('T', 8, char[36])
-#define TCSETS _IOW ('T', 9, char[36])
-#define TCSETSW _IOW ('T', 10, char[36])
-#define TCSETSF _IOW ('T', 11, char[36])
-
-#include <linux/sockios.h>
+/* Returns the alignment requirements of the extra TLS block. */
+static inline size_t
+_dl_extra_tls_get_align (void)
+{
+ return 0;
+}
+
+/* Record the offset of the extra TLS block from the thread pointer. */
+static inline void
+_dl_extra_tls_set_offset (ptrdiff_t tls_offset __attribute__ ((unused)))
+{
+}
+
+#endif
diff --git a/sysdeps/generic/dl-fcntl.h b/sysdeps/generic/dl-fcntl.h
index 7b0ffb1..1d5360c 100644
--- a/sysdeps/generic/dl-fcntl.h
+++ b/sysdeps/generic/dl-fcntl.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/fcntl.h. Generic version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-fileid.h b/sysdeps/generic/dl-fileid.h
index 1c187cb..b606cc7 100644
--- a/sysdeps/generic/dl-fileid.h
+++ b/sysdeps/generic/dl-fileid.h
@@ -1,5 +1,5 @@
/* File identity for the dynamic linker. Stub version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-fixup-attribute.h b/sysdeps/generic/dl-fixup-attribute.h
index 0d5e765..8cc0694 100644
--- a/sysdeps/generic/dl-fixup-attribute.h
+++ b/sysdeps/generic/dl-fixup-attribute.h
@@ -1,5 +1,5 @@
/* ABI specifics for lazy resolution functions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-hash.h b/sysdeps/generic/dl-hash.h
index c8031e3..2e080e2 100644
--- a/sysdeps/generic/dl-hash.h
+++ b/sysdeps/generic/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash value for given string according to ELF standard.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-hwcap-check.h b/sysdeps/generic/dl-hwcap-check.h
index 55efd12..10d8a48 100644
--- a/sysdeps/generic/dl-hwcap-check.h
+++ b/sysdeps/generic/dl-hwcap-check.h
@@ -1,5 +1,5 @@
/* Check for hardware capabilities after HWCAP parsing. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-irel.h b/sysdeps/generic/dl-irel.h
index 0c8ae4f..ba6ad5b 100644
--- a/sysdeps/generic/dl-irel.h
+++ b/sysdeps/generic/dl-irel.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF indirect relocation inline functions.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-isa-level.h b/sysdeps/generic/dl-isa-level.h
index b2053e6..a0d88f0 100644
--- a/sysdeps/generic/dl-isa-level.h
+++ b/sysdeps/generic/dl-isa-level.h
@@ -1,6 +1,6 @@
/* Support for reading ISA level in /etc/ld.so.cache files written by
Linux ldconfig. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-lookupcfg.h b/sysdeps/generic/dl-lookupcfg.h
index edc2555..e4a3a5c 100644
--- a/sysdeps/generic/dl-lookupcfg.h
+++ b/sysdeps/generic/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-machine-rel.h b/sysdeps/generic/dl-machine-rel.h
index 1ed472c..f4ebfe3 100644
--- a/sysdeps/generic/dl-machine-rel.h
+++ b/sysdeps/generic/dl-machine-rel.h
@@ -1,5 +1,5 @@
/* ELF dynamic relocation type supported by the architecture.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-machine.h b/sysdeps/generic/dl-machine.h
index bf572ca..ccfd1bd 100644
--- a/sysdeps/generic/dl-machine.h
+++ b/sysdeps/generic/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-minimal-malloc.h b/sysdeps/generic/dl-minimal-malloc.h
index 70ecc51..b2b92bd 100644
--- a/sysdeps/generic/dl-minimal-malloc.h
+++ b/sysdeps/generic/dl-minimal-malloc.h
@@ -1,6 +1,6 @@
/* Minimal malloc implementation for dynamic linker and static
initialization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-mman.h b/sysdeps/generic/dl-mman.h
index bab5335..fff683c 100644
--- a/sysdeps/generic/dl-mman.h
+++ b/sysdeps/generic/dl-mman.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/sys/mman.h. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-new-hash.h b/sysdeps/generic/dl-new-hash.h
index 30f77cf..f7e6945 100644
--- a/sysdeps/generic/dl-new-hash.h
+++ b/sysdeps/generic/dl-new-hash.h
@@ -1,5 +1,5 @@
/* _dl_new_hash for elf symbol lookup
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-osinfo.h b/sysdeps/generic/dl-osinfo.h
index 511e5ba..d4548ae 100644
--- a/sysdeps/generic/dl-osinfo.h
+++ b/sysdeps/generic/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-prop.h b/sysdeps/generic/dl-prop.h
index 1d92920..6d4e62e 100644
--- a/sysdeps/generic/dl-prop.h
+++ b/sysdeps/generic/dl-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties. Generic version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-protected.h b/sysdeps/generic/dl-protected.h
index 68c25be..e81929e 100644
--- a/sysdeps/generic/dl-protected.h
+++ b/sysdeps/generic/dl-protected.h
@@ -1,5 +1,5 @@
/* Support for STV_PROTECTED visibility. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-r_debug.h b/sysdeps/generic/dl-r_debug.h
index 11e4a6c..fcb368c 100644
--- a/sysdeps/generic/dl-r_debug.h
+++ b/sysdeps/generic/dl-r_debug.h
@@ -1,5 +1,5 @@
/* Function to access r_debug structure. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-relocate-ld.h b/sysdeps/generic/dl-relocate-ld.h
index 1fb953b..a127893 100644
--- a/sysdeps/generic/dl-relocate-ld.h
+++ b/sysdeps/generic/dl-relocate-ld.h
@@ -1,5 +1,5 @@
/* Check if dynamic section should be relocated. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-symbol-redir-ifunc.h b/sysdeps/generic/dl-symbol-redir-ifunc.h
index dc02bf7..94442d8 100644
--- a/sysdeps/generic/dl-symbol-redir-ifunc.h
+++ b/sysdeps/generic/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-sysdep.h b/sysdeps/generic/dl-sysdep.h
index 30a696a..d7a90f2 100644
--- a/sysdeps/generic/dl-sysdep.h
+++ b/sysdeps/generic/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-tls.h b/sysdeps/generic/dl-tls.h
index 7703a97..e9480f1 100644
--- a/sysdeps/generic/dl-tls.h
+++ b/sysdeps/generic/dl-tls.h
@@ -1,2 +1,39 @@
-/* There has to be an architecture specific version of this file. */
-#error "architecture-specific version of <dl-tls.h> missing"
+/* TLS definitions for the ELF dynamic linker. Generic version.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
+
+/* Type used for the representation of TLS information in the GOT. */
+typedef struct
+{
+ unsigned long int ti_module;
+ unsigned long int ti_offset;
+} tls_index;
+
+extern void *__tls_get_addr (tls_index *ti);
+
+/* Dynamic thread vector pointers point to the start of each
+ TLS block. */
+#define TLS_DTV_OFFSET 0
+
+/* Static TLS offsets are relative to the unadjusted thread pointer. */
+#define TLS_TP_OFFSET 0
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/generic/dl-tunables-parse.h b/sysdeps/generic/dl-tunables-parse.h
index 92b1731..39a7e7a 100644
--- a/sysdeps/generic/dl-tunables-parse.h
+++ b/sysdeps/generic/dl-tunables-parse.h
@@ -1,5 +1,5 @@
/* Helper functions to handle tunable strings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-unistd.h b/sysdeps/generic/dl-unistd.h
index ddee256..863be5c 100644
--- a/sysdeps/generic/dl-unistd.h
+++ b/sysdeps/generic/dl-unistd.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/unistd.h. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-vdso-setup.h b/sysdeps/generic/dl-vdso-setup.h
index cef6b57..2501ef0 100644
--- a/sysdeps/generic/dl-vdso-setup.h
+++ b/sysdeps/generic/dl-vdso-setup.h
@@ -1,5 +1,5 @@
/* ELF symbol initialization functions for VDSO objects.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dl-vdso.h b/sysdeps/generic/dl-vdso.h
index 8aabcc6..8cf2e5b 100644
--- a/sysdeps/generic/dl-vdso.h
+++ b/sysdeps/generic/dl-vdso.h
@@ -1,5 +1,5 @@
/* ELF symbol resolve functions for VDSO objects.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/dwarf2.h b/sysdeps/generic/dwarf2.h
index 880fab5..cdd0f96 100644
--- a/sysdeps/generic/dwarf2.h
+++ b/sysdeps/generic/dwarf2.h
@@ -1,6 +1,6 @@
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/elf-initfini.h b/sysdeps/generic/elf-initfini.h
index 53a706a..8f3ce99 100644
--- a/sysdeps/generic/elf-initfini.h
+++ b/sysdeps/generic/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/elf-read-prop.h b/sysdeps/generic/elf-read-prop.h
index 1251c31..67853f0 100644
--- a/sysdeps/generic/elf-read-prop.h
+++ b/sysdeps/generic/elf-read-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties in ldconfig. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/elf_machine_sym_no_match.h b/sysdeps/generic/elf_machine_sym_no_match.h
index 623cb88..a8734c4 100644
--- a/sysdeps/generic/elf_machine_sym_no_match.h
+++ b/sysdeps/generic/elf_machine_sym_no_match.h
@@ -1,5 +1,5 @@
/* Function to ignore certain symbol matches for machine-specific reasons.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/elide.h b/sysdeps/generic/elide.h
index 69c8b56..8e616a0 100644
--- a/sysdeps/generic/elide.h
+++ b/sysdeps/generic/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Fallback noop lock elision support.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/eloop-threshold.h b/sysdeps/generic/eloop-threshold.h
deleted file mode 100644
index 49e4ecc..0000000
--- a/sysdeps/generic/eloop-threshold.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Threshold at which to diagnose ELOOP. Generic version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _ELOOP_THRESHOLD_H
-#define _ELOOP_THRESHOLD_H 1
-
-#include <limits.h>
-#include <sys/param.h>
-
-/* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic
- links that can be reliably traversed in the resolution of a
- pathname in the absence of a loop." This makes it a minimum that
- we should certainly accept. But it leaves open the possibility
- that more might sometimes work--just not "reliably".
-
- For example, Linux implements a complex policy whereby there is a
- small limit on the number of direct symlink traversals (a symlink
- to a symlink to a symlink), but larger limit on the total number of
- symlink traversals overall. Hence the SYMLOOP_MAX number should be
- the small one, but the limit library functions enforce on users
- should be the larger one.
-
- So, we use the larger of the reported SYMLOOP_MAX (if any) and our
- own constant MIN_ELOOP_THRESHOLD, below. This constant should be
- large enough that it never rules out a file name and directory tree
- that the underlying system (i.e. calls to 'open' et al) would
- resolve successfully. It should be small enough that actual loops
- are detected without a huge number of iterations. */
-
-#ifndef MIN_ELOOP_THRESHOLD
-# define MIN_ELOOP_THRESHOLD 40
-#endif
-
-/* Return the maximum number of symlink traversals to permit
- before diagnosing ELOOP. */
-static inline unsigned int __attribute__ ((const))
-__eloop_threshold (void)
-{
-#ifdef SYMLOOP_MAX
- const int symloop_max = SYMLOOP_MAX;
-#else
- /* The function is marked 'const' even though we use memory and
- call a function, because sysconf is required to return the
- same value in every call and so it must always be safe to
- call __eloop_threshold exactly once and reuse the value. */
- static long int sysconf_symloop_max;
- if (sysconf_symloop_max == 0)
- sysconf_symloop_max = __sysconf (_SC_SYMLOOP_MAX);
- const unsigned int symloop_max = (sysconf_symloop_max <= 0
- ? _POSIX_SYMLOOP_MAX
- : sysconf_symloop_max);
-#endif
-
- return MAX (symloop_max, MIN_ELOOP_THRESHOLD);
-}
-
-#endif /* eloop-threshold.h */
diff --git a/sysdeps/generic/fast-jitter.h b/sysdeps/generic/fast-jitter.h
index d20052d..a3a56e9 100644
--- a/sysdeps/generic/fast-jitter.h
+++ b/sysdeps/generic/fast-jitter.h
@@ -1,5 +1,5 @@
/* Fallback for fast jitter just return 0.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fd_to_filename.h b/sysdeps/generic/fd_to_filename.h
index 1b2342e..3e60520 100644
--- a/sysdeps/generic/fd_to_filename.h
+++ b/sysdeps/generic/fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/features-time64.h b/sysdeps/generic/features-time64.h
index 4d38b8b..464cd92 100644
--- a/sysdeps/generic/features-time64.h
+++ b/sysdeps/generic/features-time64.h
@@ -1,5 +1,5 @@
/* Features part to handle 64-bit time_t support. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fenv_private.h b/sysdeps/generic/fenv_private.h
index 6df7ab4..cf041eb 100644
--- a/sysdeps/generic/fenv_private.h
+++ b/sysdeps/generic/fenv_private.h
@@ -1,5 +1,5 @@
/* Optimized inline fenv.h functions for libm. Generic version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fix-float-double-convert-nan.h b/sysdeps/generic/fix-float-double-convert-nan.h
index 55c7127..144fa00 100644
--- a/sysdeps/generic/fix-float-double-convert-nan.h
+++ b/sysdeps/generic/fix-float-double-convert-nan.h
@@ -1,5 +1,5 @@
/* Fix for conversion of float NAN to double. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fix-fp-int-compare-invalid.h b/sysdeps/generic/fix-fp-int-compare-invalid.h
index 8f630b8..8850031 100644
--- a/sysdeps/generic/fix-fp-int-compare-invalid.h
+++ b/sysdeps/generic/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. Generic version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fix-fp-int-convert-overflow.h b/sysdeps/generic/fix-fp-int-convert-overflow.h
index 40fef68..133a98e 100644
--- a/sysdeps/generic/fix-fp-int-convert-overflow.h
+++ b/sysdeps/generic/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fix-int-fp-convert-zero.h b/sysdeps/generic/fix-int-fp-convert-zero.h
index ccd42a9..132b4e9 100644
--- a/sysdeps/generic/fix-int-fp-convert-zero.h
+++ b/sysdeps/generic/fix-int-fp-convert-zero.h
@@ -1,5 +1,5 @@
/* Fix for conversion of integer 0 to floating point. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fork.h b/sysdeps/generic/fork.h
index 6e83515..42d4c0e 100644
--- a/sysdeps/generic/fork.h
+++ b/sysdeps/generic/fork.h
@@ -1,5 +1,5 @@
/* System specific fork hooks. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/fpu_control.h b/sysdeps/generic/fpu_control.h
index 1a79414..362adee 100644
--- a/sysdeps/generic/fpu_control.h
+++ b/sysdeps/generic/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. Stub version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c
index f74e702..6c3b74d 100644
--- a/sysdeps/generic/framestate.c
+++ b/sysdeps/generic/framestate.c
@@ -1,5 +1,5 @@
/* __frame_state_for unwinder helper function wrapper.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/gcc-compat.h b/sysdeps/generic/gcc-compat.h
index 4cb468d..7703f53 100644
--- a/sysdeps/generic/gcc-compat.h
+++ b/sysdeps/generic/gcc-compat.h
@@ -1,5 +1,5 @@
/* Macros for checking required GCC compatibility. Generic version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/gccframe.h b/sysdeps/generic/gccframe.h
index c8815d1..2b7ed2c 100644
--- a/sysdeps/generic/gccframe.h
+++ b/sysdeps/generic/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/get-rounding-mode.h b/sysdeps/generic/get-rounding-mode.h
index daee783..eed5367 100644
--- a/sysdeps/generic/get-rounding-mode.h
+++ b/sysdeps/generic/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. Generic version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/getrandom-internal.h b/sysdeps/generic/getrandom-internal.h
new file mode 100644
index 0000000..4872598
--- /dev/null
+++ b/sysdeps/generic/getrandom-internal.h
@@ -0,0 +1,26 @@
+/* Internal definitions for getrandom implementation.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _GETRANDOM_INTERNAL_H
+#define _GETRANDOM_INTERNAL_H
+
+static inline void __getrandom_early_init (_Bool initial)
+{
+}
+
+#endif
diff --git a/sysdeps/generic/gmp-mparam.h b/sysdeps/generic/gmp-mparam.h
index 06f7f96..2c38cbf 100644
--- a/sysdeps/generic/gmp-mparam.h
+++ b/sysdeps/generic/gmp-mparam.h
@@ -1,5 +1,5 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2024 Free Software Foundation, Inc.
+Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/generic/hp-timing-common.h b/sysdeps/generic/hp-timing-common.h
index aa9d710..9e569fe 100644
--- a/sysdeps/generic/hp-timing-common.h
+++ b/sysdeps/generic/hp-timing-common.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/hp-timing.h b/sysdeps/generic/hp-timing.h
index a2e355d..57fce6c 100644
--- a/sysdeps/generic/hp-timing.h
+++ b/sysdeps/generic/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/ifreq.h b/sysdeps/generic/ifreq.h
index d83fe80..d08330e 100644
--- a/sysdeps/generic/ifreq.h
+++ b/sysdeps/generic/ifreq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/ifunc-init.h b/sysdeps/generic/ifunc-init.h
index 537e715..43f7bdd 100644
--- a/sysdeps/generic/ifunc-init.h
+++ b/sysdeps/generic/ifunc-init.h
@@ -1,6 +1,6 @@
/* IFUNC generic definitions.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/generic/internal-signals.h b/sysdeps/generic/internal-signals.h
index 3db100b..1b79e21 100644
--- a/sysdeps/generic/internal-signals.h
+++ b/sysdeps/generic/internal-signals.h
@@ -1,5 +1,5 @@
/* Special use of signals internally. Stub version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
# define __INTERNAL_SIGNALS_H
#include <signal.h>
+#include <internal-sigset.h>
#include <sigsetops.h>
#include <stdbool.h>
#include <stddef.h>
@@ -39,10 +40,32 @@ clear_internal_signals (sigset_t *set)
{
}
-typedef sigset_t internal_sigset_t;
-
#define internal_sigemptyset(__s) __sigemptyset (__s)
+#define internal_sigfillset(__s) __sigfillset (__s)
#define internal_sigaddset(__s, __i) __sigaddset (__s, __i)
#define internal_sigprocmask(__h, __s, __o) __sigprocmask (__h, __s, __o)
+static inline void
+internal_signal_block_all (internal_sigset_t *oset)
+{
+ internal_sigset_t set;
+ internal_sigfillset (&set);
+ internal_sigprocmask (SIG_BLOCK, &set, oset);
+}
+
+static inline void
+internal_signal_restore_set (const internal_sigset_t *set)
+{
+ internal_sigprocmask (SIG_SETMASK, set, NULL);
+}
+
+static inline void
+internal_signal_unblock_signal (int sig)
+{
+ internal_sigset_t set;
+ internal_sigemptyset (&set);
+ internal_sigaddset (&set, sig);
+ internal_sigprocmask (SIG_UNBLOCK, &set, NULL);
+}
+
#endif /* __INTERNAL_SIGNALS_H */
diff --git a/sysdeps/generic/internal-sigset.h b/sysdeps/generic/internal-sigset.h
new file mode 100644
index 0000000..6ebcb86
--- /dev/null
+++ b/sysdeps/generic/internal-sigset.h
@@ -0,0 +1,26 @@
+/* Internal sigset_t definition.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _INTERNAL_SIGSET_H
+#define _INTERNAL_SIGSET_H
+
+#include <signal.h>
+
+typedef sigset_t internal_sigset_t;
+
+#endif
diff --git a/sysdeps/generic/ldbl-classify-compat.h b/sysdeps/generic/ldbl-classify-compat.h
index e6721c6..231b982 100644
--- a/sysdeps/generic/ldbl-classify-compat.h
+++ b/sysdeps/generic/ldbl-classify-compat.h
@@ -1,6 +1,6 @@
/* Specify whether there should be compat symbol aliases for some
classification functions. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
index 7dafa79..7bc8788 100644
--- a/sysdeps/generic/ldconfig.h
+++ b/sysdeps/generic/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 259ce2e..74025f1 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -88,6 +88,18 @@ dl_relocate_ld (const struct link_map *l)
#define D_PTR(map, i) \
((map)->i->d_un.d_ptr + (dl_relocate_ld (map) ? 0 : (map)->l_addr))
+/* Returns the soname string if the link map has a DT_SONAME tag, or
+ NULL if it does not. */
+static inline const char *
+l_soname (const struct link_map *l)
+{
+ if (l->l_info[DT_SONAME] == NULL)
+ return NULL;
+ else
+ return ((const char *) D_PTR (l, l_info[DT_STRTAB])
+ + l->l_info[DT_SONAME]->d_un.d_val);
+}
+
/* Result of the lookup functions and how to retrieve the base address. */
typedef struct link_map *lookup_t;
#define LOOKUP_VALUE(map) map
@@ -264,6 +276,12 @@ struct audit_ifaces
struct audit_ifaces *next;
};
+enum dl_readonly_area_error_type
+{
+ dl_readonly_area_rdonly,
+ dl_readonly_area_writable,
+ dl_readonly_area_not_found,
+};
/* Test whether given NAME matches any of the names of the given object. */
extern int _dl_name_match_p (const char *__name, const struct link_map *__map)
@@ -350,8 +368,6 @@ struct rtld_global
size_t n_elements;
void (*free) (void *);
} _ns_unique_sym_table;
- /* Keep track of changes to each namespace' list. */
- struct r_debug_extended _ns_debug;
} _dl_ns[DL_NNS];
/* One higher than index of last used namespace. */
EXTERN size_t _dl_nns;
@@ -392,20 +408,6 @@ struct rtld_global
/* List of search directories. */
EXTERN struct r_search_path_elem *_dl_all_dirs;
- /* Structure describing the dynamic linker itself. */
- EXTERN struct link_map _dl_rtld_map;
-#ifdef SHARED
- /* Used to store the audit information for the link map of the
- dynamic loader. */
- struct auditstate _dl_rtld_auditstate[DL_NNS];
-#endif
-
-#if !PTHREAD_IN_LIBC && defined SHARED \
- && defined __rtld_lock_default_lock_recursive
- EXTERN void (*_dl_rtld_lock_recursive) (void *);
- EXTERN void (*_dl_rtld_unlock_recursive) (void *);
-#endif
-
/* Get architecture specific definitions. */
#define PROCINFO_DECL
#ifndef PROCINFO_CLASS
@@ -413,13 +415,6 @@ struct rtld_global
#endif
#include <dl-procruntime.c>
-#if !PTHREAD_IN_LIBC
- /* If loading a shared object requires that we make the stack executable
- when it was not, we do it by calling this function.
- It returns an errno code or zero on success. */
- EXTERN int (*_dl_make_stack_executable_hook) (void **);
-#endif
-
/* Prevailing state of the stack, PF_X indicating it's executable. */
EXTERN ElfW(Word) _dl_stack_flags;
@@ -685,6 +680,10 @@ struct rtld_global_ro
dlopen. */
int (*_dl_find_object) (void *, struct dl_find_object *);
+ /* Implementation of _dl_readonly_area, used in fortify routines to check
+ if memory area is within a read-only ELF segment. */
+ enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t);
+
/* Dynamic linker operations used after static dlopen. */
const struct dlfcn_hook *_dl_dlfcn_hook;
@@ -716,17 +715,23 @@ extern const ElfW(Phdr) *_dl_phdr;
extern size_t _dl_phnum;
#endif
-#if PTHREAD_IN_LIBC
-/* This function changes the permissions of all stacks (not just those
- of the main stack). */
-int _dl_make_stacks_executable (void **stack_endp) attribute_hidden;
-#else
-/* This is the initial value of GL(dl_make_stack_executable_hook).
- A threads library can change it. The ld.so implementation changes
- the permissions of the main stack only. */
-extern int _dl_make_stack_executable (void **stack_endp);
-rtld_hidden_proto (_dl_make_stack_executable)
-#endif
+/* Possible values for the glibc.rtld.execstack tunable. */
+enum stack_tunable_mode
+ {
+ /* Do not allow executable stacks, even if program requires it. */
+ stack_tunable_mode_disable = 0,
+ /* Follows either ABI requirement, or the PT_GNU_STACK value. */
+ stack_tunable_mode_enable = 1,
+ /* Always enable an executable stack. */
+ stack_tunable_mode_force = 2
+ };
+
+void _dl_handle_execstack_tunable (void) attribute_hidden;
+
+/* This function changes the permission of the memory region pointed
+ by STACK_ENDP to executable and update the internal memory protection
+ flags for future thread stack creation. */
+int _dl_make_stack_executable (const void *stack_endp) attribute_hidden;
/* Variable pointing to the end of the stack (or close to it). This value
must be constant over the runtime of the application. Some programs
@@ -913,6 +918,11 @@ int _dl_catch_exception (struct dl_exception *exception,
void (*operate) (void *), void *args);
rtld_hidden_proto (_dl_catch_exception)
+/* Search NSID for a map with NAME. If no such map is already loaded,
+ return NULL. */
+struct link_map *_dl_lookup_map (Lmid_t nsid, const char *name)
+ attribute_hidden;
+
/* Open the shared object NAME and map in its segments.
LOADER's DT_RPATH is used in searching for NAME.
If the object is already opened, returns its existing map. */
@@ -921,6 +931,14 @@ extern struct link_map *_dl_map_object (struct link_map *loader,
int type, int trace_mode, int mode,
Lmid_t nsid) attribute_hidden;
+/* Like _dl_map_object, but assumes that NAME has not been loaded yet
+ (_dl_lookup_map returned NULL). */
+struct link_map *_dl_map_new_object (struct link_map *loader,
+ const char *name,
+ int type, int trace_mode, int mode,
+ Lmid_t nsid) attribute_hidden;
+
+
/* Call _dl_map_object on the dependencies of MAP, and set up
MAP->l_searchlist. PRELOADS points to a vector of NPRELOADS previously
loaded objects that will be inserted into MAP->l_searchlist after MAP
@@ -1014,6 +1032,13 @@ extern void _dl_relocate_object (struct link_map *map,
int reloc_mode, int consider_profiling)
attribute_hidden;
+/* Perform relocation, but do not apply RELRO. Does not check
+ L->relocated. Otherwise the same as _dl_relocate_object. */
+void _dl_relocate_object_no_relro (struct link_map *map,
+ struct r_scope_elem *scope[],
+ int reloc_mode, int consider_profiling)
+ attribute_hidden;
+
/* Protect PT_GNU_RELRO area. */
extern void _dl_protect_relro (struct link_map *map) attribute_hidden;
@@ -1062,15 +1087,29 @@ extern void _dl_debug_state (void);
rtld_hidden_proto (_dl_debug_state)
/* Initialize `struct r_debug_extended' for the namespace NS. LDBASE
- is the run-time load address of the dynamic linker, to be put in the
- `r_ldbase' member. Return the address of the structure. */
+ is the run-time load address of the dynamic linker, to be put in
+ the `r_ldbase' member.
+
+ Return the address of the r_debug structure for the namespace.
+ This is not merely a convenience or optimization, but it is
+ necessary for the LIBC_PROBE Systemtap/debugger probes to work
+ reliably: direct variable access can create probes that tools
+ cannot consume. */
extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
attribute_hidden;
+/* This is called after relocation processing to handle a potential
+ copy relocation for _r_debug. */
+void _dl_debug_post_relocate (struct link_map *main_map) attribute_hidden;
+
/* Update the `r_map' member and return the address of `struct r_debug'
of the namespace NS. */
extern struct r_debug *_dl_debug_update (Lmid_t ns) attribute_hidden;
+/* Update R->r_state to STATE and notify the debugger by calling
+ _dl_debug_state. */
+void _dl_debug_change_state (struct r_debug *r, int state) attribute_hidden;
+
/* Initialize the basic data structure for the search paths. SOURCE
is either "LD_LIBRARY_PATH" or "--library-path".
GLIBC_HWCAPS_PREPEND adds additional glibc-hwcaps subdirectories to
@@ -1219,6 +1258,10 @@ extern struct link_map * _dl_get_dl_main_map (void) attribute_hidden;
/* Find origin of the executable. */
extern const char *_dl_get_origin (void) attribute_hidden;
+/* Return the canonalized path name from the opened file descriptor FD,
+ or NULL otherwise. */
+extern char * _dl_canonicalize (int fd) attribute_hidden;
+
/* Count DSTs. */
extern size_t _dl_dst_count (const char *name) attribute_hidden;
@@ -1276,6 +1319,10 @@ extern void _dl_show_scope (struct link_map *new, int from)
extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr);
rtld_hidden_proto (_dl_find_dso_for_object)
+extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr,
+ size_t size)
+ attribute_hidden;
+
/* Initialization which is normally done by the dynamic linker. */
extern void _dl_non_dynamic_init (void)
attribute_hidden;
@@ -1322,12 +1369,26 @@ rtld_active (void)
return GLRO(dl_init_all_dirs) != NULL;
}
+/* Pre-allocated link map for the dynamic linker itself. */
+extern struct link_map _dl_rtld_map attribute_hidden;
+
+/* Used to store the audit information for the link map of the
+ dynamic loader. */
+extern struct auditstate _dl_rtld_auditstate[DL_NNS] attribute_hidden;
+
+/* Returns true of L is the link map of the dynamic linker itself. */
+static inline bool
+is_rtld_link_map (const struct link_map *l)
+{
+ return l == &_dl_rtld_map;
+}
+
static inline struct auditstate *
link_map_audit_state (struct link_map *l, size_t index)
{
- if (l == &GL (dl_rtld_map))
+ if (is_rtld_link_map (l))
/* The auditstate array is stored separately. */
- return &GL (dl_rtld_auditstate) [index];
+ return _dl_rtld_auditstate + index;
else
{
/* The auditstate array follows the link map in memory. */
@@ -1388,6 +1449,13 @@ void DL_ARCH_FIXUP_ATTRIBUTE _dl_audit_pltexit (struct link_map *l,
attribute_hidden;
#else /* !SHARED */
+/* No special dynamic linker link map in static builds. */
+static inline bool
+is_rtld_link_map (const struct link_map *l)
+{
+ return false;
+}
+
static inline void
_dl_audit_objclose (struct link_map *l)
{
diff --git a/sysdeps/generic/libc-lock-arch.h b/sysdeps/generic/libc-lock-arch.h
index e6b763f..e8691ac 100644
--- a/sysdeps/generic/libc-lock-arch.h
+++ b/sysdeps/generic/libc-lock-arch.h
@@ -1,5 +1,5 @@
/* Private libc-internal arch-specific definitions. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-lock.h b/sysdeps/generic/libc-lock.h
index ea62912..fafaf8c 100644
--- a/sysdeps/generic/libc-lock.h
+++ b/sysdeps/generic/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-mmap.h b/sysdeps/generic/libc-mmap.h
index 6ab9bde..b386f9a 100644
--- a/sysdeps/generic/libc-mmap.h
+++ b/sysdeps/generic/libc-mmap.h
@@ -1,5 +1,5 @@
/* Internal logic for dealing with mmap quirks.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-mtag.h b/sysdeps/generic/libc-mtag.h
index f1fd12d..9be5a3f 100644
--- a/sysdeps/generic/libc-mtag.h
+++ b/sysdeps/generic/libc-mtag.h
@@ -1,5 +1,5 @@
/* libc-internal interface for tagged (colored) memory support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-start.h b/sysdeps/generic/libc-start.h
index e0151d8..0b107cf 100644
--- a/sysdeps/generic/libc-start.h
+++ b/sysdeps/generic/libc-start.h
@@ -1,5 +1,5 @@
/* Generic definitions for libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-symver.h b/sysdeps/generic/libc-symver.h
index 7dd4762..0725e0c 100644
--- a/sysdeps/generic/libc-symver.h
+++ b/sysdeps/generic/libc-symver.h
@@ -1,5 +1,5 @@
/* Symbol version management.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libc-tsd.h b/sysdeps/generic/libc-tsd.h
deleted file mode 100644
index ac0e99e..0000000
--- a/sysdeps/generic/libc-tsd.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* libc-internal interface for thread-specific data. Stub or TLS version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _GENERIC_LIBC_TSD_H
-#define _GENERIC_LIBC_TSD_H 1
-
-/* This file defines the following macros for accessing a small fixed
- set of thread-specific `void *' data used only internally by libc.
-
- __libc_tsd_define(CLASS, TYPE, KEY) -- Define or declare a datum with TYPE
- for KEY. CLASS can be `static' for
- keys used in only one source file,
- empty for global definitions, or
- `extern' for global declarations.
- __libc_tsd_address(TYPE, KEY) -- Return the `TYPE *' pointing to
- the current thread's datum for KEY.
- __libc_tsd_get(TYPE, KEY) -- Return the `TYPE' datum for KEY.
- __libc_tsd_set(TYPE, KEY, VALUE) -- Set the datum for KEY to VALUE.
-
- The set of available KEY's will usually be provided as an enum,
- and contains (at least):
- _LIBC_TSD_KEY_MALLOC
- _LIBC_TSD_KEY_DL_ERROR
- _LIBC_TSD_KEY_RPC_VARS
- All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros.
- Some implementations may not provide any enum at all and instead
- using string pasting in the macros. */
-
-#include <tls.h>
-
-/* When full support for __thread variables is available, this interface is
- just a trivial wrapper for it. Without TLS, this is the generic/stub
- implementation for wholly single-threaded systems.
-
- We don't define an enum for the possible key values, because the KEYs
- translate directly into variables by macro magic. */
-
-#define __libc_tsd_define(CLASS, TYPE, KEY) \
- CLASS __thread TYPE __libc_tsd_##KEY attribute_tls_model_ie;
-
-#define __libc_tsd_address(TYPE, KEY) (&__libc_tsd_##KEY)
-#define __libc_tsd_get(TYPE, KEY) (__libc_tsd_##KEY)
-#define __libc_tsd_set(TYPE, KEY, VALUE) (__libc_tsd_##KEY = (VALUE))
-
-#endif /* libc-tsd.h */
diff --git a/sysdeps/generic/libc_start_call_main.h b/sysdeps/generic/libc_start_call_main.h
index 02e5ab0..6bcc8d5 100644
--- a/sysdeps/generic/libc_start_call_main.h
+++ b/sysdeps/generic/libc_start_call_main.h
@@ -1,5 +1,5 @@
/* Invoking main from __libc_start. Generic version without unwinding.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libm-alias-double.h b/sysdeps/generic/libm-alias-double.h
index e1818f1..b35936b 100644
--- a/sysdeps/generic/libm-alias-double.h
+++ b/sysdeps/generic/libm-alias-double.h
@@ -1,5 +1,5 @@
/* Define aliases for libm double functions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libm-alias-float.h b/sysdeps/generic/libm-alias-float.h
index e69f964..5f26c99 100644
--- a/sysdeps/generic/libm-alias-float.h
+++ b/sysdeps/generic/libm-alias-float.h
@@ -1,5 +1,5 @@
/* Define aliases for libm float functions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libm-alias-float128.h b/sysdeps/generic/libm-alias-float128.h
index 1e086d9..9504074 100644
--- a/sysdeps/generic/libm-alias-float128.h
+++ b/sysdeps/generic/libm-alias-float128.h
@@ -1,5 +1,5 @@
/* Define aliases for libm _Float128 functions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libm-alias-ldouble.h b/sysdeps/generic/libm-alias-ldouble.h
index 83ecaab..ba904f1 100644
--- a/sysdeps/generic/libm-alias-ldouble.h
+++ b/sysdeps/generic/libm-alias-ldouble.h
@@ -1,5 +1,5 @@
/* Define aliases for libm long double functions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/libm-test-ulps b/sysdeps/generic/libm-test-ulps
deleted file mode 100644
index c96d364..0000000
--- a/sysdeps/generic/libm-test-ulps
+++ /dev/null
@@ -1,5 +0,0 @@
-# File with deltas for math/libm-test
-# This file is the fallback and contains
-# no data
-# You can create a new file with e.g. `test-double -u'
-# followed by `gen-libm-test.py -u ULPs -n'.
diff --git a/sysdeps/generic/libm-test-ulps-name b/sysdeps/generic/libm-test-ulps-name
deleted file mode 100644
index 8470d61..0000000
--- a/sysdeps/generic/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Generic
diff --git a/sysdeps/generic/machine-gmon.h b/sysdeps/generic/machine-gmon.h
index 86a11eb..20babbb 100644
--- a/sysdeps/generic/machine-gmon.h
+++ b/sysdeps/generic/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. Generic GCC 2 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/machine-lock.h b/sysdeps/generic/machine-lock.h
index f3e49da..5b452b3 100644
--- a/sysdeps/generic/machine-lock.h
+++ b/sysdeps/generic/machine-lock.h
@@ -1,5 +1,5 @@
/* Machine-specific definition for spin locks. Stub version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/machine-sp.h b/sysdeps/generic/machine-sp.h
index 14afbc3..f560f8d 100644
--- a/sysdeps/generic/machine-sp.h
+++ b/sysdeps/generic/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. Stub version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-alignment.h b/sysdeps/generic/malloc-alignment.h
index f1d3b3d..f7d24a9 100644
--- a/sysdeps/generic/malloc-alignment.h
+++ b/sysdeps/generic/malloc-alignment.h
@@ -1,5 +1,5 @@
/* Define MALLOC_ALIGNMENT for malloc. Generic version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-hugepages.c b/sysdeps/generic/malloc-hugepages.c
index 31ecfd6..656ca0c 100644
--- a/sysdeps/generic/malloc-hugepages.c
+++ b/sysdeps/generic/malloc-hugepages.c
@@ -1,5 +1,5 @@
/* Huge Page support. Generic implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-hugepages.h b/sysdeps/generic/malloc-hugepages.h
index 0a9758e..076f03d 100644
--- a/sysdeps/generic/malloc-hugepages.h
+++ b/sysdeps/generic/malloc-hugepages.h
@@ -1,5 +1,5 @@
/* Malloc huge page support. Generic implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-machine.h
index b488313..1bbe03b 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/generic/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-size.h b/sysdeps/generic/malloc-size.h
index dcfccce..c9eb944 100644
--- a/sysdeps/generic/malloc-size.h
+++ b/sysdeps/generic/malloc-size.h
@@ -1,6 +1,6 @@
/* Define INTERNAL_SIZE_T, SIZE_SZ, MALLOC_ALIGNMENT and MALLOC_ALIGN_MASK
for malloc.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/malloc-sysdep.h b/sysdeps/generic/malloc-sysdep.h
index 9139acb..6159619 100644
--- a/sysdeps/generic/malloc-sysdep.h
+++ b/sysdeps/generic/malloc-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific malloc support functions. Generic version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-barriers.h b/sysdeps/generic/math-barriers.h
index e3ed3e5..81f9eb0 100644
--- a/sysdeps/generic/math-barriers.h
+++ b/sysdeps/generic/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. Generic version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-nan-payload-double.h b/sysdeps/generic/math-nan-payload-double.h
index 3594ad0..8d3a8da 100644
--- a/sysdeps/generic/math-nan-payload-double.h
+++ b/sysdeps/generic/math-nan-payload-double.h
@@ -1,5 +1,5 @@
/* NaN payload handling for double.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-nan-payload-float.h b/sysdeps/generic/math-nan-payload-float.h
index 95af576..0b2afb2 100644
--- a/sysdeps/generic/math-nan-payload-float.h
+++ b/sysdeps/generic/math-nan-payload-float.h
@@ -1,5 +1,5 @@
/* NaN payload handling for float.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-narrow-alias-float128.h b/sysdeps/generic/math-narrow-alias-float128.h
index cb8b967..0314278 100644
--- a/sysdeps/generic/math-narrow-alias-float128.h
+++ b/sysdeps/generic/math-narrow-alias-float128.h
@@ -1,5 +1,5 @@
/* Helper macros for functions returning a narrower type. F128-specific.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-narrow-alias.h b/sysdeps/generic/math-narrow-alias.h
index e318e10..6444c71 100644
--- a/sysdeps/generic/math-narrow-alias.h
+++ b/sysdeps/generic/math-narrow-alias.h
@@ -1,5 +1,5 @@
/* Alias macros for functions returning a narrower type.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-arch.h b/sysdeps/generic/math-tests-arch.h
index 482f8df..6faccf7 100644
--- a/sysdeps/generic/math-tests-arch.h
+++ b/sysdeps/generic/math-tests-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for math tests.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-exceptions.h b/sysdeps/generic/math-tests-exceptions.h
index 1a32fa9..7cd5b3e 100644
--- a/sysdeps/generic/math-tests-exceptions.h
+++ b/sysdeps/generic/math-tests-exceptions.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: support for exceptions. Generic version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-rounding.h b/sysdeps/generic/math-tests-rounding.h
index da19f37..a80e629 100644
--- a/sysdeps/generic/math-tests-rounding.h
+++ b/sysdeps/generic/math-tests-rounding.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: rounding mode support. Generic version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-snan-cast.h b/sysdeps/generic/math-tests-snan-cast.h
index 239465f..37f4a04 100644
--- a/sysdeps/generic/math-tests-snan-cast.h
+++ b/sysdeps/generic/math-tests-snan-cast.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: casts of sNaN values. Generic version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-snan-payload.h b/sysdeps/generic/math-tests-snan-payload.h
index 12a07cc..48d27bb 100644
--- a/sysdeps/generic/math-tests-snan-payload.h
+++ b/sysdeps/generic/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. Generic version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-snan.h b/sysdeps/generic/math-tests-snan.h
index 7c0794e..94367cc 100644
--- a/sysdeps/generic/math-tests-snan.h
+++ b/sysdeps/generic/math-tests-snan.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN support. Generic version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-trap-force.h b/sysdeps/generic/math-tests-trap-force.h
index 5c643a6..e7eeb52 100644
--- a/sysdeps/generic/math-tests-trap-force.h
+++ b/sysdeps/generic/math-tests-trap-force.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for setting exception flags
without causing enabled traps. Generic version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests-trap.h b/sysdeps/generic/math-tests-trap.h
index da2087e..324e626 100644
--- a/sysdeps/generic/math-tests-trap.h
+++ b/sysdeps/generic/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
Generic version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h
index 53194ae..5a39fcf 100644
--- a/sysdeps/generic/math-tests.h
+++ b/sysdeps/generic/math-tests.h
@@ -1,5 +1,5 @@
/* Configuration for math tests. Generic version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h
index b82ae37..f03aea1 100644
--- a/sysdeps/generic/math-type-macros-double.h
+++ b/sysdeps/generic/math-type-macros-double.h
@@ -1,5 +1,5 @@
/* Helper macros for double variants of type generic functions of libm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,8 @@
#define M_STRTO_NAN __strtod_nan
#define M_USE_BUILTIN(c) USE_ ##c ##_BUILTIN
+#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUND (RM)
+
#include <libm-alias-double.h>
#include <math-nan-payload-double.h>
diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h
index 23d9a75..445535a 100644
--- a/sysdeps/generic/math-type-macros-float.h
+++ b/sysdeps/generic/math-type-macros-float.h
@@ -1,5 +1,5 @@
/* Helper macros for float variants of type generic functions of libm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,6 +30,8 @@
/* GNU extension float constant macros. */
#define M_MLIT(c) c ## f
+#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDF (RM)
+
#include <libm-alias-float.h>
#include <math-nan-payload-float.h>
diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h
index f23038b..f64c1d3 100644
--- a/sysdeps/generic/math-type-macros-float128.h
+++ b/sysdeps/generic/math-type-macros-float128.h
@@ -1,5 +1,5 @@
/* Helper macros for _Float128 variants of type generic functions of libm.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,8 @@
#ifndef _MATH_TYPE_MACROS_FLOAT128
#define _MATH_TYPE_MACROS_FLOAT128
+#include <fenv_private.h>
+
#define M_LIT(c) __f128 (c)
#define M_PFX FLT128
#define M_SUF(c) c ## f128
@@ -30,6 +32,13 @@
#define M_MLIT(c) c ## f128
+/* fenv_private.h may not define SET_RESTORE_ROUNDF128. */
+#ifdef SET_RESTORE_ROUNDF128
+# define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDF128 (RM)
+#else
+# define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDL (RM)
+#endif
+
#include <libm-alias-float128.h>
#include <math-nan-payload-float128.h>
diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h
index d92bd34..00309cb 100644
--- a/sysdeps/generic/math-type-macros-ldouble.h
+++ b/sysdeps/generic/math-type-macros-ldouble.h
@@ -1,5 +1,5 @@
/* Helper macros for long double variants of type generic functions of libm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,8 @@
#define M_STRTO_NAN __strtold_nan
#define M_USE_BUILTIN(c) USE_ ##c ##L_BUILTIN
+#define M_SET_RESTORE_ROUND(RM) SET_RESTORE_ROUNDL (RM)
+
#include <libm-alias-ldouble.h>
#include <math-nan-payload-ldouble.h>
diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h
index 6653c67..21c5fee 100644
--- a/sysdeps/generic/math-type-macros.h
+++ b/sysdeps/generic/math-type-macros.h
@@ -1,5 +1,5 @@
/* Helper macros for type generic function implementations within libm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,6 +33,7 @@
M_STRTO_NAN - Resolves to the internal libc function which
converts a string into the appropriate FLOAT nan
value.
+ M_SET_RESTORE_ROUND - Resolves to a SET_RESTORE_ROUND call for M_TYPE.
declare_mgen_alias(from,to)
This exposes the appropriate symbol(s) for a
diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h
index 63728e0..b373bde 100644
--- a/sysdeps/generic/math-use-builtins.h
+++ b/sysdeps/generic/math-use-builtins.h
@@ -1,5 +1,5 @@
/* Using math gcc builtins instead of generic implementation. Generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math_private_calls.h b/sysdeps/generic/math_private_calls.h
index cd9e35f..62ced4e 100644
--- a/sysdeps/generic/math_private_calls.h
+++ b/sysdeps/generic/math_private_calls.h
@@ -1,5 +1,5 @@
/* Private function declarations for libm.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/math_uint128.h b/sysdeps/generic/math_uint128.h
new file mode 100644
index 0000000..56d0fba
--- /dev/null
+++ b/sysdeps/generic/math_uint128.h
@@ -0,0 +1,150 @@
+/* Internal 128 bit int support.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_INT128_H
+#define _MATH_INT128_H
+
+/* Limited support for internal 128 bit integer, used on some math
+ implementations. It uses compiler builtin type if supported, otherwise
+ it is emulated. Only unsigned and some operations are currently supported:
+
+ - u128_t: the 128 bit unsigned type.
+ - u128_high: return the high part of the number.
+ - u128_low: return the low part of the number.
+ - u128_from_u64: create a 128 bit number from a 64 bit one.
+ - u128_mul: multiply two 128 bit numbers.
+ - u128_add: add two 128 bit numbers.
+ - u128_lshift: left shift a number.
+ - u128_rshift: right shift a number.
+ */
+
+#if defined __BITINT_MAXWIDTH__ && __BITINT_MAXWIDTH__ >= 128
+typedef unsigned _BitInt(128) u128;
+# define __MATH_INT128_BUILTIN_TYPE 1
+#elif defined __SIZEOF_INT128__
+typedef unsigned __int128 u128;
+# define __MATH_INT128_BUILTIN_TYPE 1
+#else
+# define __MATH_INT128_BUILTIN_TYPE 0
+#endif
+
+#if __MATH_INT128_BUILTIN_TYPE
+# define u128_high(__x) (uint64_t)((__x) >> 64)
+# define u128_low(__x) (uint64_t)(__x)
+# define u128_from_u64(__x) (u128)(__x)
+# define u128_mul(__x, __y) (__x) * (__y)
+# define u128_add(__x, __y) (__x) + (__y)
+# define u128_lshift(__x, __y) (__x) << (__y)
+# define u128_rshift(__x, __y) (__x) >> (__y)
+#else
+typedef struct
+{
+ uint64_t low;
+ uint64_t high;
+} u128;
+
+# define u128_high(__x) (__x).high
+# define u128_low(__x) (__x).low
+# define u128_from_u64(__x) (u128){.low = (__x), .high = 0}
+
+# define MASK32 (UINT64_C(0xffffffff))
+
+static u128 u128_add (u128 x, u128 y)
+{
+ bool carry = x.low + y.low < x.low;
+ return (u128) { .high = x.high + y.high + carry, .low = x.low + y.low };
+}
+
+static u128 u128_lshift (u128 x, unsigned int n)
+{
+ switch (n)
+ {
+ case 0: return x;
+ case 1 ... 63: return (u128) { .high = (x.high << n) | (x.low >> (64 - n)),
+ .low = x.low << n };
+ case 64 ...127: return (u128) { .high = x.low << (n - 64), .low = 0};
+ default: return (u128) { .high = 0, .low = 0 };
+ }
+}
+
+static u128 u128_rshift (u128 x, unsigned int n)
+{
+ switch (n)
+ {
+ case 0: return x;
+ case 1 ... 63: return (u128) { .high = x.high >> n,
+ .low = (x.high << (64 - n)) | (x.low >> n) };
+ case 64 ...127: return (u128) { .high = 0, .low = x.high >> (n - 64) };
+ default: return (u128) { .high = 0, .low = 0 };
+ }
+}
+
+static u128 u128_mul (u128 x, u128 y)
+{
+ if (x.high == 0 && y.high == 0)
+ {
+ uint64_t x0 = x.low & MASK32;
+ uint64_t x1 = x.low >> 32;
+ uint64_t y0 = y.low & MASK32;
+ uint64_t y1 = y.low >> 32;
+ u128 x0y0 = { .high = 0, .low = x0 * y0 };
+ u128 x0y1 = { .high = 0, .low = x0 * y1 };
+ u128 x1y0 = { .high = 0, .low = x1 * y0 };
+ u128 x1y1 = { .high = x1 * y1, .low = 0 };
+ /* x0y0 + ((x0y1 + x1y0) << 32) + x1y1 */
+ return u128_add (u128_add (x0y0,
+ u128_lshift (u128_add (x0y1, x1y0),
+ 32)),
+ x1y1);
+ }
+ else
+ {
+ uint64_t x0 = x.low & MASK32;
+ uint64_t x1 = x.low >> 32;
+ uint64_t x2 = x.high & MASK32;
+ uint64_t x3 = x.high >> 32;
+ uint64_t y0 = y.low & MASK32;
+ uint64_t y1 = y.low >> 32;
+ uint64_t y2 = y.high & MASK32;
+ uint64_t y3 = y.high >> 32;
+ u128 x0y0 = { .high = 0, .low = x0 * y0 };
+ u128 x0y1 = { .high = 0, .low = x0 * y1 };
+ u128 x0y2 = { .high = 0, .low = x0 * y2 };
+ u128 x0y3 = { .high = 0, .low = x0 * y3 };
+ u128 x1y0 = { .high = 0, .low = x1 * y0 };
+ u128 x1y1 = { .high = 0, .low = x1 * y1 };
+ u128 x1y2 = { .high = 0, .low = x1 * y2 };
+ u128 x2y0 = { .high = 0, .low = x2 * y0 };
+ u128 x2y1 = { .high = 0, .low = x2 * y1 };
+ u128 x3y0 = { .high = 0, .low = x3 * y0 };
+ /* x0y0 + ((x0y1 + x1y0) << 32) + ((x0y2 + x1y1 + x2y0) << 64) +
+ ((x0y3 + x1y2 + x2y1 + x3y0) << 96) */
+ u128 r0 = u128_add (x0y0,
+ u128_lshift (u128_add (x0y1, x1y0),
+ 32));
+ u128 r1 = u128_add (u128_lshift (u128_add (u128_add (x0y2, x1y1), x2y0),
+ 64),
+ u128_lshift (u128_add (u128_add (x0y3, x1y2),
+ u128_add (x2y1, x3y0)),
+ 96));
+ return u128_add (r0, r1);
+ }
+}
+#endif /* __SIZEOF_INT128__ */
+
+#endif
diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h
index c81b600..9114c8d 100644
--- a/sysdeps/generic/memcopy.h
+++ b/sysdeps/generic/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Generic C version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/memswap.h b/sysdeps/generic/memswap.h
index 49b9a3d..6c3c1f9 100644
--- a/sysdeps/generic/memswap.h
+++ b/sysdeps/generic/memswap.h
@@ -1,5 +1,5 @@
/* Swap the content of two memory blocks, overlap is NOT handled.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/min-eloop-threshold.h b/sysdeps/generic/min-eloop-threshold.h
new file mode 100644
index 0000000..2ac12ed
--- /dev/null
+++ b/sysdeps/generic/min-eloop-threshold.h
@@ -0,0 +1,42 @@
+/* Minimum threshold at which to diagnose ELOOP. Generic version.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MIN_ELOOP_THRESHOLD_H
+#define _MIN_ELOOP_THRESHOLD_H 1
+
+/* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic
+ links that can be reliably traversed in the resolution of a
+ pathname in the absence of a loop." This makes it a minimum that
+ we should certainly accept. But it leaves open the possibility
+ that more might sometimes work--just not "reliably".
+
+ For example, Linux implements a complex policy whereby there is a
+ small limit on the number of direct symlink traversals (a symlink
+ to a symlink to a symlink), but larger limit on the total number of
+ symlink traversals overall. Hence the SYMLOOP_MAX number should be
+ the small one, but the limit library functions enforce on users
+ should be the larger one.
+
+ This constant should be large enough that it never rules out a file
+ name and directory tree that the underlying system (i.e. calls to 'open'
+ et al) would resolve successfully. It should be small enough that
+ actual loops are detected without a huge number of iterations. */
+
+#define MIN_ELOOP_THRESHOLD 40
+
+#endif
diff --git a/sysdeps/generic/mremap-failure.h b/sysdeps/generic/mremap-failure.h
index bc0d476..f9271c7 100644
--- a/sysdeps/generic/mremap-failure.h
+++ b/sysdeps/generic/mremap-failure.h
@@ -1,5 +1,5 @@
/* mremap failure handling. Generic version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/nan-high-order-bit.h b/sysdeps/generic/nan-high-order-bit.h
index 5b6ca94..beb1fcd 100644
--- a/sysdeps/generic/nan-high-order-bit.h
+++ b/sysdeps/generic/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. Generic version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/net/if.h b/sysdeps/generic/net/if.h
index 111eb99..82238c2 100644
--- a/sysdeps/generic/net/if.h
+++ b/sysdeps/generic/net/if.h
@@ -1,5 +1,5 @@
/* net/if.h -- declarations for inquiring about network interfaces
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/netinet/if_ether.h b/sysdeps/generic/netinet/if_ether.h
index ba60abe..b746726 100644
--- a/sysdeps/generic/netinet/if_ether.h
+++ b/sysdeps/generic/netinet/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/netinet/in_systm.h b/sysdeps/generic/netinet/in_systm.h
index bd0a47f..cd09598 100644
--- a/sysdeps/generic/netinet/in_systm.h
+++ b/sysdeps/generic/netinet/in_systm.h
@@ -1,5 +1,5 @@
/* System specific type definitions for networking code.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h
index 261ed42..c53031d 100644
--- a/sysdeps/generic/netinet/ip.h
+++ b/sysdeps/generic/netinet/ip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/nfs/nfs.h b/sysdeps/generic/nfs/nfs.h
index ebcc8f1..0ce2f13 100644
--- a/sysdeps/generic/nfs/nfs.h
+++ b/sysdeps/generic/nfs/nfs.h
@@ -1,5 +1,5 @@
/* <nfs/nfs.h> -- ill-specified NFS-related definitions
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h
index 2dd1064..7fa136d 100644
--- a/sysdeps/generic/not-cancel.h
+++ b/sysdeps/generic/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Generic version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -51,7 +51,9 @@
__fcntl64 (fd, cmd, __VA_ARGS__)
#define __getrandom_nocancel(buf, size, flags) \
__getrandom (buf, size, flags)
-#define __getrandom_nocancel_nostatus(buf, size, flags) \
+#define __getrandom_nocancel_direct(buf, size, flags) \
+ __getrandom (buf, size, flags)
+#define __getrandom_nocancel_nostatus_direct(buf, size, flags) \
__getrandom (buf, size, flags)
#define __poll_infinity_nocancel(fds, nfds) \
__poll (fds, nfds, -1)
diff --git a/sysdeps/generic/not-errno.h b/sysdeps/generic/not-errno.h
index 0ee93e2..9909350 100644
--- a/sysdeps/generic/not-errno.h
+++ b/sysdeps/generic/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Generic version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/nscd-types.h b/sysdeps/generic/nscd-types.h
index 3965343..ee9b1fa 100644
--- a/sysdeps/generic/nscd-types.h
+++ b/sysdeps/generic/nscd-types.h
@@ -1,5 +1,5 @@
/* Types for the NSCD implementation. Generic version.
- Copyright (c) 2000-2024 Free Software Foundation, Inc.
+ Copyright (c) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/pagecopy.h b/sysdeps/generic/pagecopy.h
index 07285be..507c8b5 100644
--- a/sysdeps/generic/pagecopy.h
+++ b/sysdeps/generic/pagecopy.h
@@ -1,5 +1,5 @@
/* Macros for copying by pages; used in memcpy, memmove.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/pointer_guard.h b/sysdeps/generic/pointer_guard.h
index a6122f3..4c640a8 100644
--- a/sysdeps/generic/pointer_guard.h
+++ b/sysdeps/generic/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. Generic (no-op) version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/profil-counter.h b/sysdeps/generic/profil-counter.h
index 4021b4a..4d8e006 100644
--- a/sysdeps/generic/profil-counter.h
+++ b/sysdeps/generic/profil-counter.h
@@ -1,5 +1,5 @@
/* Machine-dependent SIGPROF signal handler. "Generic" version w/ sigcontext
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/pty-private.h b/sysdeps/generic/pty-private.h
index 5706f54..7deb103 100644
--- a/sysdeps/generic/pty-private.h
+++ b/sysdeps/generic/pty-private.h
@@ -1,5 +1,5 @@
/* Internal definitions and declarations for pseudo terminal functions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
diff --git a/sysdeps/generic/rtld_static_init.h b/sysdeps/generic/rtld_static_init.h
index 4127c67..eee3418 100644
--- a/sysdeps/generic/rtld_static_init.h
+++ b/sysdeps/generic/rtld_static_init.h
@@ -1,5 +1,5 @@
/* Partial initialization of ld.so loaded via static dlopen. Generic helper.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/safe-fatal.h b/sysdeps/generic/safe-fatal.h
index 97fd36f..9346897 100644
--- a/sysdeps/generic/safe-fatal.h
+++ b/sysdeps/generic/safe-fatal.h
@@ -1,5 +1,5 @@
/* Crash the process immediately, without possibility of deadlock. Generic.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/set-freeres-fp.h b/sysdeps/generic/set-freeres-fp.h
index a28077c..ff0d5a1 100644
--- a/sysdeps/generic/set-freeres-fp.h
+++ b/sysdeps/generic/set-freeres-fp.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/set-freeres-os.h b/sysdeps/generic/set-freeres-os.h
index 3187e0b..b27dcb3 100644
--- a/sysdeps/generic/set-freeres-os.h
+++ b/sysdeps/generic/set-freeres-os.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/set-freeres-system.h b/sysdeps/generic/set-freeres-system.h
index 2ac6337..f313b75 100644
--- a/sysdeps/generic/set-freeres-system.h
+++ b/sysdeps/generic/set-freeres-system.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/set-hooks-arch.h b/sysdeps/generic/set-hooks-arch.h
index deb535b..a2c2b3d 100644
--- a/sysdeps/generic/set-hooks-arch.h
+++ b/sysdeps/generic/set-hooks-arch.h
@@ -1,6 +1,6 @@
/* Machine-dependent macros for using symbol sets for running lists of
functions. Generic/stub version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/setjmpP.h b/sysdeps/generic/setjmpP.h
index 7291979..ff81592 100644
--- a/sysdeps/generic/setjmpP.h
+++ b/sysdeps/generic/setjmpP.h
@@ -1,5 +1,5 @@
/* Internal header file for <setjmp.h>. Generic version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/setvmaname.h b/sysdeps/generic/setvmaname.h
index 9042fe1..496fcca 100644
--- a/sysdeps/generic/setvmaname.h
+++ b/sysdeps/generic/setvmaname.h
@@ -1,5 +1,5 @@
/* Utilities functions to name memory mappings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,18 @@
#ifndef __SETVMANAME_H
#define __SETVMANAME_H
+#include <stdbool.h>
+
+/* Set this to small value to not waste memory on systems, which do
+ * not support VMA name. */
+#define ANON_VMA_NAME_MAX_LEN 16
+
+static inline bool
+__is_decorate_maps_enabled (void)
+{
+ return false;
+}
+
static inline
void __set_vma_name (void *start, size_t len, const char *name)
{
diff --git a/sysdeps/generic/sframe-read.c b/sysdeps/generic/sframe-read.c
new file mode 100644
index 0000000..d536575
--- /dev/null
+++ b/sysdeps/generic/sframe-read.c
@@ -0,0 +1,566 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <assert.h>
+#include <sframe-read.h>
+
+/* Get the SFrame header size. */
+
+static inline uint32_t
+sframe_get_hdr_size (sframe_header *sfh)
+{
+ return SFRAME_V1_HDR_SIZE (*sfh);
+}
+
+/* Access functions for frame row entry data. */
+
+static inline uint8_t
+sframe_fre_get_offset_count (uint8_t fre_info)
+{
+ return SFRAME_V1_FRE_OFFSET_COUNT (fre_info);
+}
+
+static inline uint8_t
+sframe_fre_get_offset_size (uint8_t fre_info)
+{
+ return SFRAME_V1_FRE_OFFSET_SIZE (fre_info);
+}
+
+static inline bool
+sframe_get_fre_ra_mangled_p (uint8_t fre_info)
+{
+ return SFRAME_V1_FRE_MANGLED_RA_P (fre_info);
+}
+
+/* Access functions for info from function descriptor entry. */
+
+static uint32_t
+sframe_get_fre_type (sframe_func_desc_entry *fdep)
+{
+ uint32_t fre_type = 0;
+ if (fdep != NULL)
+ fre_type = SFRAME_V1_FUNC_FRE_TYPE (fdep->sfde_func_info);
+ return fre_type;
+}
+
+static uint32_t
+sframe_get_fde_type (sframe_func_desc_entry *fdep)
+{
+ uint32_t fde_type = 0;
+ if (fdep != NULL)
+ fde_type = SFRAME_V1_FUNC_FDE_TYPE (fdep->sfde_func_info);
+ return fde_type;
+}
+
+/* Check if SFrame header has valid data. Only consider SFrame type
+ 2. */
+
+static bool
+sframe_header_sanity_check_p (sframe_header *hp)
+{
+ uint8_t all_flags = SFRAME_F_FDE_SORTED | SFRAME_F_FRAME_POINTER;
+ /* Check preamble is valid. */
+ if ((hp->sfh_preamble.sfp_magic != SFRAME_MAGIC)
+ || (hp->sfh_preamble.sfp_version != SFRAME_VERSION_2)
+ || ((hp->sfh_preamble.sfp_flags | all_flags) != all_flags))
+ return false;
+
+ /* Check offsets are valid. */
+ if (hp->sfh_fdeoff > hp->sfh_freoff)
+ return false;
+
+ return true;
+}
+
+/* Get the FRE start address size. */
+
+static size_t
+sframe_fre_start_addr_size (uint32_t fre_type)
+{
+ size_t addr_size = 0;
+ switch (fre_type)
+ {
+ case SFRAME_FRE_TYPE_ADDR1:
+ addr_size = 1;
+ break;
+ case SFRAME_FRE_TYPE_ADDR2:
+ addr_size = 2;
+ break;
+ case SFRAME_FRE_TYPE_ADDR4:
+ addr_size = 4;
+ break;
+ default:
+ break;
+ }
+ return addr_size;
+}
+
+/* Check if the FREP has valid data. */
+
+static bool
+sframe_fre_sanity_check_p (sframe_frame_row_entry *frep)
+{
+ uint8_t offset_size, offset_cnt;
+ uint8_t fre_info;
+
+ if (frep == NULL)
+ return false;
+
+ fre_info = frep->fre_info;
+ offset_size = sframe_fre_get_offset_size (fre_info);
+
+ if (offset_size != SFRAME_FRE_OFFSET_1B
+ && offset_size != SFRAME_FRE_OFFSET_2B
+ && offset_size != SFRAME_FRE_OFFSET_4B)
+ return false;
+
+ offset_cnt = sframe_fre_get_offset_count (fre_info);
+ if (offset_cnt > MAX_NUM_STACK_OFFSETS)
+ return false;
+
+ return true;
+}
+
+/* Get FRE_INFO's offset size in bytes. */
+
+static size_t
+sframe_fre_offset_bytes_size (uint8_t fre_info)
+{
+ uint8_t offset_size, offset_cnt;
+
+ offset_size = sframe_fre_get_offset_size (fre_info);
+
+ offset_cnt = sframe_fre_get_offset_count (fre_info);
+
+ if (offset_size == SFRAME_FRE_OFFSET_2B
+ || offset_size == SFRAME_FRE_OFFSET_4B) /* 2 or 4 bytes. */
+ return (offset_cnt * (offset_size * 2));
+
+ return (offset_cnt);
+}
+
+/* Get total size in bytes to represent FREP in the binary format. This
+ includes the starting address, FRE info, and all the offsets. */
+
+static size_t
+sframe_fre_entry_size (sframe_frame_row_entry *frep, size_t addr_size)
+{
+ if (frep == NULL)
+ return 0;
+
+ uint8_t fre_info = frep->fre_info;
+
+ return (addr_size + sizeof (frep->fre_info)
+ + sframe_fre_offset_bytes_size (fre_info));
+}
+
+/* Check whether for the given FDEP, the SFrame Frame Row Entry identified via
+ the START_IP_OFFSET and the END_IP_OFFSET, provides the stack trace
+ information for the PC. */
+
+static bool
+sframe_fre_check_range_p (sframe_func_desc_entry *fdep,
+ uint32_t start_ip_offset, uint32_t end_ip_offset,
+ int32_t pc)
+{
+ int32_t func_start_addr;
+ uint8_t rep_block_size;
+ uint32_t fde_type;
+ uint32_t pc_offset;
+ bool mask_p;
+
+ if (fdep == NULL)
+ return false;
+
+ func_start_addr = fdep->sfde_func_start_address;
+ fde_type = sframe_get_fde_type (fdep);
+ mask_p = (fde_type == SFRAME_FDE_TYPE_PCMASK);
+ rep_block_size = fdep->sfde_func_rep_size;
+
+ if (func_start_addr > pc)
+ return false;
+
+ /* Given func_start_addr <= pc, pc - func_start_addr must be positive. */
+ pc_offset = pc - func_start_addr;
+ /* For SFrame FDEs encoding information for repetitive pattern of insns,
+ masking with the rep_block_size is necessary to find the matching FRE. */
+ if (mask_p)
+ pc_offset = pc_offset % rep_block_size;
+
+ return (start_ip_offset <= pc_offset) && (end_ip_offset >= pc_offset);
+}
+
+/* The SFrame Decoder. */
+
+/* Get SFrame header from the given decoder context DCTX. */
+
+static inline sframe_header *
+sframe_decoder_get_header (sframe_decoder_ctx *dctx)
+{
+ sframe_header *hp = NULL;
+ if (dctx != NULL)
+ hp = &dctx->sfd_header;
+ return hp;
+}
+
+/* Get IDX'th offset from FRE. Set ERRP as applicable. */
+
+static int32_t
+sframe_get_fre_offset (sframe_frame_row_entry *fre,
+ int idx,
+ _Unwind_Reason_Code *errp)
+{
+ uint8_t offset_cnt, offset_size;
+
+ if (!sframe_fre_sanity_check_p (fre))
+ {
+ *errp = _URC_END_OF_STACK;
+ return 0;
+ }
+
+ offset_cnt = sframe_fre_get_offset_count (fre->fre_info);
+ offset_size = sframe_fre_get_offset_size (fre->fre_info);
+
+ if (offset_cnt < (idx + 1))
+ {
+ *errp = _URC_END_OF_STACK;
+ return 0;
+ }
+ *errp = _URC_NO_REASON;
+
+ if (offset_size == SFRAME_FRE_OFFSET_1B)
+ {
+ int8_t *sp = (int8_t *)fre->fre_offsets;
+ return sp[idx];
+ }
+ else if (offset_size == SFRAME_FRE_OFFSET_2B)
+ {
+ int16_t *sp = (int16_t *)fre->fre_offsets;
+ return sp[idx];
+ }
+ else
+ {
+ int32_t *ip = (int32_t *)fre->fre_offsets;
+ return ip[idx];
+ }
+}
+
+/* Decode the SFrame FRE start address offset value from FRE_BUF in on-disk
+ binary format, given the FRE_TYPE. Updates the FRE_START_ADDR. */
+
+static void
+sframe_decode_fre_start_address (const char *fre_buf,
+ uint32_t *fre_start_addr,
+ uint32_t fre_type)
+{
+ uint32_t saddr = 0;
+
+ if (fre_type == SFRAME_FRE_TYPE_ADDR1)
+ {
+ uint8_t *uc = (uint8_t *)fre_buf;
+ saddr = (uint32_t)*uc;
+ }
+ else if (fre_type == SFRAME_FRE_TYPE_ADDR2)
+ {
+ uint16_t *ust = (uint16_t *)fre_buf;
+ saddr = (uint32_t)*ust;
+ }
+ else if (fre_type == SFRAME_FRE_TYPE_ADDR4)
+ {
+ uint32_t *uit = (uint32_t *)fre_buf;
+ saddr = (uint32_t)*uit;
+ }
+ else
+ return;
+
+ *fre_start_addr = saddr;
+}
+
+/* Find the function descriptor entry starting which contains the specified
+ address ADDR. */
+
+static sframe_func_desc_entry *
+sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr,
+ int *errp)
+{
+ sframe_header *dhp;
+ sframe_func_desc_entry *fdp;
+ int low, high;
+
+ if (ctx == NULL)
+ return NULL;
+
+ dhp = sframe_decoder_get_header (ctx);
+
+ if (dhp == NULL || dhp->sfh_num_fdes == 0 || ctx->sfd_funcdesc == NULL)
+ return NULL;
+ /* If the FDE sub-section is not sorted on PCs, skip the lookup because
+ binary search cannot be used. */
+ if ((dhp->sfh_preamble.sfp_flags & SFRAME_F_FDE_SORTED) == 0)
+ return NULL;
+
+ /* Do the binary search. */
+ fdp = (sframe_func_desc_entry *) ctx->sfd_funcdesc;
+ low = 0;
+ high = dhp->sfh_num_fdes;
+ while (low <= high)
+ {
+ int mid = low + (high - low) / 2;
+
+ /* Given sfde_func_start_address <= addr,
+ addr - sfde_func_start_address must be positive. */
+ if (fdp[mid].sfde_func_start_address <= addr
+ && ((uint32_t)(addr - fdp[mid].sfde_func_start_address)
+ < fdp[mid].sfde_func_size))
+ return fdp + mid;
+
+ if (fdp[mid].sfde_func_start_address < addr)
+ low = mid + 1;
+ else
+ high = mid - 1;
+ }
+
+ return NULL;
+}
+
+/* Get the end IP offset for the FRE at index i in the FDEP. The buffer FRES
+ is the starting location for the FRE. */
+
+static uint32_t
+sframe_fre_get_end_ip_offset (sframe_func_desc_entry *fdep, unsigned int i,
+ const char *fres)
+{
+ uint32_t end_ip_offset = 0;
+ uint32_t fre_type;
+
+ fre_type = sframe_get_fre_type (fdep);
+
+ /* Get the start address of the next FRE in sequence. */
+ if (i < fdep->sfde_func_num_fres - 1)
+ {
+ sframe_decode_fre_start_address (fres, &end_ip_offset, fre_type);
+ end_ip_offset -= 1;
+ }
+ else
+ /* The end IP offset for the FRE needs to be deduced from the function
+ size. */
+ end_ip_offset = fdep->sfde_func_size - 1;
+
+ return end_ip_offset;
+}
+
+/* Get the SFrame's fixed FP offset given the decoder context CTX. */
+
+static int8_t
+sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *ctx)
+{
+ sframe_header *dhp;
+ dhp = sframe_decoder_get_header (ctx);
+ return dhp->sfh_cfa_fixed_fp_offset;
+}
+
+/* Get the SFrame's fixed RA offset given the decoder context CTX. */
+
+static int8_t
+sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *ctx)
+{
+ sframe_header *dhp;
+ dhp = sframe_decoder_get_header (ctx);
+ return dhp->sfh_cfa_fixed_ra_offset;
+}
+
+/* Get the base reg id from the FRE info. Set errp if failure. */
+
+uint8_t
+__sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre)
+{
+ uint8_t fre_info = fre->fre_info;
+ return SFRAME_V1_FRE_CFA_BASE_REG_ID (fre_info);
+}
+
+/* Get the CFA offset from the FRE. If the offset is unavailable,
+ sets errp. */
+
+int32_t
+__sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx __attribute__ ((__unused__)),
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp)
+{
+ return sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, errp);
+}
+
+/* Get the FP offset from the FRE. If the offset is unavailable, sets
+ errp. */
+
+int32_t
+__sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp)
+{
+ uint32_t fp_offset_idx = 0;
+ int8_t fp_offset = sframe_decoder_get_fixed_fp_offset (dctx);
+
+ *errp = _URC_NO_REASON;
+ /* If the FP offset is not being tracked, return the fixed FP offset
+ from the SFrame header. */
+ if (fp_offset != SFRAME_CFA_FIXED_FP_INVALID)
+ return fp_offset;
+
+ /* In some ABIs, the stack offset to recover RA (using the CFA) from is
+ fixed (like AMD64). In such cases, the stack offset to recover FP will
+ appear at the second index. */
+ fp_offset_idx = ((sframe_decoder_get_fixed_ra_offset (dctx)
+ != SFRAME_CFA_FIXED_RA_INVALID)
+ ? SFRAME_FRE_RA_OFFSET_IDX
+ : SFRAME_FRE_FP_OFFSET_IDX);
+ return sframe_get_fre_offset (fre, fp_offset_idx, errp);
+}
+
+/* Get the RA offset from the FRE. If the offset is unavailable, sets
+ errp. */
+
+int32_t
+__sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx,
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp)
+{
+ int8_t ra_offset = sframe_decoder_get_fixed_ra_offset (dctx);
+ *errp = _URC_NO_REASON;
+
+ /* If the RA offset was not being tracked, return the fixed RA offset
+ from the SFrame header. */
+ if (ra_offset != SFRAME_CFA_FIXED_RA_INVALID)
+ return ra_offset;
+
+ /* Otherwise, get the RA offset from the FRE. */
+ return sframe_get_fre_offset (fre, SFRAME_FRE_RA_OFFSET_IDX, errp);
+}
+
+/* Decode the specified SFrame buffer SF_BUF and return the new SFrame
+ decoder context. */
+
+_Unwind_Reason_Code
+__sframe_decode (sframe_decoder_ctx *dctx, const char *sf_buf)
+{
+ const sframe_preamble *sfp;
+ size_t hdrsz;
+ sframe_header *sfheaderp;
+ char *frame_buf;
+
+ int fidx_size;
+ uint32_t fre_bytes;
+
+ if (sf_buf == NULL)
+ return _URC_END_OF_STACK;
+
+ sfp = (const sframe_preamble *) sf_buf;
+
+ /* Check for foreign endianness. */
+ if (sfp->sfp_magic != SFRAME_MAGIC)
+ return _URC_END_OF_STACK;
+
+ frame_buf = (char *)sf_buf;
+
+ /* Handle the SFrame header. */
+ dctx->sfd_header = *(sframe_header *) frame_buf;
+
+ /* Validate the contents of SFrame header. */
+ sfheaderp = &dctx->sfd_header;
+ if (!sframe_header_sanity_check_p (sfheaderp))
+ return _URC_END_OF_STACK;
+
+ hdrsz = sframe_get_hdr_size (sfheaderp);
+ frame_buf += hdrsz;
+
+ /* Handle the SFrame Function Descriptor Entry section. */
+ fidx_size
+ = sfheaderp->sfh_num_fdes * sizeof (sframe_func_desc_entry);
+ dctx->sfd_funcdesc = (sframe_func_desc_entry *)frame_buf;
+ frame_buf += (fidx_size);
+
+ dctx->sfd_fres = frame_buf;
+ fre_bytes = sfheaderp->sfh_fre_len;
+ dctx->sfd_fre_nbytes = fre_bytes;
+
+ return _URC_NO_REASON;
+}
+
+/* Find the SFrame Row Entry which contains the PC. Returns
+ _URC_END_OF_STACK if failure. */
+
+_Unwind_Reason_Code
+__sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
+ sframe_frame_row_entry *frep)
+{
+ sframe_func_desc_entry *fdep;
+ uint32_t fre_type, i;
+ uint32_t start_ip_offset;
+ int32_t func_start_addr;
+ uint32_t end_ip_offset;
+ const char *fres;
+ size_t size = 0;
+ int err = 0;
+
+ if ((ctx == NULL) || (frep == NULL))
+ return _URC_END_OF_STACK;
+
+ /* Find the FDE which contains the PC, then scan its fre entries. */
+ fdep = sframe_get_funcdesc_with_addr_internal (ctx, pc, &err);
+ if (fdep == NULL || ctx->sfd_fres == NULL)
+ return _URC_END_OF_STACK;
+
+ fre_type = sframe_get_fre_type (fdep);
+
+ fres = ctx->sfd_fres + fdep->sfde_func_start_fre_off;
+ func_start_addr = fdep->sfde_func_start_address;
+
+ for (i = 0; i < fdep->sfde_func_num_fres; i++)
+ {
+ size_t addr_size;
+
+ /* Partially decode the FRE. */
+ sframe_decode_fre_start_address (fres, &frep->fre_start_addr, fre_type);
+
+ addr_size = sframe_fre_start_addr_size (fre_type);
+ if (addr_size == 0)
+ return _URC_END_OF_STACK;
+
+ frep->fre_info = *(uint8_t *)(fres + addr_size);
+ size = sframe_fre_entry_size (frep, addr_size);
+
+ start_ip_offset = frep->fre_start_addr;
+ end_ip_offset = sframe_fre_get_end_ip_offset (fdep, i, fres + size);
+
+ /* Stop search if FRE's start_ip is greater than pc. Given
+ func_start_addr <= pc, pc - func_start_addr must be positive. */
+ if (start_ip_offset > (uint32_t) (pc - func_start_addr))
+ return _URC_END_OF_STACK;
+
+ if (sframe_fre_check_range_p (fdep, start_ip_offset, end_ip_offset, pc))
+ {
+ /* Decode last FRE bits: offsets size. */
+ frep->fre_offsets = fres + addr_size + sizeof (frep->fre_info);
+ return _URC_NO_REASON;
+ }
+
+ fres += size;
+ }
+ return _URC_END_OF_STACK;
+}
diff --git a/sysdeps/generic/sframe-read.h b/sysdeps/generic/sframe-read.h
new file mode 100644
index 0000000..1db1886
--- /dev/null
+++ b/sysdeps/generic/sframe-read.h
@@ -0,0 +1,106 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _SFRAME_API_H
+#define _SFRAME_API_H
+
+#include <sframe.h>
+#include <stdbool.h>
+#include <unwind.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct sframe_decoder_ctx
+{
+
+ sframe_header sfd_header;
+
+ sframe_func_desc_entry *sfd_funcdesc;
+ /* SFrame FRE table. */
+ char *sfd_fres;
+ /* Number of bytes needed for SFrame FREs. */
+ int sfd_fre_nbytes;
+} sframe_decoder_ctx;
+
+#define MAX_NUM_STACK_OFFSETS 3
+
+/* User interfacing SFrame Row Entry.
+ An abstraction provided by libsframe so the consumer is decoupled from
+ the binary format representation of the same.
+
+ The members are best ordered such that they are aligned at their natural
+ boundaries. This helps avoid usage of undesirable misaligned memory
+ accesses. See PR libsframe/29856. */
+
+typedef struct sframe_frame_row_entry
+{
+ uint32_t fre_start_addr;
+ const char *fre_offsets;
+ unsigned char fre_info;
+} sframe_frame_row_entry;
+
+/* The SFrame Decoder. */
+
+/* Decode the specified SFrame buffer CF_BUF and return the new SFrame
+ decoder context. */
+
+extern _Unwind_Reason_Code
+__sframe_decode (sframe_decoder_ctx *dctx, const char *cf_buf);
+
+/* Find the SFrame Frame Row Entry which contains the PC. Returns
+ _URC_END_OF_STACK if failure. */
+
+extern _Unwind_Reason_Code
+__sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
+ sframe_frame_row_entry *frep);
+
+/* Get the base reg id from the FRE info. */
+
+extern uint8_t
+__sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre);
+
+/* Get the CFA offset from the FRE. Sets ERRP if an error is
+ detected. */
+
+extern int32_t
+__sframe_fre_get_cfa_offset (sframe_decoder_ctx *dtcx,
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp);
+
+/* Get the FP offset from the FRE. If the offset is unavailable, sets
+ ERRP. */
+
+extern int32_t
+__sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp);
+
+/* Get the RA offset from the FRE. Sets ERRP if ra offset is
+ unavailable. */
+
+extern int32_t
+__sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx,
+ sframe_frame_row_entry *fre,
+ _Unwind_Reason_Code *errp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SFRAME_API_H */
diff --git a/sysdeps/generic/sframe.c b/sysdeps/generic/sframe.c
new file mode 100644
index 0000000..ba0830d
--- /dev/null
+++ b/sysdeps/generic/sframe.c
@@ -0,0 +1,187 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <sframe-read.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <unwind.h>
+#include <uw-sigframe.h>
+#include <ldsodefs.h>
+
+/* Some arches like s390x needs an offset to correct the value where
+ SP is located in relation to CFA. */
+#ifndef SFRAME_SP_VAL_OFFSET
+#define SFRAME_SP_VAL_OFFSET 0
+#endif
+
+static inline _Unwind_Ptr
+read_stack_value (_Unwind_Ptr loc)
+{
+ _Unwind_Ptr value = *((_Unwind_Ptr *) loc);
+ return value;
+}
+
+/* Helper to avoid PLT call in libc. Fixes elf/check-localplt
+ errors. */
+
+static int
+_dl_find_object_helper (void *address, struct dl_find_object *result)
+{
+ return GLRO (dl_find_object) (address, result);
+}
+
+/* Backtrace the stack and collect the stacktrace given SFrame info.
+ If successful, store the return addresses in RA_LST. The SIZE
+ argument specifies the maximum number of return addresses that can
+ be stored in RA_LST and contains the number of the addresses
+ collected. */
+
+int
+__stacktrace_sframe (void **ra_lst, int count, frame *frame)
+{
+ _Unwind_Ptr sframe_vma, cfa, return_addr, ra_stack_loc, fp_stack_loc, pc,
+ frame_ptr;
+ int cfa_offset, fp_offset, ra_offset, i;
+ sframe_frame_row_entry fred, *frep = &fred;
+
+ if (!ra_lst || !count)
+ return 0;
+
+ for (i = 0; i < count; i++)
+ {
+ _Unwind_Reason_Code err;
+ struct dl_find_object data;
+ sframe_decoder_ctx decoder_context, *dctx = &decoder_context;
+
+ /* Clean decoder context. */
+ memset (dctx, 0, sizeof (sframe_decoder_ctx));
+
+ /* Load and set up the SFrame stack trace info for pc. */
+ if (_dl_find_object_helper ((void *) frame->pc, &data) < 0)
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+
+ sframe_vma = (_Unwind_Ptr) data.dlfo_sframe;
+ if (!sframe_vma || !(data.dlfo_flags & DLFO_FLAG_SFRAME))
+ {
+#ifdef MD_DECODE_SIGNAL_FRAME
+ /* If there is no valid SFrame section or SFrame section is
+ corrupted then check if it is a signal frame. */
+ if (MD_DECODE_SIGNAL_FRAME (frame) == _URC_NO_REASON)
+ {
+ ra_lst[i] = (void *) frame->pc;
+ continue;
+ }
+#endif
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+ }
+
+ /* Decode the specified SFrame buffer populate sframe's decoder
+ context. */
+ if (__sframe_decode (dctx, (char *) data.dlfo_sframe) != _URC_NO_REASON)
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+
+ pc = frame->pc - sframe_vma;
+ /* Find the SFrame Row Entry which contains the PC. */
+ if (__sframe_find_fre (dctx, pc, frep) == _URC_END_OF_STACK)
+ {
+#ifdef MD_DECODE_SIGNAL_FRAME
+ /* If there are no valid FREs, check if it is a signal
+ frame, and if so decode it. */
+ if (MD_DECODE_SIGNAL_FRAME (frame) == _URC_NO_REASON)
+ {
+ ra_lst[i] = (void *) frame->pc;
+ continue;
+ }
+#endif
+#ifdef MD_DETECT_OUTERMOST_FRAME
+ if (MD_DETECT_OUTERMOST_FRAME (frame) == _URC_END_OF_STACK)
+ return i;
+#endif
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+ }
+
+ /* Get the CFA offset from the FRE. If offset is unavailable,
+ sets err. */
+ cfa_offset = __sframe_fre_get_cfa_offset (dctx, frep, &err);
+ if (err != _URC_NO_REASON)
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+
+ /* Get CFA using base reg id from the FRE info. */
+ cfa = ((__sframe_fre_get_base_reg_id (frep)
+ == SFRAME_BASE_REG_SP) ? frame->sp : frame->fp) + cfa_offset;
+
+ /* Get the RA offset from the FRE. If the offset is
+ unavailable, sets err. */
+ ra_offset = __sframe_fre_get_ra_offset (dctx, frep, &err);
+ if (err != _URC_NO_REASON)
+ /* Force fallback to DWARF stacktracer. */
+ return 0;
+
+ /* RA offset is available, get the value stored in the stack
+ location. */
+ ra_stack_loc = cfa + ra_offset;
+ return_addr = read_stack_value (ra_stack_loc);
+
+ ra_lst[i] = (void *) return_addr;
+
+ /* Get the FP offset from the FRE. If the offset is
+ unavailable, sets err. */
+ fp_offset = __sframe_fre_get_fp_offset (dctx, frep, &err);
+ frame_ptr = frame->fp;
+ if (err == _URC_NO_REASON)
+ {
+ /* FP offset is available, get the value stored in the stack
+ location. */
+ fp_stack_loc = cfa + fp_offset;
+ frame_ptr = read_stack_value (fp_stack_loc);
+ }
+
+ /* Set up for the next frame. */
+ frame->fp = frame_ptr;
+ frame->sp = cfa + SFRAME_SP_VAL_OFFSET;
+ frame->pc = return_addr;
+ }
+ return i;
+}
+
+libc_hidden_def (__stacktrace_sframe);
+
+/* A noinline helper used to obtain the caller's current PC. */
+
+_Unwind_Ptr __attribute__ ((noinline))
+__getPC (void)
+{
+ return (_Unwind_Ptr)
+ __builtin_extract_return_addr (__builtin_return_address (0));
+}
+
+libc_hidden_def (__getPC);
+
+/* A noinline helper used to obtain the caller's current SP. It
+ mimics gcc14's __builtin_stack_address() functionality. */
+
+_Unwind_Ptr __attribute__ ((noinline))
+__getSP (void)
+{
+ return (_Unwind_Ptr) __builtin_dwarf_cfa() + SFRAME_SP_VAL_OFFSET;
+}
+
+libc_hidden_def (__getSP);
diff --git a/sysdeps/generic/sframe.h b/sysdeps/generic/sframe.h
new file mode 100644
index 0000000..3f8ff1c
--- /dev/null
+++ b/sysdeps/generic/sframe.h
@@ -0,0 +1,367 @@
+/* SFrame format description.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SFRAME_H
+#define _SFRAME_H
+
+#include <sys/types.h>
+#include <limits.h>
+#include <stdint.h>
+#include <unwind.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* SFrame format.
+
+ SFrame format is a simple format to represent the information needed
+ for generating vanilla backtraces. SFrame format keeps track of the
+ minimal necessary information needed for stack tracing:
+ - Canonical Frame Address (CFA)
+ - Frame Pointer (FP)
+ - Return Address (RA)
+
+ The SFrame section itself has the following structure:
+
+ +--------+------------+---------+
+ | file | function | frame |
+ | header | descriptor | row |
+ | | entries | entries |
+ +--------+------------+---------+
+
+ The file header stores a magic number and version information, flags, and
+ the byte offset of each of the sections relative to the end of the header
+ itself. The file header also specifies the total number of Function
+ Descriptor Entries, Frame Row Entries and length of the FRE sub-section.
+
+ Following the header is a list of Function Descriptor Entries (FDEs).
+ This list may be sorted if the flags in the file header indicate it to be
+ so. The sort order, if applicable, is the order of functions in the
+ .text.* sections in the resulting binary artifact. Each Function
+ Descriptor Entry specifies the start PC of a function, the size in bytes
+ of the function and an offset to its first Frame Row Entry (FRE). Each FDE
+ additionally also specifies the type of FRE it uses to encode the stack
+ trace information.
+
+ Next, the SFrame Frame Row Entry sub-section is a list of variable size
+ records. Each entry represents stack trace information for a set of PCs
+ of the function. A singular Frame Row Entry is a self-sufficient record
+ which contains information on how to generate stack trace from the
+ applicable set of PCs.
+
+ */
+
+
+/* SFrame format versions. */
+#define SFRAME_VERSION_1 1
+#define SFRAME_VERSION_2 2
+/* SFrame magic number. */
+#define SFRAME_MAGIC 0xdee2
+/* Current version of SFrame format. */
+#define SFRAME_VERSION SFRAME_VERSION_2
+
+/* Various flags for SFrame. */
+
+/* Function Descriptor Entries are sorted on PC. */
+#define SFRAME_F_FDE_SORTED 0x1
+/* Functions preserve frame pointer. */
+#define SFRAME_F_FRAME_POINTER 0x2
+
+#define SFRAME_CFA_FIXED_FP_INVALID 0
+#define SFRAME_CFA_FIXED_RA_INVALID 0
+
+/* Supported ABIs/Arch. */
+#define SFRAME_ABI_AARCH64_ENDIAN_BIG 1 /* AARCH64 big endian. */
+#define SFRAME_ABI_AARCH64_ENDIAN_LITTLE 2 /* AARCH64 little endian. */
+#define SFRAME_ABI_AMD64_ENDIAN_LITTLE 3 /* AMD64 little endian. */
+
+/* SFrame FRE types. */
+#define SFRAME_FRE_TYPE_ADDR1 0
+#define SFRAME_FRE_TYPE_ADDR2 1
+#define SFRAME_FRE_TYPE_ADDR4 2
+
+/* SFrame Function Descriptor Entry types.
+
+ The SFrame format has two possible representations for functions. The
+ choice of which type to use is made according to the instruction patterns
+ in the relevant program stub.
+
+ An SFrame FDE of type SFRAME_FDE_TYPE_PCINC is an indication
+ that the PCs in the FREs should be treated as increments in bytes. This is
+ used for a bulk of the executable code of a program, which contains
+ instructions with no specific pattern.
+
+ An SFrame FDE of type SFRAME_FDE_TYPE_PCMASK is an indication
+ that the PCs in the FREs should be treated as masks. This type is useful
+ for the cases when a small pattern of instructions in a program stub is
+ repeatedly to cover a specific functionality. Typical usescases are pltN
+ entries, trampolines etc. */
+
+/* Unwinders perform a (PC >= FRE_START_ADDR) to look up a matching FRE. */
+#define SFRAME_FDE_TYPE_PCINC 0
+/* Unwinders perform a (PC % REP_BLOCK_SIZE >= FRE_START_ADDR) to look up a
+ matching FRE. */
+#define SFRAME_FDE_TYPE_PCMASK 1
+
+typedef struct sframe_preamble
+{
+ uint16_t sfp_magic; /* Magic number (SFRAME_MAGIC). */
+ uint8_t sfp_version; /* Data format version number (SFRAME_VERSION). */
+ uint8_t sfp_flags; /* Flags. */
+} __attribute__ ((packed)) sframe_preamble;
+
+typedef struct sframe_header
+{
+ sframe_preamble sfh_preamble;
+ /* Information about the arch (endianness) and ABI. */
+ uint8_t sfh_abi_arch;
+ /* Offset for the Frame Pointer (FP) from CFA may be fixed for some
+ ABIs (e.g, in AMD64 when -fno-omit-frame-pointer is used). When fixed,
+ this field specifies the fixed stack frame offset and the individual
+ FREs do not need to track it. When not fixed, it is set to
+ SFRAME_CFA_FIXED_FP_INVALID, and the individual FREs may provide
+ the applicable stack frame offset, if any. */
+ int8_t sfh_cfa_fixed_fp_offset;
+ /* Offset for the Return Address from CFA is fixed for some ABIs
+ (e.g., AMD64 has it as CFA-8). When fixed, the header specifies the
+ fixed stack frame offset and the individual FREs do not track it. When
+ not fixed, it is set to SFRAME_CFA_FIXED_RA_INVALID, and individual
+ FREs provide the applicable stack frame offset, if any. */
+ int8_t sfh_cfa_fixed_ra_offset;
+ /* Number of bytes making up the auxiliary header, if any.
+ Some ABI/arch, in the future, may use this space for extending the
+ information in SFrame header. Auxiliary header is contained in
+ bytes sequentially following the sframe_header. */
+ uint8_t sfh_auxhdr_len;
+ /* Number of SFrame FDEs in this SFrame section. */
+ uint32_t sfh_num_fdes;
+ /* Number of SFrame Frame Row Entries. */
+ uint32_t sfh_num_fres;
+ /* Number of bytes in the SFrame Frame Row Entry section. */
+ uint32_t sfh_fre_len;
+ /* Offset of SFrame Function Descriptor Entry section. */
+ uint32_t sfh_fdeoff;
+ /* Offset of SFrame Frame Row Entry section. */
+ uint32_t sfh_freoff;
+} __attribute__ ((packed)) sframe_header;
+
+#define SFRAME_V1_HDR_SIZE(sframe_hdr) \
+ ((sizeof (sframe_header) + (sframe_hdr).sfh_auxhdr_len))
+
+/* Two possible keys for executable (instruction) pointers signing. */
+#define SFRAME_AARCH64_PAUTH_KEY_A 0 /* Key A. */
+#define SFRAME_AARCH64_PAUTH_KEY_B 1 /* Key B. */
+
+typedef struct sframe_func_desc_entry
+{
+ /* Function start address. Encoded as a signed offset, relative to the
+ beginning of the current FDE. */
+ int32_t sfde_func_start_address;
+ /* Size of the function in bytes. */
+ uint32_t sfde_func_size;
+ /* Offset of the first SFrame Frame Row Entry of the function, relative to the
+ beginning of the SFrame Frame Row Entry sub-section. */
+ uint32_t sfde_func_start_fre_off;
+ /* Number of frame row entries for the function. */
+ uint32_t sfde_func_num_fres;
+ /* Additional information for stack tracing from the function:
+ - 4-bits: Identify the FRE type used for the function.
+ - 1-bit: Identify the FDE type of the function - mask or inc.
+ - 1-bit: PAC authorization A/B key (aarch64).
+ - 2-bits: Unused.
+ ------------------------------------------------------------------------
+ | Unused | PAC auth A/B key (aarch64) | FDE type | FRE type |
+ | | Unused (amd64) | | |
+ ------------------------------------------------------------------------
+ 8 6 5 4 0 */
+ uint8_t sfde_func_info;
+ /* Size of the block of repeating insns. Used for SFrame FDEs of type
+ SFRAME_FDE_TYPE_PCMASK. */
+ uint8_t sfde_func_rep_size;
+ uint16_t sfde_func_padding2;
+} __attribute__ ((packed)) sframe_func_desc_entry;
+
+/* Macros to compose and decompose function info in FDE. */
+
+/* Note: Set PAC auth key to SFRAME_AARCH64_PAUTH_KEY_A by default. */
+#define SFRAME_V1_FUNC_INFO(fde_type, fre_enc_type) \
+ (((SFRAME_AARCH64_PAUTH_KEY_A & 0x1) << 5) | \
+ (((fde_type) & 0x1) << 4) | ((fre_enc_type) & 0xf))
+
+#define SFRAME_V1_FUNC_FRE_TYPE(data) ((data) & 0xf)
+#define SFRAME_V1_FUNC_FDE_TYPE(data) (((data) >> 4) & 0x1)
+#define SFRAME_V1_FUNC_PAUTH_KEY(data) (((data) >> 5) & 0x1)
+
+/* Set the pauth key as indicated. */
+#define SFRAME_V1_FUNC_INFO_UPDATE_PAUTH_KEY(pauth_key, fde_info) \
+ ((((pauth_key) & 0x1) << 5) | ((fde_info) & 0xdf))
+
+/* Size of stack frame offsets in an SFrame Frame Row Entry. A single
+ SFrame FRE has all offsets of the same size. Offset size may vary
+ across frame row entries. */
+#define SFRAME_FRE_OFFSET_1B 0
+#define SFRAME_FRE_OFFSET_2B 1
+#define SFRAME_FRE_OFFSET_4B 2
+
+/* An SFrame Frame Row Entry can be SP or FP based. */
+#define SFRAME_BASE_REG_FP 0
+#define SFRAME_BASE_REG_SP 1
+
+/* The index at which a specific offset is presented in the variable length
+ bytes of an FRE. */
+#define SFRAME_FRE_CFA_OFFSET_IDX 0
+/* The RA stack offset, if present, will always be at index 1 in the variable
+ length bytes of the FRE. */
+#define SFRAME_FRE_RA_OFFSET_IDX 1
+/* The FP stack offset may appear at offset 1 or 2, depending on the ABI as RA
+ may or may not be tracked. */
+#define SFRAME_FRE_FP_OFFSET_IDX 2
+
+typedef struct sframe_fre_info
+{
+ /* Information about
+ - 1 bit: base reg for CFA
+ - 4 bits: Number of offsets (N). A value of upto 3 is allowed to track
+ all three of CFA, FP and RA (fixed implicit order).
+ - 2 bits: information about size of the offsets (S) in bytes.
+ Valid values are SFRAME_FRE_OFFSET_1B, SFRAME_FRE_OFFSET_2B,
+ SFRAME_FRE_OFFSET_4B
+ - 1 bit: Mangled RA state bit (aarch64 only).
+ ----------------------------------------------------------------------------------
+ | Mangled-RA (aarch64) | Size of offsets | Number of offsets | base_reg |
+ | Unused (amd64) | | | |
+ ----------------------------------------------------------------------------------
+ 8 7 5 1 0
+
+ */
+ uint8_t fre_info;
+} sframe_fre_info;
+
+/* Macros to compose and decompose FRE info. */
+
+/* Note: Set mangled_ra_p to zero by default. */
+#define SFRAME_V1_FRE_INFO(base_reg_id, offset_num, offset_size) \
+ (((0 & 0x1) << 7) | (((offset_size) & 0x3) << 5) | \
+ (((offset_num) & 0xf) << 1) | ((base_reg_id) & 0x1))
+
+/* Set the mangled_ra_p bit as indicated. */
+#define SFRAME_V1_FRE_INFO_UPDATE_MANGLED_RA_P(mangled_ra_p, fre_info) \
+ ((((mangled_ra_p) & 0x1) << 7) | ((fre_info) & 0x7f))
+
+#define SFRAME_V1_FRE_CFA_BASE_REG_ID(data) ((data) & 0x1)
+#define SFRAME_V1_FRE_OFFSET_COUNT(data) (((data) >> 1) & 0xf)
+#define SFRAME_V1_FRE_OFFSET_SIZE(data) (((data) >> 5) & 0x3)
+#define SFRAME_V1_FRE_MANGLED_RA_P(data) (((data) >> 7) & 0x1)
+
+/* SFrame Frame Row Entry definitions.
+
+ Used for both AMD64 and AARCH64.
+
+ An SFrame Frame Row Entry is a self-sufficient record which contains
+ information on how to generate the stack trace for the specified range of
+ PCs. Each SFrame Frame Row Entry is followed by S*N bytes, where:
+ S is the size of the stack frame offset for the FRE, and
+ N is the number of stack frame offsets in the FRE
+
+ The interpretation of FRE stack offsets is ABI-specific:
+
+ AMD64:
+ offset1 (interpreted as CFA = BASE_REG + offset1)
+ if FP is being tracked
+ offset2 (intrepreted as FP = CFA + offset2)
+ fi
+
+ AARCH64:
+ offset1 (interpreted as CFA = BASE_REG + offset1)
+ if FP is being tracked (in other words, if frame record created)
+ offset2 (interpreted as RA = CFA + offset2)
+ offset3 (intrepreted as FP = CFA + offset3)
+ fi
+ Note that in AAPCS64, a frame record, if created, will save both FP and
+ LR on stack.
+*/
+
+/* Used when SFRAME_FRE_TYPE_ADDR1 is specified as FRE type. */
+typedef struct sframe_frame_row_entry_addr1
+{
+ /* Start address of the frame row entry. Encoded as an 1-byte unsigned
+ offset, relative to the start address of the function. */
+ uint8_t sfre_start_address;
+ sframe_fre_info sfre_info;
+} __attribute__ ((packed)) sframe_frame_row_entry_addr1;
+
+/* Upper limit of start address in sframe_frame_row_entry_addr1
+ is 0x100 (not inclusive). */
+#define SFRAME_FRE_TYPE_ADDR1_LIMIT \
+ (1ULL << ((SFRAME_FRE_TYPE_ADDR1 + 1) * 8))
+
+/* Used when SFRAME_FRE_TYPE_ADDR2 is specified as FRE type. */
+typedef struct sframe_frame_row_entry_addr2
+{
+ /* Start address of the frame row entry. Encoded as an 2-byte unsigned
+ offset, relative to the start address of the function. */
+ uint16_t sfre_start_address;
+ sframe_fre_info sfre_info;
+} __attribute__ ((packed)) sframe_frame_row_entry_addr2;
+
+/* Upper limit of start address in sframe_frame_row_entry_addr2
+ is 0x10000 (not inclusive). */
+#define SFRAME_FRE_TYPE_ADDR2_LIMIT \
+ (1ULL << ((SFRAME_FRE_TYPE_ADDR2 * 2) * 8))
+
+/* Used when SFRAME_FRE_TYPE_ADDR4 is specified as FRE type. */
+typedef struct sframe_frame_row_entry_addr4
+{
+ /* Start address of the frame row entry. Encoded as a 4-byte unsigned
+ offset, relative to the start address of the function. */
+ uint32_t sfre_start_address;
+ sframe_fre_info sfre_info;
+} __attribute__ ((packed)) sframe_frame_row_entry_addr4;
+
+/* Upper limit of start address in sframe_frame_row_entry_addr2
+ is 0x100000000 (not inclusive). */
+#define SFRAME_FRE_TYPE_ADDR4_LIMIT \
+ (1ULL << ((SFRAME_FRE_TYPE_ADDR4 * 2) * 8))
+
+/* Used to pass frame information to stack trace routine. */
+typedef struct cframe
+{
+ _Unwind_Ptr pc;
+ _Unwind_Ptr sp;
+ _Unwind_Ptr fp;
+} frame;
+
+/* SFrame stack tracing support. */
+int __stacktrace_sframe (void **, int, frame *);
+libc_hidden_proto (__stacktrace_sframe);
+
+/* Helper used by SFrame tracing algorithm. */
+_Unwind_Ptr __getPC (void);
+libc_hidden_proto (__getPC);
+
+/* Helper used by SFrame tracing algorithm. */
+_Unwind_Ptr __getSP (void);
+libc_hidden_proto (__getSP);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SFRAME_H */
diff --git a/sysdeps/generic/sigcontextinfo.h b/sysdeps/generic/sigcontextinfo.h
index b613609..9a16c55 100644
--- a/sysdeps/generic/sigcontextinfo.h
+++ b/sysdeps/generic/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/siglist-compat-def.h b/sysdeps/generic/siglist-compat-def.h
index ce9db1b..bcce97a 100644
--- a/sysdeps/generic/siglist-compat-def.h
+++ b/sysdeps/generic/siglist-compat-def.h
@@ -1,5 +1,5 @@
/* Generic siglist compatibility macro definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/siglist.h b/sysdeps/generic/siglist.h
index fdea0b3..298da5a 100644
--- a/sysdeps/generic/siglist.h
+++ b/sysdeps/generic/siglist.h
@@ -1,5 +1,5 @@
/* Canonical list of all signal names.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sigset-cvt-mask.h b/sysdeps/generic/sigset-cvt-mask.h
index c3e821c..d268f1c 100644
--- a/sysdeps/generic/sigset-cvt-mask.h
+++ b/sysdeps/generic/sigset-cvt-mask.h
@@ -1,6 +1,6 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
Generic version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sigsetops.h b/sysdeps/generic/sigsetops.h
index 13a8315..a51c6a8 100644
--- a/sysdeps/generic/sigsetops.h
+++ b/sysdeps/generic/sigsetops.h
@@ -1,5 +1,5 @@
/* __sigset_t manipulators. Generic/BSD version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/single-thread.h b/sysdeps/generic/single-thread.h
index a76ff7a..6a37563 100644
--- a/sysdeps/generic/single-thread.h
+++ b/sysdeps/generic/single-thread.h
@@ -1,5 +1,5 @@
/* Single thread optimization, generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/spawn_int_def.h b/sysdeps/generic/spawn_int_def.h
index 0b39bbf..f7f984e 100644
--- a/sysdeps/generic/spawn_int_def.h
+++ b/sysdeps/generic/spawn_int_def.h
@@ -1,5 +1,5 @@
/* Internal definitions for posix_spawn functionality. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/stackinfo.h b/sysdeps/generic/stackinfo.h
index bf752ce..8abbb3d 100644
--- a/sysdeps/generic/stackinfo.h
+++ b/sysdeps/generic/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,6 +15,15 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* This file contains a bit of information about the stack allocation
- of the processor. Since there is no general truth we can't say
- anything here. */
+/* This file contains a bit of information about the stack allocation of the
+ processor. Default to a non executable stack that grows downwards. */
+
+#ifndef _STACKINFO_H
+#define _STACKINFO_H 1
+
+#include <elf.h>
+
+#define _STACK_GROWS_DOWN 1
+#define DEFAULT_STACK_PERMS (PF_R|PF_W)
+
+#endif
diff --git a/sysdeps/generic/stap-probe-machine.h b/sysdeps/generic/stap-probe-machine.h
index 170b43b..a3716bd 100644
--- a/sysdeps/generic/stap-probe-machine.h
+++ b/sysdeps/generic/stap-probe-machine.h
@@ -1,5 +1,5 @@
/* Macros for customizing Systemtap <sys/sdt.h>. Generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/startup.h b/sysdeps/generic/startup.h
index a49e880..8640663 100644
--- a/sysdeps/generic/startup.h
+++ b/sysdeps/generic/startup.h
@@ -1,5 +1,5 @@
/* Generic definitions of functions used by static libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/stdio-lock.h b/sysdeps/generic/stdio-lock.h
index 8ed951b..10f1f32 100644
--- a/sysdeps/generic/stdio-lock.h
+++ b/sysdeps/generic/stdio-lock.h
@@ -1,5 +1,5 @@
/* Thread package specific definitions of stream lock type. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-fza.h b/sysdeps/generic/string-fza.h
index 48fb57e..25c4ba8 100644
--- a/sysdeps/generic/string-fza.h
+++ b/sysdeps/generic/string-fza.h
@@ -1,5 +1,5 @@
/* Basic zero byte detection. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-fzb.h b/sysdeps/generic/string-fzb.h
index 0f616e3..bb7bd3c 100644
--- a/sysdeps/generic/string-fzb.h
+++ b/sysdeps/generic/string-fzb.h
@@ -1,5 +1,5 @@
/* Zero byte detection, boolean. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-fzc.h b/sysdeps/generic/string-fzc.h
index db5eca2..920ac2c 100644
--- a/sysdeps/generic/string-fzc.h
+++ b/sysdeps/generic/string-fzc.h
@@ -1,5 +1,5 @@
/* Zero byte detection; indexes. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-fzi.h b/sysdeps/generic/string-fzi.h
index 2e643f8..3c1028d 100644
--- a/sysdeps/generic/string-fzi.h
+++ b/sysdeps/generic/string-fzi.h
@@ -1,5 +1,5 @@
/* Zero byte detection; indexes. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-misc.h b/sysdeps/generic/string-misc.h
index 74865c7..cac126e 100644
--- a/sysdeps/generic/string-misc.h
+++ b/sysdeps/generic/string-misc.h
@@ -1,5 +1,5 @@
/* Miscellaneous functions used in string implementations. Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-opthr.h b/sysdeps/generic/string-opthr.h
index 8c671f0..7e70846 100644
--- a/sysdeps/generic/string-opthr.h
+++ b/sysdeps/generic/string-opthr.h
@@ -1,5 +1,5 @@
/* Define a threshold for word access. Generic version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-optype.h b/sysdeps/generic/string-optype.h
index ad3edb2..5014c9f 100644
--- a/sysdeps/generic/string-optype.h
+++ b/sysdeps/generic/string-optype.h
@@ -1,5 +1,5 @@
/* Define a type to use for word access. Generic version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/string-shift.h b/sysdeps/generic/string-shift.h
index 4375ba2..b021722 100644
--- a/sysdeps/generic/string-shift.h
+++ b/sysdeps/generic/string-shift.h
@@ -1,5 +1,5 @@
/* Shift unaligned word read Generic C version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sys/ptrace.h b/sysdeps/generic/sys/ptrace.h
index 3f1334b..aaaae2a 100644
--- a/sysdeps/generic/sys/ptrace.h
+++ b/sysdeps/generic/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Generic version; constants are common.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sys/swap.h b/sysdeps/generic/sys/swap.h
index abbe019..7fe2702 100644
--- a/sysdeps/generic/sys/swap.h
+++ b/sysdeps/generic/sys/swap.h
@@ -1,5 +1,5 @@
/* Calls to enable and disable swapping on specified locations. Unix version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sys/sysinfo.h b/sysdeps/generic/sys/sysinfo.h
index c17259a..4b0062e 100644
--- a/sysdeps/generic/sys/sysinfo.h
+++ b/sysdeps/generic/sys/sysinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/sys/ucontext.h b/sysdeps/generic/sys/ucontext.h
index 971ed9d..e4fea35 100644
--- a/sysdeps/generic/sys/ucontext.h
+++ b/sysdeps/generic/sys/ucontext.h
@@ -1,5 +1,5 @@
/* Data structures for user-level context switching. Generic version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c b/sysdeps/generic/syscall_types.h
index 30f3839..cf08dfb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c
+++ b/sysdeps/generic/syscall_types.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Types and macros used for syscall issuing.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,10 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <string.h>
+#ifndef _SYSCALL_TYPES_H
+#define _SYSCALL_TYPES_H
-#define __strncasecmp __strncasecmp_power7
+typedef long int __syscall_arg_t;
+#define __SSC(__x) ((__syscall_arg_t) (__x))
-extern __typeof (strncasecmp) __strncasecmp_power7 attribute_hidden;
-
-#include <string/strncase.c>
+#endif
diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h
index c47e53d..ef5eba2 100644
--- a/sysdeps/generic/sysdep.h
+++ b/sysdeps/generic/sysdep.h
@@ -1,5 +1,5 @@
/* Generic asm macros used on many machines.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,6 +45,7 @@
# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
# define cfi_offset(reg, off) .cfi_offset reg, off
# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off
+# define cfi_val_offset(reg, off) .cfi_val_offset reg, off
# define cfi_register(r1, r2) .cfi_register r1, r2
# define cfi_return_column(reg) .cfi_return_column reg
# define cfi_restore(reg) .cfi_restore reg
@@ -74,6 +75,8 @@
".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
# define CFI_REL_OFFSET(reg, off) \
".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
+# define CFI_VAL_OFFSET(reg, off) \
+ ".cfi_val_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
# define CFI_REGISTER(r1, r2) \
".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
# define CFI_RETURN_COLUMN(reg) \
diff --git a/sysdeps/nptl/thread_pointer.h b/sysdeps/generic/thread_pointer.h
index 41e94a0..c6660eb 100644
--- a/sysdeps/nptl/thread_pointer.h
+++ b/sysdeps/generic/thread_pointer.h
@@ -1,5 +1,5 @@
/* __thread_pointer definition. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/thread_state.h b/sysdeps/generic/thread_state.h
index 0c5be11..673d07b 100644
--- a/sysdeps/generic/thread_state.h
+++ b/sysdeps/generic/thread_state.h
@@ -1,5 +1,5 @@
/* Mach thread state definitions for machine-independent code. Stub version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/time-clockid.h b/sysdeps/generic/time-clockid.h
index bc7438f..b243e1f 100644
--- a/sysdeps/generic/time-clockid.h
+++ b/sysdeps/generic/time-clockid.h
@@ -1,5 +1,5 @@
/* System specific time definitions. Generic Version.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tininess.h b/sysdeps/generic/tininess.h
index 0a0c122..5881c42 100644
--- a/sysdeps/generic/tininess.h
+++ b/sysdeps/generic/tininess.h
@@ -1,6 +1,6 @@
/* Specify architecture-specific rules for determining tininess of
floating-point results. Generic version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tls-internal-struct.h b/sysdeps/generic/tls-internal-struct.h
index a40b349..b98db8a 100644
--- a/sysdeps/generic/tls-internal-struct.h
+++ b/sysdeps/generic/tls-internal-struct.h
@@ -1,5 +1,5 @@
/* Per-thread state. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tls-internal.c b/sysdeps/generic/tls-internal.c
index 7648f38..308eb03 100644
--- a/sysdeps/generic/tls-internal.c
+++ b/sysdeps/generic/tls-internal.c
@@ -1,5 +1,5 @@
/* Per-thread state. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tls-internal.h b/sysdeps/generic/tls-internal.h
index 2ac0992..4592565 100644
--- a/sysdeps/generic/tls-internal.h
+++ b/sysdeps/generic/tls-internal.h
@@ -1,5 +1,5 @@
/* Per-thread state. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tls-setup.h b/sysdeps/generic/tls-setup.h
index 2f2a442..d8bd076 100644
--- a/sysdeps/generic/tls-setup.h
+++ b/sysdeps/generic/tls-setup.h
@@ -1,5 +1,5 @@
/* Definitions to set up thread-local data. Generic version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tls.h b/sysdeps/generic/tls.h
index bb363c1..f6155b5 100644
--- a/sysdeps/generic/tls.h
+++ b/sysdeps/generic/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tst-file-align.h b/sysdeps/generic/tst-file-align.h
index cdef4fd..2f6bd9b 100644
--- a/sysdeps/generic/tst-file-align.h
+++ b/sysdeps/generic/tst-file-align.h
@@ -1,5 +1,5 @@
/* Check file alignment. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/tst-stack-align.h b/sysdeps/generic/tst-stack-align.h
index 12473e3..af5ed7f 100644
--- a/sysdeps/generic/tst-stack-align.h
+++ b/sysdeps/generic/tst-stack-align.h
@@ -1,5 +1,5 @@
/* Check stack alignment. Generic version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
#include <stdint.h>
int
-__attribute__ ((weak, noclone, noinline))
+__attribute__ ((weak)) __attribute_optimization_barrier__
is_aligned (void *p, int align)
{
return (((uintptr_t) p) & (align - 1)) != 0;
diff --git a/sysdeps/generic/unwind-arch.h b/sysdeps/generic/unwind-arch.h
index d694cbb..ff965fa 100644
--- a/sysdeps/generic/unwind-arch.h
+++ b/sysdeps/generic/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. Generic version of parameters.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/unwind-dw2-fde-glibc.c b/sysdeps/generic/unwind-dw2-fde-glibc.c
index d34e6b8..c424e12 100644
--- a/sysdeps/generic/unwind-dw2-fde-glibc.c
+++ b/sysdeps/generic/unwind-dw2-fde-glibc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/unwind-dw2-fde.c b/sysdeps/generic/unwind-dw2-fde.c
index 25ef497..37ba268 100644
--- a/sysdeps/generic/unwind-dw2-fde.c
+++ b/sysdeps/generic/unwind-dw2-fde.c
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/unwind-dw2-fde.h b/sysdeps/generic/unwind-dw2-fde.h
index acfb5bb..37a5ad3 100644
--- a/sysdeps/generic/unwind-dw2-fde.h
+++ b/sysdeps/generic/unwind-dw2-fde.h
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/unwind-dw2.c b/sysdeps/generic/unwind-dw2.c
index 0808525..f0ed7b3 100644
--- a/sysdeps/generic/unwind-dw2.c
+++ b/sysdeps/generic/unwind-dw2.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/unwind-link.h b/sysdeps/generic/unwind-link.h
index 0b57208..f2b9447 100644
--- a/sysdeps/generic/unwind-link.h
+++ b/sysdeps/generic/unwind-link.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/unwind-pe.h b/sysdeps/generic/unwind-pe.h
index 72c09ea..873445f 100644
--- a/sysdeps/generic/unwind-pe.h
+++ b/sysdeps/generic/unwind-pe.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/unwind-resume.c b/sysdeps/generic/unwind-resume.c
index 90f4530..f5203d8 100644
--- a/sysdeps/generic/unwind-resume.c
+++ b/sysdeps/generic/unwind-resume.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/unwind-resume.h b/sysdeps/generic/unwind-resume.h
index d643b39..b16937a 100644
--- a/sysdeps/generic/unwind-resume.h
+++ b/sysdeps/generic/unwind-resume.h
@@ -1,5 +1,5 @@
/* Definitions for unwind-resume.c. Generic version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/unwind.h b/sysdeps/generic/unwind.h
index e439ebe..4f159a1 100644
--- a/sysdeps/generic/unwind.h
+++ b/sysdeps/generic/unwind.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/generic/utmp-equal.h b/sysdeps/generic/utmp-equal.h
index ee561bc..79c4dd1 100644
--- a/sysdeps/generic/utmp-equal.h
+++ b/sysdeps/generic/utmp-equal.h
@@ -1,5 +1,5 @@
/* Helper function for utmp functions to see if two entries are equal.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/utmp-size.h b/sysdeps/generic/utmp-size.h
index 89dbe87..215d92e 100644
--- a/sysdeps/generic/utmp-size.h
+++ b/sysdeps/generic/utmp-size.h
@@ -1,5 +1,5 @@
/* Expected sizes of utmp-related structures stored in files. 64-bit version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/generic/uw-sigframe.h b/sysdeps/generic/uw-sigframe.h
new file mode 100644
index 0000000..b357f8a
--- /dev/null
+++ b/sysdeps/generic/uw-sigframe.h
@@ -0,0 +1,31 @@
+/* Internal header file for handling signal frames. Generic version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Each architecture that supports SFrame may need to define several
+ macros to handle exceptional cases during stack backtracing.
+
+ MD_DECODE_SIGNAL_FRAME(frame) should recover frame information when
+ a signal-related exception occurs. The input frame must contain a
+ valid program counter (PC) field. On success, the macro should
+ return _URC_NO_REASON.
+
+ MD_DETECT_OUTERMOST_FRAME(frame) is used to detect the outermost
+ stack frame. It returns _URC_NO_REASON upon successful
+ detection.
+
+ The FRAME structure is defined in sysdeps/generic/sframe.h */
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
index d23ded4..de74ada 100644
--- a/sysdeps/gnu/Makefile
+++ b/sysdeps/gnu/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/ipc-perm.h b/sysdeps/gnu/bits/ipc-perm.h
index 33a5b07..8f521e5 100644
--- a/sysdeps/gnu/bits/ipc-perm.h
+++ b/sysdeps/gnu/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/ipc.h b/sysdeps/gnu/bits/ipc.h
index a23ed72..87d1d9d 100644
--- a/sysdeps/gnu/bits/ipc.h
+++ b/sysdeps/gnu/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/msq.h b/sysdeps/gnu/bits/msq.h
index a340512..c021918 100644
--- a/sysdeps/gnu/bits/msq.h
+++ b/sysdeps/gnu/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/sem.h b/sysdeps/gnu/bits/sem.h
index a7ec42f..b0d9e42 100644
--- a/sysdeps/gnu/bits/sem.h
+++ b/sysdeps/gnu/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/shm.h b/sysdeps/gnu/bits/shm.h
index 0b874fb..d121c15 100644
--- a/sysdeps/gnu/bits/shm.h
+++ b/sysdeps/gnu/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/types/struct_msqid_ds.h b/sysdeps/gnu/bits/types/struct_msqid_ds.h
index 8b580db..9e60b6d 100644
--- a/sysdeps/gnu/bits/types/struct_msqid_ds.h
+++ b/sysdeps/gnu/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the SysV message struct msqid_ds for GNU.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/types/struct_shmid_ds.h b/sysdeps/gnu/bits/types/struct_shmid_ds.h
index ea2715c..f2c1718 100644
--- a/sysdeps/gnu/bits/types/struct_shmid_ds.h
+++ b/sysdeps/gnu/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the shared memory struct shmid_ds for GNU.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h
index ed0df9b..ccc94e5 100644
--- a/sysdeps/gnu/bits/utmpx.h
+++ b/sysdeps/gnu/bits/utmpx.h
@@ -1,5 +1,5 @@
/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/getutmp.c b/sysdeps/gnu/getutmp.c
index 0aaaf47..15bab0e 100644
--- a/sysdeps/gnu/getutmp.c
+++ b/sysdeps/gnu/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/glob-lstat-compat.c b/sysdeps/gnu/glob-lstat-compat.c
index b0771a9..424c8d1 100644
--- a/sysdeps/gnu/glob-lstat-compat.c
+++ b/sysdeps/gnu/glob-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
GNU version
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/glob64-lstat-compat.c b/sysdeps/gnu/glob64-lstat-compat.c
index 55464ab..e97bec1 100644
--- a/sysdeps/gnu/glob64-lstat-compat.c
+++ b/sysdeps/gnu/glob64-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
GNU version
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/ifaddrs.c b/sysdeps/gnu/ifaddrs.c
index 2b2e0f9..44f9d9a 100644
--- a/sysdeps/gnu/ifaddrs.c
+++ b/sysdeps/gnu/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/ldsodefs.h b/sysdeps/gnu/ldsodefs.h
index 7d4a44a..9f31d6c 100644
--- a/sysdeps/gnu/ldsodefs.h
+++ b/sysdeps/gnu/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. GNU.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/net/if.h b/sysdeps/gnu/net/if.h
index 2ce0021..bbb69d6 100644
--- a/sysdeps/gnu/net/if.h
+++ b/sysdeps/gnu/net/if.h
@@ -1,5 +1,5 @@
/* net/if.h -- declarations for inquiring about network interfaces
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/netinet/ip_icmp.h b/sysdeps/gnu/netinet/ip_icmp.h
index 6b30459..3cfd1d9 100644
--- a/sysdeps/gnu/netinet/ip_icmp.h
+++ b/sysdeps/gnu/netinet/ip_icmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h
index b2acbb4..7a3500b 100644
--- a/sysdeps/gnu/netinet/tcp.h
+++ b/sysdeps/gnu/netinet/tcp.h
@@ -212,6 +212,9 @@ enum
# define TCPI_OPT_ECN 8 /* ECN was negotiated at TCP session init */
# define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
# define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */
+# define TCPI_OPT_USEC_TS 64 /* usec timestamps */
+# define TCPI_OPT_TFO_CHILD 128 /* child from a Fast Open option on SYN */
+
/* Values for tcpi_state. */
enum tcp_ca_state
diff --git a/sysdeps/gnu/netinet/udp.h b/sysdeps/gnu/netinet/udp.h
index a5333a3..49c62fe 100644
--- a/sysdeps/gnu/netinet/udp.h
+++ b/sysdeps/gnu/netinet/udp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/sys/mtio.h b/sysdeps/gnu/sys/mtio.h
index c21b006..fbcd288 100644
--- a/sysdeps/gnu/sys/mtio.h
+++ b/sysdeps/gnu/sys/mtio.h
@@ -1,5 +1,5 @@
/* Structures and definitions for magnetic tape I/O control commands.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/updwtmp.c b/sysdeps/gnu/updwtmp.c
index 458df6a..f7f35ce 100644
--- a/sysdeps/gnu/updwtmp.c
+++ b/sysdeps/gnu/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/utmp_file.c b/sysdeps/gnu/utmp_file.c
index a4575ac..d62ed2c 100644
--- a/sysdeps/gnu/utmp_file.c
+++ b/sysdeps/gnu/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/gnu/utmpx.h b/sysdeps/gnu/utmpx.h
index 8df0c18..3d0ba6c 100644
--- a/sysdeps/gnu/utmpx.h
+++ b/sysdeps/gnu/utmpx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/Makefile b/sysdeps/hppa/Makefile
index b1c238d..c08e351 100644
--- a/sysdeps/hppa/Makefile
+++ b/sysdeps/hppa/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/__longjmp.c b/sysdeps/hppa/__longjmp.c
index f020952..e420b37 100644
--- a/sysdeps/hppa/__longjmp.c
+++ b/sysdeps/hppa/__longjmp.c
@@ -1,5 +1,5 @@
/* longjmp for PA-RISC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/add_n.S b/sysdeps/hppa/add_n.S
index 528ac1a..c4333d8 100644
--- a/sysdeps/hppa/add_n.S
+++ b/sysdeps/hppa/add_n.S
@@ -1,7 +1,7 @@
;! HP-PA __mpn_add_n -- Add two limb vectors of the same length > 0 and store
;! sum in a third limb vector.
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/bits/link.h b/sysdeps/hppa/bits/link.h
index d5140c8..3b9cb19 100644
--- a/sysdeps/hppa/bits/link.h
+++ b/sysdeps/hppa/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/bits/setjmp.h b/sysdeps/hppa/bits/setjmp.h
index bbbaba9..d6b6b37 100644
--- a/sysdeps/hppa/bits/setjmp.h
+++ b/sysdeps/hppa/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/bsd-_setjmp.S b/sysdeps/hppa/bsd-_setjmp.S
index 2e0345a..3cec57f 100644
--- a/sysdeps/hppa/bsd-_setjmp.S
+++ b/sysdeps/hppa/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. HPPA version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/bsd-setjmp.S b/sysdeps/hppa/bsd-setjmp.S
index d620d0c..8917bf7 100644
--- a/sysdeps/hppa/bsd-setjmp.S
+++ b/sysdeps/hppa/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. HPPA version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/crti.S b/sysdeps/hppa/crti.S
index 4648222..8372e3c 100644
--- a/sysdeps/hppa/crti.S
+++ b/sysdeps/hppa/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for HPPA
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/crtn.S b/sysdeps/hppa/crtn.S
index bf5d800..1628252 100644
--- a/sysdeps/hppa/crtn.S
+++ b/sysdeps/hppa/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for HPPA
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
index e24a522..ce81988 100644
--- a/sysdeps/hppa/dl-fptr.c
+++ b/sysdeps/hppa/dl-fptr.c
@@ -1,5 +1,5 @@
/* Manage function descriptors. Generic version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h
index 7c5eb0b..5f16c5b 100644
--- a/sysdeps/hppa/dl-fptr.h
+++ b/sysdeps/hppa/dl-fptr.h
@@ -1,5 +1,5 @@
/* Function descriptors. HPPA version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,28 @@
#ifndef dl_hppa_fptr_h
#define dl_hppa_fptr_h 1
-#include <sysdeps/generic/dl-fptr.h>
+/* An FDESC is a function descriptor. */
+
+struct fdesc
+ {
+ ElfW(Addr) ip; /* code entry point */
+ ElfW(Addr) gp; /* global pointer */
+ };
+
+struct fdesc_table
+ {
+ struct fdesc_table *next;
+ unsigned int len; /* # of entries in fdesc table */
+ volatile unsigned int first_unused; /* index of first available entry */
+ struct fdesc fdesc[0];
+ };
+
+struct link_map;
+
+extern ElfW(Addr) _dl_boot_fptr_table [];
+
+extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *,
+ ElfW(Addr));
/* Initialize function pointer code. Call before relocation processing. */
extern void _dl_fptr_init (void);
diff --git a/sysdeps/hppa/dl-irel.h b/sysdeps/hppa/dl-irel.h
index 7913a5e..770dcb3 100644
--- a/sysdeps/hppa/dl-irel.h
+++ b/sysdeps/hppa/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
HP-PARISC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h
index 9040edb..b394003 100644
--- a/sysdeps/hppa/dl-lookupcfg.h
+++ b/sysdeps/hppa/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index 35e4528..dd2cf0a 100644
--- a/sysdeps/hppa/dl-machine.h
+++ b/sysdeps/hppa/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. PA-RISC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-runtime.c b/sysdeps/hppa/dl-runtime.c
index 3362864..14bece0 100644
--- a/sysdeps/hppa/dl-runtime.c
+++ b/sysdeps/hppa/dl-runtime.c
@@ -1,5 +1,5 @@
/* On-demand PLT fixup for shared objects. HPPA version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-runtime.h b/sysdeps/hppa/dl-runtime.h
index 9fbecae..2e83d2d 100644
--- a/sysdeps/hppa/dl-runtime.h
+++ b/sysdeps/hppa/dl-runtime.h
@@ -1,5 +1,5 @@
/* Helpers for On-demand PLT fixup for shared objects. HPPA version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-symaddr.c b/sysdeps/hppa/dl-symaddr.c
index f6ae33c..b25a100 100644
--- a/sysdeps/hppa/dl-symaddr.c
+++ b/sysdeps/hppa/dl-symaddr.c
@@ -1,5 +1,5 @@
/* Get the symbol address. HPPA version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/dl-tls.h b/sysdeps/hppa/dl-tls.h
deleted file mode 100644
index bbf7d76..0000000
--- a/sysdeps/hppa/dl-tls.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. hppa version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/hppa/dl-trampoline.S b/sysdeps/hppa/dl-trampoline.S
index b336f20..e7ca44b 100644
--- a/sysdeps/hppa/dl-trampoline.S
+++ b/sysdeps/hppa/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. hppa version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/elf-initfini.h b/sysdeps/hppa/elf-initfini.h
index 7a0c45f..8ab6226 100644
--- a/sysdeps/hppa/elf-initfini.h
+++ b/sysdeps/hppa/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. HPPA version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/bits/fenv.h b/sysdeps/hppa/fpu/bits/fenv.h
index 796155f..38cef83 100644
--- a/sysdeps/hppa/fpu/bits/fenv.h
+++ b/sysdeps/hppa/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fclrexcpt.c b/sysdeps/hppa/fpu/fclrexcpt.c
index cd5cf3d..454aeee 100644
--- a/sysdeps/hppa/fpu/fclrexcpt.c
+++ b/sysdeps/hppa/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fedisblxcpt.c b/sysdeps/hppa/fpu/fedisblxcpt.c
index a1aa500..5b43527 100644
--- a/sysdeps/hppa/fpu/fedisblxcpt.c
+++ b/sysdeps/hppa/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/feenablxcpt.c b/sysdeps/hppa/fpu/feenablxcpt.c
index 976be51..72790ce 100644
--- a/sysdeps/hppa/fpu/feenablxcpt.c
+++ b/sysdeps/hppa/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fegetenv.c b/sysdeps/hppa/fpu/fegetenv.c
index ccb224e..5ed4558 100644
--- a/sysdeps/hppa/fpu/fegetenv.c
+++ b/sysdeps/hppa/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fegetexcept.c b/sysdeps/hppa/fpu/fegetexcept.c
index 07057ee..8dcfa9c 100644
--- a/sysdeps/hppa/fpu/fegetexcept.c
+++ b/sysdeps/hppa/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fegetmode.c b/sysdeps/hppa/fpu/fegetmode.c
index b62fb77..f578166 100644
--- a/sysdeps/hppa/fpu/fegetmode.c
+++ b/sysdeps/hppa/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. HPPA version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fegetround.c b/sysdeps/hppa/fpu/fegetround.c
index f48fe23..f5a72a2 100644
--- a/sysdeps/hppa/fpu/fegetround.c
+++ b/sysdeps/hppa/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/feholdexcpt.c b/sysdeps/hppa/fpu/feholdexcpt.c
index 9751fa1..ce21b1a 100644
--- a/sysdeps/hppa/fpu/feholdexcpt.c
+++ b/sysdeps/hppa/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fesetenv.c b/sysdeps/hppa/fpu/fesetenv.c
index 949a473..a3653af 100644
--- a/sysdeps/hppa/fpu/fesetenv.c
+++ b/sysdeps/hppa/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fesetexcept.c b/sysdeps/hppa/fpu/fesetexcept.c
index c5979e1..38773fe 100644
--- a/sysdeps/hppa/fpu/fesetexcept.c
+++ b/sysdeps/hppa/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. HPPA version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fesetmode.c b/sysdeps/hppa/fpu/fesetmode.c
index eeec19b..0db5065 100644
--- a/sysdeps/hppa/fpu/fesetmode.c
+++ b/sysdeps/hppa/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. HPPA version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fesetround.c b/sysdeps/hppa/fpu/fesetround.c
index c8ad974..d8bc995 100644
--- a/sysdeps/hppa/fpu/fesetround.c
+++ b/sysdeps/hppa/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/feupdateenv.c b/sysdeps/hppa/fpu/feupdateenv.c
index 9623517..46b83cc 100644
--- a/sysdeps/hppa/fpu/feupdateenv.c
+++ b/sysdeps/hppa/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fgetexcptflg.c b/sysdeps/hppa/fpu/fgetexcptflg.c
index 5802cf3..5ea8738 100644
--- a/sysdeps/hppa/fpu/fgetexcptflg.c
+++ b/sysdeps/hppa/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fpu_control.h b/sysdeps/hppa/fpu/fpu_control.h
index 8cdb2f5..f6a01d4 100644
--- a/sysdeps/hppa/fpu/fpu_control.h
+++ b/sysdeps/hppa/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. HP-PARISC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fraiseexcpt.c b/sysdeps/hppa/fpu/fraiseexcpt.c
index f566226..8d0a47c 100644
--- a/sysdeps/hppa/fpu/fraiseexcpt.c
+++ b/sysdeps/hppa/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/fsetexcptflg.c b/sysdeps/hppa/fpu/fsetexcptflg.c
index 63d82e4..856c21e 100644
--- a/sysdeps/hppa/fpu/fsetexcptflg.c
+++ b/sysdeps/hppa/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/ftestexcept.c b/sysdeps/hppa/fpu/ftestexcept.c
index 8e3de63..0286230 100644
--- a/sysdeps/hppa/fpu/ftestexcept.c
+++ b/sysdeps/hppa/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps
deleted file mode 100644
index ea5101f..0000000
--- a/sysdeps/hppa/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1250 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan2_upward":
-double: 1
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: "carg_upward":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 5
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-
-Function: Real part of "catanh":
-double: 4
-float: 1
-ldouble: 4
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 3
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 3
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 2
-float: 2
-
-Function: "cos":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 2
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 2
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 3
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 1
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 6
-float: 2
-ldouble: 6
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp10m1":
-double: 2
-float: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp2m1":
-double: 1
-float: 1
-
-Function: "exp2m1_downward":
-double: 2
-float: 1
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 5
-float: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 4
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 1
-
-Function: "j1_downward":
-double: 9
-float: 8
-
-Function: "j1_towardzero":
-double: 5
-float: 8
-
-Function: "j1_upward":
-double: 9
-float: 9
-
-Function: "jn":
-double: 4
-float: 5
-ldouble: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 1
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log":
-double: 1
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log10p1":
-double: 1
-float: 1
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-
-Function: "log2_upward":
-double: 3
-float: 3
-
-Function: "log2p1":
-double: 2
-float: 2
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-
-Function: "log_downward":
-float: 2
-
-Function: "log_towardzero":
-float: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 2
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 2
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 1
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y0_downward":
-double: 3
-float: 9
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-
-Function: "y0_upward":
-double: 3
-float: 9
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y1_downward":
-double: 6
-float: 9
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-
-Function: "y1_upward":
-double: 7
-float: 9
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "yn_downward":
-double: 3
-float: 4
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-Function: "yn_upward":
-double: 4
-float: 5
-
-# end of automatic generation
diff --git a/sysdeps/hppa/fpu/libm-test-ulps-name b/sysdeps/hppa/fpu/libm-test-ulps-name
deleted file mode 100644
index 808d1bc..0000000
--- a/sysdeps/hppa/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-HPPA
diff --git a/sysdeps/hppa/gccframe.h b/sysdeps/hppa/gccframe.h
index 929e028..3091c3d 100644
--- a/sysdeps/hppa/gccframe.h
+++ b/sysdeps/hppa/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. hppa version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/get-rounding-mode.h b/sysdeps/hppa/get-rounding-mode.h
index 1172325..1a28871 100644
--- a/sysdeps/hppa/get-rounding-mode.h
+++ b/sysdeps/hppa/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. HP-PARISC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/hppa1.1/addmul_1.S b/sysdeps/hppa/hppa1.1/addmul_1.S
index a81f0bc..cc7e7fe 100644
--- a/sysdeps/hppa/hppa1.1/addmul_1.S
+++ b/sysdeps/hppa/hppa1.1/addmul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_addmul_1 -- Multiply a limb vector with a limb and
;! add the result to a second limb vector.
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/hppa1.1/mul_1.S b/sysdeps/hppa/hppa1.1/mul_1.S
index f0608f9..7b3df21 100644
--- a/sysdeps/hppa/hppa1.1/mul_1.S
+++ b/sysdeps/hppa/hppa1.1/mul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_mul_1 -- Multiply a limb vector with a limb and store
;! the result in a second limb vector.
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/hppa1.1/s_signbit.c b/sysdeps/hppa/hppa1.1/s_signbit.c
index 72fa305..660ffeb 100644
--- a/sysdeps/hppa/hppa1.1/s_signbit.c
+++ b/sysdeps/hppa/hppa1.1/s_signbit.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/hppa1.1/submul_1.S b/sysdeps/hppa/hppa1.1/submul_1.S
index 80ad55b..d32bdf7 100644
--- a/sysdeps/hppa/hppa1.1/submul_1.S
+++ b/sysdeps/hppa/hppa1.1/submul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_submul_1 -- Multiply a limb vector with a limb and
;! subtract the result from a second limb vector.
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/hppa1.1/udiv_qrnnd.S b/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
index dfe1f51..2f8101b 100644
--- a/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
+++ b/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
@@ -1,7 +1,7 @@
;! HP-PA __udiv_qrnnd division support, used from longlong.h.
;! This version runs fast on PA 7000 and later.
-;! Copyright (C) 1993-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1993-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/jmpbuf-offsets.h b/sysdeps/hppa/jmpbuf-offsets.h
index 3c6509e..a229910 100644
--- a/sysdeps/hppa/jmpbuf-offsets.h
+++ b/sysdeps/hppa/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. HPPA version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/jmpbuf-unwind.h b/sysdeps/hppa/jmpbuf-unwind.h
index ca98ebf..c850b38 100644
--- a/sysdeps/hppa/jmpbuf-unwind.h
+++ b/sysdeps/hppa/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. HPPA version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/ldsodefs.h b/sysdeps/hppa/ldsodefs.h
index 51a8f04..bf10b6b 100644
--- a/sysdeps/hppa/ldsodefs.h
+++ b/sysdeps/hppa/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/libc-tls.c b/sysdeps/hppa/libc-tls.c
index e234368..faf53cb 100644
--- a/sysdeps/hppa/libc-tls.c
+++ b/sysdeps/hppa/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. hppa version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/libgcc-compat.c b/sysdeps/hppa/libgcc-compat.c
index 60e4f22..b3f71b0 100644
--- a/sysdeps/hppa/libgcc-compat.c
+++ b/sysdeps/hppa/libgcc-compat.c
@@ -1,5 +1,5 @@
/* pre-.hidden libgcc compatibility
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/lshift.S b/sysdeps/hppa/lshift.S
index 6826383..6a7f79b 100644
--- a/sysdeps/hppa/lshift.S
+++ b/sysdeps/hppa/lshift.S
@@ -1,6 +1,6 @@
;! HP-PA __mpn_lshift --
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/machine-gmon.h b/sysdeps/hppa/machine-gmon.h
index eb39b04..fa9d334 100644
--- a/sysdeps/hppa/machine-gmon.h
+++ b/sysdeps/hppa/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. PA-RISC
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/math-tests-snan-payload.h b/sysdeps/hppa/math-tests-snan-payload.h
index c93ef37..27fcf17 100644
--- a/sysdeps/hppa/math-tests-snan-payload.h
+++ b/sysdeps/hppa/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. hppa version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/memcopy.h b/sysdeps/hppa/memcopy.h
index e1da978..71a1eb0 100644
--- a/sysdeps/hppa/memcopy.h
+++ b/sysdeps/hppa/memcopy.h
@@ -1,5 +1,5 @@
/* Definitions for memory copy functions, PA-RISC version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nan-high-order-bit.h b/sysdeps/hppa/nan-high-order-bit.h
index cd06bbb..0168b6a 100644
--- a/sysdeps/hppa/nan-high-order-bit.h
+++ b/sysdeps/hppa/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. HPPA version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h b/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
index 9c39b8b..86ef8f2 100644
--- a/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/bits/struct_mutex.h b/sysdeps/hppa/nptl/bits/struct_mutex.h
index 6a03941..3079249 100644
--- a/sysdeps/hppa/nptl/bits/struct_mutex.h
+++ b/sysdeps/hppa/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* HPPA internal mutex struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/bits/struct_rwlock.h b/sysdeps/hppa/nptl/bits/struct_rwlock.h
index f03a023..3f1b88f 100644
--- a/sysdeps/hppa/nptl/bits/struct_rwlock.h
+++ b/sysdeps/hppa/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* HPPA internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/hppa/nptl/jmpbuf-unwind.h b/sysdeps/hppa/nptl/jmpbuf-unwind.h
index a691aae..80f55f7 100644
--- a/sysdeps/hppa/nptl/jmpbuf-unwind.h
+++ b/sysdeps/hppa/nptl/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c
index e94326d..dab6aef 100644
--- a/sysdeps/hppa/nptl/pthread_spin_init.c
+++ b/sysdeps/hppa/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c
index 58599a0..3c46ef4 100644
--- a/sysdeps/hppa/nptl/pthread_spin_unlock.c
+++ b/sysdeps/hppa/nptl/pthread_spin_unlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/pthreaddef.h b/sysdeps/hppa/nptl/pthreaddef.h
index 5bfbce2..fe34b3d 100644
--- a/sysdeps/hppa/nptl/pthreaddef.h
+++ b/sysdeps/hppa/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h
index 82055fa..b10abbe 100644
--- a/sysdeps/hppa/nptl/tls.h
+++ b/sysdeps/hppa/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/hppa version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,6 +40,8 @@
/* Get the thread descriptor definition. */
# include <nptl/descr.h>
+# include <thread_pointer.h>
+
typedef struct
{
dtv_t *dtv;
@@ -62,7 +64,7 @@ typedef struct
/* Install new dtv for current thread. */
# define INSTALL_NEW_DTV(dtv) \
- ({ tcbhead_t *__tcbp = (tcbhead_t *)__get_cr27(); \
+ ({ tcbhead_t *__tcbp = (tcbhead_t *)__thread_pointer(); \
__tcbp->dtv = dtv; \
})
@@ -74,21 +76,21 @@ typedef struct
special attention since 'errno' is not yet available and if the
operation can cause a failure 'errno' must not be touched. */
# define TLS_INIT_TP(tcbp) \
- ({ __set_cr27(tcbp); true; })
+ ({ __set_thread_pointer((void *) tcbp); true; })
/* Value passed to 'clone' for initialization of the thread register. */
# define TLS_DEFINE_INIT_TP(tp, pd) void *tp = (pd) + 1
/* Return the address of the dtv for the current thread. */
# define THREAD_DTV() \
- ({ tcbhead_t *__tcbp = (tcbhead_t *)__get_cr27(); \
+ ({ tcbhead_t *__tcbp = (tcbhead_t *)__thread_pointer(); \
__tcbp->dtv; \
})
/* Return the thread descriptor for the current thread. */
# define THREAD_SELF \
({ struct pthread *__self; \
- __self = __get_cr27(); \
+ __self = (struct pthread *)__thread_pointer(); \
__self - 1; \
})
@@ -100,22 +102,6 @@ typedef struct
# include <tcb-access.h>
-static inline struct pthread *__get_cr27(void)
-{
- long cr27;
- asm ("mfctl %%cr27, %0" : "=r" (cr27) : );
- return (struct pthread *) cr27;
-}
-
-/* We write to cr27, clobber r26 as the input argument, and clobber
- r31 as the link register. */
-static inline void __set_cr27(struct pthread *cr27)
-{
- asm ( "ble 0xe0(%%sr2, %%r0)\n\t"
- "copy %0, %%r26"
- : : "r" (cr27) : "r26", "r31" );
-}
-
/* Get and set the global scope generation counter in struct pthread. */
#define THREAD_GSCOPE_FLAG_UNUSED 0
#define THREAD_GSCOPE_FLAG_USED 1
diff --git a/sysdeps/hppa/nptl/tst-oddstacklimit.c b/sysdeps/hppa/nptl/tst-oddstacklimit.c
index 9899461..6a97c92 100644
--- a/sysdeps/hppa/nptl/tst-oddstacklimit.c
+++ b/sysdeps/hppa/nptl/tst-oddstacklimit.c
@@ -1,6 +1,6 @@
/* Test NPTL with stack limit that is not a multiple of the page size.
HPPA version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/rshift.S b/sysdeps/hppa/rshift.S
index 2fda72c..4428112 100644
--- a/sysdeps/hppa/rshift.S
+++ b/sysdeps/hppa/rshift.S
@@ -1,6 +1,6 @@
;! HP-PA __mpn_rshift --
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/setjmp.S b/sysdeps/hppa/setjmp.S
index aba4c69..6b5762e 100644
--- a/sysdeps/hppa/setjmp.S
+++ b/sysdeps/hppa/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for HPPA.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/sotruss-lib.c b/sysdeps/hppa/sotruss-lib.c
index d702cc9..9e71c81 100644
--- a/sysdeps/hppa/sotruss-lib.c
+++ b/sysdeps/hppa/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for HP-PARISC.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/hppa/stackinfo.h b/sysdeps/hppa/stackinfo.h
index 6298a9e..53bb11f 100644
--- a/sysdeps/hppa/stackinfo.h
+++ b/sysdeps/hppa/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/start.S b/sysdeps/hppa/start.S
index f68aeff..470fc76 100644
--- a/sysdeps/hppa/start.S
+++ b/sysdeps/hppa/start.S
@@ -1,5 +1,5 @@
/* ELF startup code for HPPA.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/string-fzb.h b/sysdeps/hppa/string-fzb.h
index c776152..4c13b43 100644
--- a/sysdeps/hppa/string-fzb.h
+++ b/sysdeps/hppa/string-fzb.h
@@ -1,5 +1,5 @@
/* Zero byte detection, boolean. HPPA version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/string-fzc.h b/sysdeps/hppa/string-fzc.h
index 292ed06..37925e9 100644
--- a/sysdeps/hppa/string-fzc.h
+++ b/sysdeps/hppa/string-fzc.h
@@ -1,5 +1,5 @@
/* string-fzc.h -- zero byte detection with indexes. HPPA version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/string-fzi.h b/sysdeps/hppa/string-fzi.h
index c045087..85c77d8 100644
--- a/sysdeps/hppa/string-fzi.h
+++ b/sysdeps/hppa/string-fzi.h
@@ -1,5 +1,5 @@
/* string-fzi.h -- zero byte indexes. HPPA version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/sub_n.S b/sysdeps/hppa/sub_n.S
index eb9028a..d1ef265 100644
--- a/sysdeps/hppa/sub_n.S
+++ b/sysdeps/hppa/sub_n.S
@@ -1,7 +1,7 @@
;! HP-PA __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
;! store difference in a third limb vector.
-;! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/hppa/sysdep.h b/sysdeps/hppa/sysdep.h
index 5a3d1f6..e0c5c79 100644
--- a/sysdeps/hppa/sysdep.h
+++ b/sysdeps/hppa/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for HP/PA.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hppa/thread_pointer.h b/sysdeps/hppa/thread_pointer.h
new file mode 100644
index 0000000..51b203f
--- /dev/null
+++ b/sysdeps/hppa/thread_pointer.h
@@ -0,0 +1,40 @@
+/* __thread_pointer definition. hppa version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+static inline void *
+__thread_pointer (void)
+{
+ void *__thread_register;
+ __asm__ ("mfctl %%cr27, %0" : "=r" (__thread_register));
+ return __thread_register;
+}
+
+/* We write to cr27, clobber r26 as the input argument, and clobber
+ r31 as the link register. */
+static inline void
+__set_thread_pointer(void *__thread_pointer)
+{
+ asm ( "ble 0xe0(%%sr2, %%r0)\n\t"
+ "copy %0, %%r26"
+ : : "r" (__thread_pointer) : "r26", "r31" );
+}
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/hppa/tst-audit.h b/sysdeps/hppa/tst-audit.h
index 17e970d..c9cbf71 100644
--- a/sysdeps/hppa/tst-audit.h
+++ b/sysdeps/hppa/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. HP-PARISC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/hppa/udiv_qrnnd.S b/sysdeps/hppa/udiv_qrnnd.S
index 78bd05d..317fcda 100644
--- a/sysdeps/hppa/udiv_qrnnd.S
+++ b/sysdeps/hppa/udiv_qrnnd.S
@@ -1,7 +1,7 @@
;! HP-PA __udiv_qrnnd division support, used from longlong.h.
;! This version runs fast on pre-PA7000 CPUs.
-;! Copyright (C) 1993-2024 Free Software Foundation, Inc.
+;! Copyright (C) 1993-2025 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
diff --git a/sysdeps/htl/bits/cancelation.h b/sysdeps/htl/bits/cancelation.h
index 2de973f..db78721 100644
--- a/sysdeps/htl/bits/cancelation.h
+++ b/sysdeps/htl/bits/cancelation.h
@@ -1,5 +1,5 @@
/* Cancellation. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/pthread-np.h b/sysdeps/htl/bits/pthread-np.h
index b63443e..d86c096 100644
--- a/sysdeps/htl/bits/pthread-np.h
+++ b/sysdeps/htl/bits/pthread-np.h
@@ -1,5 +1,5 @@
/* Non-portable functions. Generic version.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/pthread.h b/sysdeps/htl/bits/pthread.h
index 9ff0fc4..c0ec393 100644
--- a/sysdeps/htl/bits/pthread.h
+++ b/sysdeps/htl/bits/pthread.h
@@ -1,5 +1,5 @@
/* Pthread data structures. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/pthreadtypes.h b/sysdeps/htl/bits/pthreadtypes.h
index c532498..c5c8fe0 100644
--- a/sysdeps/htl/bits/pthreadtypes.h
+++ b/sysdeps/htl/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
/* Declaration of common pthread types for all architectures. Hurd version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/semaphore.h b/sysdeps/htl/bits/semaphore.h
index d1b5875..94e6bcf 100644
--- a/sysdeps/htl/bits/semaphore.h
+++ b/sysdeps/htl/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Semaphore type. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/thread-shared-types.h b/sysdeps/htl/bits/thread-shared-types.h
index 251e254..32a5450 100644
--- a/sysdeps/htl/bits/thread-shared-types.h
+++ b/sysdeps/htl/bits/thread-shared-types.h
@@ -1,5 +1,5 @@
/* Common threading primitives definitions for both POSIX and C11.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/__pthread_key.h b/sysdeps/htl/bits/types/__pthread_key.h
index ea5c0f0..71e478c 100644
--- a/sysdeps/htl/bits/types/__pthread_key.h
+++ b/sysdeps/htl/bits/types/__pthread_key.h
@@ -1,5 +1,5 @@
/* Thread specific data. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/__pthread_t.h b/sysdeps/htl/bits/types/__pthread_t.h
index 4838b39..75985bd 100644
--- a/sysdeps/htl/bits/types/__pthread_t.h
+++ b/sysdeps/htl/bits/types/__pthread_t.h
@@ -1,5 +1,5 @@
/* Thread type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/__thrd_t.h b/sysdeps/htl/bits/types/__thrd_t.h
index 224ac2e..ac3fc90 100644
--- a/sysdeps/htl/bits/types/__thrd_t.h
+++ b/sysdeps/htl/bits/types/__thrd_t.h
@@ -1,5 +1,5 @@
/* Thread type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_attr.h b/sysdeps/htl/bits/types/struct___pthread_attr.h
index 0f0ee63..bb586a5 100644
--- a/sysdeps/htl/bits/types/struct___pthread_attr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_attr.h
@@ -1,5 +1,5 @@
/* Thread attribute type. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_barrier.h b/sysdeps/htl/bits/types/struct___pthread_barrier.h
index 006f047..98d4dc0 100644
--- a/sysdeps/htl/bits/types/struct___pthread_barrier.h
+++ b/sysdeps/htl/bits/types/struct___pthread_barrier.h
@@ -1,5 +1,5 @@
/* Thread barrier attribute type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_barrierattr.h b/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
index 9110678..5c13204 100644
--- a/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
@@ -1,5 +1,5 @@
/* Thread barrier attribute type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_cond.h b/sysdeps/htl/bits/types/struct___pthread_cond.h
index 98e789f..0c262d5 100644
--- a/sysdeps/htl/bits/types/struct___pthread_cond.h
+++ b/sysdeps/htl/bits/types/struct___pthread_cond.h
@@ -1,5 +1,5 @@
/* Condition type. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_condattr.h b/sysdeps/htl/bits/types/struct___pthread_condattr.h
index 6f3cb45..11d8a24 100644
--- a/sysdeps/htl/bits/types/struct___pthread_condattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_condattr.h
@@ -1,5 +1,5 @@
/* Condition attribute type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_mutexattr.h b/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
index 06543aa..ddbd2ca 100644
--- a/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
@@ -1,5 +1,5 @@
/* Mutex attribute type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_once.h b/sysdeps/htl/bits/types/struct___pthread_once.h
index 812f5f8..37c21bc 100644
--- a/sysdeps/htl/bits/types/struct___pthread_once.h
+++ b/sysdeps/htl/bits/types/struct___pthread_once.h
@@ -1,5 +1,5 @@
/* Dynamic package initialization data structures. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_rwlock.h b/sysdeps/htl/bits/types/struct___pthread_rwlock.h
index 963981e..d119db4 100644
--- a/sysdeps/htl/bits/types/struct___pthread_rwlock.h
+++ b/sysdeps/htl/bits/types/struct___pthread_rwlock.h
@@ -1,5 +1,5 @@
/* rwlock type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h b/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
index 4f2e241..b232049 100644
--- a/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
@@ -1,5 +1,5 @@
/* Thread rwlock attribute type. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/dl-support.c b/sysdeps/htl/dl-support.c
index 908fbf4..1dc356c 100644
--- a/sysdeps/htl/dl-support.c
+++ b/sysdeps/htl/dl-support.c
@@ -1,5 +1,5 @@
/* Support for dynamic linking code in static libc.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/dl-thread_gscope_wait.c b/sysdeps/htl/dl-thread_gscope_wait.c
index ee0a316..3998656 100644
--- a/sysdeps/htl/dl-thread_gscope_wait.c
+++ b/sysdeps/htl/dl-thread_gscope_wait.c
@@ -1,5 +1,5 @@
/* Out-of-line notification function for the GSCOPE locking mechanism.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/flockfile.c b/sysdeps/htl/flockfile.c
index 6c645da..0a9cc88 100644
--- a/sysdeps/htl/flockfile.c
+++ b/sysdeps/htl/flockfile.c
@@ -1,5 +1,5 @@
/* Lock I/O stream. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/ftrylockfile.c b/sysdeps/htl/ftrylockfile.c
index 3cd9ff4..b8acd30 100644
--- a/sysdeps/htl/ftrylockfile.c
+++ b/sysdeps/htl/ftrylockfile.c
@@ -1,5 +1,5 @@
/* Try locking I/O stream. Hurd version
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/funlockfile.c b/sysdeps/htl/funlockfile.c
index c87e9be..c89d17a 100644
--- a/sysdeps/htl/funlockfile.c
+++ b/sysdeps/htl/funlockfile.c
@@ -1,5 +1,5 @@
/* Unlock I/O stream. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/futex-internal.h b/sysdeps/htl/futex-internal.h
index acfc7bc..4976fa0 100644
--- a/sysdeps/htl/futex-internal.h
+++ b/sysdeps/htl/futex-internal.h
@@ -1,6 +1,6 @@
/* futex operations for glibc-internal use. Stub version; do not include
this file directly.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/include/bits/cancelation.h b/sysdeps/htl/include/bits/cancelation.h
new file mode 100644
index 0000000..ef2cd70
--- /dev/null
+++ b/sysdeps/htl/include/bits/cancelation.h
@@ -0,0 +1,5 @@
+#include_next <bits/cancelation.h>
+
+#ifndef _ISOMAC
+#include <pthreadP.h>
+#endif
diff --git a/sysdeps/htl/libc-lock.h b/sysdeps/htl/libc-lock.h
index b1a2f66..8e764a7 100644
--- a/sysdeps/htl/libc-lock.h
+++ b/sysdeps/htl/libc-lock.h
@@ -1,5 +1,5 @@
/* Private libc-internal interface for mutex locks.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,13 +37,10 @@
{ \
__handler.__handler = FCT; \
__handler.__arg = ARG; \
- if (__pthread_get_cleanup_stack != NULL) \
- { \
- __handlers = __pthread_get_cleanup_stack (); \
- __handler.__next = *__handlers; \
- *__handlers = &__handler; \
- __registered = 1; \
- } \
+ __handlers = __pthread_get_cleanup_stack (); \
+ __handler.__next = *__handlers; \
+ *__handlers = &__handler; \
+ __registered = 1; \
} \
#define __libc_cleanup_end(DOIT) \
@@ -59,12 +56,4 @@
#define __libc_cleanup_push(fct, arg) __libc_cleanup_region_start (1, fct, arg)
#define __libc_cleanup_pop(execute) __libc_cleanup_region_end (execute)
-#if !IS_IN (libpthread)
-# ifdef weak_extern
-weak_extern (__pthread_get_cleanup_stack)
-# else
-# pragma weak __pthread_get_cleanup_stack
-# endif
-#endif
-
#endif
diff --git a/sysdeps/htl/libc-lockP.h b/sysdeps/htl/libc-lockP.h
index fbb3e14..e9977e4 100644
--- a/sysdeps/htl/libc-lockP.h
+++ b/sysdeps/htl/libc-lockP.h
@@ -1,5 +1,5 @@
/* Private libc-internal interface for mutex locks.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,8 +75,8 @@
extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
const pthread_mutexattr_t *__mutex_attr);
-
extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_destroy)
extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
@@ -85,84 +85,52 @@ extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
+libc_hidden_proto (__pthread_mutexattr_init)
extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
- int __kind);
+libc_hidden_proto (__pthread_mutexattr_destroy)
extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
const pthread_rwlockattr_t *__attr);
+libc_hidden_proto (__pthread_rwlock_init)
extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_destroy)
extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_rdlock)
extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_tryrdlock)
extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_wrlock)
extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_trywrlock)
extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_unlock)
extern int __pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void));
+libc_hidden_proto (__pthread_once);
extern int __pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
void (*__child) (void));
-
-
+extern int __pthread_setcancelstate (int state, int *oldstate);
+libc_hidden_proto (__pthread_setcancelstate)
/* Make the pthread functions weak so that we can elide them from
single-threaded processes. */
#if !defined(__NO_WEAK_PTHREAD_ALIASES) && !IS_IN (libpthread)
# ifdef weak_extern
-weak_extern (__pthread_mutex_init)
-weak_extern (__pthread_mutex_destroy)
-weak_extern (__pthread_mutex_lock)
-weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutex_unlock)
-weak_extern (__pthread_mutexattr_init)
-weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_settype)
-weak_extern (__pthread_rwlock_init)
-weak_extern (__pthread_rwlock_destroy)
-weak_extern (__pthread_rwlock_rdlock)
-weak_extern (__pthread_rwlock_tryrdlock)
-weak_extern (__pthread_rwlock_wrlock)
-weak_extern (__pthread_rwlock_trywrlock)
-weak_extern (__pthread_rwlock_unlock)
-weak_extern (__pthread_key_create)
-weak_extern (__pthread_setspecific)
-weak_extern (__pthread_getspecific)
-weak_extern (__pthread_once)
weak_extern (__pthread_initialize)
weak_extern (__pthread_atfork)
-weak_extern (__pthread_setcancelstate)
# else
-# pragma weak __pthread_mutex_init
-# pragma weak __pthread_mutex_destroy
-# pragma weak __pthread_mutex_lock
-# pragma weak __pthread_mutex_trylock
-# pragma weak __pthread_mutex_unlock
-# pragma weak __pthread_mutexattr_init
-# pragma weak __pthread_mutexattr_destroy
-# pragma weak __pthread_mutexattr_settype
-# pragma weak __pthread_rwlock_destroy
-# pragma weak __pthread_rwlock_rdlock
-# pragma weak __pthread_rwlock_tryrdlock
-# pragma weak __pthread_rwlock_wrlock
-# pragma weak __pthread_rwlock_trywrlock
-# pragma weak __pthread_rwlock_unlock
-# pragma weak __pthread_key_create
-# pragma weak __pthread_setspecific
-# pragma weak __pthread_getspecific
-# pragma weak __pthread_once
# pragma weak __pthread_initialize
# pragma weak __pthread_atfork
-# pragma weak __pthread_setcancelstate
# endif
#endif
diff --git a/sysdeps/htl/pt-attr-destroy.c b/sysdeps/htl/pt-attr-destroy.c
index 8b6814e..6a7baa8 100644
--- a/sysdeps/htl/pt-attr-destroy.c
+++ b/sysdeps/htl/pt-attr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_attr_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -24,4 +25,8 @@ __pthread_attr_destroy (pthread_attr_t *attr)
{
return 0;
}
-weak_alias (__pthread_attr_destroy, pthread_attr_destroy);
+versioned_symbol (libc, __pthread_attr_destroy, pthread_attr_destroy, GLIBC_2_21);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_attr_destroy, pthread_attr_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-getdetachstate.c b/sysdeps/htl/pt-attr-getdetachstate.c
index da27398..d498af4 100644
--- a/sysdeps/htl/pt-attr-getdetachstate.c
+++ b/sysdeps/htl/pt-attr-getdetachstate.c
@@ -1,5 +1,5 @@
/* pthread_attr_getdetachstate. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-getguardsize.c b/sysdeps/htl/pt-attr-getguardsize.c
index e9e56d0..e753267 100644
--- a/sysdeps/htl/pt-attr-getguardsize.c
+++ b/sysdeps/htl/pt-attr-getguardsize.c
@@ -1,5 +1,5 @@
/* pthread_attr_getguardsize. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,11 +17,17 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_attr_getguardsize (const pthread_attr_t *attr, size_t * guardsize)
+__pthread_attr_getguardsize (const pthread_attr_t *attr, size_t * guardsize)
{
*guardsize = attr->__guardsize;
return 0;
}
+versioned_symbol (libpthread, __pthread_attr_getguardsize, pthread_attr_getguardsize, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_getguardsize, pthread_attr_getguardsize, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-getinheritsched.c b/sysdeps/htl/pt-attr-getinheritsched.c
index ba02e20..2093aa2 100644
--- a/sysdeps/htl/pt-attr-getinheritsched.c
+++ b/sysdeps/htl/pt-attr-getinheritsched.c
@@ -1,5 +1,5 @@
/* pthread_attr_getinheritsched. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-getschedparam.c b/sysdeps/htl/pt-attr-getschedparam.c
index 35eeedc..ff0abd6 100644
--- a/sysdeps/htl/pt-attr-getschedparam.c
+++ b/sysdeps/htl/pt-attr-getschedparam.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedparam. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-getschedpolicy.c b/sysdeps/htl/pt-attr-getschedpolicy.c
index 5deaf01..8c5e57f 100644
--- a/sysdeps/htl/pt-attr-getschedpolicy.c
+++ b/sysdeps/htl/pt-attr-getschedpolicy.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedpolicy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-getscope.c b/sysdeps/htl/pt-attr-getscope.c
index a1ef854..05be13d 100644
--- a/sysdeps/htl/pt-attr-getscope.c
+++ b/sysdeps/htl/pt-attr-getscope.c
@@ -1,5 +1,5 @@
/* pthread_attr_getscope. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -25,5 +26,8 @@ __pthread_attr_getscope (const pthread_attr_t *attr, int *contentionscope)
*contentionscope = attr->__contentionscope;
return 0;
}
+versioned_symbol (libc, __pthread_attr_getscope, pthread_attr_getscope, GLIBC_2_21);
-weak_alias (__pthread_attr_getscope, pthread_attr_getscope);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_attr_getscope, pthread_attr_getscope, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-getstack.c b/sysdeps/htl/pt-attr-getstack.c
index 42ab5fd..dbf10a7 100644
--- a/sysdeps/htl/pt-attr-getstack.c
+++ b/sysdeps/htl/pt-attr-getstack.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstack. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,7 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
#include <pthreadP.h>
int
@@ -28,4 +29,9 @@ __pthread_attr_getstack (const pthread_attr_t *attr,
__pthread_attr_getstacksize (attr, stacksize);
return 0;
}
-weak_alias (__pthread_attr_getstack, pthread_attr_getstack)
+libc_hidden_def (__pthread_attr_getstack)
+versioned_symbol (libpthread, __pthread_attr_getstack, pthread_attr_getstack, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_getstack, pthread_attr_getstack, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-getstackaddr.c b/sysdeps/htl/pt-attr-getstackaddr.c
index 2782ee3..c1c60e5 100644
--- a/sysdeps/htl/pt-attr-getstackaddr.c
+++ b/sysdeps/htl/pt-attr-getstackaddr.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstackaddr. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -25,4 +26,9 @@ __pthread_attr_getstackaddr (const pthread_attr_t *attr, void **stackaddr)
*stackaddr = attr->__stackaddr;
return 0;
}
-weak_alias (__pthread_attr_getstackaddr, pthread_attr_getstackaddr)
+libc_hidden_def (__pthread_attr_getstackaddr)
+versioned_symbol (libc, __pthread_attr_getstackaddr, pthread_attr_getstackaddr, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_getstackaddr,pthread_attr_getstackaddr, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-getstacksize.c b/sysdeps/htl/pt-attr-getstacksize.c
index 1f05fe0..388a5d0 100644
--- a/sysdeps/htl/pt-attr-getstacksize.c
+++ b/sysdeps/htl/pt-attr-getstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstacksize. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -25,4 +26,9 @@ __pthread_attr_getstacksize (const pthread_attr_t *attr, size_t * stacksize)
*stacksize = attr->__stacksize;
return 0;
}
-weak_alias (__pthread_attr_getstacksize, pthread_attr_getstacksize)
+libc_hidden_def (__pthread_attr_getstacksize)
+versioned_symbol (libc, __pthread_attr_getstacksize, pthread_attr_getstacksize, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_getstacksize,pthread_attr_getstacksize, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-init.c b/sysdeps/htl/pt-attr-init.c
index b01eb9e..8372233 100644
--- a/sysdeps/htl/pt-attr-init.c
+++ b/sysdeps/htl/pt-attr-init.c
@@ -1,5 +1,5 @@
/* pthread_attr_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -27,4 +28,9 @@ __pthread_attr_init (pthread_attr_t *attr)
*attr = __pthread_default_attr;
return 0;
}
-weak_alias (__pthread_attr_init, pthread_attr_init);
+libc_hidden_def (__pthread_attr_init)
+versioned_symbol (libc, __pthread_attr_init, pthread_attr_init, GLIBC_2_21);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_attr_init, pthread_attr_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setdetachstate.c b/sysdeps/htl/pt-attr-setdetachstate.c
index 26b6f91..5dac664 100644
--- a/sysdeps/htl/pt-attr-setdetachstate.c
+++ b/sysdeps/htl/pt-attr-setdetachstate.c
@@ -1,5 +1,5 @@
/* pthread_attr_setdetachstate. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-setguardsize.c b/sysdeps/htl/pt-attr-setguardsize.c
index 50a9a9a..84784c2 100644
--- a/sysdeps/htl/pt-attr-setguardsize.c
+++ b/sysdeps/htl/pt-attr-setguardsize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setguardsize. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,11 +17,17 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_attr_setguardsize (pthread_attr_t *attr, size_t guardsize)
+__pthread_attr_setguardsize (pthread_attr_t *attr, size_t guardsize)
{
attr->__guardsize = guardsize;
return 0;
}
+versioned_symbol (libpthread, __pthread_attr_setguardsize, pthread_attr_setguardsize, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_setguardsize, pthread_attr_setguardsize, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setinheritsched.c b/sysdeps/htl/pt-attr-setinheritsched.c
index 4ad0bb1..89e4902 100644
--- a/sysdeps/htl/pt-attr-setinheritsched.c
+++ b/sysdeps/htl/pt-attr-setinheritsched.c
@@ -1,5 +1,5 @@
/* pthread_attr_setinheritsched. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-setschedparam.c b/sysdeps/htl/pt-attr-setschedparam.c
index 39a9cdf..123d3be 100644
--- a/sysdeps/htl/pt-attr-setschedparam.c
+++ b/sysdeps/htl/pt-attr-setschedparam.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedparam. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
#include <pthread.h>
#include <sched.h>
#include <string.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -34,5 +34,8 @@ __pthread_attr_setschedparam (pthread_attr_t *attr,
return ENOTSUP;
}
+versioned_symbol (libc, __pthread_attr_setschedparam, pthread_attr_setschedparam, GLIBC_2_21);
-weak_alias (__pthread_attr_setschedparam, pthread_attr_setschedparam);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_attr_setschedparam, pthread_attr_setschedparam, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setschedpolicy.c b/sysdeps/htl/pt-attr-setschedpolicy.c
index 9648c77..6a05897 100644
--- a/sysdeps/htl/pt-attr-setschedpolicy.c
+++ b/sysdeps/htl/pt-attr-setschedpolicy.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedpolicy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-attr-setscope.c b/sysdeps/htl/pt-attr-setscope.c
index 9d5617f..0095f05 100644
--- a/sysdeps/htl/pt-attr-setscope.c
+++ b/sysdeps/htl/pt-attr-setscope.c
@@ -1,5 +1,5 @@
/* pthread_attr_setscope. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -37,5 +38,8 @@ __pthread_attr_setscope (pthread_attr_t *attr, int contentionscope)
return EINVAL;
}
}
+versioned_symbol (libc, __pthread_attr_setscope, pthread_attr_setscope, GLIBC_2_21);
-weak_alias (__pthread_attr_setscope, pthread_attr_setscope);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_attr_setscope, pthread_attr_setscope, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setstack.c b/sysdeps/htl/pt-attr-setstack.c
index 9ac6fe1..fede91f 100644
--- a/sysdeps/htl/pt-attr-setstack.c
+++ b/sysdeps/htl/pt-attr-setstack.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstack. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@
#include <pthread.h>
#include <assert.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
#include <pthreadP.h>
@@ -47,4 +47,9 @@ __pthread_attr_setstack (pthread_attr_t *attr, void *stackaddr, size_t stacksize
return 0;
}
-weak_alias (__pthread_attr_setstack, pthread_attr_setstack)
+libc_hidden_def (__pthread_attr_setstack)
+versioned_symbol (libc, __pthread_attr_setstack, pthread_attr_setstack, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_setstack, pthread_attr_setstack, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setstackaddr.c b/sysdeps/htl/pt-attr-setstackaddr.c
index c4fda74..ca7607e 100644
--- a/sysdeps/htl/pt-attr-setstackaddr.c
+++ b/sysdeps/htl/pt-attr-setstackaddr.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstackaddr. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -25,4 +26,9 @@ __pthread_attr_setstackaddr (pthread_attr_t *attr, void *stackaddr)
attr->__stackaddr = stackaddr;
return 0;
}
-weak_alias (__pthread_attr_setstackaddr, pthread_attr_setstackaddr)
+libc_hidden_def (__pthread_attr_setstackaddr)
+versioned_symbol (libc, __pthread_attr_setstackaddr, pthread_attr_setstackaddr, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_setstackaddr,pthread_attr_setstackaddr, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr-setstacksize.c b/sysdeps/htl/pt-attr-setstacksize.c
index 256f058..770ff00 100644
--- a/sysdeps/htl/pt-attr-setstacksize.c
+++ b/sysdeps/htl/pt-attr-setstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstacksize. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -25,4 +26,9 @@ __pthread_attr_setstacksize (pthread_attr_t *attr, size_t stacksize)
attr->__stacksize = stacksize;
return 0;
}
-weak_alias (__pthread_attr_setstacksize, pthread_attr_setstacksize)
+libc_hidden_def (__pthread_attr_setstacksize)
+versioned_symbol (libc, __pthread_attr_setstacksize, pthread_attr_setstacksize, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_attr_setstacksize,pthread_attr_setstacksize, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-attr.c b/sysdeps/htl/pt-attr.c
index ddc2c80..506cec9 100644
--- a/sysdeps/htl/pt-attr.c
+++ b/sysdeps/htl/pt-attr.c
@@ -1,5 +1,5 @@
/* Default attributes. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,3 +37,4 @@ struct __pthread_attr __pthread_default_attr = {
__contentionscope: PTHREAD_SCOPE_SYSTEM,
__schedpolicy: SCHED_OTHER
};
+libc_hidden_data_def (__pthread_default_attr)
diff --git a/sysdeps/htl/pt-barrier-destroy.c b/sysdeps/htl/pt-barrier-destroy.c
index 5d17d6a..e7ff703 100644
--- a/sysdeps/htl/pt-barrier-destroy.c
+++ b/sysdeps/htl/pt-barrier-destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrier_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,16 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_barrier_destroy (pthread_barrier_t *barrier)
+__pthread_barrier_destroy (pthread_barrier_t *barrier)
{
return 0;
}
+libc_hidden_def (__pthread_barrier_destroy)
+versioned_symbol (libc, __pthread_barrier_destroy, pthread_barrier_destroy, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrier_destroy, pthread_barrier_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrier-init.c b/sysdeps/htl/pt-barrier-init.c
index 74cdb30..0fc77c2 100644
--- a/sysdeps/htl/pt-barrier-init.c
+++ b/sysdeps/htl/pt-barrier-init.c
@@ -1,5 +1,5 @@
/* pthread_barrier_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,11 +19,11 @@
#include <pthread.h>
#include <string.h>
#include <assert.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_barrier_init (pthread_barrier_t *barrier,
+__pthread_barrier_init (pthread_barrier_t *barrier,
const pthread_barrierattr_t *attr, unsigned count)
{
ASSERT_TYPE_SIZE (pthread_barrier_t, __SIZEOF_PTHREAD_BARRIER_T);
@@ -51,3 +51,9 @@ pthread_barrier_init (pthread_barrier_t *barrier,
*barrier->__attr = *attr;
return 0;
}
+libc_hidden_def (__pthread_barrier_init)
+versioned_symbol (libc, __pthread_barrier_init, pthread_barrier_init, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrier_init, pthread_barrier_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrier-wait.c b/sysdeps/htl/pt-barrier-wait.c
index cedb3cc..7a106f2 100644
--- a/sysdeps/htl/pt-barrier-wait.c
+++ b/sysdeps/htl/pt-barrier-wait.c
@@ -1,5 +1,5 @@
/* pthread_barrier_wait. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,11 @@
#include <pthread.h>
#include <assert.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_barrier_wait (pthread_barrier_t *barrier)
+__pthread_barrier_wait (pthread_barrier_t *barrier)
{
__pthread_spin_wait (&barrier->__lock);
if (--barrier->__pending == 0)
@@ -68,3 +68,9 @@ pthread_barrier_wait (pthread_barrier_t *barrier)
return 0;
}
}
+libc_hidden_def (__pthread_barrier_wait)
+versioned_symbol (libc, __pthread_barrier_wait, pthread_barrier_wait, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrier_wait, pthread_barrier_wait, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrier.c b/sysdeps/htl/pt-barrier.c
index 970c416..859c084 100644
--- a/sysdeps/htl/pt-barrier.c
+++ b/sysdeps/htl/pt-barrier.c
@@ -1,5 +1,5 @@
/* Default barrier attributes. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-barrierattr-destroy.c b/sysdeps/htl/pt-barrierattr-destroy.c
index 0974570..fcb98f6 100644
--- a/sysdeps/htl/pt-barrierattr-destroy.c
+++ b/sysdeps/htl/pt-barrierattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,18 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_barrierattr_destroy (pthread_barrierattr_t *attr)
+__pthread_barrierattr_destroy (pthread_barrierattr_t *attr)
{
return 0;
}
+libc_hidden_def (__pthread_barrierattr_destroy)
+versioned_symbol (libc, __pthread_barrierattr_destroy, pthread_barrierattr_destroy, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrierattr_destroy, pthread_barrierattr_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrierattr-getpshared.c b/sysdeps/htl/pt-barrierattr-getpshared.c
index 453697e..be739e7 100644
--- a/sysdeps/htl/pt-barrierattr-getpshared.c
+++ b/sysdeps/htl/pt-barrierattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_getpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,18 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_barrierattr_getpshared (const pthread_barrierattr_t *attr,
+__pthread_barrierattr_getpshared (const pthread_barrierattr_t *attr,
int *pshared)
{
*pshared = attr->__pshared;
return 0;
}
+libc_hidden_def (__pthread_barrierattr_getpshared)
+versioned_symbol (libc, __pthread_barrierattr_getpshared, pthread_barrierattr_getpshared, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrierattr_getpshared, pthread_barrierattr_getpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrierattr-init.c b/sysdeps/htl/pt-barrierattr-init.c
index 233809c..5a520bb 100644
--- a/sysdeps/htl/pt-barrierattr-init.c
+++ b/sysdeps/htl/pt-barrierattr-init.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,12 +18,19 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_barrierattr_init (pthread_barrierattr_t *attr)
+__pthread_barrierattr_init (pthread_barrierattr_t *attr)
{
ASSERT_TYPE_SIZE (pthread_barrierattr_t, __SIZEOF_PTHREAD_BARRIERATTR_T);
*attr = __pthread_default_barrierattr;
return 0;
}
+libc_hidden_def (__pthread_barrierattr_init)
+versioned_symbol (libc, __pthread_barrierattr_init, pthread_barrierattr_init, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrierattr_init, pthread_barrierattr_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-barrierattr-setpshared.c b/sysdeps/htl/pt-barrierattr-setpshared.c
index 7da93a9..5816a44 100644
--- a/sysdeps/htl/pt-barrierattr-setpshared.c
+++ b/sysdeps/htl/pt-barrierattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_setpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
+__pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
{
switch (pshared)
{
@@ -35,4 +36,10 @@ pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
return EINVAL;
}
}
+libc_hidden_def (__pthread_barrierattr_setpshared)
+versioned_symbol (libc, __pthread_barrierattr_setpshared, pthread_barrierattr_setpshared, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_barrierattr_setpshared, pthread_barrierattr_setpshared, GLIBC_2_12);
+#endif
stub_warning (pthread_barrierattr_setpshared)
diff --git a/sysdeps/htl/pt-cond-brdcast.c b/sysdeps/htl/pt-cond-brdcast.c
index a007174..0b2bb82 100644
--- a/sysdeps/htl/pt-cond-brdcast.c
+++ b/sysdeps/htl/pt-cond-brdcast.c
@@ -1,5 +1,5 @@
/* Broadcast a condition. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
/* Unblock all threads that are blocked on condition variable COND. */
@@ -40,5 +40,9 @@ __pthread_cond_broadcast (pthread_cond_t *cond)
return 0;
}
+libc_hidden_def (__pthread_cond_broadcast)
+versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast, GLIBC_2_21);
-weak_alias (__pthread_cond_broadcast, pthread_cond_broadcast);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-cond-destroy.c b/sysdeps/htl/pt-cond-destroy.c
index e3660db..35e0e4a 100644
--- a/sysdeps/htl/pt-cond-destroy.c
+++ b/sysdeps/htl/pt-cond-destroy.c
@@ -1,5 +1,5 @@
/* pthread_cond_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,7 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
__pthread_cond_destroy (pthread_cond_t *cond)
@@ -43,5 +44,9 @@ __pthread_cond_destroy (pthread_cond_t *cond)
return 0;
}
+libc_hidden_def (__pthread_cond_destroy)
+versioned_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy, GLIBC_2_21);
-weak_alias (__pthread_cond_destroy, pthread_cond_destroy);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-cond-init.c b/sysdeps/htl/pt-cond-init.c
index 463e42c..c0dab94 100644
--- a/sysdeps/htl/pt-cond-init.c
+++ b/sysdeps/htl/pt-cond-init.c
@@ -1,5 +1,5 @@
/* pthread_cond_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
#include <pthread.h>
#include <assert.h>
#include <string.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -43,5 +43,9 @@ __pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t * attr)
*cond->__attr = *attr;
return 0;
}
+libc_hidden_def (__pthread_cond_init)
+versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_21);
-weak_alias (__pthread_cond_init, pthread_cond_init);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-cond-signal.c b/sysdeps/htl/pt-cond-signal.c
index 4eade03..5bd4218 100644
--- a/sysdeps/htl/pt-cond-signal.c
+++ b/sysdeps/htl/pt-cond-signal.c
@@ -1,5 +1,5 @@
/* Signal a condition. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
/* Unblock at least one of the threads that are blocked on condition
@@ -38,5 +38,9 @@ __pthread_cond_signal (pthread_cond_t *cond)
return 0;
}
+libc_hidden_def (__pthread_cond_signal)
+versioned_symbol (libc, __pthread_cond_signal, pthread_cond_signal, GLIBC_2_21);
-weak_alias (__pthread_cond_signal, pthread_cond_signal);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_signal, pthread_cond_signal, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-cond-timedwait.c b/sysdeps/htl/pt-cond-timedwait.c
index 78853da..16bae5c 100644
--- a/sysdeps/htl/pt-cond-timedwait.c
+++ b/sysdeps/htl/pt-cond-timedwait.c
@@ -1,5 +1,5 @@
/* Wait on a condition. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
#include <pthreadP.h>
#include <time.h>
@@ -34,8 +34,12 @@ __pthread_cond_timedwait (pthread_cond_t *cond,
{
return __pthread_cond_timedwait_internal (cond, mutex, -1, abstime);
}
+libc_hidden_def (__pthread_cond_timedwait)
+versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait, GLIBC_2_21);
-weak_alias (__pthread_cond_timedwait, pthread_cond_timedwait);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait, GLIBC_2_12);
+#endif
int
__pthread_cond_clockwait (pthread_cond_t *cond,
@@ -45,8 +49,8 @@ __pthread_cond_clockwait (pthread_cond_t *cond,
{
return __pthread_cond_timedwait_internal (cond, mutex, clockid, abstime);
}
-
weak_alias (__pthread_cond_clockwait, pthread_cond_clockwait);
+libc_hidden_def (__pthread_cond_clockwait)
struct cancel_ctx
{
diff --git a/sysdeps/htl/pt-cond-wait.c b/sysdeps/htl/pt-cond-wait.c
index d00547f..1d2b1a1 100644
--- a/sysdeps/htl/pt-cond-wait.c
+++ b/sysdeps/htl/pt-cond-wait.c
@@ -1,5 +1,5 @@
/* Wait on a condition. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
-
+#include <shlib-compat.h>
#include <pt-internal.h>
/* Implemented in pt-cond-timedwait.c. */
@@ -35,5 +35,9 @@ __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
{
return __pthread_cond_timedwait_internal (cond, mutex, -1, 0);
}
+libc_hidden_def (__pthread_cond_wait)
+versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_21);
-weak_alias (__pthread_cond_wait, pthread_cond_wait);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-cond.c b/sysdeps/htl/pt-cond.c
index 5c66c22..d0490f2 100644
--- a/sysdeps/htl/pt-cond.c
+++ b/sysdeps/htl/pt-cond.c
@@ -1,5 +1,5 @@
/* Default condition attributes. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,3 +25,4 @@ const struct __pthread_condattr __pthread_default_condattr = {
__pshared: PTHREAD_PROCESS_PRIVATE,
__clock: CLOCK_REALTIME
};
+libc_hidden_data_def (__pthread_default_condattr)
diff --git a/sysdeps/htl/pt-condattr-destroy.c b/sysdeps/htl/pt-condattr-destroy.c
index dc6a667..a7f2f5a 100644
--- a/sysdeps/htl/pt-condattr-destroy.c
+++ b/sysdeps/htl/pt-condattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_condattr_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -24,5 +25,8 @@ __pthread_condattr_destroy (pthread_condattr_t *cond)
{
return 0;
}
+versioned_symbol (libc, __pthread_condattr_destroy, pthread_condattr_destroy, GLIBC_2_21);
-weak_alias (__pthread_condattr_destroy, pthread_condattr_destroy);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_condattr_destroy, pthread_condattr_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-condattr-getclock.c b/sysdeps/htl/pt-condattr-getclock.c
index a1ac71b..766e85e 100644
--- a/sysdeps/htl/pt-condattr-getclock.c
+++ b/sysdeps/htl/pt-condattr-getclock.c
@@ -1,5 +1,5 @@
/* pthread_condattr_getclock. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,13 +17,18 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <time.h>
-
#include <pt-internal.h>
int
-pthread_condattr_getclock (const pthread_condattr_t *attr, clockid_t * clock)
+__pthread_condattr_getclock (const pthread_condattr_t *attr, clockid_t * clock)
{
*clock = attr->__clock;
return 0;
}
+versioned_symbol (libc, __pthread_condattr_getclock, pthread_condattr_getclock, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_condattr_getclock, pthread_condattr_getclock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-condattr-getpshared.c b/sysdeps/htl/pt-condattr-getpshared.c
index 7aea9e6..96bd0f4 100644
--- a/sysdeps/htl/pt-condattr-getpshared.c
+++ b/sysdeps/htl/pt-condattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_condattr_getpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,11 +17,17 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_condattr_getpshared (const pthread_condattr_t *attr, int *pshared)
+__pthread_condattr_getpshared (const pthread_condattr_t *attr, int *pshared)
{
*pshared = attr->__pshared;
return 0;
}
+versioned_symbol (libpthread, __pthread_condattr_getpshared, pthread_condattr_getpshared, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_condattr_getpshared, pthread_condattr_getpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-condattr-init.c b/sysdeps/htl/pt-condattr-init.c
index 4f7486a..fe494ef 100644
--- a/sysdeps/htl/pt-condattr-init.c
+++ b/sysdeps/htl/pt-condattr-init.c
@@ -1,5 +1,5 @@
/* pthread_condattr_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
@@ -27,5 +28,9 @@ __pthread_condattr_init (pthread_condattr_t *attr)
*attr = __pthread_default_condattr;
return 0;
}
+libc_hidden_def (__pthread_condattr_init)
+versioned_symbol (libc, __pthread_condattr_init, pthread_condattr_init, GLIBC_2_21);
-weak_alias (__pthread_condattr_init, pthread_condattr_init);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_condattr_init, pthread_condattr_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-condattr-setclock.c b/sysdeps/htl/pt-condattr-setclock.c
index d79cc58..500c925 100644
--- a/sysdeps/htl/pt-condattr-setclock.c
+++ b/sysdeps/htl/pt-condattr-setclock.c
@@ -1,5 +1,5 @@
/* pthread_condattr_setclock. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,11 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock)
+__pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock)
{
/* Only a few clocks are allowed. CLOCK_REALTIME is always allowed.
CLOCK_MONOTONIC only if the kernel has the necessary support. */
@@ -34,7 +35,7 @@ pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock)
struct timespec ts;
int res;
- res = clock_gettime (CLOCK_MONOTONIC, &ts);
+ res = __clock_gettime (CLOCK_MONOTONIC, &ts);
avail = res < 0 ? -1 : 1;
}
@@ -49,3 +50,8 @@ pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock)
return 0;
}
+versioned_symbol (libc, __pthread_condattr_setclock, pthread_condattr_setclock, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_condattr_setclock, pthread_condattr_setclock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-condattr-setpshared.c b/sysdeps/htl/pt-condattr-setpshared.c
index c78906d..630cd0b 100644
--- a/sysdeps/htl/pt-condattr-setpshared.c
+++ b/sysdeps/htl/pt-condattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_condattr_setpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,11 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <pt-internal.h>
int
-pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
+__pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
{
switch (pshared)
{
@@ -36,3 +37,8 @@ pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
}
}
stub_warning (pthread_condattr_setpshared)
+versioned_symbol (libc, __pthread_condattr_setpshared, pthread_condattr_setpshared, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_condattr_setpshared, pthread_condattr_setpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-destroy-specific.c b/sysdeps/htl/pt-destroy-specific.c
index 85aefe0..b5eb0ba 100644
--- a/sysdeps/htl/pt-destroy-specific.c
+++ b/sysdeps/htl/pt-destroy-specific.c
@@ -1,5 +1,5 @@
/* __pthread_destory_specific. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <pt-internal.h>
+#include <string.h>
void
__pthread_destroy_specific (struct __pthread *thread)
@@ -100,3 +101,4 @@ __pthread_destroy_specific (struct __pthread *thread)
memset (&thread->static_thread_specifics, 0,
sizeof (thread->static_thread_specifics));
}
+libc_hidden_def (__pthread_destroy_specific)
diff --git a/sysdeps/htl/pt-equal.c b/sysdeps/htl/pt-equal.c
index 7727cca..3a0a229 100644
--- a/sysdeps/htl/pt-equal.c
+++ b/sysdeps/htl/pt-equal.c
@@ -1,5 +1,5 @@
/* Default attributes. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-getconcurrency.c b/sysdeps/htl/pt-getconcurrency.c
index b74eb1c..d43ef02 100644
--- a/sysdeps/htl/pt-getconcurrency.c
+++ b/sysdeps/htl/pt-getconcurrency.c
@@ -1,5 +1,5 @@
/* Get the current level of desired concurrency. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-getcpuclockid.c b/sysdeps/htl/pt-getcpuclockid.c
index 94f3ce1..0402cef 100644
--- a/sysdeps/htl/pt-getcpuclockid.c
+++ b/sysdeps/htl/pt-getcpuclockid.c
@@ -1,5 +1,5 @@
/* Return a thread's cpu clockid. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-getschedparam.c b/sysdeps/htl/pt-getschedparam.c
index 0c6a2d0..778037c 100644
--- a/sysdeps/htl/pt-getschedparam.c
+++ b/sysdeps/htl/pt-getschedparam.c
@@ -1,5 +1,5 @@
/* Get the scheduling parameters for a thread. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-getspecific.c b/sysdeps/htl/pt-getspecific.c
index 2397bd6..d3ebb31 100644
--- a/sysdeps/htl/pt-getspecific.c
+++ b/sysdeps/htl/pt-getspecific.c
@@ -1,5 +1,5 @@
/* pthread_getspecific. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
void *
__pthread_getspecific (pthread_key_t key)
@@ -42,5 +43,9 @@ __pthread_getspecific (pthread_key_t key)
return self->thread_specifics[key];
}
-weak_alias (__pthread_getspecific, pthread_getspecific);
-hidden_def (__pthread_getspecific)
+libc_hidden_def (__pthread_getspecific)
+versioned_symbol (libc, __pthread_getspecific, pthread_getspecific, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_getspecific, pthread_getspecific, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-init-specific.c b/sysdeps/htl/pt-init-specific.c
index f453d22..f740b12 100644
--- a/sysdeps/htl/pt-init-specific.c
+++ b/sysdeps/htl/pt-init-specific.c
@@ -1,5 +1,5 @@
/* __pthread_init_specific. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-key-create.c b/sysdeps/htl/pt-key-create.c
index 8b7eee3..92a9db8 100644
--- a/sysdeps/htl/pt-key-create.c
+++ b/sysdeps/htl/pt-key-create.c
@@ -1,5 +1,5 @@
/* pthread_key_create. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,9 @@
#include <pt-internal.h>
#include <pthreadP.h>
+#include <shlib-compat.h>
+#include <ldsodefs.h>
+
pthread_mutex_t __pthread_key_lock;
pthread_once_t __pthread_key_once = PTHREAD_ONCE_INIT;
@@ -116,5 +119,9 @@ do_search:
__pthread_mutex_unlock (&__pthread_key_lock);
return 0;
}
-weak_alias (__pthread_key_create, pthread_key_create)
-hidden_def (__pthread_key_create)
+libc_hidden_def (__pthread_key_create)
+versioned_symbol (libc, __pthread_key_create, pthread_key_create, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_key_create, pthread_key_create, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-key-delete.c b/sysdeps/htl/pt-key-delete.c
index 03d856a..666314f 100644
--- a/sysdeps/htl/pt-key-delete.c
+++ b/sysdeps/htl/pt-key-delete.c
@@ -1,5 +1,5 @@
/* pthread_key_delete. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,8 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
+#include <ldsodefs.h>
int
__pthread_key_delete (pthread_key_t key)
@@ -69,4 +71,9 @@ __pthread_key_delete (pthread_key_t key)
return err;
}
-weak_alias (__pthread_key_delete, pthread_key_delete)
+libc_hidden_def (__pthread_key_delete)
+versioned_symbol (libc, __pthread_key_delete, pthread_key_delete, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_key_delete, pthread_key_delete, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-key.h b/sysdeps/htl/pt-key.h
index 1d06c84..6ae69d5 100644
--- a/sysdeps/htl/pt-key.h
+++ b/sysdeps/htl/pt-key.h
@@ -1,5 +1,5 @@
/* pthread_key internal declarations for the Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-once.c b/sysdeps/htl/pt-once.c
index 70e4d77..1f999ce 100644
--- a/sysdeps/htl/pt-once.c
+++ b/sysdeps/htl/pt-once.c
@@ -1,5 +1,5 @@
/* pthread_once. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <atomic.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
static void
clear_once_control (void *arg)
@@ -53,4 +54,9 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
return 0;
}
-weak_alias (__pthread_once, pthread_once);
+libc_hidden_def (__pthread_once)
+versioned_symbol (libc, __pthread_once, pthread_once, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_once, pthread_once, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-attr.c b/sysdeps/htl/pt-rwlock-attr.c
index c30dccb..999e108 100644
--- a/sysdeps/htl/pt-rwlock-attr.c
+++ b/sysdeps/htl/pt-rwlock-attr.c
@@ -1,5 +1,5 @@
/* Default rwlock attributes. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-rwlock-destroy.c b/sysdeps/htl/pt-rwlock-destroy.c
index 907ab3e..ffdd3c0 100644
--- a/sysdeps/htl/pt-rwlock-destroy.c
+++ b/sysdeps/htl/pt-rwlock-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a rwlock. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,16 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-_pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
+__pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
{
return 0;
}
+libc_hidden_def (__pthread_rwlock_destroy)
+versioned_symbol (libc, __pthread_rwlock_destroy, pthread_rwlock_destroy, GLIBC_2_42);
-strong_alias (_pthread_rwlock_destroy, pthread_rwlock_destroy);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_destroy, pthread_rwlock_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-init.c b/sysdeps/htl/pt-rwlock-init.c
index d60a281..e8a7c02 100644
--- a/sysdeps/htl/pt-rwlock-init.c
+++ b/sysdeps/htl/pt-rwlock-init.c
@@ -1,5 +1,5 @@
/* Initialize a rwlock. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,9 +19,10 @@
#include <pthread.h>
#include <string.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-_pthread_rwlock_init (pthread_rwlock_t *rwlock,
+__pthread_rwlock_init (pthread_rwlock_t *rwlock,
const pthread_rwlockattr_t *attr)
{
ASSERT_TYPE_SIZE (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T);
@@ -42,5 +43,9 @@ _pthread_rwlock_init (pthread_rwlock_t *rwlock,
*rwlock->__attr = *attr;
return 0;
}
+libc_hidden_def (__pthread_rwlock_init)
+versioned_symbol (libc, __pthread_rwlock_init, pthread_rwlock_init, GLIBC_2_42);
-strong_alias (_pthread_rwlock_init, pthread_rwlock_init);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_init, pthread_rwlock_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-rdlock.c b/sysdeps/htl/pt-rwlock-rdlock.c
index e6faf84..15648a8 100644
--- a/sysdeps/htl/pt-rwlock-rdlock.c
+++ b/sysdeps/htl/pt-rwlock-rdlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,7 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Implemented in pt-rwlock-timedrdlock.c. */
extern int __pthread_rwlock_timedrdlock_internal (struct __pthread_rwlock
@@ -32,4 +33,9 @@ __pthread_rwlock_rdlock (struct __pthread_rwlock *rwlock)
{
return __pthread_rwlock_timedrdlock_internal (rwlock, -1, 0);
}
-weak_alias (__pthread_rwlock_rdlock, pthread_rwlock_rdlock);
+libc_hidden_def (__pthread_rwlock_rdlock)
+versioned_symbol (libc, __pthread_rwlock_rdlock, pthread_rwlock_rdlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_rdlock, pthread_rwlock_rdlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-timedrdlock.c b/sysdeps/htl/pt-rwlock-timedrdlock.c
index 6bb7bb4..93874a1 100644
--- a/sysdeps/htl/pt-rwlock-timedrdlock.c
+++ b/sysdeps/htl/pt-rwlock-timedrdlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,8 +19,8 @@
#include <pthread.h>
#include <assert.h>
#include <time.h>
-
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Acquire the rwlock *RWLOCK for reading blocking until *ABSTIME if
it is already held. As a GNU extension, if TIMESPEC is NULL then
@@ -122,7 +122,12 @@ __pthread_rwlock_timedrdlock (struct __pthread_rwlock *rwlock,
{
return __pthread_rwlock_timedrdlock_internal (rwlock, CLOCK_REALTIME, abstime);
}
-weak_alias (__pthread_rwlock_timedrdlock, pthread_rwlock_timedrdlock)
+libc_hidden_def (__pthread_rwlock_timedrdlock)
+versioned_symbol (libc, __pthread_rwlock_timedrdlock, pthread_rwlock_timedrdlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_timedrdlock, pthread_rwlock_timedrdlock, GLIBC_2_12);
+#endif
int
__pthread_rwlock_clockrdlock (struct __pthread_rwlock *rwlock,
@@ -131,4 +136,9 @@ __pthread_rwlock_clockrdlock (struct __pthread_rwlock *rwlock,
{
return __pthread_rwlock_timedrdlock_internal (rwlock, clockid, abstime);
}
-weak_alias (__pthread_rwlock_clockrdlock, pthread_rwlock_clockrdlock)
+libc_hidden_def (__pthread_rwlock_clockrdlock)
+versioned_symbol (libc, __pthread_rwlock_clockrdlock, pthread_rwlock_clockrdlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_clockrdlock, pthread_rwlock_clockrdlock, GLIBC_2_32);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-timedwrlock.c b/sysdeps/htl/pt-rwlock-timedwrlock.c
index 587e5ad..bf3cc55 100644
--- a/sysdeps/htl/pt-rwlock-timedwrlock.c
+++ b/sysdeps/htl/pt-rwlock-timedwrlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,8 +19,8 @@
#include <pthread.h>
#include <assert.h>
#include <time.h>
-
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Acquire RWLOCK for writing blocking until *ABSTIME if we cannot get
it. As a special GNU extension, if ABSTIME is NULL then the wait
@@ -105,7 +105,12 @@ __pthread_rwlock_timedwrlock (struct __pthread_rwlock *rwlock,
{
return __pthread_rwlock_timedwrlock_internal (rwlock, CLOCK_REALTIME, abstime);
}
-weak_alias (__pthread_rwlock_timedwrlock, pthread_rwlock_timedwrlock)
+libc_hidden_def (__pthread_rwlock_timedwrlock)
+versioned_symbol (libc, __pthread_rwlock_timedwrlock, pthread_rwlock_timedwrlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_timedwrlock, pthread_rwlock_timedwrlock, GLIBC_2_12);
+#endif
int
__pthread_rwlock_clockwrlock (struct __pthread_rwlock *rwlock,
@@ -114,4 +119,9 @@ __pthread_rwlock_clockwrlock (struct __pthread_rwlock *rwlock,
{
return __pthread_rwlock_timedwrlock_internal (rwlock, clockid, abstime);
}
-weak_alias (__pthread_rwlock_clockwrlock, pthread_rwlock_clockwrlock)
+libc_hidden_def (__pthread_rwlock_clockwrlock)
+versioned_symbol (libc, __pthread_rwlock_clockwrlock, pthread_rwlock_clockwrlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_clockwrlock, pthread_rwlock_clockwrlock, GLIBC_2_32);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-tryrdlock.c b/sysdeps/htl/pt-rwlock-tryrdlock.c
index effab9e..74aa636 100644
--- a/sysdeps/htl/pt-rwlock-tryrdlock.c
+++ b/sysdeps/htl/pt-rwlock-tryrdlock.c
@@ -1,5 +1,5 @@
/* Try to acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,12 +18,12 @@
#include <pthread.h>
#include <assert.h>
-
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Try to acquire RWLOCK. */
int
-pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock)
+__pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock)
{
__pthread_spin_wait (&rwlock->__lock);
if (__pthread_spin_trylock (&rwlock->__held) == 0)
@@ -53,3 +53,9 @@ pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock)
return EBUSY;
}
+libc_hidden_def (__pthread_rwlock_tryrdlock)
+versioned_symbol (libc, __pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-trywrlock.c b/sysdeps/htl/pt-rwlock-trywrlock.c
index 9ccf5b1..8de0e59 100644
--- a/sysdeps/htl/pt-rwlock-trywrlock.c
+++ b/sysdeps/htl/pt-rwlock-trywrlock.c
@@ -1,5 +1,5 @@
/* Try to acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,12 +18,12 @@
#include <pthread.h>
#include <assert.h>
-
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Try to acquire RWLOCK for writing. */
int
-pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock)
+__pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock)
{
__pthread_spin_wait (&rwlock->__lock);
if (__pthread_spin_trylock (&rwlock->__held) == 0)
@@ -43,3 +43,9 @@ pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock)
return EBUSY;
}
+libc_hidden_def (__pthread_rwlock_trywrlock)
+versioned_symbol (libc, __pthread_rwlock_trywrlock, pthread_rwlock_trywrlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_trywrlock, pthread_rwlock_trywrlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-unlock.c b/sysdeps/htl/pt-rwlock-unlock.c
index eca20df..5012add 100644
--- a/sysdeps/htl/pt-rwlock-unlock.c
+++ b/sysdeps/htl/pt-rwlock-unlock.c
@@ -1,5 +1,5 @@
/* Unlock a rwlock. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Unlock *RWLOCK, rescheduling a waiting writer thread or, if there
are no threads waiting for a write lock, rescheduling the reader
@@ -95,4 +96,9 @@ __pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
__pthread_spin_unlock (&rwlock->__lock);
return 0;
}
-weak_alias (__pthread_rwlock_unlock, pthread_rwlock_unlock);
+libc_hidden_def (__pthread_rwlock_unlock)
+versioned_symbol (libc, __pthread_rwlock_unlock, pthread_rwlock_unlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_unlock, pthread_rwlock_unlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlock-wrlock.c b/sysdeps/htl/pt-rwlock-wrlock.c
index ade3e76..ca0e5b0 100644
--- a/sysdeps/htl/pt-rwlock-wrlock.c
+++ b/sysdeps/htl/pt-rwlock-wrlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,8 +18,8 @@
#include <pthread.h>
#include <assert.h>
-
#include <pt-internal.h>
+#include <shlib-compat.h>
/* Implemented in pt-rwlock-timedwrlock.c. */
extern int __pthread_rwlock_timedwrlock_internal (struct __pthread_rwlock
@@ -34,4 +34,9 @@ __pthread_rwlock_wrlock (struct __pthread_rwlock *rwlock)
{
return __pthread_rwlock_timedwrlock_internal (rwlock, -1, 0);
}
-weak_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock);
+libc_hidden_def (__pthread_rwlock_wrlock)
+versioned_symbol (libc, __pthread_rwlock_wrlock, pthread_rwlock_wrlock, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlock_wrlock, pthread_rwlock_wrlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlockattr-destroy.c b/sysdeps/htl/pt-rwlockattr-destroy.c
index d518079..671eb84 100644
--- a/sysdeps/htl/pt-rwlockattr-destroy.c
+++ b/sysdeps/htl/pt-rwlockattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_destroy. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,16 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
+__pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
{
return 0;
}
+libc_hidden_def (__pthread_rwlockattr_destroy)
+versioned_symbol (libc, __pthread_rwlockattr_destroy, pthread_rwlockattr_destroy, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlockattr_destroy, pthread_rwlockattr_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlockattr-getpshared.c b/sysdeps/htl/pt-rwlockattr-getpshared.c
index 6577577..15470ad 100644
--- a/sysdeps/htl/pt-rwlockattr-getpshared.c
+++ b/sysdeps/htl/pt-rwlockattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_getpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,10 +18,17 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attr, int *pshared)
+__pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attr, int *pshared)
{
*pshared = attr->__pshared;
return 0;
}
+libc_hidden_def (__pthread_rwlockattr_getpshared)
+versioned_symbol (libc, __pthread_rwlockattr_getpshared, pthread_rwlockattr_getpshared, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlockattr_getpshared, pthread_rwlockattr_getpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlockattr-init.c b/sysdeps/htl/pt-rwlockattr-init.c
index a9c866f..ce3f3c6 100644
--- a/sysdeps/htl/pt-rwlockattr-init.c
+++ b/sysdeps/htl/pt-rwlockattr-init.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_init. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,12 +18,19 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
+__pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
{
ASSERT_TYPE_SIZE (pthread_rwlockattr_t, __SIZEOF_PTHREAD_RWLOCKATTR_T);
*attr = __pthread_default_rwlockattr;
return 0;
}
+libc_hidden_def (__pthread_rwlockattr_init)
+versioned_symbol (libc, __pthread_rwlockattr_init, pthread_rwlockattr_init, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlockattr_init, pthread_rwlockattr_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-rwlockattr-setpshared.c b/sysdeps/htl/pt-rwlockattr-setpshared.c
index fa37c3e..e23a032 100644
--- a/sysdeps/htl/pt-rwlockattr-setpshared.c
+++ b/sysdeps/htl/pt-rwlockattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_setpshared. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
-pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
+__pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
{
switch (pshared)
{
@@ -35,4 +36,10 @@ pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
return EINVAL;
}
}
+libc_hidden_def (__pthread_rwlockattr_setpshared)
+versioned_symbol (libc, __pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared, GLIBC_2_12);
+#endif
stub_warning (pthread_rwlockattr_setpshared)
diff --git a/sysdeps/htl/pt-setconcurrency.c b/sysdeps/htl/pt-setconcurrency.c
index 4d2157b..7b4b6f7 100644
--- a/sysdeps/htl/pt-setconcurrency.c
+++ b/sysdeps/htl/pt-setconcurrency.c
@@ -1,5 +1,5 @@
/* Set the desired level of concurrency. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-setschedparam.c b/sysdeps/htl/pt-setschedparam.c
index 5594c9f..2e55f04 100644
--- a/sysdeps/htl/pt-setschedparam.c
+++ b/sysdeps/htl/pt-setschedparam.c
@@ -1,5 +1,5 @@
/* Set the scheduling parameters for a thread. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-setschedprio.c b/sysdeps/htl/pt-setschedprio.c
index 5767b99..7e1429c 100644
--- a/sysdeps/htl/pt-setschedprio.c
+++ b/sysdeps/htl/pt-setschedprio.c
@@ -1,5 +1,5 @@
/* Set the scheduling priority of a thread. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pt-setspecific.c b/sysdeps/htl/pt-setspecific.c
index 2b566df..0535225 100644
--- a/sysdeps/htl/pt-setspecific.c
+++ b/sysdeps/htl/pt-setspecific.c
@@ -1,5 +1,5 @@
/* pthread_setspecific. Generic version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,8 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
+#include <string.h>
int
__pthread_setspecific (pthread_key_t key, const void *value)
@@ -68,5 +70,9 @@ __pthread_setspecific (pthread_key_t key, const void *value)
self->thread_specifics[key] = (void *) value;
return 0;
}
-weak_alias (__pthread_setspecific, pthread_setspecific);
-hidden_def (__pthread_setspecific)
+libc_hidden_def (__pthread_setspecific)
+versioned_symbol (libc, __pthread_setspecific, pthread_setspecific, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_setspecific, pthread_setspecific, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/pt-startup.c b/sysdeps/htl/pt-startup.c
index e83bdba..6e41d45 100644
--- a/sysdeps/htl/pt-startup.c
+++ b/sysdeps/htl/pt-startup.c
@@ -1,5 +1,5 @@
/* Thread initialization. Generic version.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h
index f7b6fb7..aec13a6 100644
--- a/sysdeps/htl/pthread-functions.h
+++ b/sysdeps/htl/pthread-functions.h
@@ -1,5 +1,5 @@
/* Declaration of libc stubs for pthread functions. Hurd version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,39 +21,7 @@
#include <pthread.h>
-int __pthread_attr_destroy (pthread_attr_t *);
-int __pthread_attr_init (pthread_attr_t *);
-int __pthread_attr_setschedparam (pthread_attr_t *,
- const struct sched_param *);
-int __pthread_attr_getscope (const pthread_attr_t *, int *);
-int __pthread_attr_setscope (pthread_attr_t *, int);
-int __pthread_condattr_destroy (pthread_condattr_t *);
-int __pthread_condattr_init (pthread_condattr_t *);
-int __pthread_cond_broadcast (pthread_cond_t *);
-int __pthread_cond_destroy (pthread_cond_t *);
-int __pthread_cond_init (pthread_cond_t *,
- const pthread_condattr_t *);
-int __pthread_cond_signal (pthread_cond_t *);
-int __pthread_cond_wait (pthread_cond_t *, pthread_mutex_t *);
-int __pthread_cond_timedwait (pthread_cond_t *, pthread_mutex_t *,
- const struct timespec *);
void __pthread_exit (void *) __attribute__ ((__noreturn__));
-int _pthread_mutex_destroy (pthread_mutex_t *);
-int _pthread_mutex_init (pthread_mutex_t *,
- const pthread_mutexattr_t *);
-int __pthread_mutex_lock (pthread_mutex_t *);
-int __pthread_mutex_trylock (pthread_mutex_t *);
-int __pthread_mutex_unlock (pthread_mutex_t *);
-int __pthread_setcancelstate (int, int *);
-int __pthread_setcanceltype (int, int *);
-struct __pthread_cancelation_handler **__pthread_get_cleanup_stack (void);
-int __pthread_once (pthread_once_t *, void (*) (void));
-int __pthread_rwlock_rdlock (pthread_rwlock_t *);
-int __pthread_rwlock_wrlock (pthread_rwlock_t *);
-int __pthread_rwlock_unlock (pthread_rwlock_t *);
-int __pthread_key_create (pthread_key_t *, void (*) (void *));
-void *__pthread_getspecific (pthread_key_t);
-int __pthread_setspecific (pthread_key_t, const void *);
void _cthreads_flockfile (FILE *);
void _cthreads_funlockfile (FILE *);
@@ -64,39 +32,7 @@ int _cthreads_ftrylockfile (FILE *);
so if possible avoid breaking it and append new hooks to the end. */
struct pthread_functions
{
- int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
- int (*ptr_pthread_attr_init) (pthread_attr_t *);
- int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
- const struct sched_param *);
- int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
- int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
- int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
- int (*ptr_pthread_cond_broadcast) (pthread_cond_t *);
- int (*ptr_pthread_cond_destroy) (pthread_cond_t *);
- int (*ptr_pthread_cond_init) (pthread_cond_t *,
- const pthread_condattr_t *);
- int (*ptr_pthread_cond_signal) (pthread_cond_t *);
- int (*ptr_pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
- int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
- const struct timespec *);
void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
- int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
- const pthread_mutexattr_t *);
- int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_trylock) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
- int (*ptr___pthread_setcancelstate) (int, int *);
- int (*ptr_pthread_setcanceltype) (int, int *);
- struct __pthread_cancelation_handler **(*ptr___pthread_get_cleanup_stack) (void);
- int (*ptr_pthread_once) (pthread_once_t *, void (*) (void));
- int (*ptr_pthread_rwlock_rdlock) (pthread_rwlock_t *);
- int (*ptr_pthread_rwlock_wrlock) (pthread_rwlock_t *);
- int (*ptr_pthread_rwlock_unlock) (pthread_rwlock_t *);
- int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *));
- void *(*ptr___pthread_getspecific) (pthread_key_t);
- int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
void (*ptr__IO_flockfile) (FILE *);
void (*ptr__IO_funlockfile) (FILE *);
int (*ptr__IO_ftrylockfile) (FILE *);
diff --git a/sysdeps/htl/pthread.h b/sysdeps/htl/pthread.h
index 65837d1..a299fec 100644
--- a/sysdeps/htl/pthread.h
+++ b/sysdeps/htl/pthread.h
@@ -1,5 +1,5 @@
/* Posix threads. Hurd version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h
index cf8a2ef..535740f 100644
--- a/sysdeps/htl/pthreadP.h
+++ b/sysdeps/htl/pthreadP.h
@@ -1,5 +1,5 @@
/* Declarations of internal pthread functions used by libc. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@
#include <pthread.h>
#include <link.h>
+#include <bits/cancelation.h>
/* Attribute to indicate thread creation was issued from C11 thrd_create. */
#define ATTR_C11_THREAD ((void*)(uintptr_t)-1)
@@ -31,30 +32,138 @@ extern void __pthread_init_static_tls (struct link_map *) attribute_hidden;
/* These represent the interface used by glibc itself. */
+extern int __pthread_barrier_destroy (pthread_barrier_t *__barrier);
+libc_hidden_proto (__pthread_barrier_destroy)
+extern int __pthread_barrier_init (pthread_barrier_t *__barrier,
+ const pthread_barrierattr_t *__attr,
+ unsigned __count);
+libc_hidden_proto (__pthread_barrier_init)
+extern int __pthread_barrier_wait (pthread_barrier_t *__barrier);
+libc_hidden_proto (__pthread_barrier_wait)
+extern int __pthread_barrierattr_destroy (pthread_barrierattr_t *__attr);
+libc_hidden_proto (__pthread_barrierattr_destroy)
+extern int __pthread_barrierattr_getpshared (const pthread_barrierattr_t *__attr,
+ int *__pshared);
+libc_hidden_proto (__pthread_barrierattr_getpshared)
+extern int __pthread_barrierattr_init (pthread_barrierattr_t *__attr);
+libc_hidden_proto (__pthread_barrierattr_init)
+extern int __pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
+ int __pshared);
+libc_hidden_proto (__pthread_barrierattr_setpshared)
extern int __pthread_mutex_init (pthread_mutex_t *__mutex, const pthread_mutexattr_t *__attr);
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_init)
+extern int __pthread_mutex_clocklock (pthread_mutex_t *__mutex, clockid_t __clockid,
+ const struct timespec *__abstime);
+libc_hidden_proto (__pthread_mutex_clocklock)
+extern int __pthread_mutex_consistent (pthread_mutex_t *__mtxp);
+libc_hidden_proto (__pthread_mutex_consistent)
extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_lock)
+extern int __pthread_mutex_getprioceiling (const pthread_mutex_t *__mutex,
+ int *__prioceiling);
+libc_hidden_proto (__pthread_mutex_getprioceiling)
+extern int __pthread_mutex_setprioceiling (pthread_mutex_t *__mutex,
+ int __prio, int *__oldprio);
+libc_hidden_proto (__pthread_mutex_setprioceiling)
extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
+libc_hidden_proto (__pthread_mutex_trylock)
extern int __pthread_mutex_timedlock (pthread_mutex_t *__mutex,
const struct timespec *__abstime);
+libc_hidden_proto (__pthread_mutex_timedlock)
extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
+libc_hidden_proto (__pthread_mutex_unlock)
+extern int __pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict __attr,
+ int *__restrict __pshared);
+libc_hidden_proto (__pthread_mutexattr_getpshared)
+extern int __pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr,
+ int __pshared);
+libc_hidden_proto (__pthread_mutexattr_setpshared)
+
+/* Get the robustness flag of the mutex attribute ATTR. */
+extern int __pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
+ int *__robustness);
+libc_hidden_proto (__pthread_mutexattr_getrobust)
+extern int __pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
+ int *__robustness);
+libc_hidden_proto (__pthread_mutexattr_getrobust_np)
+extern int __pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
+ int __robustness);
+libc_hidden_proto (__pthread_mutexattr_setrobust_np)
+
+/* Set the robustness flag of the mutex attribute ATTR. */
+extern int __pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
+ int __robustness);
+libc_hidden_proto (__pthread_mutexattr_setrobust)
+
+extern int __pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict __attr,
+ int *__restrict __prioceiling);
+libc_hidden_proto (__pthread_mutexattr_getprioceiling)
+extern int __pthread_mutexattr_setprioceiling(pthread_mutexattr_t *__attr,
+ int __prioceiling);
+libc_hidden_proto (__pthread_mutexattr_setprioceiling)
+
+extern int __pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict __attr,
+ int *__restrict __protocol);
+libc_hidden_proto (__pthread_mutexattr_getprotocol)
+extern int __pthread_mutexattr_setprotocol(pthread_mutexattr_t *__attr,
+ int __protocol);
+libc_hidden_proto (__pthread_mutexattr_setprotocol)
+
+extern int __pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict __attr,
+ int *__restrict __type);
+libc_hidden_proto (__pthread_mutexattr_gettype)
+extern int __pthread_mutexattr_settype(pthread_mutexattr_t *__attr,
+ int __type);
+libc_hidden_proto (__pthread_mutexattr_settype)
+extern int __pthread_rwlock_clockrdlock (pthread_rwlock_t *__rwlock,
+ clockid_t __clockid, const struct timespec *__abstime);
+libc_hidden_proto (__pthread_rwlock_clockrdlock)
+extern int __pthread_rwlock_clockwrlock (pthread_rwlock_t *__rwlock,
+ clockid_t __clockid, const struct timespec *__abstime);
+libc_hidden_proto (__pthread_rwlock_clockwrlock)
+extern int __pthread_rwlock_timedrdlock (struct __pthread_rwlock *__rwlock,
+ const struct timespec *__abstime);
+libc_hidden_proto (__pthread_rwlock_timedrdlock)
+extern int __pthread_rwlock_timedwrlock (struct __pthread_rwlock *__rwlock,
+ const struct timespec *__abstime);
+libc_hidden_proto (__pthread_rwlock_timedwrlock)
+extern int __pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr);
+libc_hidden_proto (__pthread_rwlockattr_destroy)
+extern int __pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *__attr,
+ int *__pshared);
+libc_hidden_proto (__pthread_rwlockattr_getpshared)
+extern int __pthread_rwlockattr_init (pthread_rwlockattr_t *__attr);
+libc_hidden_proto (__pthread_rwlockattr_init)
+extern int __pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
+ int __pshared);
+libc_hidden_proto (__pthread_rwlockattr_setpshared)
extern int __pthread_cond_init (pthread_cond_t *cond,
const pthread_condattr_t *cond_attr);
+libc_hidden_proto (__pthread_cond_init)
extern int __pthread_cond_signal (pthread_cond_t *cond);
+libc_hidden_proto (__pthread_cond_signal);
extern int __pthread_cond_broadcast (pthread_cond_t *cond);
+libc_hidden_proto (__pthread_cond_broadcast);
extern int __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex);
+libc_hidden_proto (__pthread_cond_wait);
extern int __pthread_cond_timedwait (pthread_cond_t *cond,
pthread_mutex_t *mutex,
const struct timespec *abstime);
+libc_hidden_proto (__pthread_cond_timedwait);
extern int __pthread_cond_clockwait (pthread_cond_t *cond,
pthread_mutex_t *mutex,
clockid_t clockid,
const struct timespec *abstime)
__nonnull ((1, 2, 4));
+libc_hidden_proto (__pthread_cond_clockwait);
extern int __pthread_cond_destroy (pthread_cond_t *cond);
+libc_hidden_proto (__pthread_cond_destroy);
+
+extern int __pthread_setcanceltype (int __type, int *__oldtype);
+libc_hidden_proto (__pthread_setcanceltype);
+extern int __pthread_sigmask (int, const sigset_t *, sigset_t *);
+libc_hidden_proto (__pthread_sigmask);
typedef struct __cthread *__cthread_t;
typedef int __cthread_key_t;
@@ -73,44 +182,71 @@ int __cthread_keycreate (__cthread_key_t *);
int __cthread_getspecific (__cthread_key_t, void **);
int __cthread_setspecific (__cthread_key_t, void *);
int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
+libc_hidden_proto (__pthread_key_create)
void *__pthread_getspecific (pthread_key_t key);
+libc_hidden_proto (__pthread_getspecific)
int __pthread_setspecific (pthread_key_t key, const void *value);
+libc_hidden_proto (__pthread_setspecific)
int __pthread_key_delete (pthread_key_t key);
+libc_hidden_proto (__pthread_key_delete)
int __pthread_once (pthread_once_t *once_control, void (*init_routine) (void));
-int __pthread_setcancelstate (int state, int *oldstate);
-
int __pthread_getattr_np (pthread_t, pthread_attr_t *);
int __pthread_attr_getstackaddr (const pthread_attr_t *__restrict __attr,
void **__restrict __stackaddr);
+libc_hidden_proto (__pthread_attr_getstackaddr)
int __pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr);
+libc_hidden_proto (__pthread_attr_setstackaddr)
int __pthread_attr_getstacksize (const pthread_attr_t *__restrict __attr,
size_t *__restrict __stacksize);
+libc_hidden_proto (__pthread_attr_getstacksize)
int __pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize);
+libc_hidden_proto (__pthread_attr_setstacksize)
int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
size_t __stacksize);
+libc_hidden_proto (__pthread_attr_setstack)
int __pthread_attr_getstack (const pthread_attr_t *, void **, size_t *);
+libc_hidden_proto (__pthread_attr_getstack)
void __pthread_testcancel (void);
+int __pthread_attr_init (pthread_attr_t *attr);
+int __pthread_condattr_init (pthread_condattr_t *attr);
+
+#define __pthread_raise_internal(__sig) raise (__sig)
libc_hidden_proto (__pthread_self)
+libc_hidden_proto (__pthread_attr_init)
+libc_hidden_proto (__pthread_condattr_init)
+libc_hidden_proto (__pthread_get_cleanup_stack)
#if IS_IN (libpthread)
hidden_proto (__pthread_create)
hidden_proto (__pthread_detach)
-hidden_proto (__pthread_key_create)
-hidden_proto (__pthread_getspecific)
-hidden_proto (__pthread_setspecific)
-hidden_proto (__pthread_mutex_init)
-hidden_proto (__pthread_mutex_destroy)
-hidden_proto (__pthread_mutex_lock)
-hidden_proto (__pthread_mutex_trylock)
-hidden_proto (__pthread_mutex_unlock)
-hidden_proto (__pthread_mutex_timedlock)
-hidden_proto (__pthread_get_cleanup_stack)
+#endif
+
+#if !defined(__NO_WEAK_PTHREAD_ALIASES) && !IS_IN (libpthread)
+# ifdef weak_extern
+weak_extern (__pthread_exit)
+# else
+# pragma weak __pthread_exit
+# endif
#endif
#define ASSERT_TYPE_SIZE(type, size) \
_Static_assert (sizeof (type) == size, \
"sizeof (" #type ") != " #size)
+ /* Special cleanup macros which register cleanup both using
+ __pthread_cleanup_{push,pop} and using cleanup attribute. This is needed
+ for qsort, so that it supports both throwing exceptions from the caller
+ sort function callback (only cleanup attribute works there) and
+ cancellation of the thread running the callback if the callback or some
+ routines it calls don't have unwind information.
+ TODO: add support for cleanup routines. */
+#ifndef pthread_cleanup_combined_push
+# define pthread_cleanup_combined_push __pthread_cleanup_push
+#endif
+#ifndef pthread_cleanup_combined_pop
+# define pthread_cleanup_combined_pop __pthread_cleanup_pop
+#endif
+
#endif /* pthreadP.h */
diff --git a/sysdeps/htl/raise.c b/sysdeps/htl/raise.c
index 9f25789..46a370a 100644
--- a/sysdeps/htl/raise.c
+++ b/sysdeps/htl/raise.c
@@ -1,5 +1,5 @@
/* raise.c - Generic raise implementation.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU Hurd.
diff --git a/sysdeps/htl/sem-destroy.c b/sysdeps/htl/sem-destroy.c
index d4064ad..89b162d 100644
--- a/sysdeps/htl/sem-destroy.c
+++ b/sysdeps/htl/sem-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a semaphore. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-getvalue.c b/sysdeps/htl/sem-getvalue.c
index 08467d0..a1f7bca 100644
--- a/sysdeps/htl/sem-getvalue.c
+++ b/sysdeps/htl/sem-getvalue.c
@@ -1,5 +1,5 @@
/* Get the value of a semaphore. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-init.c b/sysdeps/htl/sem-init.c
index 3f182cd..952be42 100644
--- a/sysdeps/htl/sem-init.c
+++ b/sysdeps/htl/sem-init.c
@@ -1,5 +1,5 @@
/* Initialize a semaphore. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-post.c b/sysdeps/htl/sem-post.c
index 0f4ffc5..36f20f9 100644
--- a/sysdeps/htl/sem-post.c
+++ b/sysdeps/htl/sem-post.c
@@ -1,5 +1,5 @@
/* Post a semaphore. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-timedwait.c b/sysdeps/htl/sem-timedwait.c
index 397e174..4931dde 100644
--- a/sysdeps/htl/sem-timedwait.c
+++ b/sysdeps/htl/sem-timedwait.c
@@ -1,5 +1,5 @@
/* Wait on a semaphore with a timeout. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-trywait.c b/sysdeps/htl/sem-trywait.c
index ad0e3d1..38846bf 100644
--- a/sysdeps/htl/sem-trywait.c
+++ b/sysdeps/htl/sem-trywait.c
@@ -1,5 +1,5 @@
/* Lock a semaphore if it does not require blocking. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-wait.c b/sysdeps/htl/sem-wait.c
index 58e1025..97c873d 100644
--- a/sysdeps/htl/sem-wait.c
+++ b/sysdeps/htl/sem-wait.c
@@ -1,5 +1,5 @@
/* Wait on a semaphore. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/sem-waitfast.c b/sysdeps/htl/sem-waitfast.c
index b42160a..61bb1db 100644
--- a/sysdeps/htl/sem-waitfast.c
+++ b/sysdeps/htl/sem-waitfast.c
@@ -1,5 +1,5 @@
/* Lock a semaphore if it does not require blocking. Generic version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/stdio-lock.h b/sysdeps/htl/stdio-lock.h
index c529cac..d551c1d 100644
--- a/sysdeps/htl/stdio-lock.h
+++ b/sysdeps/htl/stdio-lock.h
@@ -1,5 +1,5 @@
/* Thread package specific definitions of stream lock type. Hurd version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/thrd_current.c b/sysdeps/htl/thrd_current.c
index 7b815a9..ad84767 100644
--- a/sysdeps/htl/thrd_current.c
+++ b/sysdeps/htl/thrd_current.c
@@ -1,5 +1,5 @@
/* C11 threads current thread implementation.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/htl/timer_routines.c b/sysdeps/htl/timer_routines.c
index 857b1cb..d6ee65d 100644
--- a/sysdeps/htl/timer_routines.c
+++ b/sysdeps/htl/timer_routines.c
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on NPTL.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@
#include <assert.h>
#include <errno.h>
-#include <pthread.h>
+#include <pthreadP.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -151,7 +151,7 @@ thread_init (struct thread_node *thread, const pthread_attr_t *attr, clockid_t c
thread->exists = 0;
INIT_LIST_HEAD (&thread->timer_queue);
- pthread_cond_init (&thread->cond, 0);
+ __pthread_cond_init (&thread->cond, 0);
thread->current_timer = 0;
thread->captured = pthread_self ();
thread->clock_id = clock_id;
@@ -191,7 +191,7 @@ static void
reinit_after_fork (void)
{
init_module ();
- pthread_mutex_init (&__timer_mutex, 0);
+ __pthread_mutex_init (&__timer_mutex, 0);
}
@@ -211,7 +211,7 @@ static void
thread_deinit (struct thread_node *thread)
{
assert (list_isempty (&thread->timer_queue));
- pthread_cond_destroy (&thread->cond);
+ __pthread_cond_destroy (&thread->cond);
}
@@ -265,7 +265,7 @@ thread_cleanup (void *val)
/* How did the signal thread get killed? */
assert (thread != &__timer_signal_thread_rclk);
- pthread_mutex_lock (&__timer_mutex);
+ __pthread_mutex_lock (&__timer_mutex);
thread->exists = 0;
@@ -277,10 +277,10 @@ thread_cleanup (void *val)
else
(void) __timer_thread_start (thread);
- pthread_mutex_unlock (&__timer_mutex);
+ __pthread_mutex_unlock (&__timer_mutex);
/* Unblock potentially blocked timer_delete(). */
- pthread_cond_broadcast (&thread->cond);
+ __pthread_cond_broadcast (&thread->cond);
}
}
@@ -291,7 +291,7 @@ thread_expire_timer (struct thread_node *self, struct timer_node *timer)
{
self->current_timer = timer; /* Lets timer_delete know timer is running. */
- pthread_mutex_unlock (&__timer_mutex);
+ __pthread_mutex_unlock (&__timer_mutex);
switch (__builtin_expect (timer->event.sigev_notify, SIGEV_SIGNAL))
{
@@ -334,11 +334,11 @@ thread_expire_timer (struct thread_node *self, struct timer_node *timer)
break;
}
- pthread_mutex_lock (&__timer_mutex);
+ __pthread_mutex_lock (&__timer_mutex);
self->current_timer = 0;
- pthread_cond_broadcast (&self->cond);
+ __pthread_cond_broadcast (&self->cond);
}
@@ -358,7 +358,7 @@ thread_func (void *arg)
pthread_cleanup_push (thread_cleanup, self);
- pthread_mutex_lock (&__timer_mutex);
+ __pthread_mutex_lock (&__timer_mutex);
while (1)
{
@@ -418,10 +418,10 @@ thread_func (void *arg)
head of the queue must wake up the thread by broadcasting
this condition variable. */
if (timer != NULL)
- pthread_cond_timedwait (&self->cond, &__timer_mutex,
+ __pthread_cond_timedwait (&self->cond, &__timer_mutex,
&timer->expirytime);
else
- pthread_cond_wait (&self->cond, &__timer_mutex);
+ __pthread_cond_wait (&self->cond, &__timer_mutex);
}
/* This macro will never be executed since the while loop loops
forever - but we have to add it for proper nesting. */
@@ -468,7 +468,7 @@ __timer_thread_start (struct thread_node *thread)
thread->exists = 1;
sigfillset (&set);
- pthread_sigmask (SIG_SETMASK, &set, &oset);
+ __pthread_sigmask (SIG_SETMASK, &set, &oset);
if (pthread_create (&thread->id, &thread->attr,
(void *(*) (void *)) thread_func, thread) != 0)
@@ -477,7 +477,7 @@ __timer_thread_start (struct thread_node *thread)
retval = -1;
}
- pthread_sigmask (SIG_SETMASK, &oset, NULL);
+ __pthread_sigmask (SIG_SETMASK, &oset, NULL);
return retval;
}
@@ -486,7 +486,7 @@ __timer_thread_start (struct thread_node *thread)
void
__timer_thread_wakeup (struct thread_node *thread)
{
- pthread_cond_broadcast (&thread->cond);
+ __pthread_cond_broadcast (&thread->cond);
}
@@ -550,5 +550,5 @@ __timer_dealloc (struct timer_node *timer)
void
__timer_mutex_cancel_handler (void *arg)
{
- pthread_mutex_unlock (arg);
+ __pthread_mutex_unlock (arg);
}
diff --git a/sysdeps/htl/timer_routines.h b/sysdeps/htl/timer_routines.h
index e9ea5b2..0432117 100644
--- a/sysdeps/htl/timer_routines.h
+++ b/sysdeps/htl/timer_routines.h
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on Hurd.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hurd/htl/pt-kill.c b/sysdeps/hurd/htl/pt-kill.c
index 2a05129..77be247 100644
--- a/sysdeps/hurd/htl/pt-kill.c
+++ b/sysdeps/hurd/htl/pt-kill.c
@@ -1,5 +1,5 @@
/* pthread_kill. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/hurd/include/hurd/signal.h b/sysdeps/hurd/include/hurd/signal.h
index fab8d1b..a7b157d 100644
--- a/sysdeps/hurd/include/hurd/signal.h
+++ b/sysdeps/hurd/include/hurd/signal.h
@@ -10,6 +10,10 @@ libc_hidden_proto (_hurd_self_sigstate)
#ifndef _ISOMAC
+#include <bits/types/error_t.h>
+extern error_t __sigthreadmask (struct hurd_sigstate *ss, int how,
+ const sigset_t *set, sigset_t *oset, int clear_pending);
+
#if defined __USE_EXTERN_INLINES
# if IS_IN (libc) || IS_IN (libpthread)
# include <sigsetops.h>
diff --git a/sysdeps/hurd/include/hurd/sigpreempt.h b/sysdeps/hurd/include/hurd/sigpreempt.h
index 2983305..b08b455 100644
--- a/sysdeps/hurd/include/hurd/sigpreempt.h
+++ b/sysdeps/hurd/include/hurd/sigpreempt.h
@@ -1,5 +1,5 @@
/* Preemption of Hurd signals before POSIX.1 semantics take over. Wrapper.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index a2e8c0b..ee6470d 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -30,7 +30,9 @@ stack-align-test-flags += -malign-double
endif
ifeq ($(subdir),elf)
-sysdep-dl-routines += tlsdesc dl-tlsdesc
+sysdep-dl-routines += \
+ dl-tls-get-addr \
+# sysdep-dl-routines
tests += tst-audit3
modules-names += tst-auditmod3a tst-auditmod3b
diff --git a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S
index bb83609..8bbb31f 100644
--- a/sysdeps/i386/__longjmp.S
+++ b/sysdeps/i386/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for i386.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
index c1b7098b1..0e097c1 100644
--- a/sysdeps/i386/add_n.S
+++ b/sysdeps/i386/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
index 6f9a05c..013e473 100644
--- a/sysdeps/i386/addmul_1.S
+++ b/sysdeps/i386/addmul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/asm-syntax.h b/sysdeps/i386/asm-syntax.h
index 6ab59a4..762e03b 100644
--- a/sysdeps/i386/asm-syntax.h
+++ b/sysdeps/i386/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for x86 syntax variations.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
diff --git a/sysdeps/i386/backtrace.c b/sysdeps/i386/backtrace.c
index fcd483e..e5f6636 100644
--- a/sysdeps/i386/backtrace.c
+++ b/sysdeps/i386/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
index 5fd671a..08512cf 100644
--- a/sysdeps/i386/bsd-_setjmp.S
+++ b/sysdeps/i386/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. i386 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
index 13338a6..16e4b00 100644
--- a/sysdeps/i386/bsd-setjmp.S
+++ b/sysdeps/i386/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. i386 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/crti.S b/sysdeps/i386/crti.S
index f9662ee..d6aff34 100644
--- a/sysdeps/i386/crti.S
+++ b/sysdeps/i386/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/crtn.S b/sysdeps/i386/crtn.S
index 46f40ab..b93b733 100644
--- a/sysdeps/i386/crtn.S
+++ b/sysdeps/i386/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-fixup-attribute.h b/sysdeps/i386/dl-fixup-attribute.h
index 12e74d0..90d7c07 100644
--- a/sysdeps/i386/dl-fixup-attribute.h
+++ b/sysdeps/i386/dl-fixup-attribute.h
@@ -1,5 +1,5 @@
/* ABI specifics for lazy resolution functions. i386 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h
index 2f8406e..195f021 100644
--- a/sysdeps/i386/dl-irel.h
+++ b/sysdeps/i386/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
i386 version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-machine-rel.h b/sysdeps/i386/dl-machine-rel.h
index d78068f..fa754a4 100644
--- a/sysdeps/i386/dl-machine-rel.h
+++ b/sysdeps/i386/dl-machine-rel.h
@@ -1,5 +1,5 @@
/* ELF dynamic relocation type supported by the architecture. ARM version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 50d74fe..87b7742 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. i386 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-procinfo.c b/sysdeps/i386/dl-procinfo.c
index e7c8241..931750d 100644
--- a/sysdeps/i386/dl-procinfo.c
+++ b/sysdeps/i386/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for i386 version of processor capability information.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -41,24 +41,5 @@
#include <sysdeps/x86/dl-procinfo.c>
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_x86_cap_flags
-#else
-PROCINFO_CLASS const char _dl_x86_cap_flags[32][8]
-#endif
-#ifndef PROCINFO_DECL
-= {
- "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
- "cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov",
- "pat", "pse36", "pn", "clflush", "20", "dts", "acpi", "mmx",
- "fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", "pbe"
- }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
#undef PROCINFO_DECL
#undef PROCINFO_CLASS
diff --git a/sysdeps/i386/dl-tls-get-addr.c b/sysdeps/i386/dl-tls-get-addr.c
new file mode 100644
index 0000000..c97e5c5
--- /dev/null
+++ b/sysdeps/i386/dl-tls-get-addr.c
@@ -0,0 +1,68 @@
+/* Ifunc selector for ___tls_get_addr.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# define ___tls_get_addr __redirect____tls_get_addr
+# include <dl-tls.h>
+# undef ___tls_get_addr
+# undef __tls_get_addr
+
+# define SYMBOL_NAME ___tls_get_addr
+# include <init-arch.h>
+
+extern __typeof (REDIRECT_NAME) OPTIMIZE (fnsave) attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (fxsave) attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (xsave) attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (xsavec) attribute_hidden;
+
+static inline void *
+IFUNC_SELECTOR (void)
+{
+ const struct cpu_features* cpu_features = __get_cpu_features ();
+
+ if (cpu_features->xsave_state_size != 0)
+ {
+ if (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))
+ return OPTIMIZE (xsavec);
+ else
+ return OPTIMIZE (xsave);
+ }
+ else if (CPU_FEATURE_USABLE_P (cpu_features, FXSR))
+ return OPTIMIZE (fxsave);
+ return OPTIMIZE (fnsave);
+}
+
+libc_ifunc_redirected (__redirect____tls_get_addr, ___tls_get_addr,
+ IFUNC_SELECTOR ());
+
+/* The special thing about the x86 TLS ABI is that we have two
+ variants of the __tls_get_addr function with different calling
+ conventions. The GNU version, which we are mostly concerned here,
+ takes the parameter in a register. The name is changed by adding
+ an additional underscore at the beginning. The Sun version uses
+ the normal calling convention. */
+
+rtld_hidden_proto (___tls_get_addr)
+rtld_hidden_def (___tls_get_addr)
+
+void *
+__tls_get_addr (tls_index *ti)
+{
+ return ___tls_get_addr (ti);
+}
+#endif
diff --git a/sysdeps/i386/dl-tls.h b/sysdeps/i386/dl-tls.h
index f172867..ef605c5 100644
--- a/sysdeps/i386/dl-tls.h
+++ b/sysdeps/i386/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
/* Type used for the representation of TLS information in the GOT. */
typedef struct dl_tls_index
@@ -24,38 +26,26 @@ typedef struct dl_tls_index
unsigned long int ti_offset;
} tls_index;
+/* Dynamic thread vector pointers point to the start of each
+ TLS block. */
+#define TLS_DTV_OFFSET 0
+
+/* Static TLS offsets are relative to the unadjusted thread pointer. */
+#define TLS_TP_OFFSET 0
#ifdef SHARED
/* This is the prototype for the GNU version. */
extern void *___tls_get_addr (tls_index *ti)
__attribute__ ((__regparm__ (1)));
-extern void *___tls_get_addr_internal (tls_index *ti)
- __attribute__ ((__regparm__ (1))) attribute_hidden;
-
# if IS_IN (rtld)
-/* The special thing about the x86 TLS ABI is that we have two
- variants of the __tls_get_addr function with different calling
- conventions. The GNU version, which we are mostly concerned here,
- takes the parameter in a register. The name is changed by adding
- an additional underscore at the beginning. The Sun version uses
- the normal calling convention. */
-void *
-__tls_get_addr (tls_index *ti)
-{
- return ___tls_get_addr_internal (ti);
-}
-
-
/* Prepare using the definition of __tls_get_addr in the generic
version of this file. */
-# define __tls_get_addr __attribute__ ((__regparm__ (1))) ___tls_get_addr
-strong_alias (___tls_get_addr, ___tls_get_addr_internal)
-rtld_hidden_proto (___tls_get_addr)
-rtld_hidden_def (___tls_get_addr)
-#else
-
+# define __tls_get_addr \
+ __attribute__ ((__regparm__ (1))) ___tls_get_addr_internal
+# else
/* Users should get the better interface. */
-# define __tls_get_addr ___tls_get_addr
-
+# define __tls_get_addr ___tls_get_addr
# endif
#endif
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/i386/dl-tlsdesc-dynamic.h b/sysdeps/i386/dl-tlsdesc-dynamic.h
index 3627028..be9ecd6 100644
--- a/sysdeps/i386/dl-tlsdesc-dynamic.h
+++ b/sysdeps/i386/dl-tlsdesc-dynamic.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. i386 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,34 +16,6 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#undef REGISTER_SAVE_AREA
-
-#if !defined USE_FNSAVE && (STATE_SAVE_ALIGNMENT % 16) != 0
-# error STATE_SAVE_ALIGNMENT must be multiple of 16
-#endif
-
-#if DL_RUNTIME_RESOLVE_REALIGN_STACK
-# ifdef USE_FNSAVE
-# error USE_FNSAVE shouldn't be defined
-# endif
-# ifdef USE_FXSAVE
-/* Use fxsave to save all registers. */
-# define REGISTER_SAVE_AREA 512
-# endif
-#else
-# ifdef USE_FNSAVE
-/* Use fnsave to save x87 FPU stack registers. */
-# define REGISTER_SAVE_AREA 108
-# else
-# ifndef USE_FXSAVE
-# error USE_FXSAVE must be defined
-# endif
-/* Use fxsave to save all registers. Add 12 bytes to align the stack
- to 16 bytes. */
-# define REGISTER_SAVE_AREA (512 + 12)
-# endif
-#endif
-
.hidden _dl_tlsdesc_dynamic
.global _dl_tlsdesc_dynamic
.type _dl_tlsdesc_dynamic,@function
@@ -104,85 +76,7 @@ _dl_tlsdesc_dynamic:
ret
.p2align 4,,7
2:
- cfi_adjust_cfa_offset (32)
-#if DL_RUNTIME_RESOLVE_REALIGN_STACK
- movl %ebx, -28(%esp)
- movl %esp, %ebx
- cfi_def_cfa_register(%ebx)
- and $-STATE_SAVE_ALIGNMENT, %esp
-#endif
-#ifdef REGISTER_SAVE_AREA
- subl $REGISTER_SAVE_AREA, %esp
-# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
- cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
-# endif
-#else
-# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
-# error DL_RUNTIME_RESOLVE_REALIGN_STACK must be true
-# endif
- /* Allocate stack space of the required size to save the state. */
- LOAD_PIC_REG (cx)
- subl RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_SIZE_OFFSET+_rtld_local_ro@GOTOFF(%ecx), %esp
-#endif
-#ifdef USE_FNSAVE
- fnsave (%esp)
-#elif defined USE_FXSAVE
- fxsave (%esp)
-#else
- /* Save the argument for ___tls_get_addr in EAX. */
- movl %eax, %ecx
- movl $TLSDESC_CALL_STATE_SAVE_MASK, %eax
- xorl %edx, %edx
- /* Clear the XSAVE Header. */
-# ifdef USE_XSAVE
- movl %edx, (512)(%esp)
- movl %edx, (512 + 4 * 1)(%esp)
- movl %edx, (512 + 4 * 2)(%esp)
- movl %edx, (512 + 4 * 3)(%esp)
-# endif
- movl %edx, (512 + 4 * 4)(%esp)
- movl %edx, (512 + 4 * 5)(%esp)
- movl %edx, (512 + 4 * 6)(%esp)
- movl %edx, (512 + 4 * 7)(%esp)
- movl %edx, (512 + 4 * 8)(%esp)
- movl %edx, (512 + 4 * 9)(%esp)
- movl %edx, (512 + 4 * 10)(%esp)
- movl %edx, (512 + 4 * 11)(%esp)
- movl %edx, (512 + 4 * 12)(%esp)
- movl %edx, (512 + 4 * 13)(%esp)
- movl %edx, (512 + 4 * 14)(%esp)
- movl %edx, (512 + 4 * 15)(%esp)
-# ifdef USE_XSAVE
- xsave (%esp)
-# else
- xsavec (%esp)
-# endif
- /* Restore the argument for ___tls_get_addr in EAX. */
- movl %ecx, %eax
-#endif
- call HIDDEN_JUMPTARGET (___tls_get_addr)
- /* Get register content back. */
-#ifdef USE_FNSAVE
- frstor (%esp)
-#elif defined USE_FXSAVE
- fxrstor (%esp)
-#else
- /* Save and retore ___tls_get_addr return value stored in EAX. */
- movl %eax, %ecx
- movl $TLSDESC_CALL_STATE_SAVE_MASK, %eax
- xorl %edx, %edx
- xrstor (%esp)
- movl %ecx, %eax
-#endif
-#if DL_RUNTIME_RESOLVE_REALIGN_STACK
- mov %ebx, %esp
- cfi_def_cfa_register(%esp)
- movl -28(%esp), %ebx
- cfi_restore(%ebx)
-#else
- addl $REGISTER_SAVE_AREA, %esp
- cfi_adjust_cfa_offset(-REGISTER_SAVE_AREA)
-#endif
+#include "tls-get-addr-wrapper.h"
jmp 1b
cfi_endproc
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
diff --git a/sysdeps/i386/dl-tlsdesc.S b/sysdeps/i386/dl-tlsdesc.S
index f002fee..c914ca4 100644
--- a/sysdeps/i386/dl-tlsdesc.S
+++ b/sysdeps/i386/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. i386 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,23 +22,6 @@
#include <features-offsets.h>
#include "tlsdesc.h"
-#ifndef DL_STACK_ALIGNMENT
-/* Due to GCC bug:
-
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
-
- __tls_get_addr may be called with 4-byte stack alignment. Although
- this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
- that stack will be always aligned at 16 bytes. */
-# define DL_STACK_ALIGNMENT 4
-#endif
-
-/* True if _dl_tlsdesc_dynamic should align stack for STATE_SAVE or align
- stack to MINIMUM_ALIGNMENT bytes before calling ___tls_get_addr. */
-#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
- (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
- || MINIMUM_ALIGNMENT > DL_STACK_ALIGNMENT)
-
.text
/* This function is used to compute the TP offset for symbols in
diff --git a/sysdeps/i386/dl-tlsdesc.h b/sysdeps/i386/dl-tlsdesc.h
index bd9db1a..1f49c3a 100644
--- a/sysdeps/i386/dl-tlsdesc.h
+++ b/sysdeps/i386/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
i386 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/dl-trampoline.S b/sysdeps/i386/dl-trampoline.S
index 6c14d46..a7804be 100644
--- a/sysdeps/i386/dl-trampoline.S
+++ b/sysdeps/i386/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. i386 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_acosf.S b/sysdeps/i386/fpu/e_acosf.S
deleted file mode 100644
index 435dcd9..0000000
--- a/sysdeps/i386/fpu/e_acosf.S
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <libm-alias-finite.h>
-
-RCSID("$NetBSD: $")
-
-/* acos = atan (sqrt(1 - x^2) / x) */
-ENTRY(__ieee754_acosf)
- flds 4(%esp) /* x */
- fld %st
- fmul %st(0) /* x^2 */
- fld1
- fsubp /* 1 - x^2 */
- fsqrt /* sqrt (1 - x^2) */
- fabs
- fxch %st(1)
- fpatan
- ret
-END (__ieee754_acosf)
-libm_alias_finite (__ieee754_acosf, __acosf)
diff --git a/sysdeps/i386/fpu/e_acosh.S b/sysdeps/i386/fpu/e_acosh.S
index ae9097c..4d35743 100644
--- a/sysdeps/i386/fpu/e_acosh.S
+++ b/sysdeps/i386/fpu/e_acosh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_acoshf.S b/sysdeps/i386/fpu/e_acoshf.S
deleted file mode 100644
index 6eda9dc..0000000
--- a/sysdeps/i386/fpu/e_acoshf.S
+++ /dev/null
@@ -1,101 +0,0 @@
-/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <machine/asm.h>
-#include <libm-alias-finite.h>
-
- .section .rodata.cst8,"aM",@progbits,8
-
- .p2align 3
- .type one,@object
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- .type limit,@object
-limit: .double 0.29
- ASM_SIZE_DIRECTIVE(limit)
-
-#ifdef PIC
-#define MO(op) op##@GOTOFF(%edx)
-#else
-#define MO(op) op
-#endif
-
- .text
-ENTRY(__ieee754_acoshf)
- movl 4(%esp), %ecx
- cmpl $0x3f800000, %ecx
- jl 5f // < 1 => invalid
- fldln2 // log(2)
- flds 4(%esp) // x : log(2)
- cmpl $0x47000000, %ecx
- ja 3f // x > 2^14
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- cmpl $0x40000000, %ecx
- ja 4f // x > 2
-
- // 1 <= x <= 2 => y = log1p(x-1+sqrt(2*(x-1)+(x-1)^2))
- fsubl MO(one) // x-1 : log(2)
- fabs // acosh(1) is +0 in all rounding modes
- fld %st // x-1 : x-1 : log(2)
- fmul %st(1) // (x-1)^2 : x-1 : log(2)
- fadd %st(1) // x-1+(x-1)^2 : x-1 : log(2)
- fadd %st(1) // 2*(x-1)+(x-1)^2 : x-1 : log(2)
- fsqrt // sqrt(2*(x-1)+(x-1)^2) : x-1 : log(2)
- faddp // x-1+sqrt(2*(x-1)+(x-1)^2) : log(2)
- fcoml MO(limit)
- fnstsw
- sahf
- ja 2f
- fyl2xp1 // log1p(x-1+sqrt(2*(x-1)+(x-1)^2))
- ret
-
-2: faddl MO(one) // x+sqrt(2*(x-1)+(x-1)^2) : log(2)
- fyl2x // log(x+sqrt(2*(x-1)+(x-1)^2))
- ret
-
- // x > 2^14 => y = log(x) + log(2)
- .align ALIGNARG(4)
-3: fyl2x // log(x)
- fldln2 // log(2) : log(x)
- faddp // log(x)+log(2)
- ret
-
- // 2^28 > x > 2 => y = log(2*x - 1/(x+sqrt(x*x-1)))
- .align ALIGNARG(4)
-4: fld %st // x : x : log(2)
- fadd %st, %st(1) // x : 2*x : log(2)
- fld %st // x : x : 2*x : log(2)
- fmul %st(1) // x^2 : x : 2*x : log(2)
- fsubl MO(one) // x^2-1 : x : 2*x : log(2)
- fsqrt // sqrt(x^2-1) : x : 2*x : log(2)
- faddp // x+sqrt(x^2-1) : 2*x : log(2)
- fdivrl MO(one) // 1/(x+sqrt(x^2-1)) : 2*x : log(2)
- fsubrp // 2*x+1/(x+sqrt(x^2)-1) : log(2)
- fyl2x // log(2*x+1/(x+sqrt(x^2-1)))
- ret
-
- // x < 1 (or -NaN) => NaN
- .align ALIGNARG(4)
-5: flds 4(%esp)
- fsub %st
- fdiv %st, %st(0)
- ret
-END(__ieee754_acoshf)
-libm_alias_finite (__ieee754_acoshf, __acoshf)
diff --git a/sysdeps/i386/fpu/e_acoshl.S b/sysdeps/i386/fpu/e_acoshl.S
index 18e1bcd..d31f6e4 100644
--- a/sysdeps/i386/fpu/e_acoshl.S
+++ b/sysdeps/i386/fpu/e_acoshl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_asinf.S b/sysdeps/i386/fpu/e_asinf.S
deleted file mode 100644
index 774feab..0000000
--- a/sysdeps/i386/fpu/e_asinf.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-#include <libm-alias-finite.h>
-
-RCSID("$NetBSD: $")
-
- .section .rodata.cst4,"aM",@progbits,4
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%ecx)
-#else
-# define MO(op) op
-#endif
-
- .text
-
-/* asin = atan (x / sqrt(1 - x^2)) */
-ENTRY(__ieee754_asinf)
-#ifdef PIC
- LOAD_PIC_REG (cx)
-#endif
- flds 4(%esp) /* x */
- fld %st
- fmul %st(0) /* x^2 */
- fld1
- fsubp /* 1 - x^2 */
- fsqrt /* sqrt (1 - x^2) */
- fpatan
- FLT_CHECK_FORCE_UFLOW
- ret
-END (__ieee754_asinf)
-libm_alias_finite (__ieee754_asinf, __asinf)
diff --git a/sysdeps/i386/fpu/e_atan2f.S b/sysdeps/i386/fpu/e_atan2f.S
deleted file mode 100644
index 606d4a6..0000000
--- a/sysdeps/i386/fpu/e_atan2f.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-#include <libm-alias-finite.h>
-
-RCSID("$NetBSD: e_atan2f.S,v 1.1 1995/05/08 23:35:10 jtc Exp $")
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%ecx)
-#else
-# define MO(op) op
-#endif
-
- .text
-ENTRY(__ieee754_atan2f)
-#ifdef PIC
- LOAD_PIC_REG (cx)
-#endif
- flds 4(%esp)
- flds 8(%esp)
- fpatan
- FLT_CHECK_FORCE_UFLOW_NARROW
- ret
-END (__ieee754_atan2f)
-libm_alias_finite (__ieee754_atan2f, __atan2f)
diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S
index b280aa6..205a624 100644
--- a/sysdeps/i386/fpu/e_atanh.S
+++ b/sysdeps/i386/fpu/e_atanh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_atanhf.S b/sysdeps/i386/fpu/e_atanhf.S
deleted file mode 100644
index c94dc7b..0000000
--- a/sysdeps/i386/fpu/e_atanhf.S
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-#include <libm-alias-finite.h>
-
- .section .rodata
-
- .align ALIGNARG(4)
- .type half,@object
-half: .double 0.5
- ASM_SIZE_DIRECTIVE(half)
- .type one,@object
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- .type limit,@object
-limit: .double 0.29
- ASM_SIZE_DIRECTIVE(limit)
- .align ALIGNARG(4)
- .type ln2_2,@object
-ln2_2: .quad 0xb17217f7d1cf79ac /* 0.3465735902799726547086160 */
- .short 0x3ffd
- ASM_SIZE_DIRECTIVE(ln2_2)
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-#define MO(op) op##@GOTOFF(%edx)
-#else
-#define MO(op) op
-#endif
-
- .text
-ENTRY(__ieee754_atanhf)
- movl 4(%esp), %ecx
-
- movl %ecx, %eax
- andl $0x7fffffff, %eax
- cmpl $0x7f800000, %eax
- ja 5f
-
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
-
- andl $0x80000000, %ecx // ECX == 0 iff X >= 0
-
- fldt MO(ln2_2) // 0.5*ln2
- xorl %ecx, 4(%esp)
- flds 4(%esp) // |x| : 0.5*ln2
- fcoml MO(half) // |x| : 0.5*ln2
- fld %st(0) // |x| : |x| : 0.5*ln2
- fnstsw // |x| : |x| : 0.5*ln2
- sahf
- jae 2f
- fadd %st, %st(1) // |x| : 2*|x| : 0.5*ln2
- fld %st // |x| : |x| : 2*|x| : 0.5*ln2
- fsubrl MO(one) // 1-|x| : |x| : 2*|x| : 0.5*ln2
- fxch // |x| : 1-|x| : 2*|x| : 0.5*ln2
- fmul %st(2) // 2*|x|^2 : 1-|x| : 2*|x| : 0.5*ln2
- fdivp // (2*|x|^2)/(1-|x|) : 2*|x| : 0.5*ln2
- faddp // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2
- fcoml MO(limit) // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2
- fnstsw // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2
- sahf
- jae 4f
- fyl2xp1 // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|))
- FLT_CHECK_FORCE_UFLOW_NONNEG
- jecxz 3f
- fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x))
-3: ret
-
- .align ALIGNARG(4)
-4: faddl MO(one) // 1+2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2
- fyl2x // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|))
- jecxz 3f
- fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x))
-3: ret
-
- .align ALIGNARG(4)
-2: faddl MO(one) // 1+|x| : |x| : 0.5*ln2
- fxch // |x| : 1+|x| : 0.5*ln2
- fsubrl MO(one) // 1-|x| : 1+|x| : 0.5*ln2
- fdivrp // (1+|x|)/(1-|x|) : 0.5*ln2
- fyl2x // 0.5*ln2*ld((1+|x|)/(1-|x|))
- jecxz 3f
- fchs // 0.5*ln2*ld((1+x)/(1-x))
-3: ret
-
- // x == NaN
-5: flds 4(%esp)
- ret
-END(__ieee754_atanhf)
-libm_alias_finite (__ieee754_atanhf, __atanhf)
diff --git a/sysdeps/i386/fpu/e_atanhl.S b/sysdeps/i386/fpu/e_atanhl.S
index 6684c3e..7bfb792 100644
--- a/sysdeps/i386/fpu/e_atanhl.S
+++ b/sysdeps/i386/fpu/e_atanhl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_hypot.c b/sysdeps/i386/fpu/e_hypot.c
index 6e5055e..a297745 100644
--- a/sysdeps/i386/fpu/e_hypot.c
+++ b/sysdeps/i386/fpu/e_hypot.c
@@ -1,5 +1,5 @@
/* Euclidean distance function. Double/Binary64 i386 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_ilogb.S b/sysdeps/i386/fpu/e_ilogb.S
deleted file mode 100644
index f4b792c..0000000
--- a/sysdeps/i386/fpu/e_ilogb.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: s_ilogb.S,v 1.5 1995/10/12 15:53:09 jtc Exp $")
-
-ENTRY(__ieee754_ilogb)
- fldl 4(%esp)
-/* I added the following ugly construct because ilogb(+-Inf) is
- required to return INT_MAX in ISO C99.
- -- jakub@redhat.com. */
- fxam /* Is NaN or +-Inf? */
- fstsw %ax
- movb $0x45, %dh
- andb %ah, %dh
- cmpb $0x05, %dh
- je 1f /* Is +-Inf, jump. */
- cmpb $0x40, %dh
- je 2f /* Is +-0, jump. */
-
- fxtract
- pushl %eax
- cfi_adjust_cfa_offset (4)
- fstp %st
-
- fistpl (%esp)
- fwait
- popl %eax
- cfi_adjust_cfa_offset (-4)
-
- ret
-
-1: fstp %st
- movl $0x7fffffff, %eax
- ret
-2: fstp %st
- movl $0x80000000, %eax /* FP_ILOGB0 */
- ret
-END (__ieee754_ilogb)
diff --git a/sysdeps/i386/fpu/e_ilogbf.S b/sysdeps/i386/fpu/e_ilogbf.S
deleted file mode 100644
index 37298b9..0000000
--- a/sysdeps/i386/fpu/e_ilogbf.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: s_ilogbf.S,v 1.4 1995/10/22 20:32:43 pk Exp $")
-
-ENTRY(__ieee754_ilogbf)
- flds 4(%esp)
-/* I added the following ugly construct because ilogb(+-Inf) is
- required to return INT_MAX in ISO C99.
- -- jakub@redhat.com. */
- fxam /* Is NaN or +-Inf? */
- fstsw %ax
- movb $0x45, %dh
- andb %ah, %dh
- cmpb $0x05, %dh
- je 1f /* Is +-Inf, jump. */
- cmpb $0x40, %dh
- je 2f /* Is +-0, jump. */
-
- fxtract
- pushl %eax
- cfi_adjust_cfa_offset (4)
- fstp %st
-
- fistpl (%esp)
- fwait
- popl %eax
- cfi_adjust_cfa_offset (-4)
-
- ret
-
-1: fstp %st
- movl $0x7fffffff, %eax
- ret
-2: fstp %st
- movl $0x80000000, %eax /* FP_ILOGB0 */
- ret
-END (__ieee754_ilogbf)
diff --git a/sysdeps/i386/fpu/e_log10f.S b/sysdeps/i386/fpu/e_log10f.S
deleted file mode 100644
index 47f82e1..0000000
--- a/sysdeps/i386/fpu/e_log10f.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <libm-alias-finite.h>
-
- .section .rodata.cst8,"aM",@progbits,8
-
- .p2align 3
- .type one,@object
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- /* It is not important that this constant is precise. It is only
- a value which is known to be on the safe side for using the
- fyl2xp1 instruction. */
- .type limit,@object
-limit: .double 0.29
- ASM_SIZE_DIRECTIVE(limit)
-
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%edx)
-#else
-# define MO(op) op
-#endif
-
- .text
-ENTRY(__ieee754_log10f)
- fldlg2 // log10(2)
- flds 4(%esp) // x : log10(2)
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- fxam
- fnstsw
- fld %st // x : x : log10(2)
- sahf
- jc 3f // in case x is NaN or ±Inf
-4: fsubl MO(one) // x-1 : x : log10(2)
- fld %st // x-1 : x-1 : x : log10(2)
- fabs // |x-1| : x-1 : x : log10(2)
- fcompl MO(limit) // x-1 : x : log10(2)
- fnstsw // x-1 : x : log10(2)
- andb $0x45, %ah
- jz 2f
- fxam
- fnstsw
- andb $0x45, %ah
- cmpb $0x40, %ah
- jne 5f
- fabs // log10(1) is +0 in all rounding modes.
-5: fstp %st(1) // x-1 : log10(2)
- fyl2xp1 // log10(x)
- ret
-
-2: fstp %st(0) // x : log10(2)
- fyl2x // log10(x)
- ret
-
-3: jp 4b // in case x is ±Inf
- fstp %st(1)
- fstp %st(1)
- ret
-END (__ieee754_log10f)
-libm_alias_finite (__ieee754_log10f, __log10f)
diff --git a/sysdeps/i386/fpu/e_pow.S b/sysdeps/i386/fpu/e_pow.S
index 2e68243..ff3cd7e 100644
--- a/sysdeps/i386/fpu/e_pow.S
+++ b/sysdeps/i386/fpu/e_pow.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/e_powl.S b/sysdeps/i386/fpu/e_powl.S
index b133aee..9452e35 100644
--- a/sysdeps/i386/fpu/e_powl.S
+++ b/sysdeps/i386/fpu/e_powl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/fclrexcpt.c b/sysdeps/i386/fpu/fclrexcpt.c
index a87ee55..f7a2ed2 100644
--- a/sysdeps/i386/fpu/fclrexcpt.c
+++ b/sysdeps/i386/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
__feclearexcept (int excepts)
diff --git a/sysdeps/i386/fpu/fedisblxcpt.c b/sysdeps/i386/fpu/fedisblxcpt.c
index cb58b9b..b23fd8e 100644
--- a/sysdeps/i386/fpu/fedisblxcpt.c
+++ b/sysdeps/i386/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
fedisableexcept (int excepts)
diff --git a/sysdeps/i386/fpu/feenablxcpt.c b/sysdeps/i386/fpu/feenablxcpt.c
index 641abe0..bc4a4ce 100644
--- a/sysdeps/i386/fpu/feenablxcpt.c
+++ b/sysdeps/i386/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
feenableexcept (int excepts)
diff --git a/sysdeps/i386/fpu/fegetenv.c b/sysdeps/i386/fpu/fegetenv.c
index 231470f..0d2b87d 100644
--- a/sysdeps/i386/fpu/fegetenv.c
+++ b/sysdeps/i386/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
__fegetenv (fenv_t *envp)
diff --git a/sysdeps/i386/fpu/fegetexcept.c b/sysdeps/i386/fpu/fegetexcept.c
index 2839d32..00ff7c4 100644
--- a/sysdeps/i386/fpu/fegetexcept.c
+++ b/sysdeps/i386/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/fegetmode.c b/sysdeps/i386/fpu/fegetmode.c
index eff11a2..41275e1 100644
--- a/sysdeps/i386/fpu/fegetmode.c
+++ b/sysdeps/i386/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. i386 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,6 @@
#include <fpu_control.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
fegetmode (femode_t *modep)
diff --git a/sysdeps/i386/fpu/fegetround.c b/sysdeps/i386/fpu/fegetround.c
index d6716c5..297894d 100644
--- a/sysdeps/i386/fpu/fegetround.c
+++ b/sysdeps/i386/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/feholdexcpt.c b/sysdeps/i386/fpu/feholdexcpt.c
index 397fcbd..a323a04 100644
--- a/sysdeps/i386/fpu/feholdexcpt.c
+++ b/sysdeps/i386/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
__feholdexcept (fenv_t *envp)
diff --git a/sysdeps/i386/fpu/fesetenv.c b/sysdeps/i386/fpu/fesetenv.c
index 4f19b18..66d7002 100644
--- a/sysdeps/i386/fpu/fesetenv.c
+++ b/sysdeps/i386/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <assert.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
/* All exceptions, including the x86-specific "denormal operand"
diff --git a/sysdeps/i386/fpu/fesetexcept.c b/sysdeps/i386/fpu/fesetexcept.c
index 17a0495..e483b46 100644
--- a/sysdeps/i386/fpu/fesetexcept.c
+++ b/sysdeps/i386/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. i386 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/fesetmode.c b/sysdeps/i386/fpu/fesetmode.c
index 293c762..eab0a5d 100644
--- a/sysdeps/i386/fpu/fesetmode.c
+++ b/sysdeps/i386/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. i386 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,6 @@
#include <fpu_control.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
/* All exceptions, including the x86-specific "denormal operand"
exception. */
diff --git a/sysdeps/i386/fpu/fesetround.c b/sysdeps/i386/fpu/fesetround.c
index a14672f..ea1f909 100644
--- a/sysdeps/i386/fpu/fesetround.c
+++ b/sysdeps/i386/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
__fesetround (int round)
diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
index b776f9e..89b0009 100644
--- a/sysdeps/i386/fpu/feupdateenv.c
+++ b/sysdeps/i386/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,6 @@
#include <fenv.h>
#include <unistd.h>
-#include <dl-procinfo.h>
#include <ldsodefs.h>
int
diff --git a/sysdeps/i386/fpu/fgetexcptflg.c b/sysdeps/i386/fpu/fgetexcptflg.c
index 0e15aed..be181af 100644
--- a/sysdeps/i386/fpu/fgetexcptflg.c
+++ b/sysdeps/i386/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
int
diff --git a/sysdeps/i386/fpu/fraiseexcpt.c b/sysdeps/i386/fpu/fraiseexcpt.c
index b6e242c..65fba2e 100644
--- a/sysdeps/i386/fpu/fraiseexcpt.c
+++ b/sysdeps/i386/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/fsetexcptflg.c b/sysdeps/i386/fpu/fsetexcptflg.c
index c2a4b0b..78736e0 100644
--- a/sysdeps/i386/fpu/fsetexcptflg.c
+++ b/sysdeps/i386/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/ftestexcept.c b/sysdeps/i386/fpu/ftestexcept.c
index 47adabf..2d41ba2 100644
--- a/sysdeps/i386/fpu/ftestexcept.c
+++ b/sysdeps/i386/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,6 @@
#include <fenv.h>
#include <unistd.h>
-#include <dl-procinfo.h>
#include <ldsodefs.h>
int
diff --git a/sysdeps/i386/fpu/i386-math-asm.h b/sysdeps/i386/fpu/i386-math-asm.h
index ff202d1..d11f9f7 100644
--- a/sysdeps/i386/fpu/i386-math-asm.h
+++ b/sysdeps/i386/fpu/i386-math-asm.h
@@ -1,5 +1,5 @@
/* Helper macros for x86 libm functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 7da1379..151fc2a 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1,1796 +1,12 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_downward":
-float128: 1
-ldouble: 2
-
-Function: "acos_towardzero":
-float128: 1
-ldouble: 2
-
-Function: "acos_upward":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "acosh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "acosh_downward":
-double: 1
-float128: 3
-ldouble: 4
-
-Function: "acosh_towardzero":
-double: 1
-float128: 2
-ldouble: 4
-
-Function: "acosh_upward":
-double: 1
-float128: 3
-ldouble: 3
-
-Function: "asin":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float128: 2
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "asinh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "asinh_downward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "asinh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "asinh_upward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "atan":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "atan2":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "atan2_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan2_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "atan2_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atanh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "atanh_downward":
-double: 1
-float: 1
-float128: 4
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "atanh_upward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "cabs":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Real part of "cacosh_upward":
-double: 5
-float: 4
-float128: 6
-ldouble: 5
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "carg":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "carg_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "carg_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "carg_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "casin_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "catan":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
+# sysdeps/i386/fpu/s_cbrtf.S is not correctly rounded
Function: "cbrt":
-double: 1
float: 1
-float128: 1
-ldouble: 3
Function: "cbrt_downward":
-double: 1
float: 1
-float128: 1
-ldouble: 4
Function: "cbrt_towardzero":
-double: 1
float: 1
-float128: 1
-ldouble: 3
Function: "cbrt_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 4
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-float128: 1
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 4
-float: 4
-float128: 3
-ldouble: 8
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 4
-float: 5
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_towardzero":
-double: 3
-float: 4
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_upward":
-double: 2
-float: 3
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cos":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "cos_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "cosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_upward":
-double: 4
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-float128: 4
-ldouble: 3
-
-Function: Imaginary part of "cpow":
-float: 2
-float128: 1
-ldouble: 4
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-float: 1
-float128: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "csinh":
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 4
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_towardzero":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 3
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_upward":
-double: 3
-float: 4
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "ctanh_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 3
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 3
-float: 3
-float128: 5
-ldouble: 3
-
-Function: "erf":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erfc":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "erfc_downward":
-double: 5
-float: 6
-float128: 5
-ldouble: 4
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-float128: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-float128: 5
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp10":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "exp10_downward":
-double: 1
float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10m1":
-double: 3
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-float128: 6
-ldouble: 6
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 2
-float128: 6
-ldouble: 5
-
-Function: "exp10m1_upward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: "exp2":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_downward":
-float128: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_upward":
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "exp2m1":
-double: 2
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-float128: 4
-ldouble: 5
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-float128: 5
-ldouble: 6
-
-Function: "exp_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1":
-double: 1
-float128: 2
-ldouble: 3
-
-Function: "expm1_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "expm1_towardzero":
-double: 1
-float: 1
-float128: 4
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "gamma":
-double: 4
-float: 5
-ldouble: 4
-
-Function: "gamma_downward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 7
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 6
-
-Function: "hypot":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "j0":
-double: 5
-float: 9
-float128: 2
-ldouble: 8
-
-Function: "j0_downward":
-double: 6
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_upward":
-double: 9
-float: 9
-float128: 7
-ldouble: 6
-
-Function: "j1":
-double: 4
-float: 9
-float128: 4
-ldouble: 9
-
-Function: "j1_downward":
-double: 5
-float: 8
-float128: 4
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-float128: 4
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-float128: 3
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-float128: 7
-ldouble: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-float128: 8
-ldouble: 4
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-float128: 8
-ldouble: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 5
-
-Function: "lgamma":
-double: 4
-float: 5
-float128: 5
-ldouble: 4
-
-Function: "lgamma_downward":
-double: 5
-float: 5
-float128: 8
-ldouble: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-float128: 5
-ldouble: 7
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-float128: 8
-ldouble: 6
-
-Function: "log":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "log10":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "log10_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "log10_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-float128: 4
-ldouble: 8
-
-Function: "log10p1_towardzero":
-double: 2
-float: 1
-float128: 3
-ldouble: 8
-
-Function: "log10p1_upward":
-double: 2
-float: 2
-float128: 4
-ldouble: 6
-
-Function: "log1p":
-double: 1
-float128: 3
-ldouble: 2
-
-Function: "log1p_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log1p_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log1p_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "log2":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_downward":
-double: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log2_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log2p1":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "log2p1_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 5
-
-Function: "log_downward":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "log_towardzero":
-double: 1
-float128: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float128: 3
-ldouble: 2
-
-Function: "logp1_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "logp1_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "logp1_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "pow":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "sin":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 5
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "sinh_upward":
-double: 4
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "tan":
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "tan_downward":
-double: 1
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "tan_towardzero":
-double: 1
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "tan_upward":
-double: 1
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "tanh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "tanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: "tgamma":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "y0":
-double: 3
-float: 9
-float128: 3
-ldouble: 2
-
-Function: "y0_downward":
-double: 3
-float: 9
-float128: 7
-ldouble: 5
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-float128: 3
-ldouble: 8
-
-Function: "y0_upward":
-double: 3
-float: 9
-float128: 4
-ldouble: 7
-
-Function: "y1":
-double: 3
-float: 9
-float128: 5
-ldouble: 3
-
-Function: "y1_downward":
-double: 6
-float: 9
-float128: 5
-ldouble: 7
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-float128: 2
-ldouble: 5
-
-Function: "y1_upward":
-double: 7
-float: 9
-float128: 5
-ldouble: 7
-
-Function: "yn":
-double: 3
-float: 3
-float128: 5
-ldouble: 4
-
-Function: "yn_downward":
-double: 3
-float: 4
-float128: 5
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-float128: 5
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-float128: 5
-ldouble: 4
-
-# end of automatic generation
diff --git a/sysdeps/i386/fpu/libm-test-ulps-name b/sysdeps/i386/fpu/libm-test-ulps-name
deleted file mode 100644
index 54ca0d8..0000000
--- a/sysdeps/i386/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-ix86
diff --git a/sysdeps/i386/fpu/math-tests-snan.h b/sysdeps/i386/fpu/math-tests-snan.h
index fbb261a..3947bbc 100644
--- a/sysdeps/i386/fpu/math-tests-snan.h
+++ b/sysdeps/i386/fpu/math-tests-snan.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN support. 32-bit x86 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/math-tests-trap-force.h b/sysdeps/i386/fpu/math-tests-trap-force.h
index c425191..6a74da7 100644
--- a/sysdeps/i386/fpu/math-tests-trap-force.h
+++ b/sysdeps/i386/fpu/math-tests-trap-force.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for setting exception flags
without causing enabled traps. i686 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_asinh.S b/sysdeps/i386/fpu/s_asinh.S
index f60f8fa..c383f2e 100644
--- a/sysdeps/i386/fpu/s_asinh.S
+++ b/sysdeps/i386/fpu/s_asinh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_asinhf.S b/sysdeps/i386/fpu/s_asinhf.S
deleted file mode 100644
index fe52e20..0000000
--- a/sysdeps/i386/fpu/s_asinhf.S
+++ /dev/null
@@ -1,139 +0,0 @@
-/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <machine/asm.h>
-#include <libm-alias-float.h>
-
- .section .rodata
-
- .align ALIGNARG(4)
- .type huge,@object
-huge: .double 1e+36
- ASM_SIZE_DIRECTIVE(huge)
- .type one,@object
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- .type limit,@object
-limit: .double 0.29
- ASM_SIZE_DIRECTIVE(limit)
-
-#ifdef PIC
-#define MO(op) op##@GOTOFF(%edx)
-#else
-#define MO(op) op
-#endif
-
- .text
-ENTRY(__asinhf)
- movl 4(%esp), %ecx
- movl $0x7fffffff, %eax
- andl %ecx, %eax
- andl $0x80000000, %ecx
- movl %eax, %edx
- orl $0x807fffff, %edx
- incl %edx
- jz 7f // x in ±Inf or NaN
- xorl %ecx, 4(%esp)
- flds 4(%esp) // |x|
- cmpl $0x38000000, %eax
- jb 2f // |x| < 2^-14
- fldln2 // log(2) : |x|
- cmpl $0x47000000, %eax
- fxch // |x| : log(2)
- ja 3f // |x| > 2^14
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- cmpl $0x40000000, %eax
- ja 5f // |x| > 2
-
- // 2^-14 <= |x| <= 2 => y = sign(x)*log1p(|x|+|x|^2/(1+sqrt(1+|x|^2)))
- fld %st // |x| : |x| : log(2)
- fmul %st(1) // |x|^2 : |x| : log(2)
- fld %st // |x|^2 : |x|^2 : |x| : log(2)
- faddl MO(one) // 1+|x|^2 : |x|^2 : |x| : log(2)
- fsqrt // sqrt(1+|x|^2) : |x|^2 : |x| : log(2)
- faddl MO(one) // 1+sqrt(1+|x|^2) : |x|^2 : |x| : log(2)
- fdivrp // |x|^2/(1+sqrt(1+|x|^2)) : |x| : log(2)
- faddp // |x|+|x|^2/(1+sqrt(1+|x|^2)) : log(2)
- fcoml MO(limit)
- fnstsw
- sahf
- ja 6f
- fyl2xp1
- jecxz 4f
- fchs
-4: ret
-
-7: flds 4(%esp)
- ret
-
-6: faddl MO(one)
- fyl2x
- jecxz 4f
- fchs
-4: ret
-
- // |x| < 2^-14 => y = x (inexact iff |x| != 0.0)
- .align ALIGNARG(4)
-2:
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- jecxz 4f
- fchs // x
-4: fld %st // x : x
- faddl MO(huge) // huge+x : x
- fstp %st(0) // x
- cmpl $0x00800000, %eax
- jae 8f
- subl $4, %esp
- cfi_adjust_cfa_offset (4)
- fld %st(0)
- fmul %st(0)
- fstps (%esp)
- addl $4, %esp
- cfi_adjust_cfa_offset (-4)
-8: ret
-
- // |x| > 2^14 => y = sign(x) * (log(|x|) + log(2))
- .align ALIGNARG(4)
-3: fyl2x // log(|x|)
- fldln2 // log(2) : log(|x|)
- faddp // log(|x|)+log(2)
- jecxz 4f
- fchs
-4: ret
-
- // |x| > 2 => y = sign(x) * log(2*|x| + 1/(|x|+sqrt(x*x+1)))
- .align ALIGNARG(4)
-5: fld %st // |x| : |x| : log(2)
- fadd %st, %st(1) // |x| : 2*|x| : log(2)
- fld %st // |x| : |x| : 2*|x| : log(2)
- fmul %st(1) // |x|^2 : |x| : 2*|x| : log(2)
- faddl MO(one) // 1+|x|^2 : |x| : 2*|x| : log(2)
- fsqrt // sqrt(1+|x|^2) : |x| : 2*|x| : log(2)
- faddp // |x|+sqrt(1+|x|^2) : 2*|x| : log(2)
- fdivrl MO(one) // 1/(|x|+sqrt(1+|x|^2)) : 2*|x| : log(2)
- faddp // 2*|x|+1/(|x|+sqrt(1+|x|^2)) : log(2)
- fyl2x // log(2*|x|+1/(|x|+sqrt(1+|x|^2)))
- jecxz 4f
- fchs
-4: ret
-END(__asinhf)
-libm_alias_float (__asinh, asinh)
diff --git a/sysdeps/i386/fpu/s_asinhl.S b/sysdeps/i386/fpu/s_asinhl.S
index 5acf856..f3b5f73 100644
--- a/sysdeps/i386/fpu/s_asinhl.S
+++ b/sysdeps/i386/fpu/s_asinhl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_atanf.S b/sysdeps/i386/fpu/s_atanf.S
deleted file mode 100644
index 4a8f5e3..0000000
--- a/sysdeps/i386/fpu/s_atanf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-#include <libm-alias-float.h>
-
-RCSID("$NetBSD: s_atanf.S,v 1.3 1995/05/08 23:51:33 jtc Exp $")
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%ecx)
-#else
-# define MO(op) op
-#endif
-
- .text
-ENTRY(__atanf)
-#ifdef PIC
- LOAD_PIC_REG (cx)
-#endif
- flds 4(%esp)
- fld1
- fpatan
- FLT_CHECK_FORCE_UFLOW
- ret
-END (__atanf)
-libm_alias_float (__atan, atan)
diff --git a/sysdeps/i386/fpu/s_cbrt.S b/sysdeps/i386/fpu/s_cbrt.S
index fa52293..921c972 100644
--- a/sysdeps/i386/fpu/s_cbrt.S
+++ b/sysdeps/i386/fpu/s_cbrt.S
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_cbrtf.S b/sysdeps/i386/fpu/s_cbrtf.S
index baed277..fae31cb 100644
--- a/sysdeps/i386/fpu/s_cbrtf.S
+++ b/sysdeps/i386/fpu/s_cbrtf.S
@@ -1,5 +1,5 @@
/* Compute cubic root of float value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_cbrtl.S b/sysdeps/i386/fpu/s_cbrtl.S
index 3708ddb..e7b3f2c 100644
--- a/sysdeps/i386/fpu/s_cbrtl.S
+++ b/sysdeps/i386/fpu/s_cbrtl.S
@@ -1,5 +1,5 @@
/* Compute cubic root of long double value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_ceil.c b/sysdeps/i386/fpu/s_ceil.c
index 349135c..3f00a93 100644
--- a/sysdeps/i386/fpu/s_ceil.c
+++ b/sysdeps/i386/fpu/s_ceil.c
@@ -1,5 +1,5 @@
/* Return smallest integral value not less than argument. i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_ceilf.c b/sysdeps/i386/fpu/s_ceilf.c
index e73a20f..a40c49e 100644
--- a/sysdeps/i386/fpu/s_ceilf.c
+++ b/sysdeps/i386/fpu/s_ceilf.c
@@ -1,5 +1,5 @@
/* Return largest integral value not less than argument. i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_expm1.S b/sysdeps/i386/fpu/s_expm1.S
index da545e9..a8cda33 100644
--- a/sysdeps/i386/fpu/s_expm1.S
+++ b/sysdeps/i386/fpu/s_expm1.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of exp(x)-1.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_expm1f.S b/sysdeps/i386/fpu/s_expm1f.S
deleted file mode 100644
index a1cb5bf..0000000
--- a/sysdeps/i386/fpu/s_expm1f.S
+++ /dev/null
@@ -1,112 +0,0 @@
-/* ix87 specific implementation of exp(x)-1.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
- /* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
-
-#include <sysdep.h>
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-#include <libm-alias-float.h>
-
- .section .rodata
-
- .align ALIGNARG(4)
- .type minus1,@object
-minus1: .double -1.0
- ASM_SIZE_DIRECTIVE(minus1)
- .type one,@object
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- .type l2e,@object
-l2e: .quad 0xb8aa3b295c17f0bc /* 1.442695040888963407359924681002 */
- .short 0x3fff
- ASM_SIZE_DIRECTIVE(l2e)
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-#define MO(op) op##@GOTOFF(%edx)
-#else
-#define MO(op) op
-#endif
-
- .text
-ENTRY(__expm1f)
- movzwl 4+2(%esp), %eax
- xorb $0x80, %ah // invert sign bit (now 1 is "positive")
- cmpl $0xc2b1, %eax // is num >= 88.5?
- jae HIDDEN_JUMPTARGET (__expf)
-
- flds 4(%esp) // x
- fxam // Is NaN, +-Inf or +-0?
- xorb $0x80, %ah
- cmpl $0xc190, %eax // is num <= -18.0?
- fstsw %ax
- movb $0x45, %ch
- jb 4f
-
- // Below -18.0 (may be -NaN or -Inf).
- andb %ah, %ch
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- cmpb $0x01, %ch
- je 5f // If -NaN, jump.
- jmp 2f // -large, possibly -Inf.
-
-4: // In range -18.0 to 88.5 (may be +-0 but not NaN or +-Inf).
- andb %ah, %ch
- cmpb $0x40, %ch
- je 3f // If +-0, jump.
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
-
-5: fldt MO(l2e) // log2(e) : x
- fmulp // log2(e)*x
- fld %st // log2(e)*x : log2(e)*x
- // Set round-to-nearest temporarily.
- subl $8, %esp
- cfi_adjust_cfa_offset (8)
- fstcw 4(%esp)
- movl $0xf3ff, %ecx
- andl 4(%esp), %ecx
- movl %ecx, (%esp)
- fldcw (%esp)
- frndint // int(log2(e)*x) : log2(e)*x
- fldcw 4(%esp)
- addl $8, %esp
- cfi_adjust_cfa_offset (-8)
- fsubr %st, %st(1) // int(log2(e)*x) : fract(log2(e)*x)
- fxch // fract(log2(e)*x) : int(log2(e)*x)
- f2xm1 // 2^fract(log2(e)*x)-1 : int(log2(e)*x)
- fscale // 2^(log2(e)*x)-2^int(log2(e)*x) : int(log2(e)*x)
- fxch // int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*x)
- fldl MO(one) // 1 : int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*x)
- fscale // 2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*x)
- fsubrl MO(one) // 1-2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*x)
- fstp %st(1) // 1-2^int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*x)
- fsubrp %st, %st(1) // 2^(log2(e)*x)
- FLT_CHECK_FORCE_UFLOW
- ret
-
-2: fstp %st
- fldl MO(minus1) // Set result to -1.0.
-3: ret
-END(__expm1f)
-libm_alias_float (__expm1, expm1)
diff --git a/sysdeps/i386/fpu/s_f32xaddf64.c b/sysdeps/i386/fpu/s_f32xaddf64.c
index b8b7f25..6b19c45 100644
--- a/sysdeps/i386/fpu/s_f32xaddf64.c
+++ b/sysdeps/i386/fpu/s_f32xaddf64.c
@@ -1,5 +1,5 @@
/* Add _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_f32xdivf64.c b/sysdeps/i386/fpu/s_f32xdivf64.c
index 8dd022b..8c8788e 100644
--- a/sysdeps/i386/fpu/s_f32xdivf64.c
+++ b/sysdeps/i386/fpu/s_f32xdivf64.c
@@ -1,5 +1,5 @@
/* Divide _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_f32xmulf64.c b/sysdeps/i386/fpu/s_f32xmulf64.c
index c89e49e..86dd076 100644
--- a/sysdeps/i386/fpu/s_f32xmulf64.c
+++ b/sysdeps/i386/fpu/s_f32xmulf64.c
@@ -1,5 +1,5 @@
/* Multiply _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_f32xsubf64.c b/sysdeps/i386/fpu/s_f32xsubf64.c
index 2b3d0dd..ed92d8c 100644
--- a/sysdeps/i386/fpu/s_f32xsubf64.c
+++ b/sysdeps/i386/fpu/s_f32xsubf64.c
@@ -1,5 +1,5 @@
/* Subtract _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fdim.c b/sysdeps/i386/fpu/s_fdim.c
index 2343d17..61efc55 100644
--- a/sysdeps/i386/fpu/s_fdim.c
+++ b/sysdeps/i386/fpu/s_fdim.c
@@ -1,5 +1,5 @@
/* Return positive difference between arguments. i386 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_floor.c b/sysdeps/i386/fpu/s_floor.c
index cc50e33..e1005a9 100644
--- a/sysdeps/i386/fpu/s_floor.c
+++ b/sysdeps/i386/fpu/s_floor.c
@@ -1,5 +1,5 @@
/* Return smallest integral value not less than argument. i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_floorf.c b/sysdeps/i386/fpu/s_floorf.c
index fa9454e..f1837c5 100644
--- a/sysdeps/i386/fpu/s_floorf.c
+++ b/sysdeps/i386/fpu/s_floorf.c
@@ -1,5 +1,5 @@
/* Largest integral value not greater than argument i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fmax.S b/sysdeps/i386/fpu/s_fmax.S
index 9a87b74..8fa48ae 100644
--- a/sysdeps/i386/fpu/s_fmax.S
+++ b/sysdeps/i386/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fmaxf.S b/sysdeps/i386/fpu/s_fmaxf.S
index 0bfd854..5c881a8 100644
--- a/sysdeps/i386/fpu/s_fmaxf.S
+++ b/sysdeps/i386/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fmaxl.S b/sysdeps/i386/fpu/s_fmaxl.S
index 28a7534..77526e3 100644
--- a/sysdeps/i386/fpu/s_fmaxl.S
+++ b/sysdeps/i386/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fmin.S b/sysdeps/i386/fpu/s_fmin.S
index 519d277..e15e668 100644
--- a/sysdeps/i386/fpu/s_fmin.S
+++ b/sysdeps/i386/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fminf.S b/sysdeps/i386/fpu/s_fminf.S
index 2ccedae..a5cc4e2 100644
--- a/sysdeps/i386/fpu/s_fminf.S
+++ b/sysdeps/i386/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_fminl.S b/sysdeps/i386/fpu/s_fminl.S
index 86aade1..f23a500 100644
--- a/sysdeps/i386/fpu/s_fminl.S
+++ b/sysdeps/i386/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S
index 4fd9625..db527a9 100644
--- a/sysdeps/i386/fpu/s_frexp.S
+++ b/sysdeps/i386/fpu/s_frexp.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for double.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S
index 3035883..451836a 100644
--- a/sysdeps/i386/fpu/s_frexpf.S
+++ b/sysdeps/i386/fpu/s_frexpf.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for float.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S
index 29639b6..9a2410d 100644
--- a/sysdeps/i386/fpu/s_frexpl.S
+++ b/sysdeps/i386/fpu/s_frexpl.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for long double.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_llrint.S b/sysdeps/i386/fpu/s_llrint.S
index a89f13f..c0b7605 100644
--- a/sysdeps/i386/fpu/s_llrint.S
+++ b/sysdeps/i386/fpu/s_llrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_llrintf.S b/sysdeps/i386/fpu/s_llrintf.S
index 4d9599e..403908b 100644
--- a/sysdeps/i386/fpu/s_llrintf.S
+++ b/sysdeps/i386/fpu/s_llrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_llrintl.S b/sysdeps/i386/fpu/s_llrintl.S
index 90d214c..69336a5 100644
--- a/sysdeps/i386/fpu/s_llrintl.S
+++ b/sysdeps/i386/fpu/s_llrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_log1pf.S b/sysdeps/i386/fpu/s_log1pf.S
deleted file mode 100644
index 82a3f44..0000000
--- a/sysdeps/i386/fpu/s_log1pf.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <i386-math-asm.h>
-
-RCSID("$NetBSD: s_log1pf.S,v 1.4 1995/05/09 00:13:05 jtc Exp $")
-
- .section .rodata
-
- .align ALIGNARG(4)
- /* The fyl2xp1 can only be used for values in
- -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2
- 0.29 is a safe value.
- */
-limit: .float 0.29
-one: .float 1.0
-
-DEFINE_FLT_MIN
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%edx)
-#else
-# define MO(op) op
-#endif
-
-/*
- * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29,
- * otherwise fyl2x with the needed extra computation.
- */
- .text
-ENTRY(__log1pf)
- fldln2
-
- flds 4(%esp)
-
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
-
- fxam
- fnstsw
- fld %st
- sahf
- jc 3f // in case x is NaN or ±Inf
-4: fabs
- fcomps MO(limit)
- fnstsw
- sahf
- jc 2f
-
- fadds MO(one)
- fyl2x
- ret
-
-2: fyl2xp1
- FLT_CHECK_FORCE_UFLOW_NONNAN
- ret
-
-3: jp 4b // in case x is ±Inf
- fstp %st(1)
- fstp %st(1)
- ret
-
-END (__log1pf)
diff --git a/sysdeps/i386/fpu/s_lrint.S b/sysdeps/i386/fpu/s_lrint.S
index 546099e..4b42958 100644
--- a/sysdeps/i386/fpu/s_lrint.S
+++ b/sysdeps/i386/fpu/s_lrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_lrintf.S b/sysdeps/i386/fpu/s_lrintf.S
index 041546a..d546611 100644
--- a/sysdeps/i386/fpu/s_lrintf.S
+++ b/sysdeps/i386/fpu/s_lrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_lrintl.S b/sysdeps/i386/fpu/s_lrintl.S
index db8c88f..cefd025 100644
--- a/sysdeps/i386/fpu/s_lrintl.S
+++ b/sysdeps/i386/fpu/s_lrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_trunc.c b/sysdeps/i386/fpu/s_trunc.c
index ac16f49..039aa3d 100644
--- a/sysdeps/i386/fpu/s_trunc.c
+++ b/sysdeps/i386/fpu/s_trunc.c
@@ -1,5 +1,5 @@
/* Round to integer, toward zero. i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/fpu/s_truncf.c b/sysdeps/i386/fpu/s_truncf.c
index 240d350..fa98433 100644
--- a/sysdeps/i386/fpu/s_truncf.c
+++ b/sysdeps/i386/fpu/s_truncf.c
@@ -1,5 +1,5 @@
/* Round to integer, toward zero. i386 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/gccframe.h b/sysdeps/i386/gccframe.h
index cca225f..ed63818 100644
--- a/sysdeps/i386/gccframe.h
+++ b/sysdeps/i386/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. i386 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/htl/Makefile b/sysdeps/i386/htl/Makefile
index 686b843..8c51792 100644
--- a/sysdeps/i386/htl/Makefile
+++ b/sysdeps/i386/htl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/htl/bits/pthreadtypes-arch.h b/sysdeps/i386/htl/bits/pthreadtypes-arch.h
index 163b3df..4aed38f 100644
--- a/sysdeps/i386/htl/bits/pthreadtypes-arch.h
+++ b/sysdeps/i386/htl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. Hurd i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/htl/machine-sp.h b/sysdeps/i386/htl/machine-sp.h
index 2208dca..1830fbe 100644
--- a/sysdeps/i386/htl/machine-sp.h
+++ b/sysdeps/i386/htl/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. i386 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i386-mcount.S b/sysdeps/i386/i386-mcount.S
index 6082e1a..523defc 100644
--- a/sysdeps/i386/i386-mcount.S
+++ b/sysdeps/i386/i386-mcount.S
@@ -1,5 +1,5 @@
/* i386-specific implementation of profiling support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/add_n.S b/sysdeps/i386/i586/add_n.S
index 31afdfc..d69bd46 100644
--- a/sysdeps/i386/i586/add_n.S
+++ b/sysdeps/i386/i586/add_n.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S
index 642bfca..11cf4dc 100644
--- a/sysdeps/i386/i586/addmul_1.S
+++ b/sysdeps/i386/i586/addmul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i586/isa.h b/sysdeps/i386/i586/isa.h
index fc3bafc..140d9b8 100644
--- a/sysdeps/i386/i586/isa.h
+++ b/sysdeps/i386/i586/isa.h
@@ -1,5 +1,5 @@
/* x86 ISA info. i586 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
index bb8eefe..efd14d3 100644
--- a/sysdeps/i386/i586/lshift.S
+++ b/sysdeps/i386/i586/lshift.S
@@ -1,5 +1,5 @@
/* Pentium optimized __mpn_lshift --
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/memcopy.h b/sysdeps/i386/i586/memcopy.h
index 1fb48cc..3493ba9 100644
--- a/sysdeps/i386/i586/memcopy.h
+++ b/sysdeps/i386/i586/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Pentium version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 79856d4..a58ef55 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -1,5 +1,5 @@
/* Highly optimized version for i586.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
index 1473dee..db72f74 100644
--- a/sysdeps/i386/i586/memset.S
+++ b/sysdeps/i386/i586/memset.S
@@ -1,6 +1,6 @@
/* memset/bzero -- set memory area to CH/0
Highly optimized version for ix86, x>=5.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S
index 8a6cdd4..b9a9b1a 100644
--- a/sysdeps/i386/i586/mul_1.S
+++ b/sysdeps/i386/i586/mul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S
index c2380b8..4f21e13 100644
--- a/sysdeps/i386/i586/rshift.S
+++ b/sysdeps/i386/i586/rshift.S
@@ -1,5 +1,5 @@
/* Pentium optimized __mpn_rshift --
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index c24d0e9..cd90631 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -1,6 +1,6 @@
/* Find character CH in a NUL terminated string.
Highly optimized version for ix85, x>=5.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/strcpy.S b/sysdeps/i386/i586/strcpy.S
index eff74c5..a25a9bd 100644
--- a/sysdeps/i386/i586/strcpy.S
+++ b/sysdeps/i386/i586/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy implementation for i586.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
index ad4267d..50dfba0 100644
--- a/sysdeps/i386/i586/strlen.S
+++ b/sysdeps/i386/i586/strlen.S
@@ -1,6 +1,6 @@
/* strlen -- Compute length of NUL terminated string.
Highly optimized version for ix86, x>=5.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i586/sub_n.S b/sysdeps/i386/i586/sub_n.S
index 67579c5..43dddb0 100644
--- a/sysdeps/i386/i586/sub_n.S
+++ b/sysdeps/i386/i586/sub_n.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_sub_n -- Subtract two limb vectors of the same length > 0
and store difference in a third limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S
index 66c004e..404b91b 100644
--- a/sysdeps/i386/i586/submul_1.S
+++ b/sysdeps/i386/i586/submul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i686/add_n.S b/sysdeps/i386/i686/add_n.S
index bbc0cc7..baaf2b4 100644
--- a/sysdeps/i386/i686/add_n.S
+++ b/sysdeps/i386/i686/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/i686/dl-hash.h b/sysdeps/i386/i686/dl-hash.h
index 4291502..bc8e9d5 100644
--- a/sysdeps/i386/i686/dl-hash.h
+++ b/sysdeps/i386/i686/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash value for given string according to ELF standard.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c b/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
index 6228fb0..867464d 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of exp2f.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_expf.c b/sysdeps/i386/i686/fpu/multiarch/e_expf.c
index 7cd328d..8722231 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_expf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_expf.c
@@ -1,5 +1,5 @@
/* Multiple versions of expf.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_log2f.c b/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
index 8c663d3..a81c95d 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of log2f.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_logf.c b/sysdeps/i386/i686/fpu/multiarch/e_logf.c
index e6c58b5..fcb8d49 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_logf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_logf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_powf.c b/sysdeps/i386/i686/fpu/multiarch/e_powf.c
index 24adcd2..b36b96e 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_powf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_powf.c
@@ -1,5 +1,5 @@
/* Multiple versions of powf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
deleted file mode 100644
index 2c7497b..0000000
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ /dev/null
@@ -1,1798 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_downward":
-float128: 1
-ldouble: 2
-
-Function: "acos_towardzero":
-float128: 1
-ldouble: 2
-
-Function: "acos_upward":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "acosh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "acosh_downward":
-double: 1
-float128: 3
-ldouble: 4
-
-Function: "acosh_towardzero":
-double: 1
-float128: 2
-ldouble: 4
-
-Function: "acosh_upward":
-double: 1
-float128: 3
-ldouble: 3
-
-Function: "asin":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float128: 2
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "asinh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "asinh_downward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "asinh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "asinh_upward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "atan":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "atan2":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "atan2_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan2_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "atan2_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "atanh":
-double: 1
-float128: 4
-ldouble: 3
-
-Function: "atanh_downward":
-double: 1
-float: 1
-float128: 4
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "atanh_upward":
-double: 1
-float: 1
-float128: 4
-ldouble: 5
-
-Function: "cabs":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 2
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 2
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 2
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Real part of "cacosh_upward":
-double: 5
-float: 4
-float128: 6
-ldouble: 5
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "carg":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "carg_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "carg_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "carg_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "casin_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 7
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "catan":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 1
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cbrt":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "cbrt_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 4
-
-Function: "cbrt_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "cbrt_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 4
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-float128: 1
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 4
-float: 4
-float128: 3
-ldouble: 8
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 4
-float: 5
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_towardzero":
-double: 3
-float: 4
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_upward":
-double: 2
-float: 3
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cos":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "cos_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "cosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_upward":
-double: 4
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-float128: 4
-ldouble: 3
-
-Function: Imaginary part of "cpow":
-double: 1
-float: 2
-float128: 1
-ldouble: 4
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-double: 1
-float: 1
-float128: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "csinh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 3
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 4
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_towardzero":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_upward":
-double: 3
-float: 4
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "ctanh_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 3
-float: 3
-float128: 5
-ldouble: 3
-
-Function: "erf":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erfc":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "erfc_downward":
-double: 5
-float: 6
-float128: 5
-ldouble: 4
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-float128: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-float128: 5
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp10":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "exp10_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10m1":
-double: 3
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-float128: 6
-ldouble: 6
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 2
-float128: 6
-ldouble: 5
-
-Function: "exp10m1_upward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: "exp2":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_downward":
-float128: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_upward":
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "exp2m1":
-double: 2
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-float128: 4
-ldouble: 5
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-float128: 5
-ldouble: 6
-
-Function: "exp_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1":
-double: 1
-float128: 2
-ldouble: 3
-
-Function: "expm1_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "expm1_towardzero":
-double: 1
-float: 1
-float128: 4
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "gamma":
-double: 4
-float: 5
-ldouble: 4
-
-Function: "gamma_downward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 7
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 6
-
-Function: "hypot":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "j0":
-double: 5
-float: 9
-float128: 2
-ldouble: 8
-
-Function: "j0_downward":
-double: 6
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_upward":
-double: 9
-float: 9
-float128: 7
-ldouble: 6
-
-Function: "j1":
-double: 4
-float: 9
-float128: 4
-ldouble: 9
-
-Function: "j1_downward":
-double: 5
-float: 8
-float128: 4
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-float128: 4
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-float128: 3
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-float128: 7
-ldouble: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-float128: 8
-ldouble: 4
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-float128: 8
-ldouble: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 5
-
-Function: "lgamma":
-double: 4
-float: 5
-float128: 5
-ldouble: 4
-
-Function: "lgamma_downward":
-double: 5
-float: 5
-float128: 8
-ldouble: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-float128: 5
-ldouble: 7
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-float128: 8
-ldouble: 6
-
-Function: "log":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "log10":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "log10_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "log10_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-float128: 4
-ldouble: 8
-
-Function: "log10p1_towardzero":
-double: 2
-float: 1
-float128: 3
-ldouble: 8
-
-Function: "log10p1_upward":
-double: 2
-float: 2
-float128: 4
-ldouble: 6
-
-Function: "log1p":
-double: 1
-float128: 3
-ldouble: 2
-
-Function: "log1p_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log1p_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log1p_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "log2":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_downward":
-double: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log2_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log2p1":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "log2p1_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 5
-
-Function: "log_downward":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "log_towardzero":
-double: 1
-float128: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float128: 3
-ldouble: 2
-
-Function: "logp1_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "logp1_towardzero":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "logp1_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "pow":
-double: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "sin":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 5
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "sinh_upward":
-double: 4
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "tan":
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "tan_downward":
-double: 1
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "tan_towardzero":
-double: 1
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "tan_upward":
-double: 1
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "tanh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "tanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: "tgamma":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_upward":
-double: 8
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "y0":
-double: 3
-float: 9
-float128: 3
-ldouble: 2
-
-Function: "y0_downward":
-double: 3
-float: 9
-float128: 7
-ldouble: 5
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-float128: 3
-ldouble: 8
-
-Function: "y0_upward":
-double: 3
-float: 9
-float128: 4
-ldouble: 7
-
-Function: "y1":
-double: 3
-float: 9
-float128: 5
-ldouble: 3
-
-Function: "y1_downward":
-double: 6
-float: 9
-float128: 5
-ldouble: 7
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-float128: 6
-ldouble: 5
-
-Function: "y1_upward":
-double: 7
-float: 9
-float128: 6
-ldouble: 9
-
-Function: "yn":
-double: 3
-float: 3
-float128: 5
-ldouble: 4
-
-Function: "yn_downward":
-double: 3
-float: 4
-float128: 5
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-float128: 5
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-float128: 5
-ldouble: 4
-
-# end of automatic generation
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name
deleted file mode 100644
index 193dd70..0000000
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-i686
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_cosf.c b/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
index 1209882..9a0da2b 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of cosf
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c b/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
index 5149809..801df3d 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sincosf
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sinf.c b/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
index 1298aca..0bf03e1 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sinf
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fmax.S b/sysdeps/i386/i686/fpu/s_fmax.S
index 50faf14..3b5b2fe 100644
--- a/sysdeps/i386/i686/fpu/s_fmax.S
+++ b/sysdeps/i386/i686/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fmaxf.S b/sysdeps/i386/i686/fpu/s_fmaxf.S
index 2e0a924..65a42dd 100644
--- a/sysdeps/i386/i686/fpu/s_fmaxf.S
+++ b/sysdeps/i386/i686/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fmaxl.S b/sysdeps/i386/i686/fpu/s_fmaxl.S
index 46905ea..dd1d6a3 100644
--- a/sysdeps/i386/i686/fpu/s_fmaxl.S
+++ b/sysdeps/i386/i686/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fmin.S b/sysdeps/i386/i686/fpu/s_fmin.S
index cabe308..8df9fa3 100644
--- a/sysdeps/i386/i686/fpu/s_fmin.S
+++ b/sysdeps/i386/i686/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fminf.S b/sysdeps/i386/i686/fpu/s_fminf.S
index 761dffc..a4623c4 100644
--- a/sysdeps/i386/i686/fpu/s_fminf.S
+++ b/sysdeps/i386/i686/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/fpu/s_fminl.S b/sysdeps/i386/i686/fpu/s_fminl.S
index 0bc1796..90629bd 100644
--- a/sysdeps/i386/i686/fpu/s_fminl.S
+++ b/sysdeps/i386/i686/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/isa.h b/sysdeps/i386/i686/isa.h
index b264850..06a4d68 100644
--- a/sysdeps/i386/i686/isa.h
+++ b/sysdeps/i386/i686/isa.h
@@ -1,5 +1,5 @@
/* x86 ISA info. i686 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
index 0738ee9..13c44c1 100644
--- a/sysdeps/i386/i686/memcmp.S
+++ b/sysdeps/i386/i686/memcmp.S
@@ -1,5 +1,5 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/memcpy.S b/sysdeps/i386/i686/memcpy.S
index 24d000e..3b66412 100644
--- a/sysdeps/i386/i686/memcpy.S
+++ b/sysdeps/i386/i686/memcpy.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to beginning of destination block
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
index effd958..8e57a62 100644
--- a/sysdeps/i386/i686/memmove.S
+++ b/sysdeps/i386/i686/memmove.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to beginning of destination block
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S
index 369e58d..c038334 100644
--- a/sysdeps/i386/i686/mempcpy.S
+++ b/sysdeps/i386/i686/mempcpy.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to following byte.
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
index ab06771..bc7ea9b 100644
--- a/sysdeps/i386/i686/memset.S
+++ b/sysdeps/i386/i686/memset.S
@@ -1,6 +1,6 @@
/* memset/bzero -- set memory area to CH/0
Highly optimized version for ix86, x>=6.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/i386/i686/multiarch/dl-symbol-redir-ifunc.h
index 4819a1c..07bd27c 100644
--- a/sysdeps/i386/i686/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/i386/i686/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
index e85f8d5..95adc4b 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
+++ b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. i686 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-memmove.h b/sysdeps/i386/i686/multiarch/ifunc-memmove.h
index d5aabf7..fd21740 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-memmove.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memmove/memmove_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-memset.h b/sysdeps/i386/i686/multiarch/ifunc-memset.h
index b80ed45..5506717 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-memset.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset/memset_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h b/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
index c2567be..7570d20 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and BSF.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h b/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
index 470c2ba..4fd4a89 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
@@ -1,7 +1,7 @@
/* Common definition for ifunc selections optimized with SSE2 and
SSSE3.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2.h b/sysdeps/i386/i686/multiarch/ifunc-sse2.h
index daba81e..0a22240 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h b/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
index 9938773..7afa713 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE4_2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h b/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
index 95607e0..e636ef2 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
@@ -1,7 +1,7 @@
/* Common definition for ifunc selections optimized with SSSE3 and
SSE4_2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memchr-ia32.S b/sysdeps/i386/i686/multiarch/memchr-ia32.S
index d336dfb..7459b5c 100644
--- a/sysdeps/i386/i686/multiarch/memchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memchr-ia32.S
@@ -1,5 +1,5 @@
/* memchr optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
index 5631a97..6c73e26 100644
--- a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* Optimized memchr with sse2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/i686/multiarch/memchr-sse2.S
index a81c07e..a03b1a6 100644
--- a/sysdeps/i386/i686/multiarch/memchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2.S
@@ -1,5 +1,5 @@
/* Optimized memchr with sse2 without bsf
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memchr.c b/sysdeps/i386/i686/multiarch/memchr.c
index 3edec7e..fd5ab84 100644
--- a/sysdeps/i386/i686/multiarch/memchr.c
+++ b/sysdeps/i386/i686/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcmp-ia32.S b/sysdeps/i386/i686/multiarch/memcmp-ia32.S
index 607c18f..3745a6d 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-ia32.S
@@ -1,5 +1,5 @@
/* memcmp optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcmp-sse4.S b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
index 2cdda5f..18bf88d 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
@@ -1,5 +1,5 @@
/* memcmp with SSE4.2, wmemcmp with SSE4.2
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcmp-ssse3.S b/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
index 2463784..6c723dc 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
@@ -1,5 +1,5 @@
/* memcmp with SSSE3, wmemcmp with SSSE3
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcmp.c b/sysdeps/i386/i686/multiarch/memcmp.c
index ecda6ee..3db5fa4 100644
--- a/sysdeps/i386/i686/multiarch/memcmp.c
+++ b/sysdeps/i386/i686/multiarch/memcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ia32.S b/sysdeps/i386/i686/multiarch/memcpy-ia32.S
index 9671edb..57a56d3 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ia32.S
@@ -1,5 +1,5 @@
/* memcpy optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
index 8433256..4c9b553 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* memcpy optimized with SSE2 unaligned memory access instructions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
index a7e80dc..613137e 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3 and REP string.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
index 713c5bd..8f5fdfa 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy.c b/sysdeps/i386/i686/multiarch/memcpy.c
index 7f13bc1..84e0fec 100644
--- a/sysdeps/i386/i686/multiarch/memcpy.c
+++ b/sysdeps/i386/i686/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memcpy_chk.c b/sysdeps/i386/i686/multiarch/memcpy_chk.c
index 709956a..c627248 100644
--- a/sysdeps/i386/i686/multiarch/memcpy_chk.c
+++ b/sysdeps/i386/i686/multiarch/memcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memmove-ia32.S b/sysdeps/i386/i686/multiarch/memmove-ia32.S
index a8b81be..c3545ba 100644
--- a/sysdeps/i386/i686/multiarch/memmove-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memmove-ia32.S
@@ -1,5 +1,5 @@
/* memmove optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memmove.c b/sysdeps/i386/i686/multiarch/memmove.c
index f9445a3..5a6d39e 100644
--- a/sysdeps/i386/i686/multiarch/memmove.c
+++ b/sysdeps/i386/i686/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memmove_chk.c b/sysdeps/i386/i686/multiarch/memmove_chk.c
index b06a5e4..8a5bb78 100644
--- a/sysdeps/i386/i686/multiarch/memmove_chk.c
+++ b/sysdeps/i386/i686/multiarch/memmove_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memmove_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/mempcpy-ia32.S b/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
index 6b8fa99..e2edc74 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
@@ -1,5 +1,5 @@
/* mempcpy optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/mempcpy.c b/sysdeps/i386/i686/multiarch/mempcpy.c
index 993356e..6976ab1 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy.c
+++ b/sysdeps/i386/i686/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/mempcpy_chk.c b/sysdeps/i386/i686/multiarch/mempcpy_chk.c
index 956ba63..40d54f3 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy_chk.c
+++ b/sysdeps/i386/i686/multiarch/mempcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __mempcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
index 63d9a39..69d82bf 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* Optimized memrchr with sse2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2.S b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
index e123f87..84f3364 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
@@ -1,5 +1,5 @@
/* Optimized memrchr with sse2 without bsf
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memrchr.c b/sysdeps/i386/i686/multiarch/memrchr.c
index fc65a96..5a6e9ba 100644
--- a/sysdeps/i386/i686/multiarch/memrchr.c
+++ b/sysdeps/i386/i686/multiarch/memrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memset-ia32.S b/sysdeps/i386/i686/multiarch/memset-ia32.S
index 2471a1c..327ae88 100644
--- a/sysdeps/i386/i686/multiarch/memset-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memset-ia32.S
@@ -1,5 +1,5 @@
/* memset optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memset-sse2-rep.S b/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
index d1a0473..2b49692 100644
--- a/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
+++ b/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
@@ -1,5 +1,5 @@
/* memset with SSE2 and REP string.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memset-sse2.S b/sysdeps/i386/i686/multiarch/memset-sse2.S
index 2e00743..ea200ea 100644
--- a/sysdeps/i386/i686/multiarch/memset-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memset-sse2.S
@@ -1,5 +1,5 @@
/* memset with SSE2
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memset.c b/sysdeps/i386/i686/multiarch/memset.c
index 2fb25e0..9df28ca 100644
--- a/sysdeps/i386/i686/multiarch/memset.c
+++ b/sysdeps/i386/i686/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/memset_chk.c b/sysdeps/i386/i686/multiarch/memset_chk.c
index 5dc1e83..b7c5b98 100644
--- a/sysdeps/i386/i686/multiarch/memset_chk.c
+++ b/sysdeps/i386/i686/multiarch/memset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memset_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S b/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
index 5b60f8b..6596016 100644
--- a/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
@@ -1,5 +1,5 @@
/* rawmemchr optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/rawmemchr.c b/sysdeps/i386/i686/multiarch/rawmemchr.c
index 40a075e..46d7ccd 100644
--- a/sysdeps/i386/i686/multiarch/rawmemchr.c
+++ b/sysdeps/i386/i686/multiarch/rawmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of rawmemchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/s_fma-fma.c b/sysdeps/i386/i686/multiarch/s_fma-fma.c
index 9d17f67..9dcf604 100644
--- a/sysdeps/i386/i686/multiarch/s_fma-fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fma-fma.c
@@ -1,5 +1,5 @@
/* FMA version of fma.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/multiarch/s_fma.c b/sysdeps/i386/i686/multiarch/s_fma.c
index 978345b..70d0afe 100644
--- a/sysdeps/i386/i686/multiarch/s_fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fma.c
@@ -1,5 +1,5 @@
/* Multiple versions of fma.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/multiarch/s_fmaf-fma.c b/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
index f049a60..069d531 100644
--- a/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
@@ -1,5 +1,5 @@
/* FMA version of fmaf.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/multiarch/s_fmaf.c b/sysdeps/i386/i686/multiarch/s_fmaf.c
index e92ebb1..b6bccfc 100644
--- a/sysdeps/i386/i686/multiarch/s_fmaf.c
+++ b/sysdeps/i386/i686/multiarch/s_fmaf.c
@@ -1,5 +1,5 @@
/* Multiple versions of fmaf.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/i386/i686/multiarch/stpcpy-ia32.S b/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
index d64cfde..09ea4cb 100644
--- a/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
@@ -1,6 +1,6 @@
/* stpcpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/stpcpy.c b/sysdeps/i386/i686/multiarch/stpcpy.c
index 0d937bd..9e76643 100644
--- a/sysdeps/i386/i686/multiarch/stpcpy.c
+++ b/sysdeps/i386/i686/multiarch/stpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/stpncpy-ia32.S b/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
index 006bb35..f8a0e34 100644
--- a/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
@@ -1,6 +1,6 @@
/* stpncpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/stpncpy.c b/sysdeps/i386/i686/multiarch/stpncpy.c
index 3c233ca..6c881b7 100644
--- a/sysdeps/i386/i686/multiarch/stpncpy.c
+++ b/sysdeps/i386/i686/multiarch/stpncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcasecmp.c b/sysdeps/i386/i686/multiarch/strcasecmp.c
index 7f5dc76..8229c60 100644
--- a/sysdeps/i386/i686/multiarch/strcasecmp.c
+++ b/sysdeps/i386/i686/multiarch/strcasecmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l.c b/sysdeps/i386/i686/multiarch/strcasecmp_l.c
index 7a7d816..d640aad 100644
--- a/sysdeps/i386/i686/multiarch/strcasecmp_l.c
+++ b/sysdeps/i386/i686/multiarch/strcasecmp_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcat-ia32.S b/sysdeps/i386/i686/multiarch/strcat-ia32.S
index 37a19eb..328594f 100644
--- a/sysdeps/i386/i686/multiarch/strcat-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcat-ia32.S
@@ -1,6 +1,6 @@
/* strcat optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcat-sse2.S b/sysdeps/i386/i686/multiarch/strcat-sse2.S
index 682f43f..ebc0877 100644
--- a/sysdeps/i386/i686/multiarch/strcat-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strcat-sse2.S
@@ -1,5 +1,5 @@
/* strcat with SSE2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcat-ssse3.S b/sysdeps/i386/i686/multiarch/strcat-ssse3.S
index 7774b66..51f4d97 100644
--- a/sysdeps/i386/i686/multiarch/strcat-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcat-ssse3.S
@@ -1,5 +1,5 @@
/* strcat with SSSE3
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcat.c b/sysdeps/i386/i686/multiarch/strcat.c
index c3362fd..9101775 100644
--- a/sysdeps/i386/i686/multiarch/strcat.c
+++ b/sysdeps/i386/i686/multiarch/strcat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strchr-ia32.S b/sysdeps/i386/i686/multiarch/strchr-ia32.S
index 9a7cb60..a87f419 100644
--- a/sysdeps/i386/i686/multiarch/strchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strchr-ia32.S
@@ -1,5 +1,5 @@
/* strchr optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
index ed8967c..9b53472 100644
--- a/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strchr with SSE2 with bsf
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strchr-sse2.S b/sysdeps/i386/i686/multiarch/strchr-sse2.S
index 44e2769..39295e4 100644
--- a/sysdeps/i386/i686/multiarch/strchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strchr-sse2.S
@@ -1,5 +1,5 @@
/* strchr SSE2 without bsf
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strchr.c b/sysdeps/i386/i686/multiarch/strchr.c
index 664ecb1..12921de 100644
--- a/sysdeps/i386/i686/multiarch/strchr.c
+++ b/sysdeps/i386/i686/multiarch/strchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ia32.S b/sysdeps/i386/i686/multiarch/strcmp-ia32.S
index 1f91b2d..14a91ea 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ia32.S
@@ -1,6 +1,6 @@
/* strcmp optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
index 124b594..aaf8072 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -1,5 +1,5 @@
/* strcmp with SSE4.2
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index fc443cf..211e200 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -1,5 +1,5 @@
/* strcmp with SSSE3
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcmp.c b/sysdeps/i386/i686/multiarch/strcmp.c
index 8848ab6..d03f401 100644
--- a/sysdeps/i386/i686/multiarch/strcmp.c
+++ b/sysdeps/i386/i686/multiarch/strcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcpy-ia32.S b/sysdeps/i386/i686/multiarch/strcpy-ia32.S
index 30e2877..78f21cc 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-ia32.S
@@ -1,6 +1,6 @@
/* strcpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcpy-sse2.S b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
index a18a8ca..2ca2efa 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
@@ -1,5 +1,5 @@
/* strcpy with SSE2 and unaligned load
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
index cd942f0..79c3d22 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
@@ -1,5 +1,5 @@
/* strcpy with SSSE3
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcpy.c b/sysdeps/i386/i686/multiarch/strcpy.c
index 1a790fc..adf9c2f 100644
--- a/sysdeps/i386/i686/multiarch/strcpy.c
+++ b/sysdeps/i386/i686/multiarch/strcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcspn-ia32.S b/sysdeps/i386/i686/multiarch/strcspn-ia32.S
index 0c4b11f..91b88be 100644
--- a/sysdeps/i386/i686/multiarch/strcspn-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcspn-ia32.S
@@ -1,6 +1,6 @@
/* strcspn optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strcspn.c b/sysdeps/i386/i686/multiarch/strcspn.c
index b76637d..b9c2848 100644
--- a/sysdeps/i386/i686/multiarch/strcspn.c
+++ b/sysdeps/i386/i686/multiarch/strcspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strlen-ia32.S b/sysdeps/i386/i686/multiarch/strlen-ia32.S
index b766216..5f5cb72 100644
--- a/sysdeps/i386/i686/multiarch/strlen-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strlen-ia32.S
@@ -1,5 +1,5 @@
/* strlen optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
index ca38d2d..91ab866 100644
--- a/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strlen with SSE2 and BSF
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strlen-sse2.S b/sysdeps/i386/i686/multiarch/strlen-sse2.S
index 9903511..a474bc2 100644
--- a/sysdeps/i386/i686/multiarch/strlen-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strlen-sse2.S
@@ -1,5 +1,5 @@
/* strlen with SSE2
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strlen.c b/sysdeps/i386/i686/multiarch/strlen.c
index b61e273..cdc293b 100644
--- a/sysdeps/i386/i686/multiarch/strlen.c
+++ b/sysdeps/i386/i686/multiarch/strlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strncase.c b/sysdeps/i386/i686/multiarch/strncase.c
index ff369aa..a3fcfff 100644
--- a/sysdeps/i386/i686/multiarch/strncase.c
+++ b/sysdeps/i386/i686/multiarch/strncase.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strncase_l.c b/sysdeps/i386/i686/multiarch/strncase_l.c
index a41035a..dee75e6 100644
--- a/sysdeps/i386/i686/multiarch/strncase_l.c
+++ b/sysdeps/i386/i686/multiarch/strncase_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strncat.c b/sysdeps/i386/i686/multiarch/strncat.c
index 5d5c21f..9cad646 100644
--- a/sysdeps/i386/i686/multiarch/strncat.c
+++ b/sysdeps/i386/i686/multiarch/strncat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strncmp.c b/sysdeps/i386/i686/multiarch/strncmp.c
index 04ad658..e6136a8 100644
--- a/sysdeps/i386/i686/multiarch/strncmp.c
+++ b/sysdeps/i386/i686/multiarch/strncmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strncpy.c b/sysdeps/i386/i686/multiarch/strncpy.c
index 8bec6e0..caccd8f 100644
--- a/sysdeps/i386/i686/multiarch/strncpy.c
+++ b/sysdeps/i386/i686/multiarch/strncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strnlen.c b/sysdeps/i386/i686/multiarch/strnlen.c
index 162b9a1..555c0d8 100644
--- a/sysdeps/i386/i686/multiarch/strnlen.c
+++ b/sysdeps/i386/i686/multiarch/strnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strpbrk-ia32.S b/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
index b6d890c..618820a 100644
--- a/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
@@ -1,6 +1,6 @@
/* strpbrk optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strpbrk.c b/sysdeps/i386/i686/multiarch/strpbrk.c
index 9a568dd..ae9fd5e 100644
--- a/sysdeps/i386/i686/multiarch/strpbrk.c
+++ b/sysdeps/i386/i686/multiarch/strpbrk.c
@@ -1,6 +1,6 @@
/* Multiple versions of strpbrk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strrchr-ia32.S b/sysdeps/i386/i686/multiarch/strrchr-ia32.S
index ee672b2..b3d0378 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-ia32.S
@@ -1,5 +1,5 @@
/* strrchr optimized for i686.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
index 6736e5b..8a0074a 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strrchr with SSE2 with bsf and bsr
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strrchr-sse2.S b/sysdeps/i386/i686/multiarch/strrchr-sse2.S
index 8b466e4..f5a07a3 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-sse2.S
@@ -1,5 +1,5 @@
/* strrchr SSE2 without bsf and bsr
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strrchr.c b/sysdeps/i386/i686/multiarch/strrchr.c
index 833af1c..21b108f 100644
--- a/sysdeps/i386/i686/multiarch/strrchr.c
+++ b/sysdeps/i386/i686/multiarch/strrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strspn-ia32.S b/sysdeps/i386/i686/multiarch/strspn-ia32.S
index de28fbb..c1fab79 100644
--- a/sysdeps/i386/i686/multiarch/strspn-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strspn-ia32.S
@@ -1,6 +1,6 @@
/* strspn optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/strspn.c b/sysdeps/i386/i686/multiarch/strspn.c
index 7c6453f..d69322f 100644
--- a/sysdeps/i386/i686/multiarch/strspn.c
+++ b/sysdeps/i386/i686/multiarch/strspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcschr-sse2.S b/sysdeps/i386/i686/multiarch/wcschr-sse2.S
index 4fd32f3..35d7bdf 100644
--- a/sysdeps/i386/i686/multiarch/wcschr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcschr-sse2.S
@@ -1,5 +1,5 @@
/* wcschr with SSE2, without using bsf instructions
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcschr.c b/sysdeps/i386/i686/multiarch/wcschr.c
index cf8ff08..8857420 100644
--- a/sysdeps/i386/i686/multiarch/wcschr.c
+++ b/sysdeps/i386/i686/multiarch/wcschr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcschr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcscmp-sse2.S b/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
index 05ebc3b..10b9a9b 100644
--- a/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
@@ -1,5 +1,5 @@
/* wcscmp with SSE2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcscmp.c b/sysdeps/i386/i686/multiarch/wcscmp.c
index 265361d..b5c76c5 100644
--- a/sysdeps/i386/i686/multiarch/wcscmp.c
+++ b/sysdeps/i386/i686/multiarch/wcscmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S b/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
index bb0d9e0..2bce324 100644
--- a/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
@@ -1,5 +1,5 @@
/* wcscpy with SSSE3
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcscpy.c b/sysdeps/i386/i686/multiarch/wcscpy.c
index bebd96e..623d8b8 100644
--- a/sysdeps/i386/i686/multiarch/wcscpy.c
+++ b/sysdeps/i386/i686/multiarch/wcscpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcslen-sse2.S b/sysdeps/i386/i686/multiarch/wcslen-sse2.S
index 6b38c6f..e33ea4d 100644
--- a/sysdeps/i386/i686/multiarch/wcslen-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcslen-sse2.S
@@ -1,5 +1,5 @@
/* wcslen with SSE2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcslen.c b/sysdeps/i386/i686/multiarch/wcslen.c
index 1a099e9..4552d84 100644
--- a/sysdeps/i386/i686/multiarch/wcslen.c
+++ b/sysdeps/i386/i686/multiarch/wcslen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcslen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S b/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
index 2e24d03..e5f154b 100644
--- a/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
@@ -1,5 +1,5 @@
/* wcsrchr with SSE2, without using bsf instructions.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wcsrchr.c b/sysdeps/i386/i686/multiarch/wcsrchr.c
index 0a1a196..5b55d7e 100644
--- a/sysdeps/i386/i686/multiarch/wcsrchr.c
+++ b/sysdeps/i386/i686/multiarch/wcsrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/multiarch/wmemcmp.c b/sysdeps/i386/i686/multiarch/wmemcmp.c
index a4ca7d6..2d71ea6 100644
--- a/sysdeps/i386/i686/multiarch/wmemcmp.c
+++ b/sysdeps/i386/i686/multiarch/wmemcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/nptl/tls.h b/sysdeps/i386/i686/nptl/tls.h
index bddf41e..2c7bcf2 100644
--- a/sysdeps/i386/i686/nptl/tls.h
+++ b/sysdeps/i386/i686/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/pthread_spin_trylock.S b/sysdeps/i386/i686/pthread_spin_trylock.S
index 8641f48..49161fe 100644
--- a/sysdeps/i386/i686/pthread_spin_trylock.S
+++ b/sysdeps/i386/i686/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
index e71d97f..91ec622 100644
--- a/sysdeps/i386/i686/strcmp.S
+++ b/sysdeps/i386/i686/strcmp.S
@@ -1,5 +1,5 @@
/* Highly optimized version for ix86, x>=6.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/isa.h b/sysdeps/i386/isa.h
index 3574bac..ad85be0 100644
--- a/sysdeps/i386/isa.h
+++ b/sysdeps/i386/isa.h
@@ -1,5 +1,5 @@
/* x86 ISA info. i486 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/jmpbuf-offsets.h b/sysdeps/i386/jmpbuf-offsets.h
index 6917949..955d57e 100644
--- a/sysdeps/i386/jmpbuf-offsets.h
+++ b/sysdeps/i386/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. i386 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/jmpbuf-unwind.h b/sysdeps/i386/jmpbuf-unwind.h
index 4c6c9f3..c8c412b 100644
--- a/sysdeps/i386/jmpbuf-unwind.h
+++ b/sysdeps/i386/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
index e891b47..adc4404 100644
--- a/sysdeps/i386/lshift.S
+++ b/sysdeps/i386/lshift.S
@@ -1,5 +1,5 @@
/* i80386 __mpn_lshift --
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/machine-gmon.h b/sysdeps/i386/machine-gmon.h
index 694fae7..69f1376 100644
--- a/sysdeps/i386/machine-gmon.h
+++ b/sysdeps/i386/machine-gmon.h
@@ -1,5 +1,5 @@
/* i386-specific implementation of profiling support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/malloc-alignment.h b/sysdeps/i386/malloc-alignment.h
index 886c76b..251a773 100644
--- a/sysdeps/i386/malloc-alignment.h
+++ b/sysdeps/i386/malloc-alignment.h
@@ -1,5 +1,5 @@
/* Define MALLOC_ALIGNMENT for malloc. i386 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
index f041c78..872fa9f 100644
--- a/sysdeps/i386/memchr.S
+++ b/sysdeps/i386/memchr.S
@@ -1,6 +1,6 @@
/* memchr (str, chr, len) -- Return pointer to first occurrence of CHR in STR
less than LEN. For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
index 1742dcf..abc4e11 100644
--- a/sysdeps/i386/memcmp.S
+++ b/sysdeps/i386/memcmp.S
@@ -1,5 +1,5 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memcopy.h b/sysdeps/i386/memcopy.h
index 21657b4..1d8d207 100644
--- a/sysdeps/i386/memcopy.h
+++ b/sysdeps/i386/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. i386 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memcpy.S b/sysdeps/i386/memcpy.S
index 6664fb3..299862c 100644
--- a/sysdeps/i386/memcpy.S
+++ b/sysdeps/i386/memcpy.S
@@ -1,5 +1,5 @@
/* memcpy with REP MOVSB/STOSB
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memcpy_chk.S b/sysdeps/i386/memcpy_chk.S
index 6ad2893..67b3293 100644
--- a/sysdeps/i386/memcpy_chk.S
+++ b/sysdeps/i386/memcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking memcpy for i386.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memmove_chk.S b/sysdeps/i386/memmove_chk.S
index a2b5059..1a2e0b7 100644
--- a/sysdeps/i386/memmove_chk.S
+++ b/sysdeps/i386/memmove_chk.S
@@ -1,5 +1,5 @@
/* Checking memmove for i386
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/mempcpy_chk.S b/sysdeps/i386/mempcpy_chk.S
index a882d3b..4a9a36f 100644
--- a/sysdeps/i386/mempcpy_chk.S
+++ b/sysdeps/i386/mempcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking mempcpy for i386
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memset.S b/sysdeps/i386/memset.S
index 4433af8..83aea73 100644
--- a/sysdeps/i386/memset.S
+++ b/sysdeps/i386/memset.S
@@ -1,5 +1,5 @@
/* memset with REP MOVSB/STOSB
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/memset_chk.S b/sysdeps/i386/memset_chk.S
index c1f44d9..3716068 100644
--- a/sysdeps/i386/memset_chk.S
+++ b/sysdeps/i386/memset_chk.S
@@ -1,5 +1,5 @@
/* Checking memset for i386.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S
index c647e66..c99baca 100644
--- a/sysdeps/i386/mul_1.S
+++ b/sysdeps/i386/mul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/nptl/Makefile b/sysdeps/i386/nptl/Makefile
index 1f63f54..73d4450 100644
--- a/sysdeps/i386/nptl/Makefile
+++ b/sysdeps/i386/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/nptl/pthread_spin_init.c b/sysdeps/i386/nptl/pthread_spin_init.c
index 6d3c9d0..8239a37 100644
--- a/sysdeps/i386/nptl/pthread_spin_init.c
+++ b/sysdeps/i386/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/nptl/pthread_spin_lock.S b/sysdeps/i386/nptl/pthread_spin_lock.S
index 81972b8..5b27fef 100644
--- a/sysdeps/i386/nptl/pthread_spin_lock.S
+++ b/sysdeps/i386/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/nptl/pthread_spin_unlock.S b/sysdeps/i386/nptl/pthread_spin_unlock.S
index e2db870..4675960 100644
--- a/sysdeps/i386/nptl/pthread_spin_unlock.S
+++ b/sysdeps/i386/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/nptl/rseq-access.h b/sysdeps/i386/nptl/rseq-access.h
new file mode 100644
index 0000000..5e7e09d
--- /dev/null
+++ b/sysdeps/i386/nptl/rseq-access.h
@@ -0,0 +1,98 @@
+/* RSEQ_* accessors. i386 version.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define __RSEQ_GETMEM(member) \
+ ({ __typeof (RSEQ_SELF()->member) __value; \
+ if (sizeof (__value) == 1) \
+ asm volatile ("movb %%gs:%P2(%3),%b0" \
+ : "=q" (__value) \
+ : "0" (0), "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ else if (sizeof (__value) == 4) \
+ asm volatile ("movl %%gs:%P1(%2),%0" \
+ : "=r" (__value) \
+ : "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ else /* 8 */ \
+ { \
+ asm volatile ("movl %%gs:%P1(%2),%%eax\n\t" \
+ "movl %%gs:4+%P1(%2),%%edx" \
+ : "=&A" (__value) \
+ : "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ } \
+ __value; })
+
+/* Read member of the RSEQ area directly. */
+#define RSEQ_GETMEM(member) \
+ ({ \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4 \
+ || sizeof (RSEQ_SELF()->member) == 8, \
+ "size of rseq data"); \
+ __RSEQ_GETMEM(member); })
+
+/* Read member of the RSEQ area directly, with single-copy atomicity semantics.
+ Static assert for types >= 64 bits since they can't be loaded atomically on
+ x86-32. */
+#define RSEQ_GETMEM_ONCE(member) \
+ ({ \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4, \
+ "size of rseq data"); \
+ __RSEQ_GETMEM(member); })
+
+#define __RSEQ_SETMEM(member, value) \
+ ({ \
+ if (sizeof (RSEQ_SELF()->member) == 1) \
+ asm volatile ("movb %b0,%%gs:%P1(%2)" : \
+ : "iq" (value), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ else if (sizeof (RSEQ_SELF()->member) == 4) \
+ asm volatile ("movl %0,%%gs:%P1(%2)" : \
+ : "ir" (value), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ else /* 8 */ \
+ { \
+ asm volatile ("movl %%eax,%%gs:%P1(%2)\n\t" \
+ "movl %%edx,%%gs:4+%P1(%2)" : \
+ : "A" ((uint64_t) cast_to_integer (value)), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" (__rseq_offset)); \
+ }})
+
+/* Set member of the RSEQ area directly. */
+#define RSEQ_SETMEM(member, value) \
+ ({ \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4 \
+ || sizeof (RSEQ_SELF()->member) == 8, \
+ "size of rseq data"); \
+ __RSEQ_SETMEM(member, value); })
+
+/* Set member of the RSEQ area directly, with single-copy atomicity semantics.
+ Static assert for types >= 64 bits since they can't be stored atomically on
+ x86-32. */
+#define RSEQ_SETMEM_ONCE(member, value) \
+ ({ \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4, \
+ "size of rseq data"); \
+ __RSEQ_SETMEM(member, value); })
diff --git a/sysdeps/i386/nptl/tcb-access.h b/sysdeps/i386/nptl/tcb-access.h
index 4b6221e..dc84dfe 100644
--- a/sysdeps/i386/nptl/tcb-access.h
+++ b/sysdeps/i386/nptl/tcb-access.h
@@ -1,5 +1,5 @@
/* THREAD_* accessors. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/nptl/tls.h b/sysdeps/i386/nptl/tls.h
index 84d148c..01eaa65 100644
--- a/sysdeps/i386/nptl/tls.h
+++ b/sysdeps/i386/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/pthread_spin_trylock.S b/sysdeps/i386/pthread_spin_trylock.S
index c72a370..528d03d 100644
--- a/sysdeps/i386/pthread_spin_trylock.S
+++ b/sysdeps/i386/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/rawmemchr.S b/sysdeps/i386/rawmemchr.S
index e1cc727..8150902 100644
--- a/sysdeps/i386/rawmemchr.S
+++ b/sysdeps/i386/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
index cff070d..6cd0077 100644
--- a/sysdeps/i386/rshift.S
+++ b/sysdeps/i386/rshift.S
@@ -1,5 +1,5 @@
/* i80386 __mpn_rshift --
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/setfpucw.c b/sysdeps/i386/setfpucw.c
index 6a8d816..1edfd5b 100644
--- a/sysdeps/i386/setfpucw.c
+++ b/sysdeps/i386/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word for x86.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <fenv.h>
#include <unistd.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
void
__setfpucw (fpu_control_t set)
diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
index 08a98f2..ba4611e 100644
--- a/sysdeps/i386/setjmp.S
+++ b/sysdeps/i386/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for i386.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/stackinfo.h b/sysdeps/i386/stackinfo.h
index d44c489..74e8227 100644
--- a/sysdeps/i386/stackinfo.h
+++ b/sysdeps/i386/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/start.S b/sysdeps/i386/start.S
index 3057717..01f8098 100644
--- a/sysdeps/i386/start.S
+++ b/sysdeps/i386/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF i386 ABI.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
index 4dbb5dd..0bc7459 100644
--- a/sysdeps/i386/stpcpy.S
+++ b/sysdeps/i386/stpcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
index 74130bc..e99bc52 100644
--- a/sysdeps/i386/stpncpy.S
+++ b/sysdeps/i386/stpncpy.S
@@ -1,7 +1,7 @@
/* copy no more than N bytes from SRC to DEST, returning the address of
the terminating '\0' in DEST.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strcat.S b/sysdeps/i386/strcat.S
index 8ef5463..ddfa315 100644
--- a/sysdeps/i386/strcat.S
+++ b/sysdeps/i386/strcat.S
@@ -1,6 +1,6 @@
/* strcat(dest, src) -- Append SRC on the end of DEST.
For Intel 80x86, x>=4.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
index b0e856a..c42effb 100644
--- a/sysdeps/i386/strchr.S
+++ b/sysdeps/i386/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
index 7e60830..2c1bec5 100644
--- a/sysdeps/i386/strchrnul.S
+++ b/sysdeps/i386/strchrnul.S
@@ -1,7 +1,7 @@
/* strchrnul (str, chr) -- Return pointer to first occurrence of CHR in STR
or the final NUL byte.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
index a5cf1d5..7b4190a 100644
--- a/sysdeps/i386/strcspn.S
+++ b/sysdeps/i386/strcspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/string-inlines.c b/sysdeps/i386/string-inlines.c
index 284743a..adc8e69 100644
--- a/sysdeps/i386/string-inlines.c
+++ b/sysdeps/i386/string-inlines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/string-opthr.h b/sysdeps/i386/string-opthr.h
index 970a3f2..76bc9ab 100644
--- a/sysdeps/i386/string-opthr.h
+++ b/sysdeps/i386/string-opthr.h
@@ -1,5 +1,5 @@
/* Define a threshold for word access. i386 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strlen.S b/sysdeps/i386/strlen.S
index 3e69d71..9d610e1 100644
--- a/sysdeps/i386/strlen.S
+++ b/sysdeps/i386/strlen.S
@@ -1,6 +1,6 @@
/* strlen(str) -- determine the length of the string STR.
Optimized for Intel 80x86, x>=4.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strlen.c b/sysdeps/i386/strlen.c
index 8900bef..da10664 100644
--- a/sysdeps/i386/strlen.c
+++ b/sysdeps/i386/strlen.c
@@ -1,5 +1,5 @@
/* Determine the length of a string. For Intel 80x86, x>=3.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
index 2622d81..54e0c3a 100644
--- a/sysdeps/i386/strpbrk.S
+++ b/sysdeps/i386/strpbrk.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
index 21350ff..112a7f8 100644
--- a/sysdeps/i386/strrchr.S
+++ b/sysdeps/i386/strrchr.S
@@ -1,6 +1,6 @@
/* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
index 1bce5e4..2193370 100644
--- a/sysdeps/i386/strspn.S
+++ b/sysdeps/i386/strspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains only characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
index c111bf3..75b2da2 100644
--- a/sysdeps/i386/sub_n.S
+++ b/sysdeps/i386/sub_n.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
index 69e33f8..490fb1b 100644
--- a/sysdeps/i386/submul_1.S
+++ b/sysdeps/i386/submul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/i386/symbol-hacks.h b/sysdeps/i386/symbol-hacks.h
index f62465a..f263d73 100644
--- a/sysdeps/i386/symbol-hacks.h
+++ b/sysdeps/i386/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. i386 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h
index 7e3fe03..1f832ec 100644
--- a/sysdeps/i386/sys/ucontext.h
+++ b/sysdeps/i386/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h
index 86b5fdd..3aefe7a 100644
--- a/sysdeps/i386/sysdep.h
+++ b/sysdeps/i386/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for i386.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tls-get-addr-wrapper.h b/sysdeps/i386/tls-get-addr-wrapper.h
new file mode 100644
index 0000000..0708e5a
--- /dev/null
+++ b/sysdeps/i386/tls-get-addr-wrapper.h
@@ -0,0 +1,127 @@
+/* Wrapper of i386 ___tls_get_addr to save and restore vector registers.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#undef REGISTER_SAVE_AREA
+
+#if !defined USE_FNSAVE && (STATE_SAVE_ALIGNMENT % 16) != 0
+# error STATE_SAVE_ALIGNMENT must be multiple of 16
+#endif
+
+#if DL_RUNTIME_RESOLVE_REALIGN_STACK
+# ifdef USE_FNSAVE
+# error USE_FNSAVE shouldn't be defined
+# endif
+# ifdef USE_FXSAVE
+/* Use fxsave to save all registers. */
+# define REGISTER_SAVE_AREA 512
+# endif
+#else
+# ifdef USE_FNSAVE
+/* Use fnsave to save x87 FPU stack registers. */
+# define REGISTER_SAVE_AREA 108
+# else
+# ifndef USE_FXSAVE
+# error USE_FXSAVE must be defined
+# endif
+/* Use fxsave to save all registers. Add 12 bytes to align the stack
+ to 16 bytes. */
+# define REGISTER_SAVE_AREA (512 + 12)
+# endif
+#endif
+
+#if DL_RUNTIME_RESOLVE_REALIGN_STACK
+ movl %ebx, 28(%esp)
+ movl %esp, %ebx
+ cfi_def_cfa_register(%ebx)
+ and $-STATE_SAVE_ALIGNMENT, %esp
+#endif
+#ifdef REGISTER_SAVE_AREA
+ subl $REGISTER_SAVE_AREA, %esp
+# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
+ cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
+# endif
+#else
+# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
+# error DL_RUNTIME_RESOLVE_REALIGN_STACK must be true
+# endif
+ /* Allocate stack space of the required size to save the state. */
+ LOAD_PIC_REG (cx)
+ subl RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET \
+ +XSAVE_STATE_SIZE_OFFSET+_rtld_local_ro@GOTOFF(%ecx), %esp
+#endif
+#ifdef USE_FNSAVE
+ fnsave (%esp)
+#elif defined USE_FXSAVE
+ fxsave (%esp)
+#else
+ /* Save the argument for ___tls_get_addr in EAX. */
+ movl %eax, %ecx
+ movl $TLSDESC_CALL_STATE_SAVE_MASK, %eax
+ xorl %edx, %edx
+ /* Clear the XSAVE Header. */
+# ifdef USE_XSAVE
+ movl %edx, (512)(%esp)
+ movl %edx, (512 + 4 * 1)(%esp)
+ movl %edx, (512 + 4 * 2)(%esp)
+ movl %edx, (512 + 4 * 3)(%esp)
+# endif
+ movl %edx, (512 + 4 * 4)(%esp)
+ movl %edx, (512 + 4 * 5)(%esp)
+ movl %edx, (512 + 4 * 6)(%esp)
+ movl %edx, (512 + 4 * 7)(%esp)
+ movl %edx, (512 + 4 * 8)(%esp)
+ movl %edx, (512 + 4 * 9)(%esp)
+ movl %edx, (512 + 4 * 10)(%esp)
+ movl %edx, (512 + 4 * 11)(%esp)
+ movl %edx, (512 + 4 * 12)(%esp)
+ movl %edx, (512 + 4 * 13)(%esp)
+ movl %edx, (512 + 4 * 14)(%esp)
+ movl %edx, (512 + 4 * 15)(%esp)
+# ifdef USE_XSAVE
+ xsave (%esp)
+# else
+ xsavec (%esp)
+# endif
+ /* Restore the argument for ___tls_get_addr in EAX. */
+ movl %ecx, %eax
+#endif
+ call ___tls_get_addr_internal
+ /* Get register content back. */
+#ifdef USE_FNSAVE
+ frstor (%esp)
+#elif defined USE_FXSAVE
+ fxrstor (%esp)
+#else
+ /* Save and retore ___tls_get_addr return value stored in EAX. */
+ movl %eax, %ecx
+ movl $TLSDESC_CALL_STATE_SAVE_MASK, %eax
+ xorl %edx, %edx
+ xrstor (%esp)
+ movl %ecx, %eax
+#endif
+#if DL_RUNTIME_RESOLVE_REALIGN_STACK
+ mov %ebx, %esp
+ cfi_def_cfa_register(%esp)
+ movl 28(%esp), %ebx
+ cfi_restore(%ebx)
+#else
+ addl $REGISTER_SAVE_AREA, %esp
+ cfi_adjust_cfa_offset(-REGISTER_SAVE_AREA)
+#endif
+
+#undef STATE_SAVE_ALIGNMENT
diff --git a/sysdeps/i386/tls_get_addr.S b/sysdeps/i386/tls_get_addr.S
new file mode 100644
index 0000000..7d143d8
--- /dev/null
+++ b/sysdeps/i386/tls_get_addr.S
@@ -0,0 +1,57 @@
+/* Thread-local storage handling in the ELF dynamic linker. i386 version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#include <cpu-features-offsets.h>
+#include <features-offsets.h>
+
+ .text
+#ifdef SHARED
+# define USE_FNSAVE
+# define MINIMUM_ALIGNMENT 4
+# define STATE_SAVE_ALIGNMENT 4
+# define ___tls_get_addr _____tls_get_addr_fnsave
+# include "tls_get_addr.h"
+# undef ___tls_get_addr
+# undef MINIMUM_ALIGNMENT
+# undef USE_FNSAVE
+
+# define MINIMUM_ALIGNMENT 16
+
+# define USE_FXSAVE
+# define STATE_SAVE_ALIGNMENT 16
+# define ___tls_get_addr _____tls_get_addr_fxsave
+# include "tls_get_addr.h"
+# undef ___tls_get_addr
+# undef USE_FXSAVE
+
+# define USE_XSAVE
+# define STATE_SAVE_ALIGNMENT 64
+# define ___tls_get_addr _____tls_get_addr_xsave
+# include "tls_get_addr.h"
+# undef ___tls_get_addr
+# undef USE_XSAVE
+
+# define USE_XSAVEC
+# define STATE_SAVE_ALIGNMENT 64
+# define ___tls_get_addr _____tls_get_addr_xsavec
+# include "tls_get_addr.h"
+# undef ___tls_get_addr
+# undef USE_XSAVEC
+#endif /* SHARED */
diff --git a/sysdeps/s390/dl-procinfo-s390.c b/sysdeps/i386/tls_get_addr.h
index 652f606..1825798 100644
--- a/sysdeps/s390/dl-procinfo-s390.c
+++ b/sysdeps/i386/tls_get_addr.h
@@ -1,5 +1,5 @@
-/* Data for s390 version of processor capability information.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Thread-local storage handling in the ELF dynamic linker. i386 version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,27 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <dl-procinfo.h>
+ .hidden ___tls_get_addr
+ .global ___tls_get_addr
+ .type ___tls_get_addr,@function
-const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] =
- {
- "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh",
- "highgprs", "te", "vx", "vxd", "vxe", "gs", "vxe2", "vxp", "sort", "dflt",
- "vxp2", "nnpa", "pcimio", "sie"
- };
+ /* This function is a wrapper of ___tls_get_addr_internal to
+ preserve caller-saved vector registers. */
+
+ cfi_startproc
+ .align 16
+___tls_get_addr:
+ /* Like all TLS resolvers, preserve call-clobbered registers.
+ We need two scratch regs anyway. */
+ subl $32, %esp
+ cfi_adjust_cfa_offset (32)
+ movl %ecx, 20(%esp)
+ movl %edx, 24(%esp)
+#include "tls-get-addr-wrapper.h"
+ movl 20(%esp), %ecx
+ movl 24(%esp), %edx
+ addl $32, %esp
+ cfi_adjust_cfa_offset (-32)
+ ret
+ cfi_endproc
+ .size ___tls_get_addr, .-___tls_get_addr
diff --git a/sysdeps/i386/tlsdesc.c b/sysdeps/i386/tlsdesc.c
index 17ae781..f9d560d 100644
--- a/sysdeps/i386/tlsdesc.c
+++ b/sysdeps/i386/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. i386 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tst-audit.h b/sysdeps/i386/tst-audit.h
index 2db38f0..2e8c010 100644
--- a/sysdeps/i386/tst-audit.h
+++ b/sysdeps/i386/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. i386 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/i386/tst-audit3.c b/sysdeps/i386/tst-audit3.c
index 1539970..57d6ff7 100644
--- a/sysdeps/i386/tst-audit3.c
+++ b/sysdeps/i386/tst-audit3.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tst-audit3.h b/sysdeps/i386/tst-audit3.h
index ddebc27..e75124a 100644
--- a/sysdeps/i386/tst-audit3.h
+++ b/sysdeps/i386/tst-audit3.h
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tst-auditmod3a.c b/sysdeps/i386/tst-auditmod3a.c
index d3d6b93..b588d9a 100644
--- a/sysdeps/i386/tst-auditmod3a.c
+++ b/sysdeps/i386/tst-auditmod3a.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tst-auditmod3b.c b/sysdeps/i386/tst-auditmod3b.c
index 518d29b..171e978 100644
--- a/sysdeps/i386/tst-auditmod3b.c
+++ b/sysdeps/i386/tst-auditmod3b.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/tst-ld-sse-use.sh b/sysdeps/i386/tst-ld-sse-use.sh
index 568846c..a7fb0fe 100755
--- a/sysdeps/i386/tst-ld-sse-use.sh
+++ b/sysdeps/i386/tst-ld-sse-use.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Make sure no code in ld.so uses xmm/ymm/zmm registers on i386.
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/i386/unwind-arch.h b/sysdeps/i386/unwind-arch.h
index 958c169..c717dae 100644
--- a/sysdeps/i386/unwind-arch.h
+++ b/sysdeps/i386/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. i386 customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/Makefile b/sysdeps/ieee754/dbl-64/Makefile
index 78530b5..766bef4 100644
--- a/sysdeps/ieee754/dbl-64/Makefile
+++ b/sysdeps/ieee754/dbl-64/Makefile
@@ -3,3 +3,7 @@ ifeq ($(subdir),math)
CFLAGS-branred.c += $(config-cflags-nofma)
CFLAGS-e_sqrt.c += $(config-cflags-nofma)
endif
+
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-real-convs += double
+endif
diff --git a/sysdeps/ieee754/dbl-64/asincos.tbl b/sysdeps/ieee754/dbl-64/asincos.tbl
index d17dc0b..507626a 100644
--- a/sysdeps/ieee754/dbl-64/asincos.tbl
+++ b/sysdeps/ieee754/dbl-64/asincos.tbl
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/atnat.h b/sysdeps/ieee754/dbl-64/atnat.h
index 68a5fb6..303c078 100644
--- a/sysdeps/ieee754/dbl-64/atnat.h
+++ b/sysdeps/ieee754/dbl-64/atnat.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/atnat2.h b/sysdeps/ieee754/dbl-64/atnat2.h
index de69acd..f44dbb6 100644
--- a/sysdeps/ieee754/dbl-64/atnat2.h
+++ b/sysdeps/ieee754/dbl-64/atnat2.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/branred.c b/sysdeps/ieee754/dbl-64/branred.c
index 8d71547..bb2f258 100644
--- a/sysdeps/ieee754/dbl-64/branred.c
+++ b/sysdeps/ieee754/dbl-64/branred.c
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/branred.h b/sysdeps/ieee754/dbl-64/branred.h
index 13a3175..c064f1e 100644
--- a/sysdeps/ieee754/dbl-64/branred.h
+++ b/sysdeps/ieee754/dbl-64/branred.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/dbl2mpn.c b/sysdeps/ieee754/dbl-64/dbl2mpn.c
index fcd34cc..af369cd 100644
--- a/sysdeps/ieee754/dbl-64/dbl2mpn.c
+++ b/sysdeps/ieee754/dbl-64/dbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/dla.h b/sysdeps/ieee754/dbl-64/dla.h
index 15fc919..319f7660 100644
--- a/sysdeps/ieee754/dbl-64/dla.h
+++ b/sysdeps/ieee754/dbl-64/dla.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c
index 401d3e5..50f3412 100644
--- a/sysdeps/ieee754/dbl-64/e_asin.c
+++ b/sysdeps/ieee754/dbl-64/e_asin.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/e_atan2.c b/sysdeps/ieee754/dbl-64/e_atan2.c
index 6927fea..bc49a9e 100644
--- a/sysdeps/ieee754/dbl-64/e_atan2.c
+++ b/sysdeps/ieee754/dbl-64/e_atan2.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c
index 11a2a45..d1c71b2 100644
--- a/sysdeps/ieee754/dbl-64/e_atanh.c
+++ b/sysdeps/ieee754/dbl-64/e_atanh.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,6 +44,11 @@
static const double huge = 1e300;
+#ifndef SECTION
+# define SECTION
+#endif
+
+SECTION
double
__ieee754_atanh (double x)
{
@@ -73,4 +78,7 @@ __ieee754_atanh (double x)
return copysign (t, x);
}
+
+#ifndef __ieee754_atanh
libm_alias_finite (__ieee754_atanh, __atanh)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c
index 905f455..b4f4cb9 100644
--- a/sysdeps/ieee754/dbl-64/e_exp.c
+++ b/sysdeps/ieee754/dbl-64/e_exp.c
@@ -1,5 +1,5 @@
/* Double-precision e^x function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_exp10.c b/sysdeps/ieee754/dbl-64/e_exp10.c
index 7ea8270..cd7ecfa 100644
--- a/sysdeps/ieee754/dbl-64/e_exp10.c
+++ b/sysdeps/ieee754/dbl-64/e_exp10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c
index 69184c3..53fb553 100644
--- a/sysdeps/ieee754/dbl-64/e_exp2.c
+++ b/sysdeps/ieee754/dbl-64/e_exp2.c
@@ -1,5 +1,5 @@
/* Double-precision 2^x function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_exp_data.c b/sysdeps/ieee754/dbl-64/e_exp_data.c
index 6e910e5..e74fbd4 100644
--- a/sysdeps/ieee754/dbl-64/e_exp_data.c
+++ b/sysdeps/ieee754/dbl-64/e_exp_data.c
@@ -1,5 +1,5 @@
/* Shared data between exp, exp2 and pow.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_fmod.c b/sysdeps/ieee754/dbl-64/e_fmod.c
index b33cfb1..1b54536 100644
--- a/sysdeps/ieee754/dbl-64/e_fmod.c
+++ b/sysdeps/ieee754/dbl-64/e_fmod.c
@@ -1,5 +1,5 @@
/* Floating-point remainder function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c
index 20a84aa..a44c2e0 100644
--- a/sysdeps/ieee754/dbl-64/e_gamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_hypot.c b/sysdeps/ieee754/dbl-64/e_hypot.c
index 4a2a879..2955592 100644
--- a/sysdeps/ieee754/dbl-64/e_hypot.c
+++ b/sysdeps/ieee754/dbl-64/e_hypot.c
@@ -1,5 +1,5 @@
/* Euclidean distance function. Double/Binary64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_ilogb.c b/sysdeps/ieee754/dbl-64/e_ilogb.c
index 1e338a5..1ea2f23 100644
--- a/sysdeps/ieee754/dbl-64/e_ilogb.c
+++ b/sysdeps/ieee754/dbl-64/e_ilogb.c
@@ -1,63 +1 @@
-/* @(#)s_ilogb.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
-#endif
-
-/* ilogb(double x)
- * return the binary exponent of non-zero x
- * ilogb(0) = FP_ILOGB0
- * ilogb(NaN) = FP_ILOGBNAN (no signal is raised)
- * ilogb(+-Inf) = INT_MAX (no signal is raised)
- */
-
-#include <limits.h>
-#include <math.h>
-#include <math_private.h>
-
-int
-__ieee754_ilogb (double x)
-{
- int32_t hx, lx, ix;
-
- GET_HIGH_WORD (hx, x);
- hx &= 0x7fffffff;
- if (hx < 0x00100000)
- {
- GET_LOW_WORD (lx, x);
- if ((hx | lx) == 0)
- return FP_ILOGB0; /* ilogb(0) = FP_ILOGB0 */
- else /* subnormal x */
- if (hx == 0)
- {
- for (ix = -1043; lx > 0; lx <<= 1)
- ix -= 1;
- }
- else
- {
- for (ix = -1022, hx <<= 11; hx > 0; hx <<= 1)
- ix -= 1;
- }
- return ix;
- }
- else if (hx < 0x7ff00000)
- return (hx >> 20) - 1023;
- else if (FP_ILOGBNAN != INT_MAX)
- {
- /* ISO C99 requires ilogb(+-Inf) == INT_MAX. */
- GET_LOW_WORD (lx, x);
- if (((hx ^ 0x7ff00000) | lx) == 0)
- return INT_MAX;
- }
- return FP_ILOGBNAN;
-}
+/* ilogb is implemented at w_ilogb.c */
diff --git a/sysdeps/ieee754/dbl-64/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c
index 97f1d50..740db23 100644
--- a/sysdeps/ieee754/dbl-64/e_log.c
+++ b/sysdeps/ieee754/dbl-64/e_log.c
@@ -1,5 +1,5 @@
/* Double-precision log(x) function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_log2.c b/sysdeps/ieee754/dbl-64/e_log2.c
index 04e73fa..b7762d0 100644
--- a/sysdeps/ieee754/dbl-64/e_log2.c
+++ b/sysdeps/ieee754/dbl-64/e_log2.c
@@ -1,5 +1,5 @@
/* Double-precision log2(x) function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_log2_data.c b/sysdeps/ieee754/dbl-64/e_log2_data.c
index b90758b..2651868 100644
--- a/sysdeps/ieee754/dbl-64/e_log2_data.c
+++ b/sysdeps/ieee754/dbl-64/e_log2_data.c
@@ -1,5 +1,5 @@
/* Data for log2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_log_data.c b/sysdeps/ieee754/dbl-64/e_log_data.c
index c689102..2d7d825 100644
--- a/sysdeps/ieee754/dbl-64/e_log_data.c
+++ b/sysdeps/ieee754/dbl-64/e_log_data.c
@@ -1,5 +1,5 @@
/* Data for log.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c
index 8f93846..3d69331 100644
--- a/sysdeps/ieee754/dbl-64/e_pow.c
+++ b/sysdeps/ieee754/dbl-64/e_pow.c
@@ -1,5 +1,5 @@
/* Double-precision x^y function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_pow_log_data.c b/sysdeps/ieee754/dbl-64/e_pow_log_data.c
index 2c23fdc..df8427d 100644
--- a/sysdeps/ieee754/dbl-64/e_pow_log_data.c
+++ b/sysdeps/ieee754/dbl-64/e_pow_log_data.c
@@ -1,5 +1,5 @@
/* Data for the log part of pow.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/e_remainder.c b/sysdeps/ieee754/dbl-64/e_remainder.c
index 1a1577f..04a30e2 100644
--- a/sysdeps/ieee754/dbl-64/e_remainder.c
+++ b/sysdeps/ieee754/dbl-64/e_remainder.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/e_sinh.c b/sysdeps/ieee754/dbl-64/e_sinh.c
index b4b5857..3f78796 100644
--- a/sysdeps/ieee754/dbl-64/e_sinh.c
+++ b/sysdeps/ieee754/dbl-64/e_sinh.c
@@ -41,6 +41,11 @@ static char rcsid[] = "$NetBSD: e_sinh.c,v 1.7 1995/05/10 20:46:13 jtc Exp $";
static const double one = 1.0, shuge = 1.0e307;
+#ifndef SECTION
+# define SECTION
+#endif
+
+SECTION
double
__ieee754_sinh (double x)
{
@@ -90,4 +95,7 @@ __ieee754_sinh (double x)
/* |x| > overflowthresold, sinh(x) overflow */
return math_narrow_eval (x * shuge);
}
+
+#ifndef __ieee754_sinh
libm_alias_finite (__ieee754_sinh, __sinh)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c
index bd7cbc3..c01f024 100644
--- a/sysdeps/ieee754/dbl-64/e_sqrt.c
+++ b/sysdeps/ieee754/dbl-64/e_sqrt.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/gamma_product.c b/sysdeps/ieee754/dbl-64/gamma_product.c
index c287ef2..1a43e2b 100644
--- a/sysdeps/ieee754/dbl-64/gamma_product.c
+++ b/sysdeps/ieee754/dbl-64/gamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/gamma_productf.c b/sysdeps/ieee754/dbl-64/gamma_productf.c
index f3596ee..1cc8931 100644
--- a/sysdeps/ieee754/dbl-64/gamma_productf.c
+++ b/sysdeps/ieee754/dbl-64/gamma_productf.c
@@ -1,44 +1 @@
-/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <float.h>
-
-/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
- - 1, in the form R * (1 + *EPS) where the return value R is an
- approximation to the product and *EPS is set to indicate the
- approximate error in the return value. X is such that all the
- values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
- X is small enough that factors quadratic in it can be
- neglected. */
-
-float
-__gamma_productf (float x, float x_eps, int n, float *eps)
-{
- double x_full = (double) x + (double) x_eps;
- double ret = x_full;
- for (int i = 1; i < n; i++)
- ret *= x_full + i;
-
- float fret = math_narrow_eval ((float) ret);
- *eps = (ret - fret) / fret;
-
- return fret;
-}
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/lgamma_neg.c b/sysdeps/ieee754/dbl-64/lgamma_neg.c
index ed381b5..ec76005 100644
--- a/sysdeps/ieee754/dbl-64/lgamma_neg.c
+++ b/sysdeps/ieee754/dbl-64/lgamma_neg.c
@@ -1,5 +1,5 @@
/* lgamma expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/lgamma_product.c b/sysdeps/ieee754/dbl-64/lgamma_product.c
index bae1723..549f968 100644
--- a/sysdeps/ieee754/dbl-64/lgamma_product.c
+++ b/sysdeps/ieee754/dbl-64/lgamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/math_config.h b/sysdeps/ieee754/dbl-64/math_config.h
index ef87cfa..d9288c4 100644
--- a/sysdeps/ieee754/dbl-64/math_config.h
+++ b/sysdeps/ieee754/dbl-64/math_config.h
@@ -1,5 +1,5 @@
/* Configuration for double precision math routines.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -109,6 +109,7 @@ issignaling_inline (double x)
#define BIT_WIDTH 64
#define MANTISSA_WIDTH 52
#define EXPONENT_WIDTH 11
+#define EXPONENT_BIAS 1023
#define MANTISSA_MASK UINT64_C(0x000fffffffffffff)
#define EXPONENT_MASK UINT64_C(0x7ff0000000000000)
#define EXP_MANT_MASK UINT64_C(0x7fffffffffffffff)
@@ -121,12 +122,24 @@ is_nan (uint64_t x)
return (x & EXP_MANT_MASK) > EXPONENT_MASK;
}
+static inline bool
+is_inf (uint64_t x)
+{
+ return (x << 1) == (EXPONENT_MASK << 1);
+}
+
static inline uint64_t
get_mantissa (uint64_t x)
{
return x & MANTISSA_MASK;
}
+static inline int
+get_exponent (uint64_t x)
+{
+ return (int)((x >> MANTISSA_WIDTH & 0x7ff) - EXPONENT_BIAS);
+}
+
/* Convert integer number X, unbiased exponent EP, and sign S to double:
result = X * 2^(EP+1 - exponent_bias)
@@ -164,6 +177,8 @@ attribute_hidden double __math_divzero (uint32_t);
/* Invalid input unless it is a quiet NaN. */
attribute_hidden double __math_invalid (double);
+attribute_hidden int __math_invalid_i (int);
+attribute_hidden long int __math_invalid_li (long int);
/* Error handling using output checking, only for errno setting. */
@@ -195,16 +210,18 @@ check_uflow (double x)
extern const struct exp_data
{
double invln2N;
- double shift;
double negln2hiN;
double negln2loN;
double poly[4]; /* Last four coefficients. */
+ double shift;
+
double exp2_shift;
double exp2_poly[EXP2_POLY_ORDER];
- double invlog10_2N;
+
double neglog10_2hiN;
double neglog10_2loN;
double exp10_poly[5];
+ double invlog10_2N;
uint64_t tab[2*(1 << EXP_TABLE_BITS)];
} __exp_data attribute_hidden;
diff --git a/sysdeps/ieee754/dbl-64/math_err.c b/sysdeps/ieee754/dbl-64/math_err.c
index 8d7802d..b8c645a 100644
--- a/sysdeps/ieee754/dbl-64/math_err.c
+++ b/sysdeps/ieee754/dbl-64/math_err.c
@@ -1,5 +1,5 @@
/* Double-precision math error handling.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,8 +29,24 @@ with_errno (double y, int e)
errno = e;
return y;
}
+
+NOINLINE static int
+with_errno_i (int y, int e)
+{
+ errno = e;
+ return y;
+}
+
+NOINLINE static long int
+with_errno_li (long int y, int e)
+{
+ errno = e;
+ return y;
+}
#else
#define with_errno(x, e) (x)
+#define with_errno_i(x, e) (x)
+#define with_errno_li(x, e) (x)
#endif
attribute_hidden double
@@ -83,6 +99,22 @@ __math_invalid (double x)
return isnan (x) ? y : with_errno (y, EDOM);
}
+attribute_hidden int
+__math_invalid_i (int r)
+{
+ double y = 0.0 / 0.0;
+ math_force_eval (y);
+ return with_errno_i (r, EDOM);
+}
+
+attribute_hidden long int
+__math_invalid_li (long int r)
+{
+ double y = 0.0 / 0.0;
+ math_force_eval (y);
+ return with_errno_li (r, EDOM);
+}
+
/* Check result and set errno if necessary. */
attribute_hidden double
diff --git a/sysdeps/ieee754/dbl-64/mpn2dbl.c b/sysdeps/ieee754/dbl-64/mpn2dbl.c
index e1ddced..02e7049 100644
--- a/sysdeps/ieee754/dbl-64/mpn2dbl.c
+++ b/sysdeps/ieee754/dbl-64/mpn2dbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/mydefs.h b/sysdeps/ieee754/dbl-64/mydefs.h
index fd0fb4f..596cfb5 100644
--- a/sysdeps/ieee754/dbl-64/mydefs.h
+++ b/sysdeps/ieee754/dbl-64/mydefs.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/powtwo.tbl b/sysdeps/ieee754/dbl-64/powtwo.tbl
index b03c7b4..8fc66f9 100644
--- a/sysdeps/ieee754/dbl-64/powtwo.tbl
+++ b/sysdeps/ieee754/dbl-64/powtwo.tbl
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/root.tbl b/sysdeps/ieee754/dbl-64/root.tbl
index f170f39..913f4dd 100644
--- a/sysdeps/ieee754/dbl-64/root.tbl
+++ b/sysdeps/ieee754/dbl-64/root.tbl
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c
index 8d8d00d..31675d6 100644
--- a/sysdeps/ieee754/dbl-64/s_atan.c
+++ b/sysdeps/ieee754/dbl-64/s_atan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/s_cbrt.c b/sysdeps/ieee754/dbl-64/s_cbrt.c
index 479c09a..25a63d3 100644
--- a/sysdeps/ieee754/dbl-64/s_cbrt.c
+++ b/sysdeps/ieee754/dbl-64/s_cbrt.c
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_erfc.c b/sysdeps/ieee754/dbl-64/s_erfc.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/s_erfc.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/dbl-64/s_f32xaddf64.c b/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
index 43de9e8..0f245ae 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
@@ -1,5 +1,5 @@
/* Add _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_f32xdivf64.c b/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
index 8baef40..053d832 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
@@ -1,5 +1,5 @@
/* Divide _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_f32xmulf64.c b/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
index 5a626a5..176491c 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
@@ -1,5 +1,5 @@
/* Multiply _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_f32xsubf64.c b/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
index c6a5af2..5ac3433 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
@@ -1,5 +1,5 @@
/* Subtract _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fadd.c b/sysdeps/ieee754/dbl-64/s_fadd.c
index ee09ea9..15f34a3 100644
--- a/sysdeps/ieee754/dbl-64/s_fadd.c
+++ b/sysdeps/ieee754/dbl-64/s_fadd.c
@@ -1,5 +1,5 @@
/* Add double values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fdiv.c b/sysdeps/ieee754/dbl-64/s_fdiv.c
index 19ceb6a..7373c87 100644
--- a/sysdeps/ieee754/dbl-64/s_fdiv.c
+++ b/sysdeps/ieee754/dbl-64/s_fdiv.c
@@ -1,5 +1,5 @@
/* Divide double values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_ffma.c b/sysdeps/ieee754/dbl-64/s_ffma.c
index 1dfc7bd..ea928b1 100644
--- a/sysdeps/ieee754/dbl-64/s_ffma.c
+++ b/sysdeps/ieee754/dbl-64/s_ffma.c
@@ -1,5 +1,5 @@
/* Fused multiply-add of double value, narrowing the result to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_floor.c b/sysdeps/ieee754/dbl-64/s_floor.c
index 747927a..72c426e 100644
--- a/sysdeps/ieee754/dbl-64/s_floor.c
+++ b/sysdeps/ieee754/dbl-64/s_floor.c
@@ -1,5 +1,5 @@
/* Round double to integer away from zero.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c
index c5f5abd..42351c6 100644
--- a/sysdeps/ieee754/dbl-64/s_fma.c
+++ b/sysdeps/ieee754/dbl-64/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -244,6 +244,9 @@ __fma (double x, double y, double z)
/* Reset rounding mode and test for inexact simultaneously. */
int j = libc_feupdateenv_test (&env, FE_INEXACT) != 0;
+ /* Ensure value of a1 + u.d is not reused. */
+ a1 = math_opt_barrier (a1);
+
if (__glibc_likely (adjust == 0))
{
if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7ff)
diff --git a/sysdeps/ieee754/dbl-64/s_fmaf.c b/sysdeps/ieee754/dbl-64/s_fmaf.c
index d306cc6..375bd13 100644
--- a/sysdeps/ieee754/dbl-64/s_fmaf.c
+++ b/sysdeps/ieee754/dbl-64/s_fmaf.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fmul.c b/sysdeps/ieee754/dbl-64/s_fmul.c
index 0f018b9..43c62cb 100644
--- a/sysdeps/ieee754/dbl-64/s_fmul.c
+++ b/sysdeps/ieee754/dbl-64/s_fmul.c
@@ -1,5 +1,5 @@
/* Multiply double values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fpclassify.c b/sysdeps/ieee754/dbl-64/s_fpclassify.c
index 84d5122..49ebeb0 100644
--- a/sysdeps/ieee754/dbl-64/s_fpclassify.c
+++ b/sysdeps/ieee754/dbl-64/s_fpclassify.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_frexp.c b/sysdeps/ieee754/dbl-64/s_frexp.c
index 6562dcf..9c45819 100644
--- a/sysdeps/ieee754/dbl-64/s_frexp.c
+++ b/sysdeps/ieee754/dbl-64/s_frexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fromfp_main.c b/sysdeps/ieee754/dbl-64/s_fromfp_main.c
index dca037e..294bee2 100644
--- a/sysdeps/ieee754/dbl-64/s_fromfp_main.c
+++ b/sysdeps/ieee754/dbl-64/s_fromfp_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. dbl-64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fsqrt.c b/sysdeps/ieee754/dbl-64/s_fsqrt.c
index 41f08f2..0ca2d81 100644
--- a/sysdeps/ieee754/dbl-64/s_fsqrt.c
+++ b/sysdeps/ieee754/dbl-64/s_fsqrt.c
@@ -1,5 +1,5 @@
/* Square root of double value, narrowing the result to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_fsub.c b/sysdeps/ieee754/dbl-64/s_fsub.c
index 2bb7bf0..109d659 100644
--- a/sysdeps/ieee754/dbl-64/s_fsub.c
+++ b/sysdeps/ieee754/dbl-64/s_fsub.c
@@ -1,5 +1,5 @@
/* Subtract double values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/s_getpayload.c
index 85919dd..119942d 100644
--- a/sysdeps/ieee754/dbl-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/s_getpayload.c
@@ -1,5 +1,5 @@
/* Get NaN payload.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/s_issignaling.c
index 53ec440..fea804f 100644
--- a/sysdeps/ieee754/dbl-64/s_issignaling.c
+++ b/sysdeps/ieee754/dbl-64/s_issignaling.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_llrint.c b/sysdeps/ieee754/dbl-64/s_llrint.c
index 97bd30b..ec2643d 100644
--- a/sysdeps/ieee754/dbl-64/s_llrint.c
+++ b/sysdeps/ieee754/dbl-64/s_llrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_llround.c b/sysdeps/ieee754/dbl-64/s_llround.c
index 1d44faf..0a07722 100644
--- a/sysdeps/ieee754/dbl-64/s_llround.c
+++ b/sysdeps/ieee754/dbl-64/s_llround.c
@@ -1,5 +1,5 @@
/* Round double value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_logb.c b/sysdeps/ieee754/dbl-64/s_logb.c
index 2bf70b8..64749bc 100644
--- a/sysdeps/ieee754/dbl-64/s_logb.c
+++ b/sysdeps/ieee754/dbl-64/s_logb.c
@@ -1,5 +1,5 @@
/* Compute radix independent exponent.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_lrint.c b/sysdeps/ieee754/dbl-64/s_lrint.c
index 2005c3d..9809592 100644
--- a/sysdeps/ieee754/dbl-64/s_lrint.c
+++ b/sysdeps/ieee754/dbl-64/s_lrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_lround.c b/sysdeps/ieee754/dbl-64/s_lround.c
index 0c4069b..ba98b35 100644
--- a/sysdeps/ieee754/dbl-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/s_lround.c
@@ -1,5 +1,5 @@
/* Round double value to long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_modf.c b/sysdeps/ieee754/dbl-64/s_modf.c
index 0de2084..90cd8e8 100644
--- a/sysdeps/ieee754/dbl-64/s_modf.c
+++ b/sysdeps/ieee754/dbl-64/s_modf.c
@@ -1,63 +1,68 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Extract signed integral and fractional values.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
-/*
- * modf(double x, double *iptr)
- * return fraction part of x, and return x's integral part in *iptr.
- * Method:
- * Bit twiddling.
- *
- * Exception:
- * No exception.
- */
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <libm-alias-double.h>
-#include <stdint.h>
-
-static const double one = 1.0;
+#include "math_config.h"
+#include <math-use-builtins-trunc.h>
double
-__modf(double x, double *iptr)
+__modf (double x, double *iptr)
{
- int64_t i0;
- int32_t j0;
- EXTRACT_WORDS64(i0,x);
- j0 = ((i0>>52)&0x7ff)-0x3ff; /* exponent of x */
- if(j0<52) { /* integer part in x */
- if(j0<0) { /* |x|<1 */
- /* *iptr = +-0 */
- INSERT_WORDS64(*iptr,i0&UINT64_C(0x8000000000000000));
- return x;
- } else {
- uint64_t i = UINT64_C(0x000fffffffffffff)>>j0;
- if((i0&i)==0) { /* x is integral */
- *iptr = x;
- /* return +-0 */
- INSERT_WORDS64(x,i0&UINT64_C(0x8000000000000000));
- return x;
- } else {
- INSERT_WORDS64(*iptr,i0&(~i));
- return x - *iptr;
- }
- }
- } else { /* no fraction part */
- *iptr = x*one;
- /* We must handle NaNs separately. */
- if (j0 == 0x400 && (i0 & UINT64_C(0xfffffffffffff)))
- return x*one;
- INSERT_WORDS64(x,i0&UINT64_C(0x8000000000000000)); /* return +-0 */
- return x;
+ uint64_t t = asuint64 (x);
+#if USE_TRUNC_BUILTIN
+ if (is_inf (t))
+ {
+ *iptr = x;
+ return copysign (0.0, x);
+ }
+ *iptr = trunc (x);
+ return copysign (x - *iptr, x);
+#else
+ int e = get_exponent (t);
+ /* No fraction part. */
+ if (e < MANTISSA_WIDTH)
+ {
+ if (e < 0)
+ {
+ /* |x|<1 -> *iptr = +-0 */
+ *iptr = asdouble (t & SIGN_MASK);
+ return x;
+ }
+
+ uint64_t i = MANTISSA_MASK >> e;
+ if ((t & i) == 0)
+ {
+ /* x in integral, return +-0 */
+ *iptr = x;
+ return asdouble (t & SIGN_MASK);
}
+
+ *iptr = asdouble (t & ~i);
+ return x - *iptr;
+ }
+
+ /* Set invalid operation for sNaN. */
+ *iptr = x * 1.0;
+ if ((e == 0x400) && (t & MANTISSA_MASK))
+ return *iptr;
+ return asdouble (t & SIGN_MASK);
+#endif
}
#ifndef __modf
libm_alias_double (__modf, modf)
diff --git a/sysdeps/ieee754/dbl-64/s_nextup.c b/sysdeps/ieee754/dbl-64/s_nextup.c
index b2c026c..d86eb45 100644
--- a/sysdeps/ieee754/dbl-64/s_nextup.c
+++ b/sysdeps/ieee754/dbl-64/s_nextup.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_remquo.c b/sysdeps/ieee754/dbl-64/s_remquo.c
index 0ade8be..e2b08b3 100644
--- a/sysdeps/ieee754/dbl-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/s_remquo.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_round.c b/sysdeps/ieee754/dbl-64/s_round.c
index b6ca1f8..d3b8fcf 100644
--- a/sysdeps/ieee754/dbl-64/s_round.c
+++ b/sysdeps/ieee754/dbl-64/s_round.c
@@ -1,5 +1,5 @@
/* Round double to integer away from zero.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c
index 28fd901..9f6b108 100644
--- a/sysdeps/ieee754/dbl-64/s_roundeven.c
+++ b/sysdeps/ieee754/dbl-64/s_roundeven.c
@@ -1,5 +1,5 @@
/* Round to nearest integer value, rounding halfway cases to even.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_setpayload_main.c b/sysdeps/ieee754/dbl-64/s_setpayload_main.c
index 98a7c14..7793718 100644
--- a/sysdeps/ieee754/dbl-64/s_setpayload_main.c
+++ b/sysdeps/ieee754/dbl-64/s_setpayload_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_signbit.c b/sysdeps/ieee754/dbl-64/s_signbit.c
index 281521e..587a469 100644
--- a/sysdeps/ieee754/dbl-64/s_signbit.c
+++ b/sysdeps/ieee754/dbl-64/s_signbit.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index ad31750..89d4da7 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/s_sincos.c b/sysdeps/ieee754/dbl-64/s_sincos.c
index adbc57a..aa76ea1 100644
--- a/sysdeps/ieee754/dbl-64/s_sincos.c
+++ b/sysdeps/ieee754/dbl-64/s_sincos.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c
index 8f72429..e28729c 100644
--- a/sysdeps/ieee754/dbl-64/s_tan.c
+++ b/sysdeps/ieee754/dbl-64/s_tan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/s_tanh.c b/sysdeps/ieee754/dbl-64/s_tanh.c
index 673a971..13063db 100644
--- a/sysdeps/ieee754/dbl-64/s_tanh.c
+++ b/sysdeps/ieee754/dbl-64/s_tanh.c
@@ -46,6 +46,11 @@ static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
static const double one = 1.0, two = 2.0, tiny = 1.0e-300;
+#ifndef SECTION
+# define SECTION
+#endif
+
+SECTION
double
__tanh (double x)
{
diff --git a/sysdeps/ieee754/dbl-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/s_totalorder.c
index b70da7e..75c048a 100644
--- a/sysdeps/ieee754/dbl-64/s_totalorder.c
+++ b/sysdeps/ieee754/dbl-64/s_totalorder.c
@@ -1,5 +1,5 @@
/* Total order operation.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c
index 9ab1c8e..c0be028 100644
--- a/sysdeps/ieee754/dbl-64/s_totalordermag.c
+++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/s_trunc.c b/sysdeps/ieee754/dbl-64/s_trunc.c
index 8c2edc2..d2323d6 100644
--- a/sysdeps/ieee754/dbl-64/s_trunc.c
+++ b/sysdeps/ieee754/dbl-64/s_trunc.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/sincostab.c b/sysdeps/ieee754/dbl-64/sincostab.c
index 1459368..2a2fb22 100644
--- a/sysdeps/ieee754/dbl-64/sincostab.c
+++ b/sysdeps/ieee754/dbl-64/sincostab.c
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input
new file mode 100644
index 0000000..ba9e02f
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input
@@ -0,0 +1,682 @@
+%la::0:-1:
+%*la::0:-1:
+%la:-infinity:1:9:-inf:
+%*la:-infinity:0:9:
+%la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*la:-0xf.ffffffffffff8p+1020:0:24:
+%la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*la:-0x7.ffffffffffffcp1021:0:23:
+%la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*la:-0x2.3456789abcdfep+123:0:23:
+%la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*la:-0x2.3456789abcdfep0123:0:23:
+%la:-0x8p-1025:1:10:-0x1p-1022:
+%*la:-0x8p-1025:0:10:
+%la:-0x0p+0:1:7:-0x0:
+%*la:-0x0p+0:0:7:
+%la:-0x0p0:1:6:-0x0:
+%*la:-0x0p0:0:6:
+%la:-nan(09A_Zaz):1:13:-nan:
+%*la:-nan(09A_Zaz):0:13:
+%la:-nan():1:6:-nan:
+%*la:-nan():0:6:
+%la:nan():1:5:nan:
+%*la:nan():0:5:
+%la:nan(09A_Zaz):1:12:nan:
+%*la:nan(09A_Zaz):0:12:
+%la:0x0p0:1:5:0x0:
+%*la:0x0p0:0:5:
+%la:0x0p+0:1:6:0x0:
+%*la:0x0p+0:0:6:
+%la:0x8p-1025:1:9:0x1p-1022:
+%*la:0x8p-1025:0:9:
+%la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*la:0x2.3456789abcdfep0123:0:22:
+%la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*la:0x2.3456789abcdfep+123:0:22:
+%la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*la:0x7.ffffffffffffcp1021:0:22:
+%la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*la:0xf.ffffffffffff8p+1020:0:23:
+%la:infinity:1:8:inf:
+%*la:infinity:0:8:
+%la:+nan():1:6:nan:
+%*la:+nan():0:6:
+%la:+nan(09A_Zaz):1:13:nan:
+%*la:+nan(09A_Zaz):0:13:
+%la:+0x0p0:1:6:0x0:
+%*la:+0x0p0:0:6:
+%la:+0x0p+0:1:7:0x0:
+%*la:+0x0p+0:0:7:
+%la:+0x8p-1025:1:10:0x1p-1022:
+%*la:+0x8p-1025:0:10:
+%la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*la:+0x2.3456789abcdfep0123:0:23:
+%la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*la:+0x2.3456789abcdfep+123:0:23:
+%la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*la:+0x7.ffffffffffffcp1021:0:23:
+%la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*la:+0xf.ffffffffffff8p+1020:0:24:
+%la:+infinity:1:9:inf:
+%*la:+infinity:0:9:
+%1la::0:-1:
+%*1la::0:-1:
+%1la:-infinity:0:-1:
+%*1la:-infinity:0:-1:
+%1la:-0xf.ffffffffffff8p+1020:0:-1:
+%*1la:-0xf.ffffffffffff8p+1020:0:-1:
+%1la:-0x7.ffffffffffffcp1021:0:-1:
+%*1la:-0x7.ffffffffffffcp1021:0:-1:
+%1la:-0x2.3456789abcdfep+123:0:-1:
+%*1la:-0x2.3456789abcdfep+123:0:-1:
+%1la:-0x2.3456789abcdfep0123:0:-1:
+%*1la:-0x2.3456789abcdfep0123:0:-1:
+%1la:-0x8p-1025:0:-1:
+%*1la:-0x8p-1025:0:-1:
+%1la:-0x0p+0:0:-1:
+%*1la:-0x0p+0:0:-1:
+%1la:-0x0p0:0:-1:
+%*1la:-0x0p0:0:-1:
+%1la:-nan(09A_Zaz):0:-1:
+%*1la:-nan(09A_Zaz):0:-1:
+%1la:-nan():0:-1:
+%*1la:-nan():0:-1:
+%1la:nan():0:-1:
+%*1la:nan():0:-1:
+%1la:nan(09A_Zaz):0:-1:
+%*1la:nan(09A_Zaz):0:-1:
+%1la:0x0p0:1:1:0x0:
+%*1la:0x0p0:0:1:
+%1la:0x0p+0:1:1:0x0:
+%*1la:0x0p+0:0:1:
+%1la:0x8p-1025:1:1:0x0:
+%*1la:0x8p-1025:0:1:
+%1la:0x2.3456789abcdfep0123:1:1:0x0:
+%*1la:0x2.3456789abcdfep0123:0:1:
+%1la:0x2.3456789abcdfep+123:1:1:0x0:
+%*1la:0x2.3456789abcdfep+123:0:1:
+%1la:0x7.ffffffffffffcp1021:1:1:0x0:
+%*1la:0x7.ffffffffffffcp1021:0:1:
+%1la:0xf.ffffffffffff8p+1020:1:1:0x0:
+%*1la:0xf.ffffffffffff8p+1020:0:1:
+%1la:infinity:0:-1:
+%*1la:infinity:0:-1:
+%1la:+nan():0:-1:
+%*1la:+nan():0:-1:
+%1la:+nan(09A_Zaz):0:-1:
+%*1la:+nan(09A_Zaz):0:-1:
+%1la:+0x0p0:0:-1:
+%*1la:+0x0p0:0:-1:
+%1la:+0x0p+0:0:-1:
+%*1la:+0x0p+0:0:-1:
+%1la:+0x8p-1025:0:-1:
+%*1la:+0x8p-1025:0:-1:
+%1la:+0x2.3456789abcdfep0123:0:-1:
+%*1la:+0x2.3456789abcdfep0123:0:-1:
+%1la:+0x2.3456789abcdfep+123:0:-1:
+%*1la:+0x2.3456789abcdfep+123:0:-1:
+%1la:+0x7.ffffffffffffcp1021:0:-1:
+%*1la:+0x7.ffffffffffffcp1021:0:-1:
+%1la:+0xf.ffffffffffff8p+1020:0:-1:
+%*1la:+0xf.ffffffffffff8p+1020:0:-1:
+%1la:+infinity:0:-1:
+%*1la:+infinity:0:-1:
+%2la::0:-1:
+%*2la::0:-1:
+%2la:-infinity:0:-1:
+%*2la:-infinity:0:-1:
+%2la:-0xf.ffffffffffff8p+1020:1:2:-0x0:
+%*2la:-0xf.ffffffffffff8p+1020:0:2:
+%2la:-0x7.ffffffffffffcp1021:1:2:-0x0:
+%*2la:-0x7.ffffffffffffcp1021:0:2:
+%2la:-0x2.3456789abcdfep+123:1:2:-0x0:
+%*2la:-0x2.3456789abcdfep+123:0:2:
+%2la:-0x2.3456789abcdfep0123:1:2:-0x0:
+%*2la:-0x2.3456789abcdfep0123:0:2:
+%2la:-0x8p-1025:1:2:-0x0:
+%*2la:-0x8p-1025:0:2:
+%2la:-0x0p+0:1:2:-0x0:
+%*2la:-0x0p+0:0:2:
+%2la:-0x0p0:1:2:-0x0:
+%*2la:-0x0p0:0:2:
+%2la:-nan(09A_Zaz):0:-1:
+%*2la:-nan(09A_Zaz):0:-1:
+%2la:-nan():0:-1:
+%*2la:-nan():0:-1:
+%2la:nan():0:-1:
+%*2la:nan():0:-1:
+%2la:nan(09A_Zaz):0:-1:
+%*2la:nan(09A_Zaz):0:-1:
+%2la:0x0p0:0:-1:
+%*2la:0x0p0:0:-1:
+%2la:0x0p+0:0:-1:
+%*2la:0x0p+0:0:-1:
+%2la:0x8p-1025:0:-1:
+%*2la:0x8p-1025:0:-1:
+%2la:0x2.3456789abcdfep0123:0:-1:
+%*2la:0x2.3456789abcdfep0123:0:-1:
+%2la:0x2.3456789abcdfep+123:0:-1:
+%*2la:0x2.3456789abcdfep+123:0:-1:
+%2la:0x7.ffffffffffffcp1021:0:-1:
+%*2la:0x7.ffffffffffffcp1021:0:-1:
+%2la:0xf.ffffffffffff8p+1020:0:-1:
+%*2la:0xf.ffffffffffff8p+1020:0:-1:
+%2la:infinity:0:-1:
+%*2la:infinity:0:-1:
+%2la:+nan():0:-1:
+%*2la:+nan():0:-1:
+%2la:+nan(09A_Zaz):0:-1:
+%*2la:+nan(09A_Zaz):0:-1:
+%2la:+0x0p0:1:2:0x0:
+%*2la:+0x0p0:0:2:
+%2la:+0x0p+0:1:2:0x0:
+%*2la:+0x0p+0:0:2:
+%2la:+0x8p-1025:1:2:0x0:
+%*2la:+0x8p-1025:0:2:
+%2la:+0x2.3456789abcdfep0123:1:2:0x0:
+%*2la:+0x2.3456789abcdfep0123:0:2:
+%2la:+0x2.3456789abcdfep+123:1:2:0x0:
+%*2la:+0x2.3456789abcdfep+123:0:2:
+%2la:+0x7.ffffffffffffcp1021:1:2:0x0:
+%*2la:+0x7.ffffffffffffcp1021:0:2:
+%2la:+0xf.ffffffffffff8p+1020:1:2:0x0:
+%*2la:+0xf.ffffffffffff8p+1020:0:2:
+%2la:+infinity:0:-1:
+%*2la:+infinity:0:-1:
+%3la::0:-1:
+%*3la::0:-1:
+%3la:-infinity:0:-1:
+%*3la:-infinity:0:-1:
+%3la:-0xf.ffffffffffff8p+1020:0:-1:
+%*3la:-0xf.ffffffffffff8p+1020:0:-1:
+%3la:-0x7.ffffffffffffcp1021:0:-1:
+%*3la:-0x7.ffffffffffffcp1021:0:-1:
+%3la:-0x2.3456789abcdfep+123:0:-1:
+%*3la:-0x2.3456789abcdfep+123:0:-1:
+%3la:-0x2.3456789abcdfep0123:0:-1:
+%*3la:-0x2.3456789abcdfep0123:0:-1:
+%3la:-0x8p-1025:0:-1:
+%*3la:-0x8p-1025:0:-1:
+%3la:-0x0p+0:0:-1:
+%*3la:-0x0p+0:0:-1:
+%3la:-0x0p0:0:-1:
+%*3la:-0x0p0:0:-1:
+%3la:-nan(09A_Zaz):0:-1:
+%*3la:-nan(09A_Zaz):0:-1:
+%3la:-nan():0:-1:
+%*3la:-nan():0:-1:
+%3la:nan():1:3:nan:
+%*3la:nan():0:3:
+%3la:nan(09A_Zaz):1:3:nan:
+%*3la:nan(09A_Zaz):0:3:
+%3la:0x0p0:1:3:0x0:
+%*3la:0x0p0:0:3:
+%3la:0x0p+0:1:3:0x0:
+%*3la:0x0p+0:0:3:
+%3la:0x8p-1025:1:3:0x1p3:
+%*3la:0x8p-1025:0:3:
+%3la:0x2.3456789abcdfep0123:1:3:0x1p1:
+%*3la:0x2.3456789abcdfep0123:0:3:
+%3la:0x2.3456789abcdfep+123:1:3:0x1p1:
+%*3la:0x2.3456789abcdfep+123:0:3:
+%3la:0x7.ffffffffffffcp1021:1:3:0x1.cp2:
+%*3la:0x7.ffffffffffffcp1021:0:3:
+%3la:0xf.ffffffffffff8p+1020:1:3:0x1.ep3:
+%*3la:0xf.ffffffffffff8p+1020:0:3:
+%3la:infinity:1:3:inf:
+%*3la:infinity:0:3:
+%3la:+nan():0:-1:
+%*3la:+nan():0:-1:
+%3la:+nan(09A_Zaz):0:-1:
+%*3la:+nan(09A_Zaz):0:-1:
+%3la:+0x0p0:0:-1:
+%*3la:+0x0p0:0:-1:
+%3la:+0x0p+0:0:-1:
+%*3la:+0x0p+0:0:-1:
+%3la:+0x8p-1025:0:-1:
+%*3la:+0x8p-1025:0:-1:
+%3la:+0x2.3456789abcdfep0123:0:-1:
+%*3la:+0x2.3456789abcdfep0123:0:-1:
+%3la:+0x2.3456789abcdfep+123:0:-1:
+%*3la:+0x2.3456789abcdfep+123:0:-1:
+%3la:+0x7.ffffffffffffcp1021:0:-1:
+%*3la:+0x7.ffffffffffffcp1021:0:-1:
+%3la:+0xf.ffffffffffff8p+1020:0:-1:
+%*3la:+0xf.ffffffffffff8p+1020:0:-1:
+%3la:+infinity:0:-1:
+%*3la:+infinity:0:-1:
+%4la::0:-1:
+%*4la::0:-1:
+%4la:-infinity:1:4:-inf:
+%*4la:-infinity:0:4:
+%4la:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3:
+%*4la:-0xf.ffffffffffff8p+1020:0:4:
+%4la:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2:
+%*4la:-0x7.ffffffffffffcp1021:0:4:
+%4la:-0x2.3456789abcdfep+123:1:4:-0x1p1:
+%*4la:-0x2.3456789abcdfep+123:0:4:
+%4la:-0x2.3456789abcdfep0123:1:4:-0x1p1:
+%*4la:-0x2.3456789abcdfep0123:0:4:
+%4la:-0x8p-1025:1:4:-0x1p3:
+%*4la:-0x8p-1025:0:4:
+%4la:-0x0p+0:1:4:-0x0:
+%*4la:-0x0p+0:0:4:
+%4la:-0x0p0:1:4:-0x0:
+%*4la:-0x0p0:0:4:
+%4la:-nan(09A_Zaz):1:4:-nan:
+%*4la:-nan(09A_Zaz):0:4:
+%4la:-nan():1:4:-nan:
+%*4la:-nan():0:4:
+%4la:nan():0:-1:
+%*4la:nan():0:-1:
+%4la:nan(09A_Zaz):0:-1:
+%*4la:nan(09A_Zaz):0:-1:
+%4la:0x0p0:0:-1:
+%*4la:0x0p0:0:-1:
+%4la:0x0p+0:0:-1:
+%*4la:0x0p+0:0:-1:
+%4la:0x8p-1025:0:-1:
+%*4la:0x8p-1025:0:-1:
+%4la:0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4la:0x2.3456789abcdfep0123:0:4:
+%4la:0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4la:0x2.3456789abcdfep+123:0:4:
+%4la:0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4la:0x7.ffffffffffffcp1021:0:4:
+%4la:0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4la:0xf.ffffffffffff8p+1020:0:4:
+%4la:infinity:0:-1:
+%*4la:infinity:0:-1:
+%4la:+nan():1:4:nan:
+%*4la:+nan():0:4:
+%4la:+nan(09A_Zaz):1:4:nan:
+%*4la:+nan(09A_Zaz):0:4:
+%4la:+0x0p0:1:4:0x0:
+%*4la:+0x0p0:0:4:
+%4la:+0x0p+0:1:4:0x0:
+%*4la:+0x0p+0:0:4:
+%4la:+0x8p-1025:1:4:0x1p3:
+%*4la:+0x8p-1025:0:4:
+%4la:+0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4la:+0x2.3456789abcdfep0123:0:4:
+%4la:+0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4la:+0x2.3456789abcdfep+123:0:4:
+%4la:+0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4la:+0x7.ffffffffffffcp1021:0:4:
+%4la:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4la:+0xf.ffffffffffff8p+1020:0:4:
+%4la:+infinity:1:4:inf:
+%*4la:+infinity:0:4:
+%5la::0:-1:
+%*5la::0:-1:
+%5la:-infinity:0:-1:
+%*5la:-infinity:0:-1:
+%5la:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3:
+%*5la:-0xf.ffffffffffff8p+1020:0:5:
+%5la:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2:
+%*5la:-0x7.ffffffffffffcp1021:0:5:
+%5la:-0x2.3456789abcdfep+123:1:5:-0x1p1:
+%*5la:-0x2.3456789abcdfep+123:0:5:
+%5la:-0x2.3456789abcdfep0123:1:5:-0x1p1:
+%*5la:-0x2.3456789abcdfep0123:0:5:
+%5la:-0x8p-1025:0:-1:
+%*5la:-0x8p-1025:0:-1:
+%5la:-0x0p+0:0:-1:
+%*5la:-0x0p+0:0:-1:
+%5la:-0x0p0:0:-1:
+%*5la:-0x0p0:0:-1:
+%5la:-nan(09A_Zaz):0:-1:
+%*5la:-nan(09A_Zaz):0:-1:
+%5la:-nan():0:-1:
+%*5la:-nan():0:-1:
+%5la:nan():1:5:nan:
+%*5la:nan():0:5:
+%5la:nan(09A_Zaz):0:-1:
+%*5la:nan(09A_Zaz):0:-1:
+%5la:0x0p0:1:5:0x0:
+%*5la:0x0p0:0:5:
+%5la:0x0p+0:0:-1:
+%*5la:0x0p+0:0:-1:
+%5la:0x8p-1025:0:-1:
+%*5la:0x8p-1025:0:-1:
+%5la:0x2.3456789abcdfep0123:1:5:0x1.18p1:
+%*5la:0x2.3456789abcdfep0123:0:5:
+%5la:0x2.3456789abcdfep+123:1:5:0x1.18p1:
+%*5la:0x2.3456789abcdfep+123:0:5:
+%5la:0x7.ffffffffffffcp1021:1:5:0x1.fcp2:
+%*5la:0x7.ffffffffffffcp1021:0:5:
+%5la:0xf.ffffffffffff8p+1020:1:5:0x1.fep3:
+%*5la:0xf.ffffffffffff8p+1020:0:5:
+%5la:infinity:0:-1:
+%*5la:infinity:0:-1:
+%5la:+nan():0:-1:
+%*5la:+nan():0:-1:
+%5la:+nan(09A_Zaz):0:-1:
+%*5la:+nan(09A_Zaz):0:-1:
+%5la:+0x0p0:0:-1:
+%*5la:+0x0p0:0:-1:
+%5la:+0x0p+0:0:-1:
+%*5la:+0x0p+0:0:-1:
+%5la:+0x8p-1025:0:-1:
+%*5la:+0x8p-1025:0:-1:
+%5la:+0x2.3456789abcdfep0123:1:5:0x1p1:
+%*5la:+0x2.3456789abcdfep0123:0:5:
+%5la:+0x2.3456789abcdfep+123:1:5:0x1p1:
+%*5la:+0x2.3456789abcdfep+123:0:5:
+%5la:+0x7.ffffffffffffcp1021:1:5:0x1.cp2:
+%*5la:+0x7.ffffffffffffcp1021:0:5:
+%5la:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3:
+%*5la:+0xf.ffffffffffff8p+1020:0:5:
+%5la:+infinity:0:-1:
+%*5la:+infinity:0:-1:
+%6la::0:-1:
+%*6la::0:-1:
+%6la:-infinity:0:-1:
+%*6la:-infinity:0:-1:
+%6la:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3:
+%*6la:-0xf.ffffffffffff8p+1020:0:6:
+%6la:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2:
+%*6la:-0x7.ffffffffffffcp1021:0:6:
+%6la:-0x2.3456789abcdfep+123:1:6:-0x1.18p1:
+%*6la:-0x2.3456789abcdfep+123:0:6:
+%6la:-0x2.3456789abcdfep0123:1:6:-0x1.18p1:
+%*6la:-0x2.3456789abcdfep0123:0:6:
+%6la:-0x8p-1025:0:-1:
+%*6la:-0x8p-1025:0:-1:
+%6la:-0x0p+0:0:-1:
+%*6la:-0x0p+0:0:-1:
+%6la:-0x0p0:1:6:-0x0:
+%*6la:-0x0p0:0:6:
+%6la:-nan(09A_Zaz):0:-1:
+%*6la:-nan(09A_Zaz):0:-1:
+%6la:-nan():1:6:-nan:
+%*6la:-nan():0:6:
+%6la:nan():1:5:nan:
+%*6la:nan():0:5:
+%6la:nan(09A_Zaz):0:-1:
+%*6la:nan(09A_Zaz):0:-1:
+%6la:0x0p0:1:5:0x0:
+%*6la:0x0p0:0:5:
+%6la:0x0p+0:1:6:0x0:
+%*6la:0x0p+0:0:6:
+%6la:0x8p-1025:1:6:0x1p2:
+%*6la:0x8p-1025:0:6:
+%6la:0x2.3456789abcdfep0123:1:6:0x1.1ap1:
+%*6la:0x2.3456789abcdfep0123:0:6:
+%6la:0x2.3456789abcdfep+123:1:6:0x1.1ap1:
+%*6la:0x2.3456789abcdfep+123:0:6:
+%6la:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2:
+%*6la:0x7.ffffffffffffcp1021:0:6:
+%6la:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3:
+%*6la:0xf.ffffffffffff8p+1020:0:6:
+%6la:infinity:0:-1:
+%*6la:infinity:0:-1:
+%6la:+nan():1:6:nan:
+%*6la:+nan():0:6:
+%6la:+nan(09A_Zaz):0:-1:
+%*6la:+nan(09A_Zaz):0:-1:
+%6la:+0x0p0:1:6:0x0:
+%*6la:+0x0p0:0:6:
+%6la:+0x0p+0:0:-1:
+%*6la:+0x0p+0:0:-1:
+%6la:+0x8p-1025:0:-1:
+%*6la:+0x8p-1025:0:-1:
+%6la:+0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*6la:+0x2.3456789abcdfep0123:0:6:
+%6la:+0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*6la:+0x2.3456789abcdfep+123:0:6:
+%6la:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*6la:+0x7.ffffffffffffcp1021:0:6:
+%6la:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*6la:+0xf.ffffffffffff8p+1020:0:6:
+%6la:+infinity:0:-1:
+%*6la:+infinity:0:-1:
+%20la::0:-1:
+%*20la::0:-1:
+%20la:-infinity:1:9:-inf:
+%*20la:-infinity:0:9:
+%20la:-0xf.ffffffffffff8p+1020:0:-1:
+%*20la:-0xf.ffffffffffff8p+1020:0:-1:
+%20la:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3:
+%*20la:-0x7.ffffffffffffcp1021:0:20:
+%20la:-0x2.3456789abcdfep+123:0:-1:
+%*20la:-0x2.3456789abcdfep+123:0:-1:
+%20la:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20la:-0x2.3456789abcdfep0123:0:20:
+%20la:-0x8p-1025:1:10:-0x1p-1022:
+%*20la:-0x8p-1025:0:10:
+%20la:-0x0p+0:1:7:-0x0:
+%*20la:-0x0p+0:0:7:
+%20la:-0x0p0:1:6:-0x0:
+%*20la:-0x0p0:0:6:
+%20la:-nan(09A_Zaz):1:13:-nan:
+%*20la:-nan(09A_Zaz):0:13:
+%20la:-nan():1:6:-nan:
+%*20la:-nan():0:6:
+%20la:nan():1:5:nan:
+%*20la:nan():0:5:
+%20la:nan(09A_Zaz):1:12:nan:
+%*20la:nan(09A_Zaz):0:12:
+%20la:0x0p0:1:5:0x0:
+%*20la:0x0p0:0:5:
+%20la:0x0p+0:1:6:0x0:
+%*20la:0x0p+0:0:6:
+%20la:0x8p-1025:1:9:0x1p-1022:
+%*20la:0x8p-1025:0:9:
+%20la:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20la:0x2.3456789abcdfep0123:0:20:
+%20la:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20la:0x2.3456789abcdfep+123:0:20:
+%20la:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12:
+%*20la:0x7.ffffffffffffcp1021:0:20:
+%20la:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4:
+%*20la:0xf.ffffffffffff8p+1020:0:20:
+%20la:infinity:1:8:inf:
+%*20la:infinity:0:8:
+%20la:+nan():1:6:nan:
+%*20la:+nan():0:6:
+%20la:+nan(09A_Zaz):1:13:nan:
+%*20la:+nan(09A_Zaz):0:13:
+%20la:+0x0p0:1:6:0x0:
+%*20la:+0x0p0:0:6:
+%20la:+0x0p+0:1:7:0x0:
+%*20la:+0x0p+0:0:7:
+%20la:+0x8p-1025:1:10:0x1p-1022:
+%*20la:+0x8p-1025:0:10:
+%20la:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20la:+0x2.3456789abcdfep0123:0:20:
+%20la:+0x2.3456789abcdfep+123:0:-1:
+%*20la:+0x2.3456789abcdfep+123:0:-1:
+%20la:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3:
+%*20la:+0x7.ffffffffffffcp1021:0:20:
+%20la:+0xf.ffffffffffff8p+1020:0:-1:
+%*20la:+0xf.ffffffffffff8p+1020:0:-1:
+%20la:+infinity:1:9:inf:
+%*20la:+infinity:0:9:
+%32la::0:-1:
+%*32la::0:-1:
+%32la:-infinity:1:9:-inf:
+%*32la:-infinity:0:9:
+%32la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*32la:-0xf.ffffffffffff8p+1020:0:24:
+%32la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*32la:-0x7.ffffffffffffcp1021:0:23:
+%32la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32la:-0x2.3456789abcdfep+123:0:23:
+%32la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32la:-0x2.3456789abcdfep0123:0:23:
+%32la:-0x8p-1025:1:10:-0x1p-1022:
+%*32la:-0x8p-1025:0:10:
+%32la:-0x0p+0:1:7:-0x0:
+%*32la:-0x0p+0:0:7:
+%32la:-0x0p0:1:6:-0x0:
+%*32la:-0x0p0:0:6:
+%32la:-nan(09A_Zaz):1:13:-nan:
+%*32la:-nan(09A_Zaz):0:13:
+%32la:-nan():1:6:-nan:
+%*32la:-nan():0:6:
+%32la:nan():1:5:nan:
+%*32la:nan():0:5:
+%32la:nan(09A_Zaz):1:12:nan:
+%*32la:nan(09A_Zaz):0:12:
+%32la:0x0p0:1:5:0x0:
+%*32la:0x0p0:0:5:
+%32la:0x0p+0:1:6:0x0:
+%*32la:0x0p+0:0:6:
+%32la:0x8p-1025:1:9:0x1p-1022:
+%*32la:0x8p-1025:0:9:
+%32la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32la:0x2.3456789abcdfep0123:0:22:
+%32la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32la:0x2.3456789abcdfep+123:0:22:
+%32la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*32la:0x7.ffffffffffffcp1021:0:22:
+%32la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*32la:0xf.ffffffffffff8p+1020:0:23:
+%32la:infinity:1:8:inf:
+%*32la:infinity:0:8:
+%32la:+nan():1:6:nan:
+%*32la:+nan():0:6:
+%32la:+nan(09A_Zaz):1:13:nan:
+%*32la:+nan(09A_Zaz):0:13:
+%32la:+0x0p0:1:6:0x0:
+%*32la:+0x0p0:0:6:
+%32la:+0x0p+0:1:7:0x0:
+%*32la:+0x0p+0:0:7:
+%32la:+0x8p-1025:1:10:0x1p-1022:
+%*32la:+0x8p-1025:0:10:
+%32la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32la:+0x2.3456789abcdfep0123:0:23:
+%32la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32la:+0x2.3456789abcdfep+123:0:23:
+%32la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32la:+0x7.ffffffffffffcp1021:0:23:
+%32la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32la:+0xf.ffffffffffff8p+1020:0:24:
+%32la:+infinity:1:9:inf:
+%*32la:+infinity:0:9:
+%5la: :0:-1:
+%*5la: :0:-1:
+%5la: -infinity:0:-1:
+%*5la: -infinity:0:-1:
+%5la: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3:
+%*5la: -0xf.ffffffffffff8p+1020:0:6:
+%5la: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2:
+%*5la: -0x7.ffffffffffffcp1021:0:6:
+%5la: -0x2.3456789abcdfep+123:1:6:-0x1p1:
+%*5la: -0x2.3456789abcdfep+123:0:6:
+%5la: -0x2.3456789abcdfep0123:1:6:-0x1p1:
+%*5la: -0x2.3456789abcdfep0123:0:6:
+%5la: -0x8p-1025:0:-1:
+%*5la: -0x8p-1025:0:-1:
+%5la: -0x0p+0:0:-1:
+%*5la: -0x0p+0:0:-1:
+%5la: -0x0p0:0:-1:
+%*5la: -0x0p0:0:-1:
+%5la: -nan(09A_Zaz):0:-1:
+%*5la: -nan(09A_Zaz):0:-1:
+%5la: -nan():0:-1:
+%*5la: -nan():0:-1:
+%5la: nan():1:6:nan:
+%*5la: nan():0:6:
+%5la: nan(09A_Zaz):0:-1:
+%*5la: nan(09A_Zaz):0:-1:
+%5la: 0x0p0:1:6:0x0:
+%*5la: 0x0p0:0:6:
+%5la: 0x0p+0:0:-1:
+%*5la: 0x0p+0:0:-1:
+%5la: 0x8p-1025:0:-1:
+%*5la: 0x8p-1025:0:-1:
+%5la: 0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*5la: 0x2.3456789abcdfep0123:0:6:
+%5la: 0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*5la: 0x2.3456789abcdfep+123:0:6:
+%5la: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*5la: 0x7.ffffffffffffcp1021:0:6:
+%5la: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*5la: 0xf.ffffffffffff8p+1020:0:6:
+%5la: infinity:0:-1:
+%*5la: infinity:0:-1:
+%5la: +nan():0:-1:
+%*5la: +nan():0:-1:
+%5la: +nan(09A_Zaz):0:-1:
+%*5la: +nan(09A_Zaz):0:-1:
+%5la: +0x0p0:0:-1:
+%*5la: +0x0p0:0:-1:
+%5la: +0x0p+0:0:-1:
+%*5la: +0x0p+0:0:-1:
+%5la: +0x8p-1025:0:-1:
+%*5la: +0x8p-1025:0:-1:
+%5la: +0x2.3456789abcdfep0123:1:6:0x1p1:
+%*5la: +0x2.3456789abcdfep0123:0:6:
+%5la: +0x2.3456789abcdfep+123:1:6:0x1p1:
+%*5la: +0x2.3456789abcdfep+123:0:6:
+%5la: +0x7.ffffffffffffcp1021:1:6:0x1.cp2:
+%*5la: +0x7.ffffffffffffcp1021:0:6:
+%5la: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3:
+%*5la: +0xf.ffffffffffff8p+1020:0:6:
+%5la: +infinity:0:-1:
+%*5la: +infinity:0:-1:
+%32la: :0:-1:
+%*32la: :0:-1:
+%32la: -infinity:1:10:-inf:
+%*32la: -infinity:0:10:
+%32la: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023:
+%*32la: -0xf.ffffffffffff8p+1020:0:25:
+%32la: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023:
+%*32la: -0x7.ffffffffffffcp1021:0:24:
+%32la: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32la: -0x2.3456789abcdfep+123:0:24:
+%32la: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32la: -0x2.3456789abcdfep0123:0:24:
+%32la: -0x8p-1025:1:11:-0x1p-1022:
+%*32la: -0x8p-1025:0:11:
+%32la: -0x0p+0:1:8:-0x0:
+%*32la: -0x0p+0:0:8:
+%32la: -0x0p0:1:7:-0x0:
+%*32la: -0x0p0:0:7:
+%32la: -nan(09A_Zaz):1:14:-nan:
+%*32la: -nan(09A_Zaz):0:14:
+%32la: -nan():1:7:-nan:
+%*32la: -nan():0:7:
+%32la: nan():1:6:nan:
+%*32la: nan():0:6:
+%32la: nan(09A_Zaz):1:13:nan:
+%*32la: nan(09A_Zaz):0:13:
+%32la: 0x0p0:1:6:0x0:
+%*32la: 0x0p0:0:6:
+%32la: 0x0p+0:1:7:0x0:
+%*32la: 0x0p+0:0:7:
+%32la: 0x8p-1025:1:10:0x1p-1022:
+%*32la: 0x8p-1025:0:10:
+%32la: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32la: 0x2.3456789abcdfep0123:0:23:
+%32la: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32la: 0x2.3456789abcdfep+123:0:23:
+%32la: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32la: 0x7.ffffffffffffcp1021:0:23:
+%32la: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32la: 0xf.ffffffffffff8p+1020:0:24:
+%32la: infinity:1:9:inf:
+%*32la: infinity:0:9:
+%32la: +nan():1:7:nan:
+%*32la: +nan():0:7:
+%32la: +nan(09A_Zaz):1:14:nan:
+%*32la: +nan(09A_Zaz):0:14:
+%32la: +0x0p0:1:7:0x0:
+%*32la: +0x0p0:0:7:
+%32la: +0x0p+0:1:8:0x0:
+%*32la: +0x0p+0:0:8:
+%32la: +0x8p-1025:1:11:0x1p-1022:
+%*32la: +0x8p-1025:0:11:
+%32la: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32la: +0x2.3456789abcdfep0123:0:24:
+%32la: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32la: +0x2.3456789abcdfep+123:0:24:
+%32la: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023:
+%*32la: +0x7.ffffffffffffcp1021:0:24:
+%32la: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023:
+%*32la: +0xf.ffffffffffff8p+1020:0:25:
+%32la: +infinity:1:10:inf:
+%*32la: +infinity:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input
new file mode 100644
index 0000000..f7217b7
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input
@@ -0,0 +1,682 @@
+%lA::0:-1:
+%*lA::0:-1:
+%lA:-INFINITY:1:9:-inf:
+%*lA:-INFINITY:0:9:
+%lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*lA:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*lA:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lA:-0X2.3456789ABCDFEP+123:0:23:
+%lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lA:-0X2.3456789ABCDFEP0123:0:23:
+%lA:-0X8P-1025:1:10:-0x1p-1022:
+%*lA:-0X8P-1025:0:10:
+%lA:-0X0P+0:1:7:-0x0:
+%*lA:-0X0P+0:0:7:
+%lA:-0X0P0:1:6:-0x0:
+%*lA:-0X0P0:0:6:
+%lA:-NAN(09A_Zaz):1:13:-nan:
+%*lA:-NAN(09A_Zaz):0:13:
+%lA:-NAN():1:6:-nan:
+%*lA:-NAN():0:6:
+%lA:NAN():1:5:nan:
+%*lA:NAN():0:5:
+%lA:NAN(09A_Zaz):1:12:nan:
+%*lA:NAN(09A_Zaz):0:12:
+%lA:0X0P0:1:5:0x0:
+%*lA:0X0P0:0:5:
+%lA:0X0P+0:1:6:0x0:
+%*lA:0X0P+0:0:6:
+%lA:0X8P-1025:1:9:0x1p-1022:
+%*lA:0X8P-1025:0:9:
+%lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lA:0X2.3456789ABCDFEP0123:0:22:
+%lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lA:0X2.3456789ABCDFEP+123:0:22:
+%lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*lA:0X7.FFFFFFFFFFFFCP1021:0:22:
+%lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*lA:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%lA:INFINITY:1:8:inf:
+%*lA:INFINITY:0:8:
+%lA:+NAN():1:6:nan:
+%*lA:+NAN():0:6:
+%lA:+NAN(09A_Zaz):1:13:nan:
+%*lA:+NAN(09A_Zaz):0:13:
+%lA:+0X0P0:1:6:0x0:
+%*lA:+0X0P0:0:6:
+%lA:+0X0P+0:1:7:0x0:
+%*lA:+0X0P+0:0:7:
+%lA:+0X8P-1025:1:10:0x1p-1022:
+%*lA:+0X8P-1025:0:10:
+%lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lA:+0X2.3456789ABCDFEP0123:0:23:
+%lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lA:+0X2.3456789ABCDFEP+123:0:23:
+%lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*lA:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*lA:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%lA:+INFINITY:1:9:inf:
+%*lA:+INFINITY:0:9:
+%1lA::0:-1:
+%*1lA::0:-1:
+%1lA:-INFINITY:0:-1:
+%*1lA:-INFINITY:0:-1:
+%1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1lA:-0X2.3456789ABCDFEP+123:0:-1:
+%*1lA:-0X2.3456789ABCDFEP+123:0:-1:
+%1lA:-0X2.3456789ABCDFEP0123:0:-1:
+%*1lA:-0X2.3456789ABCDFEP0123:0:-1:
+%1lA:-0X8P-1025:0:-1:
+%*1lA:-0X8P-1025:0:-1:
+%1lA:-0X0P+0:0:-1:
+%*1lA:-0X0P+0:0:-1:
+%1lA:-0X0P0:0:-1:
+%*1lA:-0X0P0:0:-1:
+%1lA:-NAN(09A_Zaz):0:-1:
+%*1lA:-NAN(09A_Zaz):0:-1:
+%1lA:-NAN():0:-1:
+%*1lA:-NAN():0:-1:
+%1lA:NAN():0:-1:
+%*1lA:NAN():0:-1:
+%1lA:NAN(09A_Zaz):0:-1:
+%*1lA:NAN(09A_Zaz):0:-1:
+%1lA:0X0P0:1:1:0x0:
+%*1lA:0X0P0:0:1:
+%1lA:0X0P+0:1:1:0x0:
+%*1lA:0X0P+0:0:1:
+%1lA:0X8P-1025:1:1:0x0:
+%*1lA:0X8P-1025:0:1:
+%1lA:0X2.3456789ABCDFEP0123:1:1:0x0:
+%*1lA:0X2.3456789ABCDFEP0123:0:1:
+%1lA:0X2.3456789ABCDFEP+123:1:1:0x0:
+%*1lA:0X2.3456789ABCDFEP+123:0:1:
+%1lA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0:
+%*1lA:0X7.FFFFFFFFFFFFCP1021:0:1:
+%1lA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0:
+%*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1:
+%1lA:INFINITY:0:-1:
+%*1lA:INFINITY:0:-1:
+%1lA:+NAN():0:-1:
+%*1lA:+NAN():0:-1:
+%1lA:+NAN(09A_Zaz):0:-1:
+%*1lA:+NAN(09A_Zaz):0:-1:
+%1lA:+0X0P0:0:-1:
+%*1lA:+0X0P0:0:-1:
+%1lA:+0X0P+0:0:-1:
+%*1lA:+0X0P+0:0:-1:
+%1lA:+0X8P-1025:0:-1:
+%*1lA:+0X8P-1025:0:-1:
+%1lA:+0X2.3456789ABCDFEP0123:0:-1:
+%*1lA:+0X2.3456789ABCDFEP0123:0:-1:
+%1lA:+0X2.3456789ABCDFEP+123:0:-1:
+%*1lA:+0X2.3456789ABCDFEP+123:0:-1:
+%1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1lA:+INFINITY:0:-1:
+%*1lA:+INFINITY:0:-1:
+%2lA::0:-1:
+%*2lA::0:-1:
+%2lA:-INFINITY:0:-1:
+%*2lA:-INFINITY:0:-1:
+%2lA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0:
+%*2lA:-0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2lA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0:
+%*2lA:-0X7.FFFFFFFFFFFFCP1021:0:2:
+%2lA:-0X2.3456789ABCDFEP+123:1:2:-0x0:
+%*2lA:-0X2.3456789ABCDFEP+123:0:2:
+%2lA:-0X2.3456789ABCDFEP0123:1:2:-0x0:
+%*2lA:-0X2.3456789ABCDFEP0123:0:2:
+%2lA:-0X8P-1025:1:2:-0x0:
+%*2lA:-0X8P-1025:0:2:
+%2lA:-0X0P+0:1:2:-0x0:
+%*2lA:-0X0P+0:0:2:
+%2lA:-0X0P0:1:2:-0x0:
+%*2lA:-0X0P0:0:2:
+%2lA:-NAN(09A_Zaz):0:-1:
+%*2lA:-NAN(09A_Zaz):0:-1:
+%2lA:-NAN():0:-1:
+%*2lA:-NAN():0:-1:
+%2lA:NAN():0:-1:
+%*2lA:NAN():0:-1:
+%2lA:NAN(09A_Zaz):0:-1:
+%*2lA:NAN(09A_Zaz):0:-1:
+%2lA:0X0P0:0:-1:
+%*2lA:0X0P0:0:-1:
+%2lA:0X0P+0:0:-1:
+%*2lA:0X0P+0:0:-1:
+%2lA:0X8P-1025:0:-1:
+%*2lA:0X8P-1025:0:-1:
+%2lA:0X2.3456789ABCDFEP0123:0:-1:
+%*2lA:0X2.3456789ABCDFEP0123:0:-1:
+%2lA:0X2.3456789ABCDFEP+123:0:-1:
+%*2lA:0X2.3456789ABCDFEP+123:0:-1:
+%2lA:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*2lA:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%2lA:INFINITY:0:-1:
+%*2lA:INFINITY:0:-1:
+%2lA:+NAN():0:-1:
+%*2lA:+NAN():0:-1:
+%2lA:+NAN(09A_Zaz):0:-1:
+%*2lA:+NAN(09A_Zaz):0:-1:
+%2lA:+0X0P0:1:2:0x0:
+%*2lA:+0X0P0:0:2:
+%2lA:+0X0P+0:1:2:0x0:
+%*2lA:+0X0P+0:0:2:
+%2lA:+0X8P-1025:1:2:0x0:
+%*2lA:+0X8P-1025:0:2:
+%2lA:+0X2.3456789ABCDFEP0123:1:2:0x0:
+%*2lA:+0X2.3456789ABCDFEP0123:0:2:
+%2lA:+0X2.3456789ABCDFEP+123:1:2:0x0:
+%*2lA:+0X2.3456789ABCDFEP+123:0:2:
+%2lA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0:
+%*2lA:+0X7.FFFFFFFFFFFFCP1021:0:2:
+%2lA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0:
+%*2lA:+0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2lA:+INFINITY:0:-1:
+%*2lA:+INFINITY:0:-1:
+%3lA::0:-1:
+%*3lA::0:-1:
+%3lA:-INFINITY:0:-1:
+%*3lA:-INFINITY:0:-1:
+%3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3lA:-0X2.3456789ABCDFEP+123:0:-1:
+%*3lA:-0X2.3456789ABCDFEP+123:0:-1:
+%3lA:-0X2.3456789ABCDFEP0123:0:-1:
+%*3lA:-0X2.3456789ABCDFEP0123:0:-1:
+%3lA:-0X8P-1025:0:-1:
+%*3lA:-0X8P-1025:0:-1:
+%3lA:-0X0P+0:0:-1:
+%*3lA:-0X0P+0:0:-1:
+%3lA:-0X0P0:0:-1:
+%*3lA:-0X0P0:0:-1:
+%3lA:-NAN(09A_Zaz):0:-1:
+%*3lA:-NAN(09A_Zaz):0:-1:
+%3lA:-NAN():0:-1:
+%*3lA:-NAN():0:-1:
+%3lA:NAN():1:3:nan:
+%*3lA:NAN():0:3:
+%3lA:NAN(09A_Zaz):1:3:nan:
+%*3lA:NAN(09A_Zaz):0:3:
+%3lA:0X0P0:1:3:0x0:
+%*3lA:0X0P0:0:3:
+%3lA:0X0P+0:1:3:0x0:
+%*3lA:0X0P+0:0:3:
+%3lA:0X8P-1025:1:3:0x1p3:
+%*3lA:0X8P-1025:0:3:
+%3lA:0X2.3456789ABCDFEP0123:1:3:0x1p1:
+%*3lA:0X2.3456789ABCDFEP0123:0:3:
+%3lA:0X2.3456789ABCDFEP+123:1:3:0x1p1:
+%*3lA:0X2.3456789ABCDFEP+123:0:3:
+%3lA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2:
+%*3lA:0X7.FFFFFFFFFFFFCP1021:0:3:
+%3lA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3:
+%*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3:
+%3lA:INFINITY:1:3:inf:
+%*3lA:INFINITY:0:3:
+%3lA:+NAN():0:-1:
+%*3lA:+NAN():0:-1:
+%3lA:+NAN(09A_Zaz):0:-1:
+%*3lA:+NAN(09A_Zaz):0:-1:
+%3lA:+0X0P0:0:-1:
+%*3lA:+0X0P0:0:-1:
+%3lA:+0X0P+0:0:-1:
+%*3lA:+0X0P+0:0:-1:
+%3lA:+0X8P-1025:0:-1:
+%*3lA:+0X8P-1025:0:-1:
+%3lA:+0X2.3456789ABCDFEP0123:0:-1:
+%*3lA:+0X2.3456789ABCDFEP0123:0:-1:
+%3lA:+0X2.3456789ABCDFEP+123:0:-1:
+%*3lA:+0X2.3456789ABCDFEP+123:0:-1:
+%3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3lA:+INFINITY:0:-1:
+%*3lA:+INFINITY:0:-1:
+%4lA::0:-1:
+%*4lA::0:-1:
+%4lA:-INFINITY:1:4:-inf:
+%*4lA:-INFINITY:0:4:
+%4lA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3:
+%*4lA:-0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2:
+%*4lA:-0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1:
+%*4lA:-0X2.3456789ABCDFEP+123:0:4:
+%4lA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1:
+%*4lA:-0X2.3456789ABCDFEP0123:0:4:
+%4lA:-0X8P-1025:1:4:-0x1p3:
+%*4lA:-0X8P-1025:0:4:
+%4lA:-0X0P+0:1:4:-0x0:
+%*4lA:-0X0P+0:0:4:
+%4lA:-0X0P0:1:4:-0x0:
+%*4lA:-0X0P0:0:4:
+%4lA:-NAN(09A_Zaz):1:4:-nan:
+%*4lA:-NAN(09A_Zaz):0:4:
+%4lA:-NAN():1:4:-nan:
+%*4lA:-NAN():0:4:
+%4lA:NAN():0:-1:
+%*4lA:NAN():0:-1:
+%4lA:NAN(09A_Zaz):0:-1:
+%*4lA:NAN(09A_Zaz):0:-1:
+%4lA:0X0P0:0:-1:
+%*4lA:0X0P0:0:-1:
+%4lA:0X0P+0:0:-1:
+%*4lA:0X0P+0:0:-1:
+%4lA:0X8P-1025:0:-1:
+%*4lA:0X8P-1025:0:-1:
+%4lA:0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4lA:0X2.3456789ABCDFEP0123:0:4:
+%4lA:0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4lA:0X2.3456789ABCDFEP+123:0:4:
+%4lA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4lA:0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lA:INFINITY:0:-1:
+%*4lA:INFINITY:0:-1:
+%4lA:+NAN():1:4:nan:
+%*4lA:+NAN():0:4:
+%4lA:+NAN(09A_Zaz):1:4:nan:
+%*4lA:+NAN(09A_Zaz):0:4:
+%4lA:+0X0P0:1:4:0x0:
+%*4lA:+0X0P0:0:4:
+%4lA:+0X0P+0:1:4:0x0:
+%*4lA:+0X0P+0:0:4:
+%4lA:+0X8P-1025:1:4:0x1p3:
+%*4lA:+0X8P-1025:0:4:
+%4lA:+0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4lA:+0X2.3456789ABCDFEP0123:0:4:
+%4lA:+0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4lA:+0X2.3456789ABCDFEP+123:0:4:
+%4lA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4lA:+0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4lA:+0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lA:+INFINITY:1:4:inf:
+%*4lA:+INFINITY:0:4:
+%5lA::0:-1:
+%*5lA::0:-1:
+%5lA:-INFINITY:0:-1:
+%*5lA:-INFINITY:0:-1:
+%5lA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3:
+%*5lA:-0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2:
+%*5lA:-0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1:
+%*5lA:-0X2.3456789ABCDFEP+123:0:5:
+%5lA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1:
+%*5lA:-0X2.3456789ABCDFEP0123:0:5:
+%5lA:-0X8P-1025:0:-1:
+%*5lA:-0X8P-1025:0:-1:
+%5lA:-0X0P+0:0:-1:
+%*5lA:-0X0P+0:0:-1:
+%5lA:-0X0P0:0:-1:
+%*5lA:-0X0P0:0:-1:
+%5lA:-NAN(09A_Zaz):0:-1:
+%*5lA:-NAN(09A_Zaz):0:-1:
+%5lA:-NAN():0:-1:
+%*5lA:-NAN():0:-1:
+%5lA:NAN():1:5:nan:
+%*5lA:NAN():0:5:
+%5lA:NAN(09A_Zaz):0:-1:
+%*5lA:NAN(09A_Zaz):0:-1:
+%5lA:0X0P0:1:5:0x0:
+%*5lA:0X0P0:0:5:
+%5lA:0X0P+0:0:-1:
+%*5lA:0X0P+0:0:-1:
+%5lA:0X8P-1025:0:-1:
+%*5lA:0X8P-1025:0:-1:
+%5lA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1:
+%*5lA:0X2.3456789ABCDFEP0123:0:5:
+%5lA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1:
+%*5lA:0X2.3456789ABCDFEP+123:0:5:
+%5lA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2:
+%*5lA:0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3:
+%*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lA:INFINITY:0:-1:
+%*5lA:INFINITY:0:-1:
+%5lA:+NAN():0:-1:
+%*5lA:+NAN():0:-1:
+%5lA:+NAN(09A_Zaz):0:-1:
+%*5lA:+NAN(09A_Zaz):0:-1:
+%5lA:+0X0P0:0:-1:
+%*5lA:+0X0P0:0:-1:
+%5lA:+0X0P+0:0:-1:
+%*5lA:+0X0P+0:0:-1:
+%5lA:+0X8P-1025:0:-1:
+%*5lA:+0X8P-1025:0:-1:
+%5lA:+0X2.3456789ABCDFEP0123:1:5:0x1p1:
+%*5lA:+0X2.3456789ABCDFEP0123:0:5:
+%5lA:+0X2.3456789ABCDFEP+123:1:5:0x1p1:
+%*5lA:+0X2.3456789ABCDFEP+123:0:5:
+%5lA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2:
+%*5lA:+0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3:
+%*5lA:+0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lA:+INFINITY:0:-1:
+%*5lA:+INFINITY:0:-1:
+%6lA::0:-1:
+%*6lA::0:-1:
+%6lA:-INFINITY:0:-1:
+%*6lA:-INFINITY:0:-1:
+%6lA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3:
+%*6lA:-0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2:
+%*6lA:-0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1:
+%*6lA:-0X2.3456789ABCDFEP+123:0:6:
+%6lA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1:
+%*6lA:-0X2.3456789ABCDFEP0123:0:6:
+%6lA:-0X8P-1025:0:-1:
+%*6lA:-0X8P-1025:0:-1:
+%6lA:-0X0P+0:0:-1:
+%*6lA:-0X0P+0:0:-1:
+%6lA:-0X0P0:1:6:-0x0:
+%*6lA:-0X0P0:0:6:
+%6lA:-NAN(09A_Zaz):0:-1:
+%*6lA:-NAN(09A_Zaz):0:-1:
+%6lA:-NAN():1:6:-nan:
+%*6lA:-NAN():0:6:
+%6lA:NAN():1:5:nan:
+%*6lA:NAN():0:5:
+%6lA:NAN(09A_Zaz):0:-1:
+%*6lA:NAN(09A_Zaz):0:-1:
+%6lA:0X0P0:1:5:0x0:
+%*6lA:0X0P0:0:5:
+%6lA:0X0P+0:1:6:0x0:
+%*6lA:0X0P+0:0:6:
+%6lA:0X8P-1025:1:6:0x1p2:
+%*6lA:0X8P-1025:0:6:
+%6lA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1:
+%*6lA:0X2.3456789ABCDFEP0123:0:6:
+%6lA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1:
+%*6lA:0X2.3456789ABCDFEP+123:0:6:
+%6lA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2:
+%*6lA:0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3:
+%*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lA:INFINITY:0:-1:
+%*6lA:INFINITY:0:-1:
+%6lA:+NAN():1:6:nan:
+%*6lA:+NAN():0:6:
+%6lA:+NAN(09A_Zaz):0:-1:
+%*6lA:+NAN(09A_Zaz):0:-1:
+%6lA:+0X0P0:1:6:0x0:
+%*6lA:+0X0P0:0:6:
+%6lA:+0X0P+0:0:-1:
+%*6lA:+0X0P+0:0:-1:
+%6lA:+0X8P-1025:0:-1:
+%*6lA:+0X8P-1025:0:-1:
+%6lA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*6lA:+0X2.3456789ABCDFEP0123:0:6:
+%6lA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*6lA:+0X2.3456789ABCDFEP+123:0:6:
+%6lA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*6lA:+0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*6lA:+0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lA:+INFINITY:0:-1:
+%*6lA:+INFINITY:0:-1:
+%20lA::0:-1:
+%*20lA::0:-1:
+%20lA:-INFINITY:1:9:-inf:
+%*20lA:-INFINITY:0:9:
+%20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20lA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3:
+%*20lA:-0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lA:-0X2.3456789ABCDFEP+123:0:-1:
+%*20lA:-0X2.3456789ABCDFEP+123:0:-1:
+%20lA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20lA:-0X2.3456789ABCDFEP0123:0:20:
+%20lA:-0X8P-1025:1:10:-0x1p-1022:
+%*20lA:-0X8P-1025:0:10:
+%20lA:-0X0P+0:1:7:-0x0:
+%*20lA:-0X0P+0:0:7:
+%20lA:-0X0P0:1:6:-0x0:
+%*20lA:-0X0P0:0:6:
+%20lA:-NAN(09A_Zaz):1:13:-nan:
+%*20lA:-NAN(09A_Zaz):0:13:
+%20lA:-NAN():1:6:-nan:
+%*20lA:-NAN():0:6:
+%20lA:NAN():1:5:nan:
+%*20lA:NAN():0:5:
+%20lA:NAN(09A_Zaz):1:12:nan:
+%*20lA:NAN(09A_Zaz):0:12:
+%20lA:0X0P0:1:5:0x0:
+%*20lA:0X0P0:0:5:
+%20lA:0X0P+0:1:6:0x0:
+%*20lA:0X0P+0:0:6:
+%20lA:0X8P-1025:1:9:0x1p-1022:
+%*20lA:0X8P-1025:0:9:
+%20lA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lA:0X2.3456789ABCDFEP0123:0:20:
+%20lA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lA:0X2.3456789ABCDFEP+123:0:20:
+%20lA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12:
+%*20lA:0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4:
+%*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20:
+%20lA:INFINITY:1:8:inf:
+%*20lA:INFINITY:0:8:
+%20lA:+NAN():1:6:nan:
+%*20lA:+NAN():0:6:
+%20lA:+NAN(09A_Zaz):1:13:nan:
+%*20lA:+NAN(09A_Zaz):0:13:
+%20lA:+0X0P0:1:6:0x0:
+%*20lA:+0X0P0:0:6:
+%20lA:+0X0P+0:1:7:0x0:
+%*20lA:+0X0P+0:0:7:
+%20lA:+0X8P-1025:1:10:0x1p-1022:
+%*20lA:+0X8P-1025:0:10:
+%20lA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20lA:+0X2.3456789ABCDFEP0123:0:20:
+%20lA:+0X2.3456789ABCDFEP+123:0:-1:
+%*20lA:+0X2.3456789ABCDFEP+123:0:-1:
+%20lA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3:
+%*20lA:+0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20lA:+INFINITY:1:9:inf:
+%*20lA:+INFINITY:0:9:
+%32lA::0:-1:
+%*32lA::0:-1:
+%32lA:-INFINITY:1:9:-inf:
+%*32lA:-INFINITY:0:9:
+%32lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*32lA:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*32lA:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lA:-0X2.3456789ABCDFEP+123:0:23:
+%32lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lA:-0X2.3456789ABCDFEP0123:0:23:
+%32lA:-0X8P-1025:1:10:-0x1p-1022:
+%*32lA:-0X8P-1025:0:10:
+%32lA:-0X0P+0:1:7:-0x0:
+%*32lA:-0X0P+0:0:7:
+%32lA:-0X0P0:1:6:-0x0:
+%*32lA:-0X0P0:0:6:
+%32lA:-NAN(09A_Zaz):1:13:-nan:
+%*32lA:-NAN(09A_Zaz):0:13:
+%32lA:-NAN():1:6:-nan:
+%*32lA:-NAN():0:6:
+%32lA:NAN():1:5:nan:
+%*32lA:NAN():0:5:
+%32lA:NAN(09A_Zaz):1:12:nan:
+%*32lA:NAN(09A_Zaz):0:12:
+%32lA:0X0P0:1:5:0x0:
+%*32lA:0X0P0:0:5:
+%32lA:0X0P+0:1:6:0x0:
+%*32lA:0X0P+0:0:6:
+%32lA:0X8P-1025:1:9:0x1p-1022:
+%*32lA:0X8P-1025:0:9:
+%32lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lA:0X2.3456789ABCDFEP0123:0:22:
+%32lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lA:0X2.3456789ABCDFEP+123:0:22:
+%32lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*32lA:0X7.FFFFFFFFFFFFCP1021:0:22:
+%32lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%32lA:INFINITY:1:8:inf:
+%*32lA:INFINITY:0:8:
+%32lA:+NAN():1:6:nan:
+%*32lA:+NAN():0:6:
+%32lA:+NAN(09A_Zaz):1:13:nan:
+%*32lA:+NAN(09A_Zaz):0:13:
+%32lA:+0X0P0:1:6:0x0:
+%*32lA:+0X0P0:0:6:
+%32lA:+0X0P+0:1:7:0x0:
+%*32lA:+0X0P+0:0:7:
+%32lA:+0X8P-1025:1:10:0x1p-1022:
+%*32lA:+0X8P-1025:0:10:
+%32lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lA:+0X2.3456789ABCDFEP0123:0:23:
+%32lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lA:+0X2.3456789ABCDFEP+123:0:23:
+%32lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32lA:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32lA:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lA:+INFINITY:1:9:inf:
+%*32lA:+INFINITY:0:9:
+%5lA: :0:-1:
+%*5lA: :0:-1:
+%5lA: -INFINITY:0:-1:
+%*5lA: -INFINITY:0:-1:
+%5lA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3:
+%*5lA: -0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2:
+%*5lA: -0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1:
+%*5lA: -0X2.3456789ABCDFEP+123:0:6:
+%5lA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1:
+%*5lA: -0X2.3456789ABCDFEP0123:0:6:
+%5lA: -0X8P-1025:0:-1:
+%*5lA: -0X8P-1025:0:-1:
+%5lA: -0X0P+0:0:-1:
+%*5lA: -0X0P+0:0:-1:
+%5lA: -0X0P0:0:-1:
+%*5lA: -0X0P0:0:-1:
+%5lA: -NAN(09A_Zaz):0:-1:
+%*5lA: -NAN(09A_Zaz):0:-1:
+%5lA: -NAN():0:-1:
+%*5lA: -NAN():0:-1:
+%5lA: NAN():1:6:nan:
+%*5lA: NAN():0:6:
+%5lA: NAN(09A_Zaz):0:-1:
+%*5lA: NAN(09A_Zaz):0:-1:
+%5lA: 0X0P0:1:6:0x0:
+%*5lA: 0X0P0:0:6:
+%5lA: 0X0P+0:0:-1:
+%*5lA: 0X0P+0:0:-1:
+%5lA: 0X8P-1025:0:-1:
+%*5lA: 0X8P-1025:0:-1:
+%5lA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*5lA: 0X2.3456789ABCDFEP0123:0:6:
+%5lA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*5lA: 0X2.3456789ABCDFEP+123:0:6:
+%5lA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*5lA: 0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lA: INFINITY:0:-1:
+%*5lA: INFINITY:0:-1:
+%5lA: +NAN():0:-1:
+%*5lA: +NAN():0:-1:
+%5lA: +NAN(09A_Zaz):0:-1:
+%*5lA: +NAN(09A_Zaz):0:-1:
+%5lA: +0X0P0:0:-1:
+%*5lA: +0X0P0:0:-1:
+%5lA: +0X0P+0:0:-1:
+%*5lA: +0X0P+0:0:-1:
+%5lA: +0X8P-1025:0:-1:
+%*5lA: +0X8P-1025:0:-1:
+%5lA: +0X2.3456789ABCDFEP0123:1:6:0x1p1:
+%*5lA: +0X2.3456789ABCDFEP0123:0:6:
+%5lA: +0X2.3456789ABCDFEP+123:1:6:0x1p1:
+%*5lA: +0X2.3456789ABCDFEP+123:0:6:
+%5lA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2:
+%*5lA: +0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3:
+%*5lA: +0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lA: +INFINITY:0:-1:
+%*5lA: +INFINITY:0:-1:
+%32lA: :0:-1:
+%*32lA: :0:-1:
+%32lA: -INFINITY:1:10:-inf:
+%*32lA: -INFINITY:0:10:
+%32lA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023:
+%*32lA: -0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32lA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023:
+%*32lA: -0X7.FFFFFFFFFFFFCP1021:0:24:
+%32lA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lA: -0X2.3456789ABCDFEP+123:0:24:
+%32lA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lA: -0X2.3456789ABCDFEP0123:0:24:
+%32lA: -0X8P-1025:1:11:-0x1p-1022:
+%*32lA: -0X8P-1025:0:11:
+%32lA: -0X0P+0:1:8:-0x0:
+%*32lA: -0X0P+0:0:8:
+%32lA: -0X0P0:1:7:-0x0:
+%*32lA: -0X0P0:0:7:
+%32lA: -NAN(09A_Zaz):1:14:-nan:
+%*32lA: -NAN(09A_Zaz):0:14:
+%32lA: -NAN():1:7:-nan:
+%*32lA: -NAN():0:7:
+%32lA: NAN():1:6:nan:
+%*32lA: NAN():0:6:
+%32lA: NAN(09A_Zaz):1:13:nan:
+%*32lA: NAN(09A_Zaz):0:13:
+%32lA: 0X0P0:1:6:0x0:
+%*32lA: 0X0P0:0:6:
+%32lA: 0X0P+0:1:7:0x0:
+%*32lA: 0X0P+0:0:7:
+%32lA: 0X8P-1025:1:10:0x1p-1022:
+%*32lA: 0X8P-1025:0:10:
+%32lA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lA: 0X2.3456789ABCDFEP0123:0:23:
+%32lA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lA: 0X2.3456789ABCDFEP+123:0:23:
+%32lA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32lA: 0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lA: INFINITY:1:9:inf:
+%*32lA: INFINITY:0:9:
+%32lA: +NAN():1:7:nan:
+%*32lA: +NAN():0:7:
+%32lA: +NAN(09A_Zaz):1:14:nan:
+%*32lA: +NAN(09A_Zaz):0:14:
+%32lA: +0X0P0:1:7:0x0:
+%*32lA: +0X0P0:0:7:
+%32lA: +0X0P+0:1:8:0x0:
+%*32lA: +0X0P+0:0:8:
+%32lA: +0X8P-1025:1:11:0x1p-1022:
+%*32lA: +0X8P-1025:0:11:
+%32lA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lA: +0X2.3456789ABCDFEP0123:0:24:
+%32lA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lA: +0X2.3456789ABCDFEP+123:0:24:
+%32lA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023:
+%*32lA: +0X7.FFFFFFFFFFFFCP1021:0:24:
+%32lA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023:
+%*32lA: +0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32lA: +INFINITY:1:10:inf:
+%*32lA: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input
new file mode 100644
index 0000000..d8189c9
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input
@@ -0,0 +1,558 @@
+%le::0:-1:
+%*le::0:-1:
+%le:-infinity:1:9:-inf:
+%*le:-infinity:0:9:
+%le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023:
+%*le:-1.79769313486231570814527423731704357e+308:0:43:
+%le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023:
+%*le:-1.79769313486231570814527423731704357e308:0:42:
+%le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*le:-2.3441674165664682593913711430784253952e+37:0:44:
+%le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*le:-2.3441674165664682593913711430784253952e037:0:44:
+%le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022:
+%*le:-2.22507385850720138309023271733240406e-308:0:43:
+%le:-0e+0:1:5:-0x0:
+%*le:-0e+0:0:5:
+%le:-0e0:1:4:-0x0:
+%*le:-0e0:0:4:
+%le:-nan(09A_Zaz):1:13:-nan:
+%*le:-nan(09A_Zaz):0:13:
+%le:-nan():1:6:-nan:
+%*le:-nan():0:6:
+%le:nan():1:5:nan:
+%*le:nan():0:5:
+%le:nan(09A_Zaz):1:12:nan:
+%*le:nan(09A_Zaz):0:12:
+%le:0e0:1:3:0x0:
+%*le:0e0:0:3:
+%le:0e+0:1:4:0x0:
+%*le:0e+0:0:4:
+%le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022:
+%*le:2.22507385850720138309023271733240406e-308:0:42:
+%le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*le:2.3441674165664682593913711430784253952e037:0:43:
+%le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*le:2.3441674165664682593913711430784253952e+37:0:43:
+%le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023:
+%*le:1.79769313486231570814527423731704357e308:0:41:
+%le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023:
+%*le:1.79769313486231570814527423731704357e+308:0:42:
+%le:infinity:1:8:inf:
+%*le:infinity:0:8:
+%le:+nan():1:6:nan:
+%*le:+nan():0:6:
+%le:+nan(09A_Zaz):1:13:nan:
+%*le:+nan(09A_Zaz):0:13:
+%le:+0e0:1:4:0x0:
+%*le:+0e0:0:4:
+%le:+0e+0:1:5:0x0:
+%*le:+0e+0:0:5:
+%le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*le:+2.22507385850720138309023271733240406e-308:0:43:
+%le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*le:+2.3441674165664682593913711430784253952e037:0:44:
+%le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*le:+2.3441674165664682593913711430784253952e+37:0:44:
+%le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*le:+1.79769313486231570814527423731704357e308:0:42:
+%le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*le:+1.79769313486231570814527423731704357e+308:0:43:
+%le:+infinity:1:9:inf:
+%*le:+infinity:0:9:
+%1le::0:-1:
+%*1le::0:-1:
+%1le:-infinity:0:-1:
+%*1le:-infinity:0:-1:
+%1le:-1.79769313486231570814527423731704357e+308:0:-1:
+%*1le:-1.79769313486231570814527423731704357e+308:0:-1:
+%1le:-1.79769313486231570814527423731704357e308:0:-1:
+%*1le:-1.79769313486231570814527423731704357e308:0:-1:
+%1le:-2.3441674165664682593913711430784253952e+37:0:-1:
+%*1le:-2.3441674165664682593913711430784253952e+37:0:-1:
+%1le:-2.3441674165664682593913711430784253952e037:0:-1:
+%*1le:-2.3441674165664682593913711430784253952e037:0:-1:
+%1le:-2.22507385850720138309023271733240406e-308:0:-1:
+%*1le:-2.22507385850720138309023271733240406e-308:0:-1:
+%1le:-0e+0:0:-1:
+%*1le:-0e+0:0:-1:
+%1le:-0e0:0:-1:
+%*1le:-0e0:0:-1:
+%1le:-nan(09A_Zaz):0:-1:
+%*1le:-nan(09A_Zaz):0:-1:
+%1le:-nan():0:-1:
+%*1le:-nan():0:-1:
+%1le:nan():0:-1:
+%*1le:nan():0:-1:
+%1le:nan(09A_Zaz):0:-1:
+%*1le:nan(09A_Zaz):0:-1:
+%1le:0e0:1:1:0x0:
+%*1le:0e0:0:1:
+%1le:0e+0:1:1:0x0:
+%*1le:0e+0:0:1:
+%1le:2.22507385850720138309023271733240406e-308:1:1:0x1p1:
+%*1le:2.22507385850720138309023271733240406e-308:0:1:
+%1le:2.3441674165664682593913711430784253952e037:1:1:0x1p1:
+%*1le:2.3441674165664682593913711430784253952e037:0:1:
+%1le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1:
+%*1le:2.3441674165664682593913711430784253952e+37:0:1:
+%1le:1.79769313486231570814527423731704357e308:1:1:0x1:
+%*1le:1.79769313486231570814527423731704357e308:0:1:
+%1le:1.79769313486231570814527423731704357e+308:1:1:0x1:
+%*1le:1.79769313486231570814527423731704357e+308:0:1:
+%1le:infinity:0:-1:
+%*1le:infinity:0:-1:
+%1le:+nan():0:-1:
+%*1le:+nan():0:-1:
+%1le:+nan(09A_Zaz):0:-1:
+%*1le:+nan(09A_Zaz):0:-1:
+%1le:+0e0:0:-1:
+%*1le:+0e0:0:-1:
+%1le:+0e+0:0:-1:
+%*1le:+0e+0:0:-1:
+%1le:+2.22507385850720138309023271733240406e-308:0:-1:
+%*1le:+2.22507385850720138309023271733240406e-308:0:-1:
+%1le:+2.3441674165664682593913711430784253952e037:0:-1:
+%*1le:+2.3441674165664682593913711430784253952e037:0:-1:
+%1le:+2.3441674165664682593913711430784253952e+37:0:-1:
+%*1le:+2.3441674165664682593913711430784253952e+37:0:-1:
+%1le:+1.79769313486231570814527423731704357e308:0:-1:
+%*1le:+1.79769313486231570814527423731704357e308:0:-1:
+%1le:+1.79769313486231570814527423731704357e+308:0:-1:
+%*1le:+1.79769313486231570814527423731704357e+308:0:-1:
+%1le:+infinity:0:-1:
+%*1le:+infinity:0:-1:
+%2le::0:-1:
+%*2le::0:-1:
+%2le:-infinity:0:-1:
+%*2le:-infinity:0:-1:
+%2le:-1.79769313486231570814527423731704357e+308:1:2:-0x1:
+%*2le:-1.79769313486231570814527423731704357e+308:0:2:
+%2le:-1.79769313486231570814527423731704357e308:1:2:-0x1:
+%*2le:-1.79769313486231570814527423731704357e308:0:2:
+%2le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1:
+%*2le:-2.3441674165664682593913711430784253952e+37:0:2:
+%2le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1:
+%*2le:-2.3441674165664682593913711430784253952e037:0:2:
+%2le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1:
+%*2le:-2.22507385850720138309023271733240406e-308:0:2:
+%2le:-0e+0:1:2:-0x0:
+%*2le:-0e+0:0:2:
+%2le:-0e0:1:2:-0x0:
+%*2le:-0e0:0:2:
+%2le:-nan(09A_Zaz):0:-1:
+%*2le:-nan(09A_Zaz):0:-1:
+%2le:-nan():0:-1:
+%*2le:-nan():0:-1:
+%2le:nan():0:-1:
+%*2le:nan():0:-1:
+%2le:nan(09A_Zaz):0:-1:
+%*2le:nan(09A_Zaz):0:-1:
+%2le:0e0:0:-1:
+%*2le:0e0:0:-1:
+%2le:0e+0:0:-1:
+%*2le:0e+0:0:-1:
+%2le:2.22507385850720138309023271733240406e-308:1:2:0x1p1:
+%*2le:2.22507385850720138309023271733240406e-308:0:2:
+%2le:2.3441674165664682593913711430784253952e037:1:2:0x1p1:
+%*2le:2.3441674165664682593913711430784253952e037:0:2:
+%2le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1:
+%*2le:2.3441674165664682593913711430784253952e+37:0:2:
+%2le:1.79769313486231570814527423731704357e308:1:2:0x1:
+%*2le:1.79769313486231570814527423731704357e308:0:2:
+%2le:1.79769313486231570814527423731704357e+308:1:2:0x1:
+%*2le:1.79769313486231570814527423731704357e+308:0:2:
+%2le:infinity:0:-1:
+%*2le:infinity:0:-1:
+%2le:+nan():0:-1:
+%*2le:+nan():0:-1:
+%2le:+nan(09A_Zaz):0:-1:
+%*2le:+nan(09A_Zaz):0:-1:
+%2le:+0e0:1:2:0x0:
+%*2le:+0e0:0:2:
+%2le:+0e+0:1:2:0x0:
+%*2le:+0e+0:0:2:
+%2le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1:
+%*2le:+2.22507385850720138309023271733240406e-308:0:2:
+%2le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1:
+%*2le:+2.3441674165664682593913711430784253952e037:0:2:
+%2le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1:
+%*2le:+2.3441674165664682593913711430784253952e+37:0:2:
+%2le:+1.79769313486231570814527423731704357e308:1:2:0x1:
+%*2le:+1.79769313486231570814527423731704357e308:0:2:
+%2le:+1.79769313486231570814527423731704357e+308:1:2:0x1:
+%*2le:+1.79769313486231570814527423731704357e+308:0:2:
+%2le:+infinity:0:-1:
+%*2le:+infinity:0:-1:
+%3le::0:-1:
+%*3le::0:-1:
+%3le:-infinity:0:-1:
+%*3le:-infinity:0:-1:
+%3le:-1.79769313486231570814527423731704357e+308:1:3:-0x1:
+%*3le:-1.79769313486231570814527423731704357e+308:0:3:
+%3le:-1.79769313486231570814527423731704357e308:1:3:-0x1:
+%*3le:-1.79769313486231570814527423731704357e308:0:3:
+%3le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1:
+%*3le:-2.3441674165664682593913711430784253952e+37:0:3:
+%3le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1:
+%*3le:-2.3441674165664682593913711430784253952e037:0:3:
+%3le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1:
+%*3le:-2.22507385850720138309023271733240406e-308:0:3:
+%3le:-0e+0:0:-1:
+%*3le:-0e+0:0:-1:
+%3le:-0e0:0:-1:
+%*3le:-0e0:0:-1:
+%3le:-nan(09A_Zaz):0:-1:
+%*3le:-nan(09A_Zaz):0:-1:
+%3le:-nan():0:-1:
+%*3le:-nan():0:-1:
+%3le:nan():1:3:nan:
+%*3le:nan():0:3:
+%3le:nan(09A_Zaz):1:3:nan:
+%*3le:nan(09A_Zaz):0:3:
+%3le:0e0:1:3:0x0:
+%*3le:0e0:0:3:
+%3le:0e+0:0:-1:
+%*3le:0e+0:0:-1:
+%3le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1:
+%*3le:2.22507385850720138309023271733240406e-308:0:3:
+%3le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1:
+%*3le:2.3441674165664682593913711430784253952e037:0:3:
+%3le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1:
+%*3le:2.3441674165664682593913711430784253952e+37:0:3:
+%3le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333:
+%*3le:1.79769313486231570814527423731704357e308:0:3:
+%3le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333:
+%*3le:1.79769313486231570814527423731704357e+308:0:3:
+%3le:infinity:1:3:inf:
+%*3le:infinity:0:3:
+%3le:+nan():0:-1:
+%*3le:+nan():0:-1:
+%3le:+nan(09A_Zaz):0:-1:
+%*3le:+nan(09A_Zaz):0:-1:
+%3le:+0e0:0:-1:
+%*3le:+0e0:0:-1:
+%3le:+0e+0:0:-1:
+%*3le:+0e+0:0:-1:
+%3le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1:
+%*3le:+2.22507385850720138309023271733240406e-308:0:3:
+%3le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1:
+%*3le:+2.3441674165664682593913711430784253952e037:0:3:
+%3le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1:
+%*3le:+2.3441674165664682593913711430784253952e+37:0:3:
+%3le:+1.79769313486231570814527423731704357e308:1:3:0x1:
+%*3le:+1.79769313486231570814527423731704357e308:0:3:
+%3le:+1.79769313486231570814527423731704357e+308:1:3:0x1:
+%*3le:+1.79769313486231570814527423731704357e+308:0:3:
+%3le:+infinity:0:-1:
+%*3le:+infinity:0:-1:
+%4le::0:-1:
+%*4le::0:-1:
+%4le:-infinity:1:4:-inf:
+%*4le:-infinity:0:4:
+%4le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333:
+%*4le:-1.79769313486231570814527423731704357e+308:0:4:
+%4le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333:
+%*4le:-1.79769313486231570814527423731704357e308:0:4:
+%4le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1:
+%*4le:-2.3441674165664682593913711430784253952e+37:0:4:
+%4le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1:
+%*4le:-2.3441674165664682593913711430784253952e037:0:4:
+%4le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1:
+%*4le:-2.22507385850720138309023271733240406e-308:0:4:
+%4le:-0e+0:0:-1:
+%*4le:-0e+0:0:-1:
+%4le:-0e0:1:4:-0x0:
+%*4le:-0e0:0:4:
+%4le:-nan(09A_Zaz):1:4:-nan:
+%*4le:-nan(09A_Zaz):0:4:
+%4le:-nan():1:4:-nan:
+%*4le:-nan():0:4:
+%4le:nan():0:-1:
+%*4le:nan():0:-1:
+%4le:nan(09A_Zaz):0:-1:
+%*4le:nan(09A_Zaz):0:-1:
+%4le:0e0:1:3:0x0:
+%*4le:0e0:0:3:
+%4le:0e+0:1:4:0x0:
+%*4le:0e+0:0:4:
+%4le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1:
+%*4le:2.22507385850720138309023271733240406e-308:0:4:
+%4le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1:
+%*4le:2.3441674165664682593913711430784253952e037:0:4:
+%4le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1:
+%*4le:2.3441674165664682593913711430784253952e+37:0:4:
+%4le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4:
+%*4le:1.79769313486231570814527423731704357e308:0:4:
+%4le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4:
+%*4le:1.79769313486231570814527423731704357e+308:0:4:
+%4le:infinity:0:-1:
+%*4le:infinity:0:-1:
+%4le:+nan():1:4:nan:
+%*4le:+nan():0:4:
+%4le:+nan(09A_Zaz):1:4:nan:
+%*4le:+nan(09A_Zaz):0:4:
+%4le:+0e0:1:4:0x0:
+%*4le:+0e0:0:4:
+%4le:+0e+0:0:-1:
+%*4le:+0e+0:0:-1:
+%4le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1:
+%*4le:+2.22507385850720138309023271733240406e-308:0:4:
+%4le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1:
+%*4le:+2.3441674165664682593913711430784253952e037:0:4:
+%4le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1:
+%*4le:+2.3441674165664682593913711430784253952e+37:0:4:
+%4le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333:
+%*4le:+1.79769313486231570814527423731704357e308:0:4:
+%4le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333:
+%*4le:+1.79769313486231570814527423731704357e+308:0:4:
+%4le:+infinity:1:4:inf:
+%*4le:+infinity:0:4:
+%40le::0:-1:
+%*40le::0:-1:
+%40le:-infinity:1:9:-inf:
+%*40le:-infinity:0:9:
+%40le:-1.79769313486231570814527423731704357e+308:0:-1:
+%*40le:-1.79769313486231570814527423731704357e+308:0:-1:
+%40le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10:
+%*40le:-1.79769313486231570814527423731704357e308:0:40:
+%40le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1:
+%*40le:-2.3441674165664682593913711430784253952e+37:0:40:
+%40le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1:
+%*40le:-2.3441674165664682593913711430784253952e037:0:40:
+%40le:-2.22507385850720138309023271733240406e-308:0:-1:
+%*40le:-2.22507385850720138309023271733240406e-308:0:-1:
+%40le:-0e+0:1:5:-0x0:
+%*40le:-0e+0:0:5:
+%40le:-0e0:1:4:-0x0:
+%*40le:-0e0:0:4:
+%40le:-nan(09A_Zaz):1:13:-nan:
+%*40le:-nan(09A_Zaz):0:13:
+%40le:-nan():1:6:-nan:
+%*40le:-nan():0:6:
+%40le:nan():1:5:nan:
+%*40le:nan():0:5:
+%40le:nan(09A_Zaz):1:12:nan:
+%*40le:nan(09A_Zaz):0:12:
+%40le:0e0:1:3:0x0:
+%*40le:0e0:0:3:
+%40le:0e+0:1:4:0x0:
+%*40le:0e+0:0:4:
+%40le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9:
+%*40le:2.22507385850720138309023271733240406e-308:0:40:
+%40le:2.3441674165664682593913711430784253952e037:0:-1:
+%*40le:2.3441674165664682593913711430784253952e037:0:-1:
+%40le:2.3441674165664682593913711430784253952e+37:0:-1:
+%*40le:2.3441674165664682593913711430784253952e+37:0:-1:
+%40le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100:
+%*40le:1.79769313486231570814527423731704357e308:0:40:
+%40le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10:
+%*40le:1.79769313486231570814527423731704357e+308:0:40:
+%40le:infinity:1:8:inf:
+%*40le:infinity:0:8:
+%40le:+nan():1:6:nan:
+%*40le:+nan():0:6:
+%40le:+nan(09A_Zaz):1:13:nan:
+%*40le:+nan(09A_Zaz):0:13:
+%40le:+0e0:1:4:0x0:
+%*40le:+0e0:0:4:
+%40le:+0e+0:1:5:0x0:
+%*40le:+0e+0:0:5:
+%40le:+2.22507385850720138309023271733240406e-308:0:-1:
+%*40le:+2.22507385850720138309023271733240406e-308:0:-1:
+%40le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1:
+%*40le:+2.3441674165664682593913711430784253952e037:0:40:
+%40le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1:
+%*40le:+2.3441674165664682593913711430784253952e+37:0:40:
+%40le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10:
+%*40le:+1.79769313486231570814527423731704357e308:0:40:
+%40le:+1.79769313486231570814527423731704357e+308:0:-1:
+%*40le:+1.79769313486231570814527423731704357e+308:0:-1:
+%40le:+infinity:1:9:inf:
+%*40le:+infinity:0:9:
+%48le::0:-1:
+%*48le::0:-1:
+%48le:-infinity:1:9:-inf:
+%*48le:-infinity:0:9:
+%48le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023:
+%*48le:-1.79769313486231570814527423731704357e+308:0:43:
+%48le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023:
+%*48le:-1.79769313486231570814527423731704357e308:0:42:
+%48le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48le:-2.3441674165664682593913711430784253952e+37:0:44:
+%48le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48le:-2.3441674165664682593913711430784253952e037:0:44:
+%48le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022:
+%*48le:-2.22507385850720138309023271733240406e-308:0:43:
+%48le:-0e+0:1:5:-0x0:
+%*48le:-0e+0:0:5:
+%48le:-0e0:1:4:-0x0:
+%*48le:-0e0:0:4:
+%48le:-nan(09A_Zaz):1:13:-nan:
+%*48le:-nan(09A_Zaz):0:13:
+%48le:-nan():1:6:-nan:
+%*48le:-nan():0:6:
+%48le:nan():1:5:nan:
+%*48le:nan():0:5:
+%48le:nan(09A_Zaz):1:12:nan:
+%*48le:nan(09A_Zaz):0:12:
+%48le:0e0:1:3:0x0:
+%*48le:0e0:0:3:
+%48le:0e+0:1:4:0x0:
+%*48le:0e+0:0:4:
+%48le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022:
+%*48le:2.22507385850720138309023271733240406e-308:0:42:
+%48le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48le:2.3441674165664682593913711430784253952e037:0:43:
+%48le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48le:2.3441674165664682593913711430784253952e+37:0:43:
+%48le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023:
+%*48le:1.79769313486231570814527423731704357e308:0:41:
+%48le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023:
+%*48le:1.79769313486231570814527423731704357e+308:0:42:
+%48le:infinity:1:8:inf:
+%*48le:infinity:0:8:
+%48le:+nan():1:6:nan:
+%*48le:+nan():0:6:
+%48le:+nan(09A_Zaz):1:13:nan:
+%*48le:+nan(09A_Zaz):0:13:
+%48le:+0e0:1:4:0x0:
+%*48le:+0e0:0:4:
+%48le:+0e+0:1:5:0x0:
+%*48le:+0e+0:0:5:
+%48le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*48le:+2.22507385850720138309023271733240406e-308:0:43:
+%48le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48le:+2.3441674165664682593913711430784253952e037:0:44:
+%48le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48le:+2.3441674165664682593913711430784253952e+37:0:44:
+%48le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*48le:+1.79769313486231570814527423731704357e308:0:42:
+%48le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*48le:+1.79769313486231570814527423731704357e+308:0:43:
+%48le:+infinity:1:9:inf:
+%*48le:+infinity:0:9:
+%3le: :0:-1:
+%*3le: :0:-1:
+%3le: -infinity:0:-1:
+%*3le: -infinity:0:-1:
+%3le: -1.79769313486231570814527423731704357e+308:1:4:-0x1:
+%*3le: -1.79769313486231570814527423731704357e+308:0:4:
+%3le: -1.79769313486231570814527423731704357e308:1:4:-0x1:
+%*3le: -1.79769313486231570814527423731704357e308:0:4:
+%3le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1:
+%*3le: -2.3441674165664682593913711430784253952e+37:0:4:
+%3le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1:
+%*3le: -2.3441674165664682593913711430784253952e037:0:4:
+%3le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1:
+%*3le: -2.22507385850720138309023271733240406e-308:0:4:
+%3le: -0e+0:0:-1:
+%*3le: -0e+0:0:-1:
+%3le: -0e0:0:-1:
+%*3le: -0e0:0:-1:
+%3le: -nan(09A_Zaz):0:-1:
+%*3le: -nan(09A_Zaz):0:-1:
+%3le: -nan():0:-1:
+%*3le: -nan():0:-1:
+%3le: nan():1:4:nan:
+%*3le: nan():0:4:
+%3le: nan(09A_Zaz):1:4:nan:
+%*3le: nan(09A_Zaz):0:4:
+%3le: 0e0:1:4:0x0:
+%*3le: 0e0:0:4:
+%3le: 0e+0:0:-1:
+%*3le: 0e+0:0:-1:
+%3le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1:
+%*3le: 2.22507385850720138309023271733240406e-308:0:4:
+%3le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1:
+%*3le: 2.3441674165664682593913711430784253952e037:0:4:
+%3le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1:
+%*3le: 2.3441674165664682593913711430784253952e+37:0:4:
+%3le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333:
+%*3le: 1.79769313486231570814527423731704357e308:0:4:
+%3le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333:
+%*3le: 1.79769313486231570814527423731704357e+308:0:4:
+%3le: infinity:1:4:inf:
+%*3le: infinity:0:4:
+%3le: +nan():0:-1:
+%*3le: +nan():0:-1:
+%3le: +nan(09A_Zaz):0:-1:
+%*3le: +nan(09A_Zaz):0:-1:
+%3le: +0e0:0:-1:
+%*3le: +0e0:0:-1:
+%3le: +0e+0:0:-1:
+%*3le: +0e+0:0:-1:
+%3le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1:
+%*3le: +2.22507385850720138309023271733240406e-308:0:4:
+%3le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1:
+%*3le: +2.3441674165664682593913711430784253952e037:0:4:
+%3le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1:
+%*3le: +2.3441674165664682593913711430784253952e+37:0:4:
+%3le: +1.79769313486231570814527423731704357e308:1:4:0x1:
+%*3le: +1.79769313486231570814527423731704357e308:0:4:
+%3le: +1.79769313486231570814527423731704357e+308:1:4:0x1:
+%*3le: +1.79769313486231570814527423731704357e+308:0:4:
+%3le: +infinity:0:-1:
+%*3le: +infinity:0:-1:
+%48le: :0:-1:
+%*48le: :0:-1:
+%48le: -infinity:1:10:-inf:
+%*48le: -infinity:0:10:
+%48le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023:
+%*48le: -1.79769313486231570814527423731704357e+308:0:44:
+%48le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023:
+%*48le: -1.79769313486231570814527423731704357e308:0:43:
+%48le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48le: -2.3441674165664682593913711430784253952e+37:0:45:
+%48le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48le: -2.3441674165664682593913711430784253952e037:0:45:
+%48le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022:
+%*48le: -2.22507385850720138309023271733240406e-308:0:44:
+%48le: -0e+0:1:6:-0x0:
+%*48le: -0e+0:0:6:
+%48le: -0e0:1:5:-0x0:
+%*48le: -0e0:0:5:
+%48le: -nan(09A_Zaz):1:14:-nan:
+%*48le: -nan(09A_Zaz):0:14:
+%48le: -nan():1:7:-nan:
+%*48le: -nan():0:7:
+%48le: nan():1:6:nan:
+%*48le: nan():0:6:
+%48le: nan(09A_Zaz):1:13:nan:
+%*48le: nan(09A_Zaz):0:13:
+%48le: 0e0:1:4:0x0:
+%*48le: 0e0:0:4:
+%48le: 0e+0:1:5:0x0:
+%*48le: 0e+0:0:5:
+%48le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*48le: 2.22507385850720138309023271733240406e-308:0:43:
+%48le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48le: 2.3441674165664682593913711430784253952e037:0:44:
+%48le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48le: 2.3441674165664682593913711430784253952e+37:0:44:
+%48le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*48le: 1.79769313486231570814527423731704357e308:0:42:
+%48le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*48le: 1.79769313486231570814527423731704357e+308:0:43:
+%48le: infinity:1:9:inf:
+%*48le: infinity:0:9:
+%48le: +nan():1:7:nan:
+%*48le: +nan():0:7:
+%48le: +nan(09A_Zaz):1:14:nan:
+%*48le: +nan(09A_Zaz):0:14:
+%48le: +0e0:1:5:0x0:
+%*48le: +0e0:0:5:
+%48le: +0e+0:1:6:0x0:
+%*48le: +0e+0:0:6:
+%48le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022:
+%*48le: +2.22507385850720138309023271733240406e-308:0:44:
+%48le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48le: +2.3441674165664682593913711430784253952e037:0:45:
+%48le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48le: +2.3441674165664682593913711430784253952e+37:0:45:
+%48le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023:
+%*48le: +1.79769313486231570814527423731704357e308:0:43:
+%48le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023:
+%*48le: +1.79769313486231570814527423731704357e+308:0:44:
+%48le: +infinity:1:10:inf:
+%*48le: +infinity:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input
new file mode 100644
index 0000000..cba5f60
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input
@@ -0,0 +1,558 @@
+%lE::0:-1:
+%*lE::0:-1:
+%lE:-INFINITY:1:9:-inf:
+%*lE:-INFINITY:0:9:
+%lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023:
+%*lE:-1.79769313486231570814527423731704357E+308:0:43:
+%lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023:
+%*lE:-1.79769313486231570814527423731704357E308:0:42:
+%lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*lE:-2.3441674165664682593913711430784253952E+37:0:44:
+%lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*lE:-2.3441674165664682593913711430784253952E037:0:44:
+%lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022:
+%*lE:-2.22507385850720138309023271733240406E-308:0:43:
+%lE:-0E+0:1:5:-0x0:
+%*lE:-0E+0:0:5:
+%lE:-0E0:1:4:-0x0:
+%*lE:-0E0:0:4:
+%lE:-NAN(09A_Zaz):1:13:-nan:
+%*lE:-NAN(09A_Zaz):0:13:
+%lE:-NAN():1:6:-nan:
+%*lE:-NAN():0:6:
+%lE:NAN():1:5:nan:
+%*lE:NAN():0:5:
+%lE:NAN(09A_Zaz):1:12:nan:
+%*lE:NAN(09A_Zaz):0:12:
+%lE:0E0:1:3:0x0:
+%*lE:0E0:0:3:
+%lE:0E+0:1:4:0x0:
+%*lE:0E+0:0:4:
+%lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022:
+%*lE:2.22507385850720138309023271733240406E-308:0:42:
+%lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*lE:2.3441674165664682593913711430784253952E037:0:43:
+%lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*lE:2.3441674165664682593913711430784253952E+37:0:43:
+%lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023:
+%*lE:1.79769313486231570814527423731704357E308:0:41:
+%lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023:
+%*lE:1.79769313486231570814527423731704357E+308:0:42:
+%lE:INFINITY:1:8:inf:
+%*lE:INFINITY:0:8:
+%lE:+NAN():1:6:nan:
+%*lE:+NAN():0:6:
+%lE:+NAN(09A_Zaz):1:13:nan:
+%*lE:+NAN(09A_Zaz):0:13:
+%lE:+0E0:1:4:0x0:
+%*lE:+0E0:0:4:
+%lE:+0E+0:1:5:0x0:
+%*lE:+0E+0:0:5:
+%lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*lE:+2.22507385850720138309023271733240406E-308:0:43:
+%lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*lE:+2.3441674165664682593913711430784253952E037:0:44:
+%lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*lE:+2.3441674165664682593913711430784253952E+37:0:44:
+%lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*lE:+1.79769313486231570814527423731704357E308:0:42:
+%lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*lE:+1.79769313486231570814527423731704357E+308:0:43:
+%lE:+INFINITY:1:9:inf:
+%*lE:+INFINITY:0:9:
+%1lE::0:-1:
+%*1lE::0:-1:
+%1lE:-INFINITY:0:-1:
+%*1lE:-INFINITY:0:-1:
+%1lE:-1.79769313486231570814527423731704357E+308:0:-1:
+%*1lE:-1.79769313486231570814527423731704357E+308:0:-1:
+%1lE:-1.79769313486231570814527423731704357E308:0:-1:
+%*1lE:-1.79769313486231570814527423731704357E308:0:-1:
+%1lE:-2.3441674165664682593913711430784253952E+37:0:-1:
+%*1lE:-2.3441674165664682593913711430784253952E+37:0:-1:
+%1lE:-2.3441674165664682593913711430784253952E037:0:-1:
+%*1lE:-2.3441674165664682593913711430784253952E037:0:-1:
+%1lE:-2.22507385850720138309023271733240406E-308:0:-1:
+%*1lE:-2.22507385850720138309023271733240406E-308:0:-1:
+%1lE:-0E+0:0:-1:
+%*1lE:-0E+0:0:-1:
+%1lE:-0E0:0:-1:
+%*1lE:-0E0:0:-1:
+%1lE:-NAN(09A_Zaz):0:-1:
+%*1lE:-NAN(09A_Zaz):0:-1:
+%1lE:-NAN():0:-1:
+%*1lE:-NAN():0:-1:
+%1lE:NAN():0:-1:
+%*1lE:NAN():0:-1:
+%1lE:NAN(09A_Zaz):0:-1:
+%*1lE:NAN(09A_Zaz):0:-1:
+%1lE:0E0:1:1:0x0:
+%*1lE:0E0:0:1:
+%1lE:0E+0:1:1:0x0:
+%*1lE:0E+0:0:1:
+%1lE:2.22507385850720138309023271733240406E-308:1:1:0x1p1:
+%*1lE:2.22507385850720138309023271733240406E-308:0:1:
+%1lE:2.3441674165664682593913711430784253952E037:1:1:0x1p1:
+%*1lE:2.3441674165664682593913711430784253952E037:0:1:
+%1lE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1:
+%*1lE:2.3441674165664682593913711430784253952E+37:0:1:
+%1lE:1.79769313486231570814527423731704357E308:1:1:0x1:
+%*1lE:1.79769313486231570814527423731704357E308:0:1:
+%1lE:1.79769313486231570814527423731704357E+308:1:1:0x1:
+%*1lE:1.79769313486231570814527423731704357E+308:0:1:
+%1lE:INFINITY:0:-1:
+%*1lE:INFINITY:0:-1:
+%1lE:+NAN():0:-1:
+%*1lE:+NAN():0:-1:
+%1lE:+NAN(09A_Zaz):0:-1:
+%*1lE:+NAN(09A_Zaz):0:-1:
+%1lE:+0E0:0:-1:
+%*1lE:+0E0:0:-1:
+%1lE:+0E+0:0:-1:
+%*1lE:+0E+0:0:-1:
+%1lE:+2.22507385850720138309023271733240406E-308:0:-1:
+%*1lE:+2.22507385850720138309023271733240406E-308:0:-1:
+%1lE:+2.3441674165664682593913711430784253952E037:0:-1:
+%*1lE:+2.3441674165664682593913711430784253952E037:0:-1:
+%1lE:+2.3441674165664682593913711430784253952E+37:0:-1:
+%*1lE:+2.3441674165664682593913711430784253952E+37:0:-1:
+%1lE:+1.79769313486231570814527423731704357E308:0:-1:
+%*1lE:+1.79769313486231570814527423731704357E308:0:-1:
+%1lE:+1.79769313486231570814527423731704357E+308:0:-1:
+%*1lE:+1.79769313486231570814527423731704357E+308:0:-1:
+%1lE:+INFINITY:0:-1:
+%*1lE:+INFINITY:0:-1:
+%2lE::0:-1:
+%*2lE::0:-1:
+%2lE:-INFINITY:0:-1:
+%*2lE:-INFINITY:0:-1:
+%2lE:-1.79769313486231570814527423731704357E+308:1:2:-0x1:
+%*2lE:-1.79769313486231570814527423731704357E+308:0:2:
+%2lE:-1.79769313486231570814527423731704357E308:1:2:-0x1:
+%*2lE:-1.79769313486231570814527423731704357E308:0:2:
+%2lE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1:
+%*2lE:-2.3441674165664682593913711430784253952E+37:0:2:
+%2lE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1:
+%*2lE:-2.3441674165664682593913711430784253952E037:0:2:
+%2lE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1:
+%*2lE:-2.22507385850720138309023271733240406E-308:0:2:
+%2lE:-0E+0:1:2:-0x0:
+%*2lE:-0E+0:0:2:
+%2lE:-0E0:1:2:-0x0:
+%*2lE:-0E0:0:2:
+%2lE:-NAN(09A_Zaz):0:-1:
+%*2lE:-NAN(09A_Zaz):0:-1:
+%2lE:-NAN():0:-1:
+%*2lE:-NAN():0:-1:
+%2lE:NAN():0:-1:
+%*2lE:NAN():0:-1:
+%2lE:NAN(09A_Zaz):0:-1:
+%*2lE:NAN(09A_Zaz):0:-1:
+%2lE:0E0:0:-1:
+%*2lE:0E0:0:-1:
+%2lE:0E+0:0:-1:
+%*2lE:0E+0:0:-1:
+%2lE:2.22507385850720138309023271733240406E-308:1:2:0x1p1:
+%*2lE:2.22507385850720138309023271733240406E-308:0:2:
+%2lE:2.3441674165664682593913711430784253952E037:1:2:0x1p1:
+%*2lE:2.3441674165664682593913711430784253952E037:0:2:
+%2lE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1:
+%*2lE:2.3441674165664682593913711430784253952E+37:0:2:
+%2lE:1.79769313486231570814527423731704357E308:1:2:0x1:
+%*2lE:1.79769313486231570814527423731704357E308:0:2:
+%2lE:1.79769313486231570814527423731704357E+308:1:2:0x1:
+%*2lE:1.79769313486231570814527423731704357E+308:0:2:
+%2lE:INFINITY:0:-1:
+%*2lE:INFINITY:0:-1:
+%2lE:+NAN():0:-1:
+%*2lE:+NAN():0:-1:
+%2lE:+NAN(09A_Zaz):0:-1:
+%*2lE:+NAN(09A_Zaz):0:-1:
+%2lE:+0E0:1:2:0x0:
+%*2lE:+0E0:0:2:
+%2lE:+0E+0:1:2:0x0:
+%*2lE:+0E+0:0:2:
+%2lE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1:
+%*2lE:+2.22507385850720138309023271733240406E-308:0:2:
+%2lE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1:
+%*2lE:+2.3441674165664682593913711430784253952E037:0:2:
+%2lE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1:
+%*2lE:+2.3441674165664682593913711430784253952E+37:0:2:
+%2lE:+1.79769313486231570814527423731704357E308:1:2:0x1:
+%*2lE:+1.79769313486231570814527423731704357E308:0:2:
+%2lE:+1.79769313486231570814527423731704357E+308:1:2:0x1:
+%*2lE:+1.79769313486231570814527423731704357E+308:0:2:
+%2lE:+INFINITY:0:-1:
+%*2lE:+INFINITY:0:-1:
+%3lE::0:-1:
+%*3lE::0:-1:
+%3lE:-INFINITY:0:-1:
+%*3lE:-INFINITY:0:-1:
+%3lE:-1.79769313486231570814527423731704357E+308:1:3:-0x1:
+%*3lE:-1.79769313486231570814527423731704357E+308:0:3:
+%3lE:-1.79769313486231570814527423731704357E308:1:3:-0x1:
+%*3lE:-1.79769313486231570814527423731704357E308:0:3:
+%3lE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1:
+%*3lE:-2.3441674165664682593913711430784253952E+37:0:3:
+%3lE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1:
+%*3lE:-2.3441674165664682593913711430784253952E037:0:3:
+%3lE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1:
+%*3lE:-2.22507385850720138309023271733240406E-308:0:3:
+%3lE:-0E+0:0:-1:
+%*3lE:-0E+0:0:-1:
+%3lE:-0E0:0:-1:
+%*3lE:-0E0:0:-1:
+%3lE:-NAN(09A_Zaz):0:-1:
+%*3lE:-NAN(09A_Zaz):0:-1:
+%3lE:-NAN():0:-1:
+%*3lE:-NAN():0:-1:
+%3lE:NAN():1:3:nan:
+%*3lE:NAN():0:3:
+%3lE:NAN(09A_Zaz):1:3:nan:
+%*3lE:NAN(09A_Zaz):0:3:
+%3lE:0E0:1:3:0x0:
+%*3lE:0E0:0:3:
+%3lE:0E+0:0:-1:
+%*3lE:0E+0:0:-1:
+%3lE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1:
+%*3lE:2.22507385850720138309023271733240406E-308:0:3:
+%3lE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1:
+%*3lE:2.3441674165664682593913711430784253952E037:0:3:
+%3lE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1:
+%*3lE:2.3441674165664682593913711430784253952E+37:0:3:
+%3lE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333:
+%*3lE:1.79769313486231570814527423731704357E308:0:3:
+%3lE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333:
+%*3lE:1.79769313486231570814527423731704357E+308:0:3:
+%3lE:INFINITY:1:3:inf:
+%*3lE:INFINITY:0:3:
+%3lE:+NAN():0:-1:
+%*3lE:+NAN():0:-1:
+%3lE:+NAN(09A_Zaz):0:-1:
+%*3lE:+NAN(09A_Zaz):0:-1:
+%3lE:+0E0:0:-1:
+%*3lE:+0E0:0:-1:
+%3lE:+0E+0:0:-1:
+%*3lE:+0E+0:0:-1:
+%3lE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1:
+%*3lE:+2.22507385850720138309023271733240406E-308:0:3:
+%3lE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1:
+%*3lE:+2.3441674165664682593913711430784253952E037:0:3:
+%3lE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1:
+%*3lE:+2.3441674165664682593913711430784253952E+37:0:3:
+%3lE:+1.79769313486231570814527423731704357E308:1:3:0x1:
+%*3lE:+1.79769313486231570814527423731704357E308:0:3:
+%3lE:+1.79769313486231570814527423731704357E+308:1:3:0x1:
+%*3lE:+1.79769313486231570814527423731704357E+308:0:3:
+%3lE:+INFINITY:0:-1:
+%*3lE:+INFINITY:0:-1:
+%4lE::0:-1:
+%*4lE::0:-1:
+%4lE:-INFINITY:1:4:-inf:
+%*4lE:-INFINITY:0:4:
+%4lE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333:
+%*4lE:-1.79769313486231570814527423731704357E+308:0:4:
+%4lE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333:
+%*4lE:-1.79769313486231570814527423731704357E308:0:4:
+%4lE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1:
+%*4lE:-2.3441674165664682593913711430784253952E+37:0:4:
+%4lE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1:
+%*4lE:-2.3441674165664682593913711430784253952E037:0:4:
+%4lE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1:
+%*4lE:-2.22507385850720138309023271733240406E-308:0:4:
+%4lE:-0E+0:0:-1:
+%*4lE:-0E+0:0:-1:
+%4lE:-0E0:1:4:-0x0:
+%*4lE:-0E0:0:4:
+%4lE:-NAN(09A_Zaz):1:4:-nan:
+%*4lE:-NAN(09A_Zaz):0:4:
+%4lE:-NAN():1:4:-nan:
+%*4lE:-NAN():0:4:
+%4lE:NAN():0:-1:
+%*4lE:NAN():0:-1:
+%4lE:NAN(09A_Zaz):0:-1:
+%*4lE:NAN(09A_Zaz):0:-1:
+%4lE:0E0:1:3:0x0:
+%*4lE:0E0:0:3:
+%4lE:0E+0:1:4:0x0:
+%*4lE:0E+0:0:4:
+%4lE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1:
+%*4lE:2.22507385850720138309023271733240406E-308:0:4:
+%4lE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1:
+%*4lE:2.3441674165664682593913711430784253952E037:0:4:
+%4lE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1:
+%*4lE:2.3441674165664682593913711430784253952E+37:0:4:
+%4lE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4:
+%*4lE:1.79769313486231570814527423731704357E308:0:4:
+%4lE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4:
+%*4lE:1.79769313486231570814527423731704357E+308:0:4:
+%4lE:INFINITY:0:-1:
+%*4lE:INFINITY:0:-1:
+%4lE:+NAN():1:4:nan:
+%*4lE:+NAN():0:4:
+%4lE:+NAN(09A_Zaz):1:4:nan:
+%*4lE:+NAN(09A_Zaz):0:4:
+%4lE:+0E0:1:4:0x0:
+%*4lE:+0E0:0:4:
+%4lE:+0E+0:0:-1:
+%*4lE:+0E+0:0:-1:
+%4lE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1:
+%*4lE:+2.22507385850720138309023271733240406E-308:0:4:
+%4lE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1:
+%*4lE:+2.3441674165664682593913711430784253952E037:0:4:
+%4lE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1:
+%*4lE:+2.3441674165664682593913711430784253952E+37:0:4:
+%4lE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333:
+%*4lE:+1.79769313486231570814527423731704357E308:0:4:
+%4lE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333:
+%*4lE:+1.79769313486231570814527423731704357E+308:0:4:
+%4lE:+INFINITY:1:4:inf:
+%*4lE:+INFINITY:0:4:
+%40lE::0:-1:
+%*40lE::0:-1:
+%40lE:-INFINITY:1:9:-inf:
+%*40lE:-INFINITY:0:9:
+%40lE:-1.79769313486231570814527423731704357E+308:0:-1:
+%*40lE:-1.79769313486231570814527423731704357E+308:0:-1:
+%40lE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10:
+%*40lE:-1.79769313486231570814527423731704357E308:0:40:
+%40lE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1:
+%*40lE:-2.3441674165664682593913711430784253952E+37:0:40:
+%40lE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1:
+%*40lE:-2.3441674165664682593913711430784253952E037:0:40:
+%40lE:-2.22507385850720138309023271733240406E-308:0:-1:
+%*40lE:-2.22507385850720138309023271733240406E-308:0:-1:
+%40lE:-0E+0:1:5:-0x0:
+%*40lE:-0E+0:0:5:
+%40lE:-0E0:1:4:-0x0:
+%*40lE:-0E0:0:4:
+%40lE:-NAN(09A_Zaz):1:13:-nan:
+%*40lE:-NAN(09A_Zaz):0:13:
+%40lE:-NAN():1:6:-nan:
+%*40lE:-NAN():0:6:
+%40lE:NAN():1:5:nan:
+%*40lE:NAN():0:5:
+%40lE:NAN(09A_Zaz):1:12:nan:
+%*40lE:NAN(09A_Zaz):0:12:
+%40lE:0E0:1:3:0x0:
+%*40lE:0E0:0:3:
+%40lE:0E+0:1:4:0x0:
+%*40lE:0E+0:0:4:
+%40lE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9:
+%*40lE:2.22507385850720138309023271733240406E-308:0:40:
+%40lE:2.3441674165664682593913711430784253952E037:0:-1:
+%*40lE:2.3441674165664682593913711430784253952E037:0:-1:
+%40lE:2.3441674165664682593913711430784253952E+37:0:-1:
+%*40lE:2.3441674165664682593913711430784253952E+37:0:-1:
+%40lE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100:
+%*40lE:1.79769313486231570814527423731704357E308:0:40:
+%40lE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10:
+%*40lE:1.79769313486231570814527423731704357E+308:0:40:
+%40lE:INFINITY:1:8:inf:
+%*40lE:INFINITY:0:8:
+%40lE:+NAN():1:6:nan:
+%*40lE:+NAN():0:6:
+%40lE:+NAN(09A_Zaz):1:13:nan:
+%*40lE:+NAN(09A_Zaz):0:13:
+%40lE:+0E0:1:4:0x0:
+%*40lE:+0E0:0:4:
+%40lE:+0E+0:1:5:0x0:
+%*40lE:+0E+0:0:5:
+%40lE:+2.22507385850720138309023271733240406E-308:0:-1:
+%*40lE:+2.22507385850720138309023271733240406E-308:0:-1:
+%40lE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1:
+%*40lE:+2.3441674165664682593913711430784253952E037:0:40:
+%40lE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1:
+%*40lE:+2.3441674165664682593913711430784253952E+37:0:40:
+%40lE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10:
+%*40lE:+1.79769313486231570814527423731704357E308:0:40:
+%40lE:+1.79769313486231570814527423731704357E+308:0:-1:
+%*40lE:+1.79769313486231570814527423731704357E+308:0:-1:
+%40lE:+INFINITY:1:9:inf:
+%*40lE:+INFINITY:0:9:
+%48lE::0:-1:
+%*48lE::0:-1:
+%48lE:-INFINITY:1:9:-inf:
+%*48lE:-INFINITY:0:9:
+%48lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023:
+%*48lE:-1.79769313486231570814527423731704357E+308:0:43:
+%48lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023:
+%*48lE:-1.79769313486231570814527423731704357E308:0:42:
+%48lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48lE:-2.3441674165664682593913711430784253952E+37:0:44:
+%48lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48lE:-2.3441674165664682593913711430784253952E037:0:44:
+%48lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022:
+%*48lE:-2.22507385850720138309023271733240406E-308:0:43:
+%48lE:-0E+0:1:5:-0x0:
+%*48lE:-0E+0:0:5:
+%48lE:-0E0:1:4:-0x0:
+%*48lE:-0E0:0:4:
+%48lE:-NAN(09A_Zaz):1:13:-nan:
+%*48lE:-NAN(09A_Zaz):0:13:
+%48lE:-NAN():1:6:-nan:
+%*48lE:-NAN():0:6:
+%48lE:NAN():1:5:nan:
+%*48lE:NAN():0:5:
+%48lE:NAN(09A_Zaz):1:12:nan:
+%*48lE:NAN(09A_Zaz):0:12:
+%48lE:0E0:1:3:0x0:
+%*48lE:0E0:0:3:
+%48lE:0E+0:1:4:0x0:
+%*48lE:0E+0:0:4:
+%48lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022:
+%*48lE:2.22507385850720138309023271733240406E-308:0:42:
+%48lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48lE:2.3441674165664682593913711430784253952E037:0:43:
+%48lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48lE:2.3441674165664682593913711430784253952E+37:0:43:
+%48lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023:
+%*48lE:1.79769313486231570814527423731704357E308:0:41:
+%48lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023:
+%*48lE:1.79769313486231570814527423731704357E+308:0:42:
+%48lE:INFINITY:1:8:inf:
+%*48lE:INFINITY:0:8:
+%48lE:+NAN():1:6:nan:
+%*48lE:+NAN():0:6:
+%48lE:+NAN(09A_Zaz):1:13:nan:
+%*48lE:+NAN(09A_Zaz):0:13:
+%48lE:+0E0:1:4:0x0:
+%*48lE:+0E0:0:4:
+%48lE:+0E+0:1:5:0x0:
+%*48lE:+0E+0:0:5:
+%48lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*48lE:+2.22507385850720138309023271733240406E-308:0:43:
+%48lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48lE:+2.3441674165664682593913711430784253952E037:0:44:
+%48lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48lE:+2.3441674165664682593913711430784253952E+37:0:44:
+%48lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*48lE:+1.79769313486231570814527423731704357E308:0:42:
+%48lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*48lE:+1.79769313486231570814527423731704357E+308:0:43:
+%48lE:+INFINITY:1:9:inf:
+%*48lE:+INFINITY:0:9:
+%3lE: :0:-1:
+%*3lE: :0:-1:
+%3lE: -INFINITY:0:-1:
+%*3lE: -INFINITY:0:-1:
+%3lE: -1.79769313486231570814527423731704357E+308:1:4:-0x1:
+%*3lE: -1.79769313486231570814527423731704357E+308:0:4:
+%3lE: -1.79769313486231570814527423731704357E308:1:4:-0x1:
+%*3lE: -1.79769313486231570814527423731704357E308:0:4:
+%3lE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1:
+%*3lE: -2.3441674165664682593913711430784253952E+37:0:4:
+%3lE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1:
+%*3lE: -2.3441674165664682593913711430784253952E037:0:4:
+%3lE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1:
+%*3lE: -2.22507385850720138309023271733240406E-308:0:4:
+%3lE: -0E+0:0:-1:
+%*3lE: -0E+0:0:-1:
+%3lE: -0E0:0:-1:
+%*3lE: -0E0:0:-1:
+%3lE: -NAN(09A_Zaz):0:-1:
+%*3lE: -NAN(09A_Zaz):0:-1:
+%3lE: -NAN():0:-1:
+%*3lE: -NAN():0:-1:
+%3lE: NAN():1:4:nan:
+%*3lE: NAN():0:4:
+%3lE: NAN(09A_Zaz):1:4:nan:
+%*3lE: NAN(09A_Zaz):0:4:
+%3lE: 0E0:1:4:0x0:
+%*3lE: 0E0:0:4:
+%3lE: 0E+0:0:-1:
+%*3lE: 0E+0:0:-1:
+%3lE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1:
+%*3lE: 2.22507385850720138309023271733240406E-308:0:4:
+%3lE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1:
+%*3lE: 2.3441674165664682593913711430784253952E037:0:4:
+%3lE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1:
+%*3lE: 2.3441674165664682593913711430784253952E+37:0:4:
+%3lE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333:
+%*3lE: 1.79769313486231570814527423731704357E308:0:4:
+%3lE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333:
+%*3lE: 1.79769313486231570814527423731704357E+308:0:4:
+%3lE: INFINITY:1:4:inf:
+%*3lE: INFINITY:0:4:
+%3lE: +NAN():0:-1:
+%*3lE: +NAN():0:-1:
+%3lE: +NAN(09A_Zaz):0:-1:
+%*3lE: +NAN(09A_Zaz):0:-1:
+%3lE: +0E0:0:-1:
+%*3lE: +0E0:0:-1:
+%3lE: +0E+0:0:-1:
+%*3lE: +0E+0:0:-1:
+%3lE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1:
+%*3lE: +2.22507385850720138309023271733240406E-308:0:4:
+%3lE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1:
+%*3lE: +2.3441674165664682593913711430784253952E037:0:4:
+%3lE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1:
+%*3lE: +2.3441674165664682593913711430784253952E+37:0:4:
+%3lE: +1.79769313486231570814527423731704357E308:1:4:0x1:
+%*3lE: +1.79769313486231570814527423731704357E308:0:4:
+%3lE: +1.79769313486231570814527423731704357E+308:1:4:0x1:
+%*3lE: +1.79769313486231570814527423731704357E+308:0:4:
+%3lE: +INFINITY:0:-1:
+%*3lE: +INFINITY:0:-1:
+%48lE: :0:-1:
+%*48lE: :0:-1:
+%48lE: -INFINITY:1:10:-inf:
+%*48lE: -INFINITY:0:10:
+%48lE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023:
+%*48lE: -1.79769313486231570814527423731704357E+308:0:44:
+%48lE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023:
+%*48lE: -1.79769313486231570814527423731704357E308:0:43:
+%48lE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48lE: -2.3441674165664682593913711430784253952E+37:0:45:
+%48lE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48lE: -2.3441674165664682593913711430784253952E037:0:45:
+%48lE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022:
+%*48lE: -2.22507385850720138309023271733240406E-308:0:44:
+%48lE: -0E+0:1:6:-0x0:
+%*48lE: -0E+0:0:6:
+%48lE: -0E0:1:5:-0x0:
+%*48lE: -0E0:0:5:
+%48lE: -NAN(09A_Zaz):1:14:-nan:
+%*48lE: -NAN(09A_Zaz):0:14:
+%48lE: -NAN():1:7:-nan:
+%*48lE: -NAN():0:7:
+%48lE: NAN():1:6:nan:
+%*48lE: NAN():0:6:
+%48lE: NAN(09A_Zaz):1:13:nan:
+%*48lE: NAN(09A_Zaz):0:13:
+%48lE: 0E0:1:4:0x0:
+%*48lE: 0E0:0:4:
+%48lE: 0E+0:1:5:0x0:
+%*48lE: 0E+0:0:5:
+%48lE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*48lE: 2.22507385850720138309023271733240406E-308:0:43:
+%48lE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48lE: 2.3441674165664682593913711430784253952E037:0:44:
+%48lE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48lE: 2.3441674165664682593913711430784253952E+37:0:44:
+%48lE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*48lE: 1.79769313486231570814527423731704357E308:0:42:
+%48lE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*48lE: 1.79769313486231570814527423731704357E+308:0:43:
+%48lE: INFINITY:1:9:inf:
+%*48lE: INFINITY:0:9:
+%48lE: +NAN():1:7:nan:
+%*48lE: +NAN():0:7:
+%48lE: +NAN(09A_Zaz):1:14:nan:
+%*48lE: +NAN(09A_Zaz):0:14:
+%48lE: +0E0:1:5:0x0:
+%*48lE: +0E0:0:5:
+%48lE: +0E+0:1:6:0x0:
+%*48lE: +0E+0:0:6:
+%48lE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022:
+%*48lE: +2.22507385850720138309023271733240406E-308:0:44:
+%48lE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48lE: +2.3441674165664682593913711430784253952E037:0:45:
+%48lE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48lE: +2.3441674165664682593913711430784253952E+37:0:45:
+%48lE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023:
+%*48lE: +1.79769313486231570814527423731704357E308:0:43:
+%48lE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023:
+%*48lE: +1.79769313486231570814527423731704357E+308:0:44:
+%48lE: +INFINITY:1:10:inf:
+%*48lE: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input
new file mode 100644
index 0000000..22b9fdc
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input
@@ -0,0 +1,558 @@
+%lf::0:-1:
+%*lf::0:-1:
+%lf:-infinity:1:9:-inf:
+%*lf:-infinity:0:9:
+%lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*lf:-023441674165664682593913711430784253952.0:0:42:
+%lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*lf:-23441674165664682593913711430784253952:0:39:
+%lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%lf:-0.0:1:4:-0x0:
+%*lf:-0.0:0:4:
+%lf:-0:1:2:-0x0:
+%*lf:-0:0:2:
+%lf:-nan(09A_Zaz):1:13:-nan:
+%*lf:-nan(09A_Zaz):0:13:
+%lf:-nan():1:6:-nan:
+%*lf:-nan():0:6:
+%lf:nan():1:5:nan:
+%*lf:nan():0:5:
+%lf:nan(09A_Zaz):1:12:nan:
+%*lf:nan(09A_Zaz):0:12:
+%lf:0:1:1:0x0:
+%*lf:0:0:1:
+%lf:0.0:1:3:0x0:
+%*lf:0.0:0:3:
+%lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*lf:23441674165664682593913711430784253952:0:38:
+%lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*lf:023441674165664682593913711430784253952.0:0:41:
+%lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%lf:infinity:1:8:inf:
+%*lf:infinity:0:8:
+%lf:+nan():1:6:nan:
+%*lf:+nan():0:6:
+%lf:+nan(09A_Zaz):1:13:nan:
+%*lf:+nan(09A_Zaz):0:13:
+%lf:+0:1:2:0x0:
+%*lf:+0:0:2:
+%lf:+0.0:1:4:0x0:
+%*lf:+0.0:0:4:
+%lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*lf:+23441674165664682593913711430784253952:0:39:
+%lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*lf:+023441674165664682593913711430784253952.0:0:42:
+%lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%lf:+infinity:1:9:inf:
+%*lf:+infinity:0:9:
+%1lf::0:-1:
+%*1lf::0:-1:
+%1lf:-infinity:0:-1:
+%*1lf:-infinity:0:-1:
+%1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1lf:-023441674165664682593913711430784253952.0:0:-1:
+%*1lf:-023441674165664682593913711430784253952.0:0:-1:
+%1lf:-23441674165664682593913711430784253952:0:-1:
+%*1lf:-23441674165664682593913711430784253952:0:-1:
+%1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1lf:-0.0:0:-1:
+%*1lf:-0.0:0:-1:
+%1lf:-0:0:-1:
+%*1lf:-0:0:-1:
+%1lf:-nan(09A_Zaz):0:-1:
+%*1lf:-nan(09A_Zaz):0:-1:
+%1lf:-nan():0:-1:
+%*1lf:-nan():0:-1:
+%1lf:nan():0:-1:
+%*1lf:nan():0:-1:
+%1lf:nan(09A_Zaz):0:-1:
+%*1lf:nan(09A_Zaz):0:-1:
+%1lf:0:1:1:0x0:
+%*1lf:0:0:1:
+%1lf:0.0:1:1:0x0:
+%*1lf:0.0:0:1:
+%1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0:
+%*1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1:
+%1lf:23441674165664682593913711430784253952:1:1:0x1p1:
+%*1lf:23441674165664682593913711430784253952:0:1:
+%1lf:023441674165664682593913711430784253952.0:1:1:0x0:
+%*1lf:023441674165664682593913711430784253952.0:0:1:
+%1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1:
+%*1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1:
+%1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0:
+%*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1:
+%1lf:infinity:0:-1:
+%*1lf:infinity:0:-1:
+%1lf:+nan():0:-1:
+%*1lf:+nan():0:-1:
+%1lf:+nan(09A_Zaz):0:-1:
+%*1lf:+nan(09A_Zaz):0:-1:
+%1lf:+0:0:-1:
+%*1lf:+0:0:-1:
+%1lf:+0.0:0:-1:
+%*1lf:+0.0:0:-1:
+%1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1lf:+23441674165664682593913711430784253952:0:-1:
+%*1lf:+23441674165664682593913711430784253952:0:-1:
+%1lf:+023441674165664682593913711430784253952.0:0:-1:
+%*1lf:+023441674165664682593913711430784253952.0:0:-1:
+%1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1lf:+infinity:0:-1:
+%*1lf:+infinity:0:-1:
+%2lf::0:-1:
+%*2lf::0:-1:
+%2lf:-infinity:0:-1:
+%*2lf:-infinity:0:-1:
+%2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0:
+%*2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1:
+%*2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lf:-023441674165664682593913711430784253952.0:1:2:-0x0:
+%*2lf:-023441674165664682593913711430784253952.0:0:2:
+%2lf:-23441674165664682593913711430784253952:1:2:-0x1p1:
+%*2lf:-23441674165664682593913711430784253952:0:2:
+%2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0:
+%*2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lf:-0.0:1:2:-0x0:
+%*2lf:-0.0:0:2:
+%2lf:-0:1:2:-0x0:
+%*2lf:-0:0:2:
+%2lf:-nan(09A_Zaz):0:-1:
+%*2lf:-nan(09A_Zaz):0:-1:
+%2lf:-nan():0:-1:
+%*2lf:-nan():0:-1:
+%2lf:nan():0:-1:
+%*2lf:nan():0:-1:
+%2lf:nan(09A_Zaz):0:-1:
+%*2lf:nan(09A_Zaz):0:-1:
+%2lf:0:1:1:0x0:
+%*2lf:0:0:1:
+%2lf:0.0:1:2:0x0:
+%*2lf:0.0:0:2:
+%2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lf:23441674165664682593913711430784253952:1:2:0x1.7p+4:
+%*2lf:23441674165664682593913711430784253952:0:2:
+%2lf:023441674165664682593913711430784253952.0:1:2:0x1p1:
+%*2lf:023441674165664682593913711430784253952.0:0:2:
+%2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4:
+%*2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1:
+%*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lf:infinity:0:-1:
+%*2lf:infinity:0:-1:
+%2lf:+nan():0:-1:
+%*2lf:+nan():0:-1:
+%2lf:+nan(09A_Zaz):0:-1:
+%*2lf:+nan(09A_Zaz):0:-1:
+%2lf:+0:1:2:0x0:
+%*2lf:+0:0:2:
+%2lf:+0.0:1:2:0x0:
+%*2lf:+0.0:0:2:
+%2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lf:+23441674165664682593913711430784253952:1:2:0x1p1:
+%*2lf:+23441674165664682593913711430784253952:0:2:
+%2lf:+023441674165664682593913711430784253952.0:1:2:0x0:
+%*2lf:+023441674165664682593913711430784253952.0:0:2:
+%2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1:
+%*2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0:
+%*2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lf:+infinity:0:-1:
+%*2lf:+infinity:0:-1:
+%3lf::0:-1:
+%*3lf::0:-1:
+%3lf:-infinity:0:-1:
+%*3lf:-infinity:0:-1:
+%3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1:
+%*3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4:
+%*3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1:
+%*3lf:-023441674165664682593913711430784253952.0:0:3:
+%3lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4:
+%*3lf:-23441674165664682593913711430784253952:0:3:
+%3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0:
+%*3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lf:-0.0:1:3:-0x0:
+%*3lf:-0.0:0:3:
+%3lf:-0:1:2:-0x0:
+%*3lf:-0:0:2:
+%3lf:-nan(09A_Zaz):0:-1:
+%*3lf:-nan(09A_Zaz):0:-1:
+%3lf:-nan():0:-1:
+%*3lf:-nan():0:-1:
+%3lf:nan():1:3:nan:
+%*3lf:nan():0:3:
+%3lf:nan(09A_Zaz):1:3:nan:
+%*3lf:nan(09A_Zaz):0:3:
+%3lf:0:1:1:0x0:
+%*3lf:0:0:1:
+%3lf:0.0:1:3:0x0:
+%*3lf:0.0:0:3:
+%3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7:
+%*3lf:23441674165664682593913711430784253952:0:3:
+%3lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4:
+%*3lf:023441674165664682593913711430784253952.0:0:3:
+%3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7:
+%*3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4:
+%*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lf:infinity:1:3:inf:
+%*3lf:infinity:0:3:
+%3lf:+nan():0:-1:
+%*3lf:+nan():0:-1:
+%3lf:+nan(09A_Zaz):0:-1:
+%*3lf:+nan(09A_Zaz):0:-1:
+%3lf:+0:1:2:0x0:
+%*3lf:+0:0:2:
+%3lf:+0.0:1:3:0x0:
+%*3lf:+0.0:0:3:
+%3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4:
+%*3lf:+23441674165664682593913711430784253952:0:3:
+%3lf:+023441674165664682593913711430784253952.0:1:3:0x1p1:
+%*3lf:+023441674165664682593913711430784253952.0:0:3:
+%3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4:
+%*3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1:
+%*3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lf:+infinity:0:-1:
+%*3lf:+infinity:0:-1:
+%4lf::0:-1:
+%*4lf::0:-1:
+%4lf:-infinity:1:4:-inf:
+%*4lf:-infinity:0:4:
+%4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4:
+%*4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7:
+%*4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4:
+%*4lf:-023441674165664682593913711430784253952.0:0:4:
+%4lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7:
+%*4lf:-23441674165664682593913711430784253952:0:4:
+%4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lf:-0.0:1:4:-0x0:
+%*4lf:-0.0:0:4:
+%4lf:-0:1:2:-0x0:
+%*4lf:-0:0:2:
+%4lf:-nan(09A_Zaz):1:4:-nan:
+%*4lf:-nan(09A_Zaz):0:4:
+%4lf:-nan():1:4:-nan:
+%*4lf:-nan():0:4:
+%4lf:nan():0:-1:
+%*4lf:nan():0:-1:
+%4lf:nan(09A_Zaz):0:-1:
+%*4lf:nan(09A_Zaz):0:-1:
+%4lf:0:1:1:0x0:
+%*4lf:0:0:1:
+%4lf:0.0:1:3:0x0:
+%*4lf:0.0:0:3:
+%4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lf:23441674165664682593913711430784253952:1:4:0x1.25p11:
+%*4lf:23441674165664682593913711430784253952:0:4:
+%4lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7:
+%*4lf:023441674165664682593913711430784253952.0:0:4:
+%4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10:
+%*4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7:
+%*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lf:infinity:0:-1:
+%*4lf:infinity:0:-1:
+%4lf:+nan():1:4:nan:
+%*4lf:+nan():0:4:
+%4lf:+nan(09A_Zaz):1:4:nan:
+%*4lf:+nan(09A_Zaz):0:4:
+%4lf:+0:1:2:0x0:
+%*4lf:+0:0:2:
+%4lf:+0.0:1:4:0x0:
+%*4lf:+0.0:0:4:
+%4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*4lf:+23441674165664682593913711430784253952:0:4:
+%4lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*4lf:+023441674165664682593913711430784253952.0:0:4:
+%4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lf:+infinity:1:4:inf:
+%*4lf:+infinity:0:4:
+%311lf::0:-1:
+%*311lf::0:-1:
+%311lf:-infinity:1:9:-inf:
+%*311lf:-infinity:0:9:
+%311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023:
+%*311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*311lf:-023441674165664682593913711430784253952.0:0:42:
+%311lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*311lf:-23441674165664682593913711430784253952:0:39:
+%311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023:
+%*311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lf:-0.0:1:4:-0x0:
+%*311lf:-0.0:0:4:
+%311lf:-0:1:2:-0x0:
+%*311lf:-0:0:2:
+%311lf:-nan(09A_Zaz):1:13:-nan:
+%*311lf:-nan(09A_Zaz):0:13:
+%311lf:-nan():1:6:-nan:
+%*311lf:-nan():0:6:
+%311lf:nan():1:5:nan:
+%*311lf:nan():0:5:
+%311lf:nan(09A_Zaz):1:12:nan:
+%*311lf:nan(09A_Zaz):0:12:
+%311lf:0:1:1:0x0:
+%*311lf:0:0:1:
+%311lf:0.0:1:3:0x0:
+%*311lf:0.0:0:3:
+%311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023:
+%*311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*311lf:23441674165664682593913711430784253952:0:38:
+%311lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*311lf:023441674165664682593913711430784253952.0:0:41:
+%311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lf:infinity:1:8:inf:
+%*311lf:infinity:0:8:
+%311lf:+nan():1:6:nan:
+%*311lf:+nan():0:6:
+%311lf:+nan(09A_Zaz):1:13:nan:
+%*311lf:+nan(09A_Zaz):0:13:
+%311lf:+0:1:2:0x0:
+%*311lf:+0:0:2:
+%311lf:+0.0:1:4:0x0:
+%*311lf:+0.0:0:4:
+%311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023:
+%*311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*311lf:+23441674165664682593913711430784253952:0:39:
+%311lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*311lf:+023441674165664682593913711430784253952.0:0:42:
+%311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lf:+infinity:1:9:inf:
+%*311lf:+infinity:0:9:
+%350lf::0:-1:
+%*350lf::0:-1:
+%350lf:-infinity:1:9:-inf:
+%*350lf:-infinity:0:9:
+%350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*350lf:-023441674165664682593913711430784253952.0:0:42:
+%350lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*350lf:-23441674165664682593913711430784253952:0:39:
+%350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lf:-0.0:1:4:-0x0:
+%*350lf:-0.0:0:4:
+%350lf:-0:1:2:-0x0:
+%*350lf:-0:0:2:
+%350lf:-nan(09A_Zaz):1:13:-nan:
+%*350lf:-nan(09A_Zaz):0:13:
+%350lf:-nan():1:6:-nan:
+%*350lf:-nan():0:6:
+%350lf:nan():1:5:nan:
+%*350lf:nan():0:5:
+%350lf:nan(09A_Zaz):1:12:nan:
+%*350lf:nan(09A_Zaz):0:12:
+%350lf:0:1:1:0x0:
+%*350lf:0:0:1:
+%350lf:0.0:1:3:0x0:
+%*350lf:0.0:0:3:
+%350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%350lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*350lf:23441674165664682593913711430784253952:0:38:
+%350lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*350lf:023441674165664682593913711430784253952.0:0:41:
+%350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%350lf:infinity:1:8:inf:
+%*350lf:infinity:0:8:
+%350lf:+nan():1:6:nan:
+%*350lf:+nan():0:6:
+%350lf:+nan(09A_Zaz):1:13:nan:
+%*350lf:+nan(09A_Zaz):0:13:
+%350lf:+0:1:2:0x0:
+%*350lf:+0:0:2:
+%350lf:+0.0:1:4:0x0:
+%*350lf:+0.0:0:4:
+%350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350lf:+23441674165664682593913711430784253952:0:39:
+%350lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350lf:+023441674165664682593913711430784253952.0:0:42:
+%350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lf:+infinity:1:9:inf:
+%*350lf:+infinity:0:9:
+%3lf: :0:-1:
+%*3lf: :0:-1:
+%3lf: -infinity:0:-1:
+%*3lf: -infinity:0:-1:
+%3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1:
+%*3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4:
+%*3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1:
+%*3lf: -023441674165664682593913711430784253952.0:0:4:
+%3lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4:
+%*3lf: -23441674165664682593913711430784253952:0:4:
+%3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lf: -0.0:1:4:-0x0:
+%*3lf: -0.0:0:4:
+%3lf: -0:1:3:-0x0:
+%*3lf: -0:0:3:
+%3lf: -nan(09A_Zaz):0:-1:
+%*3lf: -nan(09A_Zaz):0:-1:
+%3lf: -nan():0:-1:
+%*3lf: -nan():0:-1:
+%3lf: nan():1:4:nan:
+%*3lf: nan():0:4:
+%3lf: nan(09A_Zaz):1:4:nan:
+%*3lf: nan(09A_Zaz):0:4:
+%3lf: 0:1:2:0x0:
+%*3lf: 0:0:2:
+%3lf: 0.0:1:4:0x0:
+%*3lf: 0.0:0:4:
+%3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*3lf: 23441674165664682593913711430784253952:0:4:
+%3lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*3lf: 023441674165664682593913711430784253952.0:0:4:
+%3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lf: infinity:1:4:inf:
+%*3lf: infinity:0:4:
+%3lf: +nan():0:-1:
+%*3lf: +nan():0:-1:
+%3lf: +nan(09A_Zaz):0:-1:
+%*3lf: +nan(09A_Zaz):0:-1:
+%3lf: +0:1:3:0x0:
+%*3lf: +0:0:3:
+%3lf: +0.0:1:4:0x0:
+%*3lf: +0.0:0:4:
+%3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4:
+%*3lf: +23441674165664682593913711430784253952:0:4:
+%3lf: +023441674165664682593913711430784253952.0:1:4:0x1p1:
+%*3lf: +023441674165664682593913711430784253952.0:0:4:
+%3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4:
+%*3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1:
+%*3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lf: +infinity:0:-1:
+%*3lf: +infinity:0:-1:
+%350lf: :0:-1:
+%*350lf: :0:-1:
+%350lf: -infinity:1:10:-inf:
+%*350lf: -infinity:0:10:
+%350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023:
+%*350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023:
+%*350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124:
+%*350lf: -023441674165664682593913711430784253952.0:0:43:
+%350lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124:
+%*350lf: -23441674165664682593913711430784253952:0:40:
+%350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022:
+%*350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350lf: -0.0:1:5:-0x0:
+%*350lf: -0.0:0:5:
+%350lf: -0:1:3:-0x0:
+%*350lf: -0:0:3:
+%350lf: -nan(09A_Zaz):1:14:-nan:
+%*350lf: -nan(09A_Zaz):0:14:
+%350lf: -nan():1:7:-nan:
+%*350lf: -nan():0:7:
+%350lf: nan():1:6:nan:
+%*350lf: nan():0:6:
+%350lf: nan(09A_Zaz):1:13:nan:
+%*350lf: nan(09A_Zaz):0:13:
+%350lf: 0:1:2:0x0:
+%*350lf: 0:0:2:
+%350lf: 0.0:1:4:0x0:
+%*350lf: 0.0:0:4:
+%350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350lf: 23441674165664682593913711430784253952:0:39:
+%350lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350lf: 023441674165664682593913711430784253952.0:0:42:
+%350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lf: infinity:1:9:inf:
+%*350lf: infinity:0:9:
+%350lf: +nan():1:7:nan:
+%*350lf: +nan():0:7:
+%350lf: +nan(09A_Zaz):1:14:nan:
+%*350lf: +nan(09A_Zaz):0:14:
+%350lf: +0:1:3:0x0:
+%*350lf: +0:0:3:
+%350lf: +0.0:1:5:0x0:
+%*350lf: +0.0:0:5:
+%350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022:
+%*350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124:
+%*350lf: +23441674165664682593913711430784253952:0:40:
+%350lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124:
+%*350lf: +023441674165664682593913711430784253952.0:0:43:
+%350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023:
+%*350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023:
+%*350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350lf: +infinity:1:10:inf:
+%*350lf: +infinity:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input
new file mode 100644
index 0000000..6168884
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input
@@ -0,0 +1,558 @@
+%lF::0:-1:
+%*lF::0:-1:
+%lF:-INFINITY:1:9:-inf:
+%*lF:-INFINITY:0:9:
+%lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*lF:-023441674165664682593913711430784253952.0:0:42:
+%lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*lF:-23441674165664682593913711430784253952:0:39:
+%lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%lF:-0.0:1:4:-0x0:
+%*lF:-0.0:0:4:
+%lF:-0:1:2:-0x0:
+%*lF:-0:0:2:
+%lF:-NAN(09A_Zaz):1:13:-nan:
+%*lF:-NAN(09A_Zaz):0:13:
+%lF:-NAN():1:6:-nan:
+%*lF:-NAN():0:6:
+%lF:NAN():1:5:nan:
+%*lF:NAN():0:5:
+%lF:NAN(09A_Zaz):1:12:nan:
+%*lF:NAN(09A_Zaz):0:12:
+%lF:0:1:1:0x0:
+%*lF:0:0:1:
+%lF:0.0:1:3:0x0:
+%*lF:0.0:0:3:
+%lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*lF:23441674165664682593913711430784253952:0:38:
+%lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*lF:023441674165664682593913711430784253952.0:0:41:
+%lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%lF:INFINITY:1:8:inf:
+%*lF:INFINITY:0:8:
+%lF:+NAN():1:6:nan:
+%*lF:+NAN():0:6:
+%lF:+NAN(09A_Zaz):1:13:nan:
+%*lF:+NAN(09A_Zaz):0:13:
+%lF:+0:1:2:0x0:
+%*lF:+0:0:2:
+%lF:+0.0:1:4:0x0:
+%*lF:+0.0:0:4:
+%lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*lF:+23441674165664682593913711430784253952:0:39:
+%lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*lF:+023441674165664682593913711430784253952.0:0:42:
+%lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%lF:+INFINITY:1:9:inf:
+%*lF:+INFINITY:0:9:
+%1lF::0:-1:
+%*1lF::0:-1:
+%1lF:-INFINITY:0:-1:
+%*1lF:-INFINITY:0:-1:
+%1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1lF:-023441674165664682593913711430784253952.0:0:-1:
+%*1lF:-023441674165664682593913711430784253952.0:0:-1:
+%1lF:-23441674165664682593913711430784253952:0:-1:
+%*1lF:-23441674165664682593913711430784253952:0:-1:
+%1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1lF:-0.0:0:-1:
+%*1lF:-0.0:0:-1:
+%1lF:-0:0:-1:
+%*1lF:-0:0:-1:
+%1lF:-NAN(09A_Zaz):0:-1:
+%*1lF:-NAN(09A_Zaz):0:-1:
+%1lF:-NAN():0:-1:
+%*1lF:-NAN():0:-1:
+%1lF:NAN():0:-1:
+%*1lF:NAN():0:-1:
+%1lF:NAN(09A_Zaz):0:-1:
+%*1lF:NAN(09A_Zaz):0:-1:
+%1lF:0:1:1:0x0:
+%*1lF:0:0:1:
+%1lF:0.0:1:1:0x0:
+%*1lF:0.0:0:1:
+%1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0:
+%*1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1:
+%1lF:23441674165664682593913711430784253952:1:1:0x1p1:
+%*1lF:23441674165664682593913711430784253952:0:1:
+%1lF:023441674165664682593913711430784253952.0:1:1:0x0:
+%*1lF:023441674165664682593913711430784253952.0:0:1:
+%1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1:
+%*1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1:
+%1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0:
+%*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1:
+%1lF:INFINITY:0:-1:
+%*1lF:INFINITY:0:-1:
+%1lF:+NAN():0:-1:
+%*1lF:+NAN():0:-1:
+%1lF:+NAN(09A_Zaz):0:-1:
+%*1lF:+NAN(09A_Zaz):0:-1:
+%1lF:+0:0:-1:
+%*1lF:+0:0:-1:
+%1lF:+0.0:0:-1:
+%*1lF:+0.0:0:-1:
+%1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1lF:+23441674165664682593913711430784253952:0:-1:
+%*1lF:+23441674165664682593913711430784253952:0:-1:
+%1lF:+023441674165664682593913711430784253952.0:0:-1:
+%*1lF:+023441674165664682593913711430784253952.0:0:-1:
+%1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1lF:+INFINITY:0:-1:
+%*1lF:+INFINITY:0:-1:
+%2lF::0:-1:
+%*2lF::0:-1:
+%2lF:-INFINITY:0:-1:
+%*2lF:-INFINITY:0:-1:
+%2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0:
+%*2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1:
+%*2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lF:-023441674165664682593913711430784253952.0:1:2:-0x0:
+%*2lF:-023441674165664682593913711430784253952.0:0:2:
+%2lF:-23441674165664682593913711430784253952:1:2:-0x1p1:
+%*2lF:-23441674165664682593913711430784253952:0:2:
+%2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0:
+%*2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lF:-0.0:1:2:-0x0:
+%*2lF:-0.0:0:2:
+%2lF:-0:1:2:-0x0:
+%*2lF:-0:0:2:
+%2lF:-NAN(09A_Zaz):0:-1:
+%*2lF:-NAN(09A_Zaz):0:-1:
+%2lF:-NAN():0:-1:
+%*2lF:-NAN():0:-1:
+%2lF:NAN():0:-1:
+%*2lF:NAN():0:-1:
+%2lF:NAN(09A_Zaz):0:-1:
+%*2lF:NAN(09A_Zaz):0:-1:
+%2lF:0:1:1:0x0:
+%*2lF:0:0:1:
+%2lF:0.0:1:2:0x0:
+%*2lF:0.0:0:2:
+%2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lF:23441674165664682593913711430784253952:1:2:0x1.7p+4:
+%*2lF:23441674165664682593913711430784253952:0:2:
+%2lF:023441674165664682593913711430784253952.0:1:2:0x1p1:
+%*2lF:023441674165664682593913711430784253952.0:0:2:
+%2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4:
+%*2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1:
+%*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lF:INFINITY:0:-1:
+%*2lF:INFINITY:0:-1:
+%2lF:+NAN():0:-1:
+%*2lF:+NAN():0:-1:
+%2lF:+NAN(09A_Zaz):0:-1:
+%*2lF:+NAN(09A_Zaz):0:-1:
+%2lF:+0:1:2:0x0:
+%*2lF:+0:0:2:
+%2lF:+0.0:1:2:0x0:
+%*2lF:+0.0:0:2:
+%2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2lF:+23441674165664682593913711430784253952:1:2:0x1p1:
+%*2lF:+23441674165664682593913711430784253952:0:2:
+%2lF:+023441674165664682593913711430784253952.0:1:2:0x0:
+%*2lF:+023441674165664682593913711430784253952.0:0:2:
+%2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1:
+%*2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0:
+%*2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2lF:+INFINITY:0:-1:
+%*2lF:+INFINITY:0:-1:
+%3lF::0:-1:
+%*3lF::0:-1:
+%3lF:-INFINITY:0:-1:
+%*3lF:-INFINITY:0:-1:
+%3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1:
+%*3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4:
+%*3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lF:-023441674165664682593913711430784253952.0:1:3:-0x1p1:
+%*3lF:-023441674165664682593913711430784253952.0:0:3:
+%3lF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4:
+%*3lF:-23441674165664682593913711430784253952:0:3:
+%3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0:
+%*3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lF:-0.0:1:3:-0x0:
+%*3lF:-0.0:0:3:
+%3lF:-0:1:2:-0x0:
+%*3lF:-0:0:2:
+%3lF:-NAN(09A_Zaz):0:-1:
+%*3lF:-NAN(09A_Zaz):0:-1:
+%3lF:-NAN():0:-1:
+%*3lF:-NAN():0:-1:
+%3lF:NAN():1:3:nan:
+%*3lF:NAN():0:3:
+%3lF:NAN(09A_Zaz):1:3:nan:
+%*3lF:NAN(09A_Zaz):0:3:
+%3lF:0:1:1:0x0:
+%*3lF:0:0:1:
+%3lF:0.0:1:3:0x0:
+%*3lF:0.0:0:3:
+%3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lF:23441674165664682593913711430784253952:1:3:0x1.d4p+7:
+%*3lF:23441674165664682593913711430784253952:0:3:
+%3lF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4:
+%*3lF:023441674165664682593913711430784253952.0:0:3:
+%3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7:
+%*3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4:
+%*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lF:INFINITY:1:3:inf:
+%*3lF:INFINITY:0:3:
+%3lF:+NAN():0:-1:
+%*3lF:+NAN():0:-1:
+%3lF:+NAN(09A_Zaz):0:-1:
+%*3lF:+NAN(09A_Zaz):0:-1:
+%3lF:+0:1:2:0x0:
+%*3lF:+0:0:2:
+%3lF:+0.0:1:3:0x0:
+%*3lF:+0.0:0:3:
+%3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3lF:+23441674165664682593913711430784253952:1:3:0x1.7p+4:
+%*3lF:+23441674165664682593913711430784253952:0:3:
+%3lF:+023441674165664682593913711430784253952.0:1:3:0x1p1:
+%*3lF:+023441674165664682593913711430784253952.0:0:3:
+%3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4:
+%*3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1:
+%*3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3lF:+INFINITY:0:-1:
+%*3lF:+INFINITY:0:-1:
+%4lF::0:-1:
+%*4lF::0:-1:
+%4lF:-INFINITY:1:4:-inf:
+%*4lF:-INFINITY:0:4:
+%4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4:
+%*4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7:
+%*4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4:
+%*4lF:-023441674165664682593913711430784253952.0:0:4:
+%4lF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7:
+%*4lF:-23441674165664682593913711430784253952:0:4:
+%4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lF:-0.0:1:4:-0x0:
+%*4lF:-0.0:0:4:
+%4lF:-0:1:2:-0x0:
+%*4lF:-0:0:2:
+%4lF:-NAN(09A_Zaz):1:4:-nan:
+%*4lF:-NAN(09A_Zaz):0:4:
+%4lF:-NAN():1:4:-nan:
+%*4lF:-NAN():0:4:
+%4lF:NAN():0:-1:
+%*4lF:NAN():0:-1:
+%4lF:NAN(09A_Zaz):0:-1:
+%*4lF:NAN(09A_Zaz):0:-1:
+%4lF:0:1:1:0x0:
+%*4lF:0:0:1:
+%4lF:0.0:1:3:0x0:
+%*4lF:0.0:0:3:
+%4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lF:23441674165664682593913711430784253952:1:4:0x1.25p11:
+%*4lF:23441674165664682593913711430784253952:0:4:
+%4lF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7:
+%*4lF:023441674165664682593913711430784253952.0:0:4:
+%4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10:
+%*4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7:
+%*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lF:INFINITY:0:-1:
+%*4lF:INFINITY:0:-1:
+%4lF:+NAN():1:4:nan:
+%*4lF:+NAN():0:4:
+%4lF:+NAN(09A_Zaz):1:4:nan:
+%*4lF:+NAN(09A_Zaz):0:4:
+%4lF:+0:1:2:0x0:
+%*4lF:+0:0:2:
+%4lF:+0.0:1:4:0x0:
+%*4lF:+0.0:0:4:
+%4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4lF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*4lF:+23441674165664682593913711430784253952:0:4:
+%4lF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*4lF:+023441674165664682593913711430784253952.0:0:4:
+%4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4lF:+INFINITY:1:4:inf:
+%*4lF:+INFINITY:0:4:
+%311lF::0:-1:
+%*311lF::0:-1:
+%311lF:-INFINITY:1:9:-inf:
+%*311lF:-INFINITY:0:9:
+%311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023:
+%*311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*311lF:-023441674165664682593913711430784253952.0:0:42:
+%311lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*311lF:-23441674165664682593913711430784253952:0:39:
+%311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023:
+%*311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lF:-0.0:1:4:-0x0:
+%*311lF:-0.0:0:4:
+%311lF:-0:1:2:-0x0:
+%*311lF:-0:0:2:
+%311lF:-NAN(09A_Zaz):1:13:-nan:
+%*311lF:-NAN(09A_Zaz):0:13:
+%311lF:-NAN():1:6:-nan:
+%*311lF:-NAN():0:6:
+%311lF:NAN():1:5:nan:
+%*311lF:NAN():0:5:
+%311lF:NAN(09A_Zaz):1:12:nan:
+%*311lF:NAN(09A_Zaz):0:12:
+%311lF:0:1:1:0x0:
+%*311lF:0:0:1:
+%311lF:0.0:1:3:0x0:
+%*311lF:0.0:0:3:
+%311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023:
+%*311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*311lF:23441674165664682593913711430784253952:0:38:
+%311lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*311lF:023441674165664682593913711430784253952.0:0:41:
+%311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lF:INFINITY:1:8:inf:
+%*311lF:INFINITY:0:8:
+%311lF:+NAN():1:6:nan:
+%*311lF:+NAN():0:6:
+%311lF:+NAN(09A_Zaz):1:13:nan:
+%*311lF:+NAN(09A_Zaz):0:13:
+%311lF:+0:1:2:0x0:
+%*311lF:+0:0:2:
+%311lF:+0.0:1:4:0x0:
+%*311lF:+0.0:0:4:
+%311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023:
+%*311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*311lF:+23441674165664682593913711430784253952:0:39:
+%311lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*311lF:+023441674165664682593913711430784253952.0:0:42:
+%311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311lF:+INFINITY:1:9:inf:
+%*311lF:+INFINITY:0:9:
+%350lF::0:-1:
+%*350lF::0:-1:
+%350lF:-INFINITY:1:9:-inf:
+%*350lF:-INFINITY:0:9:
+%350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*350lF:-023441674165664682593913711430784253952.0:0:42:
+%350lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*350lF:-23441674165664682593913711430784253952:0:39:
+%350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lF:-0.0:1:4:-0x0:
+%*350lF:-0.0:0:4:
+%350lF:-0:1:2:-0x0:
+%*350lF:-0:0:2:
+%350lF:-NAN(09A_Zaz):1:13:-nan:
+%*350lF:-NAN(09A_Zaz):0:13:
+%350lF:-NAN():1:6:-nan:
+%*350lF:-NAN():0:6:
+%350lF:NAN():1:5:nan:
+%*350lF:NAN():0:5:
+%350lF:NAN(09A_Zaz):1:12:nan:
+%*350lF:NAN(09A_Zaz):0:12:
+%350lF:0:1:1:0x0:
+%*350lF:0:0:1:
+%350lF:0.0:1:3:0x0:
+%*350lF:0.0:0:3:
+%350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%350lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*350lF:23441674165664682593913711430784253952:0:38:
+%350lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*350lF:023441674165664682593913711430784253952.0:0:41:
+%350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%350lF:INFINITY:1:8:inf:
+%*350lF:INFINITY:0:8:
+%350lF:+NAN():1:6:nan:
+%*350lF:+NAN():0:6:
+%350lF:+NAN(09A_Zaz):1:13:nan:
+%*350lF:+NAN(09A_Zaz):0:13:
+%350lF:+0:1:2:0x0:
+%*350lF:+0:0:2:
+%350lF:+0.0:1:4:0x0:
+%*350lF:+0.0:0:4:
+%350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350lF:+23441674165664682593913711430784253952:0:39:
+%350lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350lF:+023441674165664682593913711430784253952.0:0:42:
+%350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lF:+INFINITY:1:9:inf:
+%*350lF:+INFINITY:0:9:
+%3lF: :0:-1:
+%*3lF: :0:-1:
+%3lF: -INFINITY:0:-1:
+%*3lF: -INFINITY:0:-1:
+%3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1:
+%*3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4:
+%*3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lF: -023441674165664682593913711430784253952.0:1:4:-0x1p1:
+%*3lF: -023441674165664682593913711430784253952.0:0:4:
+%3lF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4:
+%*3lF: -23441674165664682593913711430784253952:0:4:
+%3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lF: -0.0:1:4:-0x0:
+%*3lF: -0.0:0:4:
+%3lF: -0:1:3:-0x0:
+%*3lF: -0:0:3:
+%3lF: -NAN(09A_Zaz):0:-1:
+%*3lF: -NAN(09A_Zaz):0:-1:
+%3lF: -NAN():0:-1:
+%*3lF: -NAN():0:-1:
+%3lF: NAN():1:4:nan:
+%*3lF: NAN():0:4:
+%3lF: NAN(09A_Zaz):1:4:nan:
+%*3lF: NAN(09A_Zaz):0:4:
+%3lF: 0:1:2:0x0:
+%*3lF: 0:0:2:
+%3lF: 0.0:1:4:0x0:
+%*3lF: 0.0:0:4:
+%3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*3lF: 23441674165664682593913711430784253952:0:4:
+%3lF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*3lF: 023441674165664682593913711430784253952.0:0:4:
+%3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lF: INFINITY:1:4:inf:
+%*3lF: INFINITY:0:4:
+%3lF: +NAN():0:-1:
+%*3lF: +NAN():0:-1:
+%3lF: +NAN(09A_Zaz):0:-1:
+%*3lF: +NAN(09A_Zaz):0:-1:
+%3lF: +0:1:3:0x0:
+%*3lF: +0:0:3:
+%3lF: +0.0:1:4:0x0:
+%*3lF: +0.0:0:4:
+%3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3lF: +23441674165664682593913711430784253952:1:4:0x1.7p+4:
+%*3lF: +23441674165664682593913711430784253952:0:4:
+%3lF: +023441674165664682593913711430784253952.0:1:4:0x1p1:
+%*3lF: +023441674165664682593913711430784253952.0:0:4:
+%3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4:
+%*3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1:
+%*3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3lF: +INFINITY:0:-1:
+%*3lF: +INFINITY:0:-1:
+%350lF: :0:-1:
+%*350lF: :0:-1:
+%350lF: -INFINITY:1:10:-inf:
+%*350lF: -INFINITY:0:10:
+%350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023:
+%*350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023:
+%*350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350lF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124:
+%*350lF: -023441674165664682593913711430784253952.0:0:43:
+%350lF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124:
+%*350lF: -23441674165664682593913711430784253952:0:40:
+%350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022:
+%*350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350lF: -0.0:1:5:-0x0:
+%*350lF: -0.0:0:5:
+%350lF: -0:1:3:-0x0:
+%*350lF: -0:0:3:
+%350lF: -NAN(09A_Zaz):1:14:-nan:
+%*350lF: -NAN(09A_Zaz):0:14:
+%350lF: -NAN():1:7:-nan:
+%*350lF: -NAN():0:7:
+%350lF: NAN():1:6:nan:
+%*350lF: NAN():0:6:
+%350lF: NAN(09A_Zaz):1:13:nan:
+%*350lF: NAN(09A_Zaz):0:13:
+%350lF: 0:1:2:0x0:
+%*350lF: 0:0:2:
+%350lF: 0.0:1:4:0x0:
+%*350lF: 0.0:0:4:
+%350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350lF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350lF: 23441674165664682593913711430784253952:0:39:
+%350lF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350lF: 023441674165664682593913711430784253952.0:0:42:
+%350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350lF: INFINITY:1:9:inf:
+%*350lF: INFINITY:0:9:
+%350lF: +NAN():1:7:nan:
+%*350lF: +NAN():0:7:
+%350lF: +NAN(09A_Zaz):1:14:nan:
+%*350lF: +NAN(09A_Zaz):0:14:
+%350lF: +0:1:3:0x0:
+%*350lF: +0:0:3:
+%350lF: +0.0:1:5:0x0:
+%*350lF: +0.0:0:5:
+%350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022:
+%*350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350lF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124:
+%*350lF: +23441674165664682593913711430784253952:0:40:
+%350lF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124:
+%*350lF: +023441674165664682593913711430784253952.0:0:43:
+%350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023:
+%*350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023:
+%*350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350lF: +INFINITY:1:10:inf:
+%*350lF: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input
new file mode 100644
index 0000000..553172f
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input
@@ -0,0 +1,682 @@
+%lg::0:-1:
+%*lg::0:-1:
+%lg:-infinity:1:9:-inf:
+%*lg:-infinity:0:9:
+%lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*lg:-0xf.ffffffffffff8p+1020:0:24:
+%lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*lg:-0x7.ffffffffffffcp1021:0:23:
+%lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lg:-0x2.3456789abcdfep+123:0:23:
+%lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lg:-0x2.3456789abcdfep0123:0:23:
+%lg:-0x8p-1025:1:10:-0x1p-1022:
+%*lg:-0x8p-1025:0:10:
+%lg:-0x0p+0:1:7:-0x0:
+%*lg:-0x0p+0:0:7:
+%lg:-0x0p0:1:6:-0x0:
+%*lg:-0x0p0:0:6:
+%lg:-nan(09A_Zaz):1:13:-nan:
+%*lg:-nan(09A_Zaz):0:13:
+%lg:-nan():1:6:-nan:
+%*lg:-nan():0:6:
+%lg:nan():1:5:nan:
+%*lg:nan():0:5:
+%lg:nan(09A_Zaz):1:12:nan:
+%*lg:nan(09A_Zaz):0:12:
+%lg:0x0p0:1:5:0x0:
+%*lg:0x0p0:0:5:
+%lg:0x0p+0:1:6:0x0:
+%*lg:0x0p+0:0:6:
+%lg:0x8p-1025:1:9:0x1p-1022:
+%*lg:0x8p-1025:0:9:
+%lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lg:0x2.3456789abcdfep0123:0:22:
+%lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lg:0x2.3456789abcdfep+123:0:22:
+%lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*lg:0x7.ffffffffffffcp1021:0:22:
+%lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*lg:0xf.ffffffffffff8p+1020:0:23:
+%lg:infinity:1:8:inf:
+%*lg:infinity:0:8:
+%lg:+nan():1:6:nan:
+%*lg:+nan():0:6:
+%lg:+nan(09A_Zaz):1:13:nan:
+%*lg:+nan(09A_Zaz):0:13:
+%lg:+0x0p0:1:6:0x0:
+%*lg:+0x0p0:0:6:
+%lg:+0x0p+0:1:7:0x0:
+%*lg:+0x0p+0:0:7:
+%lg:+0x8p-1025:1:10:0x1p-1022:
+%*lg:+0x8p-1025:0:10:
+%lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lg:+0x2.3456789abcdfep0123:0:23:
+%lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lg:+0x2.3456789abcdfep+123:0:23:
+%lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*lg:+0x7.ffffffffffffcp1021:0:23:
+%lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*lg:+0xf.ffffffffffff8p+1020:0:24:
+%lg:+infinity:1:9:inf:
+%*lg:+infinity:0:9:
+%1lg::0:-1:
+%*1lg::0:-1:
+%1lg:-infinity:0:-1:
+%*1lg:-infinity:0:-1:
+%1lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*1lg:-0xf.ffffffffffff8p+1020:0:-1:
+%1lg:-0x7.ffffffffffffcp1021:0:-1:
+%*1lg:-0x7.ffffffffffffcp1021:0:-1:
+%1lg:-0x2.3456789abcdfep+123:0:-1:
+%*1lg:-0x2.3456789abcdfep+123:0:-1:
+%1lg:-0x2.3456789abcdfep0123:0:-1:
+%*1lg:-0x2.3456789abcdfep0123:0:-1:
+%1lg:-0x8p-1025:0:-1:
+%*1lg:-0x8p-1025:0:-1:
+%1lg:-0x0p+0:0:-1:
+%*1lg:-0x0p+0:0:-1:
+%1lg:-0x0p0:0:-1:
+%*1lg:-0x0p0:0:-1:
+%1lg:-nan(09A_Zaz):0:-1:
+%*1lg:-nan(09A_Zaz):0:-1:
+%1lg:-nan():0:-1:
+%*1lg:-nan():0:-1:
+%1lg:nan():0:-1:
+%*1lg:nan():0:-1:
+%1lg:nan(09A_Zaz):0:-1:
+%*1lg:nan(09A_Zaz):0:-1:
+%1lg:0x0p0:1:1:0x0:
+%*1lg:0x0p0:0:1:
+%1lg:0x0p+0:1:1:0x0:
+%*1lg:0x0p+0:0:1:
+%1lg:0x8p-1025:1:1:0x0:
+%*1lg:0x8p-1025:0:1:
+%1lg:0x2.3456789abcdfep0123:1:1:0x0:
+%*1lg:0x2.3456789abcdfep0123:0:1:
+%1lg:0x2.3456789abcdfep+123:1:1:0x0:
+%*1lg:0x2.3456789abcdfep+123:0:1:
+%1lg:0x7.ffffffffffffcp1021:1:1:0x0:
+%*1lg:0x7.ffffffffffffcp1021:0:1:
+%1lg:0xf.ffffffffffff8p+1020:1:1:0x0:
+%*1lg:0xf.ffffffffffff8p+1020:0:1:
+%1lg:infinity:0:-1:
+%*1lg:infinity:0:-1:
+%1lg:+nan():0:-1:
+%*1lg:+nan():0:-1:
+%1lg:+nan(09A_Zaz):0:-1:
+%*1lg:+nan(09A_Zaz):0:-1:
+%1lg:+0x0p0:0:-1:
+%*1lg:+0x0p0:0:-1:
+%1lg:+0x0p+0:0:-1:
+%*1lg:+0x0p+0:0:-1:
+%1lg:+0x8p-1025:0:-1:
+%*1lg:+0x8p-1025:0:-1:
+%1lg:+0x2.3456789abcdfep0123:0:-1:
+%*1lg:+0x2.3456789abcdfep0123:0:-1:
+%1lg:+0x2.3456789abcdfep+123:0:-1:
+%*1lg:+0x2.3456789abcdfep+123:0:-1:
+%1lg:+0x7.ffffffffffffcp1021:0:-1:
+%*1lg:+0x7.ffffffffffffcp1021:0:-1:
+%1lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*1lg:+0xf.ffffffffffff8p+1020:0:-1:
+%1lg:+infinity:0:-1:
+%*1lg:+infinity:0:-1:
+%2lg::0:-1:
+%*2lg::0:-1:
+%2lg:-infinity:0:-1:
+%*2lg:-infinity:0:-1:
+%2lg:-0xf.ffffffffffff8p+1020:1:2:-0x0:
+%*2lg:-0xf.ffffffffffff8p+1020:0:2:
+%2lg:-0x7.ffffffffffffcp1021:1:2:-0x0:
+%*2lg:-0x7.ffffffffffffcp1021:0:2:
+%2lg:-0x2.3456789abcdfep+123:1:2:-0x0:
+%*2lg:-0x2.3456789abcdfep+123:0:2:
+%2lg:-0x2.3456789abcdfep0123:1:2:-0x0:
+%*2lg:-0x2.3456789abcdfep0123:0:2:
+%2lg:-0x8p-1025:1:2:-0x0:
+%*2lg:-0x8p-1025:0:2:
+%2lg:-0x0p+0:1:2:-0x0:
+%*2lg:-0x0p+0:0:2:
+%2lg:-0x0p0:1:2:-0x0:
+%*2lg:-0x0p0:0:2:
+%2lg:-nan(09A_Zaz):0:-1:
+%*2lg:-nan(09A_Zaz):0:-1:
+%2lg:-nan():0:-1:
+%*2lg:-nan():0:-1:
+%2lg:nan():0:-1:
+%*2lg:nan():0:-1:
+%2lg:nan(09A_Zaz):0:-1:
+%*2lg:nan(09A_Zaz):0:-1:
+%2lg:0x0p0:0:-1:
+%*2lg:0x0p0:0:-1:
+%2lg:0x0p+0:0:-1:
+%*2lg:0x0p+0:0:-1:
+%2lg:0x8p-1025:0:-1:
+%*2lg:0x8p-1025:0:-1:
+%2lg:0x2.3456789abcdfep0123:0:-1:
+%*2lg:0x2.3456789abcdfep0123:0:-1:
+%2lg:0x2.3456789abcdfep+123:0:-1:
+%*2lg:0x2.3456789abcdfep+123:0:-1:
+%2lg:0x7.ffffffffffffcp1021:0:-1:
+%*2lg:0x7.ffffffffffffcp1021:0:-1:
+%2lg:0xf.ffffffffffff8p+1020:0:-1:
+%*2lg:0xf.ffffffffffff8p+1020:0:-1:
+%2lg:infinity:0:-1:
+%*2lg:infinity:0:-1:
+%2lg:+nan():0:-1:
+%*2lg:+nan():0:-1:
+%2lg:+nan(09A_Zaz):0:-1:
+%*2lg:+nan(09A_Zaz):0:-1:
+%2lg:+0x0p0:1:2:0x0:
+%*2lg:+0x0p0:0:2:
+%2lg:+0x0p+0:1:2:0x0:
+%*2lg:+0x0p+0:0:2:
+%2lg:+0x8p-1025:1:2:0x0:
+%*2lg:+0x8p-1025:0:2:
+%2lg:+0x2.3456789abcdfep0123:1:2:0x0:
+%*2lg:+0x2.3456789abcdfep0123:0:2:
+%2lg:+0x2.3456789abcdfep+123:1:2:0x0:
+%*2lg:+0x2.3456789abcdfep+123:0:2:
+%2lg:+0x7.ffffffffffffcp1021:1:2:0x0:
+%*2lg:+0x7.ffffffffffffcp1021:0:2:
+%2lg:+0xf.ffffffffffff8p+1020:1:2:0x0:
+%*2lg:+0xf.ffffffffffff8p+1020:0:2:
+%2lg:+infinity:0:-1:
+%*2lg:+infinity:0:-1:
+%3lg::0:-1:
+%*3lg::0:-1:
+%3lg:-infinity:0:-1:
+%*3lg:-infinity:0:-1:
+%3lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*3lg:-0xf.ffffffffffff8p+1020:0:-1:
+%3lg:-0x7.ffffffffffffcp1021:0:-1:
+%*3lg:-0x7.ffffffffffffcp1021:0:-1:
+%3lg:-0x2.3456789abcdfep+123:0:-1:
+%*3lg:-0x2.3456789abcdfep+123:0:-1:
+%3lg:-0x2.3456789abcdfep0123:0:-1:
+%*3lg:-0x2.3456789abcdfep0123:0:-1:
+%3lg:-0x8p-1025:0:-1:
+%*3lg:-0x8p-1025:0:-1:
+%3lg:-0x0p+0:0:-1:
+%*3lg:-0x0p+0:0:-1:
+%3lg:-0x0p0:0:-1:
+%*3lg:-0x0p0:0:-1:
+%3lg:-nan(09A_Zaz):0:-1:
+%*3lg:-nan(09A_Zaz):0:-1:
+%3lg:-nan():0:-1:
+%*3lg:-nan():0:-1:
+%3lg:nan():1:3:nan:
+%*3lg:nan():0:3:
+%3lg:nan(09A_Zaz):1:3:nan:
+%*3lg:nan(09A_Zaz):0:3:
+%3lg:0x0p0:1:3:0x0:
+%*3lg:0x0p0:0:3:
+%3lg:0x0p+0:1:3:0x0:
+%*3lg:0x0p+0:0:3:
+%3lg:0x8p-1025:1:3:0x1p3:
+%*3lg:0x8p-1025:0:3:
+%3lg:0x2.3456789abcdfep0123:1:3:0x1p1:
+%*3lg:0x2.3456789abcdfep0123:0:3:
+%3lg:0x2.3456789abcdfep+123:1:3:0x1p1:
+%*3lg:0x2.3456789abcdfep+123:0:3:
+%3lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2:
+%*3lg:0x7.ffffffffffffcp1021:0:3:
+%3lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3:
+%*3lg:0xf.ffffffffffff8p+1020:0:3:
+%3lg:infinity:1:3:inf:
+%*3lg:infinity:0:3:
+%3lg:+nan():0:-1:
+%*3lg:+nan():0:-1:
+%3lg:+nan(09A_Zaz):0:-1:
+%*3lg:+nan(09A_Zaz):0:-1:
+%3lg:+0x0p0:0:-1:
+%*3lg:+0x0p0:0:-1:
+%3lg:+0x0p+0:0:-1:
+%*3lg:+0x0p+0:0:-1:
+%3lg:+0x8p-1025:0:-1:
+%*3lg:+0x8p-1025:0:-1:
+%3lg:+0x2.3456789abcdfep0123:0:-1:
+%*3lg:+0x2.3456789abcdfep0123:0:-1:
+%3lg:+0x2.3456789abcdfep+123:0:-1:
+%*3lg:+0x2.3456789abcdfep+123:0:-1:
+%3lg:+0x7.ffffffffffffcp1021:0:-1:
+%*3lg:+0x7.ffffffffffffcp1021:0:-1:
+%3lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*3lg:+0xf.ffffffffffff8p+1020:0:-1:
+%3lg:+infinity:0:-1:
+%*3lg:+infinity:0:-1:
+%4lg::0:-1:
+%*4lg::0:-1:
+%4lg:-infinity:1:4:-inf:
+%*4lg:-infinity:0:4:
+%4lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3:
+%*4lg:-0xf.ffffffffffff8p+1020:0:4:
+%4lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2:
+%*4lg:-0x7.ffffffffffffcp1021:0:4:
+%4lg:-0x2.3456789abcdfep+123:1:4:-0x1p1:
+%*4lg:-0x2.3456789abcdfep+123:0:4:
+%4lg:-0x2.3456789abcdfep0123:1:4:-0x1p1:
+%*4lg:-0x2.3456789abcdfep0123:0:4:
+%4lg:-0x8p-1025:1:4:-0x1p3:
+%*4lg:-0x8p-1025:0:4:
+%4lg:-0x0p+0:1:4:-0x0:
+%*4lg:-0x0p+0:0:4:
+%4lg:-0x0p0:1:4:-0x0:
+%*4lg:-0x0p0:0:4:
+%4lg:-nan(09A_Zaz):1:4:-nan:
+%*4lg:-nan(09A_Zaz):0:4:
+%4lg:-nan():1:4:-nan:
+%*4lg:-nan():0:4:
+%4lg:nan():0:-1:
+%*4lg:nan():0:-1:
+%4lg:nan(09A_Zaz):0:-1:
+%*4lg:nan(09A_Zaz):0:-1:
+%4lg:0x0p0:0:-1:
+%*4lg:0x0p0:0:-1:
+%4lg:0x0p+0:0:-1:
+%*4lg:0x0p+0:0:-1:
+%4lg:0x8p-1025:0:-1:
+%*4lg:0x8p-1025:0:-1:
+%4lg:0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4lg:0x2.3456789abcdfep0123:0:4:
+%4lg:0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4lg:0x2.3456789abcdfep+123:0:4:
+%4lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4lg:0x7.ffffffffffffcp1021:0:4:
+%4lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4lg:0xf.ffffffffffff8p+1020:0:4:
+%4lg:infinity:0:-1:
+%*4lg:infinity:0:-1:
+%4lg:+nan():1:4:nan:
+%*4lg:+nan():0:4:
+%4lg:+nan(09A_Zaz):1:4:nan:
+%*4lg:+nan(09A_Zaz):0:4:
+%4lg:+0x0p0:1:4:0x0:
+%*4lg:+0x0p0:0:4:
+%4lg:+0x0p+0:1:4:0x0:
+%*4lg:+0x0p+0:0:4:
+%4lg:+0x8p-1025:1:4:0x1p3:
+%*4lg:+0x8p-1025:0:4:
+%4lg:+0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4lg:+0x2.3456789abcdfep0123:0:4:
+%4lg:+0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4lg:+0x2.3456789abcdfep+123:0:4:
+%4lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4lg:+0x7.ffffffffffffcp1021:0:4:
+%4lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4lg:+0xf.ffffffffffff8p+1020:0:4:
+%4lg:+infinity:1:4:inf:
+%*4lg:+infinity:0:4:
+%5lg::0:-1:
+%*5lg::0:-1:
+%5lg:-infinity:0:-1:
+%*5lg:-infinity:0:-1:
+%5lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3:
+%*5lg:-0xf.ffffffffffff8p+1020:0:5:
+%5lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2:
+%*5lg:-0x7.ffffffffffffcp1021:0:5:
+%5lg:-0x2.3456789abcdfep+123:1:5:-0x1p1:
+%*5lg:-0x2.3456789abcdfep+123:0:5:
+%5lg:-0x2.3456789abcdfep0123:1:5:-0x1p1:
+%*5lg:-0x2.3456789abcdfep0123:0:5:
+%5lg:-0x8p-1025:0:-1:
+%*5lg:-0x8p-1025:0:-1:
+%5lg:-0x0p+0:0:-1:
+%*5lg:-0x0p+0:0:-1:
+%5lg:-0x0p0:0:-1:
+%*5lg:-0x0p0:0:-1:
+%5lg:-nan(09A_Zaz):0:-1:
+%*5lg:-nan(09A_Zaz):0:-1:
+%5lg:-nan():0:-1:
+%*5lg:-nan():0:-1:
+%5lg:nan():1:5:nan:
+%*5lg:nan():0:5:
+%5lg:nan(09A_Zaz):0:-1:
+%*5lg:nan(09A_Zaz):0:-1:
+%5lg:0x0p0:1:5:0x0:
+%*5lg:0x0p0:0:5:
+%5lg:0x0p+0:0:-1:
+%*5lg:0x0p+0:0:-1:
+%5lg:0x8p-1025:0:-1:
+%*5lg:0x8p-1025:0:-1:
+%5lg:0x2.3456789abcdfep0123:1:5:0x1.18p1:
+%*5lg:0x2.3456789abcdfep0123:0:5:
+%5lg:0x2.3456789abcdfep+123:1:5:0x1.18p1:
+%*5lg:0x2.3456789abcdfep+123:0:5:
+%5lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2:
+%*5lg:0x7.ffffffffffffcp1021:0:5:
+%5lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3:
+%*5lg:0xf.ffffffffffff8p+1020:0:5:
+%5lg:infinity:0:-1:
+%*5lg:infinity:0:-1:
+%5lg:+nan():0:-1:
+%*5lg:+nan():0:-1:
+%5lg:+nan(09A_Zaz):0:-1:
+%*5lg:+nan(09A_Zaz):0:-1:
+%5lg:+0x0p0:0:-1:
+%*5lg:+0x0p0:0:-1:
+%5lg:+0x0p+0:0:-1:
+%*5lg:+0x0p+0:0:-1:
+%5lg:+0x8p-1025:0:-1:
+%*5lg:+0x8p-1025:0:-1:
+%5lg:+0x2.3456789abcdfep0123:1:5:0x1p1:
+%*5lg:+0x2.3456789abcdfep0123:0:5:
+%5lg:+0x2.3456789abcdfep+123:1:5:0x1p1:
+%*5lg:+0x2.3456789abcdfep+123:0:5:
+%5lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2:
+%*5lg:+0x7.ffffffffffffcp1021:0:5:
+%5lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3:
+%*5lg:+0xf.ffffffffffff8p+1020:0:5:
+%5lg:+infinity:0:-1:
+%*5lg:+infinity:0:-1:
+%6lg::0:-1:
+%*6lg::0:-1:
+%6lg:-infinity:0:-1:
+%*6lg:-infinity:0:-1:
+%6lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3:
+%*6lg:-0xf.ffffffffffff8p+1020:0:6:
+%6lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2:
+%*6lg:-0x7.ffffffffffffcp1021:0:6:
+%6lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1:
+%*6lg:-0x2.3456789abcdfep+123:0:6:
+%6lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1:
+%*6lg:-0x2.3456789abcdfep0123:0:6:
+%6lg:-0x8p-1025:0:-1:
+%*6lg:-0x8p-1025:0:-1:
+%6lg:-0x0p+0:0:-1:
+%*6lg:-0x0p+0:0:-1:
+%6lg:-0x0p0:1:6:-0x0:
+%*6lg:-0x0p0:0:6:
+%6lg:-nan(09A_Zaz):0:-1:
+%*6lg:-nan(09A_Zaz):0:-1:
+%6lg:-nan():1:6:-nan:
+%*6lg:-nan():0:6:
+%6lg:nan():1:5:nan:
+%*6lg:nan():0:5:
+%6lg:nan(09A_Zaz):0:-1:
+%*6lg:nan(09A_Zaz):0:-1:
+%6lg:0x0p0:1:5:0x0:
+%*6lg:0x0p0:0:5:
+%6lg:0x0p+0:1:6:0x0:
+%*6lg:0x0p+0:0:6:
+%6lg:0x8p-1025:1:6:0x1p2:
+%*6lg:0x8p-1025:0:6:
+%6lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1:
+%*6lg:0x2.3456789abcdfep0123:0:6:
+%6lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1:
+%*6lg:0x2.3456789abcdfep+123:0:6:
+%6lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2:
+%*6lg:0x7.ffffffffffffcp1021:0:6:
+%6lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3:
+%*6lg:0xf.ffffffffffff8p+1020:0:6:
+%6lg:infinity:0:-1:
+%*6lg:infinity:0:-1:
+%6lg:+nan():1:6:nan:
+%*6lg:+nan():0:6:
+%6lg:+nan(09A_Zaz):0:-1:
+%*6lg:+nan(09A_Zaz):0:-1:
+%6lg:+0x0p0:1:6:0x0:
+%*6lg:+0x0p0:0:6:
+%6lg:+0x0p+0:0:-1:
+%*6lg:+0x0p+0:0:-1:
+%6lg:+0x8p-1025:0:-1:
+%*6lg:+0x8p-1025:0:-1:
+%6lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*6lg:+0x2.3456789abcdfep0123:0:6:
+%6lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*6lg:+0x2.3456789abcdfep+123:0:6:
+%6lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*6lg:+0x7.ffffffffffffcp1021:0:6:
+%6lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*6lg:+0xf.ffffffffffff8p+1020:0:6:
+%6lg:+infinity:0:-1:
+%*6lg:+infinity:0:-1:
+%20lg::0:-1:
+%*20lg::0:-1:
+%20lg:-infinity:1:9:-inf:
+%*20lg:-infinity:0:9:
+%20lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*20lg:-0xf.ffffffffffff8p+1020:0:-1:
+%20lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3:
+%*20lg:-0x7.ffffffffffffcp1021:0:20:
+%20lg:-0x2.3456789abcdfep+123:0:-1:
+%*20lg:-0x2.3456789abcdfep+123:0:-1:
+%20lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20lg:-0x2.3456789abcdfep0123:0:20:
+%20lg:-0x8p-1025:1:10:-0x1p-1022:
+%*20lg:-0x8p-1025:0:10:
+%20lg:-0x0p+0:1:7:-0x0:
+%*20lg:-0x0p+0:0:7:
+%20lg:-0x0p0:1:6:-0x0:
+%*20lg:-0x0p0:0:6:
+%20lg:-nan(09A_Zaz):1:13:-nan:
+%*20lg:-nan(09A_Zaz):0:13:
+%20lg:-nan():1:6:-nan:
+%*20lg:-nan():0:6:
+%20lg:nan():1:5:nan:
+%*20lg:nan():0:5:
+%20lg:nan(09A_Zaz):1:12:nan:
+%*20lg:nan(09A_Zaz):0:12:
+%20lg:0x0p0:1:5:0x0:
+%*20lg:0x0p0:0:5:
+%20lg:0x0p+0:1:6:0x0:
+%*20lg:0x0p+0:0:6:
+%20lg:0x8p-1025:1:9:0x1p-1022:
+%*20lg:0x8p-1025:0:9:
+%20lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lg:0x2.3456789abcdfep0123:0:20:
+%20lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lg:0x2.3456789abcdfep+123:0:20:
+%20lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12:
+%*20lg:0x7.ffffffffffffcp1021:0:20:
+%20lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4:
+%*20lg:0xf.ffffffffffff8p+1020:0:20:
+%20lg:infinity:1:8:inf:
+%*20lg:infinity:0:8:
+%20lg:+nan():1:6:nan:
+%*20lg:+nan():0:6:
+%20lg:+nan(09A_Zaz):1:13:nan:
+%*20lg:+nan(09A_Zaz):0:13:
+%20lg:+0x0p0:1:6:0x0:
+%*20lg:+0x0p0:0:6:
+%20lg:+0x0p+0:1:7:0x0:
+%*20lg:+0x0p+0:0:7:
+%20lg:+0x8p-1025:1:10:0x1p-1022:
+%*20lg:+0x8p-1025:0:10:
+%20lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20lg:+0x2.3456789abcdfep0123:0:20:
+%20lg:+0x2.3456789abcdfep+123:0:-1:
+%*20lg:+0x2.3456789abcdfep+123:0:-1:
+%20lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3:
+%*20lg:+0x7.ffffffffffffcp1021:0:20:
+%20lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*20lg:+0xf.ffffffffffff8p+1020:0:-1:
+%20lg:+infinity:1:9:inf:
+%*20lg:+infinity:0:9:
+%32lg::0:-1:
+%*32lg::0:-1:
+%32lg:-infinity:1:9:-inf:
+%*32lg:-infinity:0:9:
+%32lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*32lg:-0xf.ffffffffffff8p+1020:0:24:
+%32lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*32lg:-0x7.ffffffffffffcp1021:0:23:
+%32lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lg:-0x2.3456789abcdfep+123:0:23:
+%32lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lg:-0x2.3456789abcdfep0123:0:23:
+%32lg:-0x8p-1025:1:10:-0x1p-1022:
+%*32lg:-0x8p-1025:0:10:
+%32lg:-0x0p+0:1:7:-0x0:
+%*32lg:-0x0p+0:0:7:
+%32lg:-0x0p0:1:6:-0x0:
+%*32lg:-0x0p0:0:6:
+%32lg:-nan(09A_Zaz):1:13:-nan:
+%*32lg:-nan(09A_Zaz):0:13:
+%32lg:-nan():1:6:-nan:
+%*32lg:-nan():0:6:
+%32lg:nan():1:5:nan:
+%*32lg:nan():0:5:
+%32lg:nan(09A_Zaz):1:12:nan:
+%*32lg:nan(09A_Zaz):0:12:
+%32lg:0x0p0:1:5:0x0:
+%*32lg:0x0p0:0:5:
+%32lg:0x0p+0:1:6:0x0:
+%*32lg:0x0p+0:0:6:
+%32lg:0x8p-1025:1:9:0x1p-1022:
+%*32lg:0x8p-1025:0:9:
+%32lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lg:0x2.3456789abcdfep0123:0:22:
+%32lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lg:0x2.3456789abcdfep+123:0:22:
+%32lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*32lg:0x7.ffffffffffffcp1021:0:22:
+%32lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*32lg:0xf.ffffffffffff8p+1020:0:23:
+%32lg:infinity:1:8:inf:
+%*32lg:infinity:0:8:
+%32lg:+nan():1:6:nan:
+%*32lg:+nan():0:6:
+%32lg:+nan(09A_Zaz):1:13:nan:
+%*32lg:+nan(09A_Zaz):0:13:
+%32lg:+0x0p0:1:6:0x0:
+%*32lg:+0x0p0:0:6:
+%32lg:+0x0p+0:1:7:0x0:
+%*32lg:+0x0p+0:0:7:
+%32lg:+0x8p-1025:1:10:0x1p-1022:
+%*32lg:+0x8p-1025:0:10:
+%32lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lg:+0x2.3456789abcdfep0123:0:23:
+%32lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lg:+0x2.3456789abcdfep+123:0:23:
+%32lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32lg:+0x7.ffffffffffffcp1021:0:23:
+%32lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32lg:+0xf.ffffffffffff8p+1020:0:24:
+%32lg:+infinity:1:9:inf:
+%*32lg:+infinity:0:9:
+%5lg: :0:-1:
+%*5lg: :0:-1:
+%5lg: -infinity:0:-1:
+%*5lg: -infinity:0:-1:
+%5lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3:
+%*5lg: -0xf.ffffffffffff8p+1020:0:6:
+%5lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2:
+%*5lg: -0x7.ffffffffffffcp1021:0:6:
+%5lg: -0x2.3456789abcdfep+123:1:6:-0x1p1:
+%*5lg: -0x2.3456789abcdfep+123:0:6:
+%5lg: -0x2.3456789abcdfep0123:1:6:-0x1p1:
+%*5lg: -0x2.3456789abcdfep0123:0:6:
+%5lg: -0x8p-1025:0:-1:
+%*5lg: -0x8p-1025:0:-1:
+%5lg: -0x0p+0:0:-1:
+%*5lg: -0x0p+0:0:-1:
+%5lg: -0x0p0:0:-1:
+%*5lg: -0x0p0:0:-1:
+%5lg: -nan(09A_Zaz):0:-1:
+%*5lg: -nan(09A_Zaz):0:-1:
+%5lg: -nan():0:-1:
+%*5lg: -nan():0:-1:
+%5lg: nan():1:6:nan:
+%*5lg: nan():0:6:
+%5lg: nan(09A_Zaz):0:-1:
+%*5lg: nan(09A_Zaz):0:-1:
+%5lg: 0x0p0:1:6:0x0:
+%*5lg: 0x0p0:0:6:
+%5lg: 0x0p+0:0:-1:
+%*5lg: 0x0p+0:0:-1:
+%5lg: 0x8p-1025:0:-1:
+%*5lg: 0x8p-1025:0:-1:
+%5lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*5lg: 0x2.3456789abcdfep0123:0:6:
+%5lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*5lg: 0x2.3456789abcdfep+123:0:6:
+%5lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*5lg: 0x7.ffffffffffffcp1021:0:6:
+%5lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*5lg: 0xf.ffffffffffff8p+1020:0:6:
+%5lg: infinity:0:-1:
+%*5lg: infinity:0:-1:
+%5lg: +nan():0:-1:
+%*5lg: +nan():0:-1:
+%5lg: +nan(09A_Zaz):0:-1:
+%*5lg: +nan(09A_Zaz):0:-1:
+%5lg: +0x0p0:0:-1:
+%*5lg: +0x0p0:0:-1:
+%5lg: +0x0p+0:0:-1:
+%*5lg: +0x0p+0:0:-1:
+%5lg: +0x8p-1025:0:-1:
+%*5lg: +0x8p-1025:0:-1:
+%5lg: +0x2.3456789abcdfep0123:1:6:0x1p1:
+%*5lg: +0x2.3456789abcdfep0123:0:6:
+%5lg: +0x2.3456789abcdfep+123:1:6:0x1p1:
+%*5lg: +0x2.3456789abcdfep+123:0:6:
+%5lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2:
+%*5lg: +0x7.ffffffffffffcp1021:0:6:
+%5lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3:
+%*5lg: +0xf.ffffffffffff8p+1020:0:6:
+%5lg: +infinity:0:-1:
+%*5lg: +infinity:0:-1:
+%32lg: :0:-1:
+%*32lg: :0:-1:
+%32lg: -infinity:1:10:-inf:
+%*32lg: -infinity:0:10:
+%32lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023:
+%*32lg: -0xf.ffffffffffff8p+1020:0:25:
+%32lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023:
+%*32lg: -0x7.ffffffffffffcp1021:0:24:
+%32lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lg: -0x2.3456789abcdfep+123:0:24:
+%32lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lg: -0x2.3456789abcdfep0123:0:24:
+%32lg: -0x8p-1025:1:11:-0x1p-1022:
+%*32lg: -0x8p-1025:0:11:
+%32lg: -0x0p+0:1:8:-0x0:
+%*32lg: -0x0p+0:0:8:
+%32lg: -0x0p0:1:7:-0x0:
+%*32lg: -0x0p0:0:7:
+%32lg: -nan(09A_Zaz):1:14:-nan:
+%*32lg: -nan(09A_Zaz):0:14:
+%32lg: -nan():1:7:-nan:
+%*32lg: -nan():0:7:
+%32lg: nan():1:6:nan:
+%*32lg: nan():0:6:
+%32lg: nan(09A_Zaz):1:13:nan:
+%*32lg: nan(09A_Zaz):0:13:
+%32lg: 0x0p0:1:6:0x0:
+%*32lg: 0x0p0:0:6:
+%32lg: 0x0p+0:1:7:0x0:
+%*32lg: 0x0p+0:0:7:
+%32lg: 0x8p-1025:1:10:0x1p-1022:
+%*32lg: 0x8p-1025:0:10:
+%32lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lg: 0x2.3456789abcdfep0123:0:23:
+%32lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lg: 0x2.3456789abcdfep+123:0:23:
+%32lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32lg: 0x7.ffffffffffffcp1021:0:23:
+%32lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32lg: 0xf.ffffffffffff8p+1020:0:24:
+%32lg: infinity:1:9:inf:
+%*32lg: infinity:0:9:
+%32lg: +nan():1:7:nan:
+%*32lg: +nan():0:7:
+%32lg: +nan(09A_Zaz):1:14:nan:
+%*32lg: +nan(09A_Zaz):0:14:
+%32lg: +0x0p0:1:7:0x0:
+%*32lg: +0x0p0:0:7:
+%32lg: +0x0p+0:1:8:0x0:
+%*32lg: +0x0p+0:0:8:
+%32lg: +0x8p-1025:1:11:0x1p-1022:
+%*32lg: +0x8p-1025:0:11:
+%32lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lg: +0x2.3456789abcdfep0123:0:24:
+%32lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lg: +0x2.3456789abcdfep+123:0:24:
+%32lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023:
+%*32lg: +0x7.ffffffffffffcp1021:0:24:
+%32lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023:
+%*32lg: +0xf.ffffffffffff8p+1020:0:25:
+%32lg: +infinity:1:10:inf:
+%*32lg: +infinity:0:10:
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input
new file mode 100644
index 0000000..11ffe34
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input
@@ -0,0 +1,682 @@
+%lG::0:-1:
+%*lG::0:-1:
+%lG:-INFINITY:1:9:-inf:
+%*lG:-INFINITY:0:9:
+%lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*lG:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*lG:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lG:-0X2.3456789ABCDFEP+123:0:23:
+%lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*lG:-0X2.3456789ABCDFEP0123:0:23:
+%lG:-0X8P-1025:1:10:-0x1p-1022:
+%*lG:-0X8P-1025:0:10:
+%lG:-0X0P+0:1:7:-0x0:
+%*lG:-0X0P+0:0:7:
+%lG:-0X0P0:1:6:-0x0:
+%*lG:-0X0P0:0:6:
+%lG:-NAN(09A_Zaz):1:13:-nan:
+%*lG:-NAN(09A_Zaz):0:13:
+%lG:-NAN():1:6:-nan:
+%*lG:-NAN():0:6:
+%lG:NAN():1:5:nan:
+%*lG:NAN():0:5:
+%lG:NAN(09A_Zaz):1:12:nan:
+%*lG:NAN(09A_Zaz):0:12:
+%lG:0X0P0:1:5:0x0:
+%*lG:0X0P0:0:5:
+%lG:0X0P+0:1:6:0x0:
+%*lG:0X0P+0:0:6:
+%lG:0X8P-1025:1:9:0x1p-1022:
+%*lG:0X8P-1025:0:9:
+%lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lG:0X2.3456789ABCDFEP0123:0:22:
+%lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*lG:0X2.3456789ABCDFEP+123:0:22:
+%lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*lG:0X7.FFFFFFFFFFFFCP1021:0:22:
+%lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*lG:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%lG:INFINITY:1:8:inf:
+%*lG:INFINITY:0:8:
+%lG:+NAN():1:6:nan:
+%*lG:+NAN():0:6:
+%lG:+NAN(09A_Zaz):1:13:nan:
+%*lG:+NAN(09A_Zaz):0:13:
+%lG:+0X0P0:1:6:0x0:
+%*lG:+0X0P0:0:6:
+%lG:+0X0P+0:1:7:0x0:
+%*lG:+0X0P+0:0:7:
+%lG:+0X8P-1025:1:10:0x1p-1022:
+%*lG:+0X8P-1025:0:10:
+%lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lG:+0X2.3456789ABCDFEP0123:0:23:
+%lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*lG:+0X2.3456789ABCDFEP+123:0:23:
+%lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*lG:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*lG:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%lG:+INFINITY:1:9:inf:
+%*lG:+INFINITY:0:9:
+%1lG::0:-1:
+%*1lG::0:-1:
+%1lG:-INFINITY:0:-1:
+%*1lG:-INFINITY:0:-1:
+%1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1lG:-0X2.3456789ABCDFEP+123:0:-1:
+%*1lG:-0X2.3456789ABCDFEP+123:0:-1:
+%1lG:-0X2.3456789ABCDFEP0123:0:-1:
+%*1lG:-0X2.3456789ABCDFEP0123:0:-1:
+%1lG:-0X8P-1025:0:-1:
+%*1lG:-0X8P-1025:0:-1:
+%1lG:-0X0P+0:0:-1:
+%*1lG:-0X0P+0:0:-1:
+%1lG:-0X0P0:0:-1:
+%*1lG:-0X0P0:0:-1:
+%1lG:-NAN(09A_Zaz):0:-1:
+%*1lG:-NAN(09A_Zaz):0:-1:
+%1lG:-NAN():0:-1:
+%*1lG:-NAN():0:-1:
+%1lG:NAN():0:-1:
+%*1lG:NAN():0:-1:
+%1lG:NAN(09A_Zaz):0:-1:
+%*1lG:NAN(09A_Zaz):0:-1:
+%1lG:0X0P0:1:1:0x0:
+%*1lG:0X0P0:0:1:
+%1lG:0X0P+0:1:1:0x0:
+%*1lG:0X0P+0:0:1:
+%1lG:0X8P-1025:1:1:0x0:
+%*1lG:0X8P-1025:0:1:
+%1lG:0X2.3456789ABCDFEP0123:1:1:0x0:
+%*1lG:0X2.3456789ABCDFEP0123:0:1:
+%1lG:0X2.3456789ABCDFEP+123:1:1:0x0:
+%*1lG:0X2.3456789ABCDFEP+123:0:1:
+%1lG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0:
+%*1lG:0X7.FFFFFFFFFFFFCP1021:0:1:
+%1lG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0:
+%*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1:
+%1lG:INFINITY:0:-1:
+%*1lG:INFINITY:0:-1:
+%1lG:+NAN():0:-1:
+%*1lG:+NAN():0:-1:
+%1lG:+NAN(09A_Zaz):0:-1:
+%*1lG:+NAN(09A_Zaz):0:-1:
+%1lG:+0X0P0:0:-1:
+%*1lG:+0X0P0:0:-1:
+%1lG:+0X0P+0:0:-1:
+%*1lG:+0X0P+0:0:-1:
+%1lG:+0X8P-1025:0:-1:
+%*1lG:+0X8P-1025:0:-1:
+%1lG:+0X2.3456789ABCDFEP0123:0:-1:
+%*1lG:+0X2.3456789ABCDFEP0123:0:-1:
+%1lG:+0X2.3456789ABCDFEP+123:0:-1:
+%*1lG:+0X2.3456789ABCDFEP+123:0:-1:
+%1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1lG:+INFINITY:0:-1:
+%*1lG:+INFINITY:0:-1:
+%2lG::0:-1:
+%*2lG::0:-1:
+%2lG:-INFINITY:0:-1:
+%*2lG:-INFINITY:0:-1:
+%2lG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0:
+%*2lG:-0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2lG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0:
+%*2lG:-0X7.FFFFFFFFFFFFCP1021:0:2:
+%2lG:-0X2.3456789ABCDFEP+123:1:2:-0x0:
+%*2lG:-0X2.3456789ABCDFEP+123:0:2:
+%2lG:-0X2.3456789ABCDFEP0123:1:2:-0x0:
+%*2lG:-0X2.3456789ABCDFEP0123:0:2:
+%2lG:-0X8P-1025:1:2:-0x0:
+%*2lG:-0X8P-1025:0:2:
+%2lG:-0X0P+0:1:2:-0x0:
+%*2lG:-0X0P+0:0:2:
+%2lG:-0X0P0:1:2:-0x0:
+%*2lG:-0X0P0:0:2:
+%2lG:-NAN(09A_Zaz):0:-1:
+%*2lG:-NAN(09A_Zaz):0:-1:
+%2lG:-NAN():0:-1:
+%*2lG:-NAN():0:-1:
+%2lG:NAN():0:-1:
+%*2lG:NAN():0:-1:
+%2lG:NAN(09A_Zaz):0:-1:
+%*2lG:NAN(09A_Zaz):0:-1:
+%2lG:0X0P0:0:-1:
+%*2lG:0X0P0:0:-1:
+%2lG:0X0P+0:0:-1:
+%*2lG:0X0P+0:0:-1:
+%2lG:0X8P-1025:0:-1:
+%*2lG:0X8P-1025:0:-1:
+%2lG:0X2.3456789ABCDFEP0123:0:-1:
+%*2lG:0X2.3456789ABCDFEP0123:0:-1:
+%2lG:0X2.3456789ABCDFEP+123:0:-1:
+%*2lG:0X2.3456789ABCDFEP+123:0:-1:
+%2lG:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*2lG:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%2lG:INFINITY:0:-1:
+%*2lG:INFINITY:0:-1:
+%2lG:+NAN():0:-1:
+%*2lG:+NAN():0:-1:
+%2lG:+NAN(09A_Zaz):0:-1:
+%*2lG:+NAN(09A_Zaz):0:-1:
+%2lG:+0X0P0:1:2:0x0:
+%*2lG:+0X0P0:0:2:
+%2lG:+0X0P+0:1:2:0x0:
+%*2lG:+0X0P+0:0:2:
+%2lG:+0X8P-1025:1:2:0x0:
+%*2lG:+0X8P-1025:0:2:
+%2lG:+0X2.3456789ABCDFEP0123:1:2:0x0:
+%*2lG:+0X2.3456789ABCDFEP0123:0:2:
+%2lG:+0X2.3456789ABCDFEP+123:1:2:0x0:
+%*2lG:+0X2.3456789ABCDFEP+123:0:2:
+%2lG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0:
+%*2lG:+0X7.FFFFFFFFFFFFCP1021:0:2:
+%2lG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0:
+%*2lG:+0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2lG:+INFINITY:0:-1:
+%*2lG:+INFINITY:0:-1:
+%3lG::0:-1:
+%*3lG::0:-1:
+%3lG:-INFINITY:0:-1:
+%*3lG:-INFINITY:0:-1:
+%3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3lG:-0X2.3456789ABCDFEP+123:0:-1:
+%*3lG:-0X2.3456789ABCDFEP+123:0:-1:
+%3lG:-0X2.3456789ABCDFEP0123:0:-1:
+%*3lG:-0X2.3456789ABCDFEP0123:0:-1:
+%3lG:-0X8P-1025:0:-1:
+%*3lG:-0X8P-1025:0:-1:
+%3lG:-0X0P+0:0:-1:
+%*3lG:-0X0P+0:0:-1:
+%3lG:-0X0P0:0:-1:
+%*3lG:-0X0P0:0:-1:
+%3lG:-NAN(09A_Zaz):0:-1:
+%*3lG:-NAN(09A_Zaz):0:-1:
+%3lG:-NAN():0:-1:
+%*3lG:-NAN():0:-1:
+%3lG:NAN():1:3:nan:
+%*3lG:NAN():0:3:
+%3lG:NAN(09A_Zaz):1:3:nan:
+%*3lG:NAN(09A_Zaz):0:3:
+%3lG:0X0P0:1:3:0x0:
+%*3lG:0X0P0:0:3:
+%3lG:0X0P+0:1:3:0x0:
+%*3lG:0X0P+0:0:3:
+%3lG:0X8P-1025:1:3:0x1p3:
+%*3lG:0X8P-1025:0:3:
+%3lG:0X2.3456789ABCDFEP0123:1:3:0x1p1:
+%*3lG:0X2.3456789ABCDFEP0123:0:3:
+%3lG:0X2.3456789ABCDFEP+123:1:3:0x1p1:
+%*3lG:0X2.3456789ABCDFEP+123:0:3:
+%3lG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2:
+%*3lG:0X7.FFFFFFFFFFFFCP1021:0:3:
+%3lG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3:
+%*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3:
+%3lG:INFINITY:1:3:inf:
+%*3lG:INFINITY:0:3:
+%3lG:+NAN():0:-1:
+%*3lG:+NAN():0:-1:
+%3lG:+NAN(09A_Zaz):0:-1:
+%*3lG:+NAN(09A_Zaz):0:-1:
+%3lG:+0X0P0:0:-1:
+%*3lG:+0X0P0:0:-1:
+%3lG:+0X0P+0:0:-1:
+%*3lG:+0X0P+0:0:-1:
+%3lG:+0X8P-1025:0:-1:
+%*3lG:+0X8P-1025:0:-1:
+%3lG:+0X2.3456789ABCDFEP0123:0:-1:
+%*3lG:+0X2.3456789ABCDFEP0123:0:-1:
+%3lG:+0X2.3456789ABCDFEP+123:0:-1:
+%*3lG:+0X2.3456789ABCDFEP+123:0:-1:
+%3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3lG:+INFINITY:0:-1:
+%*3lG:+INFINITY:0:-1:
+%4lG::0:-1:
+%*4lG::0:-1:
+%4lG:-INFINITY:1:4:-inf:
+%*4lG:-INFINITY:0:4:
+%4lG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3:
+%*4lG:-0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2:
+%*4lG:-0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1:
+%*4lG:-0X2.3456789ABCDFEP+123:0:4:
+%4lG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1:
+%*4lG:-0X2.3456789ABCDFEP0123:0:4:
+%4lG:-0X8P-1025:1:4:-0x1p3:
+%*4lG:-0X8P-1025:0:4:
+%4lG:-0X0P+0:1:4:-0x0:
+%*4lG:-0X0P+0:0:4:
+%4lG:-0X0P0:1:4:-0x0:
+%*4lG:-0X0P0:0:4:
+%4lG:-NAN(09A_Zaz):1:4:-nan:
+%*4lG:-NAN(09A_Zaz):0:4:
+%4lG:-NAN():1:4:-nan:
+%*4lG:-NAN():0:4:
+%4lG:NAN():0:-1:
+%*4lG:NAN():0:-1:
+%4lG:NAN(09A_Zaz):0:-1:
+%*4lG:NAN(09A_Zaz):0:-1:
+%4lG:0X0P0:0:-1:
+%*4lG:0X0P0:0:-1:
+%4lG:0X0P+0:0:-1:
+%*4lG:0X0P+0:0:-1:
+%4lG:0X8P-1025:0:-1:
+%*4lG:0X8P-1025:0:-1:
+%4lG:0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4lG:0X2.3456789ABCDFEP0123:0:4:
+%4lG:0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4lG:0X2.3456789ABCDFEP+123:0:4:
+%4lG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4lG:0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lG:INFINITY:0:-1:
+%*4lG:INFINITY:0:-1:
+%4lG:+NAN():1:4:nan:
+%*4lG:+NAN():0:4:
+%4lG:+NAN(09A_Zaz):1:4:nan:
+%*4lG:+NAN(09A_Zaz):0:4:
+%4lG:+0X0P0:1:4:0x0:
+%*4lG:+0X0P0:0:4:
+%4lG:+0X0P+0:1:4:0x0:
+%*4lG:+0X0P+0:0:4:
+%4lG:+0X8P-1025:1:4:0x1p3:
+%*4lG:+0X8P-1025:0:4:
+%4lG:+0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4lG:+0X2.3456789ABCDFEP0123:0:4:
+%4lG:+0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4lG:+0X2.3456789ABCDFEP+123:0:4:
+%4lG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4lG:+0X7.FFFFFFFFFFFFCP1021:0:4:
+%4lG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4lG:+0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4lG:+INFINITY:1:4:inf:
+%*4lG:+INFINITY:0:4:
+%5lG::0:-1:
+%*5lG::0:-1:
+%5lG:-INFINITY:0:-1:
+%*5lG:-INFINITY:0:-1:
+%5lG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3:
+%*5lG:-0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2:
+%*5lG:-0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1:
+%*5lG:-0X2.3456789ABCDFEP+123:0:5:
+%5lG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1:
+%*5lG:-0X2.3456789ABCDFEP0123:0:5:
+%5lG:-0X8P-1025:0:-1:
+%*5lG:-0X8P-1025:0:-1:
+%5lG:-0X0P+0:0:-1:
+%*5lG:-0X0P+0:0:-1:
+%5lG:-0X0P0:0:-1:
+%*5lG:-0X0P0:0:-1:
+%5lG:-NAN(09A_Zaz):0:-1:
+%*5lG:-NAN(09A_Zaz):0:-1:
+%5lG:-NAN():0:-1:
+%*5lG:-NAN():0:-1:
+%5lG:NAN():1:5:nan:
+%*5lG:NAN():0:5:
+%5lG:NAN(09A_Zaz):0:-1:
+%*5lG:NAN(09A_Zaz):0:-1:
+%5lG:0X0P0:1:5:0x0:
+%*5lG:0X0P0:0:5:
+%5lG:0X0P+0:0:-1:
+%*5lG:0X0P+0:0:-1:
+%5lG:0X8P-1025:0:-1:
+%*5lG:0X8P-1025:0:-1:
+%5lG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1:
+%*5lG:0X2.3456789ABCDFEP0123:0:5:
+%5lG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1:
+%*5lG:0X2.3456789ABCDFEP+123:0:5:
+%5lG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2:
+%*5lG:0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3:
+%*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lG:INFINITY:0:-1:
+%*5lG:INFINITY:0:-1:
+%5lG:+NAN():0:-1:
+%*5lG:+NAN():0:-1:
+%5lG:+NAN(09A_Zaz):0:-1:
+%*5lG:+NAN(09A_Zaz):0:-1:
+%5lG:+0X0P0:0:-1:
+%*5lG:+0X0P0:0:-1:
+%5lG:+0X0P+0:0:-1:
+%*5lG:+0X0P+0:0:-1:
+%5lG:+0X8P-1025:0:-1:
+%*5lG:+0X8P-1025:0:-1:
+%5lG:+0X2.3456789ABCDFEP0123:1:5:0x1p1:
+%*5lG:+0X2.3456789ABCDFEP0123:0:5:
+%5lG:+0X2.3456789ABCDFEP+123:1:5:0x1p1:
+%*5lG:+0X2.3456789ABCDFEP+123:0:5:
+%5lG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2:
+%*5lG:+0X7.FFFFFFFFFFFFCP1021:0:5:
+%5lG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3:
+%*5lG:+0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5lG:+INFINITY:0:-1:
+%*5lG:+INFINITY:0:-1:
+%6lG::0:-1:
+%*6lG::0:-1:
+%6lG:-INFINITY:0:-1:
+%*6lG:-INFINITY:0:-1:
+%6lG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3:
+%*6lG:-0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2:
+%*6lG:-0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1:
+%*6lG:-0X2.3456789ABCDFEP+123:0:6:
+%6lG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1:
+%*6lG:-0X2.3456789ABCDFEP0123:0:6:
+%6lG:-0X8P-1025:0:-1:
+%*6lG:-0X8P-1025:0:-1:
+%6lG:-0X0P+0:0:-1:
+%*6lG:-0X0P+0:0:-1:
+%6lG:-0X0P0:1:6:-0x0:
+%*6lG:-0X0P0:0:6:
+%6lG:-NAN(09A_Zaz):0:-1:
+%*6lG:-NAN(09A_Zaz):0:-1:
+%6lG:-NAN():1:6:-nan:
+%*6lG:-NAN():0:6:
+%6lG:NAN():1:5:nan:
+%*6lG:NAN():0:5:
+%6lG:NAN(09A_Zaz):0:-1:
+%*6lG:NAN(09A_Zaz):0:-1:
+%6lG:0X0P0:1:5:0x0:
+%*6lG:0X0P0:0:5:
+%6lG:0X0P+0:1:6:0x0:
+%*6lG:0X0P+0:0:6:
+%6lG:0X8P-1025:1:6:0x1p2:
+%*6lG:0X8P-1025:0:6:
+%6lG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1:
+%*6lG:0X2.3456789ABCDFEP0123:0:6:
+%6lG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1:
+%*6lG:0X2.3456789ABCDFEP+123:0:6:
+%6lG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2:
+%*6lG:0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3:
+%*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lG:INFINITY:0:-1:
+%*6lG:INFINITY:0:-1:
+%6lG:+NAN():1:6:nan:
+%*6lG:+NAN():0:6:
+%6lG:+NAN(09A_Zaz):0:-1:
+%*6lG:+NAN(09A_Zaz):0:-1:
+%6lG:+0X0P0:1:6:0x0:
+%*6lG:+0X0P0:0:6:
+%6lG:+0X0P+0:0:-1:
+%*6lG:+0X0P+0:0:-1:
+%6lG:+0X8P-1025:0:-1:
+%*6lG:+0X8P-1025:0:-1:
+%6lG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*6lG:+0X2.3456789ABCDFEP0123:0:6:
+%6lG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*6lG:+0X2.3456789ABCDFEP+123:0:6:
+%6lG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*6lG:+0X7.FFFFFFFFFFFFCP1021:0:6:
+%6lG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*6lG:+0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6lG:+INFINITY:0:-1:
+%*6lG:+INFINITY:0:-1:
+%20lG::0:-1:
+%*20lG::0:-1:
+%20lG:-INFINITY:1:9:-inf:
+%*20lG:-INFINITY:0:9:
+%20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20lG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3:
+%*20lG:-0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lG:-0X2.3456789ABCDFEP+123:0:-1:
+%*20lG:-0X2.3456789ABCDFEP+123:0:-1:
+%20lG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20lG:-0X2.3456789ABCDFEP0123:0:20:
+%20lG:-0X8P-1025:1:10:-0x1p-1022:
+%*20lG:-0X8P-1025:0:10:
+%20lG:-0X0P+0:1:7:-0x0:
+%*20lG:-0X0P+0:0:7:
+%20lG:-0X0P0:1:6:-0x0:
+%*20lG:-0X0P0:0:6:
+%20lG:-NAN(09A_Zaz):1:13:-nan:
+%*20lG:-NAN(09A_Zaz):0:13:
+%20lG:-NAN():1:6:-nan:
+%*20lG:-NAN():0:6:
+%20lG:NAN():1:5:nan:
+%*20lG:NAN():0:5:
+%20lG:NAN(09A_Zaz):1:12:nan:
+%*20lG:NAN(09A_Zaz):0:12:
+%20lG:0X0P0:1:5:0x0:
+%*20lG:0X0P0:0:5:
+%20lG:0X0P+0:1:6:0x0:
+%*20lG:0X0P+0:0:6:
+%20lG:0X8P-1025:1:9:0x1p-1022:
+%*20lG:0X8P-1025:0:9:
+%20lG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lG:0X2.3456789ABCDFEP0123:0:20:
+%20lG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20lG:0X2.3456789ABCDFEP+123:0:20:
+%20lG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12:
+%*20lG:0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4:
+%*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20:
+%20lG:INFINITY:1:8:inf:
+%*20lG:INFINITY:0:8:
+%20lG:+NAN():1:6:nan:
+%*20lG:+NAN():0:6:
+%20lG:+NAN(09A_Zaz):1:13:nan:
+%*20lG:+NAN(09A_Zaz):0:13:
+%20lG:+0X0P0:1:6:0x0:
+%*20lG:+0X0P0:0:6:
+%20lG:+0X0P+0:1:7:0x0:
+%*20lG:+0X0P+0:0:7:
+%20lG:+0X8P-1025:1:10:0x1p-1022:
+%*20lG:+0X8P-1025:0:10:
+%20lG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20lG:+0X2.3456789ABCDFEP0123:0:20:
+%20lG:+0X2.3456789ABCDFEP+123:0:-1:
+%*20lG:+0X2.3456789ABCDFEP+123:0:-1:
+%20lG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3:
+%*20lG:+0X7.FFFFFFFFFFFFCP1021:0:20:
+%20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20lG:+INFINITY:1:9:inf:
+%*20lG:+INFINITY:0:9:
+%32lG::0:-1:
+%*32lG::0:-1:
+%32lG:-INFINITY:1:9:-inf:
+%*32lG:-INFINITY:0:9:
+%32lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*32lG:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*32lG:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lG:-0X2.3456789ABCDFEP+123:0:23:
+%32lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32lG:-0X2.3456789ABCDFEP0123:0:23:
+%32lG:-0X8P-1025:1:10:-0x1p-1022:
+%*32lG:-0X8P-1025:0:10:
+%32lG:-0X0P+0:1:7:-0x0:
+%*32lG:-0X0P+0:0:7:
+%32lG:-0X0P0:1:6:-0x0:
+%*32lG:-0X0P0:0:6:
+%32lG:-NAN(09A_Zaz):1:13:-nan:
+%*32lG:-NAN(09A_Zaz):0:13:
+%32lG:-NAN():1:6:-nan:
+%*32lG:-NAN():0:6:
+%32lG:NAN():1:5:nan:
+%*32lG:NAN():0:5:
+%32lG:NAN(09A_Zaz):1:12:nan:
+%*32lG:NAN(09A_Zaz):0:12:
+%32lG:0X0P0:1:5:0x0:
+%*32lG:0X0P0:0:5:
+%32lG:0X0P+0:1:6:0x0:
+%*32lG:0X0P+0:0:6:
+%32lG:0X8P-1025:1:9:0x1p-1022:
+%*32lG:0X8P-1025:0:9:
+%32lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lG:0X2.3456789ABCDFEP0123:0:22:
+%32lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32lG:0X2.3456789ABCDFEP+123:0:22:
+%32lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*32lG:0X7.FFFFFFFFFFFFCP1021:0:22:
+%32lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%32lG:INFINITY:1:8:inf:
+%*32lG:INFINITY:0:8:
+%32lG:+NAN():1:6:nan:
+%*32lG:+NAN():0:6:
+%32lG:+NAN(09A_Zaz):1:13:nan:
+%*32lG:+NAN(09A_Zaz):0:13:
+%32lG:+0X0P0:1:6:0x0:
+%*32lG:+0X0P0:0:6:
+%32lG:+0X0P+0:1:7:0x0:
+%*32lG:+0X0P+0:0:7:
+%32lG:+0X8P-1025:1:10:0x1p-1022:
+%*32lG:+0X8P-1025:0:10:
+%32lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lG:+0X2.3456789ABCDFEP0123:0:23:
+%32lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lG:+0X2.3456789ABCDFEP+123:0:23:
+%32lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32lG:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32lG:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lG:+INFINITY:1:9:inf:
+%*32lG:+INFINITY:0:9:
+%5lG: :0:-1:
+%*5lG: :0:-1:
+%5lG: -INFINITY:0:-1:
+%*5lG: -INFINITY:0:-1:
+%5lG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3:
+%*5lG: -0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2:
+%*5lG: -0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1:
+%*5lG: -0X2.3456789ABCDFEP+123:0:6:
+%5lG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1:
+%*5lG: -0X2.3456789ABCDFEP0123:0:6:
+%5lG: -0X8P-1025:0:-1:
+%*5lG: -0X8P-1025:0:-1:
+%5lG: -0X0P+0:0:-1:
+%*5lG: -0X0P+0:0:-1:
+%5lG: -0X0P0:0:-1:
+%*5lG: -0X0P0:0:-1:
+%5lG: -NAN(09A_Zaz):0:-1:
+%*5lG: -NAN(09A_Zaz):0:-1:
+%5lG: -NAN():0:-1:
+%*5lG: -NAN():0:-1:
+%5lG: NAN():1:6:nan:
+%*5lG: NAN():0:6:
+%5lG: NAN(09A_Zaz):0:-1:
+%*5lG: NAN(09A_Zaz):0:-1:
+%5lG: 0X0P0:1:6:0x0:
+%*5lG: 0X0P0:0:6:
+%5lG: 0X0P+0:0:-1:
+%*5lG: 0X0P+0:0:-1:
+%5lG: 0X8P-1025:0:-1:
+%*5lG: 0X8P-1025:0:-1:
+%5lG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*5lG: 0X2.3456789ABCDFEP0123:0:6:
+%5lG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*5lG: 0X2.3456789ABCDFEP+123:0:6:
+%5lG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*5lG: 0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lG: INFINITY:0:-1:
+%*5lG: INFINITY:0:-1:
+%5lG: +NAN():0:-1:
+%*5lG: +NAN():0:-1:
+%5lG: +NAN(09A_Zaz):0:-1:
+%*5lG: +NAN(09A_Zaz):0:-1:
+%5lG: +0X0P0:0:-1:
+%*5lG: +0X0P0:0:-1:
+%5lG: +0X0P+0:0:-1:
+%*5lG: +0X0P+0:0:-1:
+%5lG: +0X8P-1025:0:-1:
+%*5lG: +0X8P-1025:0:-1:
+%5lG: +0X2.3456789ABCDFEP0123:1:6:0x1p1:
+%*5lG: +0X2.3456789ABCDFEP0123:0:6:
+%5lG: +0X2.3456789ABCDFEP+123:1:6:0x1p1:
+%*5lG: +0X2.3456789ABCDFEP+123:0:6:
+%5lG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2:
+%*5lG: +0X7.FFFFFFFFFFFFCP1021:0:6:
+%5lG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3:
+%*5lG: +0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5lG: +INFINITY:0:-1:
+%*5lG: +INFINITY:0:-1:
+%32lG: :0:-1:
+%*32lG: :0:-1:
+%32lG: -INFINITY:1:10:-inf:
+%*32lG: -INFINITY:0:10:
+%32lG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023:
+%*32lG: -0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32lG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023:
+%*32lG: -0X7.FFFFFFFFFFFFCP1021:0:24:
+%32lG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lG: -0X2.3456789ABCDFEP+123:0:24:
+%32lG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32lG: -0X2.3456789ABCDFEP0123:0:24:
+%32lG: -0X8P-1025:1:11:-0x1p-1022:
+%*32lG: -0X8P-1025:0:11:
+%32lG: -0X0P+0:1:8:-0x0:
+%*32lG: -0X0P+0:0:8:
+%32lG: -0X0P0:1:7:-0x0:
+%*32lG: -0X0P0:0:7:
+%32lG: -NAN(09A_Zaz):1:14:-nan:
+%*32lG: -NAN(09A_Zaz):0:14:
+%32lG: -NAN():1:7:-nan:
+%*32lG: -NAN():0:7:
+%32lG: NAN():1:6:nan:
+%*32lG: NAN():0:6:
+%32lG: NAN(09A_Zaz):1:13:nan:
+%*32lG: NAN(09A_Zaz):0:13:
+%32lG: 0X0P0:1:6:0x0:
+%*32lG: 0X0P0:0:6:
+%32lG: 0X0P+0:1:7:0x0:
+%*32lG: 0X0P+0:0:7:
+%32lG: 0X8P-1025:1:10:0x1p-1022:
+%*32lG: 0X8P-1025:0:10:
+%32lG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lG: 0X2.3456789ABCDFEP0123:0:23:
+%32lG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32lG: 0X2.3456789ABCDFEP+123:0:23:
+%32lG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32lG: 0X7.FFFFFFFFFFFFCP1021:0:23:
+%32lG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32lG: INFINITY:1:9:inf:
+%*32lG: INFINITY:0:9:
+%32lG: +NAN():1:7:nan:
+%*32lG: +NAN():0:7:
+%32lG: +NAN(09A_Zaz):1:14:nan:
+%*32lG: +NAN(09A_Zaz):0:14:
+%32lG: +0X0P0:1:7:0x0:
+%*32lG: +0X0P0:0:7:
+%32lG: +0X0P+0:1:8:0x0:
+%*32lG: +0X0P+0:0:8:
+%32lG: +0X8P-1025:1:11:0x1p-1022:
+%*32lG: +0X8P-1025:0:11:
+%32lG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lG: +0X2.3456789ABCDFEP0123:0:24:
+%32lG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32lG: +0X2.3456789ABCDFEP+123:0:24:
+%32lG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023:
+%*32lG: +0X7.FFFFFFFFFFFFCP1021:0:24:
+%32lG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023:
+%*32lG: +0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32lG: +INFINITY:1:10:inf:
+%*32lG: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/dbl-64/uasncs.h b/sysdeps/ieee754/dbl-64/uasncs.h
index e67b398..a660022 100644
--- a/sysdeps/ieee754/dbl-64/uasncs.h
+++ b/sysdeps/ieee754/dbl-64/uasncs.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/uatan.tbl b/sysdeps/ieee754/dbl-64/uatan.tbl
index 473b7f1..e19d25d 100644
--- a/sysdeps/ieee754/dbl-64/uatan.tbl
+++ b/sysdeps/ieee754/dbl-64/uatan.tbl
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/urem.h b/sysdeps/ieee754/dbl-64/urem.h
index a370656..38e1fc3 100644
--- a/sysdeps/ieee754/dbl-64/urem.h
+++ b/sysdeps/ieee754/dbl-64/urem.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/usncs.h b/sysdeps/ieee754/dbl-64/usncs.h
index b220f07..dcc1cf4 100644
--- a/sysdeps/ieee754/dbl-64/usncs.h
+++ b/sysdeps/ieee754/dbl-64/usncs.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/utan.h b/sysdeps/ieee754/dbl-64/utan.h
index 11945c3..feeb534 100644
--- a/sysdeps/ieee754/dbl-64/utan.h
+++ b/sysdeps/ieee754/dbl-64/utan.h
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/utan.tbl b/sysdeps/ieee754/dbl-64/utan.tbl
index 04f3573..8fb00e9 100644
--- a/sysdeps/ieee754/dbl-64/utan.tbl
+++ b/sysdeps/ieee754/dbl-64/utan.tbl
@@ -1,6 +1,6 @@
/*
* IBM Accurate Mathematical Library
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/dbl-64/w_ilogb-impl.h b/sysdeps/ieee754/dbl-64/w_ilogb-impl.h
new file mode 100644
index 0000000..c919735
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_ilogb-impl.h
@@ -0,0 +1,37 @@
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+static inline RET_TYPE
+IMPL_NAME (double x)
+{
+ uint64_t ux = asuint64 (x);
+ int ex = (ux & ~SIGN_MASK) >> MANTISSA_WIDTH;
+ if (__glibc_unlikely (ex == 0)) /* zero or subnormal */
+ {
+ /* Clear sign and exponent */
+ ux <<= 12;
+ if (ux == 0)
+ return RET_INVALID (RET_LOGB0);
+ /* subnormal */
+ return (RET_TYPE)-1023 - stdc_leading_zeros (ux);
+ }
+ if (__glibc_unlikely (ex == EXPONENT_MASK >> MANTISSA_WIDTH))
+ /* NaN or Inf */
+ return RET_INVALID (ux << 12 ? RET_LOGBNAN : RET_LOGMAX);
+ return ex - 1023;
+}
diff --git a/sysdeps/ieee754/dbl-64/w_ilogb.c b/sysdeps/ieee754/dbl-64/w_ilogb.c
new file mode 100644
index 0000000..e460f14
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_ilogb.c
@@ -0,0 +1,52 @@
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <limits.h>
+#include <math.h>
+#include <stdbit.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
+
+#ifdef DEF_AS_LLOGB
+# define DECL_NAME __llogb
+# define FUNC_NAME llogb
+# define RET_TYPE long int
+# define RET_LOGB0 FP_LLOGB0
+# define RET_LOGBNAN FP_LLOGBNAN
+# define RET_LOGMAX LONG_MAX
+# define RET_INVALID __math_invalid_li
+#else
+# define DECL_NAME __ilogb
+# define FUNC_NAME ilogb
+# define RET_TYPE int
+# define RET_LOGB0 FP_ILOGB0
+# define RET_LOGBNAN FP_ILOGBNAN
+# define RET_LOGMAX INT_MAX
+# define RET_INVALID __math_invalid_i
+#endif
+#define __IMPL_NAME(x,y) x ## _ ## y
+#define _IMPL_NAME(x,y) __IMPL_NAME(x,y)
+#define IMPL_NAME _IMPL_NAME(FUNC_NAME, impl)
+#include <w_ilogb-impl.h>
+
+RET_TYPE
+DECL_NAME (double x)
+{
+ return IMPL_NAME (x);
+}
+libm_alias_double (DECL_NAME, FUNC_NAME)
diff --git a/sysdeps/ieee754/dbl-64/w_llogb.c b/sysdeps/ieee754/dbl-64/w_llogb.c
new file mode 100644
index 0000000..c984cd15
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_llogb.c
@@ -0,0 +1,2 @@
+#define DEF_AS_LLOGB
+#include "w_ilogb.c"
diff --git a/sysdeps/ieee754/dbl-64/x2y2m1.c b/sysdeps/ieee754/dbl-64/x2y2m1.c
index 964ea85..e1e2d16 100644
--- a/sysdeps/ieee754/dbl-64/x2y2m1.c
+++ b/sysdeps/ieee754/dbl-64/x2y2m1.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/dbl-64/x2y2m1f.c b/sysdeps/ieee754/dbl-64/x2y2m1f.c
index 9c5a630..7f41363 100644
--- a/sysdeps/ieee754/dbl-64/x2y2m1f.c
+++ b/sysdeps/ieee754/dbl-64/x2y2m1f.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/float1282mpn.c b/sysdeps/ieee754/float128/float1282mpn.c
index 5a5b6c1..d894561 100644
--- a/sysdeps/ieee754/float128/float1282mpn.c
+++ b/sysdeps/ieee754/float128/float1282mpn.c
@@ -1,5 +1,5 @@
/* Convert a _Float128 type to multiprecision.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h
index 19aa6c4..1430bba 100644
--- a/sysdeps/ieee754/float128/float128_private.h
+++ b/sysdeps/ieee754/float128/float128_private.h
@@ -1,5 +1,5 @@
/* _Float128 overrides for building ldbl-128 as _Float128.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/ieee754_float128.h b/sysdeps/ieee754/float128/ieee754_float128.h
index 01e16c3..28a9503 100644
--- a/sysdeps/ieee754/float128/ieee754_float128.h
+++ b/sysdeps/ieee754/float128/ieee754_float128.h
@@ -1,5 +1,5 @@
/* _Float128 IEEE like macros.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/math-nan-payload-float128.h b/sysdeps/ieee754/float128/math-nan-payload-float128.h
index 352fe4f..5f7ab6a 100644
--- a/sysdeps/ieee754/float128/math-nan-payload-float128.h
+++ b/sysdeps/ieee754/float128/math-nan-payload-float128.h
@@ -1,5 +1,5 @@
/* NaN payload handling for _Float128.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/mpn2float128.c b/sysdeps/ieee754/float128/mpn2float128.c
index 252a418..2c3423c 100644
--- a/sysdeps/ieee754/float128/mpn2float128.c
+++ b/sysdeps/ieee754/float128/mpn2float128.c
@@ -1,5 +1,5 @@
/* Convert a number in multi-precision format to _Float128.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/s_erfcf128.c b/sysdeps/ieee754/float128/s_erfcf128.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/float128/s_erfcf128.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/float128/s_signbitf128.c b/sysdeps/ieee754/float128/s_signbitf128.c
index 075ce3d..bf33ba2 100644
--- a/sysdeps/ieee754/float128/s_signbitf128.c
+++ b/sysdeps/ieee754/float128/s_signbitf128.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/strfromf128.c b/sysdeps/ieee754/float128/strfromf128.c
index 90e177b..57d89c4 100644
--- a/sysdeps/ieee754/float128/strfromf128.c
+++ b/sysdeps/ieee754/float128/strfromf128.c
@@ -1,6 +1,6 @@
/* Definitions for strfromf128. Implementation in stdlib/strfrom-skeleton.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/ieee754/float128/strtof128.c b/sysdeps/ieee754/float128/strtof128.c
index b90d3b1..2cfba44 100644
--- a/sysdeps/ieee754/float128/strtof128.c
+++ b/sysdeps/ieee754/float128/strtof128.c
@@ -1,5 +1,5 @@
/* strtof128 wrapper of strtof128_l.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/strtof128_l.c b/sysdeps/ieee754/float128/strtof128_l.c
index 540d399..a745c4c 100644
--- a/sysdeps/ieee754/float128/strtof128_l.c
+++ b/sysdeps/ieee754/float128/strtof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/strtof128_nan.c b/sysdeps/ieee754/float128/strtof128_nan.c
index d973462..559d20c 100644
--- a/sysdeps/ieee754/float128/strtof128_nan.c
+++ b/sysdeps/ieee754/float128/strtof128_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Narrow
strings, __float128.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/wcstof128.c b/sysdeps/ieee754/float128/wcstof128.c
index 3aac06e..dd64cd3 100644
--- a/sysdeps/ieee754/float128/wcstof128.c
+++ b/sysdeps/ieee754/float128/wcstof128.c
@@ -1,5 +1,5 @@
/* wcstof128 wrapper of wcstof128_l.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/wcstof128_l.c b/sysdeps/ieee754/float128/wcstof128_l.c
index 6900460..18054aa 100644
--- a/sysdeps/ieee754/float128/wcstof128_l.c
+++ b/sysdeps/ieee754/float128/wcstof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/float128/wcstof128_nan.c b/sysdeps/ieee754/float128/wcstof128_nan.c
index ace2526..40656c4 100644
--- a/sysdeps/ieee754/float128/wcstof128_nan.c
+++ b/sysdeps/ieee754/float128/wcstof128_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings,
_Float128.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/Makefile b/sysdeps/ieee754/flt-32/Makefile
new file mode 100644
index 0000000..aaba9e9
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-real-convs += float
+endif
diff --git a/sysdeps/ieee754/flt-32/e_acosf.c b/sysdeps/ieee754/flt-32/e_acosf.c
index e3b3bbc..820e929 100644
--- a/sysdeps/ieee754/flt-32/e_acosf.c
+++ b/sysdeps/ieee754/flt-32/e_acosf.c
@@ -1,78 +1,130 @@
-/* e_acosf.c -- float version of e_acos.c.
- */
+/* Correctly-rounded arc-cosine function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2023-2024 Alexei Sibidanov.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/acos/acosf.c, revision 56dd347).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <errno.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
+#include <math-barriers.h>
+#include "math_config.h"
+#include "s_asincosf_data.h"
-static const float
-one = 1.0000000000e+00, /* 0x3F800000 */
-pi = 3.1415925026e+00, /* 0x40490fda */
-pio2_hi = 1.5707962513e+00, /* 0x3fc90fda */
-pio2_lo = 7.5497894159e-08, /* 0x33a22168 */
-pS0 = 1.6666667163e-01, /* 0x3e2aaaab */
-pS1 = -3.2556581497e-01, /* 0xbea6b090 */
-pS2 = 2.0121252537e-01, /* 0x3e4e0aa8 */
-pS3 = -4.0055535734e-02, /* 0xbd241146 */
-pS4 = 7.9153501429e-04, /* 0x3a4f7f04 */
-pS5 = 3.4793309169e-05, /* 0x3811ef08 */
-qS1 = -2.4033949375e+00, /* 0xc019d139 */
-qS2 = 2.0209457874e+00, /* 0x4001572d */
-qS3 = -6.8828397989e-01, /* 0xbf303361 */
-qS4 = 7.7038154006e-02; /* 0x3d9dc62e */
+static __attribute__ ((noinline)) float
+as_special (float x)
+{
+ const float pih = 0x1.921fb6p+1;
+ const float pil = -0x1p-24f;
+ uint32_t t = asuint (x);
+ if (t == (0x7fu << 23))
+ return 0.0f; /* x=1 */
+ if (t == (0x17fu << 23))
+ return pih + pil; /* x=-1 */
+ uint32_t ax = t << 1;
+ if (ax > (0xffu << 24))
+ return x + x; /* nan */
+ return __math_invalidf (0.0);
+}
+
+static inline double
+poly12 (double z, const double *c)
+{
+ double z2 = z * z, z4 = z2 * z2;
+ double c0 = c[0] + z * c[1];
+ double c2 = c[2] + z * c[3];
+ double c4 = c[4] + z * c[5];
+ double c6 = c[6] + z * c[7];
+ double c8 = c[8] + z * c[9];
+ double c10 = c[10] + z * c[11];
+ c0 += c2 * z2;
+ c4 += c6 * z2;
+ c8 += z2 * c10;
+ c0 += z4 * (c4 + z4 * c8);
+ return c0;
+}
float
-__ieee754_acosf(float x)
+__ieee754_acosf (float x)
{
- float z,p,q,r,w,s,c,df;
- int32_t hx,ix;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix==0x3f800000) { /* |x|==1 */
- if(hx>0) return 0.0; /* acos(1) = 0 */
- else return pi+(float)2.0*pio2_lo; /* acos(-1)= pi */
- } else if(ix>0x3f800000) { /* |x| >= 1 */
- return (x-x)/(x-x); /* acos(|x|>1) is NaN */
- }
- if(ix<0x3f000000) { /* |x| < 0.5 */
- if(ix<=0x32800000) return pio2_hi+pio2_lo;/*if|x|<=2**-26*/
- z = x*x;
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- r = p/q;
- return pio2_hi - (x - (pio2_lo-x*r));
- } else if (hx<0) { /* x < -0.5 */
- z = (one+x)*(float)0.5;
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- s = sqrtf(z);
- r = p/q;
- w = r*s-pio2_lo;
- return pi - (float)2.0*(s+w);
- } else { /* x > 0.5 */
- int32_t idf;
- z = (one-x)*(float)0.5;
- s = sqrtf(z);
- df = s;
- GET_FLOAT_WORD(idf,df);
- SET_FLOAT_WORD(df,idf&0xfffff000);
- c = (z-df*df)/(s+df);
- p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
- q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
- r = p/q;
- w = r*s+c;
- return (float)2.0*(df+w);
- }
+ double pi2 = 0x1.921fb54442d18p+0;
+ static const double o[] = { 0, 0x1.921fb54442d18p+1 };
+ double xs = x;
+ double r;
+ uint32_t t = asuint (x);
+ uint32_t ax = t << 1;
+ if (__glibc_unlikely (ax >= 0x7f<<24))
+ return as_special (x);
+ if (__glibc_likely (ax < 0x7ec2a1dcu)) /* |x| < 0x1.c2a1dcp-1 */
+ {
+ static const double b[] =
+ {
+ 0x1.fffffffd9ccb8p-1, 0x1.5555c94838007p-3, 0x1.32ded4b7c20fap-4,
+ 0x1.8566df703309ep-5, -0x1.980c959bec9a3p-6, 0x1.56fbb04998344p-1,
+ -0x1.403d8e4c49f52p+2, 0x1.b06c3e9f311eap+4, -0x1.9ea97c4e2c21fp+6,
+ 0x1.200b8261cc61bp+8, -0x1.2274c2799a5c7p+9, 0x1.a558a59cc19d3p+9,
+ -0x1.aca4b6a529ffp+9, 0x1.228744703f813p+9, -0x1.d7dbb0b322228p+7,
+ 0x1.5c2018c0c0105p+5
+ };
+ /* Avoid spurious underflow exception. */
+ if (__glibc_unlikely (ax <= 0x40000000u)) /* |x| < 2^-63 */
+ /* GCC <= 11 wrongly assumes the rounding is to nearest and
+ performs a constant folding here:
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57245 */
+ return math_opt_barrier (pi2);
+ double z = xs;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double z8 = z4 * z4;
+ double z16 = z8 * z8;
+ r = z * ((((b[0] + z2 * b[1]) + z4 * (b[2] + z2 * b[3]))
+ + z8 * ((b[4] + z2 * b[5]) + z4 * (b[6] + z2 * b[7])))
+ + z16 * (((b[8] + z2 * b[9]) + z4 * (b[10] + z2 * b[11]))
+ + z8
+ * ((b[12] + z2 * b[13])+ z4 * (b[14] + z2 * b[15]))));
+ float ub = 0x1.921fb54574191p+0 - r;
+ float lb = 0x1.921fb543118ap+0 - r;
+ if (ub == lb)
+ return ub;
+ }
+ /* accurate path */
+ if (ax < (0x7eu << 24))
+ {
+ if (t == 0x328885a3u)
+ return 0x1.921fb6p+0f + 0x1p-25;
+ if (t == 0x39826222u)
+ return 0x1.920f6ap+0f + 0x1p-25;
+ double x2 = xs * xs;
+ r = (pi2 - xs) - (xs * x2) * poly12 (x2, C0);
+ }
+ else
+ {
+ double bx = fabs (xs);
+ double z = 1.0 - bx;
+ double s = copysign (sqrt (z), xs);
+ r = o[t >> 31] + s * poly12 (z, C1);
+ }
+ return r;
}
libm_alias_finite (__ieee754_acosf, __acosf)
diff --git a/sysdeps/ieee754/flt-32/e_acoshf.c b/sysdeps/ieee754/flt-32/e_acoshf.c
index 2237af4..b2a9c6b 100644
--- a/sysdeps/ieee754/flt-32/e_acoshf.c
+++ b/sysdeps/ieee754/flt-32/e_acoshf.c
@@ -1,49 +1,108 @@
-/* e_acoshf.c -- float version of e_acosh.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: e_acoshf.c,v 1.5 1995/05/12 04:57:20 jtc Exp $";
-#endif
+/* Correctly-rounded inverse hyperbolic cosine function for binary32 format.
+
+Copyright (c) 2023-2024 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/acosh/acoshf.c, revision d0b9ddd).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
#include <math.h>
-#include <math_private.h>
+#include <stdint.h>
#include <libm-alias-finite.h>
+#include "math_config.h"
+#include "s_asincoshf_data.h"
-static const float
-one = 1.0,
-ln2 = 6.9314718246e-01; /* 0x3f317218 */
+static __attribute__ ((noinline)) float
+as_special (float x)
+{
+ uint32_t t = asuint (x);
+ if (t == 0x3f800000u)
+ return 0.0f;
+ if ((t << 1) > 0xff000000u)
+ return x + x; /* nan */
+ if (t == 0x7f800000u)
+ return x; /* inf */
+ return __math_invalidf (x);
+}
-float __ieee754_acoshf(float x)
+float
+__ieee754_acoshf (float x)
{
- float t;
- int32_t hx;
- GET_FLOAT_WORD(hx,x);
- if(hx<0x3f800000) { /* x < 1 */
- return (x-x)/(x-x);
- } else if(hx >=0x4d800000) { /* x > 2**28 */
- if(hx >=0x7f800000) { /* x is inf of NaN */
- return x+x;
- } else
- return __ieee754_logf(x)+ln2; /* acosh(huge)=log(2x) */
- } else if (hx==0x3f800000) {
- return 0.0; /* acosh(1) = 0 */
- } else if (hx > 0x40000000) { /* 2**28 > x > 2 */
- t=x*x;
- return __ieee754_logf((float)2.0*x-one/(x+sqrtf(t-one)));
- } else { /* 1<x<2 */
- t = x-one;
- return __log1pf(t+sqrtf((float)2.0*t+t*t));
+ uint32_t t = asuint (x);
+ if (__glibc_unlikely (t <= 0x3f800000u))
+ return as_special (x);
+ else if (__glibc_unlikely (t <= 0x3f99db23u)) /* x <= 0x1.33b646p+0 */
+ {
+ float zf = x - 1.0f;
+ double z = zf;
+ double a = sqrt (2.0 * z);
+ static const double c[] =
+ {
+ -0x1.555555555491ep-4, 0x1.333333319c2p-6,
+ -0x1.6db6da26e5e0ep-8, 0x1.f1c698b7100cep-10,
+ -0x1.6e7ca9e152dc2p-11, 0x1.1b4cf187158bdp-12,
+ -0x1.b5137f11a88e5p-14, 0x1.056c6c57152b2p-15
+ };
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double f = ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7]));
+ double r = a + (a * z) * f;
+ return r;
+ }
+ else if (__glibc_likely (t < 0x7f800000u))
+ {
+ double xd = x;
+ double x2 = xd * xd;
+ uint64_t tp = asuint64 (xd + sqrt (x2 - 1));
+ uint64_t m = tp & (~UINT64_C(0) >> 12);
+ int j = (m + (UINT64_C(1) << (52 - 8))) >> (52 - 7);
+ int e = (tp >> 52) - 0x3ff;
+ double w = asdouble (m | UINT64_C(0x3ff) << 52);
+ double z = w * IX[j] - 1.0;
+ double z2 = z * z;
+ double r = ((LIX[128] * e + LIX[j]) + z * C[0])
+ + z2 * (C[1] + z * C[2]);
+ if (__glibc_unlikely (((asuint64 (r) + 259000) & INT64_C(0xfffffff))
+ < 260000)) /* accurate path */
+ {
+ z2 = z * z;
+ double c0 = CP[0] + z * CP[1];
+ double c2 = CP[2] + z * CP[3];
+ double c4 = CP[4] + z * CP[5];
+ c0 += z2 * (c2 + z2 * c4);
+ const double ln2l = 0x1.7f7d1cf79abcap-20;
+ const double ln2h = 0x1.62e4p-1;
+ double Lh = ln2h * e;
+ double Ll = ln2l * e;
+ r = fma (z, c0, Ll + LIX[j]) + Lh;
+ if (__glibc_unlikely ((asuint64 (r) & UINT64_C(0xfffffff)) == 0))
+ {
+ double h = fma (z, c0, Ll + LIX[j]) + (Lh - r);
+ r = r + 64.0 * h;
+ }
}
+ return r;
+ }
+ else
+ return as_special (x);
}
libm_alias_finite (__ieee754_acoshf, __acoshf)
diff --git a/sysdeps/ieee754/flt-32/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c
index d9f446d..c6972d2 100644
--- a/sysdeps/ieee754/flt-32/e_asinf.c
+++ b/sysdeps/ieee754/flt-32/e_asinf.c
@@ -1,105 +1,118 @@
-/* e_asinf.c -- float version of e_asin.c.
- */
+/* Correctly-rounded arc-sine function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2023-2024 Alexei Sibidanov.
-/*
- Modifications for single precision expansion are
- Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
- and are incorporated herein by permission of the author. The author
- reserves the right to distribute this material elsewhere under different
- copying permissions. These modifications are distributed here under
- the following terms:
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asin/asinf.c, revision bc385c2).
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see
- <https://www.gnu.org/licenses/>. */
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: e_asinf.c,v 1.5 1995/05/12 04:57:25 jtc Exp $";
-#endif
-
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
+#include <stdint.h>
+#include <errno.h>
#include <libm-alias-finite.h>
+#include "math_config.h"
+#include "s_asincosf_data.h"
-static const float
-one = 1.0000000000e+00, /* 0x3F800000 */
-huge = 1.000e+30,
-
-pio2_hi = 1.57079637050628662109375f,
-pio2_lo = -4.37113900018624283e-8f,
-pio4_hi = 0.785398185253143310546875f,
+static __attribute__ ((noinline)) float
+as_special (float x)
+{
+ uint32_t ax = asuint (x) << 1;
+ if (ax > (0xffu << 24))
+ return x + x; /* nan */
+ return __math_invalidf (0.0);
+}
-/* asin x = x + x^3 p(x^2)
- -0.5 <= x <= 0.5;
- Peak relative error 4.8e-9 */
-p0 = 1.666675248e-1f,
-p1 = 7.495297643e-2f,
-p2 = 4.547037598e-2f,
-p3 = 2.417951451e-2f,
-p4 = 4.216630880e-2f;
+static double
+poly12 (double z, const double *c)
+{
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double c0 = c[0] + z * c[1];
+ double c2 = c[2] + z * c[3];
+ double c4 = c[4] + z * c[5];
+ double c6 = c[6] + z * c[7];
+ double c8 = c[8] + z * c[9];
+ double c10 = c[10] + z * c[11];
+ c0 += c2 * z2;
+ c4 += c6 * z2;
+ c8 += z2 * c10;
+ c0 += z4 * (c4 + z4 * c8);
+ return c0;
+}
-float __ieee754_asinf(float x)
+float
+__ieee754_asinf (float x)
{
- float t,w,p,q,c,r,s;
- int32_t hx,ix;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix==0x3f800000) {
- /* asin(1)=+-pi/2 with inexact */
- return x*pio2_hi+x*pio2_lo;
- } else if(ix> 0x3f800000) { /* |x|>= 1 */
- return (x-x)/(x-x); /* asin(|x|>1) is NaN */
- } else if (ix<0x3f000000) { /* |x|<0.5 */
- if(ix<0x32000000) { /* if |x| < 2**-27 */
- math_check_force_underflow (x);
- if(huge+x>one) return x;/* return x with inexact if x!=0*/
- } else {
- t = x*x;
- w = t * (p0 + t * (p1 + t * (p2 + t * (p3 + t * p4))));
- return x+x*w;
- }
- }
- /* 1> |x|>= 0.5 */
- w = one-fabsf(x);
- t = w*0.5f;
- p = t * (p0 + t * (p1 + t * (p2 + t * (p3 + t * p4))));
- s = sqrtf(t);
- if(ix>=0x3F79999A) { /* if |x| > 0.975 */
- t = pio2_hi-(2.0f*(s+s*p)-pio2_lo);
- } else {
- int32_t iw;
- w = s;
- GET_FLOAT_WORD(iw,w);
- SET_FLOAT_WORD(w,iw&0xfffff000);
- c = (t-w*w)/(s+w);
- r = p;
- p = 2.0f*s*r-(pio2_lo-2.0f*c);
- q = pio4_hi-2.0f*w;
- t = pio4_hi-(p-q);
- }
- if(hx>0) return t; else return -t;
+ const double pi2 = 0x1.921fb54442d18p+0;
+ double xs = x;
+ double r;
+ uint32_t ax = asuint (x) << 1;
+ if (__glibc_unlikely (ax > 0x7f << 24))
+ return as_special(x);
+ if (__glibc_likely (ax < 0x7ec29000u))
+ {
+ if (__glibc_unlikely (ax < 115 << 24))
+ return fmaf (x, 0x1p-25, x);
+ static const double b[] =
+ {
+ 0x1.0000000000005p+0, 0x1.55557aeca105dp-3, 0x1.3314ec3db7d12p-4,
+ 0x1.775738a5a6f92p-5, 0x1.5d5f7ce1c8538p-8, 0x1.605c6d58740fp-2,
+ -0x1.5728b732d73c6p+1, 0x1.f152170f151ebp+3, -0x1.f962ea3ca992ep+5,
+ 0x1.71971e17375ap+7, -0x1.860512b4ba23p+8, 0x1.26a3b8d4bdb14p+9,
+ -0x1.36f2ea5698b51p+9, 0x1.b3d722aebfa2ep+8, -0x1.6cf89703b1289p+7,
+ 0x1.1518af6a65e2dp+5
+ };
+ double z = xs;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double z8 = z4 * z4;
+ double z16 = z8 * z8;
+ r = z * ((((b[0] + z2 * b[1]) + z4 * (b[2] + z2 * b[3]))
+ + z8 * ((b[4] + z2 * b[5]) + z4 * (b[6] + z2 * b[7])))
+ + z16 * (((b[8] + z2 * b[9]) + z4 * (b[10] + z2 * b[11]))
+ + z8 * ((b[12] + z2 * b[13])
+ + z4 * (b[14] + z2 * b[15]))));
+ float ub = r;
+ float lb = r - z * 0x1.efa8ebp-31;
+ if (ub == lb)
+ return ub;
+ }
+ if (ax < (0x7eu << 24))
+ {
+ double z = xs;
+ double z2 = z * z;
+ double c0 = poly12 (z2, C0);
+ r = z + (z * z2) * c0;
+ }
+ else
+ {
+ if (__glibc_unlikely (ax == 0x7e55688au))
+ return copysignf (0x1.75b8a2p-1f, x) + copysignf (0x1p-26f, x);
+ if (__glibc_unlikely (ax == 0x7e107434u))
+ return copysignf (0x1.1f4b64p-1f, x) + copysignf (0x1p-26f, x);
+ double bx = fabs (xs);
+ double z = 1.0 - bx;
+ double s = sqrt (z);
+ r = pi2 - s * poly12 (z, C1);
+ r = copysign (r, xs);
+ }
+ return r;
}
libm_alias_finite (__ieee754_asinf, __asinf)
diff --git a/sysdeps/ieee754/flt-32/e_atan2f.c b/sysdeps/ieee754/flt-32/e_atan2f.c
index 7517406..82a0151 100644
--- a/sysdeps/ieee754/flt-32/e_atan2f.c
+++ b/sysdeps/ieee754/flt-32/e_atan2f.c
@@ -1,94 +1,274 @@
-/* e_atan2f.c -- float version of e_atan2.c.
- */
+/* Correctly-rounded arctangent function of two binary32 values.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov and Paul Zimmermann.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/atan2/atan2f.c, revision 7835c5d).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
#include <math.h>
-#include <math_private.h>
+#include <stdint.h>
#include <libm-alias-finite.h>
+#include "math_config.h"
-static const float
-tiny = 1.0e-30,
-zero = 0.0,
-pi_o_4 = 7.8539818525e-01, /* 0x3f490fdb */
-pi_o_2 = 1.5707963705e+00, /* 0x3fc90fdb */
-pi = 3.1415927410e+00, /* 0x40490fdb */
-pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */
+static inline double
+muldd (double xh, double xl, double ch, double cl, double *l)
+{
+ double ahlh = ch * xl;
+ double alhh = cl * xh;
+ double ahhh = ch * xh;
+ double ahhl = fma (ch, xh, -ahhh);
+ ahhl += alhh + ahlh;
+ ch = ahhh + ahhl;
+ *l = (ahhh - ch) + ahhl;
+ return ch;
+}
-float
-__ieee754_atan2f (float y, float x)
+static double
+polydd (double xh, double xl, int n, const double c[][2], double *l)
{
- float z;
- int32_t k,m,hx,hy,ix,iy;
+ int i = n - 1;
+ double ch = c[i][0];
+ double cl = c[i][1];
+ while (--i >= 0)
+ {
+ ch = muldd (xh, xl, ch, cl, &cl);
+ double th = ch + c[i][0];
+ double tl = (c[i][0] - th) + ch;
+ ch = th;
+ cl += tl + c[i][1];
+ }
+ *l = cl;
+ return ch;
+}
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- GET_FLOAT_WORD(hy,y);
- iy = hy&0x7fffffff;
- if((ix>0x7f800000)||
- (iy>0x7f800000)) /* x or y is NaN */
- return x+y;
- if(hx==0x3f800000) return __atanf(y); /* x=1.0 */
- m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
+/* for y/x tiny, use Taylor approximation z - z^3/3 where z=y/x */
+static float
+cr_atan2f_tiny (float y, float x)
+{
+ double dy = y;
+ double dx = x;
+ double z = dy / dx;
+ double e = fma (-z, x, y);
+ /* z * x + e = y thus y/x = z + e/x */
+ static const double c = -0x1.5555555555555p-2; /* -1/3 rounded to nearest */
+ double zz = z * z;
+ double cz = c * z;
+ e = e / x + cz * zz;
+ uint64_t t = asuint64 (z);
+ if ((t & UINT64_C(0xfffffff)) == 0) /* boundary case */
+ {
+ /* If z and e are of same sign (resp. of different signs), we increase
+ (resp. decrease) the significant of t by 1 to avoid a double-rounding
+ issue when rounding t to binary32. */
+ if (z * e > 0)
+ t += 1;
+ else
+ t -= 1;
+ }
+ return asdouble (t);
+}
- /* when y = 0 */
- if(iy==0) {
- switch(m) {
- case 0:
- case 1: return y; /* atan(+-0,+anything)=+-0 */
- case 2: return pi+tiny;/* atan(+0,-anything) = pi */
- case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
- }
+float
+__ieee754_atan2f (float y, float x)
+{
+ static const double cn[] =
+ {
+ 0x1p+0, 0x1.40e0698f94c35p+1, 0x1.248c5da347f0dp+1,
+ 0x1.d873386572976p-1, 0x1.46fa40b20f1dp-3, 0x1.33f5e041eed0fp-7,
+ 0x1.546bbf28667c5p-14
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, 0x1.6b8b143a3f6dap+1, 0x1.8421201d18ed5p+1,
+ 0x1.8221d086914ebp+0, 0x1.670657e3a07bap-2, 0x1.0f4951fd1e72dp-5,
+ 0x1.b3874b8798286p-11
+ };
+ static const double m[] = { 0, 1 };
+#define pi 0x1.921fb54442d18p+1
+#define pi2 0x1.921fb54442d18p+0
+#define pi2l 0x1.1a62633145c07p-54
+ static const double off[] = { 0.0f, pi2, pi, pi2, -0.0f, -pi2, -pi, -pi2 };
+ static const double offl[] =
+ {
+ 0.0f, pi2l, 2 * pi2l, pi2l, -0.0f, -pi2l, -2 * pi2l, -pi2l
+ };
+ static const double sgn[] = { 1, -1 };
+ uint32_t ux = asuint (x);
+ uint32_t uy = asuint (y);
+ uint32_t ax = ux & (~0u >> 1);
+ uint32_t ay = uy & (~0u >> 1);
+ if (__glibc_unlikely (ay >= (0xff << 23) || ax >= (0xff << 23)))
+ {
+ /* we use x+y below so that the invalid exception is set
+ for (x,y) = (qnan,snan) or (snan,qnan) */
+ if (ay > (0xff << 23))
+ return x + y; /* nan */
+ if (ax > (0xff << 23))
+ return x + y; /* nan */
+ bool yinf = ay == (0xff << 23);
+ bool xinf = ax == (0xff << 23);
+ if (yinf & xinf)
+ {
+ if (ux >> 31)
+ return 0x1.2d97c7f3321d2p+1 * sgn[uy >> 31]; /* +/-3pi/4 */
+ else
+ return 0x1.921fb54442d18p-1 * sgn[uy >> 31]; /* +/-pi/4 */
}
- /* when x = 0 */
- if(ix==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
-
- /* when x is INF */
- if(ix==0x7f800000) {
- if(iy==0x7f800000) {
- switch(m) {
- case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */
- case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
- case 2: return (float)3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
- case 3: return (float)-3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
- }
- } else {
- switch(m) {
- case 0: return zero ; /* atan(+...,+INF) */
- case 1: return -zero ; /* atan(-...,+INF) */
- case 2: return pi+tiny ; /* atan(+...,-INF) */
- case 3: return -pi-tiny ; /* atan(-...,-INF) */
- }
- }
+ if (xinf)
+ {
+ if (ux >> 31)
+ return pi * sgn[uy >> 31];
+ else
+ return 0.0f * sgn[uy >> 31];
+ }
+ if (yinf)
+ return pi2 * sgn[uy >> 31];
+ }
+ if (__glibc_unlikely (ay == 0))
+ {
+ if (__glibc_unlikely (!ax))
+ {
+ uint32_t i = (uy >> 31) * 4 + (ux >> 31) * 2;
+ if (ux >> 31)
+ return off[i] + offl[i];
+ else
+ return off[i];
}
- /* when y is INF */
- if(iy==0x7f800000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+ if (!(ux >> 31))
+ return 0.0f * sgn[uy >> 31];
+ }
+ uint32_t gt = ay > ax;
+ uint32_t i = (uy >> 31) * 4 + (ux >> 31) * 2 + gt;
- /* compute y/x */
- k = (iy-ix)>>23;
- if(k > 60) z=pi_o_2+(float)0.5*pi_lo; /* |y/x| > 2**60 */
- else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */
- else z=__atanf(fabsf(y/x)); /* safe to do y/x */
- switch (m) {
- case 0: return z ; /* atan(+,+) */
- case 1: {
- uint32_t zh;
- GET_FLOAT_WORD(zh,z);
- SET_FLOAT_WORD(z,zh ^ 0x80000000);
- }
- return z ; /* atan(-,+) */
- case 2: return pi-(z-pi_lo);/* atan(+,-) */
- default: /* case 3 */
- return (z-pi_lo)-pi;/* atan(-,-) */
+ double zx = x;
+ double zy = y;
+ double z = (m[gt] * zx + m[1 - gt] * zy) / (m[gt] * zy + m[1 - gt] * zx);
+ /* z = x/y if |y| > |x|, and z = y/x otherwise */
+ double r;
+ int d = (int) ax - (int) ay;
+ if (__glibc_likely (d < (27 << 23) && d > (-(27 << 23))))
+ {
+ double z2 = z * z, z4 = z2 * z2, z8 = z4 * z4;
+ /* z2 cannot underflow, since for |y|=0x1p-149 and |x|=0x1.fffffep+127
+ we get |z| > 2^-277 thus z2 > 2^-554, but z4 and z8 might underflow,
+ which might give spurious underflow exceptions. */
+ double cn0 = cn[0] + z2 * cn[1];
+ double cn2 = cn[2] + z2 * cn[3];
+ double cn4 = cn[4] + z2 * cn[5];
+ double cn6 = cn[6];
+ cn0 += z4 * cn2;
+ cn4 += z4 * cn6;
+ cn0 += z8 * cn4;
+ double cd0 = cd[0] + z2 * cd[1];
+ double cd2 = cd[2] + z2 * cd[3];
+ double cd4 = cd[4] + z2 * cd[5];
+ double cd6 = cd[6];
+ cd0 += z4 * cd2;
+ cd4 += z4 * cd6;
+ cd0 += z8 * cd4;
+ r = cn0 / cd0;
+ }
+ else
+ r = 1;
+ z *= sgn[gt];
+ r = z * r + off[i];
+ if (__glibc_unlikely (((asuint64 (r) + 8) & 0xfffffff) <= 16))
+ {
+ /* check tiny y/x */
+ if (ay < ax && ((ax - ay) >> 23 >= 25))
+ return cr_atan2f_tiny (y, x);
+ double zh;
+ double zl;
+ if (gt == 0)
+ {
+ zh = zy / zx;
+ zl = fma (zh, -zx, zy) / zx;
+ }
+ else
+ {
+ zh = zx / zy;
+ zl = fma (zh, -zy, zx) / zy;
+ }
+ double z2l;
+ double z2h = muldd (zh, zl, zh, zl, &z2l);
+ static const double c[32][2] =
+ {
+ { 0x1p+0, -0x1.8c1dac5492248p-87 },
+ { -0x1.5555555555555p-2, -0x1.55553bf3a2abep-56 },
+ { 0x1.999999999999ap-3, -0x1.99deed1ec9071p-57 },
+ { -0x1.2492492492492p-3, -0x1.fd99c8d18269ap-58 },
+ { 0x1.c71c71c71c717p-4, -0x1.651eee4c4d9dp-61 },
+ { -0x1.745d1745d1649p-4, -0x1.632683d6c44a6p-58 },
+ { 0x1.3b13b13b11c63p-4, 0x1.bf69c1f8af41dp-58 },
+ { -0x1.11111110e6338p-4, 0x1.3c3e431e8bb68p-61 },
+ { 0x1.e1e1e1dc45c4ap-5, -0x1.be2db05c77bbfp-59 },
+ { -0x1.af286b8164b4fp-5, 0x1.a4673491f0942p-61 },
+ { 0x1.86185e9ad4846p-5, 0x1.e12e32d79fceep-59 },
+ { -0x1.642c6d5161faep-5, 0x1.3ce76c1ca03fp-59 },
+ { 0x1.47ad6f277e5bfp-5, -0x1.abd8d85bdb714p-60 },
+ { -0x1.2f64a2ee8896dp-5, 0x1.ef87d4b615323p-61 },
+ { 0x1.1a6a2b31741b5p-5, 0x1.a5d9d973547eep-62 },
+ { -0x1.07fbdad65e0a6p-5, -0x1.65ac07f5d35f4p-61 },
+ { 0x1.ee9932a9a5f8bp-6, 0x1.f8b9623f6f55ap-61 },
+ { -0x1.ce8b5b9584dc6p-6, 0x1.fe5af96e8ea2dp-61 },
+ { 0x1.ac9cb288087b7p-6, -0x1.450cdfceaf5cap-60 },
+ { -0x1.84b025351f3e6p-6, 0x1.579561b0d73dap-61 },
+ { 0x1.52f5b8ecdd52bp-6, 0x1.036bd2c6fba47p-60 },
+ { -0x1.163a8c44909dcp-6, 0x1.18f735ffb9f16p-60 },
+ { 0x1.a400dce3eea6fp-7, -0x1.c90569c0c1b5cp-61 },
+ { -0x1.1caa78ae6db3ap-7, -0x1.4c60f8161ea09p-61 },
+ { 0x1.52672453c0731p-8, 0x1.834efb598c338p-62 },
+ { -0x1.5850c5be137cfp-9, -0x1.445fc150ca7f5p-63 },
+ { 0x1.23eb98d22e1cap-10, -0x1.388fbaf1d783p-64 },
+ { -0x1.8f4e974a40741p-12, 0x1.271198a97da34p-66 },
+ { 0x1.a5cf2e9cf76e5p-14, -0x1.887eb4a63b665p-68 },
+ { -0x1.420c270719e32p-16, 0x1.efd595b27888bp-71 },
+ { 0x1.3ba2d69b51677p-19, -0x1.4fb06829cdfc7p-73 },
+ { -0x1.29b7e6f676385p-23, -0x1.a783b6de718fbp-77 }
+ };
+ double pl;
+ double ph = polydd (z2h, z2l, 32, c, &pl);
+ zh *= sgn[gt];
+ zl *= sgn[gt];
+ ph = muldd (zh, zl, ph, pl, &pl);
+ double sh = ph + off[i];
+ double sl = ((off[i] - sh) + ph) + pl + offl[i];
+ float rf = sh;
+ double th = rf;
+ double dh = sh - th;
+ double tm = dh + sl;
+ uint64_t tth = asuint64 (th);
+ if (th + th * 0x1p-60 == th - th * 0x1p-60)
+ {
+ tth &= UINT64_C(0x7ff) << 52;
+ tth -= UINT64_C(24) << 52;
+ if (fabs (tm) > asdouble (tth))
+ tm *= 1.25;
+ else
+ tm *= 0.75;
}
+ r = th + tm;
+ }
+ return r;
}
libm_alias_finite (__ieee754_atan2f, __atan2f)
diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
index d36eb15..eeb1aae 100644
--- a/sysdeps/ieee754/flt-32/e_atanhf.c
+++ b/sysdeps/ieee754/flt-32/e_atanhf.c
@@ -1,76 +1,178 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+/* Correctly-rounded inverse hyperbolic tangent function for binary32 value.
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+Copyright (c) 2023-2024 Alexei Sibidanov.
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/acosh/acoshf.c, revision 4d6192d2).
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-/* __ieee754_atanh(x)
- Method :
- 1.Reduced x to positive by atanh(-x) = -atanh(x)
- 2.For x>=0.5
- 1 2x x
- atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
- 2 1 - x 1 - x
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
- For x<0.5
- atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
-
- Special cases:
- atanh(x) is NaN if |x| > 1 with signal;
- atanh(NaN) is that NaN with no signal;
- atanh(+-1) is +-INF with signal.
-
- */
-
-#include <float.h>
-#include <inttypes.h>
#include <math.h>
-#include <math-barriers.h>
-#include <math_private.h>
-#include <math-underflow.h>
+#include <stdint.h>
#include <libm-alias-finite.h>
+#include "math_config.h"
-static const float huge = 1e30;
+static __attribute__((noinline)) float
+as_special (float x)
+{
+ uint32_t ix = asuint (x);
+ uint32_t ax = ix << 1;
+ if (ax == 0x7f000000u) /* +-1 */
+ return __math_divzerof (ix >> 31);
+ if (ax > 0xff000000u)
+ return x + x; /* nan */
+ return __math_invalidf (x);
+}
float
__ieee754_atanhf (float x)
{
- float xa = fabsf (x);
- float t;
- if (isless (xa, 0.5f))
+ /* Calculate atanh(x) using the difference of two logarithms -- atanh(x) =
+ (ln(1+x) - ln(1-x))/2 */
+ static const double tr[] =
+ {
+ 0x1.fc07f02p-1, 0x1.f44659ep-1, 0x1.ecc07b3p-1, 0x1.e573ac9p-1,
+ 0x1.de5d6e4p-1, 0x1.d77b655p-1, 0x1.d0cb58fp-1, 0x1.ca4b305p-1,
+ 0x1.c3f8f02p-1, 0x1.bdd2b8ap-1, 0x1.b7d6c3ep-1, 0x1.b20364p-1,
+ 0x1.ac5701bp-1, 0x1.a6d01a7p-1, 0x1.a16d3f9p-1, 0x1.9c2d14fp-1,
+ 0x1.970e4f8p-1, 0x1.920fb4ap-1, 0x1.8d3018dp-1, 0x1.886e5f1p-1,
+ 0x1.83c977bp-1, 0x1.7f405fdp-1, 0x1.7ad2209p-1, 0x1.767dce4p-1,
+ 0x1.724287fp-1, 0x1.6e1f76bp-1, 0x1.6a13cd1p-1, 0x1.661ec6ap-1,
+ 0x1.623fa77p-1, 0x1.5e75bb9p-1, 0x1.5ac056bp-1, 0x1.571ed3cp-1,
+ 0x1.5390949p-1, 0x1.5015015p-1, 0x1.4cab887p-1, 0x1.49539e4p-1,
+ 0x1.460cbc8p-1, 0x1.42d6626p-1, 0x1.3fb014p-1, 0x1.3c995a4p-1,
+ 0x1.3991c2cp-1, 0x1.3698df4p-1, 0x1.33ae45bp-1, 0x1.30d1901p-1,
+ 0x1.2e025cp-1, 0x1.2b404adp-1, 0x1.288b013p-1, 0x1.25e2271p-1,
+ 0x1.2345679p-1, 0x1.20b470cp-1, 0x1.1e2ef3bp-1, 0x1.1bb4a4p-1,
+ 0x1.1945381p-1, 0x1.16e0689p-1, 0x1.1485f0ep-1, 0x1.12358e7p-1,
+ 0x1.0fef011p-1, 0x1.0db20a9p-1, 0x1.0b7e6ecp-1, 0x1.0953f39p-1,
+ 0x1.073260ap-1, 0x1.05197f8p-1, 0x1.03091b5p-1, 0x1.010101p-1
+ };
+ static const double tl[] =
+ {
+ 0x1.fe02a69106789p-9, 0x1.7b91b1155b11bp-7, 0x1.39e87ba1ebd6p-6,
+ 0x1.b42dd713971bfp-6, 0x1.16536ee637ae1p-5, 0x1.51b073c96183fp-5,
+ 0x1.8c345da019b21p-5, 0x1.c5e5492abc743p-5, 0x1.fec912fbbeabbp-5,
+ 0x1.1b72ad33f67ap-4, 0x1.371fc1f6e8f74p-4, 0x1.526e5e5a1b438p-4,
+ 0x1.6d60fe601d21dp-4, 0x1.87fa06438c911p-4, 0x1.a23bc223ab563p-4,
+ 0x1.bc28673a58cd6p-4, 0x1.d5c216b8fbb91p-4, 0x1.ef0adcaec5936p-4,
+ 0x1.040259530d041p-3, 0x1.1058bf8d24ad5p-3, 0x1.1c898c09d99fbp-3,
+ 0x1.2895a13e286a3p-3, 0x1.347dd9a447d55p-3, 0x1.404308716a7e4p-3,
+ 0x1.4be5f963b78a1p-3, 0x1.5767718015a6cp-3, 0x1.62c82f3a5c795p-3,
+ 0x1.6e08eab13a1e4p-3, 0x1.792a55fe147a2p-3, 0x1.842d1d9928b17p-3,
+ 0x1.8f11e873a62c7p-3, 0x1.99d958207e08bp-3, 0x1.a484090c1bb0ap-3,
+ 0x1.af129324b786bp-3, 0x1.b9858970710fbp-3, 0x1.c3dd7a6ddad4dp-3,
+ 0x1.ce1af0b65f3ebp-3, 0x1.d83e725022f3ep-3, 0x1.e2488197c6c26p-3,
+ 0x1.ec399d3d68ccp-3, 0x1.f6123fac028acp-3, 0x1.ffd2e07e7f498p-3,
+ 0x1.04bdf9e3b26d2p-2, 0x1.0986f4fa93521p-2, 0x1.0e4498651cc8cp-2,
+ 0x1.12f719595efbcp-2, 0x1.179eabb0a99a1p-2, 0x1.1c3b81e933c25p-2,
+ 0x1.20cdcd0e0ab6ep-2, 0x1.2555bcf50f7cbp-2, 0x1.29d37ff34b08bp-2,
+ 0x1.2e47437640268p-2, 0x1.32b1338401d71p-2, 0x1.37117b5c147b6p-2,
+ 0x1.3b6844a13fc23p-2, 0x1.3fb5b857f6f42p-2, 0x1.43f9fe2f7ce67p-2,
+ 0x1.48353d11488dfp-2, 0x1.4c679b014ee3ap-2, 0x1.50913cc03686bp-2,
+ 0x1.54b2468259498p-2, 0x1.58cadb57d7989p-2, 0x1.5cdb1dcaa1765p-2,
+ 0x1.60e32f46788d9p-2
+ };
+ static const double ln2n[] =
+ {
+ 0x1.62e42fedb2a44p-2, 0x1.62e42feeab21ap-1, 0x1.0a2b23f33e789p+0,
+ 0x1.62e42fef27604p+0, 0x1.bb9d3beb1048p+0, 0x1.0a2b23f37c97ep+1,
+ 0x1.3687a9f1710bcp+1, 0x1.62e42fef657fap+1, 0x1.8f40b5ed59f38p+1,
+ 0x1.bb9d3beb4e676p+1, 0x1.e7f9c1e942db4p+1, 0x1.0a2b23f39ba79p+2,
+ 0x1.205966f295e18p+2, 0x1.3687a9f1901b7p+2, 0x1.4cb5ecf08a556p+2,
+ 0x1.62e42fef848f5p+2, 0x1.791272ee7ec93p+2, 0x1.8f40b5ed79032p+2,
+ 0x1.a56ef8ec733d1p+2, 0x1.bb9d3beb6d77p+2, 0x1.d1cb7eea67b0fp+2,
+ 0x1.e7f9c1e961eaep+2, 0x1.fe2804e85c24dp+2, 0x1.0a2b23f3ab2f6p+3
+ };
+ static const double b[] =
{
- if (__glibc_unlikely (xa < 0x1.0p-28f))
+ 0x1.fffffffce5a6ap-2, -0x1.0001f81ec0ab8p-2, 0x1.555a0f53d79a5p-3
+ };
+ static const double s[] = { 1, -1 };
+
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux << 1;
+ if (__glibc_unlikely (ax < 0x7a300000u || ax >= 0x7f000000u))
+ {
+ if (__glibc_unlikely (ax >= 0x7f000000u))
+ return as_special (x);
+ if (__glibc_unlikely (ax < 0x73713744u))
{
- math_force_eval (huge + x);
- math_check_force_underflow (x);
- return x;
+ if (ax == 0)
+ return x; /* x = +-0 */
+ return fmaf (x, 0x1p-25f, x); /* |x| < 0.000352112(0x1.713744p-12) */
+ }
+ else
+ { /* |x| < 0x1.3p-5 */
+ static const double c[] =
+ {
+ 0x1.5555555555527p-2, 0x1.9999999ba4ee8p-3,
+ 0x1.24922c280990ap-3, 0x1.c8236aae809c6p-4
+ };
+ double z = x;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double r = c[0] + z2 * c[1] + z4 * (c[2] + z2 * c[3]);
+ return z + (z * z2) * r;
}
-
- t = xa + xa;
- t = 0.5f * __log1pf (t + t * xa / (1.0f - xa));
}
- else if (__glibc_likely (isless (xa, 1.0f)))
- t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa));
- else
+ double sgn = s[ux >> 31];
+ unsigned int e = ax >> 24;
+ unsigned int md = ((ux << 8) | 1U << 31) >> (126 - e);
+ unsigned int mn = -md;
+ int nz = __builtin_clz (mn) + 1;
+ mn <<= nz;
+ unsigned int jn = mn >> 26;
+ unsigned int jd = md >> 26;
+ double tn = asdouble (((int64_t) mn << 20) | (INT64_C(1023) << 52));
+ double td = asdouble (((int64_t) md << 20) | (INT64_C(1023) << 52));
+ double zn = tn * tr[jn] - 1;
+ double zd = td * tr[jd] - 1;
+ double zn2 = zn * zn;
+ double zd2 = zd * zd;
+ double rn = ((tl[jn] - ln2n[nz - 1]) + zn * b[0]) + zn2 * (b[1] + zn * b[2]);
+ double rd = (tl[jd] + zd * b[0]) + zd2 * (b[1] + zd * b[2]);
+ double r = sgn * (rd - rn);
+ float ub = r;
+ float lb = r + sgn * 0.226e-9;
+ if (__glibc_unlikely (ub != lb))
{
- if (isgreater (xa, 1.0f))
- return (x - x) / (x - x);
-
- return x / 0.0f;
+ static const double c[] =
+ {
+ 0x1p-1, -0x1.000000000001bp-2, 0x1.55555555555bap-3,
+ -0x1.fffffff26d72ep-4, 0x1.99999989035p-4, -0x1.555c39cb9ee8p-4,
+ 0x1.24992d8b014a1p-4
+ };
+ double zn4 = zn2 * zn2;
+ double zd4 = zd2 * zd2;
+ double fn = zn * (((c[0] + zn * c[1]) + zn2 * (c[2] + zn * c[3]))
+ + zn4 * ((c[4] + zn * c[5]) + zn2 * c[6]));
+ fn += 0x1.0ca86c3898dp-50 * nz;
+ fn += tl[jn];
+ double en = nz * 0x1.62e42fefa3ap-2;
+ double fd = zd * (((c[0] + zd * c[1]) + zd2 * (c[2] + zd * c[3]))
+ + zd4 * ((c[4] + zd * c[5]) + zd2 * c[6]));
+ fd += tl[jd];
+ r = fd - fn + en;
+ ub = sgn * r;
}
-
- return copysignf (t, x);
+ return ub;
}
libm_alias_finite (__ieee754_atanhf, __atanhf)
diff --git a/sysdeps/ieee754/flt-32/e_coshf.c b/sysdeps/ieee754/flt-32/e_coshf.c
index 052d387..382cd55 100644
--- a/sysdeps/ieee754/flt-32/e_coshf.c
+++ b/sysdeps/ieee754/flt-32/e_coshf.c
@@ -1,63 +1,95 @@
-/* e_coshf.c -- float version of e_cosh.c.
- */
+/* Correctly-rounded hyperbolic cosine function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/cosh/coshf.c, revision de59ecfb).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <stdint.h>
#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
#include <libm-alias-finite.h>
-
-static const float huge = 1.0e30;
-static const float one = 1.0, half=0.5;
+#include "math_config.h"
+#include "e_sincoshf_data.h"
float
__ieee754_coshf (float x)
{
- float t,w;
- int32_t ix;
-
- GET_FLOAT_WORD(ix,x);
- ix &= 0x7fffffff;
-
- /* |x| in [0,22] */
- if (ix < 0x41b00000) {
- /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
- if(ix<0x3eb17218) {
- if (ix<0x24000000) return one; /* cosh(tiny) = 1 */
- t = __expm1f(fabsf(x));
- w = one+t;
- return one+(t*t)/(w+w);
- }
-
- /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
- t = __ieee754_expf(fabsf(x));
- return half*t+half/t;
+ const double iln2 = 0x1.71547652b82fep+5;
+ double z = x;
+ uint32_t ax = asuint (x) << 1;
+ if (__glibc_unlikely (ax > 0x8565a9f8u))
+ { /* |x| >~ 89.4 */
+ if (ax >= 0xff000000u)
+ {
+ if (ax << 8)
+ return x + x; /* nan */
+ return INFINITY; /* +-inf */
}
-
- /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
- if (ix < 0x42b17180) return half*__ieee754_expf(fabsf(x));
-
- /* |x| in [log(maxdouble), overflowthresold] */
- if (ix<=0x42b2d4fc) {
- w = __ieee754_expf(half*fabsf(x));
- t = half*w;
- return t*w;
+ return __math_oflowf (0);
+ }
+ if (__glibc_unlikely (ax < 0x7c000000u))
+ { /* |x| < 0.125 */
+ if (__glibc_unlikely (ax < 0x74000000u))
+ { /* |x| < 0x1p-11 */
+ if (__glibc_unlikely (ax < 0x66000000u)) /* |x| < 0x1p-24 */
+ return fmaf (fabsf (x), 0x1p-25, 1.0f);
+ return (0.5f * x) * x + 1.0f;
}
-
- /* x is INF or NaN */
- if(ix>=0x7f800000) return x*x;
-
- /* |x| > overflowthresold, cosh(x) overflow */
- return math_narrow_eval (huge*huge);
+ static const double cp[] =
+ {
+ 0x1.fffffffffffe3p-2, 0x1.55555555723cfp-5,
+ 0x1.6c16bee4a5986p-10, 0x1.a0483fc0328f7p-16
+ };
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ return 1.0 + z2 * ((cp[0] + z2 * cp[1]) + z4 * (cp[2] + z2 * (cp[3])));
+ }
+ double a = iln2 * z;
+ double ia = roundeven_finite (a);
+ double h = a - ia;
+ double h2 = h * h;
+ int64_t jp = asuint64 (ia + 0x1.8p52);
+ int64_t jm = -jp;
+ double sp = asdouble (TB[jp & 31] + ((uint64_t)(jp >> 5) << 52));
+ double sm = asdouble (TB[jm & 31] + ((uint64_t)(jm >> 5) << 52));
+ double te = C[0] + h2 * C[2];
+ double to = (C[1] + h2 * C[3]);
+ double rp = sp * (te + h * to);
+ double rm = sm * (te - h * to);
+ double r = rp + rm;
+ float ub = r;
+ double lb = r - 1.45e-10 * r;
+ if (__glibc_unlikely (ub != lb))
+ {
+ const double iln2h = 0x1.7154765p+5;
+ const double iln2l = 0x1.5c17f0bbbe88p-26;
+ h = (iln2h * z - ia) + iln2l * z;
+ h2 = h * h;
+ te = CH[0] + h2 * CH[2] + (h2 * h2) * (CH[4] + h2 * CH[6]);
+ to = CH[1] + h2 * (CH[3] + h2
+ * CH[5]);
+ r = sp * (te + h * to) + sm * (te - h * to);
+ ub = r;
+ }
+ return ub;
}
libm_alias_finite (__ieee754_coshf, __coshf)
diff --git a/sysdeps/ieee754/flt-32/e_exp10f.c b/sysdeps/ieee754/flt-32/e_exp10f.c
index 7ebbf77..10e3b88 100644
--- a/sysdeps/ieee754/flt-32/e_exp10f.c
+++ b/sysdeps/ieee754/flt-32/e_exp10f.c
@@ -1,5 +1,5 @@
/* Single-precision 10^x function.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c
index 2d88fa4..8a61227 100644
--- a/sysdeps/ieee754/flt-32/e_exp2f.c
+++ b/sysdeps/ieee754/flt-32/e_exp2f.c
@@ -1,5 +1,5 @@
/* Single-precision 2^x function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_exp2f_data.c b/sysdeps/ieee754/flt-32/e_exp2f_data.c
index f66e684..c3c780a 100644
--- a/sysdeps/ieee754/flt-32/e_exp2f_data.c
+++ b/sysdeps/ieee754/flt-32/e_exp2f_data.c
@@ -1,5 +1,5 @@
/* Shared data between expf, exp2f and powf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c
index 6777843..1d92828 100644
--- a/sysdeps/ieee754/flt-32/e_expf.c
+++ b/sysdeps/ieee754/flt-32/e_expf.c
@@ -1,5 +1,5 @@
/* Single-precision e^x function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_fmodf.c b/sysdeps/ieee754/flt-32/e_fmodf.c
index ef95c05..1da13a2 100644
--- a/sysdeps/ieee754/flt-32/e_fmodf.c
+++ b/sysdeps/ieee754/flt-32/e_fmodf.c
@@ -1,5 +1,5 @@
/* Floating-point remainder function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index a9730d6..66e8cae 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -1,215 +1,176 @@
-/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+/* Implementation of the gamma function for binary32.
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+Copyright (c) 2023-2024 Alexei Sibidanov.
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/tgamma/tgammaf.c, revision a48e352).
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+ */
+
+/* Changes with respect to the original CORE-MATH code:
+ - removed the dealing with errno
+ (this is done in the wrapper math/w_tgammaf_compat.c)
+ - usage of math_narrow_eval to deal with underflow/overflow
+ - deal with signgamp
+ */
#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <fenv_private.h>
-#include <math-underflow.h>
#include <float.h>
+#include <stdint.h>
+#include <stddef.h>
#include <libm-alias-finite.h>
+#include <math-narrow-eval.h>
+#include "math_config.h"
-/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
- approximation to gamma function. */
+float
+__ieee754_gammaf_r (float x, int *signgamp)
+{
+ /* The wrapper in math/w_tgamma_template.c expects *signgamp to be set to a
+ non-negative value if the returned value is gamma(x), and to a negative
+ value if it is -gamma(x).
+ Since the code here directly computes gamma(x), we set it to 1.
+ */
+ if (signgamp != NULL)
+ *signgamp = 1;
-static const float gamma_coeff[] =
+ /* List of exceptional cases. Each entry contains the 32-bit encoding u of x,
+ a binary32 approximation f of gamma(x), and a correction term df. */
+ static const struct
{
- 0x1.555556p-4f,
- -0xb.60b61p-12f,
- 0x3.403404p-12f,
+ uint32_t u;
+ float f, df;
+ } tb[] = {
+ { 0x27de86a9u, 0x1.268266p+47f, 0x1p22f }, /* x = 0x1.bd0d52p-48 */
+ { 0x27e05475u, 0x1.242422p+47f, 0x1p22f }, /* x = 0x1.c0a8eap-48 */
+ { 0xb63befb3u, -0x1.5cb6e4p+18f, 0x1p-7f }, /* x = -0x1.77df66p-19 */
+ { 0x3c7bb570u, 0x1.021d9p+6f, 0x1p-19f }, /* x = 0x1.f76aep-7 */
+ { 0x41e886d1u, 0x1.33136ap+98f, 0x1p73f }, /* x = 0x1.d10da2p+4 */
+ { 0xc067d177u, 0x1.f6850cp-3f, 0x1p-28f }, /* x = -0x1.cfa2eep+1 */
+ { 0xbd99da31u, -0x1.befe66p+3, -0x1p-22f }, /* x = -0x1.33b462p-4 */
+ { 0xbf54c45au, -0x1.a6b4ecp+2, 0x1p-23f }, /* x = -0x1.a988b4p-1 */
+ { 0x41ee77feu, 0x1.d3631cp+101, -0x1p-76f }, /* x = 0x1.dceffcp+4 */
+ { 0x3f843a64u, 0x1.f6c638p-1, 0x1p-26f }, /* x = 0x1.0874c8p+0 */
};
-#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
-
-/* Return gamma (X), for positive X less than 42, in the form R *
- 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
- avoid overflow or underflow in intermediate calculations. */
-
-static float
-gammaf_positive (float x, int *exp2_adj)
-{
- int local_signgam;
- if (x < 0.5f)
- {
- *exp2_adj = 0;
- return __ieee754_expf (__ieee754_lgammaf_r (x + 1, &local_signgam)) / x;
- }
- else if (x <= 1.5f)
- {
- *exp2_adj = 0;
- return __ieee754_expf (__ieee754_lgammaf_r (x, &local_signgam));
- }
- else if (x < 2.5f)
- {
- *exp2_adj = 0;
- float x_adj = x - 1;
- return (__ieee754_expf (__ieee754_lgammaf_r (x_adj, &local_signgam))
- * x_adj);
- }
- else
- {
- float eps = 0;
- float x_eps = 0;
- float x_adj = x;
- float prod = 1;
- if (x < 4.0f)
- {
- /* Adjust into the range for applying Stirling's
- approximation. */
- float n = ceilf (4.0f - x);
- x_adj = math_narrow_eval (x + n);
- x_eps = (x - (x_adj - n));
- prod = __gamma_productf (x_adj - n, x_eps, n, &eps);
+ uint32_t t = asuint (x);
+ uint32_t ax = t << 1;
+ if (__glibc_unlikely (ax >= (0xffu << 24)))
+ { /* x=NaN or +/-Inf */
+ if (ax == (0xffu << 24))
+ { /* x=+/-Inf */
+ if (t >> 31) /* x=-Inf */
+ return __math_invalidf (x);
+ return x; /* x=+Inf */
}
- /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
- Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
- starting by computing pow (X_ADJ, X_ADJ) with a power of 2
- factored out. */
- float exp_adj = -eps;
- float x_adj_int = roundf (x_adj);
- float x_adj_frac = x_adj - x_adj_int;
- int x_adj_log2;
- float x_adj_mant = __frexpf (x_adj, &x_adj_log2);
- if (x_adj_mant < M_SQRT1_2f)
+ return x + x; /* x=NaN, where x+x ensures the "Invalid operation"
+ exception is set if x is sNaN */
+ }
+ double z = x;
+ if (__glibc_unlikely (ax < 0x6d000000u))
+ { /* |x| < 0x1p-18 */
+ volatile double d = (0x1.fa658c23b1578p-1 - 0x1.d0a118f324b63p-1 * z)
+ * z - 0x1.2788cfc6fb619p-1;
+ double f = 1.0 / z + d;
+ float r = f;
+ uint64_t rt = asuint64 (f);
+ if (((rt + 2) & 0xfffffff) < 4)
{
- x_adj_log2--;
- x_adj_mant *= 2.0f;
+ for (unsigned i = 0; i < sizeof (tb) / sizeof (tb[0]); i++)
+ if (t == tb[i].u)
+ return tb[i].f + tb[i].df;
}
- *exp2_adj = x_adj_log2 * (int) x_adj_int;
- float ret = (__ieee754_powf (x_adj_mant, x_adj)
- * __ieee754_exp2f (x_adj_log2 * x_adj_frac)
- * __ieee754_expf (-x_adj)
- * sqrtf (2 * M_PIf / x_adj)
- / prod);
- exp_adj += x_eps * __ieee754_logf (x_adj);
- float bsum = gamma_coeff[NCOEFF - 1];
- float x_adj2 = x_adj * x_adj;
- for (size_t i = 1; i <= NCOEFF - 1; i++)
- bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
- exp_adj += bsum / x_adj;
- return ret + ret * __expm1f (exp_adj);
+ return r;
}
-}
-
-float
-__ieee754_gammaf_r (float x, int *signgamp)
-{
- int32_t hx;
- float ret;
-
- GET_FLOAT_WORD (hx, x);
-
- if (__glibc_unlikely ((hx & 0x7fffffff) == 0))
+ float fx = floorf (x);
+ if (__glibc_unlikely (x >= 0x1.18522p+5f))
{
- /* Return value for x == 0 is Inf with divide by zero exception. */
- *signgamp = 0;
- return 1.0 / x;
+ /* Overflow case. The original CORE-MATH code returns
+ 0x1p127f * 0x1p127f, but apparently some compilers replace this
+ by +Inf. */
+ return math_narrow_eval (x * 0x1p127f);
}
- if (__builtin_expect (hx < 0, 0)
- && (uint32_t) hx < 0xff800000 && rintf (x) == x)
- {
- /* Return value for integer x < 0 is NaN with invalid exception. */
- *signgamp = 0;
- return (x - x) / (x - x);
+ /* compute k only after the overflow check, otherwise the case to integer
+ might overflow */
+ int k = fx;
+ if (__glibc_unlikely (fx == x))
+ { /* x is integer */
+ if (x == 0.0f)
+ return 1.0f / x;
+ if (x < 0.0f)
+ return __math_invalidf (0.0f);
+ double t0 = 1, x0 = 1;
+ for (int i = 1; i < k; i++, x0 += 1.0)
+ t0 *= x0;
+ return t0;
}
- if (__glibc_unlikely (hx == 0xff800000))
- {
- /* x == -Inf. According to ISO this is NaN. */
- *signgamp = 0;
- return x - x;
+ if (__glibc_unlikely (x < -42.0f))
+ { /* negative non-integer */
+ /* For x < -42, x non-integer, |gamma(x)| < 2^-151. */
+ static const float sgn[2] = { 0x1p-127f, -0x1p-127f };
+ /* Underflows always happens */
+ return math_narrow_eval (0x1p-127f * sgn[k & 1]);
}
- if (__glibc_unlikely ((hx & 0x7f800000) == 0x7f800000))
+ /* The array c[] stores a degree-15 polynomial approximation for
+ gamma(x). */
+ static const double c[] =
{
- /* Positive infinity (return positive infinity) or NaN (return
- NaN). */
- *signgamp = 0;
- return x + x;
- }
+ 0x1.c9a76be577123p+0, 0x1.8f2754ddcf90dp+0, 0x1.0d1191949419bp+0,
+ 0x1.e1f42cf0ae4a1p-2, 0x1.82b358a3ab638p-3, 0x1.e1f2b30cd907bp-5,
+ 0x1.240f6d4071bd8p-6, 0x1.1522c9f3cd012p-8, 0x1.1fd0051a0525bp-10,
+ 0x1.9808a8b96c37ep-13, 0x1.b3f78e01152b5p-15, 0x1.49c85a7e1fd04p-18,
+ 0x1.471ca49184475p-19, -0x1.368f0b7ed9e36p-23, 0x1.882222f9049efp-23,
+ -0x1.a69ed2042842cp-25
+ };
- if (x >= 36.0f)
- {
- /* Overflow. */
- *signgamp = 0;
- ret = math_narrow_eval (FLT_MAX * FLT_MAX);
- return ret;
- }
- else
+ double m = z - 0x1.7p+1;
+ double i = roundeven_finite (m);
+ double step = copysign (1.0, i);
+ double d = m - i, d2 = d * d, d4 = d2 * d2, d8 = d4 * d4;
+ double f = (c[0] + d * c[1]) + d2 * (c[2] + d * c[3])
+ + d4 * ((c[4] + d * c[5]) + d2 * (c[6] + d * c[7]))
+ + d8 * ((c[8] + d * c[9]) + d2 * (c[10] + d * c[11])
+ + d4 * ((c[12] + d * c[13]) + d2 * (c[14] + d * c[15])));
+ int jm = fabs (i);
+ double w = 1;
+ if (jm)
{
- SET_RESTORE_ROUNDF (FE_TONEAREST);
- if (x > 0.0f)
+ z -= 0.5 + step * 0.5;
+ w = z;
+ for (int j = jm - 1; j; j--)
{
- *signgamp = 0;
- int exp2_adj;
- float tret = gammaf_positive (x, &exp2_adj);
- ret = __scalbnf (tret, exp2_adj);
+ z -= step;
+ w *= z;
}
- else if (x >= -FLT_EPSILON / 4.0f)
- {
- *signgamp = 0;
- ret = 1.0f / x;
- }
- else
- {
- float tx = truncf (x);
- *signgamp = (tx == 2.0f * truncf (tx / 2.0f)) ? -1 : 1;
- if (x <= -42.0f)
- /* Underflow. */
- ret = FLT_MIN * FLT_MIN;
- else
- {
- float frac = tx - x;
- if (frac > 0.5f)
- frac = 1.0f - frac;
- float sinpix = (frac <= 0.25f
- ? __sinf (M_PIf * frac)
- : __cosf (M_PIf * (0.5f - frac)));
- int exp2_adj;
- float tret = M_PIf / (-x * sinpix
- * gammaf_positive (-x, &exp2_adj));
- ret = __scalbnf (tret, -exp2_adj);
- math_check_force_underflow_nonneg (ret);
- }
- }
- ret = math_narrow_eval (ret);
- }
- if (isinf (ret) && x != 0)
- {
- if (*signgamp < 0)
- {
- ret = math_narrow_eval (-copysignf (FLT_MAX, ret) * FLT_MAX);
- ret = -ret;
- }
- else
- ret = math_narrow_eval (copysignf (FLT_MAX, ret) * FLT_MAX);
- return ret;
}
- else if (ret == 0)
+ if (i <= -0.5)
+ w = 1 / w;
+ f *= w;
+ uint64_t rt = asuint64 (f);
+ float r = f;
+ /* Deal with exceptional cases. */
+ if (__glibc_unlikely (((rt + 2) & 0xfffffff) < 8))
{
- if (*signgamp < 0)
- {
- ret = math_narrow_eval (-copysignf (FLT_MIN, ret) * FLT_MIN);
- ret = -ret;
- }
- else
- ret = math_narrow_eval (copysignf (FLT_MIN, ret) * FLT_MIN);
- return ret;
+ for (unsigned j = 0; j < sizeof (tb) / sizeof (tb[0]); j++)
+ if (t == tb[j].u)
+ return tb[j].f + tb[j].df;
}
- else
- return ret;
+ return r;
}
libm_alias_finite (__ieee754_gammaf_r, __gammaf_r)
diff --git a/sysdeps/ieee754/flt-32/e_hypotf.c b/sysdeps/ieee754/flt-32/e_hypotf.c
index 4844cd7..761cf76 100644
--- a/sysdeps/ieee754/flt-32/e_hypotf.c
+++ b/sysdeps/ieee754/flt-32/e_hypotf.c
@@ -1,5 +1,5 @@
/* Euclidean distance function. Float/Binary32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_ilogbf.c b/sysdeps/ieee754/flt-32/e_ilogbf.c
index db24012..a27fb94 100644
--- a/sysdeps/ieee754/flt-32/e_ilogbf.c
+++ b/sysdeps/ieee754/flt-32/e_ilogbf.c
@@ -1,43 +1 @@
-/* s_ilogbf.c -- float version of s_ilogb.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_ilogbf.c,v 1.4 1995/05/10 20:47:31 jtc Exp $";
-#endif
-
-#include <limits.h>
-#include <math.h>
-#include <math_private.h>
-
-int __ieee754_ilogbf(float x)
-{
- int32_t hx,ix;
-
- GET_FLOAT_WORD(hx,x);
- hx &= 0x7fffffff;
- if(hx<0x00800000) {
- if(hx==0)
- return FP_ILOGB0; /* ilogb(0) = FP_ILOGB0 */
- else /* subnormal x */
- for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
- return ix;
- }
- else if (hx<0x7f800000) return (hx>>23)-127;
- else if (FP_ILOGBNAN != INT_MAX) {
- /* ISO C99 requires ilogbf(+-Inf) == INT_MAX. */
- if (hx==0x7f800000)
- return INT_MAX;
- }
- return FP_ILOGBNAN;
-}
+/* ilogbf is implemented at w_ilogbf.c */
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60..75ec25f 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -1,247 +1,366 @@
-/* e_lgammaf_r.c -- float version of e_lgamma_r.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Correctly-rounded logarithm of the absolute value of the gamma function
+ for binary32 value.
+Copyright (c) 2023, 2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/lgamma/lgammaf.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+/* Changes with respect to the original CORE-MATH code:
+ - removed the dealing with errno
+ (this is done in the wrapper math/w_lgammaf_compat2.c).
+ - usage of math_narrow_eval to deal with underflow/overflow.
+ - deal with signamp. */
+
+#include <array_length.h>
+#include <stdint.h>
#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <libc-diag.h>
#include <libm-alias-finite.h>
+#include <limits.h>
+#include <math-narrow-eval.h>
+#include "math_config.h"
-static const float
-two23= 8.3886080000e+06, /* 0x4b000000 */
-half= 5.0000000000e-01, /* 0x3f000000 */
-one = 1.0000000000e+00, /* 0x3f800000 */
-pi = 3.1415927410e+00, /* 0x40490fdb */
-a0 = 7.7215664089e-02, /* 0x3d9e233f */
-a1 = 3.2246702909e-01, /* 0x3ea51a66 */
-a2 = 6.7352302372e-02, /* 0x3d89f001 */
-a3 = 2.0580807701e-02, /* 0x3ca89915 */
-a4 = 7.3855509982e-03, /* 0x3bf2027e */
-a5 = 2.8905137442e-03, /* 0x3b3d6ec6 */
-a6 = 1.1927076848e-03, /* 0x3a9c54a1 */
-a7 = 5.1006977446e-04, /* 0x3a05b634 */
-a8 = 2.2086278477e-04, /* 0x39679767 */
-a9 = 1.0801156895e-04, /* 0x38e28445 */
-a10 = 2.5214456400e-05, /* 0x37d383a2 */
-a11 = 4.4864096708e-05, /* 0x383c2c75 */
-tc = 1.4616321325e+00, /* 0x3fbb16c3 */
-tf = -1.2148628384e-01, /* 0xbdf8cdcd */
-/* tt = -(tail of tf) */
-tt = 6.6971006518e-09, /* 0x31e61c52 */
-t0 = 4.8383611441e-01, /* 0x3ef7b95e */
-t1 = -1.4758771658e-01, /* 0xbe17213c */
-t2 = 6.4624942839e-02, /* 0x3d845a15 */
-t3 = -3.2788541168e-02, /* 0xbd064d47 */
-t4 = 1.7970675603e-02, /* 0x3c93373d */
-t5 = -1.0314224288e-02, /* 0xbc28fcfe */
-t6 = 6.1005386524e-03, /* 0x3bc7e707 */
-t7 = -3.6845202558e-03, /* 0xbb7177fe */
-t8 = 2.2596477065e-03, /* 0x3b141699 */
-t9 = -1.4034647029e-03, /* 0xbab7f476 */
-t10 = 8.8108185446e-04, /* 0x3a66f867 */
-t11 = -5.3859531181e-04, /* 0xba0d3085 */
-t12 = 3.1563205994e-04, /* 0x39a57b6b */
-t13 = -3.1275415677e-04, /* 0xb9a3f927 */
-t14 = 3.3552918467e-04, /* 0x39afe9f7 */
-u0 = -7.7215664089e-02, /* 0xbd9e233f */
-u1 = 6.3282704353e-01, /* 0x3f2200f4 */
-u2 = 1.4549225569e+00, /* 0x3fba3ae7 */
-u3 = 9.7771751881e-01, /* 0x3f7a4bb2 */
-u4 = 2.2896373272e-01, /* 0x3e6a7578 */
-u5 = 1.3381091878e-02, /* 0x3c5b3c5e */
-v1 = 2.4559779167e+00, /* 0x401d2ebe */
-v2 = 2.1284897327e+00, /* 0x4008392d */
-v3 = 7.6928514242e-01, /* 0x3f44efdf */
-v4 = 1.0422264785e-01, /* 0x3dd572af */
-v5 = 3.2170924824e-03, /* 0x3b52d5db */
-s0 = -7.7215664089e-02, /* 0xbd9e233f */
-s1 = 2.1498242021e-01, /* 0x3e5c245a */
-s2 = 3.2577878237e-01, /* 0x3ea6cc7a */
-s3 = 1.4635047317e-01, /* 0x3e15dce6 */
-s4 = 2.6642270386e-02, /* 0x3cda40e4 */
-s5 = 1.8402845599e-03, /* 0x3af135b4 */
-s6 = 3.1947532989e-05, /* 0x3805ff67 */
-r1 = 1.3920053244e+00, /* 0x3fb22d3b */
-r2 = 7.2193557024e-01, /* 0x3f38d0c5 */
-r3 = 1.7193385959e-01, /* 0x3e300f6e */
-r4 = 1.8645919859e-02, /* 0x3c98bf54 */
-r5 = 7.7794247773e-04, /* 0x3a4beed6 */
-r6 = 7.3266842264e-06, /* 0x36f5d7bd */
-w0 = 4.1893854737e-01, /* 0x3ed67f1d */
-w1 = 8.3333335817e-02, /* 0x3daaaaab */
-w2 = -2.7777778450e-03, /* 0xbb360b61 */
-w3 = 7.9365057172e-04, /* 0x3a500cfd */
-w4 = -5.9518753551e-04, /* 0xba1c065c */
-w5 = 8.3633989561e-04, /* 0x3a5b3dd2 */
-w6 = -1.6309292987e-03; /* 0xbad5c4e8 */
-
-static const float zero= 0.0000000000e+00;
-
-static float
-sin_pif(float x)
+static double
+as_r7 (double x, const double *c)
{
- float y,z;
- int n,ix;
-
- GET_FLOAT_WORD(ix,x);
- ix &= 0x7fffffff;
-
- if(ix<0x3e800000) return __sinf (pi*x);
- y = -x; /* x is assume negative */
-
- /*
- * argument reduction, make sure inexact flag not raised if input
- * is an integer
- */
- z = floorf(y);
- if(z!=y) { /* inexact anyway */
- y *= (float)0.5;
- y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */
- n = (int) (y*(float)4.0);
- } else {
- if(ix>=0x4b800000) {
- y = zero; n = 0; /* y must be even */
- } else {
- if(ix<0x4b000000) z = y+two23; /* exact */
- GET_FLOAT_WORD(n,z);
- n &= 1;
- y = n;
- n<<= 2;
- }
- }
- switch (n) {
- case 0: y = __sinf (pi*y); break;
- case 1:
- case 2: y = __cosf (pi*((float)0.5-y)); break;
- case 3:
- case 4: y = __sinf (pi*(one-y)); break;
- case 5:
- case 6: y = -__cosf (pi*(y-(float)1.5)); break;
- default: y = __sinf (pi*(y-(float)2.0)); break;
- }
- return -y;
+ return (((x - c[0]) * (x - c[1])) * ((x - c[2]) * (x - c[3])))
+ * (((x - c[4]) * (x - c[5])) * ((x - c[6])));
}
+static double
+as_r8 (double x, const double *c)
+{
+ return (((x - c[0]) * (x - c[1])) * ((x - c[2]) * (x - c[3])))
+ * (((x - c[4]) * (x - c[5])) * ((x - c[6]) * (x - c[7])));
+}
+
+static double
+as_sinpi (double x)
+{
+ static const double c[] =
+ {
+ 0x1p+2, -0x1.de9e64df22ea4p+1, 0x1.472be122401f8p+0,
+ -0x1.d4fcd82df91bp-3, 0x1.9f05c97e0aab2p-6, -0x1.f3091c427b611p-10,
+ 0x1.b22c9bfdca547p-14, -0x1.15484325ef569p-18
+ };
+ x -= 0.5;
+ double x2 = x * x, x4 = x2 * x2, x8 = x4 * x4;
+ return (0.25 - x2)
+ * ((c[0] + x2 * c[1]) + x4 * (c[2] + x2 * c[3])
+ + x8 * ((c[4] + x2 * c[5]) + x4 * (c[6] + x2 * c[7])));
+}
+
+static double
+as_ln (double x)
+{
+ uint64_t t = asuint64 (x);
+ int e = (t >> 52) - 0x3ff;
+ static const double c[] =
+ {
+ 0x1.fffffffffff24p-1, -0x1.ffffffffd1d67p-2, 0x1.55555537802dep-2,
+ -0x1.ffffeca81b866p-3, 0x1.999611761d772p-3, -0x1.54f3e581b61bfp-3,
+ 0x1.1e642b4cb5143p-3, -0x1.9115a5af1e1edp-4
+ };
+ static const double il[] =
+ {
+ 0x1.59caeec280116p-57, 0x1.f0a30c01162aap-5, 0x1.e27076e2af2ebp-4,
+ 0x1.5ff3070a793d6p-3, 0x1.c8ff7c79a9a2p-3, 0x1.1675cababa60fp-2,
+ 0x1.4618bc21c5ec2p-2, 0x1.739d7f6bbd007p-2, 0x1.9f323ecbf984dp-2,
+ 0x1.c8ff7c79a9a21p-2, 0x1.f128f5faf06ecp-2, 0x1.0be72e4252a83p-1,
+ 0x1.1e85f5e7040d1p-1, 0x1.307d7334f10bep-1, 0x1.41d8fe84672afp-1,
+ 0x1.52a2d265bc5abp-1
+ };
+ static const double ix[] =
+ {
+ 0x1p+0, 0x1.e1e1e1e1e1e1ep-1, 0x1.c71c71c71c71cp-1,
+ 0x1.af286bca1af28p-1, 0x1.999999999999ap-1, 0x1.8618618618618p-1,
+ 0x1.745d1745d1746p-1, 0x1.642c8590b2164p-1, 0x1.5555555555555p-1,
+ 0x1.47ae147ae147bp-1, 0x1.3b13b13b13b14p-1, 0x1.2f684bda12f68p-1,
+ 0x1.2492492492492p-1, 0x1.1a7b9611a7b96p-1, 0x1.1111111111111p-1,
+ 0x1.0842108421084p-1
+ };
+ int i = (t >> 48) & 0xf;
+ t = (t & (~UINT64_C(0) >> 12)) | (INT64_C(0x3ff) << 52);
+ double z = ix[i] * asdouble (t) - 1;
+ double z2 = z * z, z4 = z2 * z2;
+ return e * 0x1.62e42fefa39efp-1 + il[i]
+ + z * ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3])
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])));
+}
float
-__ieee754_lgammaf_r(float x, int *signgamp)
+__ieee754_lgammaf_r (float x, int *signgamp)
{
- float t,y,z,nadj,p,p1,p2,p3,q,r,w;
- int i,hx,ix;
-
- GET_FLOAT_WORD(hx,x);
-
- /* purge off +-inf, NaN, +-0, and negative arguments */
- *signgamp = 1;
- ix = hx&0x7fffffff;
- if(__builtin_expect(ix>=0x7f800000, 0)) return x*x;
- if(__builtin_expect(ix==0, 0))
- {
- if (hx < 0)
- *signgamp = -1;
- return one/fabsf(x);
- }
- if(__builtin_expect(ix<0x30800000, 0)) {
- /* |x|<2**-30, return -log(|x|) */
- if(hx<0) {
- *signgamp = -1;
- return -__ieee754_logf(-x);
- } else return -__ieee754_logf(x);
+ static const struct
+ {
+ float x;
+ float f;
+ float df;
+ } tb[] = {
+ { -0x1.efc2a2p+14, -0x1.222dbcp+18, -0x1p-7 },
+ { -0x1.627346p+7, -0x1.73235ep+9, -0x1p-16 },
+ { -0x1.08b14p+4, -0x1.f0cbe6p+4, -0x1p-21 },
+ { -0x1.69d628p+3, -0x1.0eac2ap+4, -0x1p-21 },
+ { -0x1.904902p+2, -0x1.65532cp+2, 0x1p-23 },
+ { -0x1.9272d2p+1, -0x1.170b98p-8, 0x1p-33 },
+ { -0x1.625edap+1, 0x1.6a6c4ap-5, -0x1p-30 },
+ { -0x1.5fc2aep+1, 0x1.c0a484p-11, -0x1p-36 },
+ { -0x1.5fb43ep+1, 0x1.5b697p-17, 0x1p-42 },
+ { -0x1.5fa20cp+1, -0x1.132f7ap-10, 0x1p-35 },
+ { -0x1.580c1ep+1, -0x1.5787c6p-4, 0x1p-29 },
+ { -0x1.3a7fcap+1, -0x1.e4cf24p-24, -0x1p-49 },
+ { -0x1.c2f04p-30, 0x1.43a6f6p+4, 0x1p-21 },
+ { -0x1.ade594p-30, 0x1.446ab2p+4, -0x1p-21 },
+ { -0x1.437e74p-40, 0x1.b7dec2p+4, -0x1p-21 },
+ { -0x1.d85bfep-43, 0x1.d31592p+4, -0x1p-21 },
+ { -0x1.f51c8ep-49, 0x1.0a572ap+5, -0x1p-20 },
+ { -0x1.108a5ap-66, 0x1.6d7b18p+5, -0x1p-20 },
+ { -0x1.ecf3fep-73, 0x1.8f8e5ap+5, -0x1p-20 },
+ { -0x1.25cb66p-123, 0x1.547a44p+6, -0x1p-19 },
+ { 0x1.ecf3fep-73, 0x1.8f8e5ap+5, -0x1p-20 },
+ { 0x1.108a5ap-66, 0x1.6d7b18p+5, -0x1p-20 },
+ { 0x1.a68bbcp-42, 0x1.c9c6e8p+4, 0x1p-21 },
+ { 0x1.ddfd06p-12, 0x1.ec5ba8p+2, -0x1p-23 },
+ { 0x1.f8a754p-9, 0x1.63acc2p+2, 0x1p-23 },
+ { 0x1.8d16b2p+5, 0x1.1e4b4ep+7, 0x1p-18 },
+ { 0x1.359e0ep+10, 0x1.d9ad02p+12, -0x1p-13 },
+ { 0x1.a82a2cp+13, 0x1.c38036p+16, 0x1p-9 },
+ { 0x1.62c646p+14, 0x1.9075bep+17, -0x1p-8 },
+ { 0x1.7f298p+31, 0x1.f44946p+35, -0x1p+10 },
+ { 0x1.a45ea4p+33, 0x1.25dcbcp+38, -0x1p+13 },
+ { 0x1.f9413ep+76, 0x1.9d5ab4p+82, -0x1p+57 },
+ { 0x1.dcbbaap+99, 0x1.fc5772p+105, 0x1p+80 },
+ { 0x1.58ace8p+112, 0x1.9e4f66p+118, -0x1p+93 },
+ { 0x1.87bdfp+115, 0x1.e465aep+121, 0x1p+96 },
+ };
+
+ float fx = floor (x);
+ float ax = fabsf (x);
+ uint32_t t = asuint (ax);
+ if (__glibc_unlikely (t >= (0xffu << 23)))
+ {
+ *signgamp = 1;
+ if (t == (0xffu << 23))
+ return INFINITY;
+ return x + x; /* nan */
+ }
+ if (__glibc_unlikely (fx == x))
+ {
+ if (x <= 0.0f)
+ {
+ *signgamp = asuint (x) >> 31 ? -1 : 1;
+ return 1.0f / 0.0f;
}
- if(hx<0) {
- if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */
- return fabsf (x)/zero;
- if (ix > 0x40000000 /* X < 2.0f. */
- && ix < 0x41700000 /* X > -15.0f. */)
- return __lgamma_negf (x, signgamp);
- t = sin_pif(x);
- if(t==zero) return one/fabsf(t); /* -integer */
- nadj = __ieee754_logf(pi/fabsf(t*x));
- if(t<zero) *signgamp = -1;
- x = -x;
+ if (x == 1.0f || x == 2.0f)
+ {
+ *signgamp = 1;
+ return 0.0f;
}
+ }
+
+ /* Check the value of fx to avoid a spurious invalid exception.
+ Note that for a binary32 |x| >= 2^23, x is necessarily an integer,
+ and we already dealed with negative integers, thus now:
+ -2^23 < x < +Inf and x is not a negative integer nor 0, 1, 2. */
+ if (__glibc_likely (fx >= 0))
+ *signgamp = 1;
+ else
+ /* gamma(x) is negative in (-2n-1,-2n), thus when fx is odd. */
+ *signgamp = 1 - ((((int) fx) & 1) << 1);
- /* purge off 1 and 2 */
- if (ix==0x3f800000||ix==0x40000000) r = 0;
- /* for x < 2.0 */
- else if(ix<0x40000000) {
- if(ix<=0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */
- r = -__ieee754_logf(x);
- if(ix>=0x3f3b4a20) {y = one-x; i= 0;}
- else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;}
- else {y = x; i=2;}
- } else {
- r = zero;
- if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */
- else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */
- else {y=x-one;i=2;}
+ double z = ax, f;
+ if (__glibc_unlikely (ax < 0x1.52p-1f))
+ {
+ static const double rn[] =
+ {
+ -0x1.505bdf4b65acp+4, -0x1.51c80eb47e068p+2,
+ 0x1.0000000007cb8p+0, -0x1.4ac529250a1fcp+1,
+ -0x1.a8c99dbe1621ap+0, -0x1.4abdcc74115eap+0,
+ -0x1.1b87fe5a5b923p+0, -0x1.05b8a4d47ff64p+0
+ };
+ const double c0 = 0x1.0fc0fad268c4dp+2;
+ static const double rd[] =
+ {
+ -0x1.4db2cfe9a5265p+5, -0x1.062e99d1c4f27p+3,
+ -0x1.c81bc2ecf25f6p+1, -0x1.108e55c10091bp+1,
+ -0x1.7dd25af0b83d4p+0, -0x1.36bf1880125fcp+0,
+ -0x1.1379fc8023d9cp+0, -0x1.03712e41525d2p+0
+ };
+ double s = x;
+ f = (c0 * s) * as_r8 (s, rn) / as_r8 (s, rd) - as_ln (z);
+ }
+ else
+ {
+ if (ax > 0x1.afc1ap+1f)
+ {
+ if (__glibc_unlikely (x > 0x1.895f1cp+121f))
+ return math_narrow_eval (0x1p127f * 0x1p127f);
+ /* |x|>=2**23, must be -integer */
+ if (__glibc_unlikely (x < 0.0f && ax > 0x1p+23))
+ return ax / 0.0f;
+ double lz = as_ln (z);
+ f = (z - 0.5) * (lz - 1) + 0x1.acfe390c97d69p-2;
+ if (ax < 0x1.0p+20f)
+ {
+ double iz = 1.0 / z, iz2 = iz * iz;
+ if (ax > 1198.0f)
+ f += iz * (1. / 12.);
+ else if (ax > 0x1.279a7p+6f)
+ {
+ static const double c[] =
+ {
+ 0x1.555555547fbadp-4, -0x1.6c0fd270c465p-9
+ };
+ f += iz * (c[0] + iz2 * c[1]);
+ }
+ else if (ax > 0x1.555556p+3f)
+ {
+ static const double c[] =
+ {
+ 0x1.555555554de0bp-4, -0x1.6c16bdc45944fp-9,
+ 0x1.a0077f300ecb3p-11, -0x1.2e9cfff3b29c2p-11
+ };
+ double iz4 = iz2 * iz2;
+ f += iz * ((c[0] + iz2 * c[1]) + iz4 * (c[2] + iz2 * c[3]));
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.5555555551286p-4, -0x1.6c16c0e7c4cf4p-9,
+ 0x1.a0193267fe6f2p-11, -0x1.37e87ec19cb45p-11,
+ 0x1.b40011dfff081p-11, -0x1.c16c8946b19b6p-10,
+ 0x1.e9f47ace150d8p-9, -0x1.4f5843a71a338p-8
+ };
+ double iz4 = iz2 * iz2, iz8 = iz4 * iz4;
+ double p = ((c[0] + iz2 * c[1]) + iz4 * (c[2] + iz2 * c[3]))
+ + iz8 * ((c[4] + iz2 * c[5])
+ + iz4 * (c[6] + iz2 * c[7]));
+ f += iz * p;
+ }
}
- switch(i) {
- case 0:
- z = y*y;
- p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
- p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
- p = y*p1+p2;
- r += (p-(float)0.5*y); break;
- case 1:
- z = y*y;
- w = z*y;
- p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */
- p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
- p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
- p = z*p1-(tt-w*(p2+y*p3));
- r += (tf + p); break;
- case 2:
- p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
- p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
- r += (-(float)0.5*y + p1/p2);
+ if (x < 0.0f)
+ {
+ f = 0x1.250d048e7a1bdp+0 - f - lz;
+ double lp = as_ln (as_sinpi (x - fx));
+ f -= lp;
}
}
- else if(ix<0x41000000) { /* x < 8.0 */
- i = (int)x;
- t = zero;
- y = x-(float)i;
- p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
- q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
- r = half*y+p/q;
- z = one; /* lgamma(1+s) = log(s) + lgamma(s) */
- switch(i) {
- case 7: z *= (y+(float)6.0); /* FALLTHRU */
- case 6: z *= (y+(float)5.0); /* FALLTHRU */
- case 5: z *= (y+(float)4.0); /* FALLTHRU */
- case 4: z *= (y+(float)3.0); /* FALLTHRU */
- case 3: z *= (y+(float)2.0); /* FALLTHRU */
- r += __ieee754_logf(z); break;
+ else
+ {
+ static const double rn[] =
+ {
+ -0x1.667923ff14df7p+5, -0x1.2d35f25ad8f64p+3,
+ -0x1.b8c9eab9d5bd3p+1, -0x1.7a4a97f494127p+0,
+ -0x1.3a6c8295b4445p-1, -0x1.da44e8b810024p-3,
+ -0x1.9061e81c77e4ap-5
+ };
+ if (x < 0.0f)
+ {
+ int ni = floorf (-2 * x);
+ if ((ni & 1) == 0 && ni == -2 * x)
+ return 1.0f / 0.0f;
+ }
+ const double c0 = 0x1.3cc0e6a0106b3p+2;
+ static const double rd[] =
+ {
+ -0x1.491a899e84c52p+6, -0x1.d202961b9e098p+3,
+ -0x1.4ced68c631ed6p+2, -0x1.2589eedf40738p+1,
+ -0x1.1302e3337271p+0, -0x1.c36b802f26dffp-2,
+ -0x1.3ded448acc39dp-3, -0x1.bffc491078eafp-6
+ };
+ f = (z - 1) * (z - 2) * c0 * as_r7 (z, rn) / as_r8 (z, rd);
+ if (x < 0.0f)
+ {
+ if (__glibc_unlikely (t < 0x40301b93u && t > 0x402f95c2u))
+ {
+ double h = (x + 0x1.5fb410a1bd901p+1)
+ - 0x1.a19a96d2e6f85p-54;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ -0x1.ea12da904b18cp+0, 0x1.3267f3c265a54p+3,
+ -0x1.4185ac30cadb3p+4, 0x1.f504accc3f2e4p+5,
+ -0x1.8588444c679b4p+7, 0x1.43740491dc22p+9,
+ -0x1.12400ea23f9e6p+11, 0x1.dac829f365795p+12
+ };
+ f = h * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6] + h * c[7])));
+ }
+ else if (__glibc_unlikely (t > 0x401ceccbu && t < 0x401d95cau))
+ {
+ double h = (x + 0x1.3a7fc9600f86cp+1)
+ + 0x1.55f64f98af8dp-55;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ 0x1.83fe966af535fp+0, 0x1.36eebb002f61ap+2,
+ 0x1.694a60589a0b3p+0, 0x1.1718d7aedb0b5p+3,
+ 0x1.733a045eca0d3p+2, 0x1.8d4297421205bp+4,
+ 0x1.7feea5fb29965p+4
+ };
+ f = h
+ * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6])));
+ }
+ else if (__glibc_unlikely (t > 0x40492009u && t < 0x404940efu))
+ {
+ double h = (x + 0x1.9260dbc9e59afp+1)
+ + 0x1.f717cd335a7b3p-53;
+ double h2 = h * h;
+ double h4 = h2 * h2;
+ static const double c[] =
+ {
+ 0x1.f20a65f2fac55p+2, 0x1.9d4d297715105p+4,
+ 0x1.c1137124d5b21p+6, 0x1.267203d24de38p+9,
+ 0x1.99a63399a0b44p+11, 0x1.2941214faaf0cp+14,
+ 0x1.bb912c0c9cdd1p+16
+ };
+ f = h * ((c[0] + h * c[1]) + h2 * (c[2] + h * c[3])
+ + h4 * ((c[4] + h * c[5]) + h2 * (c[6])));
+ }
+ else
+ {
+ f = 0x1.250d048e7a1bdp+0 - f;
+ double lp = as_ln (as_sinpi (x - fx) * z);
+ f -= lp;
+ }
}
- /* 8.0 <= x < 2**26 */
- } else if (ix < 0x4c800000) {
- t = __ieee754_logf(x);
- z = one/x;
- y = z*z;
- w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
- r = (x-half)*(t-one)+w;
- } else
- /* 2**26 <= x <= inf */
- r = math_narrow_eval (x*(__ieee754_logf(x)-one));
- /* NADJ is set for negative arguments but not otherwise,
- resulting in warnings that it may be used uninitialized
- although in the cases where it is used it has always been
- set. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
- if(hx<0) r = nadj - r;
- DIAG_POP_NEEDS_COMMENT;
- return r;
+ }
+ }
+
+ uint64_t tl = (asuint64 (f) + 5) & 0xfffffff;
+ float r = f;
+ if (__glibc_unlikely (tl <= 31u))
+ {
+ t = asuint (x);
+ for (unsigned i = 0; i < array_length (tb); i++)
+ {
+ if (t == asuint (tb[i].x))
+ return tb[i].f + tb[i].df;
+ }
+ }
+ return r;
}
libm_alias_finite (__ieee754_lgammaf_r, __lgammaf_r)
diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c
index 791895e..03d9e28 100644
--- a/sysdeps/ieee754/flt-32/e_log10f.c
+++ b/sysdeps/ieee754/flt-32/e_log10f.c
@@ -1,54 +1,161 @@
-/* e_log10f.c -- float version of e_log10.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Correctly-rounded radix-10 logarithm function for binary32 value.
+
+Copyright (c) 2022-2023 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/log10/log10f.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
#include <math.h>
-#include <math_private.h>
-#include <fix-int-fp-convert-zero.h>
+#include <stdint.h>
#include <libm-alias-finite.h>
+#include "math_config.h"
-static const float
-two25 = 3.3554432000e+07, /* 0x4c000000 */
-ivln10 = 4.3429449201e-01, /* 0x3ede5bd9 */
-log10_2hi = 3.0102920532e-01, /* 0x3e9a2080 */
-log10_2lo = 7.9034151668e-07; /* 0x355427db */
+static __attribute__ ((noinline)) float
+as_special (float x)
+{
+ uint32_t ux = asuint (x);
+ if (ux == 0x7f800000u)
+ return x; /* +inf */
+ uint32_t ax = ux << 1;
+ if (ax == 0u)
+ /* -0.0 */
+ return __math_divzerof (1);
+ if (ax > 0xff000000u)
+ return x + x; /* nan */
+ return __math_invalidf (x);
+}
float
-__ieee754_log10f(float x)
+__ieee754_log10f (float x)
{
- float y,z;
- int32_t i,k,hx;
-
- GET_FLOAT_WORD(hx,x);
-
- k=0;
- if (hx < 0x00800000) { /* x < 2**-126 */
- if (__builtin_expect((hx&0x7fffffff)==0, 0))
- return -two25/fabsf (x); /* log(+-0)=-inf */
- if (__builtin_expect(hx<0, 0))
- return (x-x)/(x-x); /* log(-#) = NaN */
- k -= 25; x *= two25; /* subnormal number, scale up x */
- GET_FLOAT_WORD(hx,x);
+ static const double tr[] =
+ {
+ 0x1p+0, 0x1.f81f82p-1, 0x1.f07c1fp-1, 0x1.e9131acp-1,
+ 0x1.e1e1e1ep-1, 0x1.dae6077p-1, 0x1.d41d41dp-1, 0x1.cd85689p-1,
+ 0x1.c71c71cp-1, 0x1.c0e0704p-1, 0x1.bacf915p-1, 0x1.b4e81b5p-1,
+ 0x1.af286bdp-1, 0x1.a98ef6p-1, 0x1.a41a41ap-1, 0x1.9ec8e95p-1,
+ 0x1.999999ap-1, 0x1.948b0fdp-1, 0x1.8f9c19p-1, 0x1.8acb90fp-1,
+ 0x1.8618618p-1, 0x1.8181818p-1, 0x1.7d05f41p-1, 0x1.78a4c81p-1,
+ 0x1.745d174p-1, 0x1.702e05cp-1, 0x1.6c16c17p-1, 0x1.6816817p-1,
+ 0x1.642c859p-1, 0x1.605816p-1, 0x1.5c9882cp-1, 0x1.58ed231p-1,
+ 0x1.5555555p-1, 0x1.51d07ebp-1, 0x1.4e5e0a7p-1, 0x1.4afd6ap-1,
+ 0x1.47ae148p-1, 0x1.446f865p-1, 0x1.4141414p-1, 0x1.3e22cbdp-1,
+ 0x1.3b13b14p-1, 0x1.3813814p-1, 0x1.3521cfbp-1, 0x1.323e34ap-1,
+ 0x1.2f684bep-1, 0x1.2c9fb4ep-1, 0x1.29e412ap-1, 0x1.27350b9p-1,
+ 0x1.2492492p-1, 0x1.21fb781p-1, 0x1.1f7047ep-1, 0x1.1cf06aep-1,
+ 0x1.1a7b961p-1, 0x1.1811812p-1, 0x1.15b1e5fp-1, 0x1.135c811p-1,
+ 0x1.1111111p-1, 0x1.0ecf56cp-1, 0x1.0c9715p-1, 0x1.0a6810ap-1,
+ 0x1.0842108p-1, 0x1.0624dd3p-1, 0x1.041041p-1, 0x1.0204081p-1,
+ 0.5
+ };
+ static const double tl[] =
+ {
+ -0x1.d45fd6237ebe3p-47, 0x1.b947689311b6ep-8, 0x1.b5e909c96d7d5p-7,
+ 0x1.45f4f59ed2165p-6, 0x1.af5f92cbd8f1ep-6, 0x1.0ba01a606de8cp-5,
+ 0x1.3ed119b9a2b7bp-5, 0x1.714834298eec2p-5, 0x1.a30a9d98357fbp-5,
+ 0x1.d41d512670813p-5, 0x1.02428c0f65519p-4, 0x1.1a23444eecc3ep-4,
+ 0x1.31b30543f4cb4p-4, 0x1.48f3ed39bfd04p-4, 0x1.5fe8049a0e423p-4,
+ 0x1.769140a6aa008p-4, 0x1.8cf1836c98cb3p-4, 0x1.a30a9d55541a1p-4,
+ 0x1.b8de4d1ee823ep-4, 0x1.ce6e4202ca2e6p-4, 0x1.e3bc1accace07p-4,
+ 0x1.f8c9683b5abd4p-4, 0x1.06cbd68ca9a6ep-3, 0x1.11142f19df73p-3,
+ 0x1.1b3e71fa7a97fp-3, 0x1.254b4d37a46e3p-3, 0x1.2f3b6912cbf07p-3,
+ 0x1.390f683115886p-3, 0x1.42c7e7fffc5a8p-3, 0x1.4c65808c78d3cp-3,
+ 0x1.55e8c50751c55p-3, 0x1.5f52445dec3d8p-3, 0x1.68a288c3f12p-3,
+ 0x1.71da17bdf0d19p-3, 0x1.7af973608afd9p-3, 0x1.84011952a2579p-3,
+ 0x1.8cf1837a7ea6p-3, 0x1.95cb2891e43d6p-3, 0x1.9e8e7b0f869ep-3,
+ 0x1.a73beaa5db18dp-3, 0x1.afd3e394558d3p-3, 0x1.b856cf060d9f1p-3,
+ 0x1.c0c5134de1ffcp-3, 0x1.c91f1371bc99fp-3, 0x1.d1652ffcd3f53p-3,
+ 0x1.d997c6f635e75p-3, 0x1.e1b733ab90f3bp-3, 0x1.e9c3ceadac856p-3,
+ 0x1.f1bdeec43a305p-3, 0x1.f9a5e7a5fa3fep-3, 0x1.00be05ac02f2bp-2,
+ 0x1.04a054d81a2d4p-2, 0x1.087a0835957fbp-2, 0x1.0c4b457099517p-2,
+ 0x1.101431aa1fe51p-2, 0x1.13d4f08b98dd8p-2, 0x1.178da53edb892p-2,
+ 0x1.1b3e71e9f9d58p-2, 0x1.1ee777defdeedp-2, 0x1.2288d7b48e23bp-2,
+ 0x1.2622b0f52e49fp-2, 0x1.29b522a4c6314p-2, 0x1.2d404b0e30f8p-2,
+ 0x1.30c4478f3fbe5p-2, 0x1.34413509f7915p-2
+ };
+ static const union
+ {
+ float f;
+ uint32_t u;
+ } st[] =
+ {
+ { 0x1p+0 }, { 0x1.4p+3 }, { 0x1.9p+6 }, { 0x1.f4p+9 },
+ { 0x1.388p+13 }, { 0x1.86ap+16 }, { 0x1.e848p+19 }, { 0x1.312dp+23 },
+ { 0x1.7d784p+26 }, { 0x1.dcd65p+29 }, { 0x1.2a05f2p+33 }, { 0 },
+ { 0 }, { 0 }, { 0 }, { 0 }
+ };
+ static const double b[] =
+ {
+ 0x1.bcb7b15c5a2f8p-2, -0x1.bcbb1dbb88ebap-3, 0x1.2871c39d521c6p-3
+ };
+ static const double c[] =
+ {
+ 0x1.bcb7b1526e50ep-2, -0x1.bcb7b1526e53dp-3, 0x1.287a7636f3fa2p-3,
+ -0x1.bcb7b146a14b3p-4, 0x1.63c627d5219cbp-4, -0x1.2880736c8762dp-4,
+ 0x1.fc1ecf913961ap-5
+ };
+ uint32_t ux = asuint (x);
+ if (__glibc_unlikely (ux < (1 << 23) || ux >= 0x7f800000u))
+ {
+ if (ux == 0 || ux >= 0x7f800000u)
+ return as_special (x);
+ /* subnormal */
+ int n = __builtin_clz (ux) - 8;
+ ux <<= n;
+ ux -= n << 23;
+ }
+ unsigned m = ux & ((1 << 23) - 1), j = (m + (1 << (23 - 7))) >> (23 - 6);
+ double ix = tr[j], l = tl[j];
+ int e = ((int) ux >> 23) - 127;
+ unsigned je = e + 1;
+ je = (je * 0x4d104d4) >> 28;
+ if (__glibc_unlikely (ux == st[je].u))
+ return je;
+
+ double tz = asdouble (((int64_t) m | ((int64_t) 1023 << 23)) << (52 - 23));
+ double z = tz * ix - 1, z2 = z * z;
+ double r
+ = ((e * 0x1.34413509f79ffp-2 + l) + z * b[0]) + z2 * (b[1] + z * b[2]);
+ float ub = r, lb = r + 0x1.b008p-34;
+ if (__glibc_unlikely (ub != lb))
+ {
+ double f = z
+ * ((c[0] + z * c[1])
+ + z2
+ * ((c[2] + z * c[3])
+ + z2 * (c[4] + z * c[5] + z2 * c[6])));
+ f -= 0x1.0cee0ed4ca7e9p-54 * e;
+ f += l - tl[0];
+ double el = e * 0x1.34413509f7ap-2;
+ r = el + f;
+ ub = r;
+ tz = r;
+ if (__glibc_unlikely (!((asuint64 (tz) & ((1 << 28) - 1)))))
+ {
+ double dr = (el - r) + f;
+ r += dr * 32;
+ ub = r;
}
- if (__builtin_expect(hx >= 0x7f800000, 0)) return x+x;
- k += (hx>>23)-127;
- i = ((uint32_t)k&0x80000000)>>31;
- hx = (hx&0x007fffff)|((0x7f-i)<<23);
- y = (float)(k+i);
- if (FIX_INT_FP_CONVERT_ZERO && y == 0.0f)
- y = 0.0f;
- SET_FLOAT_WORD(x,hx);
- z = y*log10_2lo + ivln10*__ieee754_logf(x);
- return z+y*log10_2hi;
+ }
+ return ub;
}
libm_alias_finite (__ieee754_log10f, __log10f)
diff --git a/sysdeps/ieee754/flt-32/e_log2f.c b/sysdeps/ieee754/flt-32/e_log2f.c
index 95bfbe2..65e2e59 100644
--- a/sysdeps/ieee754/flt-32/e_log2f.c
+++ b/sysdeps/ieee754/flt-32/e_log2f.c
@@ -1,5 +1,5 @@
/* Single-precision log2 function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_log2f_data.c b/sysdeps/ieee754/flt-32/e_log2f_data.c
index f0d227b..5d2e445 100644
--- a/sysdeps/ieee754/flt-32/e_log2f_data.c
+++ b/sysdeps/ieee754/flt-32/e_log2f_data.c
@@ -1,5 +1,5 @@
/* Data definition for log2f.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_logf.c b/sysdeps/ieee754/flt-32/e_logf.c
index e4c71c6..207151c 100644
--- a/sysdeps/ieee754/flt-32/e_logf.c
+++ b/sysdeps/ieee754/flt-32/e_logf.c
@@ -1,5 +1,5 @@
/* Single-precision log function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -70,7 +70,7 @@ __logf (float x)
tmp = ix - OFF;
i = (tmp >> (23 - LOGF_TABLE_BITS)) % N;
k = (int32_t) tmp >> 23; /* arithmetic shift */
- iz = ix - (tmp & 0x1ff << 23);
+ iz = ix - (tmp & 0xff800000);
invc = T[i].invc;
logc = T[i].logc;
z = (double_t) asfloat (iz);
diff --git a/sysdeps/ieee754/flt-32/e_logf_data.c b/sysdeps/ieee754/flt-32/e_logf_data.c
index d398991..b3f7d3f 100644
--- a/sysdeps/ieee754/flt-32/e_logf_data.c
+++ b/sysdeps/ieee754/flt-32/e_logf_data.c
@@ -1,5 +1,5 @@
/* Data definition for logf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_powf.c b/sysdeps/ieee754/flt-32/e_powf.c
index e427a9e..ae3af36 100644
--- a/sysdeps/ieee754/flt-32/e_powf.c
+++ b/sysdeps/ieee754/flt-32/e_powf.c
@@ -1,5 +1,5 @@
/* Single-precision pow function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_powf_log2_data.c b/sysdeps/ieee754/flt-32/e_powf_log2_data.c
index 7926b0c..85920ff 100644
--- a/sysdeps/ieee754/flt-32/e_powf_log2_data.c
+++ b/sysdeps/ieee754/flt-32/e_powf_log2_data.c
@@ -1,5 +1,5 @@
/* Data definition for powf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/e_remainderf.c b/sysdeps/ieee754/flt-32/e_remainderf.c
index 8178136..bb066b7 100644
--- a/sysdeps/ieee754/flt-32/e_remainderf.c
+++ b/sysdeps/ieee754/flt-32/e_remainderf.c
@@ -56,6 +56,9 @@ __ieee754_remainderf(float x, float p)
}
}
GET_FLOAT_WORD(hx,x);
+ /* Make sure x is not -0. This can occur only when x = p
+ and rounding direction is towards negative infinity. */
+ if (hx==0x80000000) hx = 0;
SET_FLOAT_WORD(x,hx^sx);
return x;
}
diff --git a/sysdeps/ieee754/flt-32/e_sincoshf_data.c b/sysdeps/ieee754/flt-32/e_sincoshf_data.c
new file mode 100644
index 0000000..c1a34d1
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/e_sincoshf_data.c
@@ -0,0 +1,49 @@
+/* Common data for sinhf/coshf implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include "e_sincoshf_data.h"
+
+const double __sincoshf_c[] =
+ {
+ 1, 0x1.62e42fef4c4e7p-6, 0x1.ebfd1b232f475p-13, 0x1.c6b19384ecd93p-20
+ };
+const double __sincoshf_ch[] =
+ {
+ 1, 0x1.62e42fefa39efp-6, 0x1.ebfbdff82c58fp-13,
+ 0x1.c6b08d702e0edp-20, 0x1.3b2ab6fb92e5ep-27, 0x1.5d886e6d54203p-35,
+ 0x1.430976b8ce6efp-43
+ };
+const uint64_t __sincoshf_tb[] =
+ {
+ 0x3fe0000000000000, 0x3fe059b0d3158574, 0x3fe0b5586cf9890f,
+ 0x3fe11301d0125b51, 0x3fe172b83c7d517b, 0x3fe1d4873168b9aa,
+ 0x3fe2387a6e756238, 0x3fe29e9df51fdee1, 0x3fe306fe0a31b715,
+ 0x3fe371a7373aa9cb, 0x3fe3dea64c123422, 0x3fe44e086061892d,
+ 0x3fe4bfdad5362a27, 0x3fe5342b569d4f82, 0x3fe5ab07dd485429,
+ 0x3fe6247eb03a5585, 0x3fe6a09e667f3bcd, 0x3fe71f75e8ec5f74,
+ 0x3fe7a11473eb0187, 0x3fe82589994cce13, 0x3fe8ace5422aa0db,
+ 0x3fe93737b0cdc5e5, 0x3fe9c49182a3f090, 0x3fea5503b23e255d,
+ 0x3feae89f995ad3ad, 0x3feb7f76f2fb5e47, 0x3fec199bdd85529c,
+ 0x3fecb720dcef9069, 0x3fed5818dcfba487, 0x3fedfc97337b9b5f,
+ 0x3feea4afa2a490da, 0x3fef50765b6e4540
+ };
diff --git a/sysdeps/ieee754/flt-32/e_sincoshf_data.h b/sysdeps/ieee754/flt-32/e_sincoshf_data.h
new file mode 100644
index 0000000..ea4b380
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/e_sincoshf_data.h
@@ -0,0 +1,36 @@
+/* Common data for sinhf/coshf implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef _SINCOSHF_H
+#define _SINCOSHF_H
+
+#include <stdint.h>
+
+extern const double __sincoshf_c[] attribute_hidden;
+#define C __sincoshf_c
+extern const double __sincoshf_ch[] attribute_hidden;
+#define CH __sincoshf_ch
+extern const uint64_t __sincoshf_tb[] attribute_hidden;
+#define TB __sincoshf_tb
+
+#endif
diff --git a/sysdeps/ieee754/flt-32/e_sinhf.c b/sysdeps/ieee754/flt-32/e_sinhf.c
index d3998e8..6c8c1db 100644
--- a/sysdeps/ieee754/flt-32/e_sinhf.c
+++ b/sysdeps/ieee754/flt-32/e_sinhf.c
@@ -1,62 +1,108 @@
-/* e_sinhf.c -- float version of e_sinh.c.
- */
+/* Correctly-rounded hyperbolic sine function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#include <float.h>
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libm-alias-finite.h>
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/sinh/sinhf.c, revision bbfabd99).
-static const float one = 1.0, shuge = 1.0e37;
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-float
-__ieee754_sinhf(float x)
-{
- float t,w,h;
- int32_t ix,jx;
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
- GET_FLOAT_WORD(jx,x);
- ix = jx&0x7fffffff;
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
- /* x is INF or NaN */
- if(__builtin_expect(ix>=0x7f800000, 0)) return x+x;
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-finite.h>
+#include <math-narrow-eval.h>
+#include "math_config.h"
+#include "e_sincoshf_data.h"
- h = 0.5;
- if (jx<0) h = -h;
- /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
- if (ix < 0x41b00000) { /* |x|<22 */
- if (__builtin_expect(ix<0x31800000, 0)) { /* |x|<2**-28 */
- math_check_force_underflow (x);
- if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
- }
- t = __expm1f(fabsf(x));
- if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one));
- return h*(t+t/(t+one));
+float
+__ieee754_sinhf (float x)
+{
+ static const struct
+ {
+ uint32_t uarg;
+ float rh, rl;
+ } st = { 0x74250bfeu, 0x1.250bfep-11, 0x1p-36 };
+ const double iln2 = 0x1.71547652b82fep+5;
+ double z = x;
+ uint32_t ux = asuint (x) << 1;
+ if (__glibc_unlikely (ux > 0x8565a9f8u))
+ { /* |x| >~ 89.4 */
+ float sgn = copysignf (2.0f, x);
+ if (ux >= 0xff000000u)
+ {
+ if (ux << 8)
+ return x + x; /* nan */
+ return copysignf (INFINITY, x); /* +-inf */
}
-
- /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
- if (ix < 0x42b17180) return h*__ieee754_expf(fabsf(x));
-
- /* |x| in [log(maxdouble), overflowthresold] */
- if (ix<=0x42b2d4fc) {
- w = __ieee754_expf((float)0.5*fabsf(x));
- t = h*w;
- return t*w;
+ float r = math_narrow_eval (sgn * 0x1.fffffep127f);
+ return r;
+ }
+ if (__glibc_unlikely (ux < 0x7c000000u))
+ { /* |x| < 0.125 */
+ if (__glibc_unlikely (ux <= 0x74250bfeu))
+ { /* |x| <= 0x1.250bfep-11 */
+ if (__glibc_unlikely (ux < 0x66000000u)) /* |x| < 0x1p-24 */
+ return fmaf (x, fabsf (x), x);
+ if (__glibc_unlikely (st.uarg == ux))
+ {
+ float sgn = copysignf (1.0f, x);
+ return sgn * st.rh + sgn * st.rl;
+ }
+ return (x * 0x1.555556p-3f) * (x * x) + x;
}
-
- /* |x| > overflowthresold, sinh(x) overflow */
- return math_narrow_eval (x*shuge);
+ static const double cp[] =
+ {
+ 0x1.5555555555555p-3, 0x1.11111111146e1p-7,
+ 0x1.a01a00930dda6p-13, 0x1.71f92198aa6e9p-19
+ };
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ return z + (z2 * z)
+ * ((cp[0] + z2 * cp[1]) + z4 * (cp[2] + z2 * (cp[3])));
+ }
+ double a = iln2 * z;
+ double ia = roundeven_finite (a);
+ double h = a - ia;
+ double h2 = h * h;
+ int64_t jp = asuint64 (ia + 0x1.8p52);
+ int64_t jm = -jp;
+ double sp = asdouble (TB[jp & 31] + ((uint64_t)(jp >> 5) << 52));
+ double sm = asdouble (TB[jm & 31] + ((uint64_t)(jm >> 5) << 52));
+ double te = C[0] + h2 * C[2];
+ double to = (C[1] + h2 * C[3]);
+ double rp = sp * (te + h * to);
+ double rm = sm * (te - h * to);
+ double r = rp - rm;
+ float ub = r;
+ double lb = r - 1.52e-10 * r;
+ if (__glibc_unlikely (ub != lb))
+ {
+ const double iln2h = 0x1.7154765p+5;
+ const double iln2l = 0x1.5c17f0bbbe88p-26;
+ h = (iln2h * z - ia) + iln2l * z;
+ h2 = h * h;
+ te = CH[0] + h2 * CH[2] + (h2 * h2) * (CH[4] + h2 * CH[6]);
+ to = CH[1] + h2 * (CH[3] + h2 * CH[5]);
+ r = sp * (te + h * to) - sm * (te - h * to);
+ ub = r;
+ }
+ return ub;
}
libm_alias_finite (__ieee754_sinhf, __sinhf)
diff --git a/sysdeps/ieee754/flt-32/k_tanf.c b/sysdeps/ieee754/flt-32/k_tanf.c
index e1c9d14..1cc8931 100644
--- a/sysdeps/ieee754/flt-32/k_tanf.c
+++ b/sysdeps/ieee754/flt-32/k_tanf.c
@@ -1,101 +1 @@
-/* k_tanf.c -- float version of k_tan.c
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: k_tanf.c,v 1.4 1995/05/10 20:46:39 jtc Exp $";
-#endif
-
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
-static const float
-one = 1.0000000000e+00, /* 0x3f800000 */
-pio4 = 7.8539812565e-01, /* 0x3f490fda */
-pio4lo= 3.7748947079e-08, /* 0x33222168 */
-T[] = {
- 3.3333334327e-01, /* 0x3eaaaaab */
- 1.3333334029e-01, /* 0x3e088889 */
- 5.3968254477e-02, /* 0x3d5d0dd1 */
- 2.1869488060e-02, /* 0x3cb327a4 */
- 8.8632395491e-03, /* 0x3c11371f */
- 3.5920790397e-03, /* 0x3b6b6916 */
- 1.4562094584e-03, /* 0x3abede48 */
- 5.8804126456e-04, /* 0x3a1a26c8 */
- 2.4646313977e-04, /* 0x398137b9 */
- 7.8179444245e-05, /* 0x38a3f445 */
- 7.1407252108e-05, /* 0x3895c07a */
- -1.8558637748e-05, /* 0xb79bae5f */
- 2.5907305826e-05, /* 0x37d95384 */
-};
-
-float __kernel_tanf(float x, float y, int iy)
-{
- float z,r,v,w,s;
- int32_t ix,hx;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff; /* high word of |x| */
- if(ix<0x39000000) /* x < 2**-13 */
- {if((int)x==0) { /* generate inexact */
- if((ix|(iy+1))==0) return one/fabsf(x);
- else if (iy == 1)
- {
- math_check_force_underflow (x);
- return x;
- }
- else
- return -one / x;
- }
- }
- if(ix>=0x3f2ca140) { /* |x|>=0.6744 */
- if(hx<0) {x = -x; y = -y;}
- z = pio4-x;
- w = pio4lo-y;
- x = z+w; y = 0.0;
- if (fabsf (x) < 0x1p-13f)
- return (1 - ((hx >> 30) & 2)) * iy * (1.0f - 2 * iy * x);
- }
- z = x*x;
- w = z*z;
- /* Break x^5*(T[1]+x^2*T[2]+...) into
- * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
- * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
- */
- r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
- v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
- s = z*x;
- r = y + z*(s*(r+v)+y);
- r += T[0]*s;
- w = x+r;
- if(ix>=0x3f2ca140) {
- v = (float)iy;
- return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r)));
- }
- if(iy==1) return w;
- else { /* if allow error up to 2 ulp,
- simply return -1.0/(x+r) here */
- /* compute -1.0/(x+r) accurately */
- float a,t;
- int32_t i;
- z = w;
- GET_FLOAT_WORD(i,z);
- SET_FLOAT_WORD(z,i&0xfffff000);
- v = r-(z - x); /* z+v = r+x */
- t = a = -(float)1.0/w; /* a = -1.0/w */
- GET_FLOAT_WORD(i,t);
- SET_FLOAT_WORD(t,i&0xfffff000);
- s = (float)1.0+t*z;
- return t+a*(s+t*v);
- }
-}
+/* Not needed. */
diff --git a/sysdeps/ieee754/flt-32/lgamma_negf.c b/sysdeps/ieee754/flt-32/lgamma_negf.c
index a8aa74e..1cc8931 100644
--- a/sysdeps/ieee754/flt-32/lgamma_negf.c
+++ b/sysdeps/ieee754/flt-32/lgamma_negf.c
@@ -1,282 +1 @@
-/* lgammaf expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <float.h>
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <fenv_private.h>
-
-static const float lgamma_zeros[][2] =
- {
- { -0x2.74ff94p+0f, 0x1.3fe0f2p-24f },
- { -0x2.bf682p+0f, -0x1.437b2p-24f },
- { -0x3.24c1b8p+0f, 0x6.c34cap-28f },
- { -0x3.f48e2cp+0f, 0x1.707a04p-24f },
- { -0x4.0a13ap+0f, 0x1.e99aap-24f },
- { -0x4.fdd5ep+0f, 0x1.64454p-24f },
- { -0x5.021a98p+0f, 0x2.03d248p-24f },
- { -0x5.ffa4cp+0f, 0x2.9b82fcp-24f },
- { -0x6.005ac8p+0f, -0x1.625f24p-24f },
- { -0x6.fff3p+0f, 0x2.251e44p-24f },
- { -0x7.000dp+0f, 0x8.48078p-28f },
- { -0x7.fffe6p+0f, 0x1.fa98c4p-28f },
- { -0x8.0001ap+0f, -0x1.459fcap-28f },
- { -0x8.ffffdp+0f, -0x1.c425e8p-24f },
- { -0x9.00003p+0f, 0x1.c44b82p-24f },
- { -0xap+0f, 0x4.9f942p-24f },
- { -0xap+0f, -0x4.9f93b8p-24f },
- { -0xbp+0f, 0x6.b9916p-28f },
- { -0xbp+0f, -0x6.b9915p-28f },
- { -0xcp+0f, 0x8.f76c8p-32f },
- { -0xcp+0f, -0x8.f76c7p-32f },
- { -0xdp+0f, 0xb.09231p-36f },
- { -0xdp+0f, -0xb.09231p-36f },
- { -0xep+0f, 0xc.9cba5p-40f },
- { -0xep+0f, -0xc.9cba5p-40f },
- { -0xfp+0f, 0xd.73f9fp-44f },
- };
-
-static const float e_hi = 0x2.b7e15p+0f, e_lo = 0x1.628aeep-24f;
-
-/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
- approximation to lgamma function. */
-
-static const float lgamma_coeff[] =
- {
- 0x1.555556p-4f,
- -0xb.60b61p-12f,
- 0x3.403404p-12f,
- };
-
-#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
-
-/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
- the integer end-point of the half-integer interval containing x and
- x0 is the zero of lgamma in that half-integer interval. Each
- polynomial is expressed in terms of x-xm, where xm is the midpoint
- of the interval for which the polynomial applies. */
-
-static const float poly_coeff[] =
- {
- /* Interval [-2.125, -2] (polynomial degree 5). */
- -0x1.0b71c6p+0f,
- -0xc.73a1ep-4f,
- -0x1.ec8462p-4f,
- -0xe.37b93p-4f,
- -0x1.02ed36p-4f,
- -0xe.cbe26p-4f,
- /* Interval [-2.25, -2.125] (polynomial degree 5). */
- -0xf.29309p-4f,
- -0xc.a5cfep-4f,
- 0x3.9c93fcp-4f,
- -0x1.02a2fp+0f,
- 0x9.896bep-4f,
- -0x1.519704p+0f,
- /* Interval [-2.375, -2.25] (polynomial degree 5). */
- -0xd.7d28dp-4f,
- -0xe.6964cp-4f,
- 0xb.0d4f1p-4f,
- -0x1.9240aep+0f,
- 0x1.dadabap+0f,
- -0x3.1778c4p+0f,
- /* Interval [-2.5, -2.375] (polynomial degree 6). */
- -0xb.74ea2p-4f,
- -0x1.2a82cp+0f,
- 0x1.880234p+0f,
- -0x3.320c4p+0f,
- 0x5.572a38p+0f,
- -0x9.f92bap+0f,
- 0x1.1c347ep+4f,
- /* Interval [-2.625, -2.5] (polynomial degree 6). */
- -0x3.d10108p-4f,
- 0x1.cd5584p+0f,
- 0x3.819c24p+0f,
- 0x6.84cbb8p+0f,
- 0xb.bf269p+0f,
- 0x1.57fb12p+4f,
- 0x2.7b9854p+4f,
- /* Interval [-2.75, -2.625] (polynomial degree 6). */
- -0x6.b5d25p-4f,
- 0x1.28d604p+0f,
- 0x1.db6526p+0f,
- 0x2.e20b38p+0f,
- 0x4.44c378p+0f,
- 0x6.62a08p+0f,
- 0x9.6db3ap+0f,
- /* Interval [-2.875, -2.75] (polynomial degree 5). */
- -0x8.a41b2p-4f,
- 0xc.da87fp-4f,
- 0x1.147312p+0f,
- 0x1.7617dap+0f,
- 0x1.d6c13p+0f,
- 0x2.57a358p+0f,
- /* Interval [-3, -2.875] (polynomial degree 5). */
- -0xa.046d6p-4f,
- 0x9.70b89p-4f,
- 0xa.a89a6p-4f,
- 0xd.2f2d8p-4f,
- 0xd.e32b4p-4f,
- 0xf.fb741p-4f,
- };
-
-static const size_t poly_deg[] =
- {
- 5,
- 5,
- 5,
- 6,
- 6,
- 6,
- 5,
- 5,
- };
-
-static const size_t poly_end[] =
- {
- 5,
- 11,
- 17,
- 24,
- 31,
- 38,
- 44,
- 50,
- };
-
-/* Compute sin (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_sinpi (float x)
-{
- if (x <= 0.25f)
- return __sinf (M_PIf * x);
- else
- return __cosf (M_PIf * (0.5f - x));
-}
-
-/* Compute cos (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_cospi (float x)
-{
- if (x <= 0.25f)
- return __cosf (M_PIf * x);
- else
- return __sinf (M_PIf * (0.5f - x));
-}
-
-/* Compute cot (pi * X) for -0.25 <= X <= 0.5. */
-
-static float
-lg_cotpi (float x)
-{
- return lg_cospi (x) / lg_sinpi (x);
-}
-
-/* Compute lgamma of a negative argument -15 < X < -2, setting
- *SIGNGAMP accordingly. */
-
-float
-__lgamma_negf (float x, int *signgamp)
-{
- /* Determine the half-integer region X lies in, handle exact
- integers and determine the sign of the result. */
- int i = floorf (-2 * x);
- if ((i & 1) == 0 && i == -2 * x)
- return 1.0f / 0.0f;
- float xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
- i -= 4;
- *signgamp = ((i & 2) == 0 ? -1 : 1);
-
- SET_RESTORE_ROUNDF (FE_TONEAREST);
-
- /* Expand around the zero X0 = X0_HI + X0_LO. */
- float x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
- float xdiff = x - x0_hi - x0_lo;
-
- /* For arguments in the range -3 to -2, use polynomial
- approximations to an adjusted version of the gamma function. */
- if (i < 2)
- {
- int j = floorf (-8 * x) - 16;
- float xm = (-33 - 2 * j) * 0.0625f;
- float x_adj = x - xm;
- size_t deg = poly_deg[j];
- size_t end = poly_end[j];
- float g = poly_coeff[end];
- for (size_t j = 1; j <= deg; j++)
- g = g * x_adj + poly_coeff[end - j];
- return __log1pf (g * xdiff / (x - xn));
- }
-
- /* The result we want is log (sinpi (X0) / sinpi (X))
- + log (gamma (1 - X0) / gamma (1 - X)). */
- float x_idiff = fabsf (xn - x), x0_idiff = fabsf (xn - x0_hi - x0_lo);
- float log_sinpi_ratio;
- if (x0_idiff < x_idiff * 0.5f)
- /* Use log not log1p to avoid inaccuracy from log1p of arguments
- close to -1. */
- log_sinpi_ratio = __ieee754_logf (lg_sinpi (x0_idiff)
- / lg_sinpi (x_idiff));
- else
- {
- /* Use log1p not log to avoid inaccuracy from log of arguments
- close to 1. X0DIFF2 has positive sign if X0 is further from
- XN than X is from XN, negative sign otherwise. */
- float x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5f;
- float sx0d2 = lg_sinpi (x0diff2);
- float cx0d2 = lg_cospi (x0diff2);
- log_sinpi_ratio = __log1pf (2 * sx0d2
- * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
- }
-
- float log_gamma_ratio;
- float y0 = math_narrow_eval (1 - x0_hi);
- float y0_eps = -x0_hi + (1 - y0) - x0_lo;
- float y = math_narrow_eval (1 - x);
- float y_eps = -x + (1 - y);
- /* We now wish to compute LOG_GAMMA_RATIO
- = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)). XDIFF
- accurately approximates the difference Y0 + Y0_EPS - Y -
- Y_EPS. Use Stirling's approximation. */
- float log_gamma_high
- = (xdiff * __log1pf ((y0 - e_hi - e_lo + y0_eps) / e_hi)
- + (y - 0.5f + y_eps) * __log1pf (xdiff / y));
- /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)). */
- float y0r = 1 / y0, yr = 1 / y;
- float y0r2 = y0r * y0r, yr2 = yr * yr;
- float rdiff = -xdiff / (y * y0);
- float bterm[NCOEFF];
- float dlast = rdiff, elast = rdiff * yr * (yr + y0r);
- bterm[0] = dlast * lgamma_coeff[0];
- for (size_t j = 1; j < NCOEFF; j++)
- {
- float dnext = dlast * y0r2 + elast;
- float enext = elast * yr2;
- bterm[j] = dnext * lgamma_coeff[j];
- dlast = dnext;
- elast = enext;
- }
- float log_gamma_low = 0;
- for (size_t j = 0; j < NCOEFF; j++)
- log_gamma_low += bterm[NCOEFF - 1 - j];
- log_gamma_ratio = log_gamma_high + log_gamma_low;
-
- return log_sinpi_ratio + log_gamma_ratio;
-}
+/* Not needed. */
diff --git a/sysdeps/ieee754/flt-32/libm-test-ulps b/sysdeps/ieee754/flt-32/libm-test-ulps
new file mode 100644
index 0000000..15a7248
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/libm-test-ulps
@@ -0,0 +1,289 @@
+# Maximal error of functions:
+Function: "acos":
+float: 0
+
+Function: "acos_downward":
+float: 0
+
+Function: "acos_towardzero":
+float: 0
+
+Function: "acos_upward":
+float: 0
+
+Function: "acosh":
+float: 0
+
+Function: "acosh_downward":
+float: 0
+
+Function: "acosh_towardzero":
+float: 0
+
+Function: "acosh_upward":
+float: 0
+
+Function: "asin":
+float: 0
+
+Function: "asin_downward":
+float: 0
+
+Function: "asin_towardzero":
+float: 0
+
+Function: "asin_upward":
+float: 0
+
+Function: "asinh":
+float: 0
+
+Function: "asinh_downward":
+float: 0
+
+Function: "asinh_towardzero":
+float: 0
+
+Function: "asinh_upward":
+float: 0
+
+Function: "atan":
+float: 0
+
+Function: "atan_downward":
+float: 0
+
+Function: "atan_towardzero":
+float: 0
+
+Function: "atan_upward":
+float: 0
+
+Function: "atan2":
+float: 0
+
+Function: "atan2_downward":
+float: 0
+
+Function: "atan2_towardzero":
+float: 0
+
+Function: "atan2_upward":
+float: 0
+
+Function: "atanh":
+float: 0
+
+Function: "atanh_downward":
+float: 0
+
+Function: "atanh_towardzero":
+float: 0
+
+Function: "atanh_upward":
+float: 0
+
+Function: "cbrt":
+float: 0
+
+Function: "cbrt_downward":
+float: 0
+
+Function: "cbrt_towardzero":
+float: 0
+
+Function: "cbrt_upward":
+float: 0
+
+Function: "cosh":
+float: 0
+
+Function: "cosh_downward":
+float: 0
+
+Function: "cosh_towardzero":
+float: 0
+
+Function: "cosh_upward":
+float: 0
+
+Function: "erf":
+float: 0
+
+Function: "erf_downward":
+float: 0
+
+Function: "erf_towardzero":
+float: 0
+
+Function: "erf_upward":
+float: 0
+
+Function: "erfc":
+float: 0
+
+Function: "erfc_downward":
+float: 0
+
+Function: "erfc_towardzero":
+float: 0
+
+Function: "erfc_upward":
+float: 0
+
+Function: "exp10m1":
+float: 0
+
+Function: "exp10m1_downward":
+float: 0
+
+Function: "exp10m1_towardzero":
+float: 0
+
+Function: "exp10m1_upward":
+float: 0
+
+Function: "exp2m":
+float: 0
+
+Function: "exp2m_downward":
+float: 0
+
+Function: "exp2m_towardzero":
+float: 0
+
+Function: "exp2m_upward":
+float: 0
+
+Function: "expm1":
+float: 0
+
+Function: "expm1_downward":
+float: 0
+
+Function: "expm1_towardzero":
+float: 0
+
+Function: "expm1_upward":
+float: 0
+
+Function: "gamma":
+float: 0
+
+Function: "gamma_downward":
+float: 0
+
+Function: "gamma_towardzero":
+float: 0
+
+Function: "gamma_upward":
+float: 0
+
+Function: "lgamma":
+float: 0
+
+Function: "lgamma_downward":
+float: 0
+
+Function: "lgamma_towardzero":
+float: 0
+
+Function: "lgamma_upward":
+float: 0
+
+Function: "log10":
+float: 0
+
+Function: "log10_downward":
+float: 0
+
+Function: "log10_towardzero":
+float: 0
+
+Function: "log10_upward":
+float: 0
+
+Function: "log10":
+float: 0
+
+Function: "log10_downward":
+float: 0
+
+Function: "log10_towardzero":
+float: 0
+
+Function: "log10_upward":
+float: 0
+
+Function: "log10p":
+float: 0
+
+Function: "log10p_downward":
+float: 0
+
+Function: "log10p_towardzero":
+float: 0
+
+Function: "log10p_upward":
+float: 0
+
+Function: "log1p":
+float: 0
+
+Function: "log1p_downward":
+float: 0
+
+Function: "log1p_towardzero":
+float: 0
+
+Function: "log1p_upward":
+float: 0
+
+Function: "log2p1":
+float: 0
+
+Function: "log2p1_downward":
+float: 0
+
+Function: "log2p1_towardzero":
+float: 0
+
+Function: "log2p1_upward":
+float: 0
+
+Function: "sinh":
+float: 0
+
+Function: "sinh_downward":
+float: 0
+
+Function: "sinh_towardzero":
+float: 0
+
+Function: "sinh_upward":
+float: 0
+
+Function: "tan":
+float: 0
+
+Function: "tan_downward":
+float: 0
+
+Function: "tan_towardzero":
+float: 0
+
+Function: "tan_upward":
+float: 0
+
+Function: "tan":
+float: 0
+
+Function: "tan_downward":
+float: 0
+
+Function: "tan_towardzero":
+float: 0
+
+Function: "tan_upward":
+float: 0
+
diff --git a/sysdeps/ieee754/flt-32/math_config.h b/sysdeps/ieee754/flt-32/math_config.h
index 729f22c..33ea631 100644
--- a/sysdeps/ieee754/flt-32/math_config.h
+++ b/sysdeps/ieee754/flt-32/math_config.h
@@ -1,5 +1,5 @@
/* Configuration for math routines.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -57,6 +57,58 @@ static inline int32_t
converttoint (double_t x);
#endif
+#ifndef ROUNDEVEN_INTRINSICS
+/* When set, roundeven_finite will route to the internal roundeven function. */
+# define ROUNDEVEN_INTRINSICS 1
+#endif
+
+/* Round x to nearest integer value in floating-point format, rounding halfway
+ cases to even. If the input is non finite the result is unspecified. */
+static inline double
+roundeven_finite (double x)
+{
+ if (!isfinite (x))
+ __builtin_unreachable ();
+#if ROUNDEVEN_INTRINSICS
+ return roundeven (x);
+#else
+ double y = round (x);
+ if (fabs (x - y) == 0.5)
+ {
+ union { double f; uint64_t i; } u = {y};
+ union { double f; uint64_t i; } v = {y - copysign (1.0, x)};
+ if (__builtin_ctzll (v.i) > __builtin_ctzll (u.i))
+ y = v.f;
+ }
+ return y;
+#endif
+}
+
+#ifndef ROUNDEVENF_INTRINSICS
+/* When set, roundevenf_finite will route to the internal roundevenf function. */
+# define ROUNDEVENF_INTRINSICS 1
+#endif
+
+static inline float
+roundevenf_finite (float x)
+{
+ if (!isfinite (x))
+ __builtin_unreachable ();
+#if ROUNDEVENF_INTRINSICS
+ return roundevenf (x);
+#else
+ float y = roundf (x);
+ if (fabs (x - y) == 0.5)
+ {
+ union { float f; uint32_t i; } u = {y};
+ union { float f; uint32_t i; } v = {y - copysignf (1.0, x)};
+ if (__builtin_ctzl (v.i) > __builtin_ctzl (u.i))
+ y = v.f;
+ }
+ return y;
+#endif
+}
+
static inline uint32_t
asuint (float f)
{
@@ -113,6 +165,7 @@ issignalingf_inline (float x)
#define BIT_WIDTH 32
#define MANTISSA_WIDTH 23
#define EXPONENT_WIDTH 8
+#define EXPONENT_BIAS 127
#define MANTISSA_MASK 0x007fffff
#define EXPONENT_MASK 0x7f800000
#define EXP_MANT_MASK 0x7fffffff
@@ -125,12 +178,24 @@ is_nan (uint32_t x)
return (x & EXP_MANT_MASK) > EXPONENT_MASK;
}
+static inline bool
+is_inf (uint32_t x)
+{
+ return (x << 1) == (EXPONENT_MASK << 1);
+}
+
static inline uint32_t
get_mantissa (uint32_t x)
{
return x & MANTISSA_MASK;
}
+static inline int
+get_exponent (uint32_t x)
+{
+ return (int)((x >> MANTISSA_WIDTH & 0xff) - EXPONENT_BIAS);
+}
+
/* Convert integer number X, unbiased exponent EP, and sign S to double:
result = X * 2^(EP+1 - exponent_bias)
@@ -156,6 +221,8 @@ attribute_hidden float __math_uflowf (uint32_t);
attribute_hidden float __math_may_uflowf (uint32_t);
attribute_hidden float __math_divzerof (uint32_t);
attribute_hidden float __math_invalidf (float);
+attribute_hidden int __math_invalidf_i (int);
+attribute_hidden long int __math_invalidf_li (long int);
attribute_hidden float __math_edomf (float x);
/* Shared between expf, exp2f, exp10f, and powf. */
@@ -166,9 +233,9 @@ extern const struct exp2f_data
uint64_t tab[1 << EXP2F_TABLE_BITS];
double shift_scaled;
double poly[EXP2F_POLY_ORDER];
- double shift;
double invln2_scaled;
double poly_scaled[EXP2F_POLY_ORDER];
+ double shift;
} __exp2f_data attribute_hidden;
#define LOGF_TABLE_BITS 4
diff --git a/sysdeps/ieee754/flt-32/math_errf.c b/sysdeps/ieee754/flt-32/math_errf.c
index c71373b..244e38a 100644
--- a/sysdeps/ieee754/flt-32/math_errf.c
+++ b/sysdeps/ieee754/flt-32/math_errf.c
@@ -1,5 +1,5 @@
/* Single-precision math error handling.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <math-barriers.h>
#include "math_config.h"
#if WANT_ERRNO
@@ -27,8 +28,24 @@ with_errnof (float y, int e)
errno = e;
return y;
}
+
+NOINLINE static int
+with_errnof_i (int y, int e)
+{
+ errno = e;
+ return y;
+}
+
+NOINLINE static long int
+with_errnof_li (long int y, int e)
+{
+ errno = e;
+ return y;
+}
#else
# define with_errnof(x, e) (x)
+# define with_errnof_i(x, x) (x)
+# define with_errnof_li(x, x) (x)
#endif
attribute_hidden float
@@ -80,3 +97,19 @@ __math_invalidf (float x)
float y = (x - x) / (x - x);
return isnan (x) ? y : with_errnof (y, EDOM);
}
+
+attribute_hidden int
+__math_invalidf_i (int x)
+{
+ float y = 0.0f / 0.0f;
+ math_force_eval (y);
+ return with_errnof_i (x, EDOM);
+}
+
+attribute_hidden long int
+__math_invalidf_li (long int x)
+{
+ float y = 0.0f / 0.0f;
+ math_force_eval (y);
+ return with_errnof_li (x, EDOM);
+}
diff --git a/sysdeps/ieee754/flt-32/mpn2flt.c b/sysdeps/ieee754/flt-32/mpn2flt.c
index 529c533..78ef912 100644
--- a/sysdeps/ieee754/flt-32/mpn2flt.c
+++ b/sysdeps/ieee754/flt-32/mpn2flt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/reduce_aux.h b/sysdeps/ieee754/flt-32/reduce_aux.h
index 6200cf1..7e519f1 100644
--- a/sysdeps/ieee754/flt-32/reduce_aux.h
+++ b/sysdeps/ieee754/flt-32/reduce_aux.h
@@ -1,5 +1,5 @@
/* Auxiliary routine for the Bessel functions (j0f, y0f, j1f, y1f).
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_acospif.c b/sysdeps/ieee754/flt-32/s_acospif.c
new file mode 100644
index 0000000..caf65d4
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_acospif.c
@@ -0,0 +1,88 @@
+/* Correctly-rounded half-revolution arc-cosine function for binary32 value.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/acospi/acospif.c, revision 1a6a9ab).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+#include "s_asincospif_data.h"
+
+float
+__acospif (float x)
+{
+ float ax = fabsf (x);
+ double az = ax;
+ double z = x;
+ uint32_t t = asuint (x);
+ int e = (t >> 23) & 0xff;
+ if (__glibc_unlikely (e >= 127))
+ {
+ if (x == 1.0f)
+ return 0.0f;
+ if (x == -1.0f)
+ return 1.0f;
+ if (e == 0xff && (t << 9))
+ return x + x; /* nan */
+ return __math_edomf ((x - x) / (x - x)); /* nan */
+ }
+ int s = 146 - e;
+ int i = 0;
+ if (__glibc_likely (s < 32))
+ i = ((t & (~0u >> 9)) | 1 << 23) >> s;
+ const double *c = CH[i];
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ if (__glibc_unlikely (i == 0))
+ {
+ double c0 = c[0] + z2 * c[1];
+ double c2 = c[2] + z2 * c[3];
+ double c4 = c[4] + z2 * c[5];
+ double c6 = c[6] + z2 * c[7];
+ c0 += c2 * z4;
+ c4 += c6 * z4;
+ /* For |x| <= 0x1.0fd288p-127, c0 += c4*(z4*z4) would raise a spurious
+ underflow exception, we use an FMA instead, where c4 * z4 does not
+ underflow. */
+ c0 = fma (c4 * z4, z4, c0);
+ return 0.5 - z * c0;
+ }
+ else
+ {
+ double f = sqrt (1 - az);
+ double c0 = c[0] + az * c[1];
+ double c2 = c[2] + az * c[3];
+ double c4 = c[4] + az * c[5];
+ double c6 = c[6] + az * c[7];
+ c0 += c2 * z2;
+ c4 += c6 * z2;
+ c0 += c4 * z4;
+ static const double o[] = { 0, 1 };
+ double r = o[t >> 31] + c0 * copysign (f, x);
+ return r;
+ }
+}
+libm_alias_float (__acospi, acospi)
diff --git a/sysdeps/ieee754/flt-32/s_asincosf_data.c b/sysdeps/ieee754/flt-32/s_asincosf_data.c
new file mode 100644
index 0000000..0399ecc
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincosf_data.c
@@ -0,0 +1,43 @@
+/* Common data for asinf/acosf implementations.
+
+Copyright (c) 2023-2024 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asin/asinf.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include "s_asincosf_data.h"
+
+const double __asincosf_c0[] =
+ {
+ 0x1.555555555529cp-3, 0x1.333333337e0ddp-4, 0x1.6db6db3b4465ep-5,
+ 0x1.f1c72e13ac306p-6, 0x1.6e89cebe06bc4p-6, 0x1.1c6dcf5289094p-6,
+ 0x1.c6dbbcc7c6315p-7, 0x1.8f8dc2615e996p-7, 0x1.a5833b7bf15e8p-8,
+ 0x1.43f44ace1665cp-6, -0x1.0fb17df881c73p-6, 0x1.07520c026b2d6p-5
+ };
+
+const double __asincosf_c1[] =
+ {
+ 0x1.6a09e667f3bcbp+0, 0x1.e2b7dddff2db9p-4, 0x1.b27247ab42dbcp-6,
+ 0x1.02995cc4e0744p-7, 0x1.5ffb0276ec8eap-9, 0x1.033885a928decp-10,
+ 0x1.911f2be23f8c7p-12, 0x1.4c3c55d2437fdp-13, 0x1.af477e1d7b461p-15,
+ 0x1.abd6bdff67dcbp-15, -0x1.1717e86d0fa28p-16, 0x1.6ff526de46023p-16
+ };
diff --git a/sysdeps/ieee754/flt-32/s_asincosf_data.h b/sysdeps/ieee754/flt-32/s_asincosf_data.h
new file mode 100644
index 0000000..c3f9ed5
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincosf_data.h
@@ -0,0 +1,35 @@
+/* Common data for asinf/acosf implementations.
+
+Copyright (c) 2023-2024 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asin/asinf.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef _S_ASINCOSF_DATA_H
+#define _S_ASINCOSF_DATA_H
+
+extern const double __asincosf_c0[] attribute_hidden;
+#define C0 __asincosf_c0
+extern const double __asincosf_c1[] attribute_hidden;
+#define C1 __asincosf_c1
+
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_asincoshf_data.c b/sysdeps/ieee754/flt-32/s_asincoshf_data.c
new file mode 100644
index 0000000..e852122
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincoshf_data.c
@@ -0,0 +1,121 @@
+/* Common data for asinhf/acoshf implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include "s_asincoshf_data.h"
+
+const double __asincoshf_ix[] =
+ {
+ 0x1p+0, 0x1.fc07f01fcp-1, 0x1.f81f81f82p-1, 0x1.f44659e4ap-1,
+ 0x1.f07c1f07cp-1, 0x1.ecc07b302p-1, 0x1.e9131abfp-1, 0x1.e573ac902p-1,
+ 0x1.e1e1e1e1ep-1, 0x1.de5d6e3f8p-1, 0x1.dae6076bap-1, 0x1.d77b654b8p-1,
+ 0x1.d41d41d42p-1, 0x1.d0cb58f6ep-1, 0x1.cd8568904p-1, 0x1.ca4b3055ep-1,
+ 0x1.c71c71c72p-1, 0x1.c3f8f01c4p-1, 0x1.c0e070382p-1, 0x1.bdd2b8994p-1,
+ 0x1.bacf914c2p-1, 0x1.b7d6c3ddap-1, 0x1.b4e81b4e8p-1, 0x1.b2036406cp-1,
+ 0x1.af286bca2p-1, 0x1.ac5701ac6p-1, 0x1.a98ef606ap-1, 0x1.a6d01a6dp-1,
+ 0x1.a41a41a42p-1, 0x1.a16d3f97ap-1, 0x1.9ec8e951p-1, 0x1.9c2d14ee4p-1,
+ 0x1.99999999ap-1, 0x1.970e4f80cp-1, 0x1.948b0fcd6p-1, 0x1.920fb49dp-1,
+ 0x1.8f9c18f9cp-1, 0x1.8d3018d3p-1, 0x1.8acb90f6cp-1, 0x1.886e5f0acp-1,
+ 0x1.861861862p-1, 0x1.83c977ab2p-1, 0x1.818181818p-1, 0x1.7f405fd02p-1,
+ 0x1.7d05f417ep-1, 0x1.7ad2208ep-1, 0x1.78a4c8178p-1, 0x1.767dce434p-1,
+ 0x1.745d1745ep-1, 0x1.724287f46p-1, 0x1.702e05c0cp-1, 0x1.6e1f76b44p-1,
+ 0x1.6c16c16c2p-1, 0x1.6a13cd154p-1, 0x1.681681682p-1, 0x1.661ec6a52p-1,
+ 0x1.642c8590cp-1, 0x1.623fa7702p-1, 0x1.605816058p-1, 0x1.5e75bb8dp-1,
+ 0x1.5c9882b94p-1, 0x1.5ac056b02p-1, 0x1.58ed23082p-1, 0x1.571ed3c5p-1,
+ 0x1.555555556p-1, 0x1.5390948f4p-1, 0x1.51d07eae2p-1, 0x1.501501502p-1,
+ 0x1.4e5e0a73p-1, 0x1.4cab88726p-1, 0x1.4afd6a052p-1, 0x1.49539e3b2p-1,
+ 0x1.47ae147aep-1, 0x1.460cbc7f6p-1, 0x1.446f86562p-1, 0x1.42d6625d6p-1,
+ 0x1.414141414p-1, 0x1.3fb013fbp-1, 0x1.3e22cbce4p-1, 0x1.3c995a47cp-1,
+ 0x1.3b13b13b2p-1, 0x1.3991c2c18p-1, 0x1.381381382p-1, 0x1.3698df3dep-1,
+ 0x1.3521cfb2cp-1, 0x1.33ae45b58p-1, 0x1.323e34a2cp-1, 0x1.30d19013p-1,
+ 0x1.2f684bda2p-1, 0x1.2e025c04cp-1, 0x1.2c9fb4d82p-1, 0x1.2b404ad02p-1,
+ 0x1.29e4129e4p-1, 0x1.288b01288p-1, 0x1.27350b882p-1, 0x1.25e22708p-1,
+ 0x1.24924924ap-1, 0x1.23456789ap-1, 0x1.21fb78122p-1, 0x1.20b470c68p-1,
+ 0x1.1f7047dc2p-1, 0x1.1e2ef3b4p-1, 0x1.1cf06ada2p-1, 0x1.1bb4a4046p-1,
+ 0x1.1a7b9611ap-1, 0x1.19453808cp-1, 0x1.181181182p-1, 0x1.16e068942p-1,
+ 0x1.15b1e5f76p-1, 0x1.1485f0e0ap-1, 0x1.135c81136p-1, 0x1.12358e75ep-1,
+ 0x1.111111112p-1, 0x1.0fef010fep-1, 0x1.0ecf56be6p-1, 0x1.0db20a89p-1,
+ 0x1.0c9714fbcp-1, 0x1.0b7e6ec26p-1, 0x1.0a6810a68p-1, 0x1.0953f3902p-1,
+ 0x1.084210842p-1, 0x1.073260a48p-1, 0x1.0624dd2f2p-1, 0x1.05197f7d8p-1,
+ 0x1.041041042p-1, 0x1.03091b52p-1, 0x1.020408102p-1, 0x1.01010101p-1,
+ 0x1p-1
+ };
+
+const double __asincoshf_lix[] =
+ {
+ 0x0p+0, 0x1.fe02a6b146789p-8, 0x1.fc0a8b0fa03e4p-7,
+ 0x1.7b91b07de311bp-6, 0x1.f829b0e7c33p-6, 0x1.39e87b9fd7d6p-5,
+ 0x1.77458f63edcfcp-5, 0x1.b42dd7117b1bfp-5, 0x1.f0a30c01362a6p-5,
+ 0x1.16536eea7fae1p-4, 0x1.341d7961791d1p-4, 0x1.51b073f07983fp-4,
+ 0x1.6f0d28ae3eb4cp-4, 0x1.8c345d6383b21p-4, 0x1.a926d3a475563p-4,
+ 0x1.c5e548f63a743p-4, 0x1.e27076e28f2e6p-4, 0x1.fec9131dbaabbp-4,
+ 0x1.0d77e7ccf6e59p-3, 0x1.1b72ad52f87ap-3, 0x1.29552f81eb523p-3,
+ 0x1.371fc201f7f74p-3, 0x1.44d2b6ccbfd1ep-3, 0x1.526e5e3a41438p-3,
+ 0x1.5ff3070a613d4p-3, 0x1.6d60fe717221dp-3, 0x1.7ab890212b909p-3,
+ 0x1.87fa065214911p-3, 0x1.9525a9cf296b4p-3, 0x1.a23bc1fe42563p-3,
+ 0x1.af3c94e81bff3p-3, 0x1.bc2867430acd6p-3, 0x1.c8ff7c7989a22p-3,
+ 0x1.d5c216b535b91p-3, 0x1.e27076e2f92e6p-3, 0x1.ef0adcbe0d936p-3,
+ 0x1.fb9186d5ebe2bp-3, 0x1.0402594b51041p-2, 0x1.0a324e27370e3p-2,
+ 0x1.1058bf9ad7ad5p-2, 0x1.1675cabaa660ep-2, 0x1.1c898c16b91fbp-2,
+ 0x1.22941fbcfb966p-2, 0x1.2895a13dd2ea3p-2, 0x1.2e8e2bade7d31p-2,
+ 0x1.347dd9a9afd55p-2, 0x1.3a64c556b05eap-2, 0x1.40430868877e4p-2,
+ 0x1.4618bc219dec2p-2, 0x1.4be5f9579e0a1p-2, 0x1.51aad872c982dp-2,
+ 0x1.5767717432a6cp-2, 0x1.5d1bdbf5669cap-2, 0x1.62c82f2b83795p-2,
+ 0x1.686c81e9964afp-2, 0x1.6e08eaa2929e4p-2, 0x1.739d7f6b95007p-2,
+ 0x1.792a55fdb7fa2p-2, 0x1.7eaf83b82efc3p-2, 0x1.842d1da1ecb17p-2,
+ 0x1.89a3386be825bp-2, 0x1.8f11e87347ac7p-2, 0x1.947941c1f26fbp-2,
+ 0x1.99d958119208bp-2, 0x1.9f323ecbd984cp-2, 0x1.a484090e5eb0ap-2,
+ 0x1.a9cec9a9cf84ap-2, 0x1.af1293245606bp-2, 0x1.b44f77bc98f63p-2,
+ 0x1.b9858969218fbp-2, 0x1.beb4d9da96b7cp-2, 0x1.c3dd7a7d0354dp-2,
+ 0x1.c8ff7c79ada22p-2, 0x1.ce1af0b855bebp-2, 0x1.d32fe7e039bd5p-2,
+ 0x1.d83e72587673ep-2, 0x1.dd46a04c204a1p-2, 0x1.e24881a7cac26p-2,
+ 0x1.e744261d8a788p-2, 0x1.ec399d2457ccp-2, 0x1.f128f5fac86edp-2,
+ 0x1.f6123fa71c8acp-2, 0x1.faf588f76631fp-2, 0x1.ffd2e08580c98p-2,
+ 0x1.02552a5a4f0ffp-1, 0x1.04bdf9da8b6d2p-1, 0x1.0723e5c1b4f4p-1,
+ 0x1.0986f4f589521p-1, 0x1.0be72e423ca83p-1, 0x1.0e44985d0f48cp-1,
+ 0x1.109f39e2be497p-1, 0x1.12f71959283bcp-1, 0x1.154c3d2f4f5eap-1,
+ 0x1.179eabbd9c9a1p-1, 0x1.19ee6b466516fp-1, 0x1.1c3b81f723c25p-1,
+ 0x1.1e85f5e6ec0dp-1, 0x1.20cdcd193f76ep-1, 0x1.23130d7beb743p-1,
+ 0x1.2555bce9887cbp-1, 0x1.2795e1288211bp-1, 0x1.29d37fec2308bp-1,
+ 0x1.2c0e9ed45768cp-1, 0x1.2e47436e5ae68p-1, 0x1.307d7334ff0bep-1,
+ 0x1.32b1339134571p-1, 0x1.34e289d9b39d3p-1, 0x1.37117b5481bb6p-1,
+ 0x1.393e0d3549a1ap-1, 0x1.3b6844a017823p-1, 0x1.3d9026a70eefbp-1,
+ 0x1.3fb5b84cfeb42p-1, 0x1.41d8fe844b2aep-1, 0x1.43f9fe2fb9267p-1,
+ 0x1.4618bc21d86c2p-1, 0x1.48353d1e928dfp-1, 0x1.4a4f85db1debbp-1,
+ 0x1.4c679afcc323ap-1, 0x1.4e7d811b77bb1p-1, 0x1.50913cbff8c6bp-1,
+ 0x1.52a2d265be5abp-1, 0x1.54b2467998498p-1, 0x1.56bf9d5b34b99p-1,
+ 0x1.58cadb5cbe989p-1, 0x1.5ad404c33af2dp-1, 0x1.5cdb1dc6ad765p-1,
+ 0x1.5ee02a9241e75p-1, 0x1.60e32f447a8d9p-1, 0x1.62e42fefa39efp-1
+ };
+
+const double __asincoshf_c[] =
+ {
+ 0x1.0000000066947p+0, -0x1.00007f053d8cbp-1, 0x1.555280111d914p-2
+ };
+
+
+const double __asincoshf_cp[] =
+ {
+ 0x1p+0, -0x1p-1,
+ 0x1.55555555030bcp-2, -0x1.ffffffff2b4e5p-3,
+ 0x1.999b5076a42f2p-3, -0x1.55570c45a647dp-3
+ };
diff --git a/sysdeps/ieee754/flt-32/s_asincoshf_data.h b/sysdeps/ieee754/flt-32/s_asincoshf_data.h
new file mode 100644
index 0000000..2a7947a
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincoshf_data.h
@@ -0,0 +1,36 @@
+/* Common data for asinpif/acospif implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef _ASINCOSHF_H
+#define _ASINCOSHF_H
+
+extern const double __asincoshf_ix[] attribute_hidden;
+#define IX __asincoshf_ix
+extern const double __asincoshf_lix[] attribute_hidden;
+#define LIX __asincoshf_lix
+extern const double __asincoshf_c[] attribute_hidden;
+#define C __asincoshf_c
+extern const double __asincoshf_cp[] attribute_hidden;
+#define CP __asincoshf_cp
+
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_asincospif_data.c b/sysdeps/ieee754/flt-32/s_asincospif_data.c
new file mode 100644
index 0000000..5bd67e9
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincospif_data.c
@@ -0,0 +1,81 @@
+/* Common data for asinpif/acospif implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asinpi/asinpif.c, revision 6ee58266).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include "s_asincospif_data.h"
+
+const double __asincospif_ch[][8] =
+ {
+ { 0x1.45f306dc9c882p-2, 0x1.b2995e7b7dc2fp-5, 0x1.8723a1cf50c7ep-6,
+ 0x1.d1a4591d16a29p-7, 0x1.3ce3aa68ddaeep-7, 0x1.d3182ab0cc1bfp-8,
+ 0x1.62b379a8b88e3p-8, 0x1.6811411fcfec2p-8 },
+ { 0x1.ffffffffd3cdap-2, -0x1.17cc1b3355fddp-4, 0x1.d067a1e8d5a99p-6,
+ -0x1.08e16fb09314ap-6, 0x1.5eed43d42dcb2p-7, -0x1.f58baca7acc71p-8,
+ 0x1.5dab64e2dcf15p-8, -0x1.59270e30797acp-9 },
+ { 0x1.fffffff7c4617p-2, -0x1.17cc149ded3a2p-4, 0x1.d0654d4cb2c1ap-6,
+ -0x1.08c3ba713d33ap-6, 0x1.5d2053481079cp-7, -0x1.e485ebc545e7ep-8,
+ 0x1.303baca167dddp-8, -0x1.dee8d16d06b38p-10 },
+ { 0x1.ffffffa749848p-2, -0x1.17cbe7155935p-4, 0x1.d05a312269adfp-6,
+ -0x1.0862b3ee617d7p-6, 0x1.5920708db2a73p-7, -0x1.cb0463b3862c3p-8,
+ 0x1.02b82478f95d7p-8, -0x1.52a7b8579e729p-10 },
+ { 0x1.fffffe1f92bb5p-2, -0x1.17cb3e74c64e3p-4, 0x1.d03af67311cbfp-6,
+ -0x1.079441cbfc7ap-6, 0x1.52b4287805a61p-7, -0x1.ac3286d604a98p-8,
+ 0x1.b2f1210d9701bp-9, -0x1.e740ddc25afd6p-11 },
+ { 0x1.fffff92beb6e2p-2, -0x1.17c986fe9518bp-4, 0x1.cff98167c9a5ep-6,
+ -0x1.0638b591eae52p-6, 0x1.4a0803828959ep-7, -0x1.8adeca229f11dp-8,
+ 0x1.6b9a7ba05dfcep-9, -0x1.640521a43b2dp-11 },
+ { 0x1.ffffeccee5bfcp-2, -0x1.17c5f1753f5eap-4, 0x1.cf874e4fe258fp-6,
+ -0x1.043e6cf77b256p-6, 0x1.3f7db42227d92p-7, -0x1.691a6fa2a2882p-8,
+ 0x1.2f6543162bc61p-9, -0x1.07d5da05822b6p-11 },
+ { 0x1.ffffd2f64431dp-2, -0x1.17bf8208c10c1p-4, 0x1.ced7487cdb124p-6,
+ -0x1.01a0d30932905p-6, 0x1.3388f99b254dap-7, -0x1.4844e245c65bdp-8,
+ 0x1.fa777150197c6p-10, -0x1.8c1ecf16a05c8p-12 },
+ { 0x1.ffffa36d1712ep-2, -0x1.17b523971bd4ep-4, 0x1.cddee26de2deep-6,
+ -0x1.fccb00abaaabcp-7, 0x1.269afc3622342p-7, -0x1.2933152686752p-8,
+ 0x1.a76d4956cc9a3p-10, -0x1.2ce7d6dc651cep-12 },
+ { 0x1.ffff5402ab3a1p-2, -0x1.17a5ba85da77ap-4, 0x1.cc96894e05c02p-6,
+ -0x1.f532143cb832ep-7, 0x1.19180b660ff09p-7, -0x1.0c57417a78b3cp-8,
+ 0x1.62e26cbd7bb1ep-10, -0x1.ce28d33fe1df3p-13 },
+ { 0x1.fffed8d639751p-2, -0x1.1790349f3ae76p-4, 0x1.caf9a4fd1b398p-6,
+ -0x1.ec986b111342ep-7, 0x1.0b53c3ad4baa4p-7, -0x1.e3c2282eeace4p-9,
+ 0x1.2a55369f55bbep-10, -0x1.667fe48c396e8p-13 },
+ { 0x1.fffe24b714161p-2, -0x1.177394fbcb719p-4, 0x1.c90652d920ebdp-6,
+ -0x1.e3239197bddf1p-7, 0x1.fb2188525b025p-8, -0x1.b3aadd451afc7p-9,
+ 0x1.f74020f31fdabp-11, -0x1.18b0cb246768dp-13 },
+ { 0x1.fffd298bec9e2p-2, -0x1.174efbfd34648p-4, 0x1.c6bcfe48ea92bp-6,
+ -0x1.d8f9f2a16157cp-7, 0x1.e0044f56c8864p-8, -0x1.883e2347fe76cp-9,
+ 0x1.a9f0e3c1b7af5p-11, -0x1.bb5acc0e60825p-14 },
+ { 0x1.fffbd8b784c4dp-2, -0x1.1721abdd3722ep-4, 0x1.c41fee756d4bp-6,
+ -0x1.ce40bccf8065fp-7, 0x1.c59b684b70ef9p-8, -0x1.6133d027996b3p-9,
+ 0x1.69cad01106397p-11, -0x1.60f8e45494156p-14 },
+ { 0x1.fffa23749cf88p-2, -0x1.16eb0a8285c06p-4, 0x1.c132d762e1b0dp-6,
+ -0x1.c31a959398f4ep-7, 0x1.ac1c5b46bc8ap-8, -0x1.3e34f1abe51dcp-9,
+ 0x1.346738737c0b9p-11, -0x1.1b227a3f5c75p-14 },
+ { 0x1.fff7fb25bb407p-2, -0x1.16aaa14d7564p-4, 0x1.bdfa75fca5ff2p-6,
+ -0x1.b7a6e260d079cp-7, 0x1.93ab06911033cp-8, -0x1.1ee5560967fd5p-9,
+ 0x1.07d31060838bfp-11, -0x1.c96f33a283115p-15
+ }
+};
diff --git a/sysdeps/ieee754/flt-32/s_asincospif_data.h b/sysdeps/ieee754/flt-32/s_asincospif_data.h
new file mode 100644
index 0000000..d733f86
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asincospif_data.h
@@ -0,0 +1,34 @@
+/* Common data for asinpif/acospif implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asinpi/asinpif.c, revision 6ee58266).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#ifndef _S_ASINCOSPIF_H
+#define _S_ASINCOSPIF_H
+
+extern const double __asincospif_ch[][8] attribute_hidden;
+#define CH __asincospif_ch
+
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_asinhf.c b/sysdeps/ieee754/flt-32/s_asinhf.c
index a94676f..9353b42 100644
--- a/sysdeps/ieee754/flt-32/s_asinhf.c
+++ b/sysdeps/ieee754/flt-32/s_asinhf.c
@@ -1,51 +1,97 @@
-/* s_asinhf.c -- float version of s_asinh.c.
- */
+/* Correctly-rounded inverse hyperbolic sine function for binary32 format.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2023-2024 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asinh/asinhf.c, revision e8774b3).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-#include <float.h>
#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
+#include <stdint.h>
#include <libm-alias-float.h>
-
-static const float
-one = 1.0000000000e+00, /* 0x3F800000 */
-ln2 = 6.9314718246e-01, /* 0x3f317218 */
-huge= 1.0000000000e+30;
+#include "math_config.h"
+#include "s_asincoshf_data.h"
float
-__asinhf(float x)
+__asinhf (float x)
{
- float w;
- int32_t hx,ix;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(__builtin_expect(ix< 0x38000000, 0)) { /* |x|<2**-14 */
- math_check_force_underflow (x);
- if(huge+x>one) return x; /* return x inexact except 0 */
+ uint32_t t = asuint (x);
+ t &= ~0u >> 1;
+ double xs = x;
+ if (__glibc_unlikely (t <= 0x3e815667u))
+ {
+ if (__glibc_unlikely (t <= 0x39ddb3d7u))
+ {
+ if (__glibc_unlikely (t == 0))
+ return x;
+ return fmaf (x, -0x1p-25f, x);
}
- if(__builtin_expect(ix>0x47000000, 0)) { /* |x| > 2**14 */
- if(ix>=0x7f800000) return x+x; /* x is inf or NaN */
- w = __ieee754_logf(fabsf(x))+ln2;
- } else {
- float xa = fabsf(x);
- if (ix>0x40000000) { /* 2**14 > |x| > 2.0 */
- w = __ieee754_logf(2.0f*xa+one/(sqrtf(xa*xa+one)+xa));
- } else { /* 2.0 > |x| > 2**-14 */
- float t = xa*xa;
- w =__log1pf(xa+t/(one+sqrtf(one+t)));
+ static const double c[] =
+ {
+ 0x1.5555555555553p-3, -0x1.3333333330e9dp-4, 0x1.6db6db67cb37ap-5,
+ -0x1.f1c71699375dp-6, 0x1.6e8a374c39ff9p-6, -0x1.1c1e98f9d01e1p-6,
+ 0x1.c277e96d84026p-7, -0x1.329ff5faf02abp-7
+ };
+ double x2 = xs * xs;
+ double x4 = x2 * x2;
+ double x8 = x4 * x4;
+ double f = x2 * (((c[0] + x2 * c[1]) + x4 * (c[2] + x2 * c[3]))
+ + x8 * ((c[4] + x2 * c[5]) + x4 * (c[6] + x2 * c[7])));
+ double r = xs - xs * f;
+ return r;
+ }
+ else
+ {
+ if (__glibc_unlikely (t >= 0x7f800000u))
+ return x + x; /* +-inf or nan */
+ double xd = fabs (xs);
+ double x2 = xd * xd;
+ uint64_t tp = asuint64 (xd + sqrt (x2 + 1));
+ uint64_t m = tp & (~UINT64_C(0) >> 12);
+ int j = (m + (UINT64_C(1) << (52 - 8))) >> (52 - 7);
+ int e = (tp >> 52) - 0x3ff;
+ double w = asdouble (m | UINT64_C(0x3ff) << 52);
+ double z = w * IX[j] - 1.0;
+ double z2 = z * z;
+ double r = ((LIX[128] * e + LIX[j]) + z * C[0]) + z2 * (C[1] + z * C[2]);
+ if (__glibc_unlikely (((asuint64 (r) + 259000) & INT64_C(0xfffffff))
+ < 260000)) /* accurate path */
+ {
+ z2 = z * z;
+ double c0 = CP[0] + z * CP[1];
+ double c2 = CP[2] + z * CP[3];
+ double c4 = CP[4] + z * CP[5];
+ c0 += z2 * (c2 + z2 * c4);
+ const double ln2l = 0x1.7f7d1cf79abcap-20;
+ const double ln2h = 0x1.62e4p-1;
+ double Lh = ln2h * e;
+ double Ll = ln2l * e;
+ r = fma (z, c0, Ll + LIX[j]) + Lh;
+ if (__glibc_unlikely ((asuint64 (r) & INT64_C(0xfffffff)) == 0))
+ {
+ double h = fma (z, c0, Ll + LIX[j]) + (Lh - r);
+ r = r + 64 * h;
}
}
- return copysignf(w, x);
+ return copysign (r, xs);
+ }
}
libm_alias_float (__asinh, asinh)
diff --git a/sysdeps/ieee754/flt-32/s_asinpif.c b/sysdeps/ieee754/flt-32/s_asinpif.c
new file mode 100644
index 0000000..f9e9353
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_asinpif.c
@@ -0,0 +1,86 @@
+/* Correctly-rounded half-revolution arc-sine function for binary32 value.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/asinpi/asinpif.c, revision 6ee58266).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <errno.h>
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+#include "s_asincospif_data.h"
+
+float
+__asinpif (float x)
+{
+ float ax = fabsf (x);
+ double az = ax;
+ double z = x;
+ uint32_t t = asuint (x);
+ int32_t e = (t >> 23) & 0xff;
+ if (__glibc_unlikely (e >= 127))
+ {
+ if (ax == 1.0f)
+ return copysignf (0.5f, x);
+ if (e == 0xff && (t << 9))
+ return x + x; /* nan */
+ return __math_edomf ((x - x) / (x - x)); /* nan */
+ }
+ int32_t s = 146 - e;
+ int32_t i = 0;
+ /* s<32 corresponds to |x| >= 2^-12 */
+ if (__glibc_likely (s < 32))
+ i = ((t & (~0u >> 9)) | 1 << 23) >> s;
+ const double *c = CH[i];
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ if (__glibc_unlikely (i == 0)) /* |x| < 2^-4 */
+ {
+ double c0 = c[0] + z2 * c[1];
+ double c2 = c[2] + z2 * c[3];
+ double c4 = c[4] + z2 * c[5];
+ double c6 = c[6] + z2 * c[7];
+ c0 += c2 * z4;
+ c4 += c6 * z4;
+ c0 += c4 * (z4 * z4);
+ if (__glibc_unlikely (ax != 0.0 && ax <= 0x1.921fb4p-126f))
+ __set_errno (ERANGE);
+ return z * c0;
+ }
+ else /* |x| >= 2^-4 */
+ {
+ double f = sqrt (1 - az);
+ double c0 = c[0] + az * c[1];
+ double c2 = c[2] + az * c[3];
+ double c4 = c[4] + az * c[5];
+ double c6 = c[6] + az * c[7];
+ c0 += c2 * z2;
+ c4 += c6 * z2;
+ c0 += c4 * z4;
+ double r = fma (-c0, copysign (f, x), copysign (0.5, x));
+ return r;
+ }
+}
+libm_alias_float (__asinpi, asinpi)
diff --git a/sysdeps/ieee754/flt-32/s_atan2pif.c b/sysdeps/ieee754/flt-32/s_atan2pif.c
new file mode 100644
index 0000000..8c9cbc13
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_atan2pif.c
@@ -0,0 +1,238 @@
+/* Correctly-rounded half revolution arctangent function of two binary32 values.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/atan2pi/atan2pif.c, revision dbebee1).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <math.h>
+#include <stdint.h>
+#include <errno.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+static inline double
+muldd (double xh, double xl, double ch, double cl, double *l)
+{
+ double ahlh = ch * xl;
+ double alhh = cl * xh;
+ double ahhh = ch * xh;
+ double ahhl = fma (ch, xh, -ahhh);
+ ahhl += alhh + ahlh;
+ ch = ahhh + ahhl;
+ *l = (ahhh - ch) + ahhl;
+ return ch;
+}
+
+static double
+polydd (double xh, double xl, int n, const double c[][2], double *l)
+{
+ int i = n - 1;
+ double ch = c[i][0], cl = c[i][1];
+ while (--i >= 0)
+ {
+ ch = muldd (xh, xl, ch, cl, &cl);
+ double th = ch + c[i][0], tl = (c[i][0] - th) + ch;
+ ch = th;
+ cl += tl + c[i][1];
+ }
+ *l = cl;
+ return ch;
+}
+
+float
+__atan2pif (float y, float x)
+{
+ static const double cn[] =
+ {
+ 0x1.45f306dc9c883p-2, 0x1.988d83a142adap-1, 0x1.747bebf492057p-1,
+ 0x1.2cc5645094ff3p-2, 0x1.a0521c711ab66p-5, 0x1.881b8058b9a0dp-9,
+ 0x1.b16ff514a0afp-16
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, 0x1.6b8b143a3f6dap+1, 0x1.8421201d18ed5p+1,
+ 0x1.8221d086914ebp+0, 0x1.670657e3a07bap-2, 0x1.0f4951fd1e72dp-5,
+ 0x1.b3874b8798286p-11
+ };
+ static const double m[] = { 0, 1 };
+ static const double off[]
+ = { 0.0f, 0.5f, 1.0f, 0.5f, -0.0f, -0.5f, -1.0f, -0.5f };
+ static const float sgnf[] = { 1, -1 };
+ static const double sgn[] = { 1, -1 };
+ uint32_t ux = asuint (x);
+ uint32_t uy = asuint (y);
+ uint32_t ax = ux & (~0u >> 1);
+ uint32_t ay = uy & (~0u >> 1);
+ if (__glibc_unlikely (ay >= (0xff << 23) || ax >= (0xff << 23)))
+ {
+ if (ay > (0xff << 23))
+ return x + y; /* nan */
+ if (ax > (0xff << 23))
+ return x + y; /* nan */
+ uint32_t yinf = ay == (0xff << 23);
+ uint32_t xinf = ax == (0xff << 23);
+ if (yinf & xinf)
+ {
+ if (ux >> 31)
+ return 0.75f * sgnf[uy >> 31];
+ else
+ return 0.25f * sgnf[uy >> 31];
+ }
+ if (xinf)
+ {
+ if (ux >> 31)
+ return sgnf[uy >> 31];
+ else
+ return 0.0f * sgnf[uy >> 31];
+ }
+ if (yinf)
+ return 0.5f * sgnf[uy >> 31];
+ }
+ if (__glibc_unlikely (ay == 0))
+ {
+ if (__glibc_unlikely (!(ay | ax)))
+ {
+ uint32_t i = (uy >> 31) * 4 + (ux >> 31) * 2;
+ return off[i];
+ }
+ if (!(ux >> 31))
+ return 0.0f * sgnf[uy >> 31];
+ }
+ if (__glibc_unlikely (ax == ay))
+ {
+ static const float s[] = { 0.25, 0.75, -0.25, -0.75 };
+ uint32_t i = (uy >> 31) * 2 + (ux >> 31);
+ return s[i];
+ }
+ uint32_t gt = ay > ax, i = (uy >> 31) * 4 + (ux >> 31) * 2 + gt;
+
+ double zx = x, zy = y;
+ double z = (m[gt] * zx + m[1 - gt] * zy) / (m[gt] * zy + m[1 - gt] * zx);
+ double r = cn[0], z2 = z*z;
+ z *= sgn[gt];
+ /* avoid spurious underflow in the polynomial evaluation excluding extremely
+ small arguments */
+ if (__glibc_likely (z2 > 0x1p-54))
+ {
+ double z4 = z2*z2, z8 = z4*z4;
+ double cn0 = r + z2*cn[1];
+ double cn2 = cn[2] + z2*cn[3];
+ double cn4 = cn[4] + z2*cn[5];
+ double cn6 = cn[6];
+ cn0 += z4*cn2;
+ cn4 += z4*cn6;
+ cn0 += z8*cn4;
+ double cd0 = cd[0] + z2*cd[1];
+ double cd2 = cd[2] + z2*cd[3];
+ double cd4 = cd[4] + z2*cd[5];
+ double cd6 = cd[6];
+ cd0 += z4*cd2;
+ cd4 += z4*cd6;
+ cd0 += z8*cd4;
+ r = cn0/cd0;
+ }
+ r = z * r + off[i];
+ uint64_t res = asuint64 (r);
+ if (__glibc_unlikely ((res << 1) > 0x6d40000000000000
+ && ((res + 8) & 0xfffffff) <= 16))
+ {
+ if (ax == ay)
+ {
+ static const double off2[] = { 0.25, 0.75, -0.25, -0.75 };
+ r = off2[(uy >> 31) * 2 + (ux >> 31)];
+ }
+ else
+ {
+ double zh, zl;
+ if (!gt)
+ {
+ zh = zy / zx;
+ zl = fma (zh, -zx, zy) / zx;
+ }
+ else
+ {
+ zh = zx / zy;
+ zl = fma (zh, -zy, zx) / zy;
+ }
+ double z2l, z2h = muldd (zh, zl, zh, zl, &z2l);
+ static const double c[][2] =
+ {
+ { 0x1.45f306dc9c883p-2, -0x1.6b01ec5513324p-56 },
+ { -0x1.b2995e7b7b604p-4, 0x1.e402b0c13eedcp-58 },
+ { 0x1.04c26be3b06cfp-4, -0x1.571d178a53efp-60 },
+ { -0x1.7483758e69c03p-5, 0x1.819a6ed7aaf38p-63 },
+ { 0x1.21bb9452523ffp-5, -0x1.234d866fb9807p-60 },
+ { -0x1.da1bace3cc54ep-6, -0x1.c84f6ada49294p-64 },
+ { 0x1.912b1c23345ddp-6, -0x1.534890fbc165p-60 },
+ { -0x1.5bade52f5f52ap-6, 0x1.f783bafc832f6p-60 },
+ { 0x1.32c69d084c5cp-6, 0x1.042d155953025p-60 },
+ { -0x1.127bcfb3e8c7dp-6, -0x1.85aae199a7b6bp-60 },
+ { 0x1.f0af43b11a731p-7, 0x1.8f0356356663p-61 },
+ { -0x1.c57e86801029ep-7, 0x1.dcdf3e3b38eb4p-61 },
+ { 0x1.a136408617ea1p-7, 0x1.a71affb36c6c4p-63 },
+ { -0x1.824ac7814ba37p-7, 0x1.8928b295c0898p-61 },
+ { 0x1.6794e32ea5471p-7, 0x1.0b4334fb41e63p-61 },
+ { -0x1.501d57f643d97p-7, 0x1.516785bf1376ep-61 },
+ { 0x1.3adf02ff2400ap-7, -0x1.b0e30bb8c8076p-62 },
+ { -0x1.267702f94faap-7, -0x1.7a4d3a1850cc6p-62 },
+ { 0x1.10dce97099686p-7, 0x1.fcc208eee2571p-61 },
+ { -0x1.eee49cdad8002p-8, -0x1.9109b3f1bab82p-64 },
+ { 0x1.af93bc191a929p-8, 0x1.069fd3b47d7bp-62 },
+ { -0x1.6240751b54675p-8, -0x1.72dc8cfd03b6fp-62 },
+ { 0x1.0b61e84080884p-8, 0x1.825824c80941bp-63 },
+ { -0x1.6a72a8a74e3a5p-9, 0x1.8786a82fd117ep-63 },
+ { 0x1.aede3217d939dp-10, -0x1.93b626982e1fep-68 },
+ { -0x1.b66568f09ebeep-11, -0x1.704a39121d0a5p-66 },
+ { 0x1.73af3977fa973p-12, -0x1.aa050e2244ea3p-68 },
+ { -0x1.fc69d85ed28c9p-14, 0x1.867f17b764cap-68 },
+ { 0x1.0c883a9270162p-15, -0x1.6842833896dd9p-70 },
+ { -0x1.9a0b27b6dfe15p-18, 0x1.427fc2f4e1327p-73 },
+ { 0x1.91e15e7ab5bdcp-21, -0x1.730dbc6279d0dp-77 },
+ { -0x1.7b1119c1ff867p-25, 0x1.145f9980759c4p-79 }
+ };
+ double pl, ph = polydd (z2h, z2l, 32, c, &pl);
+ zh *= sgn[gt];
+ zl *= sgn[gt];
+ ph = muldd (zh, zl, ph, pl, &pl);
+ double sh = ph + off[i], sl = ((off[i] - sh) + ph) + pl;
+ float rf = sh;
+ double th = rf, dh = sh - th, tm = dh + sl;
+ r = th + tm;
+ double d = r - th;
+ if (!(asuint64 (d) << 12))
+ {
+ double ad = fabs (d), am = fabs (tm);
+ if (ad > am)
+ r -= d * 0x1p-10;
+ if (ad < am)
+ r += d * 0x1p-10;
+ }
+ }
+ }
+ float rf = r;
+ if (__glibc_unlikely (rf == 0.0f && y != 0.0f))
+ __set_errno (ERANGE);
+ return rf;
+}
+libm_alias_float (__atan2pi, atan2pi)
diff --git a/sysdeps/ieee754/flt-32/s_atanf.c b/sysdeps/ieee754/flt-32/s_atanf.c
index 3dbf5c5..147f69f 100644
--- a/sysdeps/ieee754/flt-32/s_atanf.c
+++ b/sysdeps/ieee754/flt-32/s_atanf.c
@@ -1,102 +1,113 @@
-/* s_atanf.c -- float version of s_atan.c.
- */
+/* Correctly-rounded arc-tangent of binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $";
-#endif
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/atan/atanf.c, revision a8066a5).
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libm-alias-float.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-static const float atanhi[] = {
- 4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */
- 7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */
- 9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */
- 1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */
-};
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-static const float atanlo[] = {
- 5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */
- 3.7748947079e-08, /* atan(1.0)lo 0x33222168 */
- 3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */
- 7.5497894159e-08, /* atan(inf)lo 0x33a22168 */
-};
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-static const float aT[] = {
- 3.3333334327e-01, /* 0x3eaaaaaa */
- -2.0000000298e-01, /* 0xbe4ccccd */
- 1.4285714924e-01, /* 0x3e124925 */
- -1.1111110449e-01, /* 0xbde38e38 */
- 9.0908870101e-02, /* 0x3dba2e6e */
- -7.6918758452e-02, /* 0xbd9d8795 */
- 6.6610731184e-02, /* 0x3d886b35 */
- -5.8335702866e-02, /* 0xbd6ef16b */
- 4.9768779427e-02, /* 0x3d4bda59 */
- -3.6531571299e-02, /* 0xbd15a221 */
- 1.6285819933e-02, /* 0x3c8569d7 */
-};
-
-static const float
-one = 1.0,
-huge = 1.0e30;
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
-float __atanf(float x)
+float
+__atanf (float x)
{
- float w,s1,s2,z;
- int32_t ix,hx,id;
-
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x4c000000) { /* if |x| >= 2^25 */
- if(ix>0x7f800000)
- return x+x; /* NaN */
- if(hx>0) return atanhi[3]+atanlo[3];
- else return -atanhi[3]-atanlo[3];
- } if (ix < 0x3ee00000) { /* |x| < 0.4375 */
- if (ix < 0x31000000) { /* |x| < 2^-29 */
- math_check_force_underflow (x);
- if(huge+x>one) return x; /* raise inexact */
- }
- id = -1;
- } else {
- x = fabsf(x);
- if (ix < 0x3f980000) { /* |x| < 1.1875 */
- if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */
- id = 0; x = ((float)2.0*x-one)/((float)2.0+x);
- } else { /* 11/16<=|x|< 19/16 */
- id = 1; x = (x-one)/(x+one);
- }
- } else {
- if (ix < 0x401c0000) { /* |x| < 2.4375 */
- id = 2; x = (x-(float)1.5)/(one+(float)1.5*x);
- } else { /* 2.4375 <= |x| < 2^66 */
- id = 3; x = -(float)1.0/x;
- }
- }}
- /* end of argument reduction */
- z = x*x;
- w = z*z;
- /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
- s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
- s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
- if (id<0) return x - x*(s1+s2);
- else {
- z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
- return (hx<0)? -z:z;
+ const double pi2 = 0x1.921fb54442d18p+0;
+ uint32_t t = asuint (x);
+ int e = (t >> 23) & 0xff;
+ bool gt = e >= 127;
+ uint32_t ta = t & 0x7fffffff;
+ if (__glibc_unlikely (ta >= 0x4c700518u)) /* |x| > 0x1.e00a3p+25 */
+ {
+ if (ta > 0x7f800000u)
+ return x + x; /* nan */
+ return copysign (pi2, (double) x);
+ }
+ if (__glibc_unlikely (e < 127 - 13))
+ {
+ if (__glibc_unlikely (e < 127 - 25))
+ {
+ if (!(t << 1))
+ return x;
+ return fmaf (-x, fabsf (x), x);
}
+ return fmaf (-0x1.5555555555555p-2f * x, x * x, x);
+ }
+ /* now |x| >= 0x1p-13 */
+ double z = x;
+ if (gt)
+ z = 1 / z; /* gt is non-zero for |x| >= 1 */
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double z8 = z4 * z4;
+ /* polynomials generated using rminimax
+ (https://gitlab.inria.fr/sfilip/rminimax) with the following command:
+ ./ratapprox --function="atan(x)" --dom=[0.000122070,1]
+ --num=[x,x^3,x^5,x^7,x^9,x^11,x^13] --den=[1,x^2,x^4,x^6,x^8,x^10,x^12]
+ --output=atanf.sollya --log (see output atanf.sollya) The coefficient
+ cd[0] was slightly reduced from the original value 0x1.51eccde075d67p-2 to
+ avoid an exceptional case for |x| = 0x1.1ad646p-4 and rounding to nearest.
+ */
+ static const double cn[] =
+ {
+ 0x1.51eccde075d67p-2, 0x1.a76bb5637f2f2p-1, 0x1.81e0eed20de88p-1,
+ 0x1.376c8ca67d11dp-2, 0x1.aec7b69202ac6p-5, 0x1.9561899acc73ep-9,
+ 0x1.bf9fa5b67e6p-16
+ };
+ static const double cd[] =
+ {
+ 0x1.51eccde075d66p-2, 0x1.dfbdd7b392d28p-1, 0x1p+0,
+ 0x1.fd22bf0e89b54p-2, 0x1.d91ff8b576282p-4, 0x1.653ea99fc9bbp-7,
+ 0x1.1e7fcc202340ap-12
+ };
+ double cn0 = cn[0] + z2 * cn[1];
+ double cn2 = cn[2] + z2 * cn[3];
+ double cn4 = cn[4] + z2 * cn[5];
+ double cn6 = cn[6];
+ cn0 += z4 * cn2;
+ cn4 += z4 * cn6;
+ cn0 += z8 * cn4;
+ cn0 *= z;
+ double cd0 = cd[0] + z2 * cd[1];
+ double cd2 = cd[2] + z2 * cd[3];
+ double cd4 = cd[4] + z2 * cd[5];
+ double cd6 = cd[6];
+ cd0 += z4 * cd2;
+ cd4 += z4 * cd6;
+ cd0 += z8 * cd4;
+ double r = cn0 / cd0;
+ if (!gt)
+ return r; /* for |x| < 1, (float) r is correctly rounded */
+
+#define PI_OVER2_H 0x1.9p0
+#define PI_OVER2_L 0x1.0fdaa22168c23p-7
+ /* now r approximates atan(1/x), we use atan(x) + atan(1/x) = sign(x)*pi/2,
+ where PI_OVER2_H + PI_OVER2_L approximates pi/2.
+ With sign(z)*L + (-r + sign(z)*H), it fails for x=0x1.98c252p+12 and
+ rounding upward.
+ With sign(z)*PI - r, where PI is a double approximation of pi to nearest,
+ it fails for x=0x1.ddf9f6p+0 and rounding upward. */
+ r = copysign (PI_OVER2_L, z) - r + copysign (PI_OVER2_H, z);
+ return r;
}
libm_alias_float (__atan, atan)
diff --git a/sysdeps/ieee754/flt-32/s_atanpif.c b/sysdeps/ieee754/flt-32/s_atanpif.c
new file mode 100644
index 0000000..8d78163
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_atanpif.c
@@ -0,0 +1,109 @@
+/* Correctly-rounded half-revolution arc-tangent of binary32 value.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/atanpi/atanpif.c, revision e02000e).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <errno.h>
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+float
+__atanpif (float x)
+{
+ uint32_t t = asuint (x);
+ int32_t e = (t >> 23) & 0xff;
+ bool gt = e >= 127;
+ if (__glibc_unlikely (e > 127 + 24))
+ {
+ float f = copysignf (0.5f, x);
+ if (__glibc_unlikely (e == 0xff))
+ {
+ if (t << 9)
+ return x + x; /* nan */
+ return f; /* inf */
+ }
+ /* Warning: 0x1.45f306p-2f / x underflows for |x| >= 0x1.45f306p+124 */
+ if (fabsf (x) >= 0x1.45f306p+124f)
+ return f - copysign (0x1p-26f, x);
+ else
+ return f - 0x1.45f306p-2f / x;
+ }
+ double z = x;
+ if (__glibc_unlikely (e < 127 - 13))
+ {
+ double sx = z * 0x1.45f306dc9c883p-2;
+ if (__glibc_unlikely (e < 127 - 25))
+ {
+ float rsx = sx;
+ if (x != 0 && rsx == 0)
+ __set_errno (ERANGE);
+ return rsx;
+ }
+ return sx - (0x1.5555555555555p-2 * sx) * (x * x);
+ }
+ uint32_t ax = t & (~0u >> 1);
+ if (__glibc_unlikely (ax == 0x3fa267ddu))
+ return copysignf (0x1.267004p-2f, x) - copysignf (0x1p-55f, x);
+ if (__glibc_unlikely (ax == 0x3f693531u))
+ return copysignf (0x1.e1a662p-3f, x) + copysignf (0x1p-28f, x);
+ if (__glibc_unlikely (ax == 0x3f800000u))
+ return copysignf (0x1p-2f, x);
+ if (gt)
+ z = 1 / z;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double z8 = z4 * z4;
+ static const double cn[] =
+ {
+ 0x1.45f306dc9c882p-2, 0x1.733b561bc23d5p-1, 0x1.28d9805bdfbf2p-1,
+ 0x1.8c3ba966ae287p-3, 0x1.94a7f81ee634bp-6, 0x1.a6bbf6127a6dfp-11
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, 0x1.4e3b3ecc2518fp+1, 0x1.3ef4a360ff063p+1,
+ 0x1.0f1dc55bad551p+0, 0x1.8da0fecc018a4p-3, 0x1.8fa87803776bfp-7,
+ 0x1.dadf2ca0acb43p-14
+ };
+ double cn0 = cn[0] + z2 * cn[1];
+ double cn2 = cn[2] + z2 * cn[3];
+ double cn4 = cn[4] + z2 * cn[5];
+ cn0 += z4 * cn2;
+ cn0 += z8 * cn4;
+ cn0 *= z;
+ double cd0 = cd[0] + z2 * cd[1];
+ double cd2 = cd[2] + z2 * cd[3];
+ double cd4 = cd[4] + z2 * cd[5];
+ double cd6 = cd[6];
+ cd0 += z4 * cd2;
+ cd4 += z4 * cd6;
+ cd0 += z8 * cd4;
+ double r = cn0 / cd0;
+ if (gt)
+ r = copysign (0.5, z) - r;
+ return r;
+}
+libm_alias_float (__atanpi, atanpi)
diff --git a/sysdeps/ieee754/flt-32/s_cbrtf.c b/sysdeps/ieee754/flt-32/s_cbrtf.c
index 68b8b0e..df9e888 100644
--- a/sysdeps/ieee754/flt-32/s_cbrtf.c
+++ b/sysdeps/ieee754/flt-32/s_cbrtf.c
@@ -1,61 +1,99 @@
-/* Compute cubic root of float value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+/* Correctly-rounded cubic root of binary32 value.
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+Copyright (c) 2023, 2024 Alexei Sibidanov.
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/cbrt/cbrtf.c, revision f7c7408d).
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-#include <math.h>
-#include <libm-alias-float.h>
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-#define CBRT2 1.2599210498948731648 /* 2^(1/3) */
-#define SQR_CBRT2 1.5874010519681994748 /* 2^(2/3) */
-
-static const double factor[5] =
-{
- 1.0 / SQR_CBRT2,
- 1.0 / CBRT2,
- 1.0,
- CBRT2,
- SQR_CBRT2
-};
-
+#include <fenv.h>
+#include <libm-alias-float.h>
+#include <math.h>
+#include <stdint.h>
+#include "math_config.h"
float
__cbrtf (float x)
{
- float xm, ym, u, t2;
- int xe;
-
- /* Reduce X. XM now is an range 1.0 to 0.5. */
- xm = __frexpf (fabsf (x), &xe);
-
- /* If X is not finite or is null return it (with raising exceptions
- if necessary.
- Note: *Our* version of `frexp' sets XE to zero if the argument is
- Inf or NaN. This is not portable but faster. */
- if (xe == 0 && fpclassify (x) <= FP_ZERO)
- return x + x;
-
- u = (0.492659620528969547 + (0.697570460207922770
- - 0.191502161678719066 * xm) * xm);
-
- t2 = u * u * u;
-
- ym = u * (t2 + 2.0 * xm) / (2.0 * t2 + xm) * factor[2 + xe % 3];
-
- return __ldexpf (x > 0.0 ? ym : -ym, xe / 3);
+ static const union
+ {
+ double d;
+ uint64_t u;
+ } escale[3] =
+ {
+ { .d = 1.0 },
+ { .d = 0x1.428a2f98d728bp+0 }, /* 2^(1/3) */
+ { .d = 0x1.965fea53d6e3dp+0 }, /* 2^(2/3) */
+ };
+ uint32_t u = asuint (x);
+ uint32_t au = u << 1;
+ uint32_t sgn = u >> 31;
+ uint32_t e = au >> 24;
+ if (__glibc_unlikely (au < 1u << 24 || au >= 0xffu << 24))
+ {
+ if (au >= 0xffu << 24)
+ return x + x; /* inf, nan */
+ if (au == 0)
+ return x; /* +-0 */
+ int nz = __builtin_clz (au) - 7; /* subnormal */
+ au <<= nz;
+ e -= nz - 1;
+ }
+ uint32_t mant = au & 0xffffff;
+ e += 899;
+ uint32_t et = e / 3, it = e % 3;
+ uint64_t isc = escale[it].u;
+ isc += (uint64_t) (et - 342) << 52;
+ isc |= (uint64_t) sgn << 63;
+ double cvt2 = asdouble (isc);
+ static const double c[] =
+ {
+ 0x1.2319d352ea5d5p-1, 0x1.67ad8ee258d1ap-1, -0x1.9342edf9cbad9p-2,
+ 0x1.b6388fc510a75p-3, -0x1.6002455599e2fp-4, 0x1.7b096936192c4p-6,
+ -0x1.e5577187e8bf8p-9, 0x1.169ef81d6c34ep-12
+ };
+ double z = asdouble ((uint64_t) mant << 28 | UINT64_C(0x3ff) << 52);
+ double r0 = -0x1.9931c6c2d19d1p-6 / z;
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double f = ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])) + r0;
+ double r = f * cvt2;
+ float ub = r;
+ float lb = r - cvt2 * 1.4182e-9;
+ if (__glibc_likely (ub == lb))
+ return ub;
+ const double u0 = -0x1.ab16ec65d138fp+3;
+ double h = f * f * f - z;
+ f -= (f * r0 * u0) * h;
+ r = f * cvt2;
+ uint64_t cvt1 = asuint64 (r);
+ ub = r;
+ int64_t m0 = cvt1 << 19;
+ int64_t m1 = m0 >> 63;
+ if (__glibc_unlikely ((m0 ^ m1) < (UINT64_C(1) << 31)))
+ {
+ cvt1 = (cvt1 + (UINT64_C(1) << 31)) & UINT64_C(0xffffffff00000000);
+ ub = asdouble (cvt1);
+ }
+ return ub;
}
libm_alias_float (__cbrt, cbrt)
diff --git a/sysdeps/ieee754/flt-32/s_cosf.c b/sysdeps/ieee754/flt-32/s_cosf.c
index 7472640..4a3cfe6 100644
--- a/sysdeps/ieee754/flt-32/s_cosf.c
+++ b/sysdeps/ieee754/flt-32/s_cosf.c
@@ -1,5 +1,5 @@
/* Compute cosine of argument.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_cospif.c b/sysdeps/ieee754/flt-32/s_cospif.c
new file mode 100644
index 0000000..eb4a10f
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_cospif.c
@@ -0,0 +1,81 @@
+/* Correctly-rounded cosine of binary32 value for angles in half-revolutions
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (src/binary32/cospi/cospif.c, revision bbfabd99).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "s_sincospif_data.h"
+#include "math_config.h"
+
+float
+__cospif (float x)
+{
+ uint32_t ix = asuint (x);
+ int32_t e = (ix >> 23) & 0xff;
+ if (__glibc_unlikely (e == 0xff))
+ {
+ if (!(ix << 9))
+ return __math_invalidf (x);
+ return x + x; /* nan */
+ }
+ int32_t m = (ix & ~0u >> 9) | 1 << 23;
+ int32_t s = 143 - e;
+ int32_t p = e - 112;
+ if (__glibc_unlikely (p < 0)) /* |x| < 2^-15 */
+ {
+ uint32_t ax = ix & (~0u>>1);
+ /* Warning: -0x1.3bd3ccp+2f * x underflows for |x| < 0x1.9f03p-129 */
+ if (ax >= 0x19f030u)
+ return fmaf (-0x1.3bd3ccp+2f * x, x, 1.0f);
+ else /* |x| < 0x1.9f03p-129 */
+ return fmaf (-x, x, 1.0f);
+ }
+ if (__glibc_unlikely (p > 31))
+ {
+ if (__glibc_unlikely (p > 63))
+ return 1.0f;
+ int32_t iq = (uint32_t)m << (p - 32);
+ return S[(iq + 32) & 127];
+ }
+ int32_t k = (uint32_t)m << p;
+ if (__glibc_unlikely (k == 0))
+ {
+ int32_t iq = m >> (32 - p);
+ return S[(iq + 32) & 127];
+ }
+ double z = k;
+ double z2 = z * z;
+ double fs = SN[0] + z2 * (SN[1] + z2 * SN[2]);
+ double fc = CN[0] + z2 * (CN[1] + z2 * CN[2]);
+ uint32_t iq = m >> s;
+ iq = (iq + 1) >> 1;
+ uint32_t is = iq & 127, ic = (iq + 32) & 127;
+ double ts = S[ic], tc = S[is];
+ double r = ts + (ts * z2) * fc - (tc * z) * fs;
+ return r;
+}
+libm_alias_float (__cospi, cospi)
diff --git a/sysdeps/ieee754/flt-32/s_erfcf.c b/sysdeps/ieee754/flt-32/s_erfcf.c
new file mode 100644
index 0000000..955f129
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_erfcf.c
@@ -0,0 +1,187 @@
+/* Correctly-rounded complementary error function for the binary32 format
+
+Copyright (c) 2023, 2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/erfc/erfcf.c revision d0a2be20).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <errno.h>
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+static const double E[] =
+ {
+ 0x1p+0, 0x1.0163da9fb3335p+0, 0x1.02c9a3e778061p+0,
+ 0x1.04315e86e7f85p+0, 0x1.059b0d3158574p+0, 0x1.0706b29ddf6dep+0,
+ 0x1.0874518759bc8p+0, 0x1.09e3ecac6f383p+0, 0x1.0b5586cf9890fp+0,
+ 0x1.0cc922b7247f7p+0, 0x1.0e3ec32d3d1a2p+0, 0x1.0fb66affed31bp+0,
+ 0x1.11301d0125b51p+0, 0x1.12abdc06c31ccp+0, 0x1.1429aaea92dep+0,
+ 0x1.15a98c8a58e51p+0, 0x1.172b83c7d517bp+0, 0x1.18af9388c8deap+0,
+ 0x1.1a35beb6fcb75p+0, 0x1.1bbe084045cd4p+0, 0x1.1d4873168b9aap+0,
+ 0x1.1ed5022fcd91dp+0, 0x1.2063b88628cd6p+0, 0x1.21f49917ddc96p+0,
+ 0x1.2387a6e756238p+0, 0x1.251ce4fb2a63fp+0, 0x1.26b4565e27cddp+0,
+ 0x1.284dfe1f56381p+0, 0x1.29e9df51fdee1p+0, 0x1.2b87fd0dad99p+0,
+ 0x1.2d285a6e4030bp+0, 0x1.2ecafa93e2f56p+0, 0x1.306fe0a31b715p+0,
+ 0x1.32170fc4cd831p+0, 0x1.33c08b26416ffp+0, 0x1.356c55f929ff1p+0,
+ 0x1.371a7373aa9cbp+0, 0x1.38cae6d05d866p+0, 0x1.3a7db34e59ff7p+0,
+ 0x1.3c32dc313a8e5p+0, 0x1.3dea64c123422p+0, 0x1.3fa4504ac801cp+0,
+ 0x1.4160a21f72e2ap+0, 0x1.431f5d950a897p+0, 0x1.44e086061892dp+0,
+ 0x1.46a41ed1d0057p+0, 0x1.486a2b5c13cdp+0, 0x1.4a32af0d7d3dep+0,
+ 0x1.4bfdad5362a27p+0, 0x1.4dcb299fddd0dp+0, 0x1.4f9b2769d2ca7p+0,
+ 0x1.516daa2cf6642p+0, 0x1.5342b569d4f82p+0, 0x1.551a4ca5d920fp+0,
+ 0x1.56f4736b527dap+0, 0x1.58d12d497c7fdp+0, 0x1.5ab07dd485429p+0,
+ 0x1.5c9268a5946b7p+0, 0x1.5e76f15ad2148p+0, 0x1.605e1b976dc09p+0,
+ 0x1.6247eb03a5585p+0, 0x1.6434634ccc32p+0, 0x1.6623882552225p+0,
+ 0x1.68155d44ca973p+0, 0x1.6a09e667f3bcdp+0, 0x1.6c012750bdabfp+0,
+ 0x1.6dfb23c651a2fp+0, 0x1.6ff7df9519484p+0, 0x1.71f75e8ec5f74p+0,
+ 0x1.73f9a48a58174p+0, 0x1.75feb564267c9p+0, 0x1.780694fde5d3fp+0,
+ 0x1.7a11473eb0187p+0, 0x1.7c1ed0130c132p+0, 0x1.7e2f336cf4e62p+0,
+ 0x1.80427543e1a12p+0, 0x1.82589994cce13p+0, 0x1.8471a4623c7adp+0,
+ 0x1.868d99b4492edp+0, 0x1.88ac7d98a6699p+0, 0x1.8ace5422aa0dbp+0,
+ 0x1.8cf3216b5448cp+0, 0x1.8f1ae99157736p+0, 0x1.9145b0b91ffc6p+0,
+ 0x1.93737b0cdc5e5p+0, 0x1.95a44cbc8520fp+0, 0x1.97d829fde4e5p+0,
+ 0x1.9a0f170ca07bap+0, 0x1.9c49182a3f09p+0, 0x1.9e86319e32323p+0,
+ 0x1.a0c667b5de565p+0, 0x1.a309bec4a2d33p+0, 0x1.a5503b23e255dp+0,
+ 0x1.a799e1330b358p+0, 0x1.a9e6b5579fdbfp+0, 0x1.ac36bbfd3f37ap+0,
+ 0x1.ae89f995ad3adp+0, 0x1.b0e07298db666p+0, 0x1.b33a2b84f15fbp+0,
+ 0x1.b59728de5593ap+0, 0x1.b7f76f2fb5e47p+0, 0x1.ba5b030a1064ap+0,
+ 0x1.bcc1e904bc1d2p+0, 0x1.bf2c25bd71e09p+0, 0x1.c199bdd85529cp+0,
+ 0x1.c40ab5fffd07ap+0, 0x1.c67f12e57d14bp+0, 0x1.c8f6d9406e7b5p+0,
+ 0x1.cb720dcef9069p+0, 0x1.cdf0b555dc3fap+0, 0x1.d072d4a07897cp+0,
+ 0x1.d2f87080d89f2p+0, 0x1.d5818dcfba487p+0, 0x1.d80e316c98398p+0,
+ 0x1.da9e603db3285p+0, 0x1.dd321f301b46p+0, 0x1.dfc97337b9b5fp+0,
+ 0x1.e264614f5a129p+0, 0x1.e502ee78b3ff6p+0, 0x1.e7a51fbc74c83p+0,
+ 0x1.ea4afa2a490dap+0, 0x1.ecf482d8e67f1p+0, 0x1.efa1bee615a27p+0,
+ 0x1.f252b376bba97p+0, 0x1.f50765b6e454p+0, 0x1.f7bfdad9cbe14p+0,
+ 0x1.fa7c1819e90d8p+0, 0x1.fd3c22b8f71f1p+0
+ };
+
+float
+__erfcf (float xf)
+{
+ float axf = fabsf (xf);
+ double axd = axf;
+ double x2 = axd * axd;
+ uint32_t t = asuint (xf);
+ unsigned int at = t & (~0u >> 1);
+ unsigned int sgn = t >> 31;
+ int64_t i = at > 0x40051000;
+ /* for x < -0x1.ea8f94p+1, erfc(x) rounds to 2 (to nearest) */
+ if (__glibc_unlikely (t > 0xc07547ca))
+ { /* xf < -0x1.ea8f94p+1 */
+ if (__glibc_unlikely (t >= 0xff800000))
+ { /* -Inf or NaN */
+ if (t == 0xff800000)
+ return 2.0f; /* -Inf */
+ return xf + xf; /* NaN */
+ }
+ return 2.0f - 0x1p-25f; /* rounds to 2 or nextbelow(2) */
+ }
+ /* at is the absolute value of xf
+ for x >= 0x1.41bbf8p+3, erfc(x) < 2^-150, thus rounds to 0 or to 2^-149
+ depending on the rounding mode */
+ if (__glibc_unlikely (at >= 0x4120ddfc))
+ { /* |xf| >= 0x1.41bbf8p+3 */
+ if (__glibc_unlikely (at >= 0x7f800000))
+ { /* +Inf or NaN */
+ if (at == 0x7f800000)
+ return 0.0f; /* +Inf */
+ return xf + xf; /* NaN */
+ }
+ __set_errno (ERANGE);
+ /* 0x1p-149f * 0.25f rounds to 0 or 2^-149 depending on rounding */
+ return 0x1p-149f * 0.25f;
+ }
+ if (__glibc_unlikely (at <= 0x3db80000))
+ { /* |x| <= 0x1.7p-4 */
+ if (__glibc_unlikely (t == 0xb76c9f62))
+ return 0x1.00010ap+0f + 0x1p-25f; /* exceptional case */
+ /* for |x| <= 0x1.c5bf88p-26. erfc(x) rounds to 1 (to nearest) */
+ if (__glibc_unlikely (at <= 0x32e2dfc4))
+ { /* |x| <= 0x1.c5bf88p-26 */
+ if (__glibc_unlikely (at == 0))
+ return 1.0f;
+ static const float d[] = { -0x1p-26, 0x1p-25 };
+ return 1.0f + d[sgn];
+ }
+ /* around 0, erfc(x) behaves as 1 - (odd polynomial) */
+ static const double c[] =
+ {
+ 0x1.20dd750429b6dp+0, -0x1.812746b03610bp-2, 0x1.ce2f218831d2fp-4,
+ -0x1.b82c609607dcbp-6, 0x1.553af09b8008ep-8
+ };
+ double f0 = xf
+ * (c[0] + x2 * (c[1] + x2 * (c[2] + x2 * (c[3] + x2 * (c[4])))));
+ return 1.0 - f0;
+ }
+
+ /* now -0x1.ea8f94p+1 <= x <= 0x1.41bbf8p+3, with |x| > 0x1.7p-4 */
+ const double iln2 = 0x1.71547652b82fep+0;
+ const double ln2h = 0x1.62e42fefap-8;
+ const double ln2l = 0x1.cf79abd6f5dc8p-47;
+ uint64_t jt = asuint64 (fma (x2, iln2, -(1024 + 0x1p-8)));
+ int64_t j = (int64_t) (jt << 12) >> 48;
+ double S = asdouble ((uint64_t)((j >> 7) + (0x3ff | sgn << 11)) << 52);
+ static const double ch[] =
+ {
+ -0x1.ffffffffff333p-2, 0x1.5555555556a14p-3, -0x1.55556666659b4p-5,
+ 0x1.1111074cc7b22p-7
+ };
+ double d = (x2 + ln2h * j) + ln2l * j;
+ double d2 = d * d;
+ double e0 = E[j & 127];
+ double f = d + d2 * ((ch[0] + d * ch[1]) + d2 * (ch[2] + d * ch[3]));
+ static const double ct[][16] =
+ {
+ {
+ 0x1.c162355429b28p-1, 0x1.d99999999999ap+1, 0x1.da951cece2b85p-2,
+ -0x1.70ef6cff4bcc4p+0, 0x1.3d7f7b3d617dep+1, -0x1.9d0aa47537c51p+1,
+ 0x1.9754ea9a3fcb1p+1, -0x1.27a5453fcc015p+1, 0x1.1ef2e0531aebap+0,
+ -0x1.eca090f5a1c06p-3, -0x1.7a3cd173a063cp-4, 0x1.30fa68a68fdddp-4,
+ 0x1.55ad9a326993ap-10, -0x1.07e7b0bb39fbfp-6, 0x1.2328706c0e95p-10,
+ 0x1.d6aa0b7b19cfep-9
+ },
+ {
+ 0x1.137c8983f8516p+2, 0x1.799999999999ap+1, 0x1.05b53aa241333p-3,
+ -0x1.a3f53872bf87p-3, 0x1.de4c30742c9d5p-4, -0x1.cb24bfa591986p-5,
+ 0x1.666aec059ca5fp-6, -0x1.a61250eb26b0bp-8, 0x1.2b28b7924b34dp-10,
+ 0x1.41b13a9d45013p-15, -0x1.6dd5e8a273613p-14, 0x1.09ce8ea5e8da5p-16,
+ 0x1.33923b4102981p-18, -0x1.1dfd161e3f984p-19, -0x1.c87618fcae3b3p-23,
+ 0x1.e8a6ffa0ba2c7p-23
+ }
+ };
+ double z = (axd - ct[i][0]) / (axd + ct[i][1]);
+ double z2 = z * z, z4 = z2 * z2;
+ double z8 = z4 * z4;
+ const double *c = ct[i] + 3;
+ double s = (((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])))
+ + z8 * (((c[8] + z * c[9]) + z2 * (c[10] + z * c[11])) + z4 * (c[12]));
+ s = ct[i][2] + z * s;
+ static const double off[] = { 0, 2 };
+ double r = (S * (e0 - f * e0)) * s;
+ double y = off[sgn] + r;
+ return y;
+}
+libm_alias_float (__erfc, erfc)
diff --git a/sysdeps/ieee754/flt-32/s_erff.c b/sysdeps/ieee754/flt-32/s_erff.c
index ba29734..025c207 100644
--- a/sysdeps/ieee754/flt-32/s_erff.c
+++ b/sysdeps/ieee754/flt-32/s_erff.c
@@ -1,232 +1,256 @@
-/* s_erff.c -- float version of s_erf.c.
- */
+/* Correctly-rounded error function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_erff.c,v 1.4 1995/05/10 20:47:07 jtc Exp $";
-#endif
+This file is part of the CORE-MATH project
+project (file src/binary32/erf/erff.c revision bc385c2).
-#include <errno.h>
-#include <float.h>
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libm-alias-float.h>
-#include <fix-int-fp-convert-zero.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-static const float
-tiny = 1e-30,
-half= 5.0000000000e-01, /* 0x3F000000 */
-one = 1.0000000000e+00, /* 0x3F800000 */
-two = 2.0000000000e+00, /* 0x40000000 */
- /* c = (subfloat)0.84506291151 */
-erx = 8.4506291151e-01, /* 0x3f58560b */
-/*
- * Coefficients for approximation to erf on [0,0.84375]
- */
-efx = 1.2837916613e-01, /* 0x3e0375d4 */
-pp0 = 1.2837916613e-01, /* 0x3e0375d4 */
-pp1 = -3.2504209876e-01, /* 0xbea66beb */
-pp2 = -2.8481749818e-02, /* 0xbce9528f */
-pp3 = -5.7702702470e-03, /* 0xbbbd1489 */
-pp4 = -2.3763017452e-05, /* 0xb7c756b1 */
-qq1 = 3.9791721106e-01, /* 0x3ecbbbce */
-qq2 = 6.5022252500e-02, /* 0x3d852a63 */
-qq3 = 5.0813062117e-03, /* 0x3ba68116 */
-qq4 = 1.3249473704e-04, /* 0x390aee49 */
-qq5 = -3.9602282413e-06, /* 0xb684e21a */
-/*
- * Coefficients for approximation to erf in [0.84375,1.25]
- */
-pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */
-pa1 = 4.1485610604e-01, /* 0x3ed46805 */
-pa2 = -3.7220788002e-01, /* 0xbebe9208 */
-pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */
-pa4 = -1.1089469492e-01, /* 0xbde31cc2 */
-pa5 = 3.5478305072e-02, /* 0x3d1151b3 */
-pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */
-qa1 = 1.0642088205e-01, /* 0x3dd9f331 */
-qa2 = 5.4039794207e-01, /* 0x3f0a5785 */
-qa3 = 7.1828655899e-02, /* 0x3d931ae7 */
-qa4 = 1.2617121637e-01, /* 0x3e013307 */
-qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */
-qa6 = 1.1984500103e-02, /* 0x3c445aa3 */
-/*
- * Coefficients for approximation to erfc in [1.25,1/0.35]
- */
-ra0 = -9.8649440333e-03, /* 0xbc21a093 */
-ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */
-ra2 = -1.0558626175e+01, /* 0xc128f022 */
-ra3 = -6.2375331879e+01, /* 0xc2798057 */
-ra4 = -1.6239666748e+02, /* 0xc322658c */
-ra5 = -1.8460508728e+02, /* 0xc3389ae7 */
-ra6 = -8.1287437439e+01, /* 0xc2a2932b */
-ra7 = -9.8143291473e+00, /* 0xc11d077e */
-sa1 = 1.9651271820e+01, /* 0x419d35ce */
-sa2 = 1.3765776062e+02, /* 0x4309a863 */
-sa3 = 4.3456588745e+02, /* 0x43d9486f */
-sa4 = 6.4538726807e+02, /* 0x442158c9 */
-sa5 = 4.2900814819e+02, /* 0x43d6810b */
-sa6 = 1.0863500214e+02, /* 0x42d9451f */
-sa7 = 6.5702495575e+00, /* 0x40d23f7c */
-sa8 = -6.0424413532e-02, /* 0xbd777f97 */
-/*
- * Coefficients for approximation to erfc in [1/.35,28]
- */
-rb0 = -9.8649431020e-03, /* 0xbc21a092 */
-rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */
-rb2 = -1.7757955551e+01, /* 0xc18e104b */
-rb3 = -1.6063638306e+02, /* 0xc320a2ea */
-rb4 = -6.3756646729e+02, /* 0xc41f6441 */
-rb5 = -1.0250950928e+03, /* 0xc480230b */
-rb6 = -4.8351919556e+02, /* 0xc3f1c275 */
-sb1 = 3.0338060379e+01, /* 0x41f2b459 */
-sb2 = 3.2579251099e+02, /* 0x43a2e571 */
-sb3 = 1.5367296143e+03, /* 0x44c01759 */
-sb4 = 3.1998581543e+03, /* 0x4547fdbb */
-sb5 = 2.5530502930e+03, /* 0x451f90ce */
-sb6 = 4.7452853394e+02, /* 0x43ed43a7 */
-sb7 = -2.2440952301e+01; /* 0xc1b38712 */
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-float __erff(float x)
-{
- int32_t hx,ix,i;
- float R,S,P,Q,s,y,z,r;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x7f800000) { /* erf(nan)=nan */
- i = ((uint32_t)hx>>31)<<1;
- return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */
- }
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
- if(ix < 0x3f580000) { /* |x|<0.84375 */
- if(ix < 0x31800000) { /* |x|<2**-28 */
- if (ix < 0x04000000)
- {
- /* Avoid spurious underflow. */
- float ret = 0.0625f * (16.0f * x + (16.0f * efx) * x);
- math_check_force_underflow (ret);
- return ret;
- }
- return x + efx*x;
- }
- z = x*x;
- r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
- s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
- y = r/s;
- return x + x*y;
- }
- if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
- s = fabsf(x)-one;
- P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
- Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
- if(hx>=0) return erx + P/Q; else return -erx - P/Q;
- }
- if (ix >= 0x40c00000) { /* inf>|x|>=6 */
- if(hx>=0) return one-tiny; else return tiny-one;
- }
- x = fabsf(x);
- s = one/(x*x);
- if(ix< 0x4036DB6E) { /* |x| < 1/0.35 */
- R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
- ra5+s*(ra6+s*ra7))))));
- S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
- sa5+s*(sa6+s*(sa7+s*sa8)))))));
- } else { /* |x| >= 1/0.35 */
- R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
- rb5+s*rb6)))));
- S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
- sb5+s*(sb6+s*sb7))))));
- }
- GET_FLOAT_WORD(ix,x);
- SET_FLOAT_WORD(z,ix&0xfffff000);
- r = __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S);
- if(hx>=0) return one-r/x; else return r/x-one;
-}
-libm_alias_float (__erf, erf)
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
-float __erfcf(float x)
+float
+__erff (float x)
{
- int32_t hx,ix;
- float R,S,P,Q,s,y,z,r;
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix>=0x7f800000) { /* erfc(nan)=nan */
- /* erfc(+-inf)=0,2 */
- float ret = (float)(((uint32_t)hx>>31)<<1)+one/x;
- if (FIX_INT_FP_CONVERT_ZERO && ret == 0.0f)
- return 0.0f;
- return ret;
- }
-
- if(ix < 0x3f580000) { /* |x|<0.84375 */
- if(ix < 0x32800000) /* |x|<2**-26 */
- return one-x;
- z = x*x;
- r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
- s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
- y = r/s;
- if(hx < 0x3e800000) { /* x<1/4 */
- return one-(x+x*y);
- } else {
- r = x*y;
- r += (x-half);
- return half - r ;
- }
- }
- if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
- s = fabsf(x)-one;
- P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
- Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
- if(hx>=0) {
- z = one-erx; return z - P/Q;
- } else {
- z = erx+P/Q; return one+z;
- }
- }
- if (ix < 0x41e00000) { /* |x|<28 */
- x = fabsf(x);
- s = one/(x*x);
- if(ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/
- R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
- ra5+s*(ra6+s*ra7))))));
- S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
- sa5+s*(sa6+s*(sa7+s*sa8)))))));
- } else { /* |x| >= 1/.35 ~ 2.857143 */
- if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */
- R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
- rb5+s*rb6)))));
- S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
- sb5+s*(sb6+s*sb7))))));
- }
- GET_FLOAT_WORD(ix,x);
- SET_FLOAT_WORD(z,ix&0xffffe000);
- r = __ieee754_expf(-z*z-(float)0.5625)*
- __ieee754_expf((z-x)*(z+x)+R/S);
- if(hx>0) {
- float ret = math_narrow_eval (r/x);
- if (ret == 0)
- __set_errno (ERANGE);
- return ret;
- } else
- return two-r/x;
- } else {
- if(hx>0) {
- __set_errno (ERANGE);
- return tiny*tiny;
- } else
- return two-tiny;
- }
+ /* for 7 <= i < 63, C[i-7] is a degree-7 polynomial approximation of
+ erf(i/16+1/32+x) for -1/32 <= x <= 1/32 */
+ static const double C[56][8] = {
+ { 0x1.f86faa9428f9cp-2, 0x1.cfc41e36c7dfap-1, -0x1.b2c7dc53508b9p-2,
+ -0x1.5a9de93fa556ep-3, 0x1.731793dbb01b5p-3, 0x1.133e06426cf18p-6,
+ -0x1.a12a6289cafd8p-5, 0x1.717d6f1d6f557p-9 },
+ { 0x1.1855a5fd3dd50p-1, 0x1.b3aafcc27502fp-1, -0x1.cee5ac8e92bb2p-2,
+ -0x1.fa02983ca2d79p-4, 0x1.77cd746cb1922p-3, -0x1.fa6f277886487p-10,
+ -0x1.8de75458db416p-5, 0x1.00899c98551c9p-7 },
+ { 0x1.32a54cb8db67ap-1, 0x1.96164fafd8de5p-1, -0x1.e23a7ea0c9ad3p-2,
+ -0x1.3f5ee15671cf4p-4, 0x1.70e468a3d72d9p-3, -0x1.3da68037cfc99p-6,
+ -0x1.69ed9ba1f9839p-5, 0x1.8cab9244a4ff4p-7 },
+ { 0x1.4b13713ad3513p-1, 0x1.7791b886e7405p-1, -0x1.ecef423109bf5p-2,
+ -0x1.15c3c5cec6847p-5, 0x1.5f688fc931ba6p-3, -0x1.1da63ed190037p-5,
+ -0x1.38427ca63cca4p-5, 0x1.fa00e52525e17p-7 },
+ { 0x1.61955607dd15dp-1, 0x1.58a445da7c74ep-1, -0x1.ef6c246a0f66cp-2,
+ 0x1.e83e0d9d61330p-8, 0x1.44cc65535bc9fp-3, -0x1.87d3c4860435dp-5,
+ -0x1.f90b10501169bp-6, 0x1.22295856d427ap-6 },
+ { 0x1.762870f720c6fp-1, 0x1.39ccc1b136d5cp-1, -0x1.ea4feea4e4744p-2,
+ 0x1.715e5952ebfbap-5, 0x1.22cdbd83c75c4p-3, -0x1.da50aa1d925b6p-5,
+ -0x1.754dc0a29b4ddp-6, 0x1.350b6bef9392cp-6 },
+ { 0x1.88d1cd474a2e0p-1, 0x1.1b7e98fe26219p-1, -0x1.de65a22ce1419p-2,
+ 0x1.40686a3f16400p-4, 0x1.f6b0cbb216b2bp-4, -0x1.09c7c903edd57p-4,
+ -0x1.da7529fde641p-7, 0x1.362a7a0588eabp-6 },
+ { 0x1.999d4192a5717p-1, 0x1.fc3ee5d1524b3p-2, -0x1.cc990045b55c8p-2,
+ 0x1.b37338e68b37dp-4, 0x1.a0d120c872ea7p-4, -0x1.19bb2b07ecff6p-4,
+ -0x1.a110f5f593aafp-8, 0x1.272c15a57720ep-6 },
+ { 0x1.a89c850b7d54dp-1, 0x1.c40b0729ed54ap-2, -0x1.b5eaaef0a2346p-2,
+ 0x1.0847c7dacbae1p-3, 0x1.47de0ba6d18fbp-4, -0x1.1d9de77a4b648p-4,
+ 0x1.30ffbe56f0726p-10, 0x1.0a9cb99feea01p-6 },
+ { 0x1.b5e62fce16096p-1, 0x1.8eed36b886d95p-2, -0x1.9b64a06e50705p-2,
+ 0x1.2bb6e2c744df5p-3, 0x1.dee3261ca61bcp-5, -0x1.16996004f7da5p-4,
+ 0x1.fdff37bae983ep-8, 0x1.c750083e65f9ap-7 },
+ { 0x1.c194b1d49a184p-1, 0x1.5d4fd33729015p-2, -0x1.7e0f4f045addbp-2,
+ 0x1.444bc66c31a1bp-3, 0x1.356dbf16ec8f1p-5, -0x1.0643de0906cd8p-4,
+ 0x1.b281af7bd3a2cp-7, 0x1.6b97eaa2c6abdp-7 },
+ { 0x1.cbc54b476248ep-1, 0x1.2f7cc3fe6f423p-2, -0x1.5ee8429e36de8p-2,
+ 0x1.52a8395f96177p-3, 0x1.313761ba257dcp-6, -0x1.dcf844d5fed8fp-5,
+ 0x1.1e1420f475fa9p-6, 0x1.091c7dc1e18b2p-7 },
+ { 0x1.d4970f9ce00d9p-1, 0x1.059f59af7a905p-2, -0x1.3eda354de36c3p-2,
+ 0x1.57b85ad439779p-3, 0x1.8e913b9778136p-10, -0x1.a2893bd3435f4p-5,
+ 0x1.4d3a90e37164ap-6, 0x1.4ce7f6e19a902p-8 },
+ { 0x1.dc29fb60715b0p-1, 0x1.bf8e1b1ca2277p-3, -0x1.1eb7095e5d6d2p-2,
+ 0x1.549ea6f7a64f4p-3, -0x1.b10f12f3877a3p-7, -0x1.61420c8f7156ap-5,
+ 0x1.674f1f92a8812p-6, 0x1.25543ffd74d52p-9 },
+ { 0x1.e29e22a89d767p-1, 0x1.7bd5c7df3fe99p-3, -0x1.fe674494077bfp-3,
+ 0x1.4a9feacf86578p-3, -0x1.a008269076644p-6, -0x1.1cf0e8fb4f1cbp-5,
+ 0x1.6e0d2ef105fb3p-6, -0x1.367205fbd7876p-12 },
+ { 0x1.e812fc64db36ap-1, 0x1.3fda6bc016991p-3, -0x1.c1cb278627920p-3,
+ 0x1.3b10512314f1ep-3, -0x1.1e6457bb1b9a9p-5, -0x1.b1f6474e2388cp-6,
+ 0x1.640a5345f7ec7p-6, -0x1.3dae5a997fdbp-9 },
+ { 0x1.eca6ccd709544p-1, 0x1.0b3f52ce8c380p-3, -0x1.8885019f63c6dp-3,
+ 0x1.274275fc91a05p-3, -0x1.57f73699a8372p-5, -0x1.3076a305fc7cep-6,
+ 0x1.4c6ae04843a41p-6, -0x1.0be5fcf5ecc91p-8 },
+ { 0x1.f0762fde45ee7p-1, 0x1.bb1c972f23e4ap-4, -0x1.5341e3c01b58dp-3,
+ 0x1.107929f6f0b60p-3, -0x1.7e1b34f976c02p-5, -0x1.73b62589c234ap-7,
+ 0x1.2a97ee1876486p-6, -0x1.595f40a3150fep-8 },
+ { 0x1.f39bc242e43e6p-1, 0x1.6c7e64e7281c5p-4, -0x1.2274b86835fd3p-3,
+ 0x1.efb890e5c770dp-4, -0x1.92c7db16847e0p-5, -0x1.45477db5e2dd4p-8,
+ 0x1.01fc6165fc866p-6, -0x1.8845509030c2cp-8 },
+ { 0x1.f62fe80272419p-1, 0x1.297db960e4f5dp-4, -0x1.ecb83b087c04fp-4,
+ 0x1.bce18363ca3d1p-4, -0x1.985aaf776482cp-5, 0x1.cd953efdae886p-12,
+ 0x1.ab9a0b89b54ffp-7, -0x1.9b5e576ccc31cp-8 },
+ { 0x1.f848acb544e95p-1, 0x1.e1d4cf1e24501p-5, -0x1.9e12e1fde5552p-4,
+ 0x1.8a27806df3d1bp-4, -0x1.91674e5eb3319p-5, 0x1.3bc75595b2db8p-8,
+ 0x1.51bc537ac61afp-7, -0x1.96b23b19ea04dp-8 },
+ { 0x1.f9f9ba8d3c733p-1, 0x1.83298d7172108p-5, -0x1.58d101f905a75p-4,
+ 0x1.58f1456f8639bp-4, -0x1.808d1850b8231p-5, 0x1.0c1bd99c348a7p-7,
+ 0x1.f61e9d7bc48cap-8, -0x1.7f07c13441774p-8 },
+ { 0x1.fb54641aebbc9p-1, 0x1.34ac36ad8dafap-5, -0x1.1c8ec267f9405p-4,
+ 0x1.2a52c5d841848p-4, -0x1.68541c02b3b6bp-5, 0x1.5afe400196379p-7,
+ 0x1.565b2d6eda3d6p-8, -0x1.596aaff29e739p-8 },
+ { 0x1.fc67bcf2d7b8fp-1, 0x1.e85c449e377efp-6, -0x1.d177f166c07c6p-5,
+ 0x1.fe23b7584b504p-5, -0x1.4b12109613313p-5, 0x1.8d9905c0acf7dp-7,
+ 0x1.9265032a669dap-9, -0x1.2ac4a6dbcbf3ep-8 },
+ { 0x1.fd40bd6d7a785p-1, 0x1.7f5188610ddc7p-6, -0x1.7954423f7c998p-5,
+ 0x1.af5baae33887fp-5, -0x1.2ad77c7cbc474p-5, 0x1.a7b8c47ec2a51p-7,
+ 0x1.46646ee094bccp-10, -0x1.ef19d8db8673p-9 },
+ { 0x1.fdea6e062d0c9p-1, 0x1.2a875b5ffab58p-6, -0x1.2f3178cd6dcd5p-5,
+ 0x1.68d1c45b94182p-5, -0x1.09648ed3aeaefp-5, 0x1.ad8b150d38164p-7,
+ -0x1.e9a6023d9429fp-13, -0x1.8722d19ee2e8ep-9 },
+ { 0x1.fe6e1742f7cf5p-1, 0x1.cd5ec93c1243ap-7, -0x1.e2ff3aaacb386p-6,
+ 0x1.2aa4e5823cc89p-5, -0x1.d049842dbe399p-6, 0x1.a34edb21ab302p-7,
+ -0x1.676e5996c7f9bp-10, -0x1.23b01a35140bfp-9 },
+ { 0x1.fed37386190fbp-1, 0x1.61beae53b72c2p-7, -0x1.7d6193f22c3c1p-6,
+ 0x1.e947279e3bb7dp-6, -0x1.906031b97ca97p-6, 0x1.8d14d62561755p-7,
+ -0x1.1f245e7178882p-9, -0x1.9257d4eb47685p-10 },
+ { 0x1.ff20e0a7ba8c2p-1, 0x1.0d1d69569b839p-7, -0x1.2a8ca0dc02752p-6,
+ 0x1.8cc071b709751p-6, -0x1.54a149f1b070cp-6, 0x1.6e9137b13412cp-7,
+ -0x1.6577ed3d8e83bp-9, -0x1.e9c1a5178a289p-11 },
+ { 0x1.ff5b8fb26f5f6p-1, 0x1.9646f35a7663cp-8, -0x1.cf68ed9311b0bp-7,
+ 0x1.3e8735b5a694fp-6, -0x1.1e1612d026fdfp-6, 0x1.4afd8e6ca636dp-7,
+ -0x1.8c375170ccb22p-9, -0x1.c799443c4fd3bp-12 },
+ { 0x1.ff87b1913e853p-1, 0x1.30499b5039596p-8, -0x1.64964201ec8bap-7,
+ 0x1.fa73d7eafba98p-7, -0x1.daa3022141fbbp-7, 0x1.2509444c063b7p-7,
+ -0x1.99482a2f8a0a1p-9, -0x1.403d1f76c9454p-15 },
+ { 0x1.ffa89fe5b3625p-1, 0x1.c4412bf4b8f35p-9, -0x1.100f347126cf0p-7,
+ 0x1.8ebda07671d40p-7, -0x1.850c6a31c98c1p-7, 0x1.fdac860c67d21p-8,
+ -0x1.927d03d2ba12cp-9, 0x1.0ff620b4190fep-12 },
+ { 0x1.ffc10194fcb64p-1, 0x1.4d78bba8ca621p-9, -0x1.9ba107a443e02p-8,
+ 0x1.36f273fbc04ccp-7, -0x1.3b38716ac7e6fp-7, 0x1.b3fe0181914acp-8,
+ -0x1.7d3fe7de98c5cp-9, 0x1.ea31f8e5317f7p-12 },
+ { 0x1.ffd2eae369a07p-1, 0x1.e7f232d9e266cp-10, -0x1.34c7442dd48d9p-8,
+ 0x1.e066bed070a0bp-8, -0x1.f914f3c42fc0dp-8, 0x1.6f4664ed2260fp-8,
+ -0x1.5e59910761d24p-9, 0x1.39cbb6e84c126p-11 },
+ { 0x1.ffdff92db56e5p-1, 0x1.6235fbd7a4373p-10, -0x1.cb5e029b9e56ap-9,
+ 0x1.6fa4c7ef274dap-8, -0x1.903a089a835f3p-8, 0x1.30f12e0ca1901p-8,
+ -0x1.39d21b6957f99p-9, 0x1.5d3f8495a703cp-11 },
+ { 0x1.ffe96a78a04a9p-1, 0x1.fe41cd9bb4f2cp-11, -0x1.52d7b28966c0cp-9,
+ 0x1.16c192d86a1a7p-8, -0x1.39bfce951100cp-8, 0x1.f376a7869f9e3p-9,
+ -0x1.12e6cef999c4fp-9, 0x1.66acd4d667b5p-11 },
+ { 0x1.fff0312b010b5p-1, 0x1.6caa0d3583018p-11, -0x1.efb729f4cf75bp-10,
+ 0x1.a2da7cebe12acp-9, -0x1.e6c27a24bc759p-9, 0x1.93b1f4d8ea65p-9,
+ -0x1.d82050aa94a08p-10, 0x1.5cd7dc75d6cbap-11 },
+ { 0x1.fff50456dab8cp-1, 0x1.0295ef6591865p-11, -0x1.679880e95a4dap-10,
+ 0x1.37d38e3a5c8ebp-9, -0x1.75b3708aebb8fp-9, 0x1.4231c4b4b0296p-9,
+ -0x1.8e26476489318p-10, 0x1.45c3b570dd924p-11 },
+ { 0x1.fff86cfd3e657p-1, 0x1.6be02102b353dp-12, -0x1.02b157780d6aep-10,
+ 0x1.cc1d886861133p-10, -0x1.1bff6f12ec9abp-9, 0x1.fc0f77bd9c736p-10,
+ -0x1.4a3320bd0959dp-10, 0x1.267f8b4f95d2p-11 },
+ { 0x1.fffad0b901755p-1, 0x1.fc0d55470cf5ep-13, -0x1.7121aff5e820ep-11,
+ 0x1.506d6992f7de5p-10, -0x1.ab595d3ecd0d6p-10, 0x1.8bdd79daaf754p-10,
+ -0x1.0d9b090f997c1p-10, 0x1.031ab9fd1c7dap-11 },
+ { 0x1.fffc7a37857d2p-1, 0x1.5feada379d8a5p-13, -0x1.05304df58f3aap-11,
+ 0x1.e79c081b8600fp-11, -0x1.3e5dbe33232e0p-10, 0x1.30eb208200729p-10,
+ -0x1.b1d493b147945p-11, 0x1.bd587bbc071bep-12 },
+ { 0x1.fffd9fdeabccep-1, 0x1.e3bcf436a1a49p-14, -0x1.6e953111ef0a1p-12,
+ 0x1.5e3edf6768654p-11, -0x1.d5be67c0547a4p-11, 0x1.d07d9ffa1d435p-11,
+ -0x1.58328f5f358cap-11, 0x1.76d42d95c42c4p-12 },
+ { 0x1.fffe68f4fa777p-1, 0x1.49e17724f4cddp-14, -0x1.fe48c44e229c1p-13,
+ 0x1.f2bd95d76f188p-12, -0x1.57388cb12d011p-11, 0x1.5decc25c5c079p-11,
+ -0x1.0d7499d1b0d2dp-11, 0x1.359332c94ecdcp-12 },
+ { 0x1.fffef1960d85dp-1, 0x1.be6abbb10a4cdp-15, -0x1.6040381a8c313p-13,
+ 0x1.5fff1dde9ee9dp-12, -0x1.f0c933efa9971p-12, 0x1.04cbf4a5cd760p-11,
+ -0x1.a07f150af6dadp-12, 0x1.f68dd183426bap-13 },
+ { 0x1.ffff4db27f146p-1, 0x1.2bb5cc22e5cd8p-15, -0x1.e25894899f526p-14,
+ 0x1.ec8a8e5a72757p-13, -0x1.64256ae0a3cf9p-12, 0x1.80a836c18c46cp-12,
+ -0x1.3dea401af6775p-12, 0x1.915ddff3fe0d1p-13 },
+ { 0x1.ffff8b500e77cp-1, 0x1.8f4ccca7fc769p-16, -0x1.478cffe305946p-14,
+ 0x1.559f04adde504p-13, -0x1.f9e1577d6961dp-13, 0x1.18bda53c14716p-12,
+ -0x1.df8634c35541cp-13, 0x1.3bb5c6b616337p-13 },
+ { 0x1.ffffb43555b5fp-1, 0x1.07ebd2a2d26c8p-16, -0x1.b93e442a37f2bp-15,
+ 0x1.d5cf15159ce28p-14, -0x1.63f5e1469c006p-13, 0x1.95a03acebac18p-13,
+ -0x1.656e5e2a1f8e2p-13, 0x1.e98c437189bdep-14 },
+ { 0x1.ffffcf23ff5fcp-1, 0x1.5a2adfa0b492cp-17, -0x1.26c88270759f0p-15,
+ 0x1.40473572b99a8p-14, -0x1.f057cbde578a5p-14, 0x1.22178d1c3c948p-13,
+ -0x1.0765b61a0d859p-13, 0x1.765b3ea03ddbep-14 },
+ { 0x1.ffffe0bd3e852p-1, 0x1.c282cd3957a72p-18, -0x1.86ad6dfa44faap-16,
+ 0x1.b0f313f03a029p-15, -0x1.56e44abecd255p-14, 0x1.9ad1ecfe34a89p-14,
+ -0x1.7fe4033478618p-14, 0x1.1a8184e049fbfp-14 },
+ { 0x1.ffffec2641a9ep-1, 0x1.22df29821407ep-18, -0x1.00c902a6cfd98p-16,
+ 0x1.22234eb88671fp-15, -0x1.d57a181c9e6e1p-15, 0x1.200c283b54a90p-14,
+ -0x1.14b4c3295a7d0p-14, 0x1.a4f966f713bdep-15 },
+ { 0x1.fffff37d63a36p-1, 0x1.74adc8f405eecp-19, -0x1.4ed4228e44858p-17,
+ 0x1.81918baea92bap-16, -0x1.3e81b17a0009cp-15, 0x1.9004a36116436p-15,
+ -0x1.8aa1ba400e076p-15, 0x1.35cd4e2340a9ep-15 },
+ { 0x1.fffff82cdcf1bp-1, 0x1.d9c73698fa87dp-20, -0x1.b11017ec67115p-18,
+ 0x1.fc0dfadf653f8p-17, -0x1.ac4e03cd2dfc2p-16, 0x1.131806b5abbc5p-15,
+ -0x1.1672ef66fcaafp-15, 0x1.c2882c7debed7p-16 },
+ { 0x1.fffffb248c39dp-1, 0x1.2acee2f5ec66ap-20, -0x1.15cc570408a36p-18,
+ 0x1.4be757bbb75a3p-17, -0x1.1d6aa5f8d2940p-16, 0x1.76c5937d5105ep-16,
+ -0x1.84dffc3ca9302p-16, 0x1.43c8315f2c30ap-16 },
+ { 0x1.fffffd01f36afp-1, 0x1.75fa8dbc840bap-21, -0x1.6186da0133f5ap-19,
+ 0x1.ae023231e1af5p-18, -0x1.790812f7ca394p-17, 0x1.f9c25656d0ef2p-17,
+ -0x1.0cc66682e304cp-16, 0x1.cc170a75d6f9cp-17 },
+ { 0x1.fffffe2ba0ea5p-1, 0x1.d06ad6ecde88ep-22, -0x1.be46aa8edc9a1p-20,
+ 0x1.143860c7840b8p-18, -0x1.edaba78fb1260p-18, 0x1.52138a96ecee2p-17,
+ -0x1.6fca538c4e2eep-17, 0x1.434040640bcefp-17 },
+ { 0x1.fffffee3cc32cp-1, 0x1.1e1e857adb8ddp-22, -0x1.1769ce5f2a6e8p-20,
+ 0x1.5fe5d479b0543p-19, -0x1.405d865c94c2ap-18, 0x1.bfc94feb96afcp-18,
+ -0x1.f245d5f3e8358p-18, 0x1.c142456acf443p-18 },
+ };
+ float ax = fabsf (x);
+ uint32_t ux = asuint (ax);
+ double s = x;
+ double z = ax;
+ /* 0x407ad444 corresponds to x = 0x1.f5a888p+1 = 3.91921..., which is the
+ largest float such that erf(x) does not round to 1 (to nearest). */
+ if (__glibc_unlikely (ux > 0x407ad444u))
+ {
+ float os = copysignf (1.0f, x);
+ if (ux > (0xffu << 23))
+ return x + x; /* nan */
+ if (ux == (0xffu << 23))
+ return os; /* +-inf */
+ return os - 0x1p-25f * os;
+ }
+ double v = floor (16.0 * z);
+ uint32_t i = 16.0f * ax;
+ /* 0x3ee00000 corresponds to x = 0.4375, for smaller x we have i < 7. */
+ if (__glibc_unlikely (ux < 0x3ee00000u))
+ {
+ static const double c[] =
+ {
+ 0x1.20dd750429b6dp+0, -0x1.812746b0375fbp-2,
+ 0x1.ce2f219fd6f45p-4, -0x1.b82ce2cbf0838p-6,
+ 0x1.565bb655adb85p-8, -0x1.c025bfc879c94p-11,
+ 0x1.f81718f61309cp-14, -0x1.cc67bd88f5867p-17
+ };
+ double z2 = s * s, z4 = z2 * z2, z8 = z4 * z4;
+ double c0 = c[0] + z2 * c[1];
+ double c2 = c[2] + z2 * c[3];
+ double c4 = c[4] + z2 * c[5];
+ double c6 = c[6] + z2 * c[7];
+ c0 += z4 * c2;
+ c4 += z4 * c6;
+ c0 += z8 * c4;
+ return s * c0;
+ }
+ z = (z - 0.03125) - 0.0625 * v;
+ const double *c = C[i - 7];
+ double z2 = z * z, z4 = z2 * z2;
+ double c0 = c[0] + z * c[1];
+ double c2 = c[2] + z * c[3];
+ double c4 = c[4] + z * c[5];
+ double c6 = c[6] + z * c[7];
+ c0 += z2 * c2;
+ c4 += z2 * c6;
+ c0 += z4 * c4;
+ return copysign (c0, s);
}
-libm_alias_float (__erfc, erfc)
+libm_alias_float (__erf, erf)
diff --git a/sysdeps/ieee754/flt-32/s_exp10m1f.c b/sysdeps/ieee754/flt-32/s_exp10m1f.c
new file mode 100644
index 0000000..ea3173a
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_exp10m1f.c
@@ -0,0 +1,227 @@
+/* Implementation of the exp10m1 function for binary32.
+
+Copyright (c) 2022-2024 Alexei Sibidanov. Paul Zimmermann.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/exp10m1/exp10m1f.c, revision c46b85b).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+ */
+
+#include <math.h>
+#include "math_config.h"
+#include <libm-alias-float.h>
+
+float
+__exp10m1f (float x)
+{
+ const double iln10h = 0x1.a934f09p+1 * 16;
+ const double iln10l = 0x1.e68dc57f2496p-29 * 16;
+ double z = x;
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux & (~0u >> 1);
+ if (__glibc_unlikely (ux > 0xc0f0d2f1u))
+ { /* x < -7.52575 */
+ if (ax > (0xffu << 23))
+ return x + x; /* nan */
+ return (ux == 0xff800000) ? -0x1p+0f : -0x1p+0f + 0x1p-26f;
+ }
+ else if (__glibc_unlikely (ax > 0x421a209au))
+ { /* x > 38.5318 */
+ if (ax >= asuint (INFINITY))
+ return x + x; /* +Inf or NaN */
+ return __math_oflowf (0);
+ }
+ else if (__glibc_unlikely (ax < 0x3d89c604u))
+ { /* |x| < 0.1549/log(10) */
+ double z2 = z * z, r;
+ if (__glibc_unlikely (ax < 0x3d1622fbu))
+ { /* |x| < 8.44e-2/log(10) */
+ if (__glibc_unlikely (ax < 0x3c8b76a3u))
+ { /* |x| < 3.92e-2/log(10) */
+ if (__glibc_unlikely (ax < 0x3bcced04u))
+ { /* |x| < 1.44e-2/log(10) */
+ if (__glibc_unlikely (ax < 0x3acf33ebu))
+ { /* |x| < 3.64e-3/log(10 */
+ if (__glibc_unlikely (ax < 0x395a966bu))
+ { /* |x| < 4.8e-4/log(10 */
+ if (__glibc_unlikely (ax < 0x36fe4a4bu))
+ { /* |x| < 1.745e-5/log(10) */
+ if (__glibc_unlikely (ax < 0x32407f39u))
+ { /* |x| < 2.58e-8/log(10) */
+ if (__glibc_unlikely (ax < 0x245e5bd9u))
+ { /* |x| < 4.82164e-17 */
+ r = 0x1.26bb1bbb55516p+1;
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0x2c994b7bu))
+ return 0x1.60f974p-37f - 0x1p-90f;
+ r = 0x1.26bb1bbb55516p+1
+ + z * 0x1.53524c73cea69p+1;
+ }
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0xb6fa215bu))
+ return -0x1.1ff87ep-16 + 0x1p-68;
+ r = 0x1.26bb1bbb55516p+1
+ + z * (0x1.53524c73ea62fp+1
+ + z * 0x1.0470591de2c75p+1);
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55515p+1, 0x1.53524c73cea69p+1,
+ 0x1.0470595038cc2p+1, 0x1.2bd7609fe1561p+0
+ };
+ r = (cp[0] + z * cp[1])
+ + z2 * (cp[2] + z * cp[3]);
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55516p+1, 0x1.53524c73ce6dbp+1,
+ 0x1.0470591de3024p+1, 0x1.2bd76b79060e6p+0,
+ 0x1.1429ffd3a963dp-1
+ };
+ r = (cp[0] + z * cp[1])
+ + z2 * (cp[2] + z * (cp[3] + z * cp[4]));
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55516p+1, 0x1.53524c73cea67p+1,
+ 0x1.0470591dc2953p+1, 0x1.2bd760a004d64p+0,
+ 0x1.142a85da6f072p-1, 0x1.a7ed70725b00ep-3
+ };
+ r = (cp[0] + z * cp[1]) + z2
+ * ((cp[2] + z * cp[3])
+ + z2 * (cp[4] + z * cp[5]));
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55516p+1, 0x1.53524c73ceadep+1,
+ 0x1.0470591de2bb4p+1, 0x1.2bd76099a9d33p+0,
+ 0x1.1429ffd829b0bp-1, 0x1.a7f2a6a0f7dc8p-3,
+ 0x1.16e4dfbce0f56p-4
+ };
+ r = (cp[0] + z * cp[1])
+ + z2 * ((cp[2] + z * cp[3])
+ + z2 * (cp[4] + z * (cp[5] + z * cp[6])));
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55515p+1, 0x1.53524c73cea6ap+1,
+ 0x1.0470591de476p+1, 0x1.2bd7609fd4ee2p+0,
+ 0x1.1429ff70a9b48p-1, 0x1.a7ed71259ba5bp-3,
+ 0x1.16f3004fb3ac1p-4, 0x1.4116b0388aa9fp-6
+ };
+ r = ((cp[0] + z * cp[1]) + z2 * (cp[2] + z * cp[3]))
+ + (z2 * z2) * ((cp[4] + z * cp[5]) + z2 * (cp[6]
+ + z * cp[7]));
+ }
+ }
+ else
+ {
+ static const double cp[] =
+ {
+ 0x1.26bb1bbb55515p+1, 0x1.53524c73cea42p+1, 0x1.0470591de2d1dp+1,
+ 0x1.2bd760a010a53p+0, 0x1.1429ffd16170cp-1, 0x1.a7ed6b2a0d97fp-3,
+ 0x1.16e4e37fa51e4p-4, 0x1.4147fe4c1676fp-6, 0x1.4897c4b3e329ap-8
+ };
+ r = ((cp[0] + z * cp[1]) + z2 * (cp[2] + z * cp[3]))
+ + (z2 * z2) * ((cp[4] + z * cp[5])
+ + z2 * (cp[6] + z * (cp[7] + z * cp[8])));
+ }
+ r *= z;
+ return r;
+ }
+ else
+ {
+ /* -7.52575 < x < -0.1549/log(10) or 0.1549/log(10) < x < 38.5318 */
+ static const double tb[] =
+ {
+ 0x1p+0, 0x1.0b5586cf9890fp+0, 0x1.172b83c7d517bp+0,
+ 0x1.2387a6e756238p+0, 0x1.306fe0a31b715p+0, 0x1.3dea64c123422p+0,
+ 0x1.4bfdad5362a27p+0, 0x1.5ab07dd485429p+0, 0x1.6a09e667f3bcdp+0,
+ 0x1.7a11473eb0187p+0, 0x1.8ace5422aa0dap+0, 0x1.9c49182a3f09p+0,
+ 0x1.ae89f995ad3adp+0, 0x1.c199bdd85529cp+0, 0x1.d5818dcfba487p+0,
+ 0x1.ea4afa2a490dap+0
+ };
+ static const double c[] =
+ {
+ 0x1.62e42fefa398bp-5, 0x1.ebfbdff84555ap-11, 0x1.c6b08d4ad86d3p-17,
+ 0x1.3b2ad1b1716a2p-23, 0x1.5d7472718ce9dp-30, 0x1.4a1d7f457ac56p-37
+ };
+
+ if (__glibc_unlikely ((ux << 11) == 0))
+ {
+ uint32_t k = (ux >> 21) - 0x1fc;
+ if (k <= 0xb)
+ {
+ if (k == 0)
+ return 10.0f - 1.0f;
+ if (k == 4)
+ return 100.0f - 1.0f;
+ if (k == 6)
+ return 1000.0f - 1.0f;
+ if (k == 8)
+ return 10000.0f - 1.0f;
+ if (k == 9)
+ return 100000.0f - 1.0f;
+ if (k == 10)
+ return 1000000.0f - 1.0f;
+ if (k == 11)
+ return 10000000.0f - 1.0f;
+ }
+ }
+ double a = iln10h * z;
+ double ia = floor (a);
+ double h = (a - ia) + iln10l * z;
+ int64_t i = ia;
+ int64_t j = i & 0xf;
+ int64_t e = i - j;
+ e >>= 4;
+ double s = tb[j];
+ s *= asdouble ((e + 0x3ffull) << 52);
+ double h2 = h * h;
+ double c0 = c[0] + h * c[1];
+ double c2 = c[2] + h * c[3];
+ double c4 = c[4] + h * c[5];
+ c0 += h2 * (c2 + h2 * c4);
+ double w = s * h;
+ return (s - 1.0) + w * c0;
+ }
+}
+#ifndef __exp10m1f
+libm_alias_float (__exp10m1, exp10m1)
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_exp2m1f.c b/sysdeps/ieee754/flt-32/s_exp2m1f.c
new file mode 100644
index 0000000..325ffb1
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_exp2m1f.c
@@ -0,0 +1,194 @@
+/* Correctly-rounded base-2 exponent function biased by 1 for binary32 value.
+
+Copyright (c) 2022-2024 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/exp2m1/exp2m1f.c, revision baf5f6b).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <fenv.h>
+#include <math.h>
+#include "math_config.h"
+#include <libm-alias-float.h>
+#include <math-narrow-eval.h>
+#include <float.h>
+
+float
+__exp2m1f (float x)
+{
+ double z = x;
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux & (~0u >> 1);
+ if (__glibc_unlikely (ux >= 0xc1c80000u))
+ { /* x <= -25 */
+ if (ax > (0xffu << 23))
+ return x + x; /* nan */
+ return (ux == 0xff800000) ? -0x1p+0f : -0x1p+0f + 0x1p-26f;
+ }
+ else if (__glibc_unlikely (ax >= 0x43000000u))
+ { /* x >= 128 */
+ if (ax >= asuint (INFINITY))
+ return x + x; /* +Inf or NaN */
+ /* exp2m1 (MAX_EXP) should not overflow when rounding towards zero
+ or towards -Inf. We round FLT_MAX + 2^103 which is in the middle
+ between FLT_MAX and 2^128 (the next number with unbounded range). */
+ float ret = math_narrow_eval (FLT_MAX + 0x1p103f);
+ if (x == FLT_MAX_EXP && ret == FLT_MAX)
+ return ret;
+ return __math_oflowf (0);
+ }
+ else if (__glibc_unlikely (ax < 0x3df95f1fu))
+ { /* |x| < 8.44e-2/log(2) */
+ double z2 = z * z, r;
+ if (__glibc_unlikely (ax < 0x3d67a4ccu))
+ { /* |x| < 3.92e-2/log(2) */
+ if (__glibc_unlikely (ax < 0x3caa2feeu))
+ { /* |x| < 1.44e-2/log(2) */
+ if (__glibc_unlikely (ax < 0x3bac1405u))
+ { /* |x| < 3.64e-3/log(2) */
+ if (__glibc_unlikely (ax < 0x3a358876u))
+ { /* |x| < 4.8e-4/log(2) */
+ if (__glibc_unlikely (ax < 0x37d32ef6u))
+ { /* |x| < 1.745e-5/log(2) */
+ if (__glibc_unlikely (ax < 0x331fdd82u))
+ { /* |x| < 2.58e-8/log(2) */
+ if (__glibc_unlikely (ax < 0x2538aa3bu))
+ /* |x| < 1.60171e-16 */
+ r = 0x1.62e42fefa39efp-1;
+ else
+ r = 0x1.62e42fefa39fp-1
+ + z * 0x1.ebfbdff82c58fp-3;
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0xb3d85005u))
+ return -0x1.2bdf76p-24 - 0x1.8p-77;
+ if (__glibc_unlikely (ux == 0x3338428du))
+ return 0x1.fee08ap-26 + 0x1p-80;
+ static const double c[] =
+ {
+ 0x1.62e42fefa39efp-1, 0x1.ebfbdff8548fdp-3,
+ 0x1.c6b08d704a06dp-5
+ };
+ r = c[0] + z * (c[1] + z * c[2]);
+ }
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0x388bca4fu))
+ return 0x1.839702p-15 - 0x1.8p-68;
+ static const double c[] =
+ {
+ 0x1.62e42fefa39efp-1, 0x1.ebfbdff82c58fp-3,
+ 0x1.c6b08dc82b347p-5, 0x1.3b2ab6fbad172p-7
+ };
+ r = (c[0] + z * c[1]) + z2 * (c[2] + z * c[3]);
+ }
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.62e42fefa39efp-1, 0x1.ebfbdff82c068p-3,
+ 0x1.c6b08d704a6dcp-5, 0x1.3b2ac262c3eedp-7,
+ 0x1.5d87fe7af779ap-10
+ };
+ r = (c[0] + z * c[1])
+ + z2 * (c[2] + z * (c[3] + z * c[4]));
+ }
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.62e42fefa39fp-1, 0x1.ebfbdff82c58dp-3,
+ 0x1.c6b08d7011d13p-5, 0x1.3b2ab6fbd267dp-7,
+ 0x1.5d88a81cea49ep-10, 0x1.430912ea9b963p-13
+ };
+ r = (c[0] + z * c[1])
+ + z2 * ((c[2] + z * c[3]) + z2 * (c[4] + z * c[5]));
+ }
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.62e42fefa39efp-1, 0x1.ebfbdff82c639p-3,
+ 0x1.c6b08d7049f1cp-5, 0x1.3b2ab6f5243bdp-7,
+ 0x1.5d87fe80a9e6cp-10, 0x1.430d0b9257fa8p-13,
+ 0x1.ffcbfc4cf0952p-17
+ };
+ r = (c[0] + z * c[1])
+ + z2 * ((c[2] + z * c[3])
+ + z2 * (c[4] + z * (c[5] + z * c[6])));
+ }
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.62e42fefa39efp-1, 0x1.ebfbdff82c591p-3,
+ 0x1.c6b08d704cf6bp-5, 0x1.3b2ab6fba00cep-7,
+ 0x1.5d87fdfdaadb4p-10, 0x1.4309137333066p-13,
+ 0x1.ffe5e90daf7ddp-17, 0x1.62c0220eed731p-20
+ };
+ r = ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]))
+ + (z2 * z2) * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7]));
+ }
+ r *= z;
+ return r;
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.62e42fefa398bp-5, 0x1.ebfbdff84555ap-11,
+ 0x1.c6b08d4ad86d3p-17, 0x1.3b2ad1b1716a2p-23,
+ 0x1.5d7472718ce9dp-30, 0x1.4a1d7f457ac56p-37
+ };
+ static const double tb[] =
+ {
+ 0x1p+0, 0x1.0b5586cf9890fp+0, 0x1.172b83c7d517bp+0,
+ 0x1.2387a6e756238p+0, 0x1.306fe0a31b715p+0, 0x1.3dea64c123422p+0,
+ 0x1.4bfdad5362a27p+0, 0x1.5ab07dd485429p+0, 0x1.6a09e667f3bcdp+0,
+ 0x1.7a11473eb0187p+0, 0x1.8ace5422aa0dap+0, 0x1.9c49182a3f09p+0,
+ 0x1.ae89f995ad3adp+0, 0x1.c199bdd85529cp+0, 0x1.d5818dcfba487p+0,
+ 0x1.ea4afa2a490dap+0
+ };
+ double a = 16.0 * z;
+ double ia = floor (a);
+ double h = a - ia;
+ double h2 = h * h;
+ int64_t i = ia, j = i & 0xf, e = i - j;
+ e >>= 4;
+ double s = tb[j];
+ s *= asdouble ((e + 0x3ffull) << 52);
+ double c0 = c[0] + h * c[1];
+ double c2 = c[2] + h * c[3];
+ double c4 = c[4] + h * c[5];
+ c0 += h2 * (c2 + h2 * c4);
+ double w = s * h;
+ return (s - 1.0) + w * c0;
+ }
+}
+#ifndef __exp2m1f
+libm_alias_float (__exp2m1, exp2m1)
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_expm1f.c b/sysdeps/ieee754/flt-32/s_expm1f.c
index 35f7b52..a36e578 100644
--- a/sysdeps/ieee754/flt-32/s_expm1f.c
+++ b/sysdeps/ieee754/flt-32/s_expm1f.c
@@ -1,132 +1,124 @@
-/* s_expm1f.c -- float version of s_expm1.c.
- */
+/* Correctly-rounded natural exponent function biased by 1 for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/expm1/expm1f.c, revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
-#include <errno.h>
-#include <float.h>
#include <math.h>
-#include <math-barriers.h>
-#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
-
-static const float huge = 1.0e+30;
-static const float tiny = 1.0e-30;
-
-static const float
-one = 1.0,
-o_threshold = 8.8721679688e+01,/* 0x42b17180 */
-ln2_hi = 6.9313812256e-01,/* 0x3f317180 */
-ln2_lo = 9.0580006145e-06,/* 0x3717f7d1 */
-invln2 = 1.4426950216e+00,/* 0x3fb8aa3b */
- /* scaled coefficients related to expm1 */
-Q1 = -3.3333335072e-02, /* 0xbd088889 */
-Q2 = 1.5873016091e-03, /* 0x3ad00d01 */
-Q3 = -7.9365076090e-05, /* 0xb8a670cd */
-Q4 = 4.0082177293e-06, /* 0x36867e54 */
-Q5 = -2.0109921195e-07; /* 0xb457edbb */
+#include "math_config.h"
float
-__expm1f(float x)
+__expm1f (float x)
{
- float y,hi,lo,c,t,e,hxs,hfx,r1;
- int32_t k,xsb;
- uint32_t hx;
-
- GET_FLOAT_WORD(hx,x);
- xsb = hx&0x80000000; /* sign bit of x */
- if(xsb==0) y=x; else y= -x; /* y = |x| */
- hx &= 0x7fffffff; /* high word of |x| */
-
- /* filter out huge and non-finite argument */
- if(hx >= 0x4195b844) { /* if |x|>=27*ln2 */
- if(hx >= 0x42b17218) { /* if |x|>=88.721... */
- if(hx>0x7f800000)
- return x+x; /* NaN */
- if(hx==0x7f800000)
- return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
- if(x > o_threshold) {
- __set_errno (ERANGE);
- return huge*huge; /* overflow */
- }
- }
- if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */
- math_force_eval(x+tiny);/* raise inexact */
- return tiny-one; /* return -1 */
- }
- }
-
- /* argument reduction */
- if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */
- if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */
- if(xsb==0)
- {hi = x - ln2_hi; lo = ln2_lo; k = 1;}
- else
- {hi = x + ln2_hi; lo = -ln2_lo; k = -1;}
- } else {
- k = invln2*x+((xsb==0)?(float)0.5:(float)-0.5);
- t = k;
- hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
- lo = t*ln2_lo;
- }
- x = hi - lo;
- c = (hi-x)-lo;
- }
- else if(hx < 0x33000000) { /* when |x|<2**-25, return x */
- math_check_force_underflow (x);
- t = huge+x; /* return x with inexact flags when x!=0 */
- return x - (t-(huge+x));
+ static const double c[] =
+ {
+ 1, 0x1.62e42fef4c4e7p-6, 0x1.ebfd1b232f475p-13, 0x1.c6b19384ecd93p-20
+ };
+ static const double ch[] =
+ {
+ 0x1.62e42fefa39efp-6, 0x1.ebfbdff82c58fp-13, 0x1.c6b08d702e0edp-20,
+ 0x1.3b2ab6fb92e5ep-27, 0x1.5d886e6d54203p-35, 0x1.430976b8ce6efp-43
+ };
+ static const double td[] =
+ {
+ 0x1p+0, 0x1.059b0d3158574p+0, 0x1.0b5586cf9890fp+0,
+ 0x1.11301d0125b51p+0, 0x1.172b83c7d517bp+0, 0x1.1d4873168b9aap+0,
+ 0x1.2387a6e756238p+0, 0x1.29e9df51fdee1p+0, 0x1.306fe0a31b715p+0,
+ 0x1.371a7373aa9cbp+0, 0x1.3dea64c123422p+0, 0x1.44e086061892dp+0,
+ 0x1.4bfdad5362a27p+0, 0x1.5342b569d4f82p+0, 0x1.5ab07dd485429p+0,
+ 0x1.6247eb03a5585p+0, 0x1.6a09e667f3bcdp+0, 0x1.71f75e8ec5f74p+0,
+ 0x1.7a11473eb0187p+0, 0x1.82589994cce13p+0, 0x1.8ace5422aa0dbp+0,
+ 0x1.93737b0cdc5e5p+0, 0x1.9c49182a3f09p+0, 0x1.a5503b23e255dp+0,
+ 0x1.ae89f995ad3adp+0, 0x1.b7f76f2fb5e47p+0, 0x1.c199bdd85529cp+0,
+ 0x1.cb720dcef9069p+0, 0x1.d5818dcfba487p+0, 0x1.dfc97337b9b5fp+0,
+ 0x1.ea4afa2a490dap+0, 0x1.f50765b6e454p+0
+ };
+ const double iln2 = 0x1.71547652b82fep+5;
+ const double big = 0x1.8p52;
+ double z = x;
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux << 1;
+ if (__glibc_likely (ax < 0x7c400000u))
+ { /* |x| < 0.15625 */
+ if (__glibc_unlikely (ax < 0x676a09e8u))
+ { /* |x| < 0x1.6a09e8p-24 */
+ if (__glibc_unlikely (ax == 0x0u))
+ return x; /* x = +-0 */
+ return fmaf (fabsf (x), 0x1p-25f, x);
}
- else k = 0;
-
- /* x is now in primary range */
- hfx = (float)0.5*x;
- hxs = x*hfx;
- r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
- t = (float)3.0-r1*hfx;
- e = hxs*((r1-t)/((float)6.0 - x*t));
- if(k==0) return x - (x*e-hxs); /* c is 0 */
- else {
- e = (x*(e-c)-c);
- e -= hxs;
- if(k== -1) return (float)0.5*(x-e)-(float)0.5;
- if(k==1) {
- if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5));
- else return one+(float)2.0*(x-e);
- }
- if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
- int32_t i;
- y = one-(e-x);
- GET_FLOAT_WORD(i,y);
- SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
- return y-one;
- }
- t = one;
- if(k<23) {
- int32_t i;
- SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
- y = t-(e-x);
- GET_FLOAT_WORD(i,y);
- SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
- } else {
- int32_t i;
- SET_FLOAT_WORD(t,((0x7f-k)<<23)); /* 2^-k */
- y = x-(e+t);
- y += one;
- GET_FLOAT_WORD(i,y);
- SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
- }
+ static const double b[] =
+ {
+ 0x1.fffffffffffc2p-2, 0x1.55555555555fep-3, 0x1.555555559767fp-5,
+ 0x1.1111111098dc1p-7, 0x1.6c16bca988aa9p-10, 0x1.a01a07658483fp-13,
+ 0x1.a05b04d2c3503p-16, 0x1.71de3a960b5e3p-19
+ };
+ double z2 = z * z, z4 = z2 * z2;
+ double r = z + z2
+ * ((b[0] + z * b[1]) + z2 * (b[2] + z * b[3])
+ + z4 * ((b[4] + z * b[5]) + z2 * (b[6] + z * b[7])));
+ return r;
+ }
+ if (__glibc_unlikely (ax >= 0x8562e430u))
+ { /* |x| > 88.72 */
+ if (ax > (0xffu << 24))
+ return x + x; /* nan */
+ if (__glibc_unlikely (ux >> 31))
+ { /* x < 0 */
+ if (ax == (0xffu << 24))
+ return -1.0f;
+ return -1.0f + 0x1p-26f;
}
- return y;
+ if (ax == (0xffu << 24))
+ return INFINITY;
+ return __math_oflowf (0);
+ }
+ double a = iln2 * z;
+ double ia = roundeven_finite (a);
+ double h = a - ia;
+ double h2 = h * h;
+ uint64_t u = asuint64 (ia + big);
+ double c2 = c[2] + h * c[3], c0 = c[0] + h * c[1];
+ const uint64_t *tdl = (uint64_t *) ((void *) td);
+ double sv = asdouble (tdl[u & 0x1f] + ((u >> 5) << 52));
+ double r = (c0 + h2 * c2) * sv - 1.0;
+ float ub = r, lb = r - sv * 0x1.3b3p-33;
+ if (__glibc_unlikely (ub != lb))
+ {
+ if (__glibc_unlikely (ux > 0xc18aa123u)) /* x < -17.32 */
+ return -1.0f + 0x1p-26f;
+ const double iln2h = 0x1.7154765p+5;
+ const double iln2l = 0x1.5c17f0bbbe88p-26;
+ double s = sv;
+ h = (iln2h * z - ia) + iln2l * z;
+ h2 = h * h;
+ double w = s * h;
+ r = (s - 1) + w
+ * ((ch[0] + h * ch[1])
+ + h2 * ((ch[2] + h * ch[3]) + h2 * (ch[4] + h * ch[5])));
+ ub = r;
+ }
+ return ub;
}
libm_alias_float (__expm1, expm1)
diff --git a/sysdeps/ieee754/flt-32/s_fpclassifyf.c b/sysdeps/ieee754/flt-32/s_fpclassifyf.c
index 1539a66..1faccf5 100644
--- a/sysdeps/ieee754/flt-32/s_fpclassifyf.c
+++ b/sysdeps/ieee754/flt-32/s_fpclassifyf.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_fromfpf_main.c b/sysdeps/ieee754/flt-32/s_fromfpf_main.c
index 2f39cfb..7290603 100644
--- a/sysdeps/ieee754/flt-32/s_fromfpf_main.c
+++ b/sysdeps/ieee754/flt-32/s_fromfpf_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_getpayloadf.c b/sysdeps/ieee754/flt-32/s_getpayloadf.c
index e06e7aa..b090851 100644
--- a/sysdeps/ieee754/flt-32/s_getpayloadf.c
+++ b/sysdeps/ieee754/flt-32/s_getpayloadf.c
@@ -1,5 +1,5 @@
/* Get NaN payload. flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_issignalingf.c b/sysdeps/ieee754/flt-32/s_issignalingf.c
index 9251da9..8698bc8 100644
--- a/sysdeps/ieee754/flt-32/s_issignalingf.c
+++ b/sysdeps/ieee754/flt-32/s_issignalingf.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_llrintf.c b/sysdeps/ieee754/flt-32/s_llrintf.c
index df0e247..dab8d22 100644
--- a/sysdeps/ieee754/flt-32/s_llrintf.c
+++ b/sysdeps/ieee754/flt-32/s_llrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_llroundf.c b/sysdeps/ieee754/flt-32/s_llroundf.c
index 517115d..e19b307 100644
--- a/sysdeps/ieee754/flt-32/s_llroundf.c
+++ b/sysdeps/ieee754/flt-32/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_log10p1f.c b/sysdeps/ieee754/flt-32/s_log10p1f.c
new file mode 100644
index 0000000..4e11d55
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_log10p1f.c
@@ -0,0 +1,182 @@
+/* Correctly-rounded biased argument base-10 logarithm function for binary32 value.
+
+Copyright (c) 2022-2023 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/log10p1/log10p1f.c revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <stdint.h>
+#include <errno.h>
+#include <fenv.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+static __attribute__ ((noinline)) float
+as_special (float x)
+{
+ uint32_t ux = asuint (x);
+ if (ux == 0x7f800000u)
+ return x; /* +inf */
+ uint32_t ax = ux << 1;
+ if (ax == 0x17fu << 24)
+ /* x+1 = 0.0 */
+ return __math_divzerof (1);
+ if (ax > 0xff000000u)
+ return x + x; /* nan */
+ return __math_invalidf (x);
+}
+
+float
+__log10p1f (float x)
+{
+ static const double tr[] =
+ {
+ 0x1p+0, 0x1.f81f82p-1, 0x1.f07c1fp-1, 0x1.e9131acp-1,
+ 0x1.e1e1e1ep-1, 0x1.dae6077p-1, 0x1.d41d41dp-1, 0x1.cd85689p-1,
+ 0x1.c71c71cp-1, 0x1.c0e0704p-1, 0x1.bacf915p-1, 0x1.b4e81b5p-1,
+ 0x1.af286bdp-1, 0x1.a98ef6p-1, 0x1.a41a41ap-1, 0x1.9ec8e95p-1,
+ 0x1.999999ap-1, 0x1.948b0fdp-1, 0x1.8f9c19p-1, 0x1.8acb90fp-1,
+ 0x1.8618618p-1, 0x1.8181818p-1, 0x1.7d05f41p-1, 0x1.78a4c81p-1,
+ 0x1.745d174p-1, 0x1.702e05cp-1, 0x1.6c16c17p-1, 0x1.6816817p-1,
+ 0x1.642c859p-1, 0x1.605816p-1, 0x1.5c9882cp-1, 0x1.58ed231p-1,
+ 0x1.5555555p-1, 0x1.51d07ebp-1, 0x1.4e5e0a7p-1, 0x1.4afd6ap-1,
+ 0x1.47ae148p-1, 0x1.446f865p-1, 0x1.4141414p-1, 0x1.3e22cbdp-1,
+ 0x1.3b13b14p-1, 0x1.3813814p-1, 0x1.3521cfbp-1, 0x1.323e34ap-1,
+ 0x1.2f684bep-1, 0x1.2c9fb4ep-1, 0x1.29e412ap-1, 0x1.27350b9p-1,
+ 0x1.2492492p-1, 0x1.21fb781p-1, 0x1.1f7047ep-1, 0x1.1cf06aep-1,
+ 0x1.1a7b961p-1, 0x1.1811812p-1, 0x1.15b1e5fp-1, 0x1.135c811p-1,
+ 0x1.1111111p-1, 0x1.0ecf56cp-1, 0x1.0c9715p-1, 0x1.0a6810ap-1,
+ 0x1.0842108p-1, 0x1.0624dd3p-1, 0x1.041041p-1, 0x1.0204081p-1,
+ 0.5
+ };
+ static const double tl[] =
+ {
+ -0x1.562ec497ef351p-43, 0x1.b9476892ea99cp-8, 0x1.b5e909c959eecp-7,
+ 0x1.45f4f59ec84fp-6, 0x1.af5f92cbcf2aap-6, 0x1.0ba01a6069052p-5,
+ 0x1.3ed119b99dd41p-5, 0x1.714834298a088p-5, 0x1.a30a9d98309c1p-5,
+ 0x1.d41d51266b9d9p-5, 0x1.02428c0f62dfcp-4, 0x1.1a23444eea521p-4,
+ 0x1.31b30543f2597p-4, 0x1.48f3ed39bd5e7p-4, 0x1.5fe8049a0bd06p-4,
+ 0x1.769140a6a78eap-4, 0x1.8cf1836c96595p-4, 0x1.a30a9d5551a84p-4,
+ 0x1.b8de4d1ee5b21p-4, 0x1.ce6e4202c7bc9p-4, 0x1.e3bc1accaa6eap-4,
+ 0x1.f8c9683b584b7p-4, 0x1.06cbd68ca86ep-3, 0x1.11142f19de3a2p-3,
+ 0x1.1b3e71fa795fp-3, 0x1.254b4d37a3354p-3, 0x1.2f3b6912cab79p-3,
+ 0x1.390f6831144f7p-3, 0x1.42c7e7fffb21ap-3, 0x1.4c65808c779aep-3,
+ 0x1.55e8c507508c7p-3, 0x1.5f52445deb049p-3, 0x1.68a288c3efe72p-3,
+ 0x1.71da17bdef98bp-3, 0x1.7af9736089c4bp-3, 0x1.84011952a11ebp-3,
+ 0x1.8cf1837a7d6d1p-3, 0x1.95cb2891e3048p-3, 0x1.9e8e7b0f85651p-3,
+ 0x1.a73beaa5d9dfep-3, 0x1.afd3e39454544p-3, 0x1.b856cf060c662p-3,
+ 0x1.c0c5134de0c6dp-3, 0x1.c91f1371bb611p-3, 0x1.d1652ffcd2bc5p-3,
+ 0x1.d997c6f634ae6p-3, 0x1.e1b733ab8fbadp-3, 0x1.e9c3ceadab4c8p-3,
+ 0x1.f1bdeec438f77p-3, 0x1.f9a5e7a5f906fp-3, 0x1.00be05ac02564p-2,
+ 0x1.04a054d81990cp-2, 0x1.087a083594e33p-2, 0x1.0c4b457098b4fp-2,
+ 0x1.101431aa1f48ap-2, 0x1.13d4f08b98411p-2, 0x1.178da53edaecbp-2,
+ 0x1.1b3e71e9f9391p-2, 0x1.1ee777defd526p-2, 0x1.2288d7b48d874p-2,
+ 0x1.2622b0f52dad8p-2, 0x1.29b522a4c594cp-2, 0x1.2d404b0e305b9p-2,
+ 0x1.30c4478f3f21dp-2, 0x1.34413509f6f4dp-2
+ };
+ static const union
+ {
+ float f;
+ uint32_t u;
+ } st[] =
+ {
+ { 0x0p+0 }, { 0x1.2p+3 }, { 0x1.8cp+6 },
+ { 0x1.f38p+9 }, { 0x1.3878p+13 }, { 0x1.869fp+16 },
+ { 0x1.e847ep+19 }, { 0x1.312cfep+23 }
+ };
+ double z = x;
+ uint32_t ux = asuint (x);
+ if (__glibc_unlikely (ux >= 0x17fu << 23)) /* x <= -1 */
+ return as_special (x);
+ uint32_t ax = ux & (~0u >> 1);
+ if (__glibc_unlikely (ax == 0))
+ return copysign (0, x);
+ if (__glibc_unlikely (ax >= (0xff << 23))) /* +inf, nan */
+ return as_special (x);
+ int ie = ux;
+ ie >>= 23;
+ unsigned int je = ie - 126;
+ je = (je * 0x9a209a8) >> 29;
+ if (__glibc_unlikely (ux == st[je].u))
+ return je;
+
+ uint64_t tz = asuint64 (z + 1.0);
+ uint64_t m = tz & (~(uint64_t) 0 >> 12);
+ int32_t e = (tz >> 52) - 1023, j = ((m + ((int64_t) 1 << 45)) >> 46);
+ tz = m | ((uint64_t) 0x3ff << 52);
+ double ix = tr[j], l = tl[j];
+ double off = e * 0x1.34413509f79ffp-2 + l;
+ double v = asdouble (tz) * ix - 1;
+
+ static const double h[] =
+ {
+ 0x1.bcb7b150bf6d8p-2, -0x1.bcb7b1738c07ep-3,
+ 0x1.287de19e795c5p-3, -0x1.bca44edc44bc4p-4
+ };
+ double v2 = v * v;
+ double f = (h[0] + v * h[1]) + v2 * (h[2] + v * h[3]);
+ double r = off + v * f;
+ float ub = r;
+ float lb = r + 0x1.5cp-42;
+ if (__glibc_unlikely (ub != lb))
+ {
+ if (__glibc_unlikely (ax < 0x3d32743eu))
+ { /* 0x1.64e87cp-5f */
+ if (__glibc_unlikely (ux == 0xa6aba8afu))
+ return -0x1.2a33bcp-51f + 0x1p-76f;
+ if (__glibc_unlikely (ux == 0xaf39b9a7u))
+ return -0x1.42a342p-34f + 0x1p-59f;
+ if (__glibc_unlikely (ux == 0x399a7c00u))
+ return 0x1.0c53cap-13f + 0x1p-38f;
+ z /= 2.0 + z;
+ double z2 = z * z, z4 = z2 * z2;
+ static const double c[] =
+ {
+ 0x1.bcb7b1526e50fp-1, 0x1.287a76370129dp-2,
+ 0x1.63c62378fa3dbp-3, 0x1.fca4139a42374p-4
+ };
+ float ret = z * ((c[0] + z2 * c[1]) + z4 * (c[2] + z2 * c[3]));
+ if (x != 0.0f && ret == 0.0)
+ __set_errno (ERANGE);
+ return ret;
+ }
+ if (__glibc_unlikely (ux == 0x7956ba5eu))
+ return 0x1.16bebap+5f + 0x1p-20f;
+ if (__glibc_unlikely (ux == 0xbd86ffb9u))
+ return -0x1.e53536p-6f + 0x1p-31f;
+ static const double c[] =
+ {
+ 0x1.bcb7b1526e50ep-2, -0x1.bcb7b1526e53dp-3, 0x1.287a7636f3fa2p-3,
+ -0x1.bcb7b146a14b3p-4, 0x1.63c627d5219cbp-4, -0x1.2880736c8762dp-4,
+ 0x1.fc1ecf913961ap-5
+ };
+ f = v
+ * ((c[0] + v * c[1])
+ + v2 * ((c[2] + v * c[3]) + v2 * (c[4] + v * c[5] + v2 * c[6])));
+ f += l - tl[0];
+ double el = e * 0x1.34413509f79ffp-2;
+ r = el + f;
+ ub = r;
+ }
+ return ub;
+}
+libm_alias_float (__log10p1, log10p1)
diff --git a/sysdeps/ieee754/flt-32/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c
index 555f0f8..d1686e7 100644
--- a/sysdeps/ieee754/flt-32/s_log1pf.c
+++ b/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -1,116 +1,181 @@
-/* s_log1pf.c -- float version of s_log1p.c.
- */
+/* Correctly-rounded biased argument natural logarithm function for binary32
+ value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2023, 2024 Alexei Sibidanov.
-#include <float.h>
-#include <math.h>
-#include <math-barriers.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libc-diag.h>
+This file is part of the CORE-MATH project
+project (file src/binary32/log1p/log1pf.c revision bc385c2).
-static const float
-ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
-ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
-two25 = 3.355443200e+07, /* 0x4c000000 */
-Lp1 = 6.6666668653e-01, /* 3F2AAAAB */
-Lp2 = 4.0000000596e-01, /* 3ECCCCCD */
-Lp3 = 2.8571429849e-01, /* 3E924925 */
-Lp4 = 2.2222198546e-01, /* 3E638E29 */
-Lp5 = 1.8183572590e-01, /* 3E3A3325 */
-Lp6 = 1.5313838422e-01, /* 3E1CD04F */
-Lp7 = 1.4798198640e-01; /* 3E178897 */
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-static const float zero = 0.0;
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-float
-__log1pf(float x)
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <math.h>
+#include <stdint.h>
+#include <errno.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+static __attribute__ ((noinline)) float
+as_special (float x)
{
- float hfsq,f,c,s,z,R,u;
- int32_t k,hx,hu,ax;
+ uint32_t t = asuint (x);
+ if (t == 0xbf800000u)
+ return __math_divzerof (1);
+ if (t == 0x7f800000u)
+ return x; /* +inf */
+ uint32_t ax = t << 1;
+ if (ax > 0xff000000u)
+ return x + x; /* nan */
+ return __math_invalidf (0.0f);
+}
- GET_FLOAT_WORD(hx,x);
- ax = hx&0x7fffffff;
+float
+__log1pf (float x)
+{
+ static const double x0[] =
+ {
+ 0x1.f81f82p-1, 0x1.e9131acp-1, 0x1.dae6077p-1, 0x1.cd85689p-1,
+ 0x1.c0e0704p-1, 0x1.b4e81b5p-1, 0x1.a98ef6p-1, 0x1.9ec8e95p-1,
+ 0x1.948b0fdp-1, 0x1.8acb90fp-1, 0x1.8181818p-1, 0x1.78a4c81p-1,
+ 0x1.702e05cp-1, 0x1.6816817p-1, 0x1.605816p-1, 0x1.58ed231p-1,
+ 0x1.51d07ebp-1, 0x1.4afd6ap-1, 0x1.446f865p-1, 0x1.3e22cbdp-1,
+ 0x1.3813814p-1, 0x1.323e34ap-1, 0x1.2c9fb4ep-1, 0x1.27350b9p-1,
+ 0x1.21fb781p-1, 0x1.1cf06aep-1, 0x1.1811812p-1, 0x1.135c811p-1,
+ 0x1.0ecf56cp-1, 0x1.0a6810ap-1, 0x1.0624dd3p-1, 0x1.0204081p-1
+ };
+ static const double lixb[] =
+ {
+ 0x1.fc0a8909b4218p-7, 0x1.77458f51aac89p-5, 0x1.341d793afb997p-4,
+ 0x1.a926d3a5ebd2ap-4, 0x1.0d77e7a8a823dp-3, 0x1.44d2b6c557102p-3,
+ 0x1.7ab89040accecp-3, 0x1.af3c94ecab3d6p-3, 0x1.e27076d54e6c9p-3,
+ 0x1.0a324e3888ad5p-2, 0x1.22941fc0c7357p-2, 0x1.3a64c56ae3fdbp-2,
+ 0x1.51aad874af21fp-2, 0x1.686c81d300eap-2, 0x1.7eaf83c7fa9b5p-2,
+ 0x1.947941aa610ecp-2, 0x1.a9cec9a3f023bp-2, 0x1.beb4d9ea4156ep-2,
+ 0x1.d32fe7f35e5c7p-2, 0x1.e7442617b817ap-2, 0x1.faf588dd5ed1p-2,
+ 0x1.0723e5c635c39p-1, 0x1.109f39d53c99p-1, 0x1.19ee6b38a4668p-1,
+ 0x1.23130d7f93c3bp-1, 0x1.2c0e9ec9b0b85p-1, 0x1.34e289cb35eccp-1,
+ 0x1.3d9026ad3d3f3p-1, 0x1.4618bc1eadbbbp-1, 0x1.4e7d8127dd8a9p-1,
+ 0x1.56bf9d5967092p-1, 0x1.5ee02a926936ep-1
+ };
+ static const double lix[] =
+ {
+ 0x1.fc0a890fc03e4p-7, 0x1.77458f532dcfcp-5, 0x1.341d793bbd1d1p-4,
+ 0x1.a926d3a6ad563p-4, 0x1.0d77e7a908e59p-3, 0x1.44d2b6c5b7d1ep-3,
+ 0x1.7ab890410d909p-3, 0x1.af3c94ed0bff3p-3, 0x1.e27076d5af2e6p-3,
+ 0x1.0a324e38b90e3p-2, 0x1.22941fc0f7966p-2, 0x1.3a64c56b145eap-2,
+ 0x1.51aad874df82dp-2, 0x1.686c81d3314afp-2, 0x1.7eaf83c82afc3p-2,
+ 0x1.947941aa916fbp-2, 0x1.a9cec9a42084ap-2, 0x1.beb4d9ea71b7cp-2,
+ 0x1.d32fe7f38ebd5p-2, 0x1.e7442617e8788p-2, 0x1.faf588dd8f31fp-2,
+ 0x1.0723e5c64df4p-1, 0x1.109f39d554c97p-1, 0x1.19ee6b38bc96fp-1,
+ 0x1.23130d7fabf43p-1, 0x1.2c0e9ec9c8e8cp-1, 0x1.34e289cb4e1d3p-1,
+ 0x1.3d9026ad556fbp-1, 0x1.4618bc1ec5ec2p-1, 0x1.4e7d8127f5bb1p-1,
+ 0x1.56bf9d597f399p-1, 0x1.5ee02a9281675p-1
+ };
+ static const double b[] =
+ {
+ 0x1p+0,
+ -0x1p-1,
+ 0x1.5555555556f6bp-2,
+ -0x1.00000000029b9p-2,
+ 0x1.9999988d176e4p-3,
+ -0x1.55555418889a7p-3,
+ 0x1.24adeca50e2bcp-3,
+ -0x1.001ba33bf57cfp-3
+ };
- k = 1;
- if (hx < 0x3ed413d7) { /* x < 0.41422 */
- if(ax>=0x3f800000) { /* x <= -1.0 */
- if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=-inf */
- else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
- }
- if(ax<0x31000000) { /* |x| < 2**-29 */
- math_force_eval(two25+x); /* raise inexact */
- if (ax<0x24800000) /* |x| < 2**-54 */
- {
- math_check_force_underflow (x);
- return x;
- }
- else
- return x - x*x*(float)0.5;
- }
- if(hx>0||hx<=((int32_t)0xbe95f61f)) {
- k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */
+ double z = x;
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux & (~0u >> 1);
+ if (__glibc_likely (ax < 0x3c880000))
+ {
+ if (__glibc_unlikely (ax < 0x33000000))
+ {
+ if (!ax)
+ return x;
+ return fmaf (x, -x, x);
}
- if (hx >= 0x7f800000) return x+x;
- if(k!=0) {
- if(hx<0x5a000000) {
- u = (float)1.0+x;
- GET_FLOAT_WORD(hu,u);
- k = (hu>>23)-127;
- /* correction term */
- c = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0);
- c /= u;
- } else {
- u = x;
- GET_FLOAT_WORD(hu,u);
- k = (hu>>23)-127;
- c = 0;
- }
- hu &= 0x007fffff;
- if(hu<0x3504f7) {
- SET_FLOAT_WORD(u,hu|0x3f800000);/* normalize u */
- } else {
- k += 1;
- SET_FLOAT_WORD(u,hu|0x3f000000); /* normalize u/2 */
- hu = (0x00800000-hu)>>2;
+ double z2 = z * z, z4 = z2 * z2;
+ double f = z2
+ * ((b[1] + z * b[2]) + z2 * (b[3] + z * b[4])
+ + z4 * ((b[5] + z * b[6]) + z2 * b[7]));
+ double r = z + f;
+ if (__glibc_unlikely ((asuint64 (r) & 0xfffffffll) == 0))
+ r += 0x1p14 * (f + (z - r));
+ return r;
+ }
+ else
+ {
+ if (__glibc_unlikely (ux >= 0xbf800000u || ax >= 0x7f800000))
+ return as_special (x);
+ uint64_t tp = asuint64 (z + 1);
+ int e = tp >> 52;
+ uint64_t m52 = tp & (~(uint64_t) 0 >> 12);
+ unsigned int j = (tp >> (52 - 5)) & 31;
+ e -= 0x3ff;
+ double xd = asdouble (m52 | ((uint64_t) 0x3ff << 52));
+ z = xd * x0[j] - 1;
+ static const double c[] =
+ {
+ -0x1.3902c33434e7fp-43, 0x1.ffffffe1cbed5p-1, -0x1.ffffff7d1b014p-2,
+ 0x1.5564e0ed3613ap-2, -0x1.0012232a00d4ap-2
+ };
+ const double ln2 = 0x1.62e42fefa39efp-1;
+ double z2 = z * z,
+ r = (ln2 * e + lixb[j])
+ + z * ((c[1] + z * c[2]) + z2 * (c[3] + z * c[4]));
+ float ub = r;
+ float lb = r + 2.2e-11;
+ if (__glibc_unlikely (ub != lb))
+ {
+ double z4 = z2 * z2,
+ f = z
+ * ((b[0] + z * b[1]) + z2 * (b[2] + z * b[3])
+ + z4 * ((b[4] + z * b[5]) + z2 * (b[6] + z * b[7])));
+ const double ln2l = 0x1.7f7d1cf79abcap-20, ln2h = 0x1.62e4p-1;
+ double Lh = ln2h * e;
+ double Ll = ln2l * e;
+ double rl = f + Ll + lix[j];
+ double tr = rl + Lh;
+ if (__glibc_unlikely ((asuint64 (tr) & 0xfffffffll) == 0))
+ {
+ if (x == -0x1.247ab0p-6)
+ return -0x1.271f0ep-6f - 0x1p-31f;
+ if (x == -0x1.3a415ep-5)
+ return -0x1.407112p-5f + 0x1p-30f;
+ if (x == 0x1.fb035ap-2)
+ return 0x1.9bddc2p-2f + 0x1p-27f;
+ tr += 64 * (rl + (Lh - tr));
}
- f = u-(float)1.0;
- }
- hfsq=(float)0.5*f*f;
- if(hu==0) { /* |f| < 2**-20 */
- if(f==zero) {
- if(k==0) return zero;
- else {c += k*ln2_lo; return k*ln2_hi+c;}
+ else if (rl + (Lh - tr) == 0.0)
+ {
+ if (x == 0x1.b7fd86p-4)
+ return 0x1.a1ece2p-4f + 0x1p-29f;
+ if (x == -0x1.3a415ep-5)
+ return -0x1.407112p-5f + 0x1p-30f;
+ if (x == 0x1.43c7e2p-6)
+ return 0x1.409f80p-6f + 0x1p-31f;
}
- R = hfsq*(1.0f-0.66666666666666666f*f);
- if(k==0) return f-R; else
- return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+ ub = tr;
}
- s = f/((float)2.0+f);
- z = s*s;
- R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
- if (k == 0)
- return f - (hfsq - s * (hfsq + R));
- else
- {
- /* With GCC 7 when compiling with -Os the compiler warns
- that c might be used uninitialized. This can't be true
- because k must be 0 for c to be uninitialized and we
- handled that computation earlier without using c. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
- return k * ln2_hi - ((hfsq - (s * (hfsq + R)
- + (k * ln2_lo + c))) - f);
- DIAG_POP_NEEDS_COMMENT;
- }
+ return ub;
+ }
}
+libm_alias_float (__log1p, log1p)
+strong_alias (__log1pf, __logp1f)
+libm_alias_float (__logp1, logp1)
diff --git a/sysdeps/ieee754/flt-32/s_log2p1f.c b/sysdeps/ieee754/flt-32/s_log2p1f.c
new file mode 100644
index 0000000..09e77dc
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_log2p1f.c
@@ -0,0 +1,248 @@
+/* Correctly-rounded biased argument natural logarithm function for binary32
+ value.
+
+Copyright (c) 2022-2024 Alexei Sibidanov.
+
+This file is part of the CORE-MATH project
+project (file src/binary32/log2p1/log2p1f.c revision bc385c2).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <errno.h>
+#include <math.h>
+#include <math-underflow.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+float
+__log2p1f (float x)
+{
+ static const double ix[] =
+ {
+ 0x1p+0, 0x1.fc07f01fcp-1, 0x1.f81f81f82p-1,
+ 0x1.f44659e4ap-1, 0x1.f07c1f07cp-1, 0x1.ecc07b302p-1,
+ 0x1.e9131abfp-1, 0x1.e573ac902p-1, 0x1.e1e1e1e1ep-1,
+ 0x1.de5d6e3f8p-1, 0x1.dae6076bap-1, 0x1.d77b654b8p-1,
+ 0x1.d41d41d42p-1, 0x1.d0cb58f6ep-1, 0x1.cd8568904p-1,
+ 0x1.ca4b3055ep-1, 0x1.c71c71c72p-1, 0x1.c3f8f01c4p-1,
+ 0x1.c0e070382p-1, 0x1.bdd2b8994p-1, 0x1.bacf914c2p-1,
+ 0x1.b7d6c3ddap-1, 0x1.b4e81b4e8p-1, 0x1.b2036406cp-1,
+ 0x1.af286bca2p-1, 0x1.ac5701ac6p-1, 0x1.a98ef606ap-1,
+ 0x1.a6d01a6dp-1, 0x1.a41a41a42p-1, 0x1.a16d3f97ap-1,
+ 0x1.9ec8e951p-1, 0x1.9c2d14ee4p-1, 0x1.99999999ap-1,
+ 0x1.970e4f80cp-1, 0x1.948b0fcd6p-1, 0x1.920fb49dp-1,
+ 0x1.8f9c18f9cp-1, 0x1.8d3018d3p-1, 0x1.8acb90f6cp-1,
+ 0x1.886e5f0acp-1, 0x1.861861862p-1, 0x1.83c977ab2p-1,
+ 0x1.818181818p-1, 0x1.7f405fd02p-1, 0x1.7d05f417ep-1,
+ 0x1.7ad2208ep-1, 0x1.78a4c8178p-1, 0x1.767dce434p-1,
+ 0x1.745d1745ep-1, 0x1.724287f46p-1, 0x1.702e05c0cp-1,
+ 0x1.6e1f76b44p-1, 0x1.6c16c16c2p-1, 0x1.6a13cd154p-1,
+ 0x1.681681682p-1, 0x1.661ec6a52p-1, 0x1.642c8590cp-1,
+ 0x1.623fa7702p-1, 0x1.605816058p-1, 0x1.5e75bb8dp-1,
+ 0x1.5c9882b94p-1, 0x1.5ac056b02p-1, 0x1.58ed23082p-1,
+ 0x1.571ed3c5p-1, 0x1.555555556p-1, 0x1.5390948f4p-1,
+ 0x1.51d07eae2p-1, 0x1.501501502p-1, 0x1.4e5e0a73p-1,
+ 0x1.4cab88726p-1, 0x1.4afd6a052p-1, 0x1.49539e3b2p-1,
+ 0x1.47ae147aep-1, 0x1.460cbc7f6p-1, 0x1.446f86562p-1,
+ 0x1.42d6625d6p-1, 0x1.414141414p-1, 0x1.3fb013fbp-1,
+ 0x1.3e22cbce4p-1, 0x1.3c995a47cp-1, 0x1.3b13b13b2p-1,
+ 0x1.3991c2c18p-1, 0x1.381381382p-1, 0x1.3698df3dep-1,
+ 0x1.3521cfb2cp-1, 0x1.33ae45b58p-1, 0x1.323e34a2cp-1,
+ 0x1.30d19013p-1, 0x1.2f684bda2p-1, 0x1.2e025c04cp-1,
+ 0x1.2c9fb4d82p-1, 0x1.2b404ad02p-1, 0x1.29e4129e4p-1,
+ 0x1.288b01288p-1, 0x1.27350b882p-1, 0x1.25e22708p-1,
+ 0x1.24924924ap-1, 0x1.23456789ap-1, 0x1.21fb78122p-1,
+ 0x1.20b470c68p-1, 0x1.1f7047dc2p-1, 0x1.1e2ef3b4p-1,
+ 0x1.1cf06ada2p-1, 0x1.1bb4a4046p-1, 0x1.1a7b9611ap-1,
+ 0x1.19453808cp-1, 0x1.181181182p-1, 0x1.16e068942p-1,
+ 0x1.15b1e5f76p-1, 0x1.1485f0e0ap-1, 0x1.135c81136p-1,
+ 0x1.12358e75ep-1, 0x1.111111112p-1, 0x1.0fef010fep-1,
+ 0x1.0ecf56be6p-1, 0x1.0db20a89p-1, 0x1.0c9714fbcp-1,
+ 0x1.0b7e6ec26p-1, 0x1.0a6810a68p-1, 0x1.0953f3902p-1,
+ 0x1.084210842p-1, 0x1.073260a48p-1, 0x1.0624dd2f2p-1,
+ 0x1.05197f7d8p-1, 0x1.041041042p-1, 0x1.03091b52p-1,
+ 0x1.020408102p-1, 0x1.01010101p-1, 0x1p-1
+ };
+
+ static const double lix[] = {
+ 0x0p+0, -0x1.6fe50b6f1eafap-7, -0x1.6e79685c160d5p-6,
+ -0x1.11cd1d51955bap-5, -0x1.6bad37591e03p-5, -0x1.c4dfab908ddb5p-5,
+ -0x1.0eb389fab4795p-4, -0x1.3aa2fdd26ae99p-4, -0x1.663f6faca846bp-4,
+ -0x1.918a16e4cb157p-4, -0x1.bc84240a78a13p-4, -0x1.e72ec1181cfb1p-4,
+ -0x1.08c588cd964e4p-3, -0x1.1dcd19759f2e3p-3, -0x1.32ae9e27627c6p-3,
+ -0x1.476a9f989a58ap-3, -0x1.5c01a39fa6533p-3, -0x1.70742d4eed455p-3,
+ -0x1.84c2bd02d6434p-3, -0x1.98edd077e9f0ap-3, -0x1.acf5e2db31eeap-3,
+ -0x1.c0db6cddaa82dp-3, -0x1.d49ee4c33121ap-3, -0x1.e840be751d775p-3,
+ -0x1.fbc16b9003e0bp-3, -0x1.0790adbae3fcp-2, -0x1.11307dad465b5p-2,
+ -0x1.1ac05b2924cc5p-2, -0x1.24407ab0cc41p-2, -0x1.2db10fc4ea424p-2,
+ -0x1.37124cea58697p-2, -0x1.406463b1d455dp-2, -0x1.49a784bcbaa37p-2,
+ -0x1.52dbdfc4f341dp-2, -0x1.5c01a39ff2c9bp-2, -0x1.6518fe46abaa5p-2,
+ -0x1.6e221cd9d6933p-2, -0x1.771d2ba7f5791p-2, -0x1.800a56315ee2ap-2,
+ -0x1.88e9c72df8611p-2, -0x1.91bba891d495fp-2, -0x1.9a8023920fa4dp-2,
+ -0x1.a33760a7fbca6p-2, -0x1.abe18797d2effp-2, -0x1.b47ebf734b923p-2,
+ -0x1.bd0f2e9eb2b84p-2, -0x1.c592fad2be1aap-2, -0x1.ce0a4923cf5e6p-2,
+ -0x1.d6753e02f4ebcp-2, -0x1.ded3fd445afp-2, -0x1.e726aa1e558fep-2,
+ -0x1.ef6d67325ba38p-2, -0x1.f7a8568c8aea6p-2, -0x1.ffd799a81be87p-2,
+ 0x1.f804ae8d33c4p-2, 0x1.efec61b04af4ep-2, 0x1.e7df5fe572606p-2,
+ 0x1.dfdd89d5b0009p-2, 0x1.d7e6c0abbd924p-2, 0x1.cffae611a74d6p-2,
+ 0x1.c819dc2d8578cp-2, 0x1.c043859e5bdbcp-2, 0x1.b877c57b47c04p-2,
+ 0x1.b0b67f4f29a66p-2, 0x1.a8ff97183ed07p-2, 0x1.a152f14293c74p-2,
+ 0x1.99b072a9289cap-2, 0x1.921800927e284p-2, 0x1.8a8980ac4113p-2,
+ 0x1.8304d90c2859dp-2, 0x1.7b89f02cbd49ap-2, 0x1.7418aceb84ab1p-2,
+ 0x1.6cb0f68656c95p-2, 0x1.6552b49993dc2p-2, 0x1.5dfdcf1eacd7bp-2,
+ 0x1.56b22e6b97c18p-2, 0x1.4f6fbb2ce6943p-2, 0x1.48365e6957b42p-2,
+ 0x1.4106017c0dbcfp-2, 0x1.39de8e15727d9p-2, 0x1.32bfee37489bcp-2,
+ 0x1.2baa0c34989c3p-2, 0x1.249cd2b177fd5p-2, 0x1.1d982c9d50468p-2,
+ 0x1.169c0536677acp-2, 0x1.0fa848045f67bp-2, 0x1.08bce0d9a7c6p-2,
+ 0x1.01d9bbcf66a2cp-2, 0x1.f5fd8a90e2d85p-3, 0x1.e857d3d3af1e5p-3,
+ 0x1.dac22d3ec5f4ep-3, 0x1.cd3c712db459ap-3, 0x1.bfc67a7ff3c22p-3,
+ 0x1.b2602497678f4p-3, 0x1.a5094b555a1f8p-3, 0x1.97c1cb136b96fp-3,
+ 0x1.8a8980ac8652dp-3, 0x1.7d60496c83f66p-3, 0x1.7046031c7cdafp-3,
+ 0x1.633a8bf460335p-3, 0x1.563dc2a08b102p-3, 0x1.494f863bbc1dep-3,
+ 0x1.3c6fb6507a37ep-3, 0x1.2f9e32d5257ecp-3, 0x1.22dadc2a627efp-3,
+ 0x1.1625931802e49p-3, 0x1.097e38cef9519p-3, 0x1.f9c95dc138295p-4,
+ 0x1.e0b1ae90505f6p-4, 0x1.c7b528b5fcffap-4, 0x1.aed391abb17a1p-4,
+ 0x1.960caf9bd35eap-4, 0x1.7d60496e3edebp-4, 0x1.64ce26bf2108ep-4,
+ 0x1.4c560fe5b573bp-4, 0x1.33f7cde24adfbp-4, 0x1.1bb32a5ed9353p-4,
+ 0x1.0387efbd3006ep-4, 0x1.d6ebd1f1d0955p-5, 0x1.a6f9c37a8beabp-5,
+ 0x1.77394c9d6762cp-5, 0x1.47aa07358e1a4p-5, 0x1.184b8e4d490efp-5,
+ 0x1.d23afc4d95c78p-6, 0x1.743ee8678a7cbp-6, 0x1.16a21e243bf78p-6,
+ 0x1.72c7ba20c907ep-7, 0x1.720d9c0536e17p-8, 0x0p+0
+ };
+
+ double z = x;
+ uint32_t ux = asuint (x);
+ uint32_t ax = ux & (~0u >> 1);
+ if (__glibc_unlikely (ux >= 0x17fu << 23))
+ { /* x <= -1 */
+ if (ux == (0x17fu << 23))
+ return __math_divzerof (1);
+ if (ux > (0x1ffu << 23))
+ return x + x; /* nan */
+ return __math_invalidf (x);
+ }
+ else if (__glibc_unlikely (ax >= (0xff << 23)))
+ { /* +inf, nan */
+ if (ax > (0xff << 23))
+ return x + x; /* nan */
+ return INFINITY;
+ }
+ else if (__glibc_likely (ax < 0x3cb7aa26u))
+ { /* |x| < 0x1.6f544cp-6 */
+ double z2 = z * z, z4 = z2 * z2;
+ if ( __glibc_likely (ax < 0x3b9d9d34u))
+ { /* |x| < 0x1.3b3a68p-8 */
+ if (__glibc_likely (ax < 0x39638a7eu))
+ { /* |x| < 0x1.c714fcp-13 */
+ if (__glibc_likely (ax < 0x329c5639u))
+ { /* |x| < 0x1.38ac72p-26 */
+ static const double c[] =
+ {
+ 0x1.71547652b82fep+0, -0x1.71547652b82ffp-1
+ };
+ return z * (c[0] + z * c[1]);
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0x32ff7045u))
+ return 0x1.70851ap-25f - 0x1.8p-80f;
+ if (__glibc_unlikely (ux == 0xb395efbbu))
+ return -0x1.b0a00ap-24f + 0x1p-76f;
+ if (__glibc_unlikely (ux == 0x35a14df7u))
+ return 0x1.d16d2p-20f + 0x1p-72f;
+ if (__glibc_unlikely (ux == 0x3841cb81u))
+ return 0x1.17949ep-14f + 0x1p-67f;
+ static const double c[] =
+ {
+ 0x1.71547652b82fep+0, -0x1.71547652b82fdp-1,
+ 0x1.ec709ead0c9a7p-2, -0x1.7154773c1cb29p-2
+ };
+ return z * ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3]));
+ }
+ }
+ else
+ {
+ if (__glibc_unlikely (ux == 0xbac9363du))
+ return -0x1.2282aap-9f + 0x1p-61f;
+ static const double c[] =
+ {
+ 0x1.71547652b82fep+0, -0x1.71547652b83p-1,
+ 0x1.ec709dc28f51bp-2, -0x1.7154765157748p-2,
+ 0x1.2778a510a3682p-2, -0x1.ec745df1551fcp-3
+ };
+ return z
+ * ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3])
+ + z4 * ((c[4] + z * c[5])));
+ }
+ }
+ else
+ {
+ static const double c[] =
+ {
+ 0x1.71547652b82fep+0, -0x1.71547652b82fbp-1,
+ 0x1.ec709dc3b6a73p-2, -0x1.71547652dc09p-2,
+ 0x1.2776c1a88901p-2, -0x1.ec7095bd4d208p-3,
+ 0x1.a66bec7fc8f7p-3, -0x1.71a900fc3f3f9p-3
+ };
+ return z
+ * ((c[0] + z * c[1]) + z2 * (c[2] + z * c[3])
+ + z4 * ((c[4] + z * c[5]) + z2 * (c[6] + z * c[7])));
+ }
+ }
+ else
+ { /* |x| >= 0x1.6f544cp-6 */
+ float h, l;
+ /* With gcc 6.3.0, if we return 0x1.e90026p+4f + 0x1.fp-21
+ in the second exceptional case, with rounding up it yields
+ 0x1.e90026p+4 which is incorrect, thus we use this workaround. See
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112367. */
+ if (__glibc_unlikely (ux == 0x52928e33u))
+ {
+ h = 0x1.318ffap+5f;
+ l = 0x1.fp-20f;
+ return h + l;
+ }
+ if (__glibc_unlikely (ux == 0x4ebd09e3u))
+ {
+ h = 0x1.e90026p+4f;
+ l = 0x1.fp-21;
+ return h + l;
+ }
+ uint64_t tp = asuint64 (z + 1.0);
+ uint64_t m = tp & (~(uint64_t) 0 >> 12);
+ int e = (tp >> 52) - 0x3ff;
+ int j = (m + ((int64_t) 1 << (52 - 8))) >> (52 - 7), k = j > 53;
+ e += k;
+ double xd = asdouble (m | (uint64_t) 0x3ff << 52);
+ z = fma (xd, ix[j], -1.0);
+ static const double c[] =
+ {
+ 0x1.71547652b82fep+0, -0x1.71547652b82ffp-1, 0x1.ec709dc32988bp-2,
+ -0x1.715476521ec2bp-2, 0x1.277801a1ad904p-2, -0x1.ec731704d6a88p-3
+ };
+ double z2 = z * z;
+ double c0 = c[0] + z * c[1];
+ double c2 = c[2] + z * c[3];
+ double c4 = c[4] + z * c[5];
+ c0 += z2 * (c2 + z2 * c4);
+ return (z * c0 - lix[j]) + e;
+ }
+}
+libm_alias_float (__log2p1, log2p1)
diff --git a/sysdeps/ieee754/flt-32/s_lrintf.c b/sysdeps/ieee754/flt-32/s_lrintf.c
index 4322845..079bc5d 100644
--- a/sysdeps/ieee754/flt-32/s_lrintf.c
+++ b/sysdeps/ieee754/flt-32/s_lrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_lroundf.c b/sysdeps/ieee754/flt-32/s_lroundf.c
index 5db84b5..117e98d 100644
--- a/sysdeps/ieee754/flt-32/s_lroundf.c
+++ b/sysdeps/ieee754/flt-32/s_lroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_modff.c b/sysdeps/ieee754/flt-32/s_modff.c
index ad2e91d..965136b 100644
--- a/sysdeps/ieee754/flt-32/s_modff.c
+++ b/sysdeps/ieee754/flt-32/s_modff.c
@@ -1,54 +1,69 @@
-/* s_modff.c -- float version of s_modf.c.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Extract signed integral and fractional values.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <libm-alias-float.h>
-
-static const float one = 1.0;
+#include "math_config.h"
+#include <math-use-builtins-trunc.h>
float
-__modff(float x, float *iptr)
+__modff (float x, float *iptr)
{
- int32_t i0,j0;
- uint32_t i;
- GET_FLOAT_WORD(i0,x);
- j0 = ((i0>>23)&0xff)-0x7f; /* exponent of x */
- if(__builtin_expect(j0<23, 1)) { /* integer part in x */
- if(j0<0) { /* |x|<1 */
- SET_FLOAT_WORD(*iptr,i0&0x80000000); /* *iptr = +-0 */
- return x;
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) { /* x is integral */
- uint32_t ix;
- *iptr = x;
- GET_FLOAT_WORD(ix,x);
- SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */
- return x;
- } else {
- SET_FLOAT_WORD(*iptr,i0&(~i));
- return x - *iptr;
- }
- }
- } else { /* no fraction part */
- *iptr = x*one;
- /* We must handle NaNs separately. */
- if (j0 == 0x80 && (i0 & 0x7fffff))
- return x*one;
- SET_FLOAT_WORD(x,i0&0x80000000); /* return +-0 */
- return x;
+ uint32_t t = asuint (x);
+#if USE_TRUNCF_BUILTIN
+ if (is_inf (t))
+ {
+ *iptr = x;
+ return copysignf (0.0, x);
+ }
+ *iptr = truncf (x);
+ return copysignf (x - *iptr, x);
+#else
+ int e = get_exponent (t);
+ /* No fraction part. */
+ if (e < MANTISSA_WIDTH)
+ {
+ if (e < 0)
+ {
+ /* |x|<1 -> *iptr = +-0 */
+ *iptr = asfloat (t & SIGN_MASK);
+ return x;
}
+
+ uint32_t i = MANTISSA_MASK >> e;
+ if ((t & i) == 0)
+ {
+ /* x in integral, return +-0 */
+ *iptr = x;
+ return asfloat (t & SIGN_MASK);
+ }
+
+ *iptr = asfloat (t & ~i);
+ return x - *iptr;
+ }
+
+ /* Set invalid operation for sNaN. */
+ *iptr = x * 1.0f;
+ if ((e == 0x80) && (t & MANTISSA_MASK))
+ return *iptr;
+ return asfloat (t & SIGN_MASK);
+#endif
}
+#ifndef __modff
libm_alias_float (__modf, modf)
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_nextupf.c b/sysdeps/ieee754/flt-32/s_nextupf.c
index fd9cf41..251ab0d 100644
--- a/sysdeps/ieee754/flt-32/s_nextupf.c
+++ b/sysdeps/ieee754/flt-32/s_nextupf.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_remquof.c b/sysdeps/ieee754/flt-32/s_remquof.c
index 8156128..f813da8 100644
--- a/sysdeps/ieee754/flt-32/s_remquof.c
+++ b/sysdeps/ieee754/flt-32/s_remquof.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_roundevenf.c b/sysdeps/ieee754/flt-32/s_roundevenf.c
index 3875c95..2981f36 100644
--- a/sysdeps/ieee754/flt-32/s_roundevenf.c
+++ b/sysdeps/ieee754/flt-32/s_roundevenf.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_roundf.c b/sysdeps/ieee754/flt-32/s_roundf.c
index 2986757..eb714e9 100644
--- a/sysdeps/ieee754/flt-32/s_roundf.c
+++ b/sysdeps/ieee754/flt-32/s_roundf.c
@@ -1,5 +1,5 @@
/* Round float to integer away from zero.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_setpayloadf_main.c b/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
index 9630606..700181c 100644
--- a/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
+++ b/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_signbitf.c b/sysdeps/ieee754/flt-32/s_signbitf.c
index 9bc9830..47616d9 100644
--- a/sysdeps/ieee754/flt-32/s_signbitf.c
+++ b/sysdeps/ieee754/flt-32/s_signbitf.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_sincosf.c b/sysdeps/ieee754/flt-32/s_sincosf.c
index fed12da..99cb504 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf.c
+++ b/sysdeps/ieee754/flt-32/s_sincosf.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_sincosf.h b/sysdeps/ieee754/flt-32/s_sincosf.h
index 7c0b738..0e6dae6 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf.h
+++ b/sysdeps/ieee754/flt-32/s_sincosf.h
@@ -1,5 +1,5 @@
/* Used by sinf, cosf and sincosf functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_sincosf_data.c b/sysdeps/ieee754/flt-32/s_sincosf_data.c
index 4a52ec8..a46b503 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf_data.c
+++ b/sysdeps/ieee754/flt-32/s_sincosf_data.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_sincospif_data.c b/sysdeps/ieee754/flt-32/s_sincospif_data.c
new file mode 100644
index 0000000..7fa75e0
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_sincospif_data.c
@@ -0,0 +1,80 @@
+/* Common data for sinpif/cospif implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (src/binary32/sinpi/sinpif.c, revision f786e13).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+const double __sincospi_sn[] =
+ {
+ 0x1.921fb54442d0fp-37, -0x1.4abbce6102b94p-112, 0x1.4669fa3c58463p-189
+ };
+const double __sincospi_cn[] =
+ {
+ -0x1.3bd3cc9be45cfp-74, 0x1.03c1f08088742p-150, -0x1.55d1e5eff55a5p-228
+ };
+const double __sincospi_S[] =
+ {
+ 0x0p+0, 0x1.91f65f10dd814p-5, 0x1.917a6bc29b42cp-4,
+ 0x1.2c8106e8e613ap-3, 0x1.8f8b83c69a60bp-3, 0x1.f19f97b215f1bp-3,
+ 0x1.294062ed59f06p-2, 0x1.58f9a75ab1fddp-2, 0x1.87de2a6aea963p-2,
+ 0x1.b5d1009e15ccp-2, 0x1.e2b5d3806f63bp-2, 0x1.073879922ffeep-1,
+ 0x1.1c73b39ae68c8p-1, 0x1.30ff7fce17035p-1, 0x1.44cf325091dd6p-1,
+ 0x1.57d69348cecap-1, 0x1.6a09e667f3bcdp-1, 0x1.7b5df226aafafp-1,
+ 0x1.8bc806b151741p-1, 0x1.9b3e047f38741p-1, 0x1.a9b66290ea1a3p-1,
+ 0x1.b728345196e3ep-1, 0x1.c38b2f180bdb1p-1, 0x1.ced7af43cc773p-1,
+ 0x1.d906bcf328d46p-1, 0x1.e212104f686e5p-1, 0x1.e9f4156c62ddap-1,
+ 0x1.f0a7efb9230d7p-1, 0x1.f6297cff75cbp-1, 0x1.fa7557f08a517p-1,
+ 0x1.fd88da3d12526p-1, 0x1.ff621e3796d7ep-1, 0x1p+0,
+ 0x1.ff621e3796d7ep-1, 0x1.fd88da3d12526p-1, 0x1.fa7557f08a517p-1,
+ 0x1.f6297cff75cbp-1, 0x1.f0a7efb9230d7p-1, 0x1.e9f4156c62ddap-1,
+ 0x1.e212104f686e5p-1, 0x1.d906bcf328d46p-1, 0x1.ced7af43cc773p-1,
+ 0x1.c38b2f180bdb1p-1, 0x1.b728345196e3ep-1, 0x1.a9b66290ea1a3p-1,
+ 0x1.9b3e047f38741p-1, 0x1.8bc806b151741p-1, 0x1.7b5df226aafafp-1,
+ 0x1.6a09e667f3bcdp-1, 0x1.57d69348cecap-1, 0x1.44cf325091dd6p-1,
+ 0x1.30ff7fce17035p-1, 0x1.1c73b39ae68c8p-1, 0x1.073879922ffeep-1,
+ 0x1.e2b5d3806f63bp-2, 0x1.b5d1009e15ccp-2, 0x1.87de2a6aea963p-2,
+ 0x1.58f9a75ab1fddp-2, 0x1.294062ed59f06p-2, 0x1.f19f97b215f1bp-3,
+ 0x1.8f8b83c69a60bp-3, 0x1.2c8106e8e613ap-3, 0x1.917a6bc29b42cp-4,
+ 0x1.91f65f10dd814p-5, 0x0p+0, -0x1.91f65f10dd814p-5,
+ -0x1.917a6bc29b42cp-4, -0x1.2c8106e8e613ap-3, -0x1.8f8b83c69a60bp-3,
+ -0x1.f19f97b215f1bp-3, -0x1.294062ed59f06p-2, -0x1.58f9a75ab1fddp-2,
+ -0x1.87de2a6aea963p-2, -0x1.b5d1009e15ccp-2, -0x1.e2b5d3806f63bp-2,
+ -0x1.073879922ffeep-1, -0x1.1c73b39ae68c8p-1, -0x1.30ff7fce17035p-1,
+ -0x1.44cf325091dd6p-1, -0x1.57d69348cecap-1, -0x1.6a09e667f3bcdp-1,
+ -0x1.7b5df226aafafp-1, -0x1.8bc806b151741p-1, -0x1.9b3e047f38741p-1,
+ -0x1.a9b66290ea1a3p-1, -0x1.b728345196e3ep-1, -0x1.c38b2f180bdb1p-1,
+ -0x1.ced7af43cc773p-1, -0x1.d906bcf328d46p-1, -0x1.e212104f686e5p-1,
+ -0x1.e9f4156c62ddap-1, -0x1.f0a7efb9230d7p-1, -0x1.f6297cff75cbp-1,
+ -0x1.fa7557f08a517p-1, -0x1.fd88da3d12526p-1, -0x1.ff621e3796d7ep-1,
+ -0x1p+0, -0x1.ff621e3796d7ep-1, -0x1.fd88da3d12526p-1,
+ -0x1.fa7557f08a517p-1, -0x1.f6297cff75cbp-1, -0x1.f0a7efb9230d7p-1,
+ -0x1.e9f4156c62ddap-1, -0x1.e212104f686e5p-1, -0x1.d906bcf328d46p-1,
+ -0x1.ced7af43cc773p-1, -0x1.c38b2f180bdb1p-1, -0x1.b728345196e3ep-1,
+ -0x1.a9b66290ea1a3p-1, -0x1.9b3e047f38741p-1, -0x1.8bc806b151741p-1,
+ -0x1.7b5df226aafafp-1, -0x1.6a09e667f3bcdp-1, -0x1.57d69348cecap-1,
+ -0x1.44cf325091dd6p-1, -0x1.30ff7fce17035p-1, -0x1.1c73b39ae68c8p-1,
+ -0x1.073879922ffeep-1, -0x1.e2b5d3806f63bp-2, -0x1.b5d1009e15ccp-2,
+ -0x1.87de2a6aea963p-2, -0x1.58f9a75ab1fddp-2, -0x1.294062ed59f06p-2,
+ -0x1.f19f97b215f1bp-3, -0x1.8f8b83c69a60bp-3, -0x1.2c8106e8e613ap-3,
+ -0x1.917a6bc29b42cp-4, -0x1.91f65f10dd814p-5
+ };
diff --git a/sysdeps/ieee754/flt-32/s_sincospif_data.h b/sysdeps/ieee754/flt-32/s_sincospif_data.h
new file mode 100644
index 0000000..d09e238
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_sincospif_data.h
@@ -0,0 +1,37 @@
+/* Common data for sinpif/cospif implementations.
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (src/binary32/sinpi/sinpif.c, revision f786e13).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef _SINCOSPIF_H
+#define _SINCOSPIF_H
+
+extern const double __sincospi_sn[] attribute_hidden;
+#define SN __sincospi_sn
+extern const double __sincospi_cn[] attribute_hidden;
+#define CN __sincospi_cn
+extern const double __sincospi_S[] attribute_hidden;
+#define S __sincospi_S
+
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_sinf.c b/sysdeps/ieee754/flt-32/s_sinf.c
index 36e0626..032af46 100644
--- a/sysdeps/ieee754/flt-32/s_sinf.c
+++ b/sysdeps/ieee754/flt-32/s_sinf.c
@@ -1,5 +1,5 @@
/* Compute sine of argument.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_sinpif.c b/sysdeps/ieee754/flt-32/s_sinpif.c
new file mode 100644
index 0000000..c0d15e7
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_sinpif.c
@@ -0,0 +1,80 @@
+/* Correctly-rounded sine of binary32 value for angles in half-revolutions
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (src/binary32/sinpi/sinpif.c, revision bbfabd99.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <math.h>
+#include <stdint.h>
+#include <errno.h>
+#include <fenv.h>
+#include <libm-alias-float.h>
+#include "s_sincospif_data.h"
+#include "math_config.h"
+
+float
+__sinpif (float x)
+{
+ uint32_t ix = asuint (x);
+ int32_t e = (ix >> 23) & 0xff;
+ if (__glibc_unlikely (e == 0xff))
+ {
+ if (!(ix << 9))
+ return __math_invalidf (x);
+ return x + x; /* nan */
+ }
+ int32_t m = (ix & ~0u >> 9) | 1 << 23, sgn = ix;
+ sgn >>= 31;
+ m = (m ^ sgn) - sgn;
+ int32_t s = 143 - e;
+ if (__glibc_unlikely (s < 0))
+ {
+ if (__glibc_unlikely (s < -6))
+ return copysignf (0.0f, x);
+ int32_t iq = (uint32_t)m << (-s - 1);
+ iq &= 127;
+ if (iq == 0 || iq == 64)
+ return copysignf (0.0f, x);
+ return S[iq];
+ }
+ else if (__glibc_unlikely (s > 30))
+ {
+ double z = x, z2 = z * z;
+ return z * (0x1.921fb54442d18p+1 + z2 * (-0x1.4abbce625be53p+2));
+ }
+ int32_t si = 25 - s;
+ if (__glibc_unlikely (si >= 0 && ((uint32_t)m << si) == 0))
+ return copysignf (0.0f, x);
+
+ int32_t k = (uint32_t)m << (31 - s);
+ double z = k, z2 = z * z;
+ double fs = SN[0] + z2 * (SN[1] + z2 * SN[2]);
+ double fc = CN[0] + z2 * (CN[1] + z2 * CN[2]);
+ uint32_t iq = m >> s;
+ iq = (iq + 1) >> 1;
+ uint32_t is = iq & 127, ic = (iq + 32) & 127;
+ double ts = S[is], tc = S[ic];
+ double r = ts + (ts * z2) * fc + (tc * z) * fs;
+ return r;
+}
+libm_alias_float (__sinpi, sinpi)
diff --git a/sysdeps/ieee754/flt-32/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c
index ae6600b..5ee1d6f 100644
--- a/sysdeps/ieee754/flt-32/s_tanf.c
+++ b/sysdeps/ieee754/flt-32/s_tanf.c
@@ -1,76 +1,180 @@
-/* s_tanf.c -- float version of s_tan.c.
- */
+/* Correctly-rounded tangent of binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_tanf.c,v 1.4 1995/05/10 20:48:20 jtc Exp $";
-#endif
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/tan/tanf.c, revision 59d21d7).
-#include <errno.h>
-#include <math.h>
-#include <math_private.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <array_length.h>
+#include <stdint.h>
#include <libm-alias-float.h>
-#include "s_sincosf.h"
+#include "math_config.h"
+#include <math_uint128.h>
-/* Reduce range of X to a multiple of PI/2. The modulo result is between
- -PI/4 and PI/4 and returned as a high part y[0] and a low part y[1].
- The low bit in the return value indicates the first or 2nd half of tanf. */
-static inline int32_t
-rem_pio2f (float x, float *y)
+/* argument reduction
+ for |z| < 2^28, return r such that 2/pi*x = q + r */
+static inline double
+rltl (float z, int *q)
{
- double dx = x;
- int n;
- const sincos_t *p = &__sincosf_table[0];
+ double x = z;
+ double idl = -0x1.b1bbead603d8bp-32 * x;
+ double idh = 0x1.45f306ep-1 * x;
+ double id = roundeven_finite (idh);
+ *q = (int64_t) id;
+ return (idh - id) + idl;
+}
- if (__glibc_likely (abstop12 (x) < abstop12 (120.0f)))
- dx = reduce_fast (dx, p, &n);
- else
+/* argument reduction
+ same as rltl, but for |x| >= 2^28 */
+static double __attribute__ ((noinline))
+rbig (uint32_t u, int *q)
+{
+ static const uint64_t ipi[] =
{
- uint32_t xi = asuint (x);
- int sign = xi >> 31;
-
- dx = reduce_large (xi, &n);
- dx = sign ? -dx : dx;
+ 0xfe5163abdebbc562, 0xdb6295993c439041,
+ 0xfc2757d1f534ddc0, 0xa2f9836e4e441529
+ };
+ int e = (u >> 23) & 0xff, i;
+ uint64_t m = (u & (~0u >> 9)) | 1 << 23;
+ u128 p0 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[0]));
+ u128 p1 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[1]));
+ p1 = u128_add (p1, u128_rshift (p0, 64));
+ u128 p2 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[2]));
+ p2 = u128_add (p2, u128_rshift (p1, 64));
+ u128 p3 = u128_mul (u128_from_u64 (m), u128_from_u64 (ipi[3]));
+ p3 = u128_add (p3, u128_rshift (p2, 64));
+ uint64_t p3h = u128_high (p3);
+ uint64_t p3l = u128_low (p3);
+ uint64_t p2l = u128_low (p2);
+ uint64_t p1l = u128_low (p1);
+ int64_t a;
+ int k = e - 127, s = k - 23;
+ /* in ctanf(), rbig() is called in the case 127+28 <= e < 0xff
+ thus 155 <= e <= 254, which yields 28 <= k <= 127 and 5 <= s <= 104 */
+ if (s < 64)
+ {
+ i = p3h << s | p3l >> (64 - s);
+ a = p3l << s | p2l >> (64 - s);
}
-
- y[0] = dx;
- y[1] = dx - y[0];
- return n;
+ else if (s == 64)
+ {
+ i = p3l;
+ a = p2l;
+ }
+ else
+ { /* s > 64 */
+ i = p3l << (s - 64) | p2l >> (128 - s);
+ a = p2l << (s - 64) | p1l >> (128 - s);
+ }
+ int sgn = u;
+ sgn >>= 31;
+ int64_t sm = a >> 63;
+ i -= sm;
+ double z = (a ^ sgn) * 0x1p-64;
+ i = (i ^ sgn) - sgn;
+ *q = i;
+ return z;
}
-float __tanf(float x)
+float
+__tanf (float x)
{
- float y[2],z=0.0;
- int32_t n, ix;
-
- GET_FLOAT_WORD(ix,x);
-
- /* |x| ~< pi/4 */
- ix &= 0x7fffffff;
- if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1);
-
- /* tan(Inf or NaN) is NaN */
- else if (ix>=0x7f800000) {
- if (ix==0x7f800000)
- __set_errno (EDOM);
- return x-x; /* NaN */
+ uint32_t t = asuint (x);
+ int e = (t >> 23) & 0xff;
+ int i;
+ double z;
+ if (__glibc_likely (e < 127 + 28)) /* |x| < 2^28 */
+ {
+ if (__glibc_unlikely (e < 115))
+ {
+ if (__glibc_unlikely (e < 102))
+ return fmaf (x, fabsf (x), x);
+ float x2 = x * x;
+ return fmaf (x, 0x1.555556p-2f * x2, x);
}
-
- /* argument reduction needed */
- else {
- n = rem_pio2f(x,y);
- return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
- -1 -- n odd */
+ z = rltl (x, &i);
+ }
+ else if (e < 0xff)
+ z = rbig (t, &i);
+ else
+ {
+ if (t << 9)
+ return x + x; /* nan */
+ return __math_invalidf (x);
+ }
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ static const double cn[] =
+ {
+ 0x1.921fb54442d18p+0, -0x1.fd226e573289fp-2,
+ 0x1.b7a60c8dac9f6p-6, -0x1.725beb40f33e5p-13
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, -0x1.2395347fb829dp+0,
+ 0x1.2313660f29c36p-3, -0x1.9a707ab98d1c1p-9
+ };
+ static const double s[] = { 0, 1 };
+ double n = cn[0] + z2 * cn[1];
+ double n2 = cn[2] + z2 * cn[3];
+ n += z4 * n2;
+ double d = cd[0] + z2 * cd[1];
+ double d2 = cd[2] + z2 * cd[3];
+ d += z4 * d2;
+ n *= z;
+ double s0 = s[i & 1];
+ double s1 = s[1 - (i & 1)];
+ double r1 = (n * s1 - d * s0) / (n * s0 + d * s1);
+ uint64_t tail = (asuint64 (r1) + 7) & (~UINT64_C(0) >> 35);
+ if (__glibc_unlikely (tail <= 14))
+ {
+ static const struct
+ {
+ float arg;
+ float rh;
+ float rl;
+ } st[] = {
+ { 0x1.143ec4p+0f, 0x1.ddf9f6p+0f, -0x1.891d24p-52f },
+ { 0x1.ada6aap+27f, 0x1.e80304p-3f, 0x1.419f46p-58f },
+ { 0x1.af61dap+48f, 0x1.60d1c8p-2f, -0x1.2d6c3ap-55f },
+ { 0x1.0088bcp+52f, 0x1.ca1edp+0f, 0x1.f6053p-53f },
+ { 0x1.f90dfcp+72f, 0x1.597f9cp-1f, 0x1.925978p-53f },
+ { 0x1.cc4e22p+85f, -0x1.f33584p+1f, 0x1.d7254ap-51f },
+ { 0x1.a6ce12p+86f, -0x1.c5612ep-1f, -0x1.26c33ep-53f },
+ { 0x1.6a0b76p+102f, -0x1.e42a1ep+0f, -0x1.1dc906p-52f },
+ };
+ uint32_t ax = t & (~0u >> 1);
+ uint32_t sgn = t >> 31;
+ for (int j = 0; j < array_length (st); j++)
+ {
+ if (__glibc_unlikely (asuint (st[j].arg) == ax))
+ {
+ if (sgn)
+ return -st[j].rh - st[j].rl;
+ else
+ return st[j].rh + st[j].rl;
+ }
}
+ }
+ return r1;
}
libm_alias_float (__tan, tan)
diff --git a/sysdeps/ieee754/flt-32/s_tanhf.c b/sysdeps/ieee754/flt-32/s_tanhf.c
index 2c12f04..e07f358 100644
--- a/sysdeps/ieee754/flt-32/s_tanhf.c
+++ b/sysdeps/ieee754/flt-32/s_tanhf.c
@@ -1,63 +1,90 @@
-/* s_tanhf.c -- float version of s_tanh.c.
- */
+/* Correctly-rounded hyperbolic tangent function for binary32 value.
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+Copyright (c) 2022-2024 Alexei Sibidanov.
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_tanhf.c,v 1.4 1995/05/10 20:48:24 jtc Exp $";
-#endif
+The original version of this file was copied from the CORE-MATH
+project (file src/binary32/tanh/tanhf.c, revision b1ecd83).
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
-#include <libm-alias-float.h>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-static const float one=1.0, two=2.0, tiny = 1.0e-30;
-
-float __tanhf(float x)
-{
- float t,z;
- int32_t jx,ix;
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
- GET_FLOAT_WORD(jx,x);
- ix = jx&0x7fffffff;
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
- /* x is INF or NaN */
- if(ix>=0x7f800000) {
- if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */
- else return one/x-one; /* tanh(NaN) = NaN */
- }
+#include <math.h>
+#include <stdint.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
- /* |x| < 22 */
- if (ix < 0x41b00000) { /* |x|<22 */
- if (ix == 0)
- return x; /* x == +-0 */
- if (ix<0x24000000) /* |x|<2**-55 */
- {
- math_check_force_underflow (x);
- return x*(one+x); /* tanh(small) = small */
- }
- if (ix>=0x3f800000) { /* |x|>=1 */
- t = __expm1f(two*fabsf(x));
- z = one - two/(t+two);
- } else {
- t = __expm1f(-two*fabsf(x));
- z= -t/(t+two);
- }
- /* |x| > 22, return +-1 */
- } else {
- z = one - tiny; /* raised inexact flag */
+float
+__tanhf (float x)
+{
+ double z = x;
+ uint32_t ux = asuint (x);
+ int e = (ux >> 23) & 0xff;
+ if (__glibc_unlikely (e == 0xff))
+ {
+ if (ux << 9)
+ return x + x; /* x = nan */
+ static const float ir[] = { 1.0f, -1.0f };
+ return ir[ux >> 31]; /* x = +-inf */
+ }
+ if (__glibc_unlikely (e < 115))
+ {
+ if (__glibc_unlikely (e < 102))
+ {
+ if (__glibc_unlikely ((ux << 1) == 0))
+ return x;
+ return fmaf (-x, fabsf (x), x);
}
- return (jx>=0)? z: -z;
+ float x2 = x * x;
+ return fmaf (x, -0x1.555556p-2f * x2, x);
+ }
+ if ((ux << 1) > (0x41102cb3u << 1))
+ return copysignf (1.0f, x) - copysignf (0x1p-25f, x);
+ double z2 = z * z;
+ double z4 = z2 * z2;
+ double z8 = z4 * z4;
+ static const double cn[] =
+ {
+ 0x1p+0, 0x1.30877b8b72d33p-3, 0x1.694aa09ae9e5ep-8,
+ 0x1.4101377abb729p-14, 0x1.e0392b1db0018p-22, 0x1.2533756e546f7p-30,
+ 0x1.d62e5abe6ae8ap-41, 0x1.b06be534182dep-54
+ };
+ static const double cd[] =
+ {
+ 0x1p+0, 0x1.ed99131b0ebeap-2, 0x1.0d27ed6c95a69p-5,
+ 0x1.7cbdaca0e9fccp-11, 0x1.b4e60b892578ep-18, 0x1.a6f707c5c71abp-26,
+ 0x1.35a8b6e2cd94cp-35, 0x1.ca8230677aa01p-47
+ };
+ double n0 = cn[0] + z2 * cn[1];
+ double n2 = cn[2] + z2 * cn[3];
+ double n4 = cn[4] + z2 * cn[5];
+ double n6 = cn[6] + z2 * cn[7];
+ n0 += z4 * n2;
+ n4 += z4 * n6;
+ n0 += z8 * n4;
+ double d0 = cd[0] + z2 * cd[1];
+ double d2 = cd[2] + z2 * cd[3];
+ double d4 = cd[4] + z2 * cd[5];
+ double d6 = cd[6] + z2 * cd[7];
+ d0 += z4 * d2;
+ d4 += z4 * d6;
+ d0 += z8 * d4;
+ double r = z * n0 / d0;
+ return r;
}
libm_alias_float (__tanh, tanh)
diff --git a/sysdeps/ieee754/flt-32/s_tanpif.c b/sysdeps/ieee754/flt-32/s_tanpif.c
new file mode 100644
index 0000000..a268549
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_tanpif.c
@@ -0,0 +1,90 @@
+/* Correctly-rounded tangent of binary32 value for angles in half-revolutions
+
+Copyright (c) 2022-2025 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (src/binary32/tanpi/tanpif.c, revision 3bbf907).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+#include <stdint.h>
+#include <errno.h>
+#include <libm-alias-float.h>
+#include "math_config.h"
+
+float
+__tanpif (float x)
+{
+ uint32_t ix = asuint (x);
+ uint32_t e = ix & (0xff << 23);
+ if (__glibc_unlikely (e > (150 << 23))) /* |x| > 2^23 */
+ {
+ if (e == (0xff << 23)) /* x = nan or inf */
+ {
+ if (!(ix << 9)) /* x = inf */
+ return __math_invalidf (x);
+ return x + x; /* x = nan */
+ }
+ return copysign (0.0f, x);
+ }
+ float x4 = 4.0f * x;
+ float nx4 = roundevenf_finite (x4);
+ float dx4 = x4 - nx4;
+ float ni = roundevenf_finite (x);
+ float zf = x - ni;
+ if (__glibc_unlikely (dx4 == 0.0f)) /* 4*x integer */
+ {
+ int k = x4;
+ if (k & 1)
+ return copysignf (1.0f, zf); /* x = 1/4 mod 1/2 */
+ k &= 7;
+ if (k == 0)
+ return copysignf (0.0f, x); /* x = 0 mod 2 */
+ if (k == 4)
+ return -copysignf (0.0f, x); /* x = 1 mod 2 */
+ __set_errno (ERANGE);
+ if (k == 2)
+ return 1.0f / 0.0f; /* x = 1/2 mod 2 */
+ if (k == 6)
+ return -1.0f / 0.0f; /* x = -1/2 mod 2 */
+ }
+ ix = asuint (zf);
+ uint32_t a = ix & (~0u >> 1);
+ /* x=0x1.267004p-2 is not correctly rounded for RNDZ/RNDD by the code below */
+ if (__glibc_unlikely (a == 0x3e933802u))
+ return copysignf (0x1.44cfbap+0f, zf) + copysignf (0x1p-25f, zf);
+ /* x=-0x1.e4cd0ap-14 is not correctly rounded for RNDU by the code below */
+ if (__glibc_unlikely (a == 0x38f26685u))
+ return copysignf (0x1.7cc304p-12, zf) + copysignf (0x1p-37f, zf);
+
+ double z = zf, z2 = z * z;
+
+ static const double cn[] = { 0x1.921fb54442d19p-1, -0x1.1f458b3e1f8d6p-2,
+ 0x1.68a34bd0b8f6ap-6, -0x1.e4866f7a25f99p-13 };
+ static const double cd[] = { 0x1p+0, -0x1.4b4b98d2df3a7p-1,
+ 0x1.8e9926d2bb901p-4, -0x1.a6f77fd847eep-9 };
+ double z4
+ = z2 * z2,
+ r = (z - z * z2) * ((cn[0] + z2 * cn[1]) + z4 * (cn[2] + z2 * cn[3]))
+ / (((cd[0] + z2 * cd[1]) + z4 * (cd[2] + z2 * cd[3])) * (0.25 - z2));
+ return r;
+}
+libm_alias_float (__tanpi, tanpi)
diff --git a/sysdeps/ieee754/flt-32/s_totalorderf.c b/sysdeps/ieee754/flt-32/s_totalorderf.c
index 35e21c3..32ba882 100644
--- a/sysdeps/ieee754/flt-32/s_totalorderf.c
+++ b/sysdeps/ieee754/flt-32/s_totalorderf.c
@@ -1,5 +1,5 @@
/* Total order operation. flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_totalordermagf.c b/sysdeps/ieee754/flt-32/s_totalordermagf.c
index 3830202..091e342 100644
--- a/sysdeps/ieee754/flt-32/s_totalordermagf.c
+++ b/sysdeps/ieee754/flt-32/s_totalordermagf.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. flt-32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/s_truncf.c b/sysdeps/ieee754/flt-32/s_truncf.c
index 0b92d55..6b36e1d 100644
--- a/sysdeps/ieee754/flt-32/s_truncf.c
+++ b/sysdeps/ieee754/flt-32/s_truncf.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/sincosf_poly.h b/sysdeps/ieee754/flt-32/sincosf_poly.h
index 4f69f85..097519f 100644
--- a/sysdeps/ieee754/flt-32/sincosf_poly.h
+++ b/sysdeps/ieee754/flt-32/sincosf_poly.h
@@ -1,5 +1,5 @@
/* Used by sinf, cosf and sincosf functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input
new file mode 100644
index 0000000..f753bca
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input
@@ -0,0 +1,682 @@
+%a::0:-1:
+%*a::0:-1:
+%a:-infinity:1:9:-inf:
+%*a:-infinity:0:9:
+%a:-0xf.fffffp+124:1:15:-0x1.fffffep127:
+%*a:-0xf.fffffp+124:0:15:
+%a:-0x7.fffff8p125:1:15:-0x1.fffffep127:
+%*a:-0x7.fffff8p125:0:15:
+%a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124:
+%*a:-0x2.345678p+123:0:16:
+%a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124:
+%*a:-0x2.345678p0123:0:16:
+%a:-0x8p-129:1:9:-0x1p-126:
+%*a:-0x8p-129:0:9:
+%a:-0x0p+0:1:7:-0x0:
+%*a:-0x0p+0:0:7:
+%a:-0x0p0:1:6:-0x0:
+%*a:-0x0p0:0:6:
+%a:-nan(09A_Zaz):1:13:-nan:
+%*a:-nan(09A_Zaz):0:13:
+%a:-nan():1:6:-nan:
+%*a:-nan():0:6:
+%a:nan():1:5:nan:
+%*a:nan():0:5:
+%a:nan(09A_Zaz):1:12:nan:
+%*a:nan(09A_Zaz):0:12:
+%a:0x0p0:1:5:0x0:
+%*a:0x0p0:0:5:
+%a:0x0p+0:1:6:0x0:
+%*a:0x0p+0:0:6:
+%a:0x8p-129:1:8:0x1p-126:
+%*a:0x8p-129:0:8:
+%a:0x2.345678p0123:1:15:0x1.1a2b3cp124:
+%*a:0x2.345678p0123:0:15:
+%a:0x2.345678p+123:1:15:0x1.1a2b3cp124:
+%*a:0x2.345678p+123:0:15:
+%a:0x7.fffff8p125:1:14:0x1.fffffep127:
+%*a:0x7.fffff8p125:0:14:
+%a:0xf.fffffp+124:1:14:0x1.fffffep127:
+%*a:0xf.fffffp+124:0:14:
+%a:infinity:1:8:inf:
+%*a:infinity:0:8:
+%a:+nan():1:6:nan:
+%*a:+nan():0:6:
+%a:+nan(09A_Zaz):1:13:nan:
+%*a:+nan(09A_Zaz):0:13:
+%a:+0x0p0:1:6:0x0:
+%*a:+0x0p0:0:6:
+%a:+0x0p+0:1:7:0x0:
+%*a:+0x0p+0:0:7:
+%a:+0x8p-129:1:9:0x1p-126:
+%*a:+0x8p-129:0:9:
+%a:+0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*a:+0x2.345678p0123:0:16:
+%a:+0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*a:+0x2.345678p+123:0:16:
+%a:+0x7.fffff8p125:1:15:0x1.fffffep127:
+%*a:+0x7.fffff8p125:0:15:
+%a:+0xf.fffffp+124:1:15:0x1.fffffep127:
+%*a:+0xf.fffffp+124:0:15:
+%a:+infinity:1:9:inf:
+%*a:+infinity:0:9:
+%1a::0:-1:
+%*1a::0:-1:
+%1a:-infinity:0:-1:
+%*1a:-infinity:0:-1:
+%1a:-0xf.fffffp+124:0:-1:
+%*1a:-0xf.fffffp+124:0:-1:
+%1a:-0x7.fffff8p125:0:-1:
+%*1a:-0x7.fffff8p125:0:-1:
+%1a:-0x2.345678p+123:0:-1:
+%*1a:-0x2.345678p+123:0:-1:
+%1a:-0x2.345678p0123:0:-1:
+%*1a:-0x2.345678p0123:0:-1:
+%1a:-0x8p-129:0:-1:
+%*1a:-0x8p-129:0:-1:
+%1a:-0x0p+0:0:-1:
+%*1a:-0x0p+0:0:-1:
+%1a:-0x0p0:0:-1:
+%*1a:-0x0p0:0:-1:
+%1a:-nan(09A_Zaz):0:-1:
+%*1a:-nan(09A_Zaz):0:-1:
+%1a:-nan():0:-1:
+%*1a:-nan():0:-1:
+%1a:nan():0:-1:
+%*1a:nan():0:-1:
+%1a:nan(09A_Zaz):0:-1:
+%*1a:nan(09A_Zaz):0:-1:
+%1a:0x0p0:1:1:0x0:
+%*1a:0x0p0:0:1:
+%1a:0x0p+0:1:1:0x0:
+%*1a:0x0p+0:0:1:
+%1a:0x8p-129:1:1:0x0:
+%*1a:0x8p-129:0:1:
+%1a:0x2.345678p0123:1:1:0x0:
+%*1a:0x2.345678p0123:0:1:
+%1a:0x2.345678p+123:1:1:0x0:
+%*1a:0x2.345678p+123:0:1:
+%1a:0x7.fffff8p125:1:1:0x0:
+%*1a:0x7.fffff8p125:0:1:
+%1a:0xf.fffffp+124:1:1:0x0:
+%*1a:0xf.fffffp+124:0:1:
+%1a:infinity:0:-1:
+%*1a:infinity:0:-1:
+%1a:+nan():0:-1:
+%*1a:+nan():0:-1:
+%1a:+nan(09A_Zaz):0:-1:
+%*1a:+nan(09A_Zaz):0:-1:
+%1a:+0x0p0:0:-1:
+%*1a:+0x0p0:0:-1:
+%1a:+0x0p+0:0:-1:
+%*1a:+0x0p+0:0:-1:
+%1a:+0x8p-129:0:-1:
+%*1a:+0x8p-129:0:-1:
+%1a:+0x2.345678p0123:0:-1:
+%*1a:+0x2.345678p0123:0:-1:
+%1a:+0x2.345678p+123:0:-1:
+%*1a:+0x2.345678p+123:0:-1:
+%1a:+0x7.fffff8p125:0:-1:
+%*1a:+0x7.fffff8p125:0:-1:
+%1a:+0xf.fffffp+124:0:-1:
+%*1a:+0xf.fffffp+124:0:-1:
+%1a:+infinity:0:-1:
+%*1a:+infinity:0:-1:
+%2a::0:-1:
+%*2a::0:-1:
+%2a:-infinity:0:-1:
+%*2a:-infinity:0:-1:
+%2a:-0xf.fffffp+124:1:2:-0x0:
+%*2a:-0xf.fffffp+124:0:2:
+%2a:-0x7.fffff8p125:1:2:-0x0:
+%*2a:-0x7.fffff8p125:0:2:
+%2a:-0x2.345678p+123:1:2:-0x0:
+%*2a:-0x2.345678p+123:0:2:
+%2a:-0x2.345678p0123:1:2:-0x0:
+%*2a:-0x2.345678p0123:0:2:
+%2a:-0x8p-129:1:2:-0x0:
+%*2a:-0x8p-129:0:2:
+%2a:-0x0p+0:1:2:-0x0:
+%*2a:-0x0p+0:0:2:
+%2a:-0x0p0:1:2:-0x0:
+%*2a:-0x0p0:0:2:
+%2a:-nan(09A_Zaz):0:-1:
+%*2a:-nan(09A_Zaz):0:-1:
+%2a:-nan():0:-1:
+%*2a:-nan():0:-1:
+%2a:nan():0:-1:
+%*2a:nan():0:-1:
+%2a:nan(09A_Zaz):0:-1:
+%*2a:nan(09A_Zaz):0:-1:
+%2a:0x0p0:0:-1:
+%*2a:0x0p0:0:-1:
+%2a:0x0p+0:0:-1:
+%*2a:0x0p+0:0:-1:
+%2a:0x8p-129:0:-1:
+%*2a:0x8p-129:0:-1:
+%2a:0x2.345678p0123:0:-1:
+%*2a:0x2.345678p0123:0:-1:
+%2a:0x2.345678p+123:0:-1:
+%*2a:0x2.345678p+123:0:-1:
+%2a:0x7.fffff8p125:0:-1:
+%*2a:0x7.fffff8p125:0:-1:
+%2a:0xf.fffffp+124:0:-1:
+%*2a:0xf.fffffp+124:0:-1:
+%2a:infinity:0:-1:
+%*2a:infinity:0:-1:
+%2a:+nan():0:-1:
+%*2a:+nan():0:-1:
+%2a:+nan(09A_Zaz):0:-1:
+%*2a:+nan(09A_Zaz):0:-1:
+%2a:+0x0p0:1:2:0x0:
+%*2a:+0x0p0:0:2:
+%2a:+0x0p+0:1:2:0x0:
+%*2a:+0x0p+0:0:2:
+%2a:+0x8p-129:1:2:0x0:
+%*2a:+0x8p-129:0:2:
+%2a:+0x2.345678p0123:1:2:0x0:
+%*2a:+0x2.345678p0123:0:2:
+%2a:+0x2.345678p+123:1:2:0x0:
+%*2a:+0x2.345678p+123:0:2:
+%2a:+0x7.fffff8p125:1:2:0x0:
+%*2a:+0x7.fffff8p125:0:2:
+%2a:+0xf.fffffp+124:1:2:0x0:
+%*2a:+0xf.fffffp+124:0:2:
+%2a:+infinity:0:-1:
+%*2a:+infinity:0:-1:
+%3a::0:-1:
+%*3a::0:-1:
+%3a:-infinity:0:-1:
+%*3a:-infinity:0:-1:
+%3a:-0xf.fffffp+124:0:-1:
+%*3a:-0xf.fffffp+124:0:-1:
+%3a:-0x7.fffff8p125:0:-1:
+%*3a:-0x7.fffff8p125:0:-1:
+%3a:-0x2.345678p+123:0:-1:
+%*3a:-0x2.345678p+123:0:-1:
+%3a:-0x2.345678p0123:0:-1:
+%*3a:-0x2.345678p0123:0:-1:
+%3a:-0x8p-129:0:-1:
+%*3a:-0x8p-129:0:-1:
+%3a:-0x0p+0:0:-1:
+%*3a:-0x0p+0:0:-1:
+%3a:-0x0p0:0:-1:
+%*3a:-0x0p0:0:-1:
+%3a:-nan(09A_Zaz):0:-1:
+%*3a:-nan(09A_Zaz):0:-1:
+%3a:-nan():0:-1:
+%*3a:-nan():0:-1:
+%3a:nan():1:3:nan:
+%*3a:nan():0:3:
+%3a:nan(09A_Zaz):1:3:nan:
+%*3a:nan(09A_Zaz):0:3:
+%3a:0x0p0:1:3:0x0:
+%*3a:0x0p0:0:3:
+%3a:0x0p+0:1:3:0x0:
+%*3a:0x0p+0:0:3:
+%3a:0x8p-129:1:3:0x1p3:
+%*3a:0x8p-129:0:3:
+%3a:0x2.345678p0123:1:3:0x1p1:
+%*3a:0x2.345678p0123:0:3:
+%3a:0x2.345678p+123:1:3:0x1p1:
+%*3a:0x2.345678p+123:0:3:
+%3a:0x7.fffff8p125:1:3:0x1.cp2:
+%*3a:0x7.fffff8p125:0:3:
+%3a:0xf.fffffp+124:1:3:0x1.ep3:
+%*3a:0xf.fffffp+124:0:3:
+%3a:infinity:1:3:inf:
+%*3a:infinity:0:3:
+%3a:+nan():0:-1:
+%*3a:+nan():0:-1:
+%3a:+nan(09A_Zaz):0:-1:
+%*3a:+nan(09A_Zaz):0:-1:
+%3a:+0x0p0:0:-1:
+%*3a:+0x0p0:0:-1:
+%3a:+0x0p+0:0:-1:
+%*3a:+0x0p+0:0:-1:
+%3a:+0x8p-129:0:-1:
+%*3a:+0x8p-129:0:-1:
+%3a:+0x2.345678p0123:0:-1:
+%*3a:+0x2.345678p0123:0:-1:
+%3a:+0x2.345678p+123:0:-1:
+%*3a:+0x2.345678p+123:0:-1:
+%3a:+0x7.fffff8p125:0:-1:
+%*3a:+0x7.fffff8p125:0:-1:
+%3a:+0xf.fffffp+124:0:-1:
+%*3a:+0xf.fffffp+124:0:-1:
+%3a:+infinity:0:-1:
+%*3a:+infinity:0:-1:
+%4a::0:-1:
+%*4a::0:-1:
+%4a:-infinity:1:4:-inf:
+%*4a:-infinity:0:4:
+%4a:-0xf.fffffp+124:1:4:-0x1.ep3:
+%*4a:-0xf.fffffp+124:0:4:
+%4a:-0x7.fffff8p125:1:4:-0x1.cp2:
+%*4a:-0x7.fffff8p125:0:4:
+%4a:-0x2.345678p+123:1:4:-0x1p1:
+%*4a:-0x2.345678p+123:0:4:
+%4a:-0x2.345678p0123:1:4:-0x1p1:
+%*4a:-0x2.345678p0123:0:4:
+%4a:-0x8p-129:1:4:-0x1p3:
+%*4a:-0x8p-129:0:4:
+%4a:-0x0p+0:1:4:-0x0:
+%*4a:-0x0p+0:0:4:
+%4a:-0x0p0:1:4:-0x0:
+%*4a:-0x0p0:0:4:
+%4a:-nan(09A_Zaz):1:4:-nan:
+%*4a:-nan(09A_Zaz):0:4:
+%4a:-nan():1:4:-nan:
+%*4a:-nan():0:4:
+%4a:nan():0:-1:
+%*4a:nan():0:-1:
+%4a:nan(09A_Zaz):0:-1:
+%*4a:nan(09A_Zaz):0:-1:
+%4a:0x0p0:0:-1:
+%*4a:0x0p0:0:-1:
+%4a:0x0p+0:0:-1:
+%*4a:0x0p+0:0:-1:
+%4a:0x8p-129:0:-1:
+%*4a:0x8p-129:0:-1:
+%4a:0x2.345678p0123:1:4:0x1p1:
+%*4a:0x2.345678p0123:0:4:
+%4a:0x2.345678p+123:1:4:0x1p1:
+%*4a:0x2.345678p+123:0:4:
+%4a:0x7.fffff8p125:1:4:0x1.cp2:
+%*4a:0x7.fffff8p125:0:4:
+%4a:0xf.fffffp+124:1:4:0x1.ep3:
+%*4a:0xf.fffffp+124:0:4:
+%4a:infinity:0:-1:
+%*4a:infinity:0:-1:
+%4a:+nan():1:4:nan:
+%*4a:+nan():0:4:
+%4a:+nan(09A_Zaz):1:4:nan:
+%*4a:+nan(09A_Zaz):0:4:
+%4a:+0x0p0:1:4:0x0:
+%*4a:+0x0p0:0:4:
+%4a:+0x0p+0:1:4:0x0:
+%*4a:+0x0p+0:0:4:
+%4a:+0x8p-129:1:4:0x1p3:
+%*4a:+0x8p-129:0:4:
+%4a:+0x2.345678p0123:1:4:0x1p1:
+%*4a:+0x2.345678p0123:0:4:
+%4a:+0x2.345678p+123:1:4:0x1p1:
+%*4a:+0x2.345678p+123:0:4:
+%4a:+0x7.fffff8p125:1:4:0x1.cp2:
+%*4a:+0x7.fffff8p125:0:4:
+%4a:+0xf.fffffp+124:1:4:0x1.ep3:
+%*4a:+0xf.fffffp+124:0:4:
+%4a:+infinity:1:4:inf:
+%*4a:+infinity:0:4:
+%5a::0:-1:
+%*5a::0:-1:
+%5a:-infinity:0:-1:
+%*5a:-infinity:0:-1:
+%5a:-0xf.fffffp+124:1:5:-0x1.ep3:
+%*5a:-0xf.fffffp+124:0:5:
+%5a:-0x7.fffff8p125:1:5:-0x1.cp2:
+%*5a:-0x7.fffff8p125:0:5:
+%5a:-0x2.345678p+123:1:5:-0x1p1:
+%*5a:-0x2.345678p+123:0:5:
+%5a:-0x2.345678p0123:1:5:-0x1p1:
+%*5a:-0x2.345678p0123:0:5:
+%5a:-0x8p-129:0:-1:
+%*5a:-0x8p-129:0:-1:
+%5a:-0x0p+0:0:-1:
+%*5a:-0x0p+0:0:-1:
+%5a:-0x0p0:0:-1:
+%*5a:-0x0p0:0:-1:
+%5a:-nan(09A_Zaz):0:-1:
+%*5a:-nan(09A_Zaz):0:-1:
+%5a:-nan():0:-1:
+%*5a:-nan():0:-1:
+%5a:nan():1:5:nan:
+%*5a:nan():0:5:
+%5a:nan(09A_Zaz):0:-1:
+%*5a:nan(09A_Zaz):0:-1:
+%5a:0x0p0:1:5:0x0:
+%*5a:0x0p0:0:5:
+%5a:0x0p+0:0:-1:
+%*5a:0x0p+0:0:-1:
+%5a:0x8p-129:0:-1:
+%*5a:0x8p-129:0:-1:
+%5a:0x2.345678p0123:1:5:0x1.18p1:
+%*5a:0x2.345678p0123:0:5:
+%5a:0x2.345678p+123:1:5:0x1.18p1:
+%*5a:0x2.345678p+123:0:5:
+%5a:0x7.fffff8p125:1:5:0x1.fcp2:
+%*5a:0x7.fffff8p125:0:5:
+%5a:0xf.fffffp+124:1:5:0x1.fep3:
+%*5a:0xf.fffffp+124:0:5:
+%5a:infinity:0:-1:
+%*5a:infinity:0:-1:
+%5a:+nan():0:-1:
+%*5a:+nan():0:-1:
+%5a:+nan(09A_Zaz):0:-1:
+%*5a:+nan(09A_Zaz):0:-1:
+%5a:+0x0p0:0:-1:
+%*5a:+0x0p0:0:-1:
+%5a:+0x0p+0:0:-1:
+%*5a:+0x0p+0:0:-1:
+%5a:+0x8p-129:0:-1:
+%*5a:+0x8p-129:0:-1:
+%5a:+0x2.345678p0123:1:5:0x1p1:
+%*5a:+0x2.345678p0123:0:5:
+%5a:+0x2.345678p+123:1:5:0x1p1:
+%*5a:+0x2.345678p+123:0:5:
+%5a:+0x7.fffff8p125:1:5:0x1.cp2:
+%*5a:+0x7.fffff8p125:0:5:
+%5a:+0xf.fffffp+124:1:5:0x1.ep3:
+%*5a:+0xf.fffffp+124:0:5:
+%5a:+infinity:0:-1:
+%*5a:+infinity:0:-1:
+%6a::0:-1:
+%*6a::0:-1:
+%6a:-infinity:0:-1:
+%*6a:-infinity:0:-1:
+%6a:-0xf.fffffp+124:1:6:-0x1.fep3:
+%*6a:-0xf.fffffp+124:0:6:
+%6a:-0x7.fffff8p125:1:6:-0x1.fcp2:
+%*6a:-0x7.fffff8p125:0:6:
+%6a:-0x2.345678p+123:1:6:-0x1.18p1:
+%*6a:-0x2.345678p+123:0:6:
+%6a:-0x2.345678p0123:1:6:-0x1.18p1:
+%*6a:-0x2.345678p0123:0:6:
+%6a:-0x8p-129:0:-1:
+%*6a:-0x8p-129:0:-1:
+%6a:-0x0p+0:0:-1:
+%*6a:-0x0p+0:0:-1:
+%6a:-0x0p0:1:6:-0x0:
+%*6a:-0x0p0:0:6:
+%6a:-nan(09A_Zaz):0:-1:
+%*6a:-nan(09A_Zaz):0:-1:
+%6a:-nan():1:6:-nan:
+%*6a:-nan():0:6:
+%6a:nan():1:5:nan:
+%*6a:nan():0:5:
+%6a:nan(09A_Zaz):0:-1:
+%*6a:nan(09A_Zaz):0:-1:
+%6a:0x0p0:1:5:0x0:
+%*6a:0x0p0:0:5:
+%6a:0x0p+0:1:6:0x0:
+%*6a:0x0p+0:0:6:
+%6a:0x8p-129:1:6:0x1p2:
+%*6a:0x8p-129:0:6:
+%6a:0x2.345678p0123:1:6:0x1.1ap1:
+%*6a:0x2.345678p0123:0:6:
+%6a:0x2.345678p+123:1:6:0x1.1ap1:
+%*6a:0x2.345678p+123:0:6:
+%6a:0x7.fffff8p125:1:6:0x1.ffcp2:
+%*6a:0x7.fffff8p125:0:6:
+%6a:0xf.fffffp+124:1:6:0x1.ffep3:
+%*6a:0xf.fffffp+124:0:6:
+%6a:infinity:0:-1:
+%*6a:infinity:0:-1:
+%6a:+nan():1:6:nan:
+%*6a:+nan():0:6:
+%6a:+nan(09A_Zaz):0:-1:
+%*6a:+nan(09A_Zaz):0:-1:
+%6a:+0x0p0:1:6:0x0:
+%*6a:+0x0p0:0:6:
+%6a:+0x0p+0:0:-1:
+%*6a:+0x0p+0:0:-1:
+%6a:+0x8p-129:0:-1:
+%*6a:+0x8p-129:0:-1:
+%6a:+0x2.345678p0123:1:6:0x1.18p1:
+%*6a:+0x2.345678p0123:0:6:
+%6a:+0x2.345678p+123:1:6:0x1.18p1:
+%*6a:+0x2.345678p+123:0:6:
+%6a:+0x7.fffff8p125:1:6:0x1.fcp2:
+%*6a:+0x7.fffff8p125:0:6:
+%6a:+0xf.fffffp+124:1:6:0x1.fep3:
+%*6a:+0xf.fffffp+124:0:6:
+%6a:+infinity:0:-1:
+%*6a:+infinity:0:-1:
+%12a::0:-1:
+%*12a::0:-1:
+%12a:-infinity:1:9:-inf:
+%*12a:-infinity:0:9:
+%12a:-0xf.fffffp+124:0:-1:
+%*12a:-0xf.fffffp+124:0:-1:
+%12a:-0x7.fffff8p125:0:-1:
+%*12a:-0x7.fffff8p125:0:-1:
+%12a:-0x2.345678p+123:0:-1:
+%*12a:-0x2.345678p+123:0:-1:
+%12a:-0x2.345678p0123:0:-1:
+%*12a:-0x2.345678p0123:0:-1:
+%12a:-0x8p-129:1:9:-0x1p-126:
+%*12a:-0x8p-129:0:9:
+%12a:-0x0p+0:1:7:-0x0:
+%*12a:-0x0p+0:0:7:
+%12a:-0x0p0:1:6:-0x0:
+%*12a:-0x0p0:0:6:
+%12a:-nan(09A_Zaz):0:-1:
+%*12a:-nan(09A_Zaz):0:-1:
+%12a:-nan():1:6:-nan:
+%*12a:-nan():0:6:
+%12a:nan():1:5:nan:
+%*12a:nan():0:5:
+%12a:nan(09A_Zaz):1:12:nan:
+%*12a:nan(09A_Zaz):0:12:
+%12a:0x0p0:1:5:0x0:
+%*12a:0x0p0:0:5:
+%12a:0x0p+0:1:6:0x0:
+%*12a:0x0p+0:0:6:
+%12a:0x8p-129:1:8:0x1p-126:
+%*12a:0x8p-129:0:8:
+%12a:0x2.345678p0123:1:12:0x1.1a2b3cp1:
+%*12a:0x2.345678p0123:0:12:
+%12a:0x2.345678p+123:0:-1:
+%*12a:0x2.345678p+123:0:-1:
+%12a:0x7.fffff8p125:1:12:0x1.fffffep3:
+%*12a:0x7.fffff8p125:0:12:
+%12a:0xf.fffffp+124:1:12:0x1.fffffep4:
+%*12a:0xf.fffffp+124:0:12:
+%12a:infinity:1:8:inf:
+%*12a:infinity:0:8:
+%12a:+nan():1:6:nan:
+%*12a:+nan():0:6:
+%12a:+nan(09A_Zaz):0:-1:
+%*12a:+nan(09A_Zaz):0:-1:
+%12a:+0x0p0:1:6:0x0:
+%*12a:+0x0p0:0:6:
+%12a:+0x0p+0:1:7:0x0:
+%*12a:+0x0p+0:0:7:
+%12a:+0x8p-129:1:9:0x1p-126:
+%*12a:+0x8p-129:0:9:
+%12a:+0x2.345678p0123:0:-1:
+%*12a:+0x2.345678p0123:0:-1:
+%12a:+0x2.345678p+123:0:-1:
+%*12a:+0x2.345678p+123:0:-1:
+%12a:+0x7.fffff8p125:0:-1:
+%*12a:+0x7.fffff8p125:0:-1:
+%12a:+0xf.fffffp+124:0:-1:
+%*12a:+0xf.fffffp+124:0:-1:
+%12a:+infinity:1:9:inf:
+%*12a:+infinity:0:9:
+%18a::0:-1:
+%*18a::0:-1:
+%18a:-infinity:1:9:-inf:
+%*18a:-infinity:0:9:
+%18a:-0xf.fffffp+124:1:15:-0x1.fffffep127:
+%*18a:-0xf.fffffp+124:0:15:
+%18a:-0x7.fffff8p125:1:15:-0x1.fffffep127:
+%*18a:-0x7.fffff8p125:0:15:
+%18a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124:
+%*18a:-0x2.345678p+123:0:16:
+%18a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124:
+%*18a:-0x2.345678p0123:0:16:
+%18a:-0x8p-129:1:9:-0x1p-126:
+%*18a:-0x8p-129:0:9:
+%18a:-0x0p+0:1:7:-0x0:
+%*18a:-0x0p+0:0:7:
+%18a:-0x0p0:1:6:-0x0:
+%*18a:-0x0p0:0:6:
+%18a:-nan(09A_Zaz):1:13:-nan:
+%*18a:-nan(09A_Zaz):0:13:
+%18a:-nan():1:6:-nan:
+%*18a:-nan():0:6:
+%18a:nan():1:5:nan:
+%*18a:nan():0:5:
+%18a:nan(09A_Zaz):1:12:nan:
+%*18a:nan(09A_Zaz):0:12:
+%18a:0x0p0:1:5:0x0:
+%*18a:0x0p0:0:5:
+%18a:0x0p+0:1:6:0x0:
+%*18a:0x0p+0:0:6:
+%18a:0x8p-129:1:8:0x1p-126:
+%*18a:0x8p-129:0:8:
+%18a:0x2.345678p0123:1:15:0x1.1a2b3cp124:
+%*18a:0x2.345678p0123:0:15:
+%18a:0x2.345678p+123:1:15:0x1.1a2b3cp124:
+%*18a:0x2.345678p+123:0:15:
+%18a:0x7.fffff8p125:1:14:0x1.fffffep127:
+%*18a:0x7.fffff8p125:0:14:
+%18a:0xf.fffffp+124:1:14:0x1.fffffep127:
+%*18a:0xf.fffffp+124:0:14:
+%18a:infinity:1:8:inf:
+%*18a:infinity:0:8:
+%18a:+nan():1:6:nan:
+%*18a:+nan():0:6:
+%18a:+nan(09A_Zaz):1:13:nan:
+%*18a:+nan(09A_Zaz):0:13:
+%18a:+0x0p0:1:6:0x0:
+%*18a:+0x0p0:0:6:
+%18a:+0x0p+0:1:7:0x0:
+%*18a:+0x0p+0:0:7:
+%18a:+0x8p-129:1:9:0x1p-126:
+%*18a:+0x8p-129:0:9:
+%18a:+0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*18a:+0x2.345678p0123:0:16:
+%18a:+0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*18a:+0x2.345678p+123:0:16:
+%18a:+0x7.fffff8p125:1:15:0x1.fffffep127:
+%*18a:+0x7.fffff8p125:0:15:
+%18a:+0xf.fffffp+124:1:15:0x1.fffffep127:
+%*18a:+0xf.fffffp+124:0:15:
+%18a:+infinity:1:9:inf:
+%*18a:+infinity:0:9:
+%5a: :0:-1:
+%*5a: :0:-1:
+%5a: -infinity:0:-1:
+%*5a: -infinity:0:-1:
+%5a: -0xf.fffffp+124:1:6:-0x1.ep3:
+%*5a: -0xf.fffffp+124:0:6:
+%5a: -0x7.fffff8p125:1:6:-0x1.cp2:
+%*5a: -0x7.fffff8p125:0:6:
+%5a: -0x2.345678p+123:1:6:-0x1p1:
+%*5a: -0x2.345678p+123:0:6:
+%5a: -0x2.345678p0123:1:6:-0x1p1:
+%*5a: -0x2.345678p0123:0:6:
+%5a: -0x8p-129:0:-1:
+%*5a: -0x8p-129:0:-1:
+%5a: -0x0p+0:0:-1:
+%*5a: -0x0p+0:0:-1:
+%5a: -0x0p0:0:-1:
+%*5a: -0x0p0:0:-1:
+%5a: -nan(09A_Zaz):0:-1:
+%*5a: -nan(09A_Zaz):0:-1:
+%5a: -nan():0:-1:
+%*5a: -nan():0:-1:
+%5a: nan():1:6:nan:
+%*5a: nan():0:6:
+%5a: nan(09A_Zaz):0:-1:
+%*5a: nan(09A_Zaz):0:-1:
+%5a: 0x0p0:1:6:0x0:
+%*5a: 0x0p0:0:6:
+%5a: 0x0p+0:0:-1:
+%*5a: 0x0p+0:0:-1:
+%5a: 0x8p-129:0:-1:
+%*5a: 0x8p-129:0:-1:
+%5a: 0x2.345678p0123:1:6:0x1.18p1:
+%*5a: 0x2.345678p0123:0:6:
+%5a: 0x2.345678p+123:1:6:0x1.18p1:
+%*5a: 0x2.345678p+123:0:6:
+%5a: 0x7.fffff8p125:1:6:0x1.fcp2:
+%*5a: 0x7.fffff8p125:0:6:
+%5a: 0xf.fffffp+124:1:6:0x1.fep3:
+%*5a: 0xf.fffffp+124:0:6:
+%5a: infinity:0:-1:
+%*5a: infinity:0:-1:
+%5a: +nan():0:-1:
+%*5a: +nan():0:-1:
+%5a: +nan(09A_Zaz):0:-1:
+%*5a: +nan(09A_Zaz):0:-1:
+%5a: +0x0p0:0:-1:
+%*5a: +0x0p0:0:-1:
+%5a: +0x0p+0:0:-1:
+%*5a: +0x0p+0:0:-1:
+%5a: +0x8p-129:0:-1:
+%*5a: +0x8p-129:0:-1:
+%5a: +0x2.345678p0123:1:6:0x1p1:
+%*5a: +0x2.345678p0123:0:6:
+%5a: +0x2.345678p+123:1:6:0x1p1:
+%*5a: +0x2.345678p+123:0:6:
+%5a: +0x7.fffff8p125:1:6:0x1.cp2:
+%*5a: +0x7.fffff8p125:0:6:
+%5a: +0xf.fffffp+124:1:6:0x1.ep3:
+%*5a: +0xf.fffffp+124:0:6:
+%5a: +infinity:0:-1:
+%*5a: +infinity:0:-1:
+%18a: :0:-1:
+%*18a: :0:-1:
+%18a: -infinity:1:10:-inf:
+%*18a: -infinity:0:10:
+%18a: -0xf.fffffp+124:1:16:-0x1.fffffep127:
+%*18a: -0xf.fffffp+124:0:16:
+%18a: -0x7.fffff8p125:1:16:-0x1.fffffep127:
+%*18a: -0x7.fffff8p125:0:16:
+%18a: -0x2.345678p+123:1:17:-0x1.1a2b3cp124:
+%*18a: -0x2.345678p+123:0:17:
+%18a: -0x2.345678p0123:1:17:-0x1.1a2b3cp124:
+%*18a: -0x2.345678p0123:0:17:
+%18a: -0x8p-129:1:10:-0x1p-126:
+%*18a: -0x8p-129:0:10:
+%18a: -0x0p+0:1:8:-0x0:
+%*18a: -0x0p+0:0:8:
+%18a: -0x0p0:1:7:-0x0:
+%*18a: -0x0p0:0:7:
+%18a: -nan(09A_Zaz):1:14:-nan:
+%*18a: -nan(09A_Zaz):0:14:
+%18a: -nan():1:7:-nan:
+%*18a: -nan():0:7:
+%18a: nan():1:6:nan:
+%*18a: nan():0:6:
+%18a: nan(09A_Zaz):1:13:nan:
+%*18a: nan(09A_Zaz):0:13:
+%18a: 0x0p0:1:6:0x0:
+%*18a: 0x0p0:0:6:
+%18a: 0x0p+0:1:7:0x0:
+%*18a: 0x0p+0:0:7:
+%18a: 0x8p-129:1:9:0x1p-126:
+%*18a: 0x8p-129:0:9:
+%18a: 0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*18a: 0x2.345678p0123:0:16:
+%18a: 0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*18a: 0x2.345678p+123:0:16:
+%18a: 0x7.fffff8p125:1:15:0x1.fffffep127:
+%*18a: 0x7.fffff8p125:0:15:
+%18a: 0xf.fffffp+124:1:15:0x1.fffffep127:
+%*18a: 0xf.fffffp+124:0:15:
+%18a: infinity:1:9:inf:
+%*18a: infinity:0:9:
+%18a: +nan():1:7:nan:
+%*18a: +nan():0:7:
+%18a: +nan(09A_Zaz):1:14:nan:
+%*18a: +nan(09A_Zaz):0:14:
+%18a: +0x0p0:1:7:0x0:
+%*18a: +0x0p0:0:7:
+%18a: +0x0p+0:1:8:0x0:
+%*18a: +0x0p+0:0:8:
+%18a: +0x8p-129:1:10:0x1p-126:
+%*18a: +0x8p-129:0:10:
+%18a: +0x2.345678p0123:1:17:0x1.1a2b3cp124:
+%*18a: +0x2.345678p0123:0:17:
+%18a: +0x2.345678p+123:1:17:0x1.1a2b3cp124:
+%*18a: +0x2.345678p+123:0:17:
+%18a: +0x7.fffff8p125:1:16:0x1.fffffep127:
+%*18a: +0x7.fffff8p125:0:16:
+%18a: +0xf.fffffp+124:1:16:0x1.fffffep127:
+%*18a: +0xf.fffffp+124:0:16:
+%18a: +infinity:1:10:inf:
+%*18a: +infinity:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input
new file mode 100644
index 0000000..2f23e31
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input
@@ -0,0 +1,682 @@
+%A::0:-1:
+%*A::0:-1:
+%A:-INFINITY:1:9:-inf:
+%*A:-INFINITY:0:9:
+%A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127:
+%*A:-0XF.FFFFFP+124:0:15:
+%A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127:
+%*A:-0X7.FFFFF8P125:0:15:
+%A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124:
+%*A:-0X2.345678P+123:0:16:
+%A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124:
+%*A:-0X2.345678P0123:0:16:
+%A:-0X8P-129:1:9:-0x1p-126:
+%*A:-0X8P-129:0:9:
+%A:-0X0P+0:1:7:-0x0:
+%*A:-0X0P+0:0:7:
+%A:-0X0P0:1:6:-0x0:
+%*A:-0X0P0:0:6:
+%A:-NAN(09A_Zaz):1:13:-nan:
+%*A:-NAN(09A_Zaz):0:13:
+%A:-NAN():1:6:-nan:
+%*A:-NAN():0:6:
+%A:NAN():1:5:nan:
+%*A:NAN():0:5:
+%A:NAN(09A_Zaz):1:12:nan:
+%*A:NAN(09A_Zaz):0:12:
+%A:0X0P0:1:5:0x0:
+%*A:0X0P0:0:5:
+%A:0X0P+0:1:6:0x0:
+%*A:0X0P+0:0:6:
+%A:0X8P-129:1:8:0x1p-126:
+%*A:0X8P-129:0:8:
+%A:0X2.345678P0123:1:15:0x1.1a2b3cp124:
+%*A:0X2.345678P0123:0:15:
+%A:0X2.345678P+123:1:15:0x1.1a2b3cp124:
+%*A:0X2.345678P+123:0:15:
+%A:0X7.FFFFF8P125:1:14:0x1.fffffep127:
+%*A:0X7.FFFFF8P125:0:14:
+%A:0XF.FFFFFP+124:1:14:0x1.fffffep127:
+%*A:0XF.FFFFFP+124:0:14:
+%A:INFINITY:1:8:inf:
+%*A:INFINITY:0:8:
+%A:+NAN():1:6:nan:
+%*A:+NAN():0:6:
+%A:+NAN(09A_Zaz):1:13:nan:
+%*A:+NAN(09A_Zaz):0:13:
+%A:+0X0P0:1:6:0x0:
+%*A:+0X0P0:0:6:
+%A:+0X0P+0:1:7:0x0:
+%*A:+0X0P+0:0:7:
+%A:+0X8P-129:1:9:0x1p-126:
+%*A:+0X8P-129:0:9:
+%A:+0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*A:+0X2.345678P0123:0:16:
+%A:+0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*A:+0X2.345678P+123:0:16:
+%A:+0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*A:+0X7.FFFFF8P125:0:15:
+%A:+0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*A:+0XF.FFFFFP+124:0:15:
+%A:+INFINITY:1:9:inf:
+%*A:+INFINITY:0:9:
+%1A::0:-1:
+%*1A::0:-1:
+%1A:-INFINITY:0:-1:
+%*1A:-INFINITY:0:-1:
+%1A:-0XF.FFFFFP+124:0:-1:
+%*1A:-0XF.FFFFFP+124:0:-1:
+%1A:-0X7.FFFFF8P125:0:-1:
+%*1A:-0X7.FFFFF8P125:0:-1:
+%1A:-0X2.345678P+123:0:-1:
+%*1A:-0X2.345678P+123:0:-1:
+%1A:-0X2.345678P0123:0:-1:
+%*1A:-0X2.345678P0123:0:-1:
+%1A:-0X8P-129:0:-1:
+%*1A:-0X8P-129:0:-1:
+%1A:-0X0P+0:0:-1:
+%*1A:-0X0P+0:0:-1:
+%1A:-0X0P0:0:-1:
+%*1A:-0X0P0:0:-1:
+%1A:-NAN(09A_Zaz):0:-1:
+%*1A:-NAN(09A_Zaz):0:-1:
+%1A:-NAN():0:-1:
+%*1A:-NAN():0:-1:
+%1A:NAN():0:-1:
+%*1A:NAN():0:-1:
+%1A:NAN(09A_Zaz):0:-1:
+%*1A:NAN(09A_Zaz):0:-1:
+%1A:0X0P0:1:1:0x0:
+%*1A:0X0P0:0:1:
+%1A:0X0P+0:1:1:0x0:
+%*1A:0X0P+0:0:1:
+%1A:0X8P-129:1:1:0x0:
+%*1A:0X8P-129:0:1:
+%1A:0X2.345678P0123:1:1:0x0:
+%*1A:0X2.345678P0123:0:1:
+%1A:0X2.345678P+123:1:1:0x0:
+%*1A:0X2.345678P+123:0:1:
+%1A:0X7.FFFFF8P125:1:1:0x0:
+%*1A:0X7.FFFFF8P125:0:1:
+%1A:0XF.FFFFFP+124:1:1:0x0:
+%*1A:0XF.FFFFFP+124:0:1:
+%1A:INFINITY:0:-1:
+%*1A:INFINITY:0:-1:
+%1A:+NAN():0:-1:
+%*1A:+NAN():0:-1:
+%1A:+NAN(09A_Zaz):0:-1:
+%*1A:+NAN(09A_Zaz):0:-1:
+%1A:+0X0P0:0:-1:
+%*1A:+0X0P0:0:-1:
+%1A:+0X0P+0:0:-1:
+%*1A:+0X0P+0:0:-1:
+%1A:+0X8P-129:0:-1:
+%*1A:+0X8P-129:0:-1:
+%1A:+0X2.345678P0123:0:-1:
+%*1A:+0X2.345678P0123:0:-1:
+%1A:+0X2.345678P+123:0:-1:
+%*1A:+0X2.345678P+123:0:-1:
+%1A:+0X7.FFFFF8P125:0:-1:
+%*1A:+0X7.FFFFF8P125:0:-1:
+%1A:+0XF.FFFFFP+124:0:-1:
+%*1A:+0XF.FFFFFP+124:0:-1:
+%1A:+INFINITY:0:-1:
+%*1A:+INFINITY:0:-1:
+%2A::0:-1:
+%*2A::0:-1:
+%2A:-INFINITY:0:-1:
+%*2A:-INFINITY:0:-1:
+%2A:-0XF.FFFFFP+124:1:2:-0x0:
+%*2A:-0XF.FFFFFP+124:0:2:
+%2A:-0X7.FFFFF8P125:1:2:-0x0:
+%*2A:-0X7.FFFFF8P125:0:2:
+%2A:-0X2.345678P+123:1:2:-0x0:
+%*2A:-0X2.345678P+123:0:2:
+%2A:-0X2.345678P0123:1:2:-0x0:
+%*2A:-0X2.345678P0123:0:2:
+%2A:-0X8P-129:1:2:-0x0:
+%*2A:-0X8P-129:0:2:
+%2A:-0X0P+0:1:2:-0x0:
+%*2A:-0X0P+0:0:2:
+%2A:-0X0P0:1:2:-0x0:
+%*2A:-0X0P0:0:2:
+%2A:-NAN(09A_Zaz):0:-1:
+%*2A:-NAN(09A_Zaz):0:-1:
+%2A:-NAN():0:-1:
+%*2A:-NAN():0:-1:
+%2A:NAN():0:-1:
+%*2A:NAN():0:-1:
+%2A:NAN(09A_Zaz):0:-1:
+%*2A:NAN(09A_Zaz):0:-1:
+%2A:0X0P0:0:-1:
+%*2A:0X0P0:0:-1:
+%2A:0X0P+0:0:-1:
+%*2A:0X0P+0:0:-1:
+%2A:0X8P-129:0:-1:
+%*2A:0X8P-129:0:-1:
+%2A:0X2.345678P0123:0:-1:
+%*2A:0X2.345678P0123:0:-1:
+%2A:0X2.345678P+123:0:-1:
+%*2A:0X2.345678P+123:0:-1:
+%2A:0X7.FFFFF8P125:0:-1:
+%*2A:0X7.FFFFF8P125:0:-1:
+%2A:0XF.FFFFFP+124:0:-1:
+%*2A:0XF.FFFFFP+124:0:-1:
+%2A:INFINITY:0:-1:
+%*2A:INFINITY:0:-1:
+%2A:+NAN():0:-1:
+%*2A:+NAN():0:-1:
+%2A:+NAN(09A_Zaz):0:-1:
+%*2A:+NAN(09A_Zaz):0:-1:
+%2A:+0X0P0:1:2:0x0:
+%*2A:+0X0P0:0:2:
+%2A:+0X0P+0:1:2:0x0:
+%*2A:+0X0P+0:0:2:
+%2A:+0X8P-129:1:2:0x0:
+%*2A:+0X8P-129:0:2:
+%2A:+0X2.345678P0123:1:2:0x0:
+%*2A:+0X2.345678P0123:0:2:
+%2A:+0X2.345678P+123:1:2:0x0:
+%*2A:+0X2.345678P+123:0:2:
+%2A:+0X7.FFFFF8P125:1:2:0x0:
+%*2A:+0X7.FFFFF8P125:0:2:
+%2A:+0XF.FFFFFP+124:1:2:0x0:
+%*2A:+0XF.FFFFFP+124:0:2:
+%2A:+INFINITY:0:-1:
+%*2A:+INFINITY:0:-1:
+%3A::0:-1:
+%*3A::0:-1:
+%3A:-INFINITY:0:-1:
+%*3A:-INFINITY:0:-1:
+%3A:-0XF.FFFFFP+124:0:-1:
+%*3A:-0XF.FFFFFP+124:0:-1:
+%3A:-0X7.FFFFF8P125:0:-1:
+%*3A:-0X7.FFFFF8P125:0:-1:
+%3A:-0X2.345678P+123:0:-1:
+%*3A:-0X2.345678P+123:0:-1:
+%3A:-0X2.345678P0123:0:-1:
+%*3A:-0X2.345678P0123:0:-1:
+%3A:-0X8P-129:0:-1:
+%*3A:-0X8P-129:0:-1:
+%3A:-0X0P+0:0:-1:
+%*3A:-0X0P+0:0:-1:
+%3A:-0X0P0:0:-1:
+%*3A:-0X0P0:0:-1:
+%3A:-NAN(09A_Zaz):0:-1:
+%*3A:-NAN(09A_Zaz):0:-1:
+%3A:-NAN():0:-1:
+%*3A:-NAN():0:-1:
+%3A:NAN():1:3:nan:
+%*3A:NAN():0:3:
+%3A:NAN(09A_Zaz):1:3:nan:
+%*3A:NAN(09A_Zaz):0:3:
+%3A:0X0P0:1:3:0x0:
+%*3A:0X0P0:0:3:
+%3A:0X0P+0:1:3:0x0:
+%*3A:0X0P+0:0:3:
+%3A:0X8P-129:1:3:0x1p3:
+%*3A:0X8P-129:0:3:
+%3A:0X2.345678P0123:1:3:0x1p1:
+%*3A:0X2.345678P0123:0:3:
+%3A:0X2.345678P+123:1:3:0x1p1:
+%*3A:0X2.345678P+123:0:3:
+%3A:0X7.FFFFF8P125:1:3:0x1.cp2:
+%*3A:0X7.FFFFF8P125:0:3:
+%3A:0XF.FFFFFP+124:1:3:0x1.ep3:
+%*3A:0XF.FFFFFP+124:0:3:
+%3A:INFINITY:1:3:inf:
+%*3A:INFINITY:0:3:
+%3A:+NAN():0:-1:
+%*3A:+NAN():0:-1:
+%3A:+NAN(09A_Zaz):0:-1:
+%*3A:+NAN(09A_Zaz):0:-1:
+%3A:+0X0P0:0:-1:
+%*3A:+0X0P0:0:-1:
+%3A:+0X0P+0:0:-1:
+%*3A:+0X0P+0:0:-1:
+%3A:+0X8P-129:0:-1:
+%*3A:+0X8P-129:0:-1:
+%3A:+0X2.345678P0123:0:-1:
+%*3A:+0X2.345678P0123:0:-1:
+%3A:+0X2.345678P+123:0:-1:
+%*3A:+0X2.345678P+123:0:-1:
+%3A:+0X7.FFFFF8P125:0:-1:
+%*3A:+0X7.FFFFF8P125:0:-1:
+%3A:+0XF.FFFFFP+124:0:-1:
+%*3A:+0XF.FFFFFP+124:0:-1:
+%3A:+INFINITY:0:-1:
+%*3A:+INFINITY:0:-1:
+%4A::0:-1:
+%*4A::0:-1:
+%4A:-INFINITY:1:4:-inf:
+%*4A:-INFINITY:0:4:
+%4A:-0XF.FFFFFP+124:1:4:-0x1.ep3:
+%*4A:-0XF.FFFFFP+124:0:4:
+%4A:-0X7.FFFFF8P125:1:4:-0x1.cp2:
+%*4A:-0X7.FFFFF8P125:0:4:
+%4A:-0X2.345678P+123:1:4:-0x1p1:
+%*4A:-0X2.345678P+123:0:4:
+%4A:-0X2.345678P0123:1:4:-0x1p1:
+%*4A:-0X2.345678P0123:0:4:
+%4A:-0X8P-129:1:4:-0x1p3:
+%*4A:-0X8P-129:0:4:
+%4A:-0X0P+0:1:4:-0x0:
+%*4A:-0X0P+0:0:4:
+%4A:-0X0P0:1:4:-0x0:
+%*4A:-0X0P0:0:4:
+%4A:-NAN(09A_Zaz):1:4:-nan:
+%*4A:-NAN(09A_Zaz):0:4:
+%4A:-NAN():1:4:-nan:
+%*4A:-NAN():0:4:
+%4A:NAN():0:-1:
+%*4A:NAN():0:-1:
+%4A:NAN(09A_Zaz):0:-1:
+%*4A:NAN(09A_Zaz):0:-1:
+%4A:0X0P0:0:-1:
+%*4A:0X0P0:0:-1:
+%4A:0X0P+0:0:-1:
+%*4A:0X0P+0:0:-1:
+%4A:0X8P-129:0:-1:
+%*4A:0X8P-129:0:-1:
+%4A:0X2.345678P0123:1:4:0x1p1:
+%*4A:0X2.345678P0123:0:4:
+%4A:0X2.345678P+123:1:4:0x1p1:
+%*4A:0X2.345678P+123:0:4:
+%4A:0X7.FFFFF8P125:1:4:0x1.cp2:
+%*4A:0X7.FFFFF8P125:0:4:
+%4A:0XF.FFFFFP+124:1:4:0x1.ep3:
+%*4A:0XF.FFFFFP+124:0:4:
+%4A:INFINITY:0:-1:
+%*4A:INFINITY:0:-1:
+%4A:+NAN():1:4:nan:
+%*4A:+NAN():0:4:
+%4A:+NAN(09A_Zaz):1:4:nan:
+%*4A:+NAN(09A_Zaz):0:4:
+%4A:+0X0P0:1:4:0x0:
+%*4A:+0X0P0:0:4:
+%4A:+0X0P+0:1:4:0x0:
+%*4A:+0X0P+0:0:4:
+%4A:+0X8P-129:1:4:0x1p3:
+%*4A:+0X8P-129:0:4:
+%4A:+0X2.345678P0123:1:4:0x1p1:
+%*4A:+0X2.345678P0123:0:4:
+%4A:+0X2.345678P+123:1:4:0x1p1:
+%*4A:+0X2.345678P+123:0:4:
+%4A:+0X7.FFFFF8P125:1:4:0x1.cp2:
+%*4A:+0X7.FFFFF8P125:0:4:
+%4A:+0XF.FFFFFP+124:1:4:0x1.ep3:
+%*4A:+0XF.FFFFFP+124:0:4:
+%4A:+INFINITY:1:4:inf:
+%*4A:+INFINITY:0:4:
+%5A::0:-1:
+%*5A::0:-1:
+%5A:-INFINITY:0:-1:
+%*5A:-INFINITY:0:-1:
+%5A:-0XF.FFFFFP+124:1:5:-0x1.ep3:
+%*5A:-0XF.FFFFFP+124:0:5:
+%5A:-0X7.FFFFF8P125:1:5:-0x1.cp2:
+%*5A:-0X7.FFFFF8P125:0:5:
+%5A:-0X2.345678P+123:1:5:-0x1p1:
+%*5A:-0X2.345678P+123:0:5:
+%5A:-0X2.345678P0123:1:5:-0x1p1:
+%*5A:-0X2.345678P0123:0:5:
+%5A:-0X8P-129:0:-1:
+%*5A:-0X8P-129:0:-1:
+%5A:-0X0P+0:0:-1:
+%*5A:-0X0P+0:0:-1:
+%5A:-0X0P0:0:-1:
+%*5A:-0X0P0:0:-1:
+%5A:-NAN(09A_Zaz):0:-1:
+%*5A:-NAN(09A_Zaz):0:-1:
+%5A:-NAN():0:-1:
+%*5A:-NAN():0:-1:
+%5A:NAN():1:5:nan:
+%*5A:NAN():0:5:
+%5A:NAN(09A_Zaz):0:-1:
+%*5A:NAN(09A_Zaz):0:-1:
+%5A:0X0P0:1:5:0x0:
+%*5A:0X0P0:0:5:
+%5A:0X0P+0:0:-1:
+%*5A:0X0P+0:0:-1:
+%5A:0X8P-129:0:-1:
+%*5A:0X8P-129:0:-1:
+%5A:0X2.345678P0123:1:5:0x1.18p1:
+%*5A:0X2.345678P0123:0:5:
+%5A:0X2.345678P+123:1:5:0x1.18p1:
+%*5A:0X2.345678P+123:0:5:
+%5A:0X7.FFFFF8P125:1:5:0x1.fcp2:
+%*5A:0X7.FFFFF8P125:0:5:
+%5A:0XF.FFFFFP+124:1:5:0x1.fep3:
+%*5A:0XF.FFFFFP+124:0:5:
+%5A:INFINITY:0:-1:
+%*5A:INFINITY:0:-1:
+%5A:+NAN():0:-1:
+%*5A:+NAN():0:-1:
+%5A:+NAN(09A_Zaz):0:-1:
+%*5A:+NAN(09A_Zaz):0:-1:
+%5A:+0X0P0:0:-1:
+%*5A:+0X0P0:0:-1:
+%5A:+0X0P+0:0:-1:
+%*5A:+0X0P+0:0:-1:
+%5A:+0X8P-129:0:-1:
+%*5A:+0X8P-129:0:-1:
+%5A:+0X2.345678P0123:1:5:0x1p1:
+%*5A:+0X2.345678P0123:0:5:
+%5A:+0X2.345678P+123:1:5:0x1p1:
+%*5A:+0X2.345678P+123:0:5:
+%5A:+0X7.FFFFF8P125:1:5:0x1.cp2:
+%*5A:+0X7.FFFFF8P125:0:5:
+%5A:+0XF.FFFFFP+124:1:5:0x1.ep3:
+%*5A:+0XF.FFFFFP+124:0:5:
+%5A:+INFINITY:0:-1:
+%*5A:+INFINITY:0:-1:
+%6A::0:-1:
+%*6A::0:-1:
+%6A:-INFINITY:0:-1:
+%*6A:-INFINITY:0:-1:
+%6A:-0XF.FFFFFP+124:1:6:-0x1.fep3:
+%*6A:-0XF.FFFFFP+124:0:6:
+%6A:-0X7.FFFFF8P125:1:6:-0x1.fcp2:
+%*6A:-0X7.FFFFF8P125:0:6:
+%6A:-0X2.345678P+123:1:6:-0x1.18p1:
+%*6A:-0X2.345678P+123:0:6:
+%6A:-0X2.345678P0123:1:6:-0x1.18p1:
+%*6A:-0X2.345678P0123:0:6:
+%6A:-0X8P-129:0:-1:
+%*6A:-0X8P-129:0:-1:
+%6A:-0X0P+0:0:-1:
+%*6A:-0X0P+0:0:-1:
+%6A:-0X0P0:1:6:-0x0:
+%*6A:-0X0P0:0:6:
+%6A:-NAN(09A_Zaz):0:-1:
+%*6A:-NAN(09A_Zaz):0:-1:
+%6A:-NAN():1:6:-nan:
+%*6A:-NAN():0:6:
+%6A:NAN():1:5:nan:
+%*6A:NAN():0:5:
+%6A:NAN(09A_Zaz):0:-1:
+%*6A:NAN(09A_Zaz):0:-1:
+%6A:0X0P0:1:5:0x0:
+%*6A:0X0P0:0:5:
+%6A:0X0P+0:1:6:0x0:
+%*6A:0X0P+0:0:6:
+%6A:0X8P-129:1:6:0x1p2:
+%*6A:0X8P-129:0:6:
+%6A:0X2.345678P0123:1:6:0x1.1ap1:
+%*6A:0X2.345678P0123:0:6:
+%6A:0X2.345678P+123:1:6:0x1.1ap1:
+%*6A:0X2.345678P+123:0:6:
+%6A:0X7.FFFFF8P125:1:6:0x1.ffcp2:
+%*6A:0X7.FFFFF8P125:0:6:
+%6A:0XF.FFFFFP+124:1:6:0x1.ffep3:
+%*6A:0XF.FFFFFP+124:0:6:
+%6A:INFINITY:0:-1:
+%*6A:INFINITY:0:-1:
+%6A:+NAN():1:6:nan:
+%*6A:+NAN():0:6:
+%6A:+NAN(09A_Zaz):0:-1:
+%*6A:+NAN(09A_Zaz):0:-1:
+%6A:+0X0P0:1:6:0x0:
+%*6A:+0X0P0:0:6:
+%6A:+0X0P+0:0:-1:
+%*6A:+0X0P+0:0:-1:
+%6A:+0X8P-129:0:-1:
+%*6A:+0X8P-129:0:-1:
+%6A:+0X2.345678P0123:1:6:0x1.18p1:
+%*6A:+0X2.345678P0123:0:6:
+%6A:+0X2.345678P+123:1:6:0x1.18p1:
+%*6A:+0X2.345678P+123:0:6:
+%6A:+0X7.FFFFF8P125:1:6:0x1.fcp2:
+%*6A:+0X7.FFFFF8P125:0:6:
+%6A:+0XF.FFFFFP+124:1:6:0x1.fep3:
+%*6A:+0XF.FFFFFP+124:0:6:
+%6A:+INFINITY:0:-1:
+%*6A:+INFINITY:0:-1:
+%12A::0:-1:
+%*12A::0:-1:
+%12A:-INFINITY:1:9:-inf:
+%*12A:-INFINITY:0:9:
+%12A:-0XF.FFFFFP+124:0:-1:
+%*12A:-0XF.FFFFFP+124:0:-1:
+%12A:-0X7.FFFFF8P125:0:-1:
+%*12A:-0X7.FFFFF8P125:0:-1:
+%12A:-0X2.345678P+123:0:-1:
+%*12A:-0X2.345678P+123:0:-1:
+%12A:-0X2.345678P0123:0:-1:
+%*12A:-0X2.345678P0123:0:-1:
+%12A:-0X8P-129:1:9:-0x1p-126:
+%*12A:-0X8P-129:0:9:
+%12A:-0X0P+0:1:7:-0x0:
+%*12A:-0X0P+0:0:7:
+%12A:-0X0P0:1:6:-0x0:
+%*12A:-0X0P0:0:6:
+%12A:-NAN(09A_Zaz):0:-1:
+%*12A:-NAN(09A_Zaz):0:-1:
+%12A:-NAN():1:6:-nan:
+%*12A:-NAN():0:6:
+%12A:NAN():1:5:nan:
+%*12A:NAN():0:5:
+%12A:NAN(09A_Zaz):1:12:nan:
+%*12A:NAN(09A_Zaz):0:12:
+%12A:0X0P0:1:5:0x0:
+%*12A:0X0P0:0:5:
+%12A:0X0P+0:1:6:0x0:
+%*12A:0X0P+0:0:6:
+%12A:0X8P-129:1:8:0x1p-126:
+%*12A:0X8P-129:0:8:
+%12A:0X2.345678P0123:1:12:0x1.1a2b3cp1:
+%*12A:0X2.345678P0123:0:12:
+%12A:0X2.345678P+123:0:-1:
+%*12A:0X2.345678P+123:0:-1:
+%12A:0X7.FFFFF8P125:1:12:0x1.fffffep3:
+%*12A:0X7.FFFFF8P125:0:12:
+%12A:0XF.FFFFFP+124:1:12:0x1.fffffep4:
+%*12A:0XF.FFFFFP+124:0:12:
+%12A:INFINITY:1:8:inf:
+%*12A:INFINITY:0:8:
+%12A:+NAN():1:6:nan:
+%*12A:+NAN():0:6:
+%12A:+NAN(09A_Zaz):0:-1:
+%*12A:+NAN(09A_Zaz):0:-1:
+%12A:+0X0P0:1:6:0x0:
+%*12A:+0X0P0:0:6:
+%12A:+0X0P+0:1:7:0x0:
+%*12A:+0X0P+0:0:7:
+%12A:+0X8P-129:1:9:0x1p-126:
+%*12A:+0X8P-129:0:9:
+%12A:+0X2.345678P0123:0:-1:
+%*12A:+0X2.345678P0123:0:-1:
+%12A:+0X2.345678P+123:0:-1:
+%*12A:+0X2.345678P+123:0:-1:
+%12A:+0X7.FFFFF8P125:0:-1:
+%*12A:+0X7.FFFFF8P125:0:-1:
+%12A:+0XF.FFFFFP+124:0:-1:
+%*12A:+0XF.FFFFFP+124:0:-1:
+%12A:+INFINITY:1:9:inf:
+%*12A:+INFINITY:0:9:
+%18A::0:-1:
+%*18A::0:-1:
+%18A:-INFINITY:1:9:-inf:
+%*18A:-INFINITY:0:9:
+%18A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127:
+%*18A:-0XF.FFFFFP+124:0:15:
+%18A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127:
+%*18A:-0X7.FFFFF8P125:0:15:
+%18A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124:
+%*18A:-0X2.345678P+123:0:16:
+%18A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124:
+%*18A:-0X2.345678P0123:0:16:
+%18A:-0X8P-129:1:9:-0x1p-126:
+%*18A:-0X8P-129:0:9:
+%18A:-0X0P+0:1:7:-0x0:
+%*18A:-0X0P+0:0:7:
+%18A:-0X0P0:1:6:-0x0:
+%*18A:-0X0P0:0:6:
+%18A:-NAN(09A_Zaz):1:13:-nan:
+%*18A:-NAN(09A_Zaz):0:13:
+%18A:-NAN():1:6:-nan:
+%*18A:-NAN():0:6:
+%18A:NAN():1:5:nan:
+%*18A:NAN():0:5:
+%18A:NAN(09A_Zaz):1:12:nan:
+%*18A:NAN(09A_Zaz):0:12:
+%18A:0X0P0:1:5:0x0:
+%*18A:0X0P0:0:5:
+%18A:0X0P+0:1:6:0x0:
+%*18A:0X0P+0:0:6:
+%18A:0X8P-129:1:8:0x1p-126:
+%*18A:0X8P-129:0:8:
+%18A:0X2.345678P0123:1:15:0x1.1a2b3cp124:
+%*18A:0X2.345678P0123:0:15:
+%18A:0X2.345678P+123:1:15:0x1.1a2b3cp124:
+%*18A:0X2.345678P+123:0:15:
+%18A:0X7.FFFFF8P125:1:14:0x1.fffffep127:
+%*18A:0X7.FFFFF8P125:0:14:
+%18A:0XF.FFFFFP+124:1:14:0x1.fffffep127:
+%*18A:0XF.FFFFFP+124:0:14:
+%18A:INFINITY:1:8:inf:
+%*18A:INFINITY:0:8:
+%18A:+NAN():1:6:nan:
+%*18A:+NAN():0:6:
+%18A:+NAN(09A_Zaz):1:13:nan:
+%*18A:+NAN(09A_Zaz):0:13:
+%18A:+0X0P0:1:6:0x0:
+%*18A:+0X0P0:0:6:
+%18A:+0X0P+0:1:7:0x0:
+%*18A:+0X0P+0:0:7:
+%18A:+0X8P-129:1:9:0x1p-126:
+%*18A:+0X8P-129:0:9:
+%18A:+0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*18A:+0X2.345678P0123:0:16:
+%18A:+0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*18A:+0X2.345678P+123:0:16:
+%18A:+0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*18A:+0X7.FFFFF8P125:0:15:
+%18A:+0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*18A:+0XF.FFFFFP+124:0:15:
+%18A:+INFINITY:1:9:inf:
+%*18A:+INFINITY:0:9:
+%5A: :0:-1:
+%*5A: :0:-1:
+%5A: -INFINITY:0:-1:
+%*5A: -INFINITY:0:-1:
+%5A: -0XF.FFFFFP+124:1:6:-0x1.ep3:
+%*5A: -0XF.FFFFFP+124:0:6:
+%5A: -0X7.FFFFF8P125:1:6:-0x1.cp2:
+%*5A: -0X7.FFFFF8P125:0:6:
+%5A: -0X2.345678P+123:1:6:-0x1p1:
+%*5A: -0X2.345678P+123:0:6:
+%5A: -0X2.345678P0123:1:6:-0x1p1:
+%*5A: -0X2.345678P0123:0:6:
+%5A: -0X8P-129:0:-1:
+%*5A: -0X8P-129:0:-1:
+%5A: -0X0P+0:0:-1:
+%*5A: -0X0P+0:0:-1:
+%5A: -0X0P0:0:-1:
+%*5A: -0X0P0:0:-1:
+%5A: -NAN(09A_Zaz):0:-1:
+%*5A: -NAN(09A_Zaz):0:-1:
+%5A: -NAN():0:-1:
+%*5A: -NAN():0:-1:
+%5A: NAN():1:6:nan:
+%*5A: NAN():0:6:
+%5A: NAN(09A_Zaz):0:-1:
+%*5A: NAN(09A_Zaz):0:-1:
+%5A: 0X0P0:1:6:0x0:
+%*5A: 0X0P0:0:6:
+%5A: 0X0P+0:0:-1:
+%*5A: 0X0P+0:0:-1:
+%5A: 0X8P-129:0:-1:
+%*5A: 0X8P-129:0:-1:
+%5A: 0X2.345678P0123:1:6:0x1.18p1:
+%*5A: 0X2.345678P0123:0:6:
+%5A: 0X2.345678P+123:1:6:0x1.18p1:
+%*5A: 0X2.345678P+123:0:6:
+%5A: 0X7.FFFFF8P125:1:6:0x1.fcp2:
+%*5A: 0X7.FFFFF8P125:0:6:
+%5A: 0XF.FFFFFP+124:1:6:0x1.fep3:
+%*5A: 0XF.FFFFFP+124:0:6:
+%5A: INFINITY:0:-1:
+%*5A: INFINITY:0:-1:
+%5A: +NAN():0:-1:
+%*5A: +NAN():0:-1:
+%5A: +NAN(09A_Zaz):0:-1:
+%*5A: +NAN(09A_Zaz):0:-1:
+%5A: +0X0P0:0:-1:
+%*5A: +0X0P0:0:-1:
+%5A: +0X0P+0:0:-1:
+%*5A: +0X0P+0:0:-1:
+%5A: +0X8P-129:0:-1:
+%*5A: +0X8P-129:0:-1:
+%5A: +0X2.345678P0123:1:6:0x1p1:
+%*5A: +0X2.345678P0123:0:6:
+%5A: +0X2.345678P+123:1:6:0x1p1:
+%*5A: +0X2.345678P+123:0:6:
+%5A: +0X7.FFFFF8P125:1:6:0x1.cp2:
+%*5A: +0X7.FFFFF8P125:0:6:
+%5A: +0XF.FFFFFP+124:1:6:0x1.ep3:
+%*5A: +0XF.FFFFFP+124:0:6:
+%5A: +INFINITY:0:-1:
+%*5A: +INFINITY:0:-1:
+%18A: :0:-1:
+%*18A: :0:-1:
+%18A: -INFINITY:1:10:-inf:
+%*18A: -INFINITY:0:10:
+%18A: -0XF.FFFFFP+124:1:16:-0x1.fffffep127:
+%*18A: -0XF.FFFFFP+124:0:16:
+%18A: -0X7.FFFFF8P125:1:16:-0x1.fffffep127:
+%*18A: -0X7.FFFFF8P125:0:16:
+%18A: -0X2.345678P+123:1:17:-0x1.1a2b3cp124:
+%*18A: -0X2.345678P+123:0:17:
+%18A: -0X2.345678P0123:1:17:-0x1.1a2b3cp124:
+%*18A: -0X2.345678P0123:0:17:
+%18A: -0X8P-129:1:10:-0x1p-126:
+%*18A: -0X8P-129:0:10:
+%18A: -0X0P+0:1:8:-0x0:
+%*18A: -0X0P+0:0:8:
+%18A: -0X0P0:1:7:-0x0:
+%*18A: -0X0P0:0:7:
+%18A: -NAN(09A_Zaz):1:14:-nan:
+%*18A: -NAN(09A_Zaz):0:14:
+%18A: -NAN():1:7:-nan:
+%*18A: -NAN():0:7:
+%18A: NAN():1:6:nan:
+%*18A: NAN():0:6:
+%18A: NAN(09A_Zaz):1:13:nan:
+%*18A: NAN(09A_Zaz):0:13:
+%18A: 0X0P0:1:6:0x0:
+%*18A: 0X0P0:0:6:
+%18A: 0X0P+0:1:7:0x0:
+%*18A: 0X0P+0:0:7:
+%18A: 0X8P-129:1:9:0x1p-126:
+%*18A: 0X8P-129:0:9:
+%18A: 0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*18A: 0X2.345678P0123:0:16:
+%18A: 0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*18A: 0X2.345678P+123:0:16:
+%18A: 0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*18A: 0X7.FFFFF8P125:0:15:
+%18A: 0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*18A: 0XF.FFFFFP+124:0:15:
+%18A: INFINITY:1:9:inf:
+%*18A: INFINITY:0:9:
+%18A: +NAN():1:7:nan:
+%*18A: +NAN():0:7:
+%18A: +NAN(09A_Zaz):1:14:nan:
+%*18A: +NAN(09A_Zaz):0:14:
+%18A: +0X0P0:1:7:0x0:
+%*18A: +0X0P0:0:7:
+%18A: +0X0P+0:1:8:0x0:
+%*18A: +0X0P+0:0:8:
+%18A: +0X8P-129:1:10:0x1p-126:
+%*18A: +0X8P-129:0:10:
+%18A: +0X2.345678P0123:1:17:0x1.1a2b3cp124:
+%*18A: +0X2.345678P0123:0:17:
+%18A: +0X2.345678P+123:1:17:0x1.1a2b3cp124:
+%*18A: +0X2.345678P+123:0:17:
+%18A: +0X7.FFFFF8P125:1:16:0x1.fffffep127:
+%*18A: +0X7.FFFFF8P125:0:16:
+%18A: +0XF.FFFFFP+124:1:16:0x1.fffffep127:
+%*18A: +0XF.FFFFFP+124:0:16:
+%18A: +INFINITY:1:10:inf:
+%*18A: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input
new file mode 100644
index 0000000..ecfed92
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input
@@ -0,0 +1,558 @@
+%e::0:-1:
+%*e::0:-1:
+%e:-infinity:1:9:-inf:
+%*e:-infinity:0:9:
+%e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127:
+%*e:-3.40282346638528859811704183484516925e+38:0:42:
+%e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127:
+%*e:-3.40282346638528859811704183484516925e38:0:41:
+%e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124:
+%*e:-2.344167378255246830294536494851817472e+37:0:43:
+%e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124:
+%*e:-2.344167378255246830294536494851817472e037:0:43:
+%e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126:
+%*e:-1.17549435082228750796873653722224568e-38:0:42:
+%e:-0e+0:1:5:-0x0:
+%*e:-0e+0:0:5:
+%e:-0e0:1:4:-0x0:
+%*e:-0e0:0:4:
+%e:-nan(09A_Zaz):1:13:-nan:
+%*e:-nan(09A_Zaz):0:13:
+%e:-nan():1:6:-nan:
+%*e:-nan():0:6:
+%e:nan():1:5:nan:
+%*e:nan():0:5:
+%e:nan(09A_Zaz):1:12:nan:
+%*e:nan(09A_Zaz):0:12:
+%e:0e0:1:3:0x0:
+%*e:0e0:0:3:
+%e:0e+0:1:4:0x0:
+%*e:0e+0:0:4:
+%e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126:
+%*e:1.17549435082228750796873653722224568e-38:0:41:
+%e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124:
+%*e:2.344167378255246830294536494851817472e037:0:42:
+%e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124:
+%*e:2.344167378255246830294536494851817472e+37:0:42:
+%e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127:
+%*e:3.40282346638528859811704183484516925e38:0:40:
+%e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127:
+%*e:3.40282346638528859811704183484516925e+38:0:41:
+%e:infinity:1:8:inf:
+%*e:infinity:0:8:
+%e:+nan():1:6:nan:
+%*e:+nan():0:6:
+%e:+nan(09A_Zaz):1:13:nan:
+%*e:+nan(09A_Zaz):0:13:
+%e:+0e0:1:4:0x0:
+%*e:+0e0:0:4:
+%e:+0e+0:1:5:0x0:
+%*e:+0e+0:0:5:
+%e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126:
+%*e:+1.17549435082228750796873653722224568e-38:0:42:
+%e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124:
+%*e:+2.344167378255246830294536494851817472e037:0:43:
+%e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124:
+%*e:+2.344167378255246830294536494851817472e+37:0:43:
+%e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127:
+%*e:+3.40282346638528859811704183484516925e38:0:41:
+%e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127:
+%*e:+3.40282346638528859811704183484516925e+38:0:42:
+%e:+infinity:1:9:inf:
+%*e:+infinity:0:9:
+%1e::0:-1:
+%*1e::0:-1:
+%1e:-infinity:0:-1:
+%*1e:-infinity:0:-1:
+%1e:-3.40282346638528859811704183484516925e+38:0:-1:
+%*1e:-3.40282346638528859811704183484516925e+38:0:-1:
+%1e:-3.40282346638528859811704183484516925e38:0:-1:
+%*1e:-3.40282346638528859811704183484516925e38:0:-1:
+%1e:-2.344167378255246830294536494851817472e+37:0:-1:
+%*1e:-2.344167378255246830294536494851817472e+37:0:-1:
+%1e:-2.344167378255246830294536494851817472e037:0:-1:
+%*1e:-2.344167378255246830294536494851817472e037:0:-1:
+%1e:-1.17549435082228750796873653722224568e-38:0:-1:
+%*1e:-1.17549435082228750796873653722224568e-38:0:-1:
+%1e:-0e+0:0:-1:
+%*1e:-0e+0:0:-1:
+%1e:-0e0:0:-1:
+%*1e:-0e0:0:-1:
+%1e:-nan(09A_Zaz):0:-1:
+%*1e:-nan(09A_Zaz):0:-1:
+%1e:-nan():0:-1:
+%*1e:-nan():0:-1:
+%1e:nan():0:-1:
+%*1e:nan():0:-1:
+%1e:nan(09A_Zaz):0:-1:
+%*1e:nan(09A_Zaz):0:-1:
+%1e:0e0:1:1:0x0:
+%*1e:0e0:0:1:
+%1e:0e+0:1:1:0x0:
+%*1e:0e+0:0:1:
+%1e:1.17549435082228750796873653722224568e-38:1:1:0x1:
+%*1e:1.17549435082228750796873653722224568e-38:0:1:
+%1e:2.344167378255246830294536494851817472e037:1:1:0x1p1:
+%*1e:2.344167378255246830294536494851817472e037:0:1:
+%1e:2.344167378255246830294536494851817472e+37:1:1:0x1p1:
+%*1e:2.344167378255246830294536494851817472e+37:0:1:
+%1e:3.40282346638528859811704183484516925e38:1:1:0x1.8p1:
+%*1e:3.40282346638528859811704183484516925e38:0:1:
+%1e:3.40282346638528859811704183484516925e+38:1:1:0x1.8p1:
+%*1e:3.40282346638528859811704183484516925e+38:0:1:
+%1e:infinity:0:-1:
+%*1e:infinity:0:-1:
+%1e:+nan():0:-1:
+%*1e:+nan():0:-1:
+%1e:+nan(09A_Zaz):0:-1:
+%*1e:+nan(09A_Zaz):0:-1:
+%1e:+0e0:0:-1:
+%*1e:+0e0:0:-1:
+%1e:+0e+0:0:-1:
+%*1e:+0e+0:0:-1:
+%1e:+1.17549435082228750796873653722224568e-38:0:-1:
+%*1e:+1.17549435082228750796873653722224568e-38:0:-1:
+%1e:+2.344167378255246830294536494851817472e037:0:-1:
+%*1e:+2.344167378255246830294536494851817472e037:0:-1:
+%1e:+2.344167378255246830294536494851817472e+37:0:-1:
+%*1e:+2.344167378255246830294536494851817472e+37:0:-1:
+%1e:+3.40282346638528859811704183484516925e38:0:-1:
+%*1e:+3.40282346638528859811704183484516925e38:0:-1:
+%1e:+3.40282346638528859811704183484516925e+38:0:-1:
+%*1e:+3.40282346638528859811704183484516925e+38:0:-1:
+%1e:+infinity:0:-1:
+%*1e:+infinity:0:-1:
+%2e::0:-1:
+%*2e::0:-1:
+%2e:-infinity:0:-1:
+%*2e:-infinity:0:-1:
+%2e:-3.40282346638528859811704183484516925e+38:1:2:-0x1.8p1:
+%*2e:-3.40282346638528859811704183484516925e+38:0:2:
+%2e:-3.40282346638528859811704183484516925e38:1:2:-0x1.8p1:
+%*2e:-3.40282346638528859811704183484516925e38:0:2:
+%2e:-2.344167378255246830294536494851817472e+37:1:2:-0x1p1:
+%*2e:-2.344167378255246830294536494851817472e+37:0:2:
+%2e:-2.344167378255246830294536494851817472e037:1:2:-0x1p1:
+%*2e:-2.344167378255246830294536494851817472e037:0:2:
+%2e:-1.17549435082228750796873653722224568e-38:1:2:-0x1:
+%*2e:-1.17549435082228750796873653722224568e-38:0:2:
+%2e:-0e+0:1:2:-0x0:
+%*2e:-0e+0:0:2:
+%2e:-0e0:1:2:-0x0:
+%*2e:-0e0:0:2:
+%2e:-nan(09A_Zaz):0:-1:
+%*2e:-nan(09A_Zaz):0:-1:
+%2e:-nan():0:-1:
+%*2e:-nan():0:-1:
+%2e:nan():0:-1:
+%*2e:nan():0:-1:
+%2e:nan(09A_Zaz):0:-1:
+%*2e:nan(09A_Zaz):0:-1:
+%2e:0e0:0:-1:
+%*2e:0e0:0:-1:
+%2e:0e+0:0:-1:
+%*2e:0e+0:0:-1:
+%2e:1.17549435082228750796873653722224568e-38:1:2:0x1:
+%*2e:1.17549435082228750796873653722224568e-38:0:2:
+%2e:2.344167378255246830294536494851817472e037:1:2:0x1p1:
+%*2e:2.344167378255246830294536494851817472e037:0:2:
+%2e:2.344167378255246830294536494851817472e+37:1:2:0x1p1:
+%*2e:2.344167378255246830294536494851817472e+37:0:2:
+%2e:3.40282346638528859811704183484516925e38:1:2:0x1.8p1:
+%*2e:3.40282346638528859811704183484516925e38:0:2:
+%2e:3.40282346638528859811704183484516925e+38:1:2:0x1.8p1:
+%*2e:3.40282346638528859811704183484516925e+38:0:2:
+%2e:infinity:0:-1:
+%*2e:infinity:0:-1:
+%2e:+nan():0:-1:
+%*2e:+nan():0:-1:
+%2e:+nan(09A_Zaz):0:-1:
+%*2e:+nan(09A_Zaz):0:-1:
+%2e:+0e0:1:2:0x0:
+%*2e:+0e0:0:2:
+%2e:+0e+0:1:2:0x0:
+%*2e:+0e+0:0:2:
+%2e:+1.17549435082228750796873653722224568e-38:1:2:0x1:
+%*2e:+1.17549435082228750796873653722224568e-38:0:2:
+%2e:+2.344167378255246830294536494851817472e037:1:2:0x1p1:
+%*2e:+2.344167378255246830294536494851817472e037:0:2:
+%2e:+2.344167378255246830294536494851817472e+37:1:2:0x1p1:
+%*2e:+2.344167378255246830294536494851817472e+37:0:2:
+%2e:+3.40282346638528859811704183484516925e38:1:2:0x1.8p1:
+%*2e:+3.40282346638528859811704183484516925e38:0:2:
+%2e:+3.40282346638528859811704183484516925e+38:1:2:0x1.8p1:
+%*2e:+3.40282346638528859811704183484516925e+38:0:2:
+%2e:+infinity:0:-1:
+%*2e:+infinity:0:-1:
+%3e::0:-1:
+%*3e::0:-1:
+%3e:-infinity:0:-1:
+%*3e:-infinity:0:-1:
+%3e:-3.40282346638528859811704183484516925e+38:1:3:-0x1.8p1:
+%*3e:-3.40282346638528859811704183484516925e+38:0:3:
+%3e:-3.40282346638528859811704183484516925e38:1:3:-0x1.8p1:
+%*3e:-3.40282346638528859811704183484516925e38:0:3:
+%3e:-2.344167378255246830294536494851817472e+37:1:3:-0x1p1:
+%*3e:-2.344167378255246830294536494851817472e+37:0:3:
+%3e:-2.344167378255246830294536494851817472e037:1:3:-0x1p1:
+%*3e:-2.344167378255246830294536494851817472e037:0:3:
+%3e:-1.17549435082228750796873653722224568e-38:1:3:-0x1:
+%*3e:-1.17549435082228750796873653722224568e-38:0:3:
+%3e:-0e+0:0:-1:
+%*3e:-0e+0:0:-1:
+%3e:-0e0:0:-1:
+%*3e:-0e0:0:-1:
+%3e:-nan(09A_Zaz):0:-1:
+%*3e:-nan(09A_Zaz):0:-1:
+%3e:-nan():0:-1:
+%*3e:-nan():0:-1:
+%3e:nan():1:3:nan:
+%*3e:nan():0:3:
+%3e:nan(09A_Zaz):1:3:nan:
+%*3e:nan(09A_Zaz):0:3:
+%3e:0e0:1:3:0x0:
+%*3e:0e0:0:3:
+%3e:0e+0:0:-1:
+%*3e:0e+0:0:-1:
+%3e:1.17549435082228750796873653722224568e-38:1:3:0x1.19999a:
+%*3e:1.17549435082228750796873653722224568e-38:0:3:
+%3e:2.344167378255246830294536494851817472e037:1:3:0x1.266666p1:
+%*3e:2.344167378255246830294536494851817472e037:0:3:
+%3e:2.344167378255246830294536494851817472e+37:1:3:0x1.266666p1:
+%*3e:2.344167378255246830294536494851817472e+37:0:3:
+%3e:3.40282346638528859811704183484516925e38:1:3:0x1.b33334p1:
+%*3e:3.40282346638528859811704183484516925e38:0:3:
+%3e:3.40282346638528859811704183484516925e+38:1:3:0x1.b33334p1:
+%*3e:3.40282346638528859811704183484516925e+38:0:3:
+%3e:infinity:1:3:inf:
+%*3e:infinity:0:3:
+%3e:+nan():0:-1:
+%*3e:+nan():0:-1:
+%3e:+nan(09A_Zaz):0:-1:
+%*3e:+nan(09A_Zaz):0:-1:
+%3e:+0e0:0:-1:
+%*3e:+0e0:0:-1:
+%3e:+0e+0:0:-1:
+%*3e:+0e+0:0:-1:
+%3e:+1.17549435082228750796873653722224568e-38:1:3:0x1:
+%*3e:+1.17549435082228750796873653722224568e-38:0:3:
+%3e:+2.344167378255246830294536494851817472e037:1:3:0x1p1:
+%*3e:+2.344167378255246830294536494851817472e037:0:3:
+%3e:+2.344167378255246830294536494851817472e+37:1:3:0x1p1:
+%*3e:+2.344167378255246830294536494851817472e+37:0:3:
+%3e:+3.40282346638528859811704183484516925e38:1:3:0x1.8p1:
+%*3e:+3.40282346638528859811704183484516925e38:0:3:
+%3e:+3.40282346638528859811704183484516925e+38:1:3:0x1.8p1:
+%*3e:+3.40282346638528859811704183484516925e+38:0:3:
+%3e:+infinity:0:-1:
+%*3e:+infinity:0:-1:
+%4e::0:-1:
+%*4e::0:-1:
+%4e:-infinity:1:4:-inf:
+%*4e:-infinity:0:4:
+%4e:-3.40282346638528859811704183484516925e+38:1:4:-0x1.b33334p1:
+%*4e:-3.40282346638528859811704183484516925e+38:0:4:
+%4e:-3.40282346638528859811704183484516925e38:1:4:-0x1.b33334p1:
+%*4e:-3.40282346638528859811704183484516925e38:0:4:
+%4e:-2.344167378255246830294536494851817472e+37:1:4:-0x1.266666p1:
+%*4e:-2.344167378255246830294536494851817472e+37:0:4:
+%4e:-2.344167378255246830294536494851817472e037:1:4:-0x1.266666p1:
+%*4e:-2.344167378255246830294536494851817472e037:0:4:
+%4e:-1.17549435082228750796873653722224568e-38:1:4:-0x1.19999a:
+%*4e:-1.17549435082228750796873653722224568e-38:0:4:
+%4e:-0e+0:0:-1:
+%*4e:-0e+0:0:-1:
+%4e:-0e0:1:4:-0x0:
+%*4e:-0e0:0:4:
+%4e:-nan(09A_Zaz):1:4:-nan:
+%*4e:-nan(09A_Zaz):0:4:
+%4e:-nan():1:4:-nan:
+%*4e:-nan():0:4:
+%4e:nan():0:-1:
+%*4e:nan():0:-1:
+%4e:nan(09A_Zaz):0:-1:
+%*4e:nan(09A_Zaz):0:-1:
+%4e:0e0:1:3:0x0:
+%*4e:0e0:0:3:
+%4e:0e+0:1:4:0x0:
+%*4e:0e+0:0:4:
+%4e:1.17549435082228750796873653722224568e-38:1:4:0x1.2b851e:
+%*4e:1.17549435082228750796873653722224568e-38:0:4:
+%4e:2.344167378255246830294536494851817472e037:1:4:0x1.2b851ep1:
+%*4e:2.344167378255246830294536494851817472e037:0:4:
+%4e:2.344167378255246830294536494851817472e+37:1:4:0x1.2b851ep1:
+%*4e:2.344167378255246830294536494851817472e+37:0:4:
+%4e:3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1:
+%*4e:3.40282346638528859811704183484516925e38:0:4:
+%4e:3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1:
+%*4e:3.40282346638528859811704183484516925e+38:0:4:
+%4e:infinity:0:-1:
+%*4e:infinity:0:-1:
+%4e:+nan():1:4:nan:
+%*4e:+nan():0:4:
+%4e:+nan(09A_Zaz):1:4:nan:
+%*4e:+nan(09A_Zaz):0:4:
+%4e:+0e0:1:4:0x0:
+%*4e:+0e0:0:4:
+%4e:+0e+0:0:-1:
+%*4e:+0e+0:0:-1:
+%4e:+1.17549435082228750796873653722224568e-38:1:4:0x1.19999a:
+%*4e:+1.17549435082228750796873653722224568e-38:0:4:
+%4e:+2.344167378255246830294536494851817472e037:1:4:0x1.266666p1:
+%*4e:+2.344167378255246830294536494851817472e037:0:4:
+%4e:+2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1:
+%*4e:+2.344167378255246830294536494851817472e+37:0:4:
+%4e:+3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1:
+%*4e:+3.40282346638528859811704183484516925e38:0:4:
+%4e:+3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1:
+%*4e:+3.40282346638528859811704183484516925e+38:0:4:
+%4e:+infinity:1:4:inf:
+%*4e:+infinity:0:4:
+%40e::0:-1:
+%*40e::0:-1:
+%40e:-infinity:1:9:-inf:
+%*40e:-infinity:0:9:
+%40e:-3.40282346638528859811704183484516925e+38:0:-1:
+%*40e:-3.40282346638528859811704183484516925e+38:0:-1:
+%40e:-3.40282346638528859811704183484516925e38:1:40:-0x1.a95a5ap11:
+%*40e:-3.40282346638528859811704183484516925e38:0:40:
+%40e:-2.344167378255246830294536494851817472e+37:0:-1:
+%*40e:-2.344167378255246830294536494851817472e+37:0:-1:
+%40e:-2.344167378255246830294536494851817472e037:0:-1:
+%*40e:-2.344167378255246830294536494851817472e037:0:-1:
+%40e:-1.17549435082228750796873653722224568e-38:0:-1:
+%*40e:-1.17549435082228750796873653722224568e-38:0:-1:
+%40e:-0e+0:1:5:-0x0:
+%*40e:-0e+0:0:5:
+%40e:-0e0:1:4:-0x0:
+%*40e:-0e0:0:4:
+%40e:-nan(09A_Zaz):1:13:-nan:
+%*40e:-nan(09A_Zaz):0:13:
+%40e:-nan():1:6:-nan:
+%*40e:-nan():0:6:
+%40e:nan():1:5:nan:
+%*40e:nan():0:5:
+%40e:nan(09A_Zaz):1:12:nan:
+%*40e:nan(09A_Zaz):0:12:
+%40e:0e0:1:3:0x0:
+%*40e:0e0:0:3:
+%40e:0e+0:1:4:0x0:
+%*40e:0e+0:0:4:
+%40e:1.17549435082228750796873653722224568e-38:1:40:0x1.342618p-10:
+%*40e:1.17549435082228750796873653722224568e-38:0:40:
+%40e:2.344167378255246830294536494851817472e037:1:40:0x1.2c0daep1:
+%*40e:2.344167378255246830294536494851817472e037:0:40:
+%40e:2.344167378255246830294536494851817472e+37:0:-1:
+%*40e:2.344167378255246830294536494851817472e+37:0:-1:
+%40e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127:
+%*40e:3.40282346638528859811704183484516925e38:0:40:
+%40e:3.40282346638528859811704183484516925e+38:1:40:0x1.a95a5ap11:
+%*40e:3.40282346638528859811704183484516925e+38:0:40:
+%40e:infinity:1:8:inf:
+%*40e:infinity:0:8:
+%40e:+nan():1:6:nan:
+%*40e:+nan():0:6:
+%40e:+nan(09A_Zaz):1:13:nan:
+%*40e:+nan(09A_Zaz):0:13:
+%40e:+0e0:1:4:0x0:
+%*40e:+0e0:0:4:
+%40e:+0e+0:1:5:0x0:
+%*40e:+0e+0:0:5:
+%40e:+1.17549435082228750796873653722224568e-38:0:-1:
+%*40e:+1.17549435082228750796873653722224568e-38:0:-1:
+%40e:+2.344167378255246830294536494851817472e037:0:-1:
+%*40e:+2.344167378255246830294536494851817472e037:0:-1:
+%40e:+2.344167378255246830294536494851817472e+37:0:-1:
+%*40e:+2.344167378255246830294536494851817472e+37:0:-1:
+%40e:+3.40282346638528859811704183484516925e38:1:40:0x1.a95a5ap11:
+%*40e:+3.40282346638528859811704183484516925e38:0:40:
+%40e:+3.40282346638528859811704183484516925e+38:0:-1:
+%*40e:+3.40282346638528859811704183484516925e+38:0:-1:
+%40e:+infinity:1:9:inf:
+%*40e:+infinity:0:9:
+%48e::0:-1:
+%*48e::0:-1:
+%48e:-infinity:1:9:-inf:
+%*48e:-infinity:0:9:
+%48e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127:
+%*48e:-3.40282346638528859811704183484516925e+38:0:42:
+%48e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127:
+%*48e:-3.40282346638528859811704183484516925e38:0:41:
+%48e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124:
+%*48e:-2.344167378255246830294536494851817472e+37:0:43:
+%48e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124:
+%*48e:-2.344167378255246830294536494851817472e037:0:43:
+%48e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126:
+%*48e:-1.17549435082228750796873653722224568e-38:0:42:
+%48e:-0e+0:1:5:-0x0:
+%*48e:-0e+0:0:5:
+%48e:-0e0:1:4:-0x0:
+%*48e:-0e0:0:4:
+%48e:-nan(09A_Zaz):1:13:-nan:
+%*48e:-nan(09A_Zaz):0:13:
+%48e:-nan():1:6:-nan:
+%*48e:-nan():0:6:
+%48e:nan():1:5:nan:
+%*48e:nan():0:5:
+%48e:nan(09A_Zaz):1:12:nan:
+%*48e:nan(09A_Zaz):0:12:
+%48e:0e0:1:3:0x0:
+%*48e:0e0:0:3:
+%48e:0e+0:1:4:0x0:
+%*48e:0e+0:0:4:
+%48e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126:
+%*48e:1.17549435082228750796873653722224568e-38:0:41:
+%48e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124:
+%*48e:2.344167378255246830294536494851817472e037:0:42:
+%48e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124:
+%*48e:2.344167378255246830294536494851817472e+37:0:42:
+%48e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127:
+%*48e:3.40282346638528859811704183484516925e38:0:40:
+%48e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127:
+%*48e:3.40282346638528859811704183484516925e+38:0:41:
+%48e:infinity:1:8:inf:
+%*48e:infinity:0:8:
+%48e:+nan():1:6:nan:
+%*48e:+nan():0:6:
+%48e:+nan(09A_Zaz):1:13:nan:
+%*48e:+nan(09A_Zaz):0:13:
+%48e:+0e0:1:4:0x0:
+%*48e:+0e0:0:4:
+%48e:+0e+0:1:5:0x0:
+%*48e:+0e+0:0:5:
+%48e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126:
+%*48e:+1.17549435082228750796873653722224568e-38:0:42:
+%48e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124:
+%*48e:+2.344167378255246830294536494851817472e037:0:43:
+%48e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124:
+%*48e:+2.344167378255246830294536494851817472e+37:0:43:
+%48e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127:
+%*48e:+3.40282346638528859811704183484516925e38:0:41:
+%48e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127:
+%*48e:+3.40282346638528859811704183484516925e+38:0:42:
+%48e:+infinity:1:9:inf:
+%*48e:+infinity:0:9:
+%3e: :0:-1:
+%*3e: :0:-1:
+%3e: -infinity:0:-1:
+%*3e: -infinity:0:-1:
+%3e: -3.40282346638528859811704183484516925e+38:1:4:-0x1.8p1:
+%*3e: -3.40282346638528859811704183484516925e+38:0:4:
+%3e: -3.40282346638528859811704183484516925e38:1:4:-0x1.8p1:
+%*3e: -3.40282346638528859811704183484516925e38:0:4:
+%3e: -2.344167378255246830294536494851817472e+37:1:4:-0x1p1:
+%*3e: -2.344167378255246830294536494851817472e+37:0:4:
+%3e: -2.344167378255246830294536494851817472e037:1:4:-0x1p1:
+%*3e: -2.344167378255246830294536494851817472e037:0:4:
+%3e: -1.17549435082228750796873653722224568e-38:1:4:-0x1:
+%*3e: -1.17549435082228750796873653722224568e-38:0:4:
+%3e: -0e+0:0:-1:
+%*3e: -0e+0:0:-1:
+%3e: -0e0:0:-1:
+%*3e: -0e0:0:-1:
+%3e: -nan(09A_Zaz):0:-1:
+%*3e: -nan(09A_Zaz):0:-1:
+%3e: -nan():0:-1:
+%*3e: -nan():0:-1:
+%3e: nan():1:4:nan:
+%*3e: nan():0:4:
+%3e: nan(09A_Zaz):1:4:nan:
+%*3e: nan(09A_Zaz):0:4:
+%3e: 0e0:1:4:0x0:
+%*3e: 0e0:0:4:
+%3e: 0e+0:0:-1:
+%*3e: 0e+0:0:-1:
+%3e: 1.17549435082228750796873653722224568e-38:1:4:0x1.19999a:
+%*3e: 1.17549435082228750796873653722224568e-38:0:4:
+%3e: 2.344167378255246830294536494851817472e037:1:4:0x1.266666p1:
+%*3e: 2.344167378255246830294536494851817472e037:0:4:
+%3e: 2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1:
+%*3e: 2.344167378255246830294536494851817472e+37:0:4:
+%3e: 3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1:
+%*3e: 3.40282346638528859811704183484516925e38:0:4:
+%3e: 3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1:
+%*3e: 3.40282346638528859811704183484516925e+38:0:4:
+%3e: infinity:1:4:inf:
+%*3e: infinity:0:4:
+%3e: +nan():0:-1:
+%*3e: +nan():0:-1:
+%3e: +nan(09A_Zaz):0:-1:
+%*3e: +nan(09A_Zaz):0:-1:
+%3e: +0e0:0:-1:
+%*3e: +0e0:0:-1:
+%3e: +0e+0:0:-1:
+%*3e: +0e+0:0:-1:
+%3e: +1.17549435082228750796873653722224568e-38:1:4:0x1:
+%*3e: +1.17549435082228750796873653722224568e-38:0:4:
+%3e: +2.344167378255246830294536494851817472e037:1:4:0x1p1:
+%*3e: +2.344167378255246830294536494851817472e037:0:4:
+%3e: +2.344167378255246830294536494851817472e+37:1:4:0x1p1:
+%*3e: +2.344167378255246830294536494851817472e+37:0:4:
+%3e: +3.40282346638528859811704183484516925e38:1:4:0x1.8p1:
+%*3e: +3.40282346638528859811704183484516925e38:0:4:
+%3e: +3.40282346638528859811704183484516925e+38:1:4:0x1.8p1:
+%*3e: +3.40282346638528859811704183484516925e+38:0:4:
+%3e: +infinity:0:-1:
+%*3e: +infinity:0:-1:
+%48e: :0:-1:
+%*48e: :0:-1:
+%48e: -infinity:1:10:-inf:
+%*48e: -infinity:0:10:
+%48e: -3.40282346638528859811704183484516925e+38:1:43:-0x1.fffffep127:
+%*48e: -3.40282346638528859811704183484516925e+38:0:43:
+%48e: -3.40282346638528859811704183484516925e38:1:42:-0x1.fffffep127:
+%*48e: -3.40282346638528859811704183484516925e38:0:42:
+%48e: -2.344167378255246830294536494851817472e+37:1:44:-0x1.1a2b3cp124:
+%*48e: -2.344167378255246830294536494851817472e+37:0:44:
+%48e: -2.344167378255246830294536494851817472e037:1:44:-0x1.1a2b3cp124:
+%*48e: -2.344167378255246830294536494851817472e037:0:44:
+%48e: -1.17549435082228750796873653722224568e-38:1:43:-0x1p-126:
+%*48e: -1.17549435082228750796873653722224568e-38:0:43:
+%48e: -0e+0:1:6:-0x0:
+%*48e: -0e+0:0:6:
+%48e: -0e0:1:5:-0x0:
+%*48e: -0e0:0:5:
+%48e: -nan(09A_Zaz):1:14:-nan:
+%*48e: -nan(09A_Zaz):0:14:
+%48e: -nan():1:7:-nan:
+%*48e: -nan():0:7:
+%48e: nan():1:6:nan:
+%*48e: nan():0:6:
+%48e: nan(09A_Zaz):1:13:nan:
+%*48e: nan(09A_Zaz):0:13:
+%48e: 0e0:1:4:0x0:
+%*48e: 0e0:0:4:
+%48e: 0e+0:1:5:0x0:
+%*48e: 0e+0:0:5:
+%48e: 1.17549435082228750796873653722224568e-38:1:42:0x1p-126:
+%*48e: 1.17549435082228750796873653722224568e-38:0:42:
+%48e: 2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124:
+%*48e: 2.344167378255246830294536494851817472e037:0:43:
+%48e: 2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124:
+%*48e: 2.344167378255246830294536494851817472e+37:0:43:
+%48e: 3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127:
+%*48e: 3.40282346638528859811704183484516925e38:0:41:
+%48e: 3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127:
+%*48e: 3.40282346638528859811704183484516925e+38:0:42:
+%48e: infinity:1:9:inf:
+%*48e: infinity:0:9:
+%48e: +nan():1:7:nan:
+%*48e: +nan():0:7:
+%48e: +nan(09A_Zaz):1:14:nan:
+%*48e: +nan(09A_Zaz):0:14:
+%48e: +0e0:1:5:0x0:
+%*48e: +0e0:0:5:
+%48e: +0e+0:1:6:0x0:
+%*48e: +0e+0:0:6:
+%48e: +1.17549435082228750796873653722224568e-38:1:43:0x1p-126:
+%*48e: +1.17549435082228750796873653722224568e-38:0:43:
+%48e: +2.344167378255246830294536494851817472e037:1:44:0x1.1a2b3cp124:
+%*48e: +2.344167378255246830294536494851817472e037:0:44:
+%48e: +2.344167378255246830294536494851817472e+37:1:44:0x1.1a2b3cp124:
+%*48e: +2.344167378255246830294536494851817472e+37:0:44:
+%48e: +3.40282346638528859811704183484516925e38:1:42:0x1.fffffep127:
+%*48e: +3.40282346638528859811704183484516925e38:0:42:
+%48e: +3.40282346638528859811704183484516925e+38:1:43:0x1.fffffep127:
+%*48e: +3.40282346638528859811704183484516925e+38:0:43:
+%48e: +infinity:1:10:inf:
+%*48e: +infinity:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input
new file mode 100644
index 0000000..6960b79
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input
@@ -0,0 +1,558 @@
+%E::0:-1:
+%*E::0:-1:
+%E:-INFINITY:1:9:-inf:
+%*E:-INFINITY:0:9:
+%E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127:
+%*E:-3.40282346638528859811704183484516925E+38:0:42:
+%E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127:
+%*E:-3.40282346638528859811704183484516925E38:0:41:
+%E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124:
+%*E:-2.344167378255246830294536494851817472E+37:0:43:
+%E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124:
+%*E:-2.344167378255246830294536494851817472E037:0:43:
+%E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126:
+%*E:-1.17549435082228750796873653722224568E-38:0:42:
+%E:-0E+0:1:5:-0x0:
+%*E:-0E+0:0:5:
+%E:-0E0:1:4:-0x0:
+%*E:-0E0:0:4:
+%E:-NAN(09A_Zaz):1:13:-nan:
+%*E:-NAN(09A_Zaz):0:13:
+%E:-NAN():1:6:-nan:
+%*E:-NAN():0:6:
+%E:NAN():1:5:nan:
+%*E:NAN():0:5:
+%E:NAN(09A_Zaz):1:12:nan:
+%*E:NAN(09A_Zaz):0:12:
+%E:0E0:1:3:0x0:
+%*E:0E0:0:3:
+%E:0E+0:1:4:0x0:
+%*E:0E+0:0:4:
+%E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126:
+%*E:1.17549435082228750796873653722224568E-38:0:41:
+%E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124:
+%*E:2.344167378255246830294536494851817472E037:0:42:
+%E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124:
+%*E:2.344167378255246830294536494851817472E+37:0:42:
+%E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127:
+%*E:3.40282346638528859811704183484516925E38:0:40:
+%E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127:
+%*E:3.40282346638528859811704183484516925E+38:0:41:
+%E:INFINITY:1:8:inf:
+%*E:INFINITY:0:8:
+%E:+NAN():1:6:nan:
+%*E:+NAN():0:6:
+%E:+NAN(09A_Zaz):1:13:nan:
+%*E:+NAN(09A_Zaz):0:13:
+%E:+0E0:1:4:0x0:
+%*E:+0E0:0:4:
+%E:+0E+0:1:5:0x0:
+%*E:+0E+0:0:5:
+%E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126:
+%*E:+1.17549435082228750796873653722224568E-38:0:42:
+%E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124:
+%*E:+2.344167378255246830294536494851817472E037:0:43:
+%E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124:
+%*E:+2.344167378255246830294536494851817472E+37:0:43:
+%E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127:
+%*E:+3.40282346638528859811704183484516925E38:0:41:
+%E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127:
+%*E:+3.40282346638528859811704183484516925E+38:0:42:
+%E:+INFINITY:1:9:inf:
+%*E:+INFINITY:0:9:
+%1E::0:-1:
+%*1E::0:-1:
+%1E:-INFINITY:0:-1:
+%*1E:-INFINITY:0:-1:
+%1E:-3.40282346638528859811704183484516925E+38:0:-1:
+%*1E:-3.40282346638528859811704183484516925E+38:0:-1:
+%1E:-3.40282346638528859811704183484516925E38:0:-1:
+%*1E:-3.40282346638528859811704183484516925E38:0:-1:
+%1E:-2.344167378255246830294536494851817472E+37:0:-1:
+%*1E:-2.344167378255246830294536494851817472E+37:0:-1:
+%1E:-2.344167378255246830294536494851817472E037:0:-1:
+%*1E:-2.344167378255246830294536494851817472E037:0:-1:
+%1E:-1.17549435082228750796873653722224568E-38:0:-1:
+%*1E:-1.17549435082228750796873653722224568E-38:0:-1:
+%1E:-0E+0:0:-1:
+%*1E:-0E+0:0:-1:
+%1E:-0E0:0:-1:
+%*1E:-0E0:0:-1:
+%1E:-NAN(09A_Zaz):0:-1:
+%*1E:-NAN(09A_Zaz):0:-1:
+%1E:-NAN():0:-1:
+%*1E:-NAN():0:-1:
+%1E:NAN():0:-1:
+%*1E:NAN():0:-1:
+%1E:NAN(09A_Zaz):0:-1:
+%*1E:NAN(09A_Zaz):0:-1:
+%1E:0E0:1:1:0x0:
+%*1E:0E0:0:1:
+%1E:0E+0:1:1:0x0:
+%*1E:0E+0:0:1:
+%1E:1.17549435082228750796873653722224568E-38:1:1:0x1:
+%*1E:1.17549435082228750796873653722224568E-38:0:1:
+%1E:2.344167378255246830294536494851817472E037:1:1:0x1p1:
+%*1E:2.344167378255246830294536494851817472E037:0:1:
+%1E:2.344167378255246830294536494851817472E+37:1:1:0x1p1:
+%*1E:2.344167378255246830294536494851817472E+37:0:1:
+%1E:3.40282346638528859811704183484516925E38:1:1:0x1.8p1:
+%*1E:3.40282346638528859811704183484516925E38:0:1:
+%1E:3.40282346638528859811704183484516925E+38:1:1:0x1.8p1:
+%*1E:3.40282346638528859811704183484516925E+38:0:1:
+%1E:INFINITY:0:-1:
+%*1E:INFINITY:0:-1:
+%1E:+NAN():0:-1:
+%*1E:+NAN():0:-1:
+%1E:+NAN(09A_Zaz):0:-1:
+%*1E:+NAN(09A_Zaz):0:-1:
+%1E:+0E0:0:-1:
+%*1E:+0E0:0:-1:
+%1E:+0E+0:0:-1:
+%*1E:+0E+0:0:-1:
+%1E:+1.17549435082228750796873653722224568E-38:0:-1:
+%*1E:+1.17549435082228750796873653722224568E-38:0:-1:
+%1E:+2.344167378255246830294536494851817472E037:0:-1:
+%*1E:+2.344167378255246830294536494851817472E037:0:-1:
+%1E:+2.344167378255246830294536494851817472E+37:0:-1:
+%*1E:+2.344167378255246830294536494851817472E+37:0:-1:
+%1E:+3.40282346638528859811704183484516925E38:0:-1:
+%*1E:+3.40282346638528859811704183484516925E38:0:-1:
+%1E:+3.40282346638528859811704183484516925E+38:0:-1:
+%*1E:+3.40282346638528859811704183484516925E+38:0:-1:
+%1E:+INFINITY:0:-1:
+%*1E:+INFINITY:0:-1:
+%2E::0:-1:
+%*2E::0:-1:
+%2E:-INFINITY:0:-1:
+%*2E:-INFINITY:0:-1:
+%2E:-3.40282346638528859811704183484516925E+38:1:2:-0x1.8p1:
+%*2E:-3.40282346638528859811704183484516925E+38:0:2:
+%2E:-3.40282346638528859811704183484516925E38:1:2:-0x1.8p1:
+%*2E:-3.40282346638528859811704183484516925E38:0:2:
+%2E:-2.344167378255246830294536494851817472E+37:1:2:-0x1p1:
+%*2E:-2.344167378255246830294536494851817472E+37:0:2:
+%2E:-2.344167378255246830294536494851817472E037:1:2:-0x1p1:
+%*2E:-2.344167378255246830294536494851817472E037:0:2:
+%2E:-1.17549435082228750796873653722224568E-38:1:2:-0x1:
+%*2E:-1.17549435082228750796873653722224568E-38:0:2:
+%2E:-0E+0:1:2:-0x0:
+%*2E:-0E+0:0:2:
+%2E:-0E0:1:2:-0x0:
+%*2E:-0E0:0:2:
+%2E:-NAN(09A_Zaz):0:-1:
+%*2E:-NAN(09A_Zaz):0:-1:
+%2E:-NAN():0:-1:
+%*2E:-NAN():0:-1:
+%2E:NAN():0:-1:
+%*2E:NAN():0:-1:
+%2E:NAN(09A_Zaz):0:-1:
+%*2E:NAN(09A_Zaz):0:-1:
+%2E:0E0:0:-1:
+%*2E:0E0:0:-1:
+%2E:0E+0:0:-1:
+%*2E:0E+0:0:-1:
+%2E:1.17549435082228750796873653722224568E-38:1:2:0x1:
+%*2E:1.17549435082228750796873653722224568E-38:0:2:
+%2E:2.344167378255246830294536494851817472E037:1:2:0x1p1:
+%*2E:2.344167378255246830294536494851817472E037:0:2:
+%2E:2.344167378255246830294536494851817472E+37:1:2:0x1p1:
+%*2E:2.344167378255246830294536494851817472E+37:0:2:
+%2E:3.40282346638528859811704183484516925E38:1:2:0x1.8p1:
+%*2E:3.40282346638528859811704183484516925E38:0:2:
+%2E:3.40282346638528859811704183484516925E+38:1:2:0x1.8p1:
+%*2E:3.40282346638528859811704183484516925E+38:0:2:
+%2E:INFINITY:0:-1:
+%*2E:INFINITY:0:-1:
+%2E:+NAN():0:-1:
+%*2E:+NAN():0:-1:
+%2E:+NAN(09A_Zaz):0:-1:
+%*2E:+NAN(09A_Zaz):0:-1:
+%2E:+0E0:1:2:0x0:
+%*2E:+0E0:0:2:
+%2E:+0E+0:1:2:0x0:
+%*2E:+0E+0:0:2:
+%2E:+1.17549435082228750796873653722224568E-38:1:2:0x1:
+%*2E:+1.17549435082228750796873653722224568E-38:0:2:
+%2E:+2.344167378255246830294536494851817472E037:1:2:0x1p1:
+%*2E:+2.344167378255246830294536494851817472E037:0:2:
+%2E:+2.344167378255246830294536494851817472E+37:1:2:0x1p1:
+%*2E:+2.344167378255246830294536494851817472E+37:0:2:
+%2E:+3.40282346638528859811704183484516925E38:1:2:0x1.8p1:
+%*2E:+3.40282346638528859811704183484516925E38:0:2:
+%2E:+3.40282346638528859811704183484516925E+38:1:2:0x1.8p1:
+%*2E:+3.40282346638528859811704183484516925E+38:0:2:
+%2E:+INFINITY:0:-1:
+%*2E:+INFINITY:0:-1:
+%3E::0:-1:
+%*3E::0:-1:
+%3E:-INFINITY:0:-1:
+%*3E:-INFINITY:0:-1:
+%3E:-3.40282346638528859811704183484516925E+38:1:3:-0x1.8p1:
+%*3E:-3.40282346638528859811704183484516925E+38:0:3:
+%3E:-3.40282346638528859811704183484516925E38:1:3:-0x1.8p1:
+%*3E:-3.40282346638528859811704183484516925E38:0:3:
+%3E:-2.344167378255246830294536494851817472E+37:1:3:-0x1p1:
+%*3E:-2.344167378255246830294536494851817472E+37:0:3:
+%3E:-2.344167378255246830294536494851817472E037:1:3:-0x1p1:
+%*3E:-2.344167378255246830294536494851817472E037:0:3:
+%3E:-1.17549435082228750796873653722224568E-38:1:3:-0x1:
+%*3E:-1.17549435082228750796873653722224568E-38:0:3:
+%3E:-0E+0:0:-1:
+%*3E:-0E+0:0:-1:
+%3E:-0E0:0:-1:
+%*3E:-0E0:0:-1:
+%3E:-NAN(09A_Zaz):0:-1:
+%*3E:-NAN(09A_Zaz):0:-1:
+%3E:-NAN():0:-1:
+%*3E:-NAN():0:-1:
+%3E:NAN():1:3:nan:
+%*3E:NAN():0:3:
+%3E:NAN(09A_Zaz):1:3:nan:
+%*3E:NAN(09A_Zaz):0:3:
+%3E:0E0:1:3:0x0:
+%*3E:0E0:0:3:
+%3E:0E+0:0:-1:
+%*3E:0E+0:0:-1:
+%3E:1.17549435082228750796873653722224568E-38:1:3:0x1.19999a:
+%*3E:1.17549435082228750796873653722224568E-38:0:3:
+%3E:2.344167378255246830294536494851817472E037:1:3:0x1.266666p1:
+%*3E:2.344167378255246830294536494851817472E037:0:3:
+%3E:2.344167378255246830294536494851817472E+37:1:3:0x1.266666p1:
+%*3E:2.344167378255246830294536494851817472E+37:0:3:
+%3E:3.40282346638528859811704183484516925E38:1:3:0x1.b33334p1:
+%*3E:3.40282346638528859811704183484516925E38:0:3:
+%3E:3.40282346638528859811704183484516925E+38:1:3:0x1.b33334p1:
+%*3E:3.40282346638528859811704183484516925E+38:0:3:
+%3E:INFINITY:1:3:inf:
+%*3E:INFINITY:0:3:
+%3E:+NAN():0:-1:
+%*3E:+NAN():0:-1:
+%3E:+NAN(09A_Zaz):0:-1:
+%*3E:+NAN(09A_Zaz):0:-1:
+%3E:+0E0:0:-1:
+%*3E:+0E0:0:-1:
+%3E:+0E+0:0:-1:
+%*3E:+0E+0:0:-1:
+%3E:+1.17549435082228750796873653722224568E-38:1:3:0x1:
+%*3E:+1.17549435082228750796873653722224568E-38:0:3:
+%3E:+2.344167378255246830294536494851817472E037:1:3:0x1p1:
+%*3E:+2.344167378255246830294536494851817472E037:0:3:
+%3E:+2.344167378255246830294536494851817472E+37:1:3:0x1p1:
+%*3E:+2.344167378255246830294536494851817472E+37:0:3:
+%3E:+3.40282346638528859811704183484516925E38:1:3:0x1.8p1:
+%*3E:+3.40282346638528859811704183484516925E38:0:3:
+%3E:+3.40282346638528859811704183484516925E+38:1:3:0x1.8p1:
+%*3E:+3.40282346638528859811704183484516925E+38:0:3:
+%3E:+INFINITY:0:-1:
+%*3E:+INFINITY:0:-1:
+%4E::0:-1:
+%*4E::0:-1:
+%4E:-INFINITY:1:4:-inf:
+%*4E:-INFINITY:0:4:
+%4E:-3.40282346638528859811704183484516925E+38:1:4:-0x1.b33334p1:
+%*4E:-3.40282346638528859811704183484516925E+38:0:4:
+%4E:-3.40282346638528859811704183484516925E38:1:4:-0x1.b33334p1:
+%*4E:-3.40282346638528859811704183484516925E38:0:4:
+%4E:-2.344167378255246830294536494851817472E+37:1:4:-0x1.266666p1:
+%*4E:-2.344167378255246830294536494851817472E+37:0:4:
+%4E:-2.344167378255246830294536494851817472E037:1:4:-0x1.266666p1:
+%*4E:-2.344167378255246830294536494851817472E037:0:4:
+%4E:-1.17549435082228750796873653722224568E-38:1:4:-0x1.19999a:
+%*4E:-1.17549435082228750796873653722224568E-38:0:4:
+%4E:-0E+0:0:-1:
+%*4E:-0E+0:0:-1:
+%4E:-0E0:1:4:-0x0:
+%*4E:-0E0:0:4:
+%4E:-NAN(09A_Zaz):1:4:-nan:
+%*4E:-NAN(09A_Zaz):0:4:
+%4E:-NAN():1:4:-nan:
+%*4E:-NAN():0:4:
+%4E:NAN():0:-1:
+%*4E:NAN():0:-1:
+%4E:NAN(09A_Zaz):0:-1:
+%*4E:NAN(09A_Zaz):0:-1:
+%4E:0E0:1:3:0x0:
+%*4E:0E0:0:3:
+%4E:0E+0:1:4:0x0:
+%*4E:0E+0:0:4:
+%4E:1.17549435082228750796873653722224568E-38:1:4:0x1.2b851e:
+%*4E:1.17549435082228750796873653722224568E-38:0:4:
+%4E:2.344167378255246830294536494851817472E037:1:4:0x1.2b851ep1:
+%*4E:2.344167378255246830294536494851817472E037:0:4:
+%4E:2.344167378255246830294536494851817472E+37:1:4:0x1.2b851ep1:
+%*4E:2.344167378255246830294536494851817472E+37:0:4:
+%4E:3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1:
+%*4E:3.40282346638528859811704183484516925E38:0:4:
+%4E:3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1:
+%*4E:3.40282346638528859811704183484516925E+38:0:4:
+%4E:INFINITY:0:-1:
+%*4E:INFINITY:0:-1:
+%4E:+NAN():1:4:nan:
+%*4E:+NAN():0:4:
+%4E:+NAN(09A_Zaz):1:4:nan:
+%*4E:+NAN(09A_Zaz):0:4:
+%4E:+0E0:1:4:0x0:
+%*4E:+0E0:0:4:
+%4E:+0E+0:0:-1:
+%*4E:+0E+0:0:-1:
+%4E:+1.17549435082228750796873653722224568E-38:1:4:0x1.19999a:
+%*4E:+1.17549435082228750796873653722224568E-38:0:4:
+%4E:+2.344167378255246830294536494851817472E037:1:4:0x1.266666p1:
+%*4E:+2.344167378255246830294536494851817472E037:0:4:
+%4E:+2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1:
+%*4E:+2.344167378255246830294536494851817472E+37:0:4:
+%4E:+3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1:
+%*4E:+3.40282346638528859811704183484516925E38:0:4:
+%4E:+3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1:
+%*4E:+3.40282346638528859811704183484516925E+38:0:4:
+%4E:+INFINITY:1:4:inf:
+%*4E:+INFINITY:0:4:
+%40E::0:-1:
+%*40E::0:-1:
+%40E:-INFINITY:1:9:-inf:
+%*40E:-INFINITY:0:9:
+%40E:-3.40282346638528859811704183484516925E+38:0:-1:
+%*40E:-3.40282346638528859811704183484516925E+38:0:-1:
+%40E:-3.40282346638528859811704183484516925E38:1:40:-0x1.a95a5ap11:
+%*40E:-3.40282346638528859811704183484516925E38:0:40:
+%40E:-2.344167378255246830294536494851817472E+37:0:-1:
+%*40E:-2.344167378255246830294536494851817472E+37:0:-1:
+%40E:-2.344167378255246830294536494851817472E037:0:-1:
+%*40E:-2.344167378255246830294536494851817472E037:0:-1:
+%40E:-1.17549435082228750796873653722224568E-38:0:-1:
+%*40E:-1.17549435082228750796873653722224568E-38:0:-1:
+%40E:-0E+0:1:5:-0x0:
+%*40E:-0E+0:0:5:
+%40E:-0E0:1:4:-0x0:
+%*40E:-0E0:0:4:
+%40E:-NAN(09A_Zaz):1:13:-nan:
+%*40E:-NAN(09A_Zaz):0:13:
+%40E:-NAN():1:6:-nan:
+%*40E:-NAN():0:6:
+%40E:NAN():1:5:nan:
+%*40E:NAN():0:5:
+%40E:NAN(09A_Zaz):1:12:nan:
+%*40E:NAN(09A_Zaz):0:12:
+%40E:0E0:1:3:0x0:
+%*40E:0E0:0:3:
+%40E:0E+0:1:4:0x0:
+%*40E:0E+0:0:4:
+%40E:1.17549435082228750796873653722224568E-38:1:40:0x1.342618p-10:
+%*40E:1.17549435082228750796873653722224568E-38:0:40:
+%40E:2.344167378255246830294536494851817472E037:1:40:0x1.2c0daep1:
+%*40E:2.344167378255246830294536494851817472E037:0:40:
+%40E:2.344167378255246830294536494851817472E+37:0:-1:
+%*40E:2.344167378255246830294536494851817472E+37:0:-1:
+%40E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127:
+%*40E:3.40282346638528859811704183484516925E38:0:40:
+%40E:3.40282346638528859811704183484516925E+38:1:40:0x1.a95a5ap11:
+%*40E:3.40282346638528859811704183484516925E+38:0:40:
+%40E:INFINITY:1:8:inf:
+%*40E:INFINITY:0:8:
+%40E:+NAN():1:6:nan:
+%*40E:+NAN():0:6:
+%40E:+NAN(09A_Zaz):1:13:nan:
+%*40E:+NAN(09A_Zaz):0:13:
+%40E:+0E0:1:4:0x0:
+%*40E:+0E0:0:4:
+%40E:+0E+0:1:5:0x0:
+%*40E:+0E+0:0:5:
+%40E:+1.17549435082228750796873653722224568E-38:0:-1:
+%*40E:+1.17549435082228750796873653722224568E-38:0:-1:
+%40E:+2.344167378255246830294536494851817472E037:0:-1:
+%*40E:+2.344167378255246830294536494851817472E037:0:-1:
+%40E:+2.344167378255246830294536494851817472E+37:0:-1:
+%*40E:+2.344167378255246830294536494851817472E+37:0:-1:
+%40E:+3.40282346638528859811704183484516925E38:1:40:0x1.a95a5ap11:
+%*40E:+3.40282346638528859811704183484516925E38:0:40:
+%40E:+3.40282346638528859811704183484516925E+38:0:-1:
+%*40E:+3.40282346638528859811704183484516925E+38:0:-1:
+%40E:+INFINITY:1:9:inf:
+%*40E:+INFINITY:0:9:
+%48E::0:-1:
+%*48E::0:-1:
+%48E:-INFINITY:1:9:-inf:
+%*48E:-INFINITY:0:9:
+%48E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127:
+%*48E:-3.40282346638528859811704183484516925E+38:0:42:
+%48E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127:
+%*48E:-3.40282346638528859811704183484516925E38:0:41:
+%48E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124:
+%*48E:-2.344167378255246830294536494851817472E+37:0:43:
+%48E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124:
+%*48E:-2.344167378255246830294536494851817472E037:0:43:
+%48E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126:
+%*48E:-1.17549435082228750796873653722224568E-38:0:42:
+%48E:-0E+0:1:5:-0x0:
+%*48E:-0E+0:0:5:
+%48E:-0E0:1:4:-0x0:
+%*48E:-0E0:0:4:
+%48E:-NAN(09A_Zaz):1:13:-nan:
+%*48E:-NAN(09A_Zaz):0:13:
+%48E:-NAN():1:6:-nan:
+%*48E:-NAN():0:6:
+%48E:NAN():1:5:nan:
+%*48E:NAN():0:5:
+%48E:NAN(09A_Zaz):1:12:nan:
+%*48E:NAN(09A_Zaz):0:12:
+%48E:0E0:1:3:0x0:
+%*48E:0E0:0:3:
+%48E:0E+0:1:4:0x0:
+%*48E:0E+0:0:4:
+%48E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126:
+%*48E:1.17549435082228750796873653722224568E-38:0:41:
+%48E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124:
+%*48E:2.344167378255246830294536494851817472E037:0:42:
+%48E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124:
+%*48E:2.344167378255246830294536494851817472E+37:0:42:
+%48E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127:
+%*48E:3.40282346638528859811704183484516925E38:0:40:
+%48E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127:
+%*48E:3.40282346638528859811704183484516925E+38:0:41:
+%48E:INFINITY:1:8:inf:
+%*48E:INFINITY:0:8:
+%48E:+NAN():1:6:nan:
+%*48E:+NAN():0:6:
+%48E:+NAN(09A_Zaz):1:13:nan:
+%*48E:+NAN(09A_Zaz):0:13:
+%48E:+0E0:1:4:0x0:
+%*48E:+0E0:0:4:
+%48E:+0E+0:1:5:0x0:
+%*48E:+0E+0:0:5:
+%48E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126:
+%*48E:+1.17549435082228750796873653722224568E-38:0:42:
+%48E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124:
+%*48E:+2.344167378255246830294536494851817472E037:0:43:
+%48E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124:
+%*48E:+2.344167378255246830294536494851817472E+37:0:43:
+%48E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127:
+%*48E:+3.40282346638528859811704183484516925E38:0:41:
+%48E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127:
+%*48E:+3.40282346638528859811704183484516925E+38:0:42:
+%48E:+INFINITY:1:9:inf:
+%*48E:+INFINITY:0:9:
+%3E: :0:-1:
+%*3E: :0:-1:
+%3E: -INFINITY:0:-1:
+%*3E: -INFINITY:0:-1:
+%3E: -3.40282346638528859811704183484516925E+38:1:4:-0x1.8p1:
+%*3E: -3.40282346638528859811704183484516925E+38:0:4:
+%3E: -3.40282346638528859811704183484516925E38:1:4:-0x1.8p1:
+%*3E: -3.40282346638528859811704183484516925E38:0:4:
+%3E: -2.344167378255246830294536494851817472E+37:1:4:-0x1p1:
+%*3E: -2.344167378255246830294536494851817472E+37:0:4:
+%3E: -2.344167378255246830294536494851817472E037:1:4:-0x1p1:
+%*3E: -2.344167378255246830294536494851817472E037:0:4:
+%3E: -1.17549435082228750796873653722224568E-38:1:4:-0x1:
+%*3E: -1.17549435082228750796873653722224568E-38:0:4:
+%3E: -0E+0:0:-1:
+%*3E: -0E+0:0:-1:
+%3E: -0E0:0:-1:
+%*3E: -0E0:0:-1:
+%3E: -NAN(09A_Zaz):0:-1:
+%*3E: -NAN(09A_Zaz):0:-1:
+%3E: -NAN():0:-1:
+%*3E: -NAN():0:-1:
+%3E: NAN():1:4:nan:
+%*3E: NAN():0:4:
+%3E: NAN(09A_Zaz):1:4:nan:
+%*3E: NAN(09A_Zaz):0:4:
+%3E: 0E0:1:4:0x0:
+%*3E: 0E0:0:4:
+%3E: 0E+0:0:-1:
+%*3E: 0E+0:0:-1:
+%3E: 1.17549435082228750796873653722224568E-38:1:4:0x1.19999a:
+%*3E: 1.17549435082228750796873653722224568E-38:0:4:
+%3E: 2.344167378255246830294536494851817472E037:1:4:0x1.266666p1:
+%*3E: 2.344167378255246830294536494851817472E037:0:4:
+%3E: 2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1:
+%*3E: 2.344167378255246830294536494851817472E+37:0:4:
+%3E: 3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1:
+%*3E: 3.40282346638528859811704183484516925E38:0:4:
+%3E: 3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1:
+%*3E: 3.40282346638528859811704183484516925E+38:0:4:
+%3E: INFINITY:1:4:inf:
+%*3E: INFINITY:0:4:
+%3E: +NAN():0:-1:
+%*3E: +NAN():0:-1:
+%3E: +NAN(09A_Zaz):0:-1:
+%*3E: +NAN(09A_Zaz):0:-1:
+%3E: +0E0:0:-1:
+%*3E: +0E0:0:-1:
+%3E: +0E+0:0:-1:
+%*3E: +0E+0:0:-1:
+%3E: +1.17549435082228750796873653722224568E-38:1:4:0x1:
+%*3E: +1.17549435082228750796873653722224568E-38:0:4:
+%3E: +2.344167378255246830294536494851817472E037:1:4:0x1p1:
+%*3E: +2.344167378255246830294536494851817472E037:0:4:
+%3E: +2.344167378255246830294536494851817472E+37:1:4:0x1p1:
+%*3E: +2.344167378255246830294536494851817472E+37:0:4:
+%3E: +3.40282346638528859811704183484516925E38:1:4:0x1.8p1:
+%*3E: +3.40282346638528859811704183484516925E38:0:4:
+%3E: +3.40282346638528859811704183484516925E+38:1:4:0x1.8p1:
+%*3E: +3.40282346638528859811704183484516925E+38:0:4:
+%3E: +INFINITY:0:-1:
+%*3E: +INFINITY:0:-1:
+%48E: :0:-1:
+%*48E: :0:-1:
+%48E: -INFINITY:1:10:-inf:
+%*48E: -INFINITY:0:10:
+%48E: -3.40282346638528859811704183484516925E+38:1:43:-0x1.fffffep127:
+%*48E: -3.40282346638528859811704183484516925E+38:0:43:
+%48E: -3.40282346638528859811704183484516925E38:1:42:-0x1.fffffep127:
+%*48E: -3.40282346638528859811704183484516925E38:0:42:
+%48E: -2.344167378255246830294536494851817472E+37:1:44:-0x1.1a2b3cp124:
+%*48E: -2.344167378255246830294536494851817472E+37:0:44:
+%48E: -2.344167378255246830294536494851817472E037:1:44:-0x1.1a2b3cp124:
+%*48E: -2.344167378255246830294536494851817472E037:0:44:
+%48E: -1.17549435082228750796873653722224568E-38:1:43:-0x1p-126:
+%*48E: -1.17549435082228750796873653722224568E-38:0:43:
+%48E: -0E+0:1:6:-0x0:
+%*48E: -0E+0:0:6:
+%48E: -0E0:1:5:-0x0:
+%*48E: -0E0:0:5:
+%48E: -NAN(09A_Zaz):1:14:-nan:
+%*48E: -NAN(09A_Zaz):0:14:
+%48E: -NAN():1:7:-nan:
+%*48E: -NAN():0:7:
+%48E: NAN():1:6:nan:
+%*48E: NAN():0:6:
+%48E: NAN(09A_Zaz):1:13:nan:
+%*48E: NAN(09A_Zaz):0:13:
+%48E: 0E0:1:4:0x0:
+%*48E: 0E0:0:4:
+%48E: 0E+0:1:5:0x0:
+%*48E: 0E+0:0:5:
+%48E: 1.17549435082228750796873653722224568E-38:1:42:0x1p-126:
+%*48E: 1.17549435082228750796873653722224568E-38:0:42:
+%48E: 2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124:
+%*48E: 2.344167378255246830294536494851817472E037:0:43:
+%48E: 2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124:
+%*48E: 2.344167378255246830294536494851817472E+37:0:43:
+%48E: 3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127:
+%*48E: 3.40282346638528859811704183484516925E38:0:41:
+%48E: 3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127:
+%*48E: 3.40282346638528859811704183484516925E+38:0:42:
+%48E: INFINITY:1:9:inf:
+%*48E: INFINITY:0:9:
+%48E: +NAN():1:7:nan:
+%*48E: +NAN():0:7:
+%48E: +NAN(09A_Zaz):1:14:nan:
+%*48E: +NAN(09A_Zaz):0:14:
+%48E: +0E0:1:5:0x0:
+%*48E: +0E0:0:5:
+%48E: +0E+0:1:6:0x0:
+%*48E: +0E+0:0:6:
+%48E: +1.17549435082228750796873653722224568E-38:1:43:0x1p-126:
+%*48E: +1.17549435082228750796873653722224568E-38:0:43:
+%48E: +2.344167378255246830294536494851817472E037:1:44:0x1.1a2b3cp124:
+%*48E: +2.344167378255246830294536494851817472E037:0:44:
+%48E: +2.344167378255246830294536494851817472E+37:1:44:0x1.1a2b3cp124:
+%*48E: +2.344167378255246830294536494851817472E+37:0:44:
+%48E: +3.40282346638528859811704183484516925E38:1:42:0x1.fffffep127:
+%*48E: +3.40282346638528859811704183484516925E38:0:42:
+%48E: +3.40282346638528859811704183484516925E+38:1:43:0x1.fffffep127:
+%*48E: +3.40282346638528859811704183484516925E+38:0:43:
+%48E: +INFINITY:1:10:inf:
+%*48E: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input
new file mode 100644
index 0000000..57d9677
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input
@@ -0,0 +1,558 @@
+%f::0:-1:
+%*f::0:-1:
+%f:-infinity:1:9:-inf:
+%*f:-infinity:0:9:
+%f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127:
+%*f:-0340282346638528859811704183484516925440.0:0:43:
+%f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*f:-340282346638528859811704183484516925440:0:40:
+%f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124:
+%*f:-023441673782552468302945364948518174720.0:0:42:
+%f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*f:-23441673782552468302945364948518174720:0:39:
+%f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126:
+%*f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%f:-0.0:1:4:-0x0:
+%*f:-0.0:0:4:
+%f:-0:1:2:-0x0:
+%*f:-0:0:2:
+%f:-nan(09A_Zaz):1:13:-nan:
+%*f:-nan(09A_Zaz):0:13:
+%f:-nan():1:6:-nan:
+%*f:-nan():0:6:
+%f:nan():1:5:nan:
+%*f:nan():0:5:
+%f:nan(09A_Zaz):1:12:nan:
+%*f:nan(09A_Zaz):0:12:
+%f:0:1:1:0x0:
+%*f:0:0:1:
+%f:0.0:1:3:0x0:
+%*f:0.0:0:3:
+%f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126:
+%*f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75:
+%f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*f:23441673782552468302945364948518174720:0:38:
+%f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*f:023441673782552468302945364948518174720.0:0:41:
+%f:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*f:340282346638528859811704183484516925440:0:39:
+%f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127:
+%*f:0340282346638528859811704183484516925440.0:0:42:
+%f:infinity:1:8:inf:
+%*f:infinity:0:8:
+%f:+nan():1:6:nan:
+%*f:+nan():0:6:
+%f:+nan(09A_Zaz):1:13:nan:
+%*f:+nan(09A_Zaz):0:13:
+%f:+0:1:2:0x0:
+%*f:+0:0:2:
+%f:+0.0:1:4:0x0:
+%*f:+0.0:0:4:
+%f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*f:+23441673782552468302945364948518174720:0:39:
+%f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*f:+023441673782552468302945364948518174720.0:0:42:
+%f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*f:+340282346638528859811704183484516925440:0:40:
+%f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*f:+0340282346638528859811704183484516925440.0:0:43:
+%f:+infinity:1:9:inf:
+%*f:+infinity:0:9:
+%1f::0:-1:
+%*1f::0:-1:
+%1f:-infinity:0:-1:
+%*1f:-infinity:0:-1:
+%1f:-0340282346638528859811704183484516925440.0:0:-1:
+%*1f:-0340282346638528859811704183484516925440.0:0:-1:
+%1f:-340282346638528859811704183484516925440:0:-1:
+%*1f:-340282346638528859811704183484516925440:0:-1:
+%1f:-023441673782552468302945364948518174720.0:0:-1:
+%*1f:-023441673782552468302945364948518174720.0:0:-1:
+%1f:-23441673782552468302945364948518174720:0:-1:
+%*1f:-23441673782552468302945364948518174720:0:-1:
+%1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%*1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%1f:-0.0:0:-1:
+%*1f:-0.0:0:-1:
+%1f:-0:0:-1:
+%*1f:-0:0:-1:
+%1f:-nan(09A_Zaz):0:-1:
+%*1f:-nan(09A_Zaz):0:-1:
+%1f:-nan():0:-1:
+%*1f:-nan():0:-1:
+%1f:nan():0:-1:
+%*1f:nan():0:-1:
+%1f:nan(09A_Zaz):0:-1:
+%*1f:nan(09A_Zaz):0:-1:
+%1f:0:1:1:0x0:
+%*1f:0:0:1:
+%1f:0.0:1:1:0x0:
+%*1f:0.0:0:1:
+%1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0:
+%*1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1:
+%1f:23441673782552468302945364948518174720:1:1:0x1p1:
+%*1f:23441673782552468302945364948518174720:0:1:
+%1f:023441673782552468302945364948518174720.0:1:1:0x0:
+%*1f:023441673782552468302945364948518174720.0:0:1:
+%1f:340282346638528859811704183484516925440:1:1:0x1.8p1:
+%*1f:340282346638528859811704183484516925440:0:1:
+%1f:0340282346638528859811704183484516925440.0:1:1:0x0:
+%*1f:0340282346638528859811704183484516925440.0:0:1:
+%1f:infinity:0:-1:
+%*1f:infinity:0:-1:
+%1f:+nan():0:-1:
+%*1f:+nan():0:-1:
+%1f:+nan(09A_Zaz):0:-1:
+%*1f:+nan(09A_Zaz):0:-1:
+%1f:+0:0:-1:
+%*1f:+0:0:-1:
+%1f:+0.0:0:-1:
+%*1f:+0.0:0:-1:
+%1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%*1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%1f:+23441673782552468302945364948518174720:0:-1:
+%*1f:+23441673782552468302945364948518174720:0:-1:
+%1f:+023441673782552468302945364948518174720.0:0:-1:
+%*1f:+023441673782552468302945364948518174720.0:0:-1:
+%1f:+340282346638528859811704183484516925440:0:-1:
+%*1f:+340282346638528859811704183484516925440:0:-1:
+%1f:+0340282346638528859811704183484516925440.0:0:-1:
+%*1f:+0340282346638528859811704183484516925440.0:0:-1:
+%1f:+infinity:0:-1:
+%*1f:+infinity:0:-1:
+%2f::0:-1:
+%*2f::0:-1:
+%2f:-infinity:0:-1:
+%*2f:-infinity:0:-1:
+%2f:-0340282346638528859811704183484516925440.0:1:2:-0x0:
+%*2f:-0340282346638528859811704183484516925440.0:0:2:
+%2f:-340282346638528859811704183484516925440:1:2:-0x1.8p1:
+%*2f:-340282346638528859811704183484516925440:0:2:
+%2f:-023441673782552468302945364948518174720.0:1:2:-0x0:
+%*2f:-023441673782552468302945364948518174720.0:0:2:
+%2f:-23441673782552468302945364948518174720:1:2:-0x1p1:
+%*2f:-23441673782552468302945364948518174720:0:2:
+%2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0:
+%*2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2f:-0.0:1:2:-0x0:
+%*2f:-0.0:0:2:
+%2f:-0:1:2:-0x0:
+%*2f:-0:0:2:
+%2f:-nan(09A_Zaz):0:-1:
+%*2f:-nan(09A_Zaz):0:-1:
+%2f:-nan():0:-1:
+%*2f:-nan():0:-1:
+%2f:nan():0:-1:
+%*2f:nan():0:-1:
+%2f:nan(09A_Zaz):0:-1:
+%*2f:nan(09A_Zaz):0:-1:
+%2f:0:1:1:0x0:
+%*2f:0:0:1:
+%2f:0.0:1:2:0x0:
+%*2f:0.0:0:2:
+%2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0:
+%*2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2f:23441673782552468302945364948518174720:1:2:0x1.7p4:
+%*2f:23441673782552468302945364948518174720:0:2:
+%2f:023441673782552468302945364948518174720.0:1:2:0x1p1:
+%*2f:023441673782552468302945364948518174720.0:0:2:
+%2f:340282346638528859811704183484516925440:1:2:0x1.1p5:
+%*2f:340282346638528859811704183484516925440:0:2:
+%2f:0340282346638528859811704183484516925440.0:1:2:0x1.8p1:
+%*2f:0340282346638528859811704183484516925440.0:0:2:
+%2f:infinity:0:-1:
+%*2f:infinity:0:-1:
+%2f:+nan():0:-1:
+%*2f:+nan():0:-1:
+%2f:+nan(09A_Zaz):0:-1:
+%*2f:+nan(09A_Zaz):0:-1:
+%2f:+0:1:2:0x0:
+%*2f:+0:0:2:
+%2f:+0.0:1:2:0x0:
+%*2f:+0.0:0:2:
+%2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0:
+%*2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2f:+23441673782552468302945364948518174720:1:2:0x1p1:
+%*2f:+23441673782552468302945364948518174720:0:2:
+%2f:+023441673782552468302945364948518174720.0:1:2:0x0:
+%*2f:+023441673782552468302945364948518174720.0:0:2:
+%2f:+340282346638528859811704183484516925440:1:2:0x1.8p1:
+%*2f:+340282346638528859811704183484516925440:0:2:
+%2f:+0340282346638528859811704183484516925440.0:1:2:0x0:
+%*2f:+0340282346638528859811704183484516925440.0:0:2:
+%2f:+infinity:0:-1:
+%*2f:+infinity:0:-1:
+%3f::0:-1:
+%*3f::0:-1:
+%3f:-infinity:0:-1:
+%*3f:-infinity:0:-1:
+%3f:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1:
+%*3f:-0340282346638528859811704183484516925440.0:0:3:
+%3f:-340282346638528859811704183484516925440:1:3:-0x1.1p5:
+%*3f:-340282346638528859811704183484516925440:0:3:
+%3f:-023441673782552468302945364948518174720.0:1:3:-0x1p1:
+%*3f:-023441673782552468302945364948518174720.0:0:3:
+%3f:-23441673782552468302945364948518174720:1:3:-0x1.7p4:
+%*3f:-23441673782552468302945364948518174720:0:3:
+%3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0:
+%*3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3f:-0.0:1:3:-0x0:
+%*3f:-0.0:0:3:
+%3f:-0:1:2:-0x0:
+%*3f:-0:0:2:
+%3f:-nan(09A_Zaz):0:-1:
+%*3f:-nan(09A_Zaz):0:-1:
+%3f:-nan():0:-1:
+%*3f:-nan():0:-1:
+%3f:nan():1:3:nan:
+%*3f:nan():0:3:
+%3f:nan(09A_Zaz):1:3:nan:
+%*3f:nan(09A_Zaz):0:3:
+%3f:0:1:1:0x0:
+%*3f:0:0:1:
+%3f:0.0:1:3:0x0:
+%*3f:0.0:0:3:
+%3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0:
+%*3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3f:23441673782552468302945364948518174720:1:3:0x1.d4p7:
+%*3f:23441673782552468302945364948518174720:0:3:
+%3f:023441673782552468302945364948518174720.0:1:3:0x1.7p4:
+%*3f:023441673782552468302945364948518174720.0:0:3:
+%3f:340282346638528859811704183484516925440:1:3:0x1.54p8:
+%*3f:340282346638528859811704183484516925440:0:3:
+%3f:0340282346638528859811704183484516925440.0:1:3:0x1.1p5:
+%*3f:0340282346638528859811704183484516925440.0:0:3:
+%3f:infinity:1:3:inf:
+%*3f:infinity:0:3:
+%3f:+nan():0:-1:
+%*3f:+nan():0:-1:
+%3f:+nan(09A_Zaz):0:-1:
+%*3f:+nan(09A_Zaz):0:-1:
+%3f:+0:1:2:0x0:
+%*3f:+0:0:2:
+%3f:+0.0:1:3:0x0:
+%*3f:+0.0:0:3:
+%3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0:
+%*3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3f:+23441673782552468302945364948518174720:1:3:0x1.7p4:
+%*3f:+23441673782552468302945364948518174720:0:3:
+%3f:+023441673782552468302945364948518174720.0:1:3:0x1p1:
+%*3f:+023441673782552468302945364948518174720.0:0:3:
+%3f:+340282346638528859811704183484516925440:1:3:0x1.1p5:
+%*3f:+340282346638528859811704183484516925440:0:3:
+%3f:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1:
+%*3f:+0340282346638528859811704183484516925440.0:0:3:
+%3f:+infinity:0:-1:
+%*3f:+infinity:0:-1:
+%4f::0:-1:
+%*4f::0:-1:
+%4f:-infinity:1:4:-inf:
+%*4f:-infinity:0:4:
+%4f:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5:
+%*4f:-0340282346638528859811704183484516925440.0:0:4:
+%4f:-340282346638528859811704183484516925440:1:4:-0x1.54p8:
+%*4f:-340282346638528859811704183484516925440:0:4:
+%4f:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4:
+%*4f:-023441673782552468302945364948518174720.0:0:4:
+%4f:-23441673782552468302945364948518174720:1:4:-0x1.d4p7:
+%*4f:-23441673782552468302945364948518174720:0:4:
+%4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0:
+%*4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4f:-0.0:1:4:-0x0:
+%*4f:-0.0:0:4:
+%4f:-0:1:2:-0x0:
+%*4f:-0:0:2:
+%4f:-nan(09A_Zaz):1:4:-nan:
+%*4f:-nan(09A_Zaz):0:4:
+%4f:-nan():1:4:-nan:
+%*4f:-nan():0:4:
+%4f:nan():0:-1:
+%*4f:nan():0:-1:
+%4f:nan(09A_Zaz):0:-1:
+%*4f:nan(09A_Zaz):0:-1:
+%4f:0:1:1:0x0:
+%*4f:0:0:1:
+%4f:0.0:1:3:0x0:
+%*4f:0.0:0:3:
+%4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4f:23441673782552468302945364948518174720:1:4:0x1.25p11:
+%*4f:23441673782552468302945364948518174720:0:4:
+%4f:023441673782552468302945364948518174720.0:1:4:0x1.d4p7:
+%*4f:023441673782552468302945364948518174720.0:0:4:
+%4f:340282346638528859811704183484516925440:1:4:0x1.a94p11:
+%*4f:340282346638528859811704183484516925440:0:4:
+%4f:0340282346638528859811704183484516925440.0:1:4:0x1.54p8:
+%*4f:0340282346638528859811704183484516925440.0:0:4:
+%4f:infinity:0:-1:
+%*4f:infinity:0:-1:
+%4f:+nan():1:4:nan:
+%*4f:+nan():0:4:
+%4f:+nan(09A_Zaz):1:4:nan:
+%*4f:+nan(09A_Zaz):0:4:
+%4f:+0:1:2:0x0:
+%*4f:+0:0:2:
+%4f:+0.0:1:4:0x0:
+%*4f:+0.0:0:4:
+%4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4f:+23441673782552468302945364948518174720:1:4:0x1.d4p7:
+%*4f:+23441673782552468302945364948518174720:0:4:
+%4f:+023441673782552468302945364948518174720.0:1:4:0x1.7p4:
+%*4f:+023441673782552468302945364948518174720.0:0:4:
+%4f:+340282346638528859811704183484516925440:1:4:0x1.54p8:
+%*4f:+340282346638528859811704183484516925440:0:4:
+%4f:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5:
+%*4f:+0340282346638528859811704183484516925440.0:0:4:
+%4f:+infinity:1:4:inf:
+%*4f:+infinity:0:4:
+%41f::0:-1:
+%*41f::0:-1:
+%41f:-infinity:1:9:-inf:
+%*41f:-infinity:0:9:
+%41f:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127:
+%*41f:-0340282346638528859811704183484516925440.0:0:41:
+%41f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*41f:-340282346638528859811704183484516925440:0:40:
+%41f:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124:
+%*41f:-023441673782552468302945364948518174720.0:0:41:
+%41f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*41f:-23441673782552468302945364948518174720:0:39:
+%41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127:
+%*41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41f:-0.0:1:4:-0x0:
+%*41f:-0.0:0:4:
+%41f:-0:1:2:-0x0:
+%*41f:-0:0:2:
+%41f:-nan(09A_Zaz):1:13:-nan:
+%*41f:-nan(09A_Zaz):0:13:
+%41f:-nan():1:6:-nan:
+%*41f:-nan():0:6:
+%41f:nan():1:5:nan:
+%*41f:nan():0:5:
+%41f:nan(09A_Zaz):1:12:nan:
+%*41f:nan(09A_Zaz):0:12:
+%41f:0:1:1:0x0:
+%*41f:0:0:1:
+%41f:0.0:1:3:0x0:
+%*41f:0.0:0:3:
+%41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127:
+%*41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*41f:23441673782552468302945364948518174720:0:38:
+%41f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*41f:023441673782552468302945364948518174720.0:0:41:
+%41f:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*41f:340282346638528859811704183484516925440:0:39:
+%41f:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127:
+%*41f:0340282346638528859811704183484516925440.0:0:41:
+%41f:infinity:1:8:inf:
+%*41f:infinity:0:8:
+%41f:+nan():1:6:nan:
+%*41f:+nan():0:6:
+%41f:+nan(09A_Zaz):1:13:nan:
+%*41f:+nan(09A_Zaz):0:13:
+%41f:+0:1:2:0x0:
+%*41f:+0:0:2:
+%41f:+0.0:1:4:0x0:
+%*41f:+0.0:0:4:
+%41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127:
+%*41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*41f:+23441673782552468302945364948518174720:0:39:
+%41f:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*41f:+023441673782552468302945364948518174720.0:0:41:
+%41f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*41f:+340282346638528859811704183484516925440:0:40:
+%41f:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127:
+%*41f:+0340282346638528859811704183484516925440.0:0:41:
+%41f:+infinity:1:9:inf:
+%*41f:+infinity:0:9:
+%80f::0:-1:
+%*80f::0:-1:
+%80f:-infinity:1:9:-inf:
+%*80f:-infinity:0:9:
+%80f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127:
+%*80f:-0340282346638528859811704183484516925440.0:0:43:
+%80f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*80f:-340282346638528859811704183484516925440:0:40:
+%80f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124:
+%*80f:-023441673782552468302945364948518174720.0:0:42:
+%80f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*80f:-23441673782552468302945364948518174720:0:39:
+%80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126:
+%*80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80f:-0.0:1:4:-0x0:
+%*80f:-0.0:0:4:
+%80f:-0:1:2:-0x0:
+%*80f:-0:0:2:
+%80f:-nan(09A_Zaz):1:13:-nan:
+%*80f:-nan(09A_Zaz):0:13:
+%80f:-nan():1:6:-nan:
+%*80f:-nan():0:6:
+%80f:nan():1:5:nan:
+%*80f:nan():0:5:
+%80f:nan(09A_Zaz):1:12:nan:
+%*80f:nan(09A_Zaz):0:12:
+%80f:0:1:1:0x0:
+%*80f:0:0:1:
+%80f:0.0:1:3:0x0:
+%*80f:0.0:0:3:
+%80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126:
+%*80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75:
+%80f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*80f:23441673782552468302945364948518174720:0:38:
+%80f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*80f:023441673782552468302945364948518174720.0:0:41:
+%80f:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*80f:340282346638528859811704183484516925440:0:39:
+%80f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127:
+%*80f:0340282346638528859811704183484516925440.0:0:42:
+%80f:infinity:1:8:inf:
+%*80f:infinity:0:8:
+%80f:+nan():1:6:nan:
+%*80f:+nan():0:6:
+%80f:+nan(09A_Zaz):1:13:nan:
+%*80f:+nan(09A_Zaz):0:13:
+%80f:+0:1:2:0x0:
+%*80f:+0:0:2:
+%80f:+0.0:1:4:0x0:
+%*80f:+0.0:0:4:
+%80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*80f:+23441673782552468302945364948518174720:0:39:
+%80f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*80f:+023441673782552468302945364948518174720.0:0:42:
+%80f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*80f:+340282346638528859811704183484516925440:0:40:
+%80f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*80f:+0340282346638528859811704183484516925440.0:0:43:
+%80f:+infinity:1:9:inf:
+%*80f:+infinity:0:9:
+%3f: :0:-1:
+%*3f: :0:-1:
+%3f: -infinity:0:-1:
+%*3f: -infinity:0:-1:
+%3f: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1:
+%*3f: -0340282346638528859811704183484516925440.0:0:4:
+%3f: -340282346638528859811704183484516925440:1:4:-0x1.1p5:
+%*3f: -340282346638528859811704183484516925440:0:4:
+%3f: -023441673782552468302945364948518174720.0:1:4:-0x1p1:
+%*3f: -023441673782552468302945364948518174720.0:0:4:
+%3f: -23441673782552468302945364948518174720:1:4:-0x1.7p4:
+%*3f: -23441673782552468302945364948518174720:0:4:
+%3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0:
+%*3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3f: -0.0:1:4:-0x0:
+%*3f: -0.0:0:4:
+%3f: -0:1:3:-0x0:
+%*3f: -0:0:3:
+%3f: -nan(09A_Zaz):0:-1:
+%*3f: -nan(09A_Zaz):0:-1:
+%3f: -nan():0:-1:
+%*3f: -nan():0:-1:
+%3f: nan():1:4:nan:
+%*3f: nan():0:4:
+%3f: nan(09A_Zaz):1:4:nan:
+%*3f: nan(09A_Zaz):0:4:
+%3f: 0:1:2:0x0:
+%*3f: 0:0:2:
+%3f: 0.0:1:4:0x0:
+%*3f: 0.0:0:4:
+%3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3f: 23441673782552468302945364948518174720:1:4:0x1.d4p7:
+%*3f: 23441673782552468302945364948518174720:0:4:
+%3f: 023441673782552468302945364948518174720.0:1:4:0x1.7p4:
+%*3f: 023441673782552468302945364948518174720.0:0:4:
+%3f: 340282346638528859811704183484516925440:1:4:0x1.54p8:
+%*3f: 340282346638528859811704183484516925440:0:4:
+%3f: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5:
+%*3f: 0340282346638528859811704183484516925440.0:0:4:
+%3f: infinity:1:4:inf:
+%*3f: infinity:0:4:
+%3f: +nan():0:-1:
+%*3f: +nan():0:-1:
+%3f: +nan(09A_Zaz):0:-1:
+%*3f: +nan(09A_Zaz):0:-1:
+%3f: +0:1:3:0x0:
+%*3f: +0:0:3:
+%3f: +0.0:1:4:0x0:
+%*3f: +0.0:0:4:
+%3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3f: +23441673782552468302945364948518174720:1:4:0x1.7p4:
+%*3f: +23441673782552468302945364948518174720:0:4:
+%3f: +023441673782552468302945364948518174720.0:1:4:0x1p1:
+%*3f: +023441673782552468302945364948518174720.0:0:4:
+%3f: +340282346638528859811704183484516925440:1:4:0x1.1p5:
+%*3f: +340282346638528859811704183484516925440:0:4:
+%3f: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1:
+%*3f: +0340282346638528859811704183484516925440.0:0:4:
+%3f: +infinity:0:-1:
+%*3f: +infinity:0:-1:
+%80f: :0:-1:
+%*80f: :0:-1:
+%80f: -infinity:1:10:-inf:
+%*80f: -infinity:0:10:
+%80f: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127:
+%*80f: -0340282346638528859811704183484516925440.0:0:44:
+%80f: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127:
+%*80f: -340282346638528859811704183484516925440:0:41:
+%80f: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124:
+%*80f: -023441673782552468302945364948518174720.0:0:43:
+%80f: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124:
+%*80f: -23441673782552468302945364948518174720:0:40:
+%80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126:
+%*80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77:
+%80f: -0.0:1:5:-0x0:
+%*80f: -0.0:0:5:
+%80f: -0:1:3:-0x0:
+%*80f: -0:0:3:
+%80f: -nan(09A_Zaz):1:14:-nan:
+%*80f: -nan(09A_Zaz):0:14:
+%80f: -nan():1:7:-nan:
+%*80f: -nan():0:7:
+%80f: nan():1:6:nan:
+%*80f: nan():0:6:
+%80f: nan(09A_Zaz):1:13:nan:
+%*80f: nan(09A_Zaz):0:13:
+%80f: 0:1:2:0x0:
+%*80f: 0:0:2:
+%80f: 0.0:1:4:0x0:
+%*80f: 0.0:0:4:
+%80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80f: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*80f: 23441673782552468302945364948518174720:0:39:
+%80f: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*80f: 023441673782552468302945364948518174720.0:0:42:
+%80f: 340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*80f: 340282346638528859811704183484516925440:0:40:
+%80f: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*80f: 0340282346638528859811704183484516925440.0:0:43:
+%80f: infinity:1:9:inf:
+%*80f: infinity:0:9:
+%80f: +nan():1:7:nan:
+%*80f: +nan():0:7:
+%80f: +nan(09A_Zaz):1:14:nan:
+%*80f: +nan(09A_Zaz):0:14:
+%80f: +0:1:3:0x0:
+%*80f: +0:0:3:
+%80f: +0.0:1:5:0x0:
+%*80f: +0.0:0:5:
+%80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126:
+%*80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77:
+%80f: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124:
+%*80f: +23441673782552468302945364948518174720:0:40:
+%80f: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124:
+%*80f: +023441673782552468302945364948518174720.0:0:43:
+%80f: +340282346638528859811704183484516925440:1:41:0x1.fffffep127:
+%*80f: +340282346638528859811704183484516925440:0:41:
+%80f: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127:
+%*80f: +0340282346638528859811704183484516925440.0:0:44:
+%80f: +infinity:1:10:inf:
+%*80f: +infinity:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input
new file mode 100644
index 0000000..3ec8ed0
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input
@@ -0,0 +1,558 @@
+%F::0:-1:
+%*F::0:-1:
+%F:-INFINITY:1:9:-inf:
+%*F:-INFINITY:0:9:
+%F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127:
+%*F:-0340282346638528859811704183484516925440.0:0:43:
+%F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*F:-340282346638528859811704183484516925440:0:40:
+%F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124:
+%*F:-023441673782552468302945364948518174720.0:0:42:
+%F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*F:-23441673782552468302945364948518174720:0:39:
+%F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126:
+%*F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%F:-0.0:1:4:-0x0:
+%*F:-0.0:0:4:
+%F:-0:1:2:-0x0:
+%*F:-0:0:2:
+%F:-NAN(09A_Zaz):1:13:-nan:
+%*F:-NAN(09A_Zaz):0:13:
+%F:-NAN():1:6:-nan:
+%*F:-NAN():0:6:
+%F:NAN():1:5:nan:
+%*F:NAN():0:5:
+%F:NAN(09A_Zaz):1:12:nan:
+%*F:NAN(09A_Zaz):0:12:
+%F:0:1:1:0x0:
+%*F:0:0:1:
+%F:0.0:1:3:0x0:
+%*F:0.0:0:3:
+%F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126:
+%*F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75:
+%F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*F:23441673782552468302945364948518174720:0:38:
+%F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*F:023441673782552468302945364948518174720.0:0:41:
+%F:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*F:340282346638528859811704183484516925440:0:39:
+%F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127:
+%*F:0340282346638528859811704183484516925440.0:0:42:
+%F:INFINITY:1:8:inf:
+%*F:INFINITY:0:8:
+%F:+NAN():1:6:nan:
+%*F:+NAN():0:6:
+%F:+NAN(09A_Zaz):1:13:nan:
+%*F:+NAN(09A_Zaz):0:13:
+%F:+0:1:2:0x0:
+%*F:+0:0:2:
+%F:+0.0:1:4:0x0:
+%*F:+0.0:0:4:
+%F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*F:+23441673782552468302945364948518174720:0:39:
+%F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*F:+023441673782552468302945364948518174720.0:0:42:
+%F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*F:+340282346638528859811704183484516925440:0:40:
+%F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*F:+0340282346638528859811704183484516925440.0:0:43:
+%F:+INFINITY:1:9:inf:
+%*F:+INFINITY:0:9:
+%1F::0:-1:
+%*1F::0:-1:
+%1F:-INFINITY:0:-1:
+%*1F:-INFINITY:0:-1:
+%1F:-0340282346638528859811704183484516925440.0:0:-1:
+%*1F:-0340282346638528859811704183484516925440.0:0:-1:
+%1F:-340282346638528859811704183484516925440:0:-1:
+%*1F:-340282346638528859811704183484516925440:0:-1:
+%1F:-023441673782552468302945364948518174720.0:0:-1:
+%*1F:-023441673782552468302945364948518174720.0:0:-1:
+%1F:-23441673782552468302945364948518174720:0:-1:
+%*1F:-23441673782552468302945364948518174720:0:-1:
+%1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%*1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%1F:-0.0:0:-1:
+%*1F:-0.0:0:-1:
+%1F:-0:0:-1:
+%*1F:-0:0:-1:
+%1F:-NAN(09A_Zaz):0:-1:
+%*1F:-NAN(09A_Zaz):0:-1:
+%1F:-NAN():0:-1:
+%*1F:-NAN():0:-1:
+%1F:NAN():0:-1:
+%*1F:NAN():0:-1:
+%1F:NAN(09A_Zaz):0:-1:
+%*1F:NAN(09A_Zaz):0:-1:
+%1F:0:1:1:0x0:
+%*1F:0:0:1:
+%1F:0.0:1:1:0x0:
+%*1F:0.0:0:1:
+%1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0:
+%*1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1:
+%1F:23441673782552468302945364948518174720:1:1:0x1p1:
+%*1F:23441673782552468302945364948518174720:0:1:
+%1F:023441673782552468302945364948518174720.0:1:1:0x0:
+%*1F:023441673782552468302945364948518174720.0:0:1:
+%1F:340282346638528859811704183484516925440:1:1:0x1.8p1:
+%*1F:340282346638528859811704183484516925440:0:1:
+%1F:0340282346638528859811704183484516925440.0:1:1:0x0:
+%*1F:0340282346638528859811704183484516925440.0:0:1:
+%1F:INFINITY:0:-1:
+%*1F:INFINITY:0:-1:
+%1F:+NAN():0:-1:
+%*1F:+NAN():0:-1:
+%1F:+NAN(09A_Zaz):0:-1:
+%*1F:+NAN(09A_Zaz):0:-1:
+%1F:+0:0:-1:
+%*1F:+0:0:-1:
+%1F:+0.0:0:-1:
+%*1F:+0.0:0:-1:
+%1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%*1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1:
+%1F:+23441673782552468302945364948518174720:0:-1:
+%*1F:+23441673782552468302945364948518174720:0:-1:
+%1F:+023441673782552468302945364948518174720.0:0:-1:
+%*1F:+023441673782552468302945364948518174720.0:0:-1:
+%1F:+340282346638528859811704183484516925440:0:-1:
+%*1F:+340282346638528859811704183484516925440:0:-1:
+%1F:+0340282346638528859811704183484516925440.0:0:-1:
+%*1F:+0340282346638528859811704183484516925440.0:0:-1:
+%1F:+INFINITY:0:-1:
+%*1F:+INFINITY:0:-1:
+%2F::0:-1:
+%*2F::0:-1:
+%2F:-INFINITY:0:-1:
+%*2F:-INFINITY:0:-1:
+%2F:-0340282346638528859811704183484516925440.0:1:2:-0x0:
+%*2F:-0340282346638528859811704183484516925440.0:0:2:
+%2F:-340282346638528859811704183484516925440:1:2:-0x1.8p1:
+%*2F:-340282346638528859811704183484516925440:0:2:
+%2F:-023441673782552468302945364948518174720.0:1:2:-0x0:
+%*2F:-023441673782552468302945364948518174720.0:0:2:
+%2F:-23441673782552468302945364948518174720:1:2:-0x1p1:
+%*2F:-23441673782552468302945364948518174720:0:2:
+%2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0:
+%*2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2F:-0.0:1:2:-0x0:
+%*2F:-0.0:0:2:
+%2F:-0:1:2:-0x0:
+%*2F:-0:0:2:
+%2F:-NAN(09A_Zaz):0:-1:
+%*2F:-NAN(09A_Zaz):0:-1:
+%2F:-NAN():0:-1:
+%*2F:-NAN():0:-1:
+%2F:NAN():0:-1:
+%*2F:NAN():0:-1:
+%2F:NAN(09A_Zaz):0:-1:
+%*2F:NAN(09A_Zaz):0:-1:
+%2F:0:1:1:0x0:
+%*2F:0:0:1:
+%2F:0.0:1:2:0x0:
+%*2F:0.0:0:2:
+%2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0:
+%*2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2F:23441673782552468302945364948518174720:1:2:0x1.7p4:
+%*2F:23441673782552468302945364948518174720:0:2:
+%2F:023441673782552468302945364948518174720.0:1:2:0x1p1:
+%*2F:023441673782552468302945364948518174720.0:0:2:
+%2F:340282346638528859811704183484516925440:1:2:0x1.1p5:
+%*2F:340282346638528859811704183484516925440:0:2:
+%2F:0340282346638528859811704183484516925440.0:1:2:0x1.8p1:
+%*2F:0340282346638528859811704183484516925440.0:0:2:
+%2F:INFINITY:0:-1:
+%*2F:INFINITY:0:-1:
+%2F:+NAN():0:-1:
+%*2F:+NAN():0:-1:
+%2F:+NAN(09A_Zaz):0:-1:
+%*2F:+NAN(09A_Zaz):0:-1:
+%2F:+0:1:2:0x0:
+%*2F:+0:0:2:
+%2F:+0.0:1:2:0x0:
+%*2F:+0.0:0:2:
+%2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0:
+%*2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2:
+%2F:+23441673782552468302945364948518174720:1:2:0x1p1:
+%*2F:+23441673782552468302945364948518174720:0:2:
+%2F:+023441673782552468302945364948518174720.0:1:2:0x0:
+%*2F:+023441673782552468302945364948518174720.0:0:2:
+%2F:+340282346638528859811704183484516925440:1:2:0x1.8p1:
+%*2F:+340282346638528859811704183484516925440:0:2:
+%2F:+0340282346638528859811704183484516925440.0:1:2:0x0:
+%*2F:+0340282346638528859811704183484516925440.0:0:2:
+%2F:+INFINITY:0:-1:
+%*2F:+INFINITY:0:-1:
+%3F::0:-1:
+%*3F::0:-1:
+%3F:-INFINITY:0:-1:
+%*3F:-INFINITY:0:-1:
+%3F:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1:
+%*3F:-0340282346638528859811704183484516925440.0:0:3:
+%3F:-340282346638528859811704183484516925440:1:3:-0x1.1p5:
+%*3F:-340282346638528859811704183484516925440:0:3:
+%3F:-023441673782552468302945364948518174720.0:1:3:-0x1p1:
+%*3F:-023441673782552468302945364948518174720.0:0:3:
+%3F:-23441673782552468302945364948518174720:1:3:-0x1.7p4:
+%*3F:-23441673782552468302945364948518174720:0:3:
+%3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0:
+%*3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3F:-0.0:1:3:-0x0:
+%*3F:-0.0:0:3:
+%3F:-0:1:2:-0x0:
+%*3F:-0:0:2:
+%3F:-NAN(09A_Zaz):0:-1:
+%*3F:-NAN(09A_Zaz):0:-1:
+%3F:-NAN():0:-1:
+%*3F:-NAN():0:-1:
+%3F:NAN():1:3:nan:
+%*3F:NAN():0:3:
+%3F:NAN(09A_Zaz):1:3:nan:
+%*3F:NAN(09A_Zaz):0:3:
+%3F:0:1:1:0x0:
+%*3F:0:0:1:
+%3F:0.0:1:3:0x0:
+%*3F:0.0:0:3:
+%3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0:
+%*3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3F:23441673782552468302945364948518174720:1:3:0x1.d4p7:
+%*3F:23441673782552468302945364948518174720:0:3:
+%3F:023441673782552468302945364948518174720.0:1:3:0x1.7p4:
+%*3F:023441673782552468302945364948518174720.0:0:3:
+%3F:340282346638528859811704183484516925440:1:3:0x1.54p8:
+%*3F:340282346638528859811704183484516925440:0:3:
+%3F:0340282346638528859811704183484516925440.0:1:3:0x1.1p5:
+%*3F:0340282346638528859811704183484516925440.0:0:3:
+%3F:INFINITY:1:3:inf:
+%*3F:INFINITY:0:3:
+%3F:+NAN():0:-1:
+%*3F:+NAN():0:-1:
+%3F:+NAN(09A_Zaz):0:-1:
+%*3F:+NAN(09A_Zaz):0:-1:
+%3F:+0:1:2:0x0:
+%*3F:+0:0:2:
+%3F:+0.0:1:3:0x0:
+%*3F:+0.0:0:3:
+%3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0:
+%*3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3:
+%3F:+23441673782552468302945364948518174720:1:3:0x1.7p4:
+%*3F:+23441673782552468302945364948518174720:0:3:
+%3F:+023441673782552468302945364948518174720.0:1:3:0x1p1:
+%*3F:+023441673782552468302945364948518174720.0:0:3:
+%3F:+340282346638528859811704183484516925440:1:3:0x1.1p5:
+%*3F:+340282346638528859811704183484516925440:0:3:
+%3F:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1:
+%*3F:+0340282346638528859811704183484516925440.0:0:3:
+%3F:+INFINITY:0:-1:
+%*3F:+INFINITY:0:-1:
+%4F::0:-1:
+%*4F::0:-1:
+%4F:-INFINITY:1:4:-inf:
+%*4F:-INFINITY:0:4:
+%4F:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5:
+%*4F:-0340282346638528859811704183484516925440.0:0:4:
+%4F:-340282346638528859811704183484516925440:1:4:-0x1.54p8:
+%*4F:-340282346638528859811704183484516925440:0:4:
+%4F:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4:
+%*4F:-023441673782552468302945364948518174720.0:0:4:
+%4F:-23441673782552468302945364948518174720:1:4:-0x1.d4p7:
+%*4F:-23441673782552468302945364948518174720:0:4:
+%4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0:
+%*4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4F:-0.0:1:4:-0x0:
+%*4F:-0.0:0:4:
+%4F:-0:1:2:-0x0:
+%*4F:-0:0:2:
+%4F:-NAN(09A_Zaz):1:4:-nan:
+%*4F:-NAN(09A_Zaz):0:4:
+%4F:-NAN():1:4:-nan:
+%*4F:-NAN():0:4:
+%4F:NAN():0:-1:
+%*4F:NAN():0:-1:
+%4F:NAN(09A_Zaz):0:-1:
+%*4F:NAN(09A_Zaz):0:-1:
+%4F:0:1:1:0x0:
+%*4F:0:0:1:
+%4F:0.0:1:3:0x0:
+%*4F:0.0:0:3:
+%4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4F:23441673782552468302945364948518174720:1:4:0x1.25p11:
+%*4F:23441673782552468302945364948518174720:0:4:
+%4F:023441673782552468302945364948518174720.0:1:4:0x1.d4p7:
+%*4F:023441673782552468302945364948518174720.0:0:4:
+%4F:340282346638528859811704183484516925440:1:4:0x1.a94p11:
+%*4F:340282346638528859811704183484516925440:0:4:
+%4F:0340282346638528859811704183484516925440.0:1:4:0x1.54p8:
+%*4F:0340282346638528859811704183484516925440.0:0:4:
+%4F:INFINITY:0:-1:
+%*4F:INFINITY:0:-1:
+%4F:+NAN():1:4:nan:
+%*4F:+NAN():0:4:
+%4F:+NAN(09A_Zaz):1:4:nan:
+%*4F:+NAN(09A_Zaz):0:4:
+%4F:+0:1:2:0x0:
+%*4F:+0:0:2:
+%4F:+0.0:1:4:0x0:
+%*4F:+0.0:0:4:
+%4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%4F:+23441673782552468302945364948518174720:1:4:0x1.d4p7:
+%*4F:+23441673782552468302945364948518174720:0:4:
+%4F:+023441673782552468302945364948518174720.0:1:4:0x1.7p4:
+%*4F:+023441673782552468302945364948518174720.0:0:4:
+%4F:+340282346638528859811704183484516925440:1:4:0x1.54p8:
+%*4F:+340282346638528859811704183484516925440:0:4:
+%4F:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5:
+%*4F:+0340282346638528859811704183484516925440.0:0:4:
+%4F:+INFINITY:1:4:inf:
+%*4F:+INFINITY:0:4:
+%41F::0:-1:
+%*41F::0:-1:
+%41F:-INFINITY:1:9:-inf:
+%*41F:-INFINITY:0:9:
+%41F:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127:
+%*41F:-0340282346638528859811704183484516925440.0:0:41:
+%41F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*41F:-340282346638528859811704183484516925440:0:40:
+%41F:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124:
+%*41F:-023441673782552468302945364948518174720.0:0:41:
+%41F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*41F:-23441673782552468302945364948518174720:0:39:
+%41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127:
+%*41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41F:-0.0:1:4:-0x0:
+%*41F:-0.0:0:4:
+%41F:-0:1:2:-0x0:
+%*41F:-0:0:2:
+%41F:-NAN(09A_Zaz):1:13:-nan:
+%*41F:-NAN(09A_Zaz):0:13:
+%41F:-NAN():1:6:-nan:
+%*41F:-NAN():0:6:
+%41F:NAN():1:5:nan:
+%*41F:NAN():0:5:
+%41F:NAN(09A_Zaz):1:12:nan:
+%*41F:NAN(09A_Zaz):0:12:
+%41F:0:1:1:0x0:
+%*41F:0:0:1:
+%41F:0.0:1:3:0x0:
+%*41F:0.0:0:3:
+%41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127:
+%*41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*41F:23441673782552468302945364948518174720:0:38:
+%41F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*41F:023441673782552468302945364948518174720.0:0:41:
+%41F:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*41F:340282346638528859811704183484516925440:0:39:
+%41F:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127:
+%*41F:0340282346638528859811704183484516925440.0:0:41:
+%41F:INFINITY:1:8:inf:
+%*41F:INFINITY:0:8:
+%41F:+NAN():1:6:nan:
+%*41F:+NAN():0:6:
+%41F:+NAN(09A_Zaz):1:13:nan:
+%*41F:+NAN(09A_Zaz):0:13:
+%41F:+0:1:2:0x0:
+%*41F:+0:0:2:
+%41F:+0.0:1:4:0x0:
+%*41F:+0.0:0:4:
+%41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127:
+%*41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41:
+%41F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*41F:+23441673782552468302945364948518174720:0:39:
+%41F:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*41F:+023441673782552468302945364948518174720.0:0:41:
+%41F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*41F:+340282346638528859811704183484516925440:0:40:
+%41F:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127:
+%*41F:+0340282346638528859811704183484516925440.0:0:41:
+%41F:+INFINITY:1:9:inf:
+%*41F:+INFINITY:0:9:
+%80F::0:-1:
+%*80F::0:-1:
+%80F:-INFINITY:1:9:-inf:
+%*80F:-INFINITY:0:9:
+%80F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127:
+%*80F:-0340282346638528859811704183484516925440.0:0:43:
+%80F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127:
+%*80F:-340282346638528859811704183484516925440:0:40:
+%80F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124:
+%*80F:-023441673782552468302945364948518174720.0:0:42:
+%80F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124:
+%*80F:-23441673782552468302945364948518174720:0:39:
+%80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126:
+%*80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80F:-0.0:1:4:-0x0:
+%*80F:-0.0:0:4:
+%80F:-0:1:2:-0x0:
+%*80F:-0:0:2:
+%80F:-NAN(09A_Zaz):1:13:-nan:
+%*80F:-NAN(09A_Zaz):0:13:
+%80F:-NAN():1:6:-nan:
+%*80F:-NAN():0:6:
+%80F:NAN():1:5:nan:
+%*80F:NAN():0:5:
+%80F:NAN(09A_Zaz):1:12:nan:
+%*80F:NAN(09A_Zaz):0:12:
+%80F:0:1:1:0x0:
+%*80F:0:0:1:
+%80F:0.0:1:3:0x0:
+%*80F:0.0:0:3:
+%80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126:
+%*80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75:
+%80F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124:
+%*80F:23441673782552468302945364948518174720:0:38:
+%80F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124:
+%*80F:023441673782552468302945364948518174720.0:0:41:
+%80F:340282346638528859811704183484516925440:1:39:0x1.fffffep127:
+%*80F:340282346638528859811704183484516925440:0:39:
+%80F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127:
+%*80F:0340282346638528859811704183484516925440.0:0:42:
+%80F:INFINITY:1:8:inf:
+%*80F:INFINITY:0:8:
+%80F:+NAN():1:6:nan:
+%*80F:+NAN():0:6:
+%80F:+NAN(09A_Zaz):1:13:nan:
+%*80F:+NAN(09A_Zaz):0:13:
+%80F:+0:1:2:0x0:
+%*80F:+0:0:2:
+%80F:+0.0:1:4:0x0:
+%*80F:+0.0:0:4:
+%80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*80F:+23441673782552468302945364948518174720:0:39:
+%80F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*80F:+023441673782552468302945364948518174720.0:0:42:
+%80F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*80F:+340282346638528859811704183484516925440:0:40:
+%80F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*80F:+0340282346638528859811704183484516925440.0:0:43:
+%80F:+INFINITY:1:9:inf:
+%*80F:+INFINITY:0:9:
+%3F: :0:-1:
+%*3F: :0:-1:
+%3F: -INFINITY:0:-1:
+%*3F: -INFINITY:0:-1:
+%3F: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1:
+%*3F: -0340282346638528859811704183484516925440.0:0:4:
+%3F: -340282346638528859811704183484516925440:1:4:-0x1.1p5:
+%*3F: -340282346638528859811704183484516925440:0:4:
+%3F: -023441673782552468302945364948518174720.0:1:4:-0x1p1:
+%*3F: -023441673782552468302945364948518174720.0:0:4:
+%3F: -23441673782552468302945364948518174720:1:4:-0x1.7p4:
+%*3F: -23441673782552468302945364948518174720:0:4:
+%3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0:
+%*3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3F: -0.0:1:4:-0x0:
+%*3F: -0.0:0:4:
+%3F: -0:1:3:-0x0:
+%*3F: -0:0:3:
+%3F: -NAN(09A_Zaz):0:-1:
+%*3F: -NAN(09A_Zaz):0:-1:
+%3F: -NAN():0:-1:
+%*3F: -NAN():0:-1:
+%3F: NAN():1:4:nan:
+%*3F: NAN():0:4:
+%3F: NAN(09A_Zaz):1:4:nan:
+%*3F: NAN(09A_Zaz):0:4:
+%3F: 0:1:2:0x0:
+%*3F: 0:0:2:
+%3F: 0.0:1:4:0x0:
+%*3F: 0.0:0:4:
+%3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3F: 23441673782552468302945364948518174720:1:4:0x1.d4p7:
+%*3F: 23441673782552468302945364948518174720:0:4:
+%3F: 023441673782552468302945364948518174720.0:1:4:0x1.7p4:
+%*3F: 023441673782552468302945364948518174720.0:0:4:
+%3F: 340282346638528859811704183484516925440:1:4:0x1.54p8:
+%*3F: 340282346638528859811704183484516925440:0:4:
+%3F: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5:
+%*3F: 0340282346638528859811704183484516925440.0:0:4:
+%3F: INFINITY:1:4:inf:
+%*3F: INFINITY:0:4:
+%3F: +NAN():0:-1:
+%*3F: +NAN():0:-1:
+%3F: +NAN(09A_Zaz):0:-1:
+%*3F: +NAN(09A_Zaz):0:-1:
+%3F: +0:1:3:0x0:
+%*3F: +0:0:3:
+%3F: +0.0:1:4:0x0:
+%*3F: +0.0:0:4:
+%3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0:
+%*3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4:
+%3F: +23441673782552468302945364948518174720:1:4:0x1.7p4:
+%*3F: +23441673782552468302945364948518174720:0:4:
+%3F: +023441673782552468302945364948518174720.0:1:4:0x1p1:
+%*3F: +023441673782552468302945364948518174720.0:0:4:
+%3F: +340282346638528859811704183484516925440:1:4:0x1.1p5:
+%*3F: +340282346638528859811704183484516925440:0:4:
+%3F: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1:
+%*3F: +0340282346638528859811704183484516925440.0:0:4:
+%3F: +INFINITY:0:-1:
+%*3F: +INFINITY:0:-1:
+%80F: :0:-1:
+%*80F: :0:-1:
+%80F: -INFINITY:1:10:-inf:
+%*80F: -INFINITY:0:10:
+%80F: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127:
+%*80F: -0340282346638528859811704183484516925440.0:0:44:
+%80F: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127:
+%*80F: -340282346638528859811704183484516925440:0:41:
+%80F: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124:
+%*80F: -023441673782552468302945364948518174720.0:0:43:
+%80F: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124:
+%*80F: -23441673782552468302945364948518174720:0:40:
+%80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126:
+%*80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77:
+%80F: -0.0:1:5:-0x0:
+%*80F: -0.0:0:5:
+%80F: -0:1:3:-0x0:
+%*80F: -0:0:3:
+%80F: -NAN(09A_Zaz):1:14:-nan:
+%*80F: -NAN(09A_Zaz):0:14:
+%80F: -NAN():1:7:-nan:
+%*80F: -NAN():0:7:
+%80F: NAN():1:6:nan:
+%*80F: NAN():0:6:
+%80F: NAN(09A_Zaz):1:13:nan:
+%*80F: NAN(09A_Zaz):0:13:
+%80F: 0:1:2:0x0:
+%*80F: 0:0:2:
+%80F: 0.0:1:4:0x0:
+%*80F: 0.0:0:4:
+%80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126:
+%*80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76:
+%80F: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124:
+%*80F: 23441673782552468302945364948518174720:0:39:
+%80F: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124:
+%*80F: 023441673782552468302945364948518174720.0:0:42:
+%80F: 340282346638528859811704183484516925440:1:40:0x1.fffffep127:
+%*80F: 340282346638528859811704183484516925440:0:40:
+%80F: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127:
+%*80F: 0340282346638528859811704183484516925440.0:0:43:
+%80F: INFINITY:1:9:inf:
+%*80F: INFINITY:0:9:
+%80F: +NAN():1:7:nan:
+%*80F: +NAN():0:7:
+%80F: +NAN(09A_Zaz):1:14:nan:
+%*80F: +NAN(09A_Zaz):0:14:
+%80F: +0:1:3:0x0:
+%*80F: +0:0:3:
+%80F: +0.0:1:5:0x0:
+%*80F: +0.0:0:5:
+%80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126:
+%*80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77:
+%80F: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124:
+%*80F: +23441673782552468302945364948518174720:0:40:
+%80F: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124:
+%*80F: +023441673782552468302945364948518174720.0:0:43:
+%80F: +340282346638528859811704183484516925440:1:41:0x1.fffffep127:
+%*80F: +340282346638528859811704183484516925440:0:41:
+%80F: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127:
+%*80F: +0340282346638528859811704183484516925440.0:0:44:
+%80F: +INFINITY:1:10:inf:
+%*80F: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input
new file mode 100644
index 0000000..9e78ab6
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input
@@ -0,0 +1,682 @@
+%g::0:-1:
+%*g::0:-1:
+%g:-infinity:1:9:-inf:
+%*g:-infinity:0:9:
+%g:-0xf.fffffp+124:1:15:-0x1.fffffep127:
+%*g:-0xf.fffffp+124:0:15:
+%g:-0x7.fffff8p125:1:15:-0x1.fffffep127:
+%*g:-0x7.fffff8p125:0:15:
+%g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124:
+%*g:-0x2.345678p+123:0:16:
+%g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124:
+%*g:-0x2.345678p0123:0:16:
+%g:-0x8p-129:1:9:-0x1p-126:
+%*g:-0x8p-129:0:9:
+%g:-0x0p+0:1:7:-0x0:
+%*g:-0x0p+0:0:7:
+%g:-0x0p0:1:6:-0x0:
+%*g:-0x0p0:0:6:
+%g:-nan(09A_Zaz):1:13:-nan:
+%*g:-nan(09A_Zaz):0:13:
+%g:-nan():1:6:-nan:
+%*g:-nan():0:6:
+%g:nan():1:5:nan:
+%*g:nan():0:5:
+%g:nan(09A_Zaz):1:12:nan:
+%*g:nan(09A_Zaz):0:12:
+%g:0x0p0:1:5:0x0:
+%*g:0x0p0:0:5:
+%g:0x0p+0:1:6:0x0:
+%*g:0x0p+0:0:6:
+%g:0x8p-129:1:8:0x1p-126:
+%*g:0x8p-129:0:8:
+%g:0x2.345678p0123:1:15:0x1.1a2b3cp124:
+%*g:0x2.345678p0123:0:15:
+%g:0x2.345678p+123:1:15:0x1.1a2b3cp124:
+%*g:0x2.345678p+123:0:15:
+%g:0x7.fffff8p125:1:14:0x1.fffffep127:
+%*g:0x7.fffff8p125:0:14:
+%g:0xf.fffffp+124:1:14:0x1.fffffep127:
+%*g:0xf.fffffp+124:0:14:
+%g:infinity:1:8:inf:
+%*g:infinity:0:8:
+%g:+nan():1:6:nan:
+%*g:+nan():0:6:
+%g:+nan(09A_Zaz):1:13:nan:
+%*g:+nan(09A_Zaz):0:13:
+%g:+0x0p0:1:6:0x0:
+%*g:+0x0p0:0:6:
+%g:+0x0p+0:1:7:0x0:
+%*g:+0x0p+0:0:7:
+%g:+0x8p-129:1:9:0x1p-126:
+%*g:+0x8p-129:0:9:
+%g:+0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*g:+0x2.345678p0123:0:16:
+%g:+0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*g:+0x2.345678p+123:0:16:
+%g:+0x7.fffff8p125:1:15:0x1.fffffep127:
+%*g:+0x7.fffff8p125:0:15:
+%g:+0xf.fffffp+124:1:15:0x1.fffffep127:
+%*g:+0xf.fffffp+124:0:15:
+%g:+infinity:1:9:inf:
+%*g:+infinity:0:9:
+%1g::0:-1:
+%*1g::0:-1:
+%1g:-infinity:0:-1:
+%*1g:-infinity:0:-1:
+%1g:-0xf.fffffp+124:0:-1:
+%*1g:-0xf.fffffp+124:0:-1:
+%1g:-0x7.fffff8p125:0:-1:
+%*1g:-0x7.fffff8p125:0:-1:
+%1g:-0x2.345678p+123:0:-1:
+%*1g:-0x2.345678p+123:0:-1:
+%1g:-0x2.345678p0123:0:-1:
+%*1g:-0x2.345678p0123:0:-1:
+%1g:-0x8p-129:0:-1:
+%*1g:-0x8p-129:0:-1:
+%1g:-0x0p+0:0:-1:
+%*1g:-0x0p+0:0:-1:
+%1g:-0x0p0:0:-1:
+%*1g:-0x0p0:0:-1:
+%1g:-nan(09A_Zaz):0:-1:
+%*1g:-nan(09A_Zaz):0:-1:
+%1g:-nan():0:-1:
+%*1g:-nan():0:-1:
+%1g:nan():0:-1:
+%*1g:nan():0:-1:
+%1g:nan(09A_Zaz):0:-1:
+%*1g:nan(09A_Zaz):0:-1:
+%1g:0x0p0:1:1:0x0:
+%*1g:0x0p0:0:1:
+%1g:0x0p+0:1:1:0x0:
+%*1g:0x0p+0:0:1:
+%1g:0x8p-129:1:1:0x0:
+%*1g:0x8p-129:0:1:
+%1g:0x2.345678p0123:1:1:0x0:
+%*1g:0x2.345678p0123:0:1:
+%1g:0x2.345678p+123:1:1:0x0:
+%*1g:0x2.345678p+123:0:1:
+%1g:0x7.fffff8p125:1:1:0x0:
+%*1g:0x7.fffff8p125:0:1:
+%1g:0xf.fffffp+124:1:1:0x0:
+%*1g:0xf.fffffp+124:0:1:
+%1g:infinity:0:-1:
+%*1g:infinity:0:-1:
+%1g:+nan():0:-1:
+%*1g:+nan():0:-1:
+%1g:+nan(09A_Zaz):0:-1:
+%*1g:+nan(09A_Zaz):0:-1:
+%1g:+0x0p0:0:-1:
+%*1g:+0x0p0:0:-1:
+%1g:+0x0p+0:0:-1:
+%*1g:+0x0p+0:0:-1:
+%1g:+0x8p-129:0:-1:
+%*1g:+0x8p-129:0:-1:
+%1g:+0x2.345678p0123:0:-1:
+%*1g:+0x2.345678p0123:0:-1:
+%1g:+0x2.345678p+123:0:-1:
+%*1g:+0x2.345678p+123:0:-1:
+%1g:+0x7.fffff8p125:0:-1:
+%*1g:+0x7.fffff8p125:0:-1:
+%1g:+0xf.fffffp+124:0:-1:
+%*1g:+0xf.fffffp+124:0:-1:
+%1g:+infinity:0:-1:
+%*1g:+infinity:0:-1:
+%2g::0:-1:
+%*2g::0:-1:
+%2g:-infinity:0:-1:
+%*2g:-infinity:0:-1:
+%2g:-0xf.fffffp+124:1:2:-0x0:
+%*2g:-0xf.fffffp+124:0:2:
+%2g:-0x7.fffff8p125:1:2:-0x0:
+%*2g:-0x7.fffff8p125:0:2:
+%2g:-0x2.345678p+123:1:2:-0x0:
+%*2g:-0x2.345678p+123:0:2:
+%2g:-0x2.345678p0123:1:2:-0x0:
+%*2g:-0x2.345678p0123:0:2:
+%2g:-0x8p-129:1:2:-0x0:
+%*2g:-0x8p-129:0:2:
+%2g:-0x0p+0:1:2:-0x0:
+%*2g:-0x0p+0:0:2:
+%2g:-0x0p0:1:2:-0x0:
+%*2g:-0x0p0:0:2:
+%2g:-nan(09A_Zaz):0:-1:
+%*2g:-nan(09A_Zaz):0:-1:
+%2g:-nan():0:-1:
+%*2g:-nan():0:-1:
+%2g:nan():0:-1:
+%*2g:nan():0:-1:
+%2g:nan(09A_Zaz):0:-1:
+%*2g:nan(09A_Zaz):0:-1:
+%2g:0x0p0:0:-1:
+%*2g:0x0p0:0:-1:
+%2g:0x0p+0:0:-1:
+%*2g:0x0p+0:0:-1:
+%2g:0x8p-129:0:-1:
+%*2g:0x8p-129:0:-1:
+%2g:0x2.345678p0123:0:-1:
+%*2g:0x2.345678p0123:0:-1:
+%2g:0x2.345678p+123:0:-1:
+%*2g:0x2.345678p+123:0:-1:
+%2g:0x7.fffff8p125:0:-1:
+%*2g:0x7.fffff8p125:0:-1:
+%2g:0xf.fffffp+124:0:-1:
+%*2g:0xf.fffffp+124:0:-1:
+%2g:infinity:0:-1:
+%*2g:infinity:0:-1:
+%2g:+nan():0:-1:
+%*2g:+nan():0:-1:
+%2g:+nan(09A_Zaz):0:-1:
+%*2g:+nan(09A_Zaz):0:-1:
+%2g:+0x0p0:1:2:0x0:
+%*2g:+0x0p0:0:2:
+%2g:+0x0p+0:1:2:0x0:
+%*2g:+0x0p+0:0:2:
+%2g:+0x8p-129:1:2:0x0:
+%*2g:+0x8p-129:0:2:
+%2g:+0x2.345678p0123:1:2:0x0:
+%*2g:+0x2.345678p0123:0:2:
+%2g:+0x2.345678p+123:1:2:0x0:
+%*2g:+0x2.345678p+123:0:2:
+%2g:+0x7.fffff8p125:1:2:0x0:
+%*2g:+0x7.fffff8p125:0:2:
+%2g:+0xf.fffffp+124:1:2:0x0:
+%*2g:+0xf.fffffp+124:0:2:
+%2g:+infinity:0:-1:
+%*2g:+infinity:0:-1:
+%3g::0:-1:
+%*3g::0:-1:
+%3g:-infinity:0:-1:
+%*3g:-infinity:0:-1:
+%3g:-0xf.fffffp+124:0:-1:
+%*3g:-0xf.fffffp+124:0:-1:
+%3g:-0x7.fffff8p125:0:-1:
+%*3g:-0x7.fffff8p125:0:-1:
+%3g:-0x2.345678p+123:0:-1:
+%*3g:-0x2.345678p+123:0:-1:
+%3g:-0x2.345678p0123:0:-1:
+%*3g:-0x2.345678p0123:0:-1:
+%3g:-0x8p-129:0:-1:
+%*3g:-0x8p-129:0:-1:
+%3g:-0x0p+0:0:-1:
+%*3g:-0x0p+0:0:-1:
+%3g:-0x0p0:0:-1:
+%*3g:-0x0p0:0:-1:
+%3g:-nan(09A_Zaz):0:-1:
+%*3g:-nan(09A_Zaz):0:-1:
+%3g:-nan():0:-1:
+%*3g:-nan():0:-1:
+%3g:nan():1:3:nan:
+%*3g:nan():0:3:
+%3g:nan(09A_Zaz):1:3:nan:
+%*3g:nan(09A_Zaz):0:3:
+%3g:0x0p0:1:3:0x0:
+%*3g:0x0p0:0:3:
+%3g:0x0p+0:1:3:0x0:
+%*3g:0x0p+0:0:3:
+%3g:0x8p-129:1:3:0x1p3:
+%*3g:0x8p-129:0:3:
+%3g:0x2.345678p0123:1:3:0x1p1:
+%*3g:0x2.345678p0123:0:3:
+%3g:0x2.345678p+123:1:3:0x1p1:
+%*3g:0x2.345678p+123:0:3:
+%3g:0x7.fffff8p125:1:3:0x1.cp2:
+%*3g:0x7.fffff8p125:0:3:
+%3g:0xf.fffffp+124:1:3:0x1.ep3:
+%*3g:0xf.fffffp+124:0:3:
+%3g:infinity:1:3:inf:
+%*3g:infinity:0:3:
+%3g:+nan():0:-1:
+%*3g:+nan():0:-1:
+%3g:+nan(09A_Zaz):0:-1:
+%*3g:+nan(09A_Zaz):0:-1:
+%3g:+0x0p0:0:-1:
+%*3g:+0x0p0:0:-1:
+%3g:+0x0p+0:0:-1:
+%*3g:+0x0p+0:0:-1:
+%3g:+0x8p-129:0:-1:
+%*3g:+0x8p-129:0:-1:
+%3g:+0x2.345678p0123:0:-1:
+%*3g:+0x2.345678p0123:0:-1:
+%3g:+0x2.345678p+123:0:-1:
+%*3g:+0x2.345678p+123:0:-1:
+%3g:+0x7.fffff8p125:0:-1:
+%*3g:+0x7.fffff8p125:0:-1:
+%3g:+0xf.fffffp+124:0:-1:
+%*3g:+0xf.fffffp+124:0:-1:
+%3g:+infinity:0:-1:
+%*3g:+infinity:0:-1:
+%4g::0:-1:
+%*4g::0:-1:
+%4g:-infinity:1:4:-inf:
+%*4g:-infinity:0:4:
+%4g:-0xf.fffffp+124:1:4:-0x1.ep3:
+%*4g:-0xf.fffffp+124:0:4:
+%4g:-0x7.fffff8p125:1:4:-0x1.cp2:
+%*4g:-0x7.fffff8p125:0:4:
+%4g:-0x2.345678p+123:1:4:-0x1p1:
+%*4g:-0x2.345678p+123:0:4:
+%4g:-0x2.345678p0123:1:4:-0x1p1:
+%*4g:-0x2.345678p0123:0:4:
+%4g:-0x8p-129:1:4:-0x1p3:
+%*4g:-0x8p-129:0:4:
+%4g:-0x0p+0:1:4:-0x0:
+%*4g:-0x0p+0:0:4:
+%4g:-0x0p0:1:4:-0x0:
+%*4g:-0x0p0:0:4:
+%4g:-nan(09A_Zaz):1:4:-nan:
+%*4g:-nan(09A_Zaz):0:4:
+%4g:-nan():1:4:-nan:
+%*4g:-nan():0:4:
+%4g:nan():0:-1:
+%*4g:nan():0:-1:
+%4g:nan(09A_Zaz):0:-1:
+%*4g:nan(09A_Zaz):0:-1:
+%4g:0x0p0:0:-1:
+%*4g:0x0p0:0:-1:
+%4g:0x0p+0:0:-1:
+%*4g:0x0p+0:0:-1:
+%4g:0x8p-129:0:-1:
+%*4g:0x8p-129:0:-1:
+%4g:0x2.345678p0123:1:4:0x1p1:
+%*4g:0x2.345678p0123:0:4:
+%4g:0x2.345678p+123:1:4:0x1p1:
+%*4g:0x2.345678p+123:0:4:
+%4g:0x7.fffff8p125:1:4:0x1.cp2:
+%*4g:0x7.fffff8p125:0:4:
+%4g:0xf.fffffp+124:1:4:0x1.ep3:
+%*4g:0xf.fffffp+124:0:4:
+%4g:infinity:0:-1:
+%*4g:infinity:0:-1:
+%4g:+nan():1:4:nan:
+%*4g:+nan():0:4:
+%4g:+nan(09A_Zaz):1:4:nan:
+%*4g:+nan(09A_Zaz):0:4:
+%4g:+0x0p0:1:4:0x0:
+%*4g:+0x0p0:0:4:
+%4g:+0x0p+0:1:4:0x0:
+%*4g:+0x0p+0:0:4:
+%4g:+0x8p-129:1:4:0x1p3:
+%*4g:+0x8p-129:0:4:
+%4g:+0x2.345678p0123:1:4:0x1p1:
+%*4g:+0x2.345678p0123:0:4:
+%4g:+0x2.345678p+123:1:4:0x1p1:
+%*4g:+0x2.345678p+123:0:4:
+%4g:+0x7.fffff8p125:1:4:0x1.cp2:
+%*4g:+0x7.fffff8p125:0:4:
+%4g:+0xf.fffffp+124:1:4:0x1.ep3:
+%*4g:+0xf.fffffp+124:0:4:
+%4g:+infinity:1:4:inf:
+%*4g:+infinity:0:4:
+%5g::0:-1:
+%*5g::0:-1:
+%5g:-infinity:0:-1:
+%*5g:-infinity:0:-1:
+%5g:-0xf.fffffp+124:1:5:-0x1.ep3:
+%*5g:-0xf.fffffp+124:0:5:
+%5g:-0x7.fffff8p125:1:5:-0x1.cp2:
+%*5g:-0x7.fffff8p125:0:5:
+%5g:-0x2.345678p+123:1:5:-0x1p1:
+%*5g:-0x2.345678p+123:0:5:
+%5g:-0x2.345678p0123:1:5:-0x1p1:
+%*5g:-0x2.345678p0123:0:5:
+%5g:-0x8p-129:0:-1:
+%*5g:-0x8p-129:0:-1:
+%5g:-0x0p+0:0:-1:
+%*5g:-0x0p+0:0:-1:
+%5g:-0x0p0:0:-1:
+%*5g:-0x0p0:0:-1:
+%5g:-nan(09A_Zaz):0:-1:
+%*5g:-nan(09A_Zaz):0:-1:
+%5g:-nan():0:-1:
+%*5g:-nan():0:-1:
+%5g:nan():1:5:nan:
+%*5g:nan():0:5:
+%5g:nan(09A_Zaz):0:-1:
+%*5g:nan(09A_Zaz):0:-1:
+%5g:0x0p0:1:5:0x0:
+%*5g:0x0p0:0:5:
+%5g:0x0p+0:0:-1:
+%*5g:0x0p+0:0:-1:
+%5g:0x8p-129:0:-1:
+%*5g:0x8p-129:0:-1:
+%5g:0x2.345678p0123:1:5:0x1.18p1:
+%*5g:0x2.345678p0123:0:5:
+%5g:0x2.345678p+123:1:5:0x1.18p1:
+%*5g:0x2.345678p+123:0:5:
+%5g:0x7.fffff8p125:1:5:0x1.fcp2:
+%*5g:0x7.fffff8p125:0:5:
+%5g:0xf.fffffp+124:1:5:0x1.fep3:
+%*5g:0xf.fffffp+124:0:5:
+%5g:infinity:0:-1:
+%*5g:infinity:0:-1:
+%5g:+nan():0:-1:
+%*5g:+nan():0:-1:
+%5g:+nan(09A_Zaz):0:-1:
+%*5g:+nan(09A_Zaz):0:-1:
+%5g:+0x0p0:0:-1:
+%*5g:+0x0p0:0:-1:
+%5g:+0x0p+0:0:-1:
+%*5g:+0x0p+0:0:-1:
+%5g:+0x8p-129:0:-1:
+%*5g:+0x8p-129:0:-1:
+%5g:+0x2.345678p0123:1:5:0x1p1:
+%*5g:+0x2.345678p0123:0:5:
+%5g:+0x2.345678p+123:1:5:0x1p1:
+%*5g:+0x2.345678p+123:0:5:
+%5g:+0x7.fffff8p125:1:5:0x1.cp2:
+%*5g:+0x7.fffff8p125:0:5:
+%5g:+0xf.fffffp+124:1:5:0x1.ep3:
+%*5g:+0xf.fffffp+124:0:5:
+%5g:+infinity:0:-1:
+%*5g:+infinity:0:-1:
+%6g::0:-1:
+%*6g::0:-1:
+%6g:-infinity:0:-1:
+%*6g:-infinity:0:-1:
+%6g:-0xf.fffffp+124:1:6:-0x1.fep3:
+%*6g:-0xf.fffffp+124:0:6:
+%6g:-0x7.fffff8p125:1:6:-0x1.fcp2:
+%*6g:-0x7.fffff8p125:0:6:
+%6g:-0x2.345678p+123:1:6:-0x1.18p1:
+%*6g:-0x2.345678p+123:0:6:
+%6g:-0x2.345678p0123:1:6:-0x1.18p1:
+%*6g:-0x2.345678p0123:0:6:
+%6g:-0x8p-129:0:-1:
+%*6g:-0x8p-129:0:-1:
+%6g:-0x0p+0:0:-1:
+%*6g:-0x0p+0:0:-1:
+%6g:-0x0p0:1:6:-0x0:
+%*6g:-0x0p0:0:6:
+%6g:-nan(09A_Zaz):0:-1:
+%*6g:-nan(09A_Zaz):0:-1:
+%6g:-nan():1:6:-nan:
+%*6g:-nan():0:6:
+%6g:nan():1:5:nan:
+%*6g:nan():0:5:
+%6g:nan(09A_Zaz):0:-1:
+%*6g:nan(09A_Zaz):0:-1:
+%6g:0x0p0:1:5:0x0:
+%*6g:0x0p0:0:5:
+%6g:0x0p+0:1:6:0x0:
+%*6g:0x0p+0:0:6:
+%6g:0x8p-129:1:6:0x1p2:
+%*6g:0x8p-129:0:6:
+%6g:0x2.345678p0123:1:6:0x1.1ap1:
+%*6g:0x2.345678p0123:0:6:
+%6g:0x2.345678p+123:1:6:0x1.1ap1:
+%*6g:0x2.345678p+123:0:6:
+%6g:0x7.fffff8p125:1:6:0x1.ffcp2:
+%*6g:0x7.fffff8p125:0:6:
+%6g:0xf.fffffp+124:1:6:0x1.ffep3:
+%*6g:0xf.fffffp+124:0:6:
+%6g:infinity:0:-1:
+%*6g:infinity:0:-1:
+%6g:+nan():1:6:nan:
+%*6g:+nan():0:6:
+%6g:+nan(09A_Zaz):0:-1:
+%*6g:+nan(09A_Zaz):0:-1:
+%6g:+0x0p0:1:6:0x0:
+%*6g:+0x0p0:0:6:
+%6g:+0x0p+0:0:-1:
+%*6g:+0x0p+0:0:-1:
+%6g:+0x8p-129:0:-1:
+%*6g:+0x8p-129:0:-1:
+%6g:+0x2.345678p0123:1:6:0x1.18p1:
+%*6g:+0x2.345678p0123:0:6:
+%6g:+0x2.345678p+123:1:6:0x1.18p1:
+%*6g:+0x2.345678p+123:0:6:
+%6g:+0x7.fffff8p125:1:6:0x1.fcp2:
+%*6g:+0x7.fffff8p125:0:6:
+%6g:+0xf.fffffp+124:1:6:0x1.fep3:
+%*6g:+0xf.fffffp+124:0:6:
+%6g:+infinity:0:-1:
+%*6g:+infinity:0:-1:
+%12g::0:-1:
+%*12g::0:-1:
+%12g:-infinity:1:9:-inf:
+%*12g:-infinity:0:9:
+%12g:-0xf.fffffp+124:0:-1:
+%*12g:-0xf.fffffp+124:0:-1:
+%12g:-0x7.fffff8p125:0:-1:
+%*12g:-0x7.fffff8p125:0:-1:
+%12g:-0x2.345678p+123:0:-1:
+%*12g:-0x2.345678p+123:0:-1:
+%12g:-0x2.345678p0123:0:-1:
+%*12g:-0x2.345678p0123:0:-1:
+%12g:-0x8p-129:1:9:-0x1p-126:
+%*12g:-0x8p-129:0:9:
+%12g:-0x0p+0:1:7:-0x0:
+%*12g:-0x0p+0:0:7:
+%12g:-0x0p0:1:6:-0x0:
+%*12g:-0x0p0:0:6:
+%12g:-nan(09A_Zaz):0:-1:
+%*12g:-nan(09A_Zaz):0:-1:
+%12g:-nan():1:6:-nan:
+%*12g:-nan():0:6:
+%12g:nan():1:5:nan:
+%*12g:nan():0:5:
+%12g:nan(09A_Zaz):1:12:nan:
+%*12g:nan(09A_Zaz):0:12:
+%12g:0x0p0:1:5:0x0:
+%*12g:0x0p0:0:5:
+%12g:0x0p+0:1:6:0x0:
+%*12g:0x0p+0:0:6:
+%12g:0x8p-129:1:8:0x1p-126:
+%*12g:0x8p-129:0:8:
+%12g:0x2.345678p0123:1:12:0x1.1a2b3cp1:
+%*12g:0x2.345678p0123:0:12:
+%12g:0x2.345678p+123:0:-1:
+%*12g:0x2.345678p+123:0:-1:
+%12g:0x7.fffff8p125:1:12:0x1.fffffep3:
+%*12g:0x7.fffff8p125:0:12:
+%12g:0xf.fffffp+124:1:12:0x1.fffffep4:
+%*12g:0xf.fffffp+124:0:12:
+%12g:infinity:1:8:inf:
+%*12g:infinity:0:8:
+%12g:+nan():1:6:nan:
+%*12g:+nan():0:6:
+%12g:+nan(09A_Zaz):0:-1:
+%*12g:+nan(09A_Zaz):0:-1:
+%12g:+0x0p0:1:6:0x0:
+%*12g:+0x0p0:0:6:
+%12g:+0x0p+0:1:7:0x0:
+%*12g:+0x0p+0:0:7:
+%12g:+0x8p-129:1:9:0x1p-126:
+%*12g:+0x8p-129:0:9:
+%12g:+0x2.345678p0123:0:-1:
+%*12g:+0x2.345678p0123:0:-1:
+%12g:+0x2.345678p+123:0:-1:
+%*12g:+0x2.345678p+123:0:-1:
+%12g:+0x7.fffff8p125:0:-1:
+%*12g:+0x7.fffff8p125:0:-1:
+%12g:+0xf.fffffp+124:0:-1:
+%*12g:+0xf.fffffp+124:0:-1:
+%12g:+infinity:1:9:inf:
+%*12g:+infinity:0:9:
+%18g::0:-1:
+%*18g::0:-1:
+%18g:-infinity:1:9:-inf:
+%*18g:-infinity:0:9:
+%18g:-0xf.fffffp+124:1:15:-0x1.fffffep127:
+%*18g:-0xf.fffffp+124:0:15:
+%18g:-0x7.fffff8p125:1:15:-0x1.fffffep127:
+%*18g:-0x7.fffff8p125:0:15:
+%18g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124:
+%*18g:-0x2.345678p+123:0:16:
+%18g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124:
+%*18g:-0x2.345678p0123:0:16:
+%18g:-0x8p-129:1:9:-0x1p-126:
+%*18g:-0x8p-129:0:9:
+%18g:-0x0p+0:1:7:-0x0:
+%*18g:-0x0p+0:0:7:
+%18g:-0x0p0:1:6:-0x0:
+%*18g:-0x0p0:0:6:
+%18g:-nan(09A_Zaz):1:13:-nan:
+%*18g:-nan(09A_Zaz):0:13:
+%18g:-nan():1:6:-nan:
+%*18g:-nan():0:6:
+%18g:nan():1:5:nan:
+%*18g:nan():0:5:
+%18g:nan(09A_Zaz):1:12:nan:
+%*18g:nan(09A_Zaz):0:12:
+%18g:0x0p0:1:5:0x0:
+%*18g:0x0p0:0:5:
+%18g:0x0p+0:1:6:0x0:
+%*18g:0x0p+0:0:6:
+%18g:0x8p-129:1:8:0x1p-126:
+%*18g:0x8p-129:0:8:
+%18g:0x2.345678p0123:1:15:0x1.1a2b3cp124:
+%*18g:0x2.345678p0123:0:15:
+%18g:0x2.345678p+123:1:15:0x1.1a2b3cp124:
+%*18g:0x2.345678p+123:0:15:
+%18g:0x7.fffff8p125:1:14:0x1.fffffep127:
+%*18g:0x7.fffff8p125:0:14:
+%18g:0xf.fffffp+124:1:14:0x1.fffffep127:
+%*18g:0xf.fffffp+124:0:14:
+%18g:infinity:1:8:inf:
+%*18g:infinity:0:8:
+%18g:+nan():1:6:nan:
+%*18g:+nan():0:6:
+%18g:+nan(09A_Zaz):1:13:nan:
+%*18g:+nan(09A_Zaz):0:13:
+%18g:+0x0p0:1:6:0x0:
+%*18g:+0x0p0:0:6:
+%18g:+0x0p+0:1:7:0x0:
+%*18g:+0x0p+0:0:7:
+%18g:+0x8p-129:1:9:0x1p-126:
+%*18g:+0x8p-129:0:9:
+%18g:+0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*18g:+0x2.345678p0123:0:16:
+%18g:+0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*18g:+0x2.345678p+123:0:16:
+%18g:+0x7.fffff8p125:1:15:0x1.fffffep127:
+%*18g:+0x7.fffff8p125:0:15:
+%18g:+0xf.fffffp+124:1:15:0x1.fffffep127:
+%*18g:+0xf.fffffp+124:0:15:
+%18g:+infinity:1:9:inf:
+%*18g:+infinity:0:9:
+%5g: :0:-1:
+%*5g: :0:-1:
+%5g: -infinity:0:-1:
+%*5g: -infinity:0:-1:
+%5g: -0xf.fffffp+124:1:6:-0x1.ep3:
+%*5g: -0xf.fffffp+124:0:6:
+%5g: -0x7.fffff8p125:1:6:-0x1.cp2:
+%*5g: -0x7.fffff8p125:0:6:
+%5g: -0x2.345678p+123:1:6:-0x1p1:
+%*5g: -0x2.345678p+123:0:6:
+%5g: -0x2.345678p0123:1:6:-0x1p1:
+%*5g: -0x2.345678p0123:0:6:
+%5g: -0x8p-129:0:-1:
+%*5g: -0x8p-129:0:-1:
+%5g: -0x0p+0:0:-1:
+%*5g: -0x0p+0:0:-1:
+%5g: -0x0p0:0:-1:
+%*5g: -0x0p0:0:-1:
+%5g: -nan(09A_Zaz):0:-1:
+%*5g: -nan(09A_Zaz):0:-1:
+%5g: -nan():0:-1:
+%*5g: -nan():0:-1:
+%5g: nan():1:6:nan:
+%*5g: nan():0:6:
+%5g: nan(09A_Zaz):0:-1:
+%*5g: nan(09A_Zaz):0:-1:
+%5g: 0x0p0:1:6:0x0:
+%*5g: 0x0p0:0:6:
+%5g: 0x0p+0:0:-1:
+%*5g: 0x0p+0:0:-1:
+%5g: 0x8p-129:0:-1:
+%*5g: 0x8p-129:0:-1:
+%5g: 0x2.345678p0123:1:6:0x1.18p1:
+%*5g: 0x2.345678p0123:0:6:
+%5g: 0x2.345678p+123:1:6:0x1.18p1:
+%*5g: 0x2.345678p+123:0:6:
+%5g: 0x7.fffff8p125:1:6:0x1.fcp2:
+%*5g: 0x7.fffff8p125:0:6:
+%5g: 0xf.fffffp+124:1:6:0x1.fep3:
+%*5g: 0xf.fffffp+124:0:6:
+%5g: infinity:0:-1:
+%*5g: infinity:0:-1:
+%5g: +nan():0:-1:
+%*5g: +nan():0:-1:
+%5g: +nan(09A_Zaz):0:-1:
+%*5g: +nan(09A_Zaz):0:-1:
+%5g: +0x0p0:0:-1:
+%*5g: +0x0p0:0:-1:
+%5g: +0x0p+0:0:-1:
+%*5g: +0x0p+0:0:-1:
+%5g: +0x8p-129:0:-1:
+%*5g: +0x8p-129:0:-1:
+%5g: +0x2.345678p0123:1:6:0x1p1:
+%*5g: +0x2.345678p0123:0:6:
+%5g: +0x2.345678p+123:1:6:0x1p1:
+%*5g: +0x2.345678p+123:0:6:
+%5g: +0x7.fffff8p125:1:6:0x1.cp2:
+%*5g: +0x7.fffff8p125:0:6:
+%5g: +0xf.fffffp+124:1:6:0x1.ep3:
+%*5g: +0xf.fffffp+124:0:6:
+%5g: +infinity:0:-1:
+%*5g: +infinity:0:-1:
+%18g: :0:-1:
+%*18g: :0:-1:
+%18g: -infinity:1:10:-inf:
+%*18g: -infinity:0:10:
+%18g: -0xf.fffffp+124:1:16:-0x1.fffffep127:
+%*18g: -0xf.fffffp+124:0:16:
+%18g: -0x7.fffff8p125:1:16:-0x1.fffffep127:
+%*18g: -0x7.fffff8p125:0:16:
+%18g: -0x2.345678p+123:1:17:-0x1.1a2b3cp124:
+%*18g: -0x2.345678p+123:0:17:
+%18g: -0x2.345678p0123:1:17:-0x1.1a2b3cp124:
+%*18g: -0x2.345678p0123:0:17:
+%18g: -0x8p-129:1:10:-0x1p-126:
+%*18g: -0x8p-129:0:10:
+%18g: -0x0p+0:1:8:-0x0:
+%*18g: -0x0p+0:0:8:
+%18g: -0x0p0:1:7:-0x0:
+%*18g: -0x0p0:0:7:
+%18g: -nan(09A_Zaz):1:14:-nan:
+%*18g: -nan(09A_Zaz):0:14:
+%18g: -nan():1:7:-nan:
+%*18g: -nan():0:7:
+%18g: nan():1:6:nan:
+%*18g: nan():0:6:
+%18g: nan(09A_Zaz):1:13:nan:
+%*18g: nan(09A_Zaz):0:13:
+%18g: 0x0p0:1:6:0x0:
+%*18g: 0x0p0:0:6:
+%18g: 0x0p+0:1:7:0x0:
+%*18g: 0x0p+0:0:7:
+%18g: 0x8p-129:1:9:0x1p-126:
+%*18g: 0x8p-129:0:9:
+%18g: 0x2.345678p0123:1:16:0x1.1a2b3cp124:
+%*18g: 0x2.345678p0123:0:16:
+%18g: 0x2.345678p+123:1:16:0x1.1a2b3cp124:
+%*18g: 0x2.345678p+123:0:16:
+%18g: 0x7.fffff8p125:1:15:0x1.fffffep127:
+%*18g: 0x7.fffff8p125:0:15:
+%18g: 0xf.fffffp+124:1:15:0x1.fffffep127:
+%*18g: 0xf.fffffp+124:0:15:
+%18g: infinity:1:9:inf:
+%*18g: infinity:0:9:
+%18g: +nan():1:7:nan:
+%*18g: +nan():0:7:
+%18g: +nan(09A_Zaz):1:14:nan:
+%*18g: +nan(09A_Zaz):0:14:
+%18g: +0x0p0:1:7:0x0:
+%*18g: +0x0p0:0:7:
+%18g: +0x0p+0:1:8:0x0:
+%*18g: +0x0p+0:0:8:
+%18g: +0x8p-129:1:10:0x1p-126:
+%*18g: +0x8p-129:0:10:
+%18g: +0x2.345678p0123:1:17:0x1.1a2b3cp124:
+%*18g: +0x2.345678p0123:0:17:
+%18g: +0x2.345678p+123:1:17:0x1.1a2b3cp124:
+%*18g: +0x2.345678p+123:0:17:
+%18g: +0x7.fffff8p125:1:16:0x1.fffffep127:
+%*18g: +0x7.fffff8p125:0:16:
+%18g: +0xf.fffffp+124:1:16:0x1.fffffep127:
+%*18g: +0xf.fffffp+124:0:16:
+%18g: +infinity:1:10:inf:
+%*18g: +infinity:0:10:
diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input
new file mode 100644
index 0000000..95f3af2
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input
@@ -0,0 +1,682 @@
+%G::0:-1:
+%*G::0:-1:
+%G:-INFINITY:1:9:-inf:
+%*G:-INFINITY:0:9:
+%G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127:
+%*G:-0XF.FFFFFP+124:0:15:
+%G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127:
+%*G:-0X7.FFFFF8P125:0:15:
+%G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124:
+%*G:-0X2.345678P+123:0:16:
+%G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124:
+%*G:-0X2.345678P0123:0:16:
+%G:-0X8P-129:1:9:-0x1p-126:
+%*G:-0X8P-129:0:9:
+%G:-0X0P+0:1:7:-0x0:
+%*G:-0X0P+0:0:7:
+%G:-0X0P0:1:6:-0x0:
+%*G:-0X0P0:0:6:
+%G:-NAN(09A_Zaz):1:13:-nan:
+%*G:-NAN(09A_Zaz):0:13:
+%G:-NAN():1:6:-nan:
+%*G:-NAN():0:6:
+%G:NAN():1:5:nan:
+%*G:NAN():0:5:
+%G:NAN(09A_Zaz):1:12:nan:
+%*G:NAN(09A_Zaz):0:12:
+%G:0X0P0:1:5:0x0:
+%*G:0X0P0:0:5:
+%G:0X0P+0:1:6:0x0:
+%*G:0X0P+0:0:6:
+%G:0X8P-129:1:8:0x1p-126:
+%*G:0X8P-129:0:8:
+%G:0X2.345678P0123:1:15:0x1.1a2b3cp124:
+%*G:0X2.345678P0123:0:15:
+%G:0X2.345678P+123:1:15:0x1.1a2b3cp124:
+%*G:0X2.345678P+123:0:15:
+%G:0X7.FFFFF8P125:1:14:0x1.fffffep127:
+%*G:0X7.FFFFF8P125:0:14:
+%G:0XF.FFFFFP+124:1:14:0x1.fffffep127:
+%*G:0XF.FFFFFP+124:0:14:
+%G:INFINITY:1:8:inf:
+%*G:INFINITY:0:8:
+%G:+NAN():1:6:nan:
+%*G:+NAN():0:6:
+%G:+NAN(09A_Zaz):1:13:nan:
+%*G:+NAN(09A_Zaz):0:13:
+%G:+0X0P0:1:6:0x0:
+%*G:+0X0P0:0:6:
+%G:+0X0P+0:1:7:0x0:
+%*G:+0X0P+0:0:7:
+%G:+0X8P-129:1:9:0x1p-126:
+%*G:+0X8P-129:0:9:
+%G:+0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*G:+0X2.345678P0123:0:16:
+%G:+0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*G:+0X2.345678P+123:0:16:
+%G:+0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*G:+0X7.FFFFF8P125:0:15:
+%G:+0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*G:+0XF.FFFFFP+124:0:15:
+%G:+INFINITY:1:9:inf:
+%*G:+INFINITY:0:9:
+%1G::0:-1:
+%*1G::0:-1:
+%1G:-INFINITY:0:-1:
+%*1G:-INFINITY:0:-1:
+%1G:-0XF.FFFFFP+124:0:-1:
+%*1G:-0XF.FFFFFP+124:0:-1:
+%1G:-0X7.FFFFF8P125:0:-1:
+%*1G:-0X7.FFFFF8P125:0:-1:
+%1G:-0X2.345678P+123:0:-1:
+%*1G:-0X2.345678P+123:0:-1:
+%1G:-0X2.345678P0123:0:-1:
+%*1G:-0X2.345678P0123:0:-1:
+%1G:-0X8P-129:0:-1:
+%*1G:-0X8P-129:0:-1:
+%1G:-0X0P+0:0:-1:
+%*1G:-0X0P+0:0:-1:
+%1G:-0X0P0:0:-1:
+%*1G:-0X0P0:0:-1:
+%1G:-NAN(09A_Zaz):0:-1:
+%*1G:-NAN(09A_Zaz):0:-1:
+%1G:-NAN():0:-1:
+%*1G:-NAN():0:-1:
+%1G:NAN():0:-1:
+%*1G:NAN():0:-1:
+%1G:NAN(09A_Zaz):0:-1:
+%*1G:NAN(09A_Zaz):0:-1:
+%1G:0X0P0:1:1:0x0:
+%*1G:0X0P0:0:1:
+%1G:0X0P+0:1:1:0x0:
+%*1G:0X0P+0:0:1:
+%1G:0X8P-129:1:1:0x0:
+%*1G:0X8P-129:0:1:
+%1G:0X2.345678P0123:1:1:0x0:
+%*1G:0X2.345678P0123:0:1:
+%1G:0X2.345678P+123:1:1:0x0:
+%*1G:0X2.345678P+123:0:1:
+%1G:0X7.FFFFF8P125:1:1:0x0:
+%*1G:0X7.FFFFF8P125:0:1:
+%1G:0XF.FFFFFP+124:1:1:0x0:
+%*1G:0XF.FFFFFP+124:0:1:
+%1G:INFINITY:0:-1:
+%*1G:INFINITY:0:-1:
+%1G:+NAN():0:-1:
+%*1G:+NAN():0:-1:
+%1G:+NAN(09A_Zaz):0:-1:
+%*1G:+NAN(09A_Zaz):0:-1:
+%1G:+0X0P0:0:-1:
+%*1G:+0X0P0:0:-1:
+%1G:+0X0P+0:0:-1:
+%*1G:+0X0P+0:0:-1:
+%1G:+0X8P-129:0:-1:
+%*1G:+0X8P-129:0:-1:
+%1G:+0X2.345678P0123:0:-1:
+%*1G:+0X2.345678P0123:0:-1:
+%1G:+0X2.345678P+123:0:-1:
+%*1G:+0X2.345678P+123:0:-1:
+%1G:+0X7.FFFFF8P125:0:-1:
+%*1G:+0X7.FFFFF8P125:0:-1:
+%1G:+0XF.FFFFFP+124:0:-1:
+%*1G:+0XF.FFFFFP+124:0:-1:
+%1G:+INFINITY:0:-1:
+%*1G:+INFINITY:0:-1:
+%2G::0:-1:
+%*2G::0:-1:
+%2G:-INFINITY:0:-1:
+%*2G:-INFINITY:0:-1:
+%2G:-0XF.FFFFFP+124:1:2:-0x0:
+%*2G:-0XF.FFFFFP+124:0:2:
+%2G:-0X7.FFFFF8P125:1:2:-0x0:
+%*2G:-0X7.FFFFF8P125:0:2:
+%2G:-0X2.345678P+123:1:2:-0x0:
+%*2G:-0X2.345678P+123:0:2:
+%2G:-0X2.345678P0123:1:2:-0x0:
+%*2G:-0X2.345678P0123:0:2:
+%2G:-0X8P-129:1:2:-0x0:
+%*2G:-0X8P-129:0:2:
+%2G:-0X0P+0:1:2:-0x0:
+%*2G:-0X0P+0:0:2:
+%2G:-0X0P0:1:2:-0x0:
+%*2G:-0X0P0:0:2:
+%2G:-NAN(09A_Zaz):0:-1:
+%*2G:-NAN(09A_Zaz):0:-1:
+%2G:-NAN():0:-1:
+%*2G:-NAN():0:-1:
+%2G:NAN():0:-1:
+%*2G:NAN():0:-1:
+%2G:NAN(09A_Zaz):0:-1:
+%*2G:NAN(09A_Zaz):0:-1:
+%2G:0X0P0:0:-1:
+%*2G:0X0P0:0:-1:
+%2G:0X0P+0:0:-1:
+%*2G:0X0P+0:0:-1:
+%2G:0X8P-129:0:-1:
+%*2G:0X8P-129:0:-1:
+%2G:0X2.345678P0123:0:-1:
+%*2G:0X2.345678P0123:0:-1:
+%2G:0X2.345678P+123:0:-1:
+%*2G:0X2.345678P+123:0:-1:
+%2G:0X7.FFFFF8P125:0:-1:
+%*2G:0X7.FFFFF8P125:0:-1:
+%2G:0XF.FFFFFP+124:0:-1:
+%*2G:0XF.FFFFFP+124:0:-1:
+%2G:INFINITY:0:-1:
+%*2G:INFINITY:0:-1:
+%2G:+NAN():0:-1:
+%*2G:+NAN():0:-1:
+%2G:+NAN(09A_Zaz):0:-1:
+%*2G:+NAN(09A_Zaz):0:-1:
+%2G:+0X0P0:1:2:0x0:
+%*2G:+0X0P0:0:2:
+%2G:+0X0P+0:1:2:0x0:
+%*2G:+0X0P+0:0:2:
+%2G:+0X8P-129:1:2:0x0:
+%*2G:+0X8P-129:0:2:
+%2G:+0X2.345678P0123:1:2:0x0:
+%*2G:+0X2.345678P0123:0:2:
+%2G:+0X2.345678P+123:1:2:0x0:
+%*2G:+0X2.345678P+123:0:2:
+%2G:+0X7.FFFFF8P125:1:2:0x0:
+%*2G:+0X7.FFFFF8P125:0:2:
+%2G:+0XF.FFFFFP+124:1:2:0x0:
+%*2G:+0XF.FFFFFP+124:0:2:
+%2G:+INFINITY:0:-1:
+%*2G:+INFINITY:0:-1:
+%3G::0:-1:
+%*3G::0:-1:
+%3G:-INFINITY:0:-1:
+%*3G:-INFINITY:0:-1:
+%3G:-0XF.FFFFFP+124:0:-1:
+%*3G:-0XF.FFFFFP+124:0:-1:
+%3G:-0X7.FFFFF8P125:0:-1:
+%*3G:-0X7.FFFFF8P125:0:-1:
+%3G:-0X2.345678P+123:0:-1:
+%*3G:-0X2.345678P+123:0:-1:
+%3G:-0X2.345678P0123:0:-1:
+%*3G:-0X2.345678P0123:0:-1:
+%3G:-0X8P-129:0:-1:
+%*3G:-0X8P-129:0:-1:
+%3G:-0X0P+0:0:-1:
+%*3G:-0X0P+0:0:-1:
+%3G:-0X0P0:0:-1:
+%*3G:-0X0P0:0:-1:
+%3G:-NAN(09A_Zaz):0:-1:
+%*3G:-NAN(09A_Zaz):0:-1:
+%3G:-NAN():0:-1:
+%*3G:-NAN():0:-1:
+%3G:NAN():1:3:nan:
+%*3G:NAN():0:3:
+%3G:NAN(09A_Zaz):1:3:nan:
+%*3G:NAN(09A_Zaz):0:3:
+%3G:0X0P0:1:3:0x0:
+%*3G:0X0P0:0:3:
+%3G:0X0P+0:1:3:0x0:
+%*3G:0X0P+0:0:3:
+%3G:0X8P-129:1:3:0x1p3:
+%*3G:0X8P-129:0:3:
+%3G:0X2.345678P0123:1:3:0x1p1:
+%*3G:0X2.345678P0123:0:3:
+%3G:0X2.345678P+123:1:3:0x1p1:
+%*3G:0X2.345678P+123:0:3:
+%3G:0X7.FFFFF8P125:1:3:0x1.cp2:
+%*3G:0X7.FFFFF8P125:0:3:
+%3G:0XF.FFFFFP+124:1:3:0x1.ep3:
+%*3G:0XF.FFFFFP+124:0:3:
+%3G:INFINITY:1:3:inf:
+%*3G:INFINITY:0:3:
+%3G:+NAN():0:-1:
+%*3G:+NAN():0:-1:
+%3G:+NAN(09A_Zaz):0:-1:
+%*3G:+NAN(09A_Zaz):0:-1:
+%3G:+0X0P0:0:-1:
+%*3G:+0X0P0:0:-1:
+%3G:+0X0P+0:0:-1:
+%*3G:+0X0P+0:0:-1:
+%3G:+0X8P-129:0:-1:
+%*3G:+0X8P-129:0:-1:
+%3G:+0X2.345678P0123:0:-1:
+%*3G:+0X2.345678P0123:0:-1:
+%3G:+0X2.345678P+123:0:-1:
+%*3G:+0X2.345678P+123:0:-1:
+%3G:+0X7.FFFFF8P125:0:-1:
+%*3G:+0X7.FFFFF8P125:0:-1:
+%3G:+0XF.FFFFFP+124:0:-1:
+%*3G:+0XF.FFFFFP+124:0:-1:
+%3G:+INFINITY:0:-1:
+%*3G:+INFINITY:0:-1:
+%4G::0:-1:
+%*4G::0:-1:
+%4G:-INFINITY:1:4:-inf:
+%*4G:-INFINITY:0:4:
+%4G:-0XF.FFFFFP+124:1:4:-0x1.ep3:
+%*4G:-0XF.FFFFFP+124:0:4:
+%4G:-0X7.FFFFF8P125:1:4:-0x1.cp2:
+%*4G:-0X7.FFFFF8P125:0:4:
+%4G:-0X2.345678P+123:1:4:-0x1p1:
+%*4G:-0X2.345678P+123:0:4:
+%4G:-0X2.345678P0123:1:4:-0x1p1:
+%*4G:-0X2.345678P0123:0:4:
+%4G:-0X8P-129:1:4:-0x1p3:
+%*4G:-0X8P-129:0:4:
+%4G:-0X0P+0:1:4:-0x0:
+%*4G:-0X0P+0:0:4:
+%4G:-0X0P0:1:4:-0x0:
+%*4G:-0X0P0:0:4:
+%4G:-NAN(09A_Zaz):1:4:-nan:
+%*4G:-NAN(09A_Zaz):0:4:
+%4G:-NAN():1:4:-nan:
+%*4G:-NAN():0:4:
+%4G:NAN():0:-1:
+%*4G:NAN():0:-1:
+%4G:NAN(09A_Zaz):0:-1:
+%*4G:NAN(09A_Zaz):0:-1:
+%4G:0X0P0:0:-1:
+%*4G:0X0P0:0:-1:
+%4G:0X0P+0:0:-1:
+%*4G:0X0P+0:0:-1:
+%4G:0X8P-129:0:-1:
+%*4G:0X8P-129:0:-1:
+%4G:0X2.345678P0123:1:4:0x1p1:
+%*4G:0X2.345678P0123:0:4:
+%4G:0X2.345678P+123:1:4:0x1p1:
+%*4G:0X2.345678P+123:0:4:
+%4G:0X7.FFFFF8P125:1:4:0x1.cp2:
+%*4G:0X7.FFFFF8P125:0:4:
+%4G:0XF.FFFFFP+124:1:4:0x1.ep3:
+%*4G:0XF.FFFFFP+124:0:4:
+%4G:INFINITY:0:-1:
+%*4G:INFINITY:0:-1:
+%4G:+NAN():1:4:nan:
+%*4G:+NAN():0:4:
+%4G:+NAN(09A_Zaz):1:4:nan:
+%*4G:+NAN(09A_Zaz):0:4:
+%4G:+0X0P0:1:4:0x0:
+%*4G:+0X0P0:0:4:
+%4G:+0X0P+0:1:4:0x0:
+%*4G:+0X0P+0:0:4:
+%4G:+0X8P-129:1:4:0x1p3:
+%*4G:+0X8P-129:0:4:
+%4G:+0X2.345678P0123:1:4:0x1p1:
+%*4G:+0X2.345678P0123:0:4:
+%4G:+0X2.345678P+123:1:4:0x1p1:
+%*4G:+0X2.345678P+123:0:4:
+%4G:+0X7.FFFFF8P125:1:4:0x1.cp2:
+%*4G:+0X7.FFFFF8P125:0:4:
+%4G:+0XF.FFFFFP+124:1:4:0x1.ep3:
+%*4G:+0XF.FFFFFP+124:0:4:
+%4G:+INFINITY:1:4:inf:
+%*4G:+INFINITY:0:4:
+%5G::0:-1:
+%*5G::0:-1:
+%5G:-INFINITY:0:-1:
+%*5G:-INFINITY:0:-1:
+%5G:-0XF.FFFFFP+124:1:5:-0x1.ep3:
+%*5G:-0XF.FFFFFP+124:0:5:
+%5G:-0X7.FFFFF8P125:1:5:-0x1.cp2:
+%*5G:-0X7.FFFFF8P125:0:5:
+%5G:-0X2.345678P+123:1:5:-0x1p1:
+%*5G:-0X2.345678P+123:0:5:
+%5G:-0X2.345678P0123:1:5:-0x1p1:
+%*5G:-0X2.345678P0123:0:5:
+%5G:-0X8P-129:0:-1:
+%*5G:-0X8P-129:0:-1:
+%5G:-0X0P+0:0:-1:
+%*5G:-0X0P+0:0:-1:
+%5G:-0X0P0:0:-1:
+%*5G:-0X0P0:0:-1:
+%5G:-NAN(09A_Zaz):0:-1:
+%*5G:-NAN(09A_Zaz):0:-1:
+%5G:-NAN():0:-1:
+%*5G:-NAN():0:-1:
+%5G:NAN():1:5:nan:
+%*5G:NAN():0:5:
+%5G:NAN(09A_Zaz):0:-1:
+%*5G:NAN(09A_Zaz):0:-1:
+%5G:0X0P0:1:5:0x0:
+%*5G:0X0P0:0:5:
+%5G:0X0P+0:0:-1:
+%*5G:0X0P+0:0:-1:
+%5G:0X8P-129:0:-1:
+%*5G:0X8P-129:0:-1:
+%5G:0X2.345678P0123:1:5:0x1.18p1:
+%*5G:0X2.345678P0123:0:5:
+%5G:0X2.345678P+123:1:5:0x1.18p1:
+%*5G:0X2.345678P+123:0:5:
+%5G:0X7.FFFFF8P125:1:5:0x1.fcp2:
+%*5G:0X7.FFFFF8P125:0:5:
+%5G:0XF.FFFFFP+124:1:5:0x1.fep3:
+%*5G:0XF.FFFFFP+124:0:5:
+%5G:INFINITY:0:-1:
+%*5G:INFINITY:0:-1:
+%5G:+NAN():0:-1:
+%*5G:+NAN():0:-1:
+%5G:+NAN(09A_Zaz):0:-1:
+%*5G:+NAN(09A_Zaz):0:-1:
+%5G:+0X0P0:0:-1:
+%*5G:+0X0P0:0:-1:
+%5G:+0X0P+0:0:-1:
+%*5G:+0X0P+0:0:-1:
+%5G:+0X8P-129:0:-1:
+%*5G:+0X8P-129:0:-1:
+%5G:+0X2.345678P0123:1:5:0x1p1:
+%*5G:+0X2.345678P0123:0:5:
+%5G:+0X2.345678P+123:1:5:0x1p1:
+%*5G:+0X2.345678P+123:0:5:
+%5G:+0X7.FFFFF8P125:1:5:0x1.cp2:
+%*5G:+0X7.FFFFF8P125:0:5:
+%5G:+0XF.FFFFFP+124:1:5:0x1.ep3:
+%*5G:+0XF.FFFFFP+124:0:5:
+%5G:+INFINITY:0:-1:
+%*5G:+INFINITY:0:-1:
+%6G::0:-1:
+%*6G::0:-1:
+%6G:-INFINITY:0:-1:
+%*6G:-INFINITY:0:-1:
+%6G:-0XF.FFFFFP+124:1:6:-0x1.fep3:
+%*6G:-0XF.FFFFFP+124:0:6:
+%6G:-0X7.FFFFF8P125:1:6:-0x1.fcp2:
+%*6G:-0X7.FFFFF8P125:0:6:
+%6G:-0X2.345678P+123:1:6:-0x1.18p1:
+%*6G:-0X2.345678P+123:0:6:
+%6G:-0X2.345678P0123:1:6:-0x1.18p1:
+%*6G:-0X2.345678P0123:0:6:
+%6G:-0X8P-129:0:-1:
+%*6G:-0X8P-129:0:-1:
+%6G:-0X0P+0:0:-1:
+%*6G:-0X0P+0:0:-1:
+%6G:-0X0P0:1:6:-0x0:
+%*6G:-0X0P0:0:6:
+%6G:-NAN(09A_Zaz):0:-1:
+%*6G:-NAN(09A_Zaz):0:-1:
+%6G:-NAN():1:6:-nan:
+%*6G:-NAN():0:6:
+%6G:NAN():1:5:nan:
+%*6G:NAN():0:5:
+%6G:NAN(09A_Zaz):0:-1:
+%*6G:NAN(09A_Zaz):0:-1:
+%6G:0X0P0:1:5:0x0:
+%*6G:0X0P0:0:5:
+%6G:0X0P+0:1:6:0x0:
+%*6G:0X0P+0:0:6:
+%6G:0X8P-129:1:6:0x1p2:
+%*6G:0X8P-129:0:6:
+%6G:0X2.345678P0123:1:6:0x1.1ap1:
+%*6G:0X2.345678P0123:0:6:
+%6G:0X2.345678P+123:1:6:0x1.1ap1:
+%*6G:0X2.345678P+123:0:6:
+%6G:0X7.FFFFF8P125:1:6:0x1.ffcp2:
+%*6G:0X7.FFFFF8P125:0:6:
+%6G:0XF.FFFFFP+124:1:6:0x1.ffep3:
+%*6G:0XF.FFFFFP+124:0:6:
+%6G:INFINITY:0:-1:
+%*6G:INFINITY:0:-1:
+%6G:+NAN():1:6:nan:
+%*6G:+NAN():0:6:
+%6G:+NAN(09A_Zaz):0:-1:
+%*6G:+NAN(09A_Zaz):0:-1:
+%6G:+0X0P0:1:6:0x0:
+%*6G:+0X0P0:0:6:
+%6G:+0X0P+0:0:-1:
+%*6G:+0X0P+0:0:-1:
+%6G:+0X8P-129:0:-1:
+%*6G:+0X8P-129:0:-1:
+%6G:+0X2.345678P0123:1:6:0x1.18p1:
+%*6G:+0X2.345678P0123:0:6:
+%6G:+0X2.345678P+123:1:6:0x1.18p1:
+%*6G:+0X2.345678P+123:0:6:
+%6G:+0X7.FFFFF8P125:1:6:0x1.fcp2:
+%*6G:+0X7.FFFFF8P125:0:6:
+%6G:+0XF.FFFFFP+124:1:6:0x1.fep3:
+%*6G:+0XF.FFFFFP+124:0:6:
+%6G:+INFINITY:0:-1:
+%*6G:+INFINITY:0:-1:
+%12G::0:-1:
+%*12G::0:-1:
+%12G:-INFINITY:1:9:-inf:
+%*12G:-INFINITY:0:9:
+%12G:-0XF.FFFFFP+124:0:-1:
+%*12G:-0XF.FFFFFP+124:0:-1:
+%12G:-0X7.FFFFF8P125:0:-1:
+%*12G:-0X7.FFFFF8P125:0:-1:
+%12G:-0X2.345678P+123:0:-1:
+%*12G:-0X2.345678P+123:0:-1:
+%12G:-0X2.345678P0123:0:-1:
+%*12G:-0X2.345678P0123:0:-1:
+%12G:-0X8P-129:1:9:-0x1p-126:
+%*12G:-0X8P-129:0:9:
+%12G:-0X0P+0:1:7:-0x0:
+%*12G:-0X0P+0:0:7:
+%12G:-0X0P0:1:6:-0x0:
+%*12G:-0X0P0:0:6:
+%12G:-NAN(09A_Zaz):0:-1:
+%*12G:-NAN(09A_Zaz):0:-1:
+%12G:-NAN():1:6:-nan:
+%*12G:-NAN():0:6:
+%12G:NAN():1:5:nan:
+%*12G:NAN():0:5:
+%12G:NAN(09A_Zaz):1:12:nan:
+%*12G:NAN(09A_Zaz):0:12:
+%12G:0X0P0:1:5:0x0:
+%*12G:0X0P0:0:5:
+%12G:0X0P+0:1:6:0x0:
+%*12G:0X0P+0:0:6:
+%12G:0X8P-129:1:8:0x1p-126:
+%*12G:0X8P-129:0:8:
+%12G:0X2.345678P0123:1:12:0x1.1a2b3cp1:
+%*12G:0X2.345678P0123:0:12:
+%12G:0X2.345678P+123:0:-1:
+%*12G:0X2.345678P+123:0:-1:
+%12G:0X7.FFFFF8P125:1:12:0x1.fffffep3:
+%*12G:0X7.FFFFF8P125:0:12:
+%12G:0XF.FFFFFP+124:1:12:0x1.fffffep4:
+%*12G:0XF.FFFFFP+124:0:12:
+%12G:INFINITY:1:8:inf:
+%*12G:INFINITY:0:8:
+%12G:+NAN():1:6:nan:
+%*12G:+NAN():0:6:
+%12G:+NAN(09A_Zaz):0:-1:
+%*12G:+NAN(09A_Zaz):0:-1:
+%12G:+0X0P0:1:6:0x0:
+%*12G:+0X0P0:0:6:
+%12G:+0X0P+0:1:7:0x0:
+%*12G:+0X0P+0:0:7:
+%12G:+0X8P-129:1:9:0x1p-126:
+%*12G:+0X8P-129:0:9:
+%12G:+0X2.345678P0123:0:-1:
+%*12G:+0X2.345678P0123:0:-1:
+%12G:+0X2.345678P+123:0:-1:
+%*12G:+0X2.345678P+123:0:-1:
+%12G:+0X7.FFFFF8P125:0:-1:
+%*12G:+0X7.FFFFF8P125:0:-1:
+%12G:+0XF.FFFFFP+124:0:-1:
+%*12G:+0XF.FFFFFP+124:0:-1:
+%12G:+INFINITY:1:9:inf:
+%*12G:+INFINITY:0:9:
+%18G::0:-1:
+%*18G::0:-1:
+%18G:-INFINITY:1:9:-inf:
+%*18G:-INFINITY:0:9:
+%18G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127:
+%*18G:-0XF.FFFFFP+124:0:15:
+%18G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127:
+%*18G:-0X7.FFFFF8P125:0:15:
+%18G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124:
+%*18G:-0X2.345678P+123:0:16:
+%18G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124:
+%*18G:-0X2.345678P0123:0:16:
+%18G:-0X8P-129:1:9:-0x1p-126:
+%*18G:-0X8P-129:0:9:
+%18G:-0X0P+0:1:7:-0x0:
+%*18G:-0X0P+0:0:7:
+%18G:-0X0P0:1:6:-0x0:
+%*18G:-0X0P0:0:6:
+%18G:-NAN(09A_Zaz):1:13:-nan:
+%*18G:-NAN(09A_Zaz):0:13:
+%18G:-NAN():1:6:-nan:
+%*18G:-NAN():0:6:
+%18G:NAN():1:5:nan:
+%*18G:NAN():0:5:
+%18G:NAN(09A_Zaz):1:12:nan:
+%*18G:NAN(09A_Zaz):0:12:
+%18G:0X0P0:1:5:0x0:
+%*18G:0X0P0:0:5:
+%18G:0X0P+0:1:6:0x0:
+%*18G:0X0P+0:0:6:
+%18G:0X8P-129:1:8:0x1p-126:
+%*18G:0X8P-129:0:8:
+%18G:0X2.345678P0123:1:15:0x1.1a2b3cp124:
+%*18G:0X2.345678P0123:0:15:
+%18G:0X2.345678P+123:1:15:0x1.1a2b3cp124:
+%*18G:0X2.345678P+123:0:15:
+%18G:0X7.FFFFF8P125:1:14:0x1.fffffep127:
+%*18G:0X7.FFFFF8P125:0:14:
+%18G:0XF.FFFFFP+124:1:14:0x1.fffffep127:
+%*18G:0XF.FFFFFP+124:0:14:
+%18G:INFINITY:1:8:inf:
+%*18G:INFINITY:0:8:
+%18G:+NAN():1:6:nan:
+%*18G:+NAN():0:6:
+%18G:+NAN(09A_Zaz):1:13:nan:
+%*18G:+NAN(09A_Zaz):0:13:
+%18G:+0X0P0:1:6:0x0:
+%*18G:+0X0P0:0:6:
+%18G:+0X0P+0:1:7:0x0:
+%*18G:+0X0P+0:0:7:
+%18G:+0X8P-129:1:9:0x1p-126:
+%*18G:+0X8P-129:0:9:
+%18G:+0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*18G:+0X2.345678P0123:0:16:
+%18G:+0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*18G:+0X2.345678P+123:0:16:
+%18G:+0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*18G:+0X7.FFFFF8P125:0:15:
+%18G:+0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*18G:+0XF.FFFFFP+124:0:15:
+%18G:+INFINITY:1:9:inf:
+%*18G:+INFINITY:0:9:
+%5G: :0:-1:
+%*5G: :0:-1:
+%5G: -INFINITY:0:-1:
+%*5G: -INFINITY:0:-1:
+%5G: -0XF.FFFFFP+124:1:6:-0x1.ep3:
+%*5G: -0XF.FFFFFP+124:0:6:
+%5G: -0X7.FFFFF8P125:1:6:-0x1.cp2:
+%*5G: -0X7.FFFFF8P125:0:6:
+%5G: -0X2.345678P+123:1:6:-0x1p1:
+%*5G: -0X2.345678P+123:0:6:
+%5G: -0X2.345678P0123:1:6:-0x1p1:
+%*5G: -0X2.345678P0123:0:6:
+%5G: -0X8P-129:0:-1:
+%*5G: -0X8P-129:0:-1:
+%5G: -0X0P+0:0:-1:
+%*5G: -0X0P+0:0:-1:
+%5G: -0X0P0:0:-1:
+%*5G: -0X0P0:0:-1:
+%5G: -NAN(09A_Zaz):0:-1:
+%*5G: -NAN(09A_Zaz):0:-1:
+%5G: -NAN():0:-1:
+%*5G: -NAN():0:-1:
+%5G: NAN():1:6:nan:
+%*5G: NAN():0:6:
+%5G: NAN(09A_Zaz):0:-1:
+%*5G: NAN(09A_Zaz):0:-1:
+%5G: 0X0P0:1:6:0x0:
+%*5G: 0X0P0:0:6:
+%5G: 0X0P+0:0:-1:
+%*5G: 0X0P+0:0:-1:
+%5G: 0X8P-129:0:-1:
+%*5G: 0X8P-129:0:-1:
+%5G: 0X2.345678P0123:1:6:0x1.18p1:
+%*5G: 0X2.345678P0123:0:6:
+%5G: 0X2.345678P+123:1:6:0x1.18p1:
+%*5G: 0X2.345678P+123:0:6:
+%5G: 0X7.FFFFF8P125:1:6:0x1.fcp2:
+%*5G: 0X7.FFFFF8P125:0:6:
+%5G: 0XF.FFFFFP+124:1:6:0x1.fep3:
+%*5G: 0XF.FFFFFP+124:0:6:
+%5G: INFINITY:0:-1:
+%*5G: INFINITY:0:-1:
+%5G: +NAN():0:-1:
+%*5G: +NAN():0:-1:
+%5G: +NAN(09A_Zaz):0:-1:
+%*5G: +NAN(09A_Zaz):0:-1:
+%5G: +0X0P0:0:-1:
+%*5G: +0X0P0:0:-1:
+%5G: +0X0P+0:0:-1:
+%*5G: +0X0P+0:0:-1:
+%5G: +0X8P-129:0:-1:
+%*5G: +0X8P-129:0:-1:
+%5G: +0X2.345678P0123:1:6:0x1p1:
+%*5G: +0X2.345678P0123:0:6:
+%5G: +0X2.345678P+123:1:6:0x1p1:
+%*5G: +0X2.345678P+123:0:6:
+%5G: +0X7.FFFFF8P125:1:6:0x1.cp2:
+%*5G: +0X7.FFFFF8P125:0:6:
+%5G: +0XF.FFFFFP+124:1:6:0x1.ep3:
+%*5G: +0XF.FFFFFP+124:0:6:
+%5G: +INFINITY:0:-1:
+%*5G: +INFINITY:0:-1:
+%18G: :0:-1:
+%*18G: :0:-1:
+%18G: -INFINITY:1:10:-inf:
+%*18G: -INFINITY:0:10:
+%18G: -0XF.FFFFFP+124:1:16:-0x1.fffffep127:
+%*18G: -0XF.FFFFFP+124:0:16:
+%18G: -0X7.FFFFF8P125:1:16:-0x1.fffffep127:
+%*18G: -0X7.FFFFF8P125:0:16:
+%18G: -0X2.345678P+123:1:17:-0x1.1a2b3cp124:
+%*18G: -0X2.345678P+123:0:17:
+%18G: -0X2.345678P0123:1:17:-0x1.1a2b3cp124:
+%*18G: -0X2.345678P0123:0:17:
+%18G: -0X8P-129:1:10:-0x1p-126:
+%*18G: -0X8P-129:0:10:
+%18G: -0X0P+0:1:8:-0x0:
+%*18G: -0X0P+0:0:8:
+%18G: -0X0P0:1:7:-0x0:
+%*18G: -0X0P0:0:7:
+%18G: -NAN(09A_Zaz):1:14:-nan:
+%*18G: -NAN(09A_Zaz):0:14:
+%18G: -NAN():1:7:-nan:
+%*18G: -NAN():0:7:
+%18G: NAN():1:6:nan:
+%*18G: NAN():0:6:
+%18G: NAN(09A_Zaz):1:13:nan:
+%*18G: NAN(09A_Zaz):0:13:
+%18G: 0X0P0:1:6:0x0:
+%*18G: 0X0P0:0:6:
+%18G: 0X0P+0:1:7:0x0:
+%*18G: 0X0P+0:0:7:
+%18G: 0X8P-129:1:9:0x1p-126:
+%*18G: 0X8P-129:0:9:
+%18G: 0X2.345678P0123:1:16:0x1.1a2b3cp124:
+%*18G: 0X2.345678P0123:0:16:
+%18G: 0X2.345678P+123:1:16:0x1.1a2b3cp124:
+%*18G: 0X2.345678P+123:0:16:
+%18G: 0X7.FFFFF8P125:1:15:0x1.fffffep127:
+%*18G: 0X7.FFFFF8P125:0:15:
+%18G: 0XF.FFFFFP+124:1:15:0x1.fffffep127:
+%*18G: 0XF.FFFFFP+124:0:15:
+%18G: INFINITY:1:9:inf:
+%*18G: INFINITY:0:9:
+%18G: +NAN():1:7:nan:
+%*18G: +NAN():0:7:
+%18G: +NAN(09A_Zaz):1:14:nan:
+%*18G: +NAN(09A_Zaz):0:14:
+%18G: +0X0P0:1:7:0x0:
+%*18G: +0X0P0:0:7:
+%18G: +0X0P+0:1:8:0x0:
+%*18G: +0X0P+0:0:8:
+%18G: +0X8P-129:1:10:0x1p-126:
+%*18G: +0X8P-129:0:10:
+%18G: +0X2.345678P0123:1:17:0x1.1a2b3cp124:
+%*18G: +0X2.345678P0123:0:17:
+%18G: +0X2.345678P+123:1:17:0x1.1a2b3cp124:
+%*18G: +0X2.345678P+123:0:17:
+%18G: +0X7.FFFFF8P125:1:16:0x1.fffffep127:
+%*18G: +0X7.FFFFF8P125:0:16:
+%18G: +0XF.FFFFFP+124:1:16:0x1.fffffep127:
+%*18G: +0XF.FFFFFP+124:0:16:
+%18G: +INFINITY:1:10:inf:
+%*18G: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/flt-32/w_ilogbf-impl.h b/sysdeps/ieee754/flt-32/w_ilogbf-impl.h
new file mode 100644
index 0000000..5aa8bf0
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_ilogbf-impl.h
@@ -0,0 +1,38 @@
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+static inline RET_TYPE
+IMPL_NAME (float x)
+{
+ uint32_t ux = asuint (x);
+ int ex = (ux & ~SIGN_MASK) >> MANTISSA_WIDTH;
+ if (__glibc_unlikely (ex == 0))
+ {
+ /* Zero or subnormal.
+ Clear sign and exponent. */
+ ux <<= 1 + EXPONENT_WIDTH;
+ if (ux == 0)
+ return RET_INVALID (RET_LOGB0);
+ /* subnormal */
+ return (RET_TYPE)-127 - stdc_leading_zeros (ux);
+ }
+ if (__glibc_unlikely (ex == EXPONENT_MASK >> MANTISSA_WIDTH))
+ /* NaN or Inf */
+ return RET_INVALID (ux << (1 + EXPONENT_WIDTH) ? RET_LOGBNAN : RET_LOGMAX);
+ return ex - 127;
+}
diff --git a/sysdeps/ieee754/flt-32/w_ilogbf.c b/sysdeps/ieee754/flt-32/w_ilogbf.c
new file mode 100644
index 0000000..4e2a707
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_ilogbf.c
@@ -0,0 +1,53 @@
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <limits.h>
+#include <math.h>
+#include <stdbit.h>
+#include <libm-alias-float.h>
+#include <math-type-macros-float.h>
+#include "math_config.h"
+
+#ifdef DEF_AS_LLOGBF
+# define DECL_NAME __llogb
+# define FUNC_NAME llogb
+# define RET_TYPE long int
+# define RET_LOGB0 FP_LLOGB0
+# define RET_LOGBNAN FP_LLOGBNAN
+# define RET_LOGMAX LONG_MAX
+# define RET_INVALID __math_invalidf_li
+#else
+# define DECL_NAME __ilogb
+# define FUNC_NAME ilogb
+# define RET_TYPE int
+# define RET_LOGB0 FP_ILOGB0
+# define RET_LOGBNAN FP_ILOGBNAN
+# define RET_LOGMAX INT_MAX
+# define RET_INVALID __math_invalidf_i
+#endif
+#define __IMPL_NAME(x,y) x ## _ ## y
+#define _IMPL_NAME(x,y) __IMPL_NAME(x,y)
+#define IMPL_NAME _IMPL_NAME(FUNC_NAME, impl)
+#include <w_ilogbf-impl.h>
+
+RET_TYPE
+M_DECL_FUNC (DECL_NAME) (float x)
+{
+ return IMPL_NAME (x);
+}
+libm_alias_float (DECL_NAME, FUNC_NAME);
diff --git a/sysdeps/ieee754/flt-32/w_llogbf.c b/sysdeps/ieee754/flt-32/w_llogbf.c
new file mode 100644
index 0000000..8676434
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_llogbf.c
@@ -0,0 +1,2 @@
+#define DEF_AS_LLOGBF
+#include "w_ilogbf.c"
diff --git a/sysdeps/i386/fpu/math_err.c b/sysdeps/ieee754/flt-32/w_log1pf.c
index 1cc8931..1cc8931 100644
--- a/sysdeps/i386/fpu/math_err.c
+++ b/sysdeps/ieee754/flt-32/w_log1pf.c
diff --git a/sysdeps/ieee754/ieee754.h b/sysdeps/ieee754/ieee754.h
index b1f5efd..3a16aed 100644
--- a/sysdeps/ieee754/ieee754.h
+++ b/sysdeps/ieee754/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/k_standardf.c b/sysdeps/ieee754/k_standardf.c
index a10afa2..710ef3b 100644
--- a/sysdeps/ieee754/k_standardf.c
+++ b/sysdeps/ieee754/k_standardf.c
@@ -1,5 +1,5 @@
/* Implement __kernel_standard_f.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/k_standardl.c b/sysdeps/ieee754/k_standardl.c
index 90f2410..2c99db9 100644
--- a/sysdeps/ieee754/k_standardl.c
+++ b/sysdeps/ieee754/k_standardl.c
@@ -1,5 +1,5 @@
/* Implement __kernel_standard_l.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile
index 1901238..e666bdc 100644
--- a/sysdeps/ieee754/ldbl-128/Makefile
+++ b/sysdeps/ieee754/ldbl-128/Makefile
@@ -83,7 +83,7 @@ CFLAGS-w_j1l.c += -fno-builtin-j1f64x -fno-builtin-j1f128
CFLAGS-w_jnl.c += -fno-builtin-jnf64x -fno-builtin-jnf128
CFLAGS-s_ldexpl.c += -fno-builtin-ldexpf64x -fno-builtin-ldexpf128
CFLAGS-w_lgammal.c += -fno-builtin-lgammaf64x -fno-builtin-lgammaf128
-CFLAGS-w_lgammal_r.c += -fno-builtin-lgammaf64x_r
+CFLAGS-w_lgammal_r.c += -fno-builtin-lgammaf64x_r -fno-builtin-lgammaf128_r
CFLAGS-w_llogbl.c += -fno-builtin-llogbf64x -fno-builtin-llogbf128
CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x -fno-builtin-llrintf128
CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128
@@ -126,3 +126,7 @@ CFLAGS-s_y0l.c += -fno-builtin-y0f64x -fno-builtin-y0f128
CFLAGS-s_y1l.c += -fno-builtin-y1f64x -fno-builtin-y1f128
CFLAGS-s_ynl.c += -fno-builtin-ynf64x -fno-builtin-ynf128
endif
+
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-real-convs += ldouble
+endif
diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h
index 642781f..0fec474 100644
--- a/sysdeps/ieee754/ldbl-128/bits/floatn.h
+++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/bits/long-double.h b/sysdeps/ieee754/ldbl-128/bits/long-double.h
index 0744e1a..2f9e58d 100644
--- a/sysdeps/ieee754/ldbl-128/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-128/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/e_exp10l.c b/sysdeps/ieee754/ldbl-128/e_exp10l.c
index d5e3744..0967929 100644
--- a/sysdeps/ieee754/ldbl-128/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_exp10l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c b/sysdeps/ieee754/ldbl-128/e_expl.c
index fbd954e..4855c6b 100644
--- a/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point e^x.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -79,7 +79,7 @@ L(-11433.4627433362978788372438434526231),
/* 3x2^96 */
#define THREEp96 C[2]
- L(59421121885698253195157962752.0),
+ L(237684487542793012780631851008.0),
/* 3x2^103 */
#define THREEp103 C[3]
diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
index 38c6169..2d43085 100644
--- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/e_hypotl.c b/sysdeps/ieee754/ldbl-128/e_hypotl.c
index 7d12b29..51fc7ca 100644
--- a/sysdeps/ieee754/ldbl-128/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-128/e_hypotl.c
@@ -1,5 +1,5 @@
/* Euclidean distance function. Long Double/Binary128 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
index b242060..5a438a5 100644
--- a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point argument reduction.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/e_remainderl.c b/sysdeps/ieee754/ldbl-128/e_remainderl.c
index 07a15c2..1e8605f 100644
--- a/sysdeps/ieee754/ldbl-128/e_remainderl.c
+++ b/sysdeps/ieee754/ldbl-128/e_remainderl.c
@@ -64,7 +64,10 @@ __ieee754_remainderl(_Float128 x, _Float128 p)
if(x>=p_half) x -= p;
}
}
- GET_LDOUBLE_MSW64(hx,x);
+ GET_LDOUBLE_WORDS64(hx,lx,x);
+ /* Make sure x is not -0. This can occur only when x = p
+ and rounding direction is towards negative infinity. */
+ if ((hx==0x8000000000000000ULL)&&(lx==0)) hx = 0;
SET_LDOUBLE_MSW64(x,hx^sx);
return x;
}
diff --git a/sysdeps/ieee754/ldbl-128/gamma_productl.c b/sysdeps/ieee754/ldbl-128/gamma_productl.c
index f9f7f31..a7c5dd9 100644
--- a/sysdeps/ieee754/ldbl-128/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/ieee754.h b/sysdeps/ieee754/ldbl-128/ieee754.h
index 9dee9d6..e4c06e6 100644
--- a/sysdeps/ieee754/ldbl-128/ieee754.h
+++ b/sysdeps/ieee754/ldbl-128/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/k_cosl.c b/sysdeps/ieee754/ldbl-128/k_cosl.c
index e5896c1..99e4ff6 100644
--- a/sysdeps/ieee754/ldbl-128/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_cosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/k_sincosl.c b/sysdeps/ieee754/ldbl-128/k_sincosl.c
index d981b98..730095f 100644
--- a/sysdeps/ieee754/ldbl-128/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/k_sinl.c b/sysdeps/ieee754/ldbl-128/k_sinl.c
index b94675e..70593a8 100644
--- a/sysdeps/ieee754/ldbl-128/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
index a0a9ec9..1179b1c 100644
--- a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_negl.c b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
index 8ce0ad6..7433937 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_productl.c b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
index ff313ac..cff4744 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
index 1f7f4c7..6c3c5dd 100644
--- a/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling for ldbl-128.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/math_ldbl.h b/sysdeps/ieee754/ldbl-128/math_ldbl.h
index 231c73b..6b24cb1 100644
--- a/sysdeps/ieee754/ldbl-128/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/mpn2ldbl.c b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
index 98dfe70..52e17a8 100644
--- a/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex.c b/sysdeps/ieee754/ldbl-128/printf_fphex.c
index 5bcf5e1..485f47f 100644
--- a/sysdeps/ieee754/ldbl-128/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-128/printf_fphex.c
@@ -1,6 +1,6 @@
/* Print floating point number in hexadecimal notation according to
ISO C99.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h b/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
index 4b8514a..13c0f4c 100644
--- a/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
+++ b/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
@@ -1,5 +1,5 @@
/* Macro to print floating point numbers in hexadecimal notation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_daddl.c b/sysdeps/ieee754/ldbl-128/s_daddl.c
index 0b0fc8d..0d3ef75 100644
--- a/sysdeps/ieee754/ldbl-128/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-128/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_ddivl.c b/sysdeps/ieee754/ldbl-128/s_ddivl.c
index b458d2c..0d32d95 100644
--- a/sysdeps/ieee754/ldbl-128/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-128/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_dfmal.c b/sysdeps/ieee754/ldbl-128/s_dfmal.c
index 6032e0c..7552f6e 100644
--- a/sysdeps/ieee754/ldbl-128/s_dfmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_dfmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128) value, narrowing the result
to double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_dmull.c b/sysdeps/ieee754/ldbl-128/s_dmull.c
index c42817e..aee1d8e 100644
--- a/sysdeps/ieee754/ldbl-128/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-128/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_dsqrtl.c b/sysdeps/ieee754/ldbl-128/s_dsqrtl.c
index 21c6489..038852f 100644
--- a/sysdeps/ieee754/ldbl-128/s_dsqrtl.c
+++ b/sysdeps/ieee754/ldbl-128/s_dsqrtl.c
@@ -1,5 +1,5 @@
/* Square root of long double (ldbl-128) value, narrowing the result to double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_dsubl.c b/sysdeps/ieee754/ldbl-128/s_dsubl.c
index 5ee887b..6371867 100644
--- a/sysdeps/ieee754/ldbl-128/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-128/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_erfcl.c b/sysdeps/ieee754/ldbl-128/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c b/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
index 72d6ecf..311cfbe 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
@@ -1,5 +1,5 @@
/* Add _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c b/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
index 9c1335b..7bd6ce9 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
@@ -1,5 +1,5 @@
/* Divide _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xfmaf128.c b/sysdeps/ieee754/ldbl-128/s_f64xfmaf128.c
index 6dcf858..e818697 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xfmaf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xfmaf128.c
@@ -1,5 +1,5 @@
/* Fused multiply-add of _Float128 value, converting the result to _Float64x.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c b/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
index eb6b7a9..b5b897f 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
@@ -1,5 +1,5 @@
/* Multiply _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c b/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c
index d5e415b..cac8d0e 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c
@@ -1,5 +1,5 @@
/* Square root of _Float128 value, converting the result to _Float64x.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c b/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
index a4f0bf9..c9217c0 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
@@ -1,5 +1,5 @@
/* Subtract _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_faddl.c b/sysdeps/ieee754/ldbl-128/s_faddl.c
index fcaeb94..196916e 100644
--- a/sysdeps/ieee754/ldbl-128/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-128/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fdivl.c b/sysdeps/ieee754/ldbl-128/s_fdivl.c
index 16bf9cb..c3b592a 100644
--- a/sysdeps/ieee754/ldbl-128/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_ffmal.c b/sysdeps/ieee754/ldbl-128/s_ffmal.c
index bc2faa4..abab331 100644
--- a/sysdeps/ieee754/ldbl-128/s_ffmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_ffmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128) value, narrowing the result
to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fma.c b/sysdeps/ieee754/ldbl-128/s_fma.c
index 9c83c68..4a941fb 100644
--- a/sysdeps/ieee754/ldbl-128/s_fma.c
+++ b/sysdeps/ieee754/ldbl-128/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index 4920b2e..e580926 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fmull.c b/sysdeps/ieee754/ldbl-128/s_fmull.c
index 756dd0e..1c0043b 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
index 4936829..92cd21d 100644
--- a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
index 49d3885..235e3ce 100644
--- a/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fsqrtl.c b/sysdeps/ieee754/ldbl-128/s_fsqrtl.c
index 428920d..4f1f8b0 100644
--- a/sysdeps/ieee754/ldbl-128/s_fsqrtl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fsqrtl.c
@@ -1,5 +1,5 @@
/* Square root of long double (ldbl-128) value, narrowing the result to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_fsubl.c b/sysdeps/ieee754/ldbl-128/s_fsubl.c
index a5d9280..7f77993 100644
--- a/sysdeps/ieee754/ldbl-128/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
index 10b9fc6..94642e3 100644
--- a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_issignalingl.c b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
index 457cf77..b970e1e 100644
--- a/sysdeps/ieee754/ldbl-128/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_llrintl.c b/sysdeps/ieee754/ldbl-128/s_llrintl.c
index c0116ac..07f5aca 100644
--- a/sysdeps/ieee754/ldbl-128/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_llroundl.c b/sysdeps/ieee754/ldbl-128/s_llroundl.c
index e44d5ee..752b097 100644
--- a/sysdeps/ieee754/ldbl-128/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_lrintl.c b/sysdeps/ieee754/ldbl-128/s_lrintl.c
index 21d65e6..e5c0d5a 100644
--- a/sysdeps/ieee754/ldbl-128/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_lroundl.c b/sysdeps/ieee754/ldbl-128/s_lroundl.c
index c868bd1..b237b56 100644
--- a/sysdeps/ieee754/ldbl-128/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_nextupl.c b/sysdeps/ieee754/ldbl-128/s_nextupl.c
index 510f9e5..deee561 100644
--- a/sysdeps/ieee754/ldbl-128/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_remquol.c b/sysdeps/ieee754/ldbl-128/s_remquol.c
index b283abc..670c428 100644
--- a/sysdeps/ieee754/ldbl-128/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
index 48c548a..ca3a552 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_roundl.c b/sysdeps/ieee754/ldbl-128/s_roundl.c
index 388309c..9a87a46 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundl.c
@@ -1,5 +1,5 @@
/* Round long double to integer away from zero.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
index 1583a22..f106ede 100644
--- a/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_signbitl.c b/sysdeps/ieee754/ldbl-128/s_signbitl.c
index 580c4ee..8389a4e 100644
--- a/sysdeps/ieee754/ldbl-128/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-128/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_sincosl.c b/sysdeps/ieee754/ldbl-128/s_sincosl.c
index 4018e93..3e3f35c 100644
--- a/sysdeps/ieee754/ldbl-128/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
index 3e5f1ab..430ec24 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
index 31a1e3f..99d328c 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-128 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/s_truncl.c b/sysdeps/ieee754/ldbl-128/s_truncl.c
index 3839d5b..2db087e 100644
--- a/sysdeps/ieee754/ldbl-128/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128/s_truncl.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/strtold_l.c b/sysdeps/ieee754/ldbl-128/strtold_l.c
index bb5aecd..64f14c1 100644
--- a/sysdeps/ieee754/ldbl-128/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-128/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/t_expl.h b/sysdeps/ieee754/ldbl-128/t_expl.h
index 300a8a4..a76374e 100644
--- a/sysdeps/ieee754/ldbl-128/t_expl.h
+++ b/sysdeps/ieee754/ldbl-128/t_expl.h
@@ -1,5 +1,5 @@
/* Accurate table for expl().
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/t_sincosl.c b/sysdeps/ieee754/ldbl-128/t_sincosl.c
index f995810..4d07c10 100644
--- a/sysdeps/ieee754/ldbl-128/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/t_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine tables.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input
new file mode 100644
index 0000000..67d5b00
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input
@@ -0,0 +1,682 @@
+%La::0:-1:
+%*La::0:-1:
+%La:-infinity:1:9:-inf:
+%*La:-infinity:0:9:
+%La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*La:-0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:-0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:-0x2.3456789abcdef0123456789abcdep012345:0:40:
+%La:-0x8p-16385:1:11:-0x1p-16382:
+%*La:-0x8p-16385:0:11:
+%La:-0x0p+0:1:7:-0x0:
+%*La:-0x0p+0:0:7:
+%La:-0x0p0:1:6:-0x0:
+%*La:-0x0p0:0:6:
+%La:-nan(09A_Zaz):1:13:-nan:
+%*La:-nan(09A_Zaz):0:13:
+%La:-nan():1:6:-nan:
+%*La:-nan():0:6:
+%La:nan():1:5:nan:
+%*La:nan():0:5:
+%La:nan(09A_Zaz):1:12:nan:
+%*La:nan(09A_Zaz):0:12:
+%La:0x0p0:1:5:0x0:
+%*La:0x0p0:0:5:
+%La:0x0p+0:1:6:0x0:
+%*La:0x0p+0:0:6:
+%La:0x8p-16385:1:10:0x1p-16382:
+%*La:0x8p-16385:0:10:
+%La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:0x2.3456789abcdef0123456789abcdep012345:0:39:
+%La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:0x2.3456789abcdef0123456789abcdep+12345:0:39:
+%La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*La:0x7.fffffffffffffffffffffffffffcp16381:0:38:
+%La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39:
+%La:infinity:1:8:inf:
+%*La:infinity:0:8:
+%La:+nan():1:6:nan:
+%*La:+nan():0:6:
+%La:+nan(09A_Zaz):1:13:nan:
+%*La:+nan(09A_Zaz):0:13:
+%La:+0x0p0:1:6:0x0:
+%*La:+0x0p0:0:6:
+%La:+0x0p+0:1:7:0x0:
+%*La:+0x0p+0:0:7:
+%La:+0x8p-16385:1:11:0x1p-16382:
+%*La:+0x8p-16385:0:11:
+%La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:+0x2.3456789abcdef0123456789abcdep012345:0:40:
+%La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*La:+0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*La:+0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%La:+infinity:1:9:inf:
+%*La:+infinity:0:9:
+%1La::0:-1:
+%*1La::0:-1:
+%1La:-infinity:0:-1:
+%*1La:-infinity:0:-1:
+%1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%1La:-0x8p-16385:0:-1:
+%*1La:-0x8p-16385:0:-1:
+%1La:-0x0p+0:0:-1:
+%*1La:-0x0p+0:0:-1:
+%1La:-0x0p0:0:-1:
+%*1La:-0x0p0:0:-1:
+%1La:-nan(09A_Zaz):0:-1:
+%*1La:-nan(09A_Zaz):0:-1:
+%1La:-nan():0:-1:
+%*1La:-nan():0:-1:
+%1La:nan():0:-1:
+%*1La:nan():0:-1:
+%1La:nan(09A_Zaz):0:-1:
+%*1La:nan(09A_Zaz):0:-1:
+%1La:0x0p0:1:1:0x0:
+%*1La:0x0p0:0:1:
+%1La:0x0p+0:1:1:0x0:
+%*1La:0x0p+0:0:1:
+%1La:0x8p-16385:1:1:0x0:
+%*1La:0x8p-16385:0:1:
+%1La:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0:
+%*1La:0x2.3456789abcdef0123456789abcdep012345:0:1:
+%1La:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0:
+%*1La:0x2.3456789abcdef0123456789abcdep+12345:0:1:
+%1La:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0:
+%*1La:0x7.fffffffffffffffffffffffffffcp16381:0:1:
+%1La:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0:
+%*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1:
+%1La:infinity:0:-1:
+%*1La:infinity:0:-1:
+%1La:+nan():0:-1:
+%*1La:+nan():0:-1:
+%1La:+nan(09A_Zaz):0:-1:
+%*1La:+nan(09A_Zaz):0:-1:
+%1La:+0x0p0:0:-1:
+%*1La:+0x0p0:0:-1:
+%1La:+0x0p+0:0:-1:
+%*1La:+0x0p+0:0:-1:
+%1La:+0x8p-16385:0:-1:
+%*1La:+0x8p-16385:0:-1:
+%1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%1La:+infinity:0:-1:
+%*1La:+infinity:0:-1:
+%2La::0:-1:
+%*2La::0:-1:
+%2La:-infinity:0:-1:
+%*2La:-infinity:0:-1:
+%2La:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0:
+%*2La:-0xf.fffffffffffffffffffffffffff8p+16380:0:2:
+%2La:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0:
+%*2La:-0x7.fffffffffffffffffffffffffffcp16381:0:2:
+%2La:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0:
+%*2La:-0x2.3456789abcdef0123456789abcdep+12345:0:2:
+%2La:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0:
+%*2La:-0x2.3456789abcdef0123456789abcdep012345:0:2:
+%2La:-0x8p-16385:1:2:-0x0:
+%*2La:-0x8p-16385:0:2:
+%2La:-0x0p+0:1:2:-0x0:
+%*2La:-0x0p+0:0:2:
+%2La:-0x0p0:1:2:-0x0:
+%*2La:-0x0p0:0:2:
+%2La:-nan(09A_Zaz):0:-1:
+%*2La:-nan(09A_Zaz):0:-1:
+%2La:-nan():0:-1:
+%*2La:-nan():0:-1:
+%2La:nan():0:-1:
+%*2La:nan():0:-1:
+%2La:nan(09A_Zaz):0:-1:
+%*2La:nan(09A_Zaz):0:-1:
+%2La:0x0p0:0:-1:
+%*2La:0x0p0:0:-1:
+%2La:0x0p+0:0:-1:
+%*2La:0x0p+0:0:-1:
+%2La:0x8p-16385:0:-1:
+%*2La:0x8p-16385:0:-1:
+%2La:0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*2La:0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%2La:infinity:0:-1:
+%*2La:infinity:0:-1:
+%2La:+nan():0:-1:
+%*2La:+nan():0:-1:
+%2La:+nan(09A_Zaz):0:-1:
+%*2La:+nan(09A_Zaz):0:-1:
+%2La:+0x0p0:1:2:0x0:
+%*2La:+0x0p0:0:2:
+%2La:+0x0p+0:1:2:0x0:
+%*2La:+0x0p+0:0:2:
+%2La:+0x8p-16385:1:2:0x0:
+%*2La:+0x8p-16385:0:2:
+%2La:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0:
+%*2La:+0x2.3456789abcdef0123456789abcdep012345:0:2:
+%2La:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0:
+%*2La:+0x2.3456789abcdef0123456789abcdep+12345:0:2:
+%2La:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0:
+%*2La:+0x7.fffffffffffffffffffffffffffcp16381:0:2:
+%2La:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0:
+%*2La:+0xf.fffffffffffffffffffffffffff8p+16380:0:2:
+%2La:+infinity:0:-1:
+%*2La:+infinity:0:-1:
+%3La::0:-1:
+%*3La::0:-1:
+%3La:-infinity:0:-1:
+%*3La:-infinity:0:-1:
+%3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%3La:-0x8p-16385:0:-1:
+%*3La:-0x8p-16385:0:-1:
+%3La:-0x0p+0:0:-1:
+%*3La:-0x0p+0:0:-1:
+%3La:-0x0p0:0:-1:
+%*3La:-0x0p0:0:-1:
+%3La:-nan(09A_Zaz):0:-1:
+%*3La:-nan(09A_Zaz):0:-1:
+%3La:-nan():0:-1:
+%*3La:-nan():0:-1:
+%3La:nan():1:3:nan:
+%*3La:nan():0:3:
+%3La:nan(09A_Zaz):1:3:nan:
+%*3La:nan(09A_Zaz):0:3:
+%3La:0x0p0:1:3:0x0:
+%*3La:0x0p0:0:3:
+%3La:0x0p+0:1:3:0x0:
+%*3La:0x0p+0:0:3:
+%3La:0x8p-16385:1:3:0x1p3:
+%*3La:0x8p-16385:0:3:
+%3La:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1:
+%*3La:0x2.3456789abcdef0123456789abcdep012345:0:3:
+%3La:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1:
+%*3La:0x2.3456789abcdef0123456789abcdep+12345:0:3:
+%3La:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2:
+%*3La:0x7.fffffffffffffffffffffffffffcp16381:0:3:
+%3La:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3:
+%*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3:
+%3La:infinity:1:3:inf:
+%*3La:infinity:0:3:
+%3La:+nan():0:-1:
+%*3La:+nan():0:-1:
+%3La:+nan(09A_Zaz):0:-1:
+%*3La:+nan(09A_Zaz):0:-1:
+%3La:+0x0p0:0:-1:
+%*3La:+0x0p0:0:-1:
+%3La:+0x0p+0:0:-1:
+%*3La:+0x0p+0:0:-1:
+%3La:+0x8p-16385:0:-1:
+%*3La:+0x8p-16385:0:-1:
+%3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%3La:+infinity:0:-1:
+%*3La:+infinity:0:-1:
+%4La::0:-1:
+%*4La::0:-1:
+%4La:-infinity:1:4:-inf:
+%*4La:-infinity:0:4:
+%4La:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3:
+%*4La:-0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4La:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2:
+%*4La:-0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4La:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4La:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4La:-0x8p-16385:1:4:-0x1p3:
+%*4La:-0x8p-16385:0:4:
+%4La:-0x0p+0:1:4:-0x0:
+%*4La:-0x0p+0:0:4:
+%4La:-0x0p0:1:4:-0x0:
+%*4La:-0x0p0:0:4:
+%4La:-nan(09A_Zaz):1:4:-nan:
+%*4La:-nan(09A_Zaz):0:4:
+%4La:-nan():1:4:-nan:
+%*4La:-nan():0:4:
+%4La:nan():0:-1:
+%*4La:nan():0:-1:
+%4La:nan(09A_Zaz):0:-1:
+%*4La:nan(09A_Zaz):0:-1:
+%4La:0x0p0:0:-1:
+%*4La:0x0p0:0:-1:
+%4La:0x0p+0:0:-1:
+%*4La:0x0p+0:0:-1:
+%4La:0x8p-16385:0:-1:
+%*4La:0x8p-16385:0:-1:
+%4La:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1:
+%*4La:0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4La:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1:
+%*4La:0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4La:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2:
+%*4La:0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4La:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3:
+%*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4La:infinity:0:-1:
+%*4La:infinity:0:-1:
+%4La:+nan():1:4:nan:
+%*4La:+nan():0:4:
+%4La:+nan(09A_Zaz):1:4:nan:
+%*4La:+nan(09A_Zaz):0:4:
+%4La:+0x0p0:1:4:0x0:
+%*4La:+0x0p0:0:4:
+%4La:+0x0p+0:1:4:0x0:
+%*4La:+0x0p+0:0:4:
+%4La:+0x8p-16385:1:4:0x1p3:
+%*4La:+0x8p-16385:0:4:
+%4La:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4La:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4La:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2:
+%*4La:+0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4La:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3:
+%*4La:+0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4La:+infinity:1:4:inf:
+%*4La:+infinity:0:4:
+%5La::0:-1:
+%*5La::0:-1:
+%5La:-infinity:0:-1:
+%*5La:-infinity:0:-1:
+%5La:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3:
+%*5La:-0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5La:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2:
+%*5La:-0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5La:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5La:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5La:-0x8p-16385:0:-1:
+%*5La:-0x8p-16385:0:-1:
+%5La:-0x0p+0:0:-1:
+%*5La:-0x0p+0:0:-1:
+%5La:-0x0p0:0:-1:
+%*5La:-0x0p0:0:-1:
+%5La:-nan(09A_Zaz):0:-1:
+%*5La:-nan(09A_Zaz):0:-1:
+%5La:-nan():0:-1:
+%*5La:-nan():0:-1:
+%5La:nan():1:5:nan:
+%*5La:nan():0:5:
+%5La:nan(09A_Zaz):0:-1:
+%*5La:nan(09A_Zaz):0:-1:
+%5La:0x0p0:1:5:0x0:
+%*5La:0x0p0:0:5:
+%5La:0x0p+0:0:-1:
+%*5La:0x0p+0:0:-1:
+%5La:0x8p-16385:0:-1:
+%*5La:0x8p-16385:0:-1:
+%5La:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5La:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5La:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2:
+%*5La:0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5La:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3:
+%*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5La:infinity:0:-1:
+%*5La:infinity:0:-1:
+%5La:+nan():0:-1:
+%*5La:+nan():0:-1:
+%5La:+nan(09A_Zaz):0:-1:
+%*5La:+nan(09A_Zaz):0:-1:
+%5La:+0x0p0:0:-1:
+%*5La:+0x0p0:0:-1:
+%5La:+0x0p+0:0:-1:
+%*5La:+0x0p+0:0:-1:
+%5La:+0x8p-16385:0:-1:
+%*5La:+0x8p-16385:0:-1:
+%5La:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5La:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5La:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2:
+%*5La:+0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5La:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3:
+%*5La:+0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5La:+infinity:0:-1:
+%*5La:+infinity:0:-1:
+%6La::0:-1:
+%*6La::0:-1:
+%6La:-infinity:0:-1:
+%*6La:-infinity:0:-1:
+%6La:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3:
+%*6La:-0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6La:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2:
+%*6La:-0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6La:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6La:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6La:-0x8p-16385:0:-1:
+%*6La:-0x8p-16385:0:-1:
+%6La:-0x0p+0:0:-1:
+%*6La:-0x0p+0:0:-1:
+%6La:-0x0p0:1:6:-0x0:
+%*6La:-0x0p0:0:6:
+%6La:-nan(09A_Zaz):0:-1:
+%*6La:-nan(09A_Zaz):0:-1:
+%6La:-nan():1:6:-nan:
+%*6La:-nan():0:6:
+%6La:nan():1:5:nan:
+%*6La:nan():0:5:
+%6La:nan(09A_Zaz):0:-1:
+%*6La:nan(09A_Zaz):0:-1:
+%6La:0x0p0:1:5:0x0:
+%*6La:0x0p0:0:5:
+%6La:0x0p+0:1:6:0x0:
+%*6La:0x0p+0:0:6:
+%6La:0x8p-16385:1:6:0x1p2:
+%*6La:0x8p-16385:0:6:
+%6La:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6La:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6La:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2:
+%*6La:0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6La:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3:
+%*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6La:infinity:0:-1:
+%*6La:infinity:0:-1:
+%6La:+nan():1:6:nan:
+%*6La:+nan():0:6:
+%6La:+nan(09A_Zaz):0:-1:
+%*6La:+nan(09A_Zaz):0:-1:
+%6La:+0x0p0:1:6:0x0:
+%*6La:+0x0p0:0:6:
+%6La:+0x0p+0:0:-1:
+%*6La:+0x0p+0:0:-1:
+%6La:+0x8p-16385:0:-1:
+%*6La:+0x8p-16385:0:-1:
+%6La:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6La:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6La:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2:
+%*6La:+0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6La:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3:
+%*6La:+0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6La:+infinity:0:-1:
+%*6La:+infinity:0:-1:
+%35La::0:-1:
+%*35La::0:-1:
+%35La:-infinity:1:9:-inf:
+%*35La:-infinity:0:9:
+%35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%35La:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3:
+%*35La:-0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%35La:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35La:-0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35La:-0x8p-16385:1:11:-0x1p-16382:
+%*35La:-0x8p-16385:0:11:
+%35La:-0x0p+0:1:7:-0x0:
+%*35La:-0x0p+0:0:7:
+%35La:-0x0p0:1:6:-0x0:
+%*35La:-0x0p0:0:6:
+%35La:-nan(09A_Zaz):1:13:-nan:
+%*35La:-nan(09A_Zaz):0:13:
+%35La:-nan():1:6:-nan:
+%*35La:-nan():0:6:
+%35La:nan():1:5:nan:
+%*35La:nan():0:5:
+%35La:nan(09A_Zaz):1:12:nan:
+%*35La:nan(09A_Zaz):0:12:
+%35La:0x0p0:1:5:0x0:
+%*35La:0x0p0:0:5:
+%35La:0x0p+0:1:6:0x0:
+%*35La:0x0p+0:0:6:
+%35La:0x8p-16385:1:10:0x1p-16382:
+%*35La:0x8p-16385:0:10:
+%35La:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35La:0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35La:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35La:0x2.3456789abcdef0123456789abcdep+12345:0:35:
+%35La:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18:
+%*35La:0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35La:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4:
+%*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35:
+%35La:infinity:1:8:inf:
+%*35La:infinity:0:8:
+%35La:+nan():1:6:nan:
+%*35La:+nan():0:6:
+%35La:+nan(09A_Zaz):1:13:nan:
+%*35La:+nan(09A_Zaz):0:13:
+%35La:+0x0p0:1:6:0x0:
+%*35La:+0x0p0:0:6:
+%35La:+0x0p+0:1:7:0x0:
+%*35La:+0x0p+0:0:7:
+%35La:+0x8p-16385:1:11:0x1p-16382:
+%*35La:+0x8p-16385:0:11:
+%35La:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35La:+0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%35La:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3:
+%*35La:+0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%35La:+infinity:1:9:inf:
+%*35La:+infinity:0:9:
+%53La::0:-1:
+%*53La::0:-1:
+%53La:-infinity:1:9:-inf:
+%*53La:-infinity:0:9:
+%53La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:-0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:-0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:-0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53La:-0x8p-16385:1:11:-0x1p-16382:
+%*53La:-0x8p-16385:0:11:
+%53La:-0x0p+0:1:7:-0x0:
+%*53La:-0x0p+0:0:7:
+%53La:-0x0p0:1:6:-0x0:
+%*53La:-0x0p0:0:6:
+%53La:-nan(09A_Zaz):1:13:-nan:
+%*53La:-nan(09A_Zaz):0:13:
+%53La:-nan():1:6:-nan:
+%*53La:-nan():0:6:
+%53La:nan():1:5:nan:
+%*53La:nan():0:5:
+%53La:nan(09A_Zaz):1:12:nan:
+%*53La:nan(09A_Zaz):0:12:
+%53La:0x0p0:1:5:0x0:
+%*53La:0x0p0:0:5:
+%53La:0x0p+0:1:6:0x0:
+%*53La:0x0p+0:0:6:
+%53La:0x8p-16385:1:10:0x1p-16382:
+%*53La:0x8p-16385:0:10:
+%53La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:0x2.3456789abcdef0123456789abcdep012345:0:39:
+%53La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:0x2.3456789abcdef0123456789abcdep+12345:0:39:
+%53La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:0x7.fffffffffffffffffffffffffffcp16381:0:38:
+%53La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39:
+%53La:infinity:1:8:inf:
+%*53La:infinity:0:8:
+%53La:+nan():1:6:nan:
+%*53La:+nan():0:6:
+%53La:+nan(09A_Zaz):1:13:nan:
+%*53La:+nan(09A_Zaz):0:13:
+%53La:+0x0p0:1:6:0x0:
+%*53La:+0x0p0:0:6:
+%53La:+0x0p+0:1:7:0x0:
+%*53La:+0x0p+0:0:7:
+%53La:+0x8p-16385:1:11:0x1p-16382:
+%*53La:+0x8p-16385:0:11:
+%53La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:+0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La:+0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:+0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53La:+infinity:1:9:inf:
+%*53La:+infinity:0:9:
+%5La: :0:-1:
+%*5La: :0:-1:
+%5La: -infinity:0:-1:
+%*5La: -infinity:0:-1:
+%5La: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3:
+%*5La: -0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5La: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2:
+%*5La: -0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5La: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5La: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5La: -0x8p-16385:0:-1:
+%*5La: -0x8p-16385:0:-1:
+%5La: -0x0p+0:0:-1:
+%*5La: -0x0p+0:0:-1:
+%5La: -0x0p0:0:-1:
+%*5La: -0x0p0:0:-1:
+%5La: -nan(09A_Zaz):0:-1:
+%*5La: -nan(09A_Zaz):0:-1:
+%5La: -nan():0:-1:
+%*5La: -nan():0:-1:
+%5La: nan():1:6:nan:
+%*5La: nan():0:6:
+%5La: nan(09A_Zaz):0:-1:
+%*5La: nan(09A_Zaz):0:-1:
+%5La: 0x0p0:1:6:0x0:
+%*5La: 0x0p0:0:6:
+%5La: 0x0p+0:0:-1:
+%*5La: 0x0p+0:0:-1:
+%5La: 0x8p-16385:0:-1:
+%*5La: 0x8p-16385:0:-1:
+%5La: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5La: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5La: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2:
+%*5La: 0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5La: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3:
+%*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5La: infinity:0:-1:
+%*5La: infinity:0:-1:
+%5La: +nan():0:-1:
+%*5La: +nan():0:-1:
+%5La: +nan(09A_Zaz):0:-1:
+%*5La: +nan(09A_Zaz):0:-1:
+%5La: +0x0p0:0:-1:
+%*5La: +0x0p0:0:-1:
+%5La: +0x0p+0:0:-1:
+%*5La: +0x0p+0:0:-1:
+%5La: +0x8p-16385:0:-1:
+%*5La: +0x8p-16385:0:-1:
+%5La: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5La: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5La: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2:
+%*5La: +0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5La: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3:
+%*5La: +0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5La: +infinity:0:-1:
+%*5La: +infinity:0:-1:
+%53La: :0:-1:
+%*53La: :0:-1:
+%53La: -infinity:1:10:-inf:
+%*53La: -infinity:0:10:
+%53La: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: -0xf.fffffffffffffffffffffffffff8p+16380:0:41:
+%53La: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: -0x7.fffffffffffffffffffffffffffcp16381:0:40:
+%53La: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: -0x2.3456789abcdef0123456789abcdep+12345:0:41:
+%53La: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: -0x2.3456789abcdef0123456789abcdep012345:0:41:
+%53La: -0x8p-16385:1:12:-0x1p-16382:
+%*53La: -0x8p-16385:0:12:
+%53La: -0x0p+0:1:8:-0x0:
+%*53La: -0x0p+0:0:8:
+%53La: -0x0p0:1:7:-0x0:
+%*53La: -0x0p0:0:7:
+%53La: -nan(09A_Zaz):1:14:-nan:
+%*53La: -nan(09A_Zaz):0:14:
+%53La: -nan():1:7:-nan:
+%*53La: -nan():0:7:
+%53La: nan():1:6:nan:
+%*53La: nan():0:6:
+%53La: nan(09A_Zaz):1:13:nan:
+%*53La: nan(09A_Zaz):0:13:
+%53La: 0x0p0:1:6:0x0:
+%*53La: 0x0p0:0:6:
+%53La: 0x0p+0:1:7:0x0:
+%*53La: 0x0p+0:0:7:
+%53La: 0x8p-16385:1:11:0x1p-16382:
+%*53La: 0x8p-16385:0:11:
+%53La: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: 0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53La: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: 0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53La: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: 0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53La: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53La: infinity:1:9:inf:
+%*53La: infinity:0:9:
+%53La: +nan():1:7:nan:
+%*53La: +nan():0:7:
+%53La: +nan(09A_Zaz):1:14:nan:
+%*53La: +nan(09A_Zaz):0:14:
+%53La: +0x0p0:1:7:0x0:
+%*53La: +0x0p0:0:7:
+%53La: +0x0p+0:1:8:0x0:
+%*53La: +0x0p+0:0:8:
+%53La: +0x8p-16385:1:12:0x1p-16382:
+%*53La: +0x8p-16385:0:12:
+%53La: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: +0x2.3456789abcdef0123456789abcdep012345:0:41:
+%53La: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53La: +0x2.3456789abcdef0123456789abcdep+12345:0:41:
+%53La: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: +0x7.fffffffffffffffffffffffffffcp16381:0:40:
+%53La: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383:
+%*53La: +0xf.fffffffffffffffffffffffffff8p+16380:0:41:
+%53La: +infinity:1:10:inf:
+%*53La: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input
new file mode 100644
index 0000000..b3f26be
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input
@@ -0,0 +1,682 @@
+%LA::0:-1:
+%*LA::0:-1:
+%LA:-INFINITY:1:9:-inf:
+%*LA:-INFINITY:0:9:
+%LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%LA:-0X8P-16385:1:11:-0x1p-16382:
+%*LA:-0X8P-16385:0:11:
+%LA:-0X0P+0:1:7:-0x0:
+%*LA:-0X0P+0:0:7:
+%LA:-0X0P0:1:6:-0x0:
+%*LA:-0X0P0:0:6:
+%LA:-NAN(09A_Zaz):1:13:-nan:
+%*LA:-NAN(09A_Zaz):0:13:
+%LA:-NAN():1:6:-nan:
+%*LA:-NAN():0:6:
+%LA:NAN():1:5:nan:
+%*LA:NAN():0:5:
+%LA:NAN(09A_Zaz):1:12:nan:
+%*LA:NAN(09A_Zaz):0:12:
+%LA:0X0P0:1:5:0x0:
+%*LA:0X0P0:0:5:
+%LA:0X0P+0:1:6:0x0:
+%*LA:0X0P+0:0:6:
+%LA:0X8P-16385:1:10:0x1p-16382:
+%*LA:0X8P-16385:0:10:
+%LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39:
+%LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39:
+%LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38:
+%LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39:
+%LA:INFINITY:1:8:inf:
+%*LA:INFINITY:0:8:
+%LA:+NAN():1:6:nan:
+%*LA:+NAN():0:6:
+%LA:+NAN(09A_Zaz):1:13:nan:
+%*LA:+NAN(09A_Zaz):0:13:
+%LA:+0X0P0:1:6:0x0:
+%*LA:+0X0P0:0:6:
+%LA:+0X0P+0:1:7:0x0:
+%*LA:+0X0P+0:0:7:
+%LA:+0X8P-16385:1:11:0x1p-16382:
+%*LA:+0X8P-16385:0:11:
+%LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%LA:+INFINITY:1:9:inf:
+%*LA:+INFINITY:0:9:
+%1LA::0:-1:
+%*1LA::0:-1:
+%1LA:-INFINITY:0:-1:
+%*1LA:-INFINITY:0:-1:
+%1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%1LA:-0X8P-16385:0:-1:
+%*1LA:-0X8P-16385:0:-1:
+%1LA:-0X0P+0:0:-1:
+%*1LA:-0X0P+0:0:-1:
+%1LA:-0X0P0:0:-1:
+%*1LA:-0X0P0:0:-1:
+%1LA:-NAN(09A_Zaz):0:-1:
+%*1LA:-NAN(09A_Zaz):0:-1:
+%1LA:-NAN():0:-1:
+%*1LA:-NAN():0:-1:
+%1LA:NAN():0:-1:
+%*1LA:NAN():0:-1:
+%1LA:NAN(09A_Zaz):0:-1:
+%*1LA:NAN(09A_Zaz):0:-1:
+%1LA:0X0P0:1:1:0x0:
+%*1LA:0X0P0:0:1:
+%1LA:0X0P+0:1:1:0x0:
+%*1LA:0X0P+0:0:1:
+%1LA:0X8P-16385:1:1:0x0:
+%*1LA:0X8P-16385:0:1:
+%1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1:
+%1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1:
+%1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0:
+%*1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1:
+%1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0:
+%*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1:
+%1LA:INFINITY:0:-1:
+%*1LA:INFINITY:0:-1:
+%1LA:+NAN():0:-1:
+%*1LA:+NAN():0:-1:
+%1LA:+NAN(09A_Zaz):0:-1:
+%*1LA:+NAN(09A_Zaz):0:-1:
+%1LA:+0X0P0:0:-1:
+%*1LA:+0X0P0:0:-1:
+%1LA:+0X0P+0:0:-1:
+%*1LA:+0X0P+0:0:-1:
+%1LA:+0X8P-16385:0:-1:
+%*1LA:+0X8P-16385:0:-1:
+%1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%1LA:+INFINITY:0:-1:
+%*1LA:+INFINITY:0:-1:
+%2LA::0:-1:
+%*2LA::0:-1:
+%2LA:-INFINITY:0:-1:
+%*2LA:-INFINITY:0:-1:
+%2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0:
+%*2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2:
+%2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0:
+%*2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2:
+%2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2:
+%2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2:
+%2LA:-0X8P-16385:1:2:-0x0:
+%*2LA:-0X8P-16385:0:2:
+%2LA:-0X0P+0:1:2:-0x0:
+%*2LA:-0X0P+0:0:2:
+%2LA:-0X0P0:1:2:-0x0:
+%*2LA:-0X0P0:0:2:
+%2LA:-NAN(09A_Zaz):0:-1:
+%*2LA:-NAN(09A_Zaz):0:-1:
+%2LA:-NAN():0:-1:
+%*2LA:-NAN():0:-1:
+%2LA:NAN():0:-1:
+%*2LA:NAN():0:-1:
+%2LA:NAN(09A_Zaz):0:-1:
+%*2LA:NAN(09A_Zaz):0:-1:
+%2LA:0X0P0:0:-1:
+%*2LA:0X0P0:0:-1:
+%2LA:0X0P+0:0:-1:
+%*2LA:0X0P+0:0:-1:
+%2LA:0X8P-16385:0:-1:
+%*2LA:0X8P-16385:0:-1:
+%2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%2LA:INFINITY:0:-1:
+%*2LA:INFINITY:0:-1:
+%2LA:+NAN():0:-1:
+%*2LA:+NAN():0:-1:
+%2LA:+NAN(09A_Zaz):0:-1:
+%*2LA:+NAN(09A_Zaz):0:-1:
+%2LA:+0X0P0:1:2:0x0:
+%*2LA:+0X0P0:0:2:
+%2LA:+0X0P+0:1:2:0x0:
+%*2LA:+0X0P+0:0:2:
+%2LA:+0X8P-16385:1:2:0x0:
+%*2LA:+0X8P-16385:0:2:
+%2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2:
+%2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2:
+%2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0:
+%*2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2:
+%2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0:
+%*2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2:
+%2LA:+INFINITY:0:-1:
+%*2LA:+INFINITY:0:-1:
+%3LA::0:-1:
+%*3LA::0:-1:
+%3LA:-INFINITY:0:-1:
+%*3LA:-INFINITY:0:-1:
+%3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%3LA:-0X8P-16385:0:-1:
+%*3LA:-0X8P-16385:0:-1:
+%3LA:-0X0P+0:0:-1:
+%*3LA:-0X0P+0:0:-1:
+%3LA:-0X0P0:0:-1:
+%*3LA:-0X0P0:0:-1:
+%3LA:-NAN(09A_Zaz):0:-1:
+%*3LA:-NAN(09A_Zaz):0:-1:
+%3LA:-NAN():0:-1:
+%*3LA:-NAN():0:-1:
+%3LA:NAN():1:3:nan:
+%*3LA:NAN():0:3:
+%3LA:NAN(09A_Zaz):1:3:nan:
+%*3LA:NAN(09A_Zaz):0:3:
+%3LA:0X0P0:1:3:0x0:
+%*3LA:0X0P0:0:3:
+%3LA:0X0P+0:1:3:0x0:
+%*3LA:0X0P+0:0:3:
+%3LA:0X8P-16385:1:3:0x1p3:
+%*3LA:0X8P-16385:0:3:
+%3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3:
+%3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3:
+%3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2:
+%*3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3:
+%3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3:
+%*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3:
+%3LA:INFINITY:1:3:inf:
+%*3LA:INFINITY:0:3:
+%3LA:+NAN():0:-1:
+%*3LA:+NAN():0:-1:
+%3LA:+NAN(09A_Zaz):0:-1:
+%*3LA:+NAN(09A_Zaz):0:-1:
+%3LA:+0X0P0:0:-1:
+%*3LA:+0X0P0:0:-1:
+%3LA:+0X0P+0:0:-1:
+%*3LA:+0X0P+0:0:-1:
+%3LA:+0X8P-16385:0:-1:
+%*3LA:+0X8P-16385:0:-1:
+%3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%3LA:+INFINITY:0:-1:
+%*3LA:+INFINITY:0:-1:
+%4LA::0:-1:
+%*4LA::0:-1:
+%4LA:-INFINITY:1:4:-inf:
+%*4LA:-INFINITY:0:4:
+%4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3:
+%*4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2:
+%*4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LA:-0X8P-16385:1:4:-0x1p3:
+%*4LA:-0X8P-16385:0:4:
+%4LA:-0X0P+0:1:4:-0x0:
+%*4LA:-0X0P+0:0:4:
+%4LA:-0X0P0:1:4:-0x0:
+%*4LA:-0X0P0:0:4:
+%4LA:-NAN(09A_Zaz):1:4:-nan:
+%*4LA:-NAN(09A_Zaz):0:4:
+%4LA:-NAN():1:4:-nan:
+%*4LA:-NAN():0:4:
+%4LA:NAN():0:-1:
+%*4LA:NAN():0:-1:
+%4LA:NAN(09A_Zaz):0:-1:
+%*4LA:NAN(09A_Zaz):0:-1:
+%4LA:0X0P0:0:-1:
+%*4LA:0X0P0:0:-1:
+%4LA:0X0P+0:0:-1:
+%*4LA:0X0P+0:0:-1:
+%4LA:0X8P-16385:0:-1:
+%*4LA:0X8P-16385:0:-1:
+%4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2:
+%*4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3:
+%*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LA:INFINITY:0:-1:
+%*4LA:INFINITY:0:-1:
+%4LA:+NAN():1:4:nan:
+%*4LA:+NAN():0:4:
+%4LA:+NAN(09A_Zaz):1:4:nan:
+%*4LA:+NAN(09A_Zaz):0:4:
+%4LA:+0X0P0:1:4:0x0:
+%*4LA:+0X0P0:0:4:
+%4LA:+0X0P+0:1:4:0x0:
+%*4LA:+0X0P+0:0:4:
+%4LA:+0X8P-16385:1:4:0x1p3:
+%*4LA:+0X8P-16385:0:4:
+%4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2:
+%*4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3:
+%*4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LA:+INFINITY:1:4:inf:
+%*4LA:+INFINITY:0:4:
+%5LA::0:-1:
+%*5LA::0:-1:
+%5LA:-INFINITY:0:-1:
+%*5LA:-INFINITY:0:-1:
+%5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3:
+%*5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2:
+%*5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LA:-0X8P-16385:0:-1:
+%*5LA:-0X8P-16385:0:-1:
+%5LA:-0X0P+0:0:-1:
+%*5LA:-0X0P+0:0:-1:
+%5LA:-0X0P0:0:-1:
+%*5LA:-0X0P0:0:-1:
+%5LA:-NAN(09A_Zaz):0:-1:
+%*5LA:-NAN(09A_Zaz):0:-1:
+%5LA:-NAN():0:-1:
+%*5LA:-NAN():0:-1:
+%5LA:NAN():1:5:nan:
+%*5LA:NAN():0:5:
+%5LA:NAN(09A_Zaz):0:-1:
+%*5LA:NAN(09A_Zaz):0:-1:
+%5LA:0X0P0:1:5:0x0:
+%*5LA:0X0P0:0:5:
+%5LA:0X0P+0:0:-1:
+%*5LA:0X0P+0:0:-1:
+%5LA:0X8P-16385:0:-1:
+%*5LA:0X8P-16385:0:-1:
+%5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2:
+%*5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3:
+%*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LA:INFINITY:0:-1:
+%*5LA:INFINITY:0:-1:
+%5LA:+NAN():0:-1:
+%*5LA:+NAN():0:-1:
+%5LA:+NAN(09A_Zaz):0:-1:
+%*5LA:+NAN(09A_Zaz):0:-1:
+%5LA:+0X0P0:0:-1:
+%*5LA:+0X0P0:0:-1:
+%5LA:+0X0P+0:0:-1:
+%*5LA:+0X0P+0:0:-1:
+%5LA:+0X8P-16385:0:-1:
+%*5LA:+0X8P-16385:0:-1:
+%5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2:
+%*5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3:
+%*5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LA:+INFINITY:0:-1:
+%*5LA:+INFINITY:0:-1:
+%6LA::0:-1:
+%*6LA::0:-1:
+%6LA:-INFINITY:0:-1:
+%*6LA:-INFINITY:0:-1:
+%6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3:
+%*6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2:
+%*6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LA:-0X8P-16385:0:-1:
+%*6LA:-0X8P-16385:0:-1:
+%6LA:-0X0P+0:0:-1:
+%*6LA:-0X0P+0:0:-1:
+%6LA:-0X0P0:1:6:-0x0:
+%*6LA:-0X0P0:0:6:
+%6LA:-NAN(09A_Zaz):0:-1:
+%*6LA:-NAN(09A_Zaz):0:-1:
+%6LA:-NAN():1:6:-nan:
+%*6LA:-NAN():0:6:
+%6LA:NAN():1:5:nan:
+%*6LA:NAN():0:5:
+%6LA:NAN(09A_Zaz):0:-1:
+%*6LA:NAN(09A_Zaz):0:-1:
+%6LA:0X0P0:1:5:0x0:
+%*6LA:0X0P0:0:5:
+%6LA:0X0P+0:1:6:0x0:
+%*6LA:0X0P+0:0:6:
+%6LA:0X8P-16385:1:6:0x1p2:
+%*6LA:0X8P-16385:0:6:
+%6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2:
+%*6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3:
+%*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LA:INFINITY:0:-1:
+%*6LA:INFINITY:0:-1:
+%6LA:+NAN():1:6:nan:
+%*6LA:+NAN():0:6:
+%6LA:+NAN(09A_Zaz):0:-1:
+%*6LA:+NAN(09A_Zaz):0:-1:
+%6LA:+0X0P0:1:6:0x0:
+%*6LA:+0X0P0:0:6:
+%6LA:+0X0P+0:0:-1:
+%*6LA:+0X0P+0:0:-1:
+%6LA:+0X8P-16385:0:-1:
+%*6LA:+0X8P-16385:0:-1:
+%6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2:
+%*6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3:
+%*6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LA:+INFINITY:0:-1:
+%*6LA:+INFINITY:0:-1:
+%35LA::0:-1:
+%*35LA::0:-1:
+%35LA:-INFINITY:1:9:-inf:
+%*35LA:-INFINITY:0:9:
+%35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3:
+%*35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LA:-0X8P-16385:1:11:-0x1p-16382:
+%*35LA:-0X8P-16385:0:11:
+%35LA:-0X0P+0:1:7:-0x0:
+%*35LA:-0X0P+0:0:7:
+%35LA:-0X0P0:1:6:-0x0:
+%*35LA:-0X0P0:0:6:
+%35LA:-NAN(09A_Zaz):1:13:-nan:
+%*35LA:-NAN(09A_Zaz):0:13:
+%35LA:-NAN():1:6:-nan:
+%*35LA:-NAN():0:6:
+%35LA:NAN():1:5:nan:
+%*35LA:NAN():0:5:
+%35LA:NAN(09A_Zaz):1:12:nan:
+%*35LA:NAN(09A_Zaz):0:12:
+%35LA:0X0P0:1:5:0x0:
+%*35LA:0X0P0:0:5:
+%35LA:0X0P+0:1:6:0x0:
+%*35LA:0X0P+0:0:6:
+%35LA:0X8P-16385:1:10:0x1p-16382:
+%*35LA:0X8P-16385:0:10:
+%35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35:
+%35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18:
+%*35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4:
+%*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35:
+%35LA:INFINITY:1:8:inf:
+%*35LA:INFINITY:0:8:
+%35LA:+NAN():1:6:nan:
+%*35LA:+NAN():0:6:
+%35LA:+NAN(09A_Zaz):1:13:nan:
+%*35LA:+NAN(09A_Zaz):0:13:
+%35LA:+0X0P0:1:6:0x0:
+%*35LA:+0X0P0:0:6:
+%35LA:+0X0P+0:1:7:0x0:
+%*35LA:+0X0P+0:0:7:
+%35LA:+0X8P-16385:1:11:0x1p-16382:
+%*35LA:+0X8P-16385:0:11:
+%35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3:
+%*35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%35LA:+INFINITY:1:9:inf:
+%*35LA:+INFINITY:0:9:
+%53LA::0:-1:
+%*53LA::0:-1:
+%53LA:-INFINITY:1:9:-inf:
+%*53LA:-INFINITY:0:9:
+%53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LA:-0X8P-16385:1:11:-0x1p-16382:
+%*53LA:-0X8P-16385:0:11:
+%53LA:-0X0P+0:1:7:-0x0:
+%*53LA:-0X0P+0:0:7:
+%53LA:-0X0P0:1:6:-0x0:
+%*53LA:-0X0P0:0:6:
+%53LA:-NAN(09A_Zaz):1:13:-nan:
+%*53LA:-NAN(09A_Zaz):0:13:
+%53LA:-NAN():1:6:-nan:
+%*53LA:-NAN():0:6:
+%53LA:NAN():1:5:nan:
+%*53LA:NAN():0:5:
+%53LA:NAN(09A_Zaz):1:12:nan:
+%*53LA:NAN(09A_Zaz):0:12:
+%53LA:0X0P0:1:5:0x0:
+%*53LA:0X0P0:0:5:
+%53LA:0X0P+0:1:6:0x0:
+%*53LA:0X0P+0:0:6:
+%53LA:0X8P-16385:1:10:0x1p-16382:
+%*53LA:0X8P-16385:0:10:
+%53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39:
+%53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39:
+%53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38:
+%53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39:
+%53LA:INFINITY:1:8:inf:
+%*53LA:INFINITY:0:8:
+%53LA:+NAN():1:6:nan:
+%*53LA:+NAN():0:6:
+%53LA:+NAN(09A_Zaz):1:13:nan:
+%*53LA:+NAN(09A_Zaz):0:13:
+%53LA:+0X0P0:1:6:0x0:
+%*53LA:+0X0P0:0:6:
+%53LA:+0X0P+0:1:7:0x0:
+%*53LA:+0X0P+0:0:7:
+%53LA:+0X8P-16385:1:11:0x1p-16382:
+%*53LA:+0X8P-16385:0:11:
+%53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LA:+INFINITY:1:9:inf:
+%*53LA:+INFINITY:0:9:
+%5LA: :0:-1:
+%*5LA: :0:-1:
+%5LA: -INFINITY:0:-1:
+%*5LA: -INFINITY:0:-1:
+%5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3:
+%*5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2:
+%*5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LA: -0X8P-16385:0:-1:
+%*5LA: -0X8P-16385:0:-1:
+%5LA: -0X0P+0:0:-1:
+%*5LA: -0X0P+0:0:-1:
+%5LA: -0X0P0:0:-1:
+%*5LA: -0X0P0:0:-1:
+%5LA: -NAN(09A_Zaz):0:-1:
+%*5LA: -NAN(09A_Zaz):0:-1:
+%5LA: -NAN():0:-1:
+%*5LA: -NAN():0:-1:
+%5LA: NAN():1:6:nan:
+%*5LA: NAN():0:6:
+%5LA: NAN(09A_Zaz):0:-1:
+%*5LA: NAN(09A_Zaz):0:-1:
+%5LA: 0X0P0:1:6:0x0:
+%*5LA: 0X0P0:0:6:
+%5LA: 0X0P+0:0:-1:
+%*5LA: 0X0P+0:0:-1:
+%5LA: 0X8P-16385:0:-1:
+%*5LA: 0X8P-16385:0:-1:
+%5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2:
+%*5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3:
+%*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LA: INFINITY:0:-1:
+%*5LA: INFINITY:0:-1:
+%5LA: +NAN():0:-1:
+%*5LA: +NAN():0:-1:
+%5LA: +NAN(09A_Zaz):0:-1:
+%*5LA: +NAN(09A_Zaz):0:-1:
+%5LA: +0X0P0:0:-1:
+%*5LA: +0X0P0:0:-1:
+%5LA: +0X0P+0:0:-1:
+%*5LA: +0X0P+0:0:-1:
+%5LA: +0X8P-16385:0:-1:
+%*5LA: +0X8P-16385:0:-1:
+%5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2:
+%*5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3:
+%*5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LA: +INFINITY:0:-1:
+%*5LA: +INFINITY:0:-1:
+%53LA: :0:-1:
+%*53LA: :0:-1:
+%53LA: -INFINITY:1:10:-inf:
+%*53LA: -INFINITY:0:10:
+%53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41:
+%53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40:
+%53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41:
+%53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41:
+%53LA: -0X8P-16385:1:12:-0x1p-16382:
+%*53LA: -0X8P-16385:0:12:
+%53LA: -0X0P+0:1:8:-0x0:
+%*53LA: -0X0P+0:0:8:
+%53LA: -0X0P0:1:7:-0x0:
+%*53LA: -0X0P0:0:7:
+%53LA: -NAN(09A_Zaz):1:14:-nan:
+%*53LA: -NAN(09A_Zaz):0:14:
+%53LA: -NAN():1:7:-nan:
+%*53LA: -NAN():0:7:
+%53LA: NAN():1:6:nan:
+%*53LA: NAN():0:6:
+%53LA: NAN(09A_Zaz):1:13:nan:
+%*53LA: NAN(09A_Zaz):0:13:
+%53LA: 0X0P0:1:6:0x0:
+%*53LA: 0X0P0:0:6:
+%53LA: 0X0P+0:1:7:0x0:
+%*53LA: 0X0P+0:0:7:
+%53LA: 0X8P-16385:1:11:0x1p-16382:
+%*53LA: 0X8P-16385:0:11:
+%53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LA: INFINITY:1:9:inf:
+%*53LA: INFINITY:0:9:
+%53LA: +NAN():1:7:nan:
+%*53LA: +NAN():0:7:
+%53LA: +NAN(09A_Zaz):1:14:nan:
+%*53LA: +NAN(09A_Zaz):0:14:
+%53LA: +0X0P0:1:7:0x0:
+%*53LA: +0X0P0:0:7:
+%53LA: +0X0P+0:1:8:0x0:
+%*53LA: +0X0P+0:0:8:
+%53LA: +0X8P-16385:1:12:0x1p-16382:
+%*53LA: +0X8P-16385:0:12:
+%53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41:
+%53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41:
+%53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40:
+%53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41:
+%53LA: +INFINITY:1:10:inf:
+%*53LA: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input
new file mode 100644
index 0000000..5756303
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input
@@ -0,0 +1,558 @@
+%Le::0:-1:
+%*Le::0:-1:
+%Le:-infinity:1:9:-inf:
+%*Le:-infinity:0:9:
+%Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:-1.18973149535723176508575932662800702e+4932:0:44:
+%Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:-1.18973149535723176508575932662800702e4932:0:43:
+%Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:-3.6190587245056029583909936820055344e+3716:0:43:
+%Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:-3.6190587245056029583909936820055344e03716:0:43:
+%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*Le:-3.36210314311209350626267781732175260e-4932:0:44:
+%Le:-0e+0:1:5:-0x0:
+%*Le:-0e+0:0:5:
+%Le:-0e0:1:4:-0x0:
+%*Le:-0e0:0:4:
+%Le:-nan(09A_Zaz):1:13:-nan:
+%*Le:-nan(09A_Zaz):0:13:
+%Le:-nan():1:6:-nan:
+%*Le:-nan():0:6:
+%Le:nan():1:5:nan:
+%*Le:nan():0:5:
+%Le:nan(09A_Zaz):1:12:nan:
+%*Le:nan(09A_Zaz):0:12:
+%Le:0e0:1:3:0x0:
+%*Le:0e0:0:3:
+%Le:0e+0:1:4:0x0:
+%*Le:0e+0:0:4:
+%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*Le:3.36210314311209350626267781732175260e-4932:0:43:
+%Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:3.6190587245056029583909936820055344e03716:0:42:
+%Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:3.6190587245056029583909936820055344e+3716:0:42:
+%Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:1.18973149535723176508575932662800702e4932:0:42:
+%Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:1.18973149535723176508575932662800702e+4932:0:43:
+%Le:infinity:1:8:inf:
+%*Le:infinity:0:8:
+%Le:+nan():1:6:nan:
+%*Le:+nan():0:6:
+%Le:+nan(09A_Zaz):1:13:nan:
+%*Le:+nan(09A_Zaz):0:13:
+%Le:+0e0:1:4:0x0:
+%*Le:+0e0:0:4:
+%Le:+0e+0:1:5:0x0:
+%*Le:+0e+0:0:5:
+%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*Le:+3.36210314311209350626267781732175260e-4932:0:44:
+%Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:+3.6190587245056029583909936820055344e03716:0:43:
+%Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Le:+3.6190587245056029583909936820055344e+3716:0:43:
+%Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:+1.18973149535723176508575932662800702e4932:0:43:
+%Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*Le:+1.18973149535723176508575932662800702e+4932:0:44:
+%Le:+infinity:1:9:inf:
+%*Le:+infinity:0:9:
+%1Le::0:-1:
+%*1Le::0:-1:
+%1Le:-infinity:0:-1:
+%*1Le:-infinity:0:-1:
+%1Le:-1.18973149535723176508575932662800702e+4932:0:-1:
+%*1Le:-1.18973149535723176508575932662800702e+4932:0:-1:
+%1Le:-1.18973149535723176508575932662800702e4932:0:-1:
+%*1Le:-1.18973149535723176508575932662800702e4932:0:-1:
+%1Le:-3.6190587245056029583909936820055344e+3716:0:-1:
+%*1Le:-3.6190587245056029583909936820055344e+3716:0:-1:
+%1Le:-3.6190587245056029583909936820055344e03716:0:-1:
+%*1Le:-3.6190587245056029583909936820055344e03716:0:-1:
+%1Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%1Le:-0e+0:0:-1:
+%*1Le:-0e+0:0:-1:
+%1Le:-0e0:0:-1:
+%*1Le:-0e0:0:-1:
+%1Le:-nan(09A_Zaz):0:-1:
+%*1Le:-nan(09A_Zaz):0:-1:
+%1Le:-nan():0:-1:
+%*1Le:-nan():0:-1:
+%1Le:nan():0:-1:
+%*1Le:nan():0:-1:
+%1Le:nan(09A_Zaz):0:-1:
+%*1Le:nan(09A_Zaz):0:-1:
+%1Le:0e0:1:1:0x0:
+%*1Le:0e0:0:1:
+%1Le:0e+0:1:1:0x0:
+%*1Le:0e+0:0:1:
+%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1:
+%*1Le:3.36210314311209350626267781732175260e-4932:0:1:
+%1Le:3.6190587245056029583909936820055344e03716:1:1:0x1.8p1:
+%*1Le:3.6190587245056029583909936820055344e03716:0:1:
+%1Le:3.6190587245056029583909936820055344e+3716:1:1:0x1.8p1:
+%*1Le:3.6190587245056029583909936820055344e+3716:0:1:
+%1Le:1.18973149535723176508575932662800702e4932:1:1:0x1:
+%*1Le:1.18973149535723176508575932662800702e4932:0:1:
+%1Le:1.18973149535723176508575932662800702e+4932:1:1:0x1:
+%*1Le:1.18973149535723176508575932662800702e+4932:0:1:
+%1Le:infinity:0:-1:
+%*1Le:infinity:0:-1:
+%1Le:+nan():0:-1:
+%*1Le:+nan():0:-1:
+%1Le:+nan(09A_Zaz):0:-1:
+%*1Le:+nan(09A_Zaz):0:-1:
+%1Le:+0e0:0:-1:
+%*1Le:+0e0:0:-1:
+%1Le:+0e+0:0:-1:
+%*1Le:+0e+0:0:-1:
+%1Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%1Le:+3.6190587245056029583909936820055344e03716:0:-1:
+%*1Le:+3.6190587245056029583909936820055344e03716:0:-1:
+%1Le:+3.6190587245056029583909936820055344e+3716:0:-1:
+%*1Le:+3.6190587245056029583909936820055344e+3716:0:-1:
+%1Le:+1.18973149535723176508575932662800702e4932:0:-1:
+%*1Le:+1.18973149535723176508575932662800702e4932:0:-1:
+%1Le:+1.18973149535723176508575932662800702e+4932:0:-1:
+%*1Le:+1.18973149535723176508575932662800702e+4932:0:-1:
+%1Le:+infinity:0:-1:
+%*1Le:+infinity:0:-1:
+%2Le::0:-1:
+%*2Le::0:-1:
+%2Le:-infinity:0:-1:
+%*2Le:-infinity:0:-1:
+%2Le:-1.18973149535723176508575932662800702e+4932:1:2:-0x1:
+%*2Le:-1.18973149535723176508575932662800702e+4932:0:2:
+%2Le:-1.18973149535723176508575932662800702e4932:1:2:-0x1:
+%*2Le:-1.18973149535723176508575932662800702e4932:0:2:
+%2Le:-3.6190587245056029583909936820055344e+3716:1:2:-0x1.8p1:
+%*2Le:-3.6190587245056029583909936820055344e+3716:0:2:
+%2Le:-3.6190587245056029583909936820055344e03716:1:2:-0x1.8p1:
+%*2Le:-3.6190587245056029583909936820055344e03716:0:2:
+%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1:
+%*2Le:-3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:-0e+0:1:2:-0x0:
+%*2Le:-0e+0:0:2:
+%2Le:-0e0:1:2:-0x0:
+%*2Le:-0e0:0:2:
+%2Le:-nan(09A_Zaz):0:-1:
+%*2Le:-nan(09A_Zaz):0:-1:
+%2Le:-nan():0:-1:
+%*2Le:-nan():0:-1:
+%2Le:nan():0:-1:
+%*2Le:nan():0:-1:
+%2Le:nan(09A_Zaz):0:-1:
+%*2Le:nan(09A_Zaz):0:-1:
+%2Le:0e0:0:-1:
+%*2Le:0e0:0:-1:
+%2Le:0e+0:0:-1:
+%*2Le:0e+0:0:-1:
+%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2Le:3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:3.6190587245056029583909936820055344e03716:1:2:0x1.8p1:
+%*2Le:3.6190587245056029583909936820055344e03716:0:2:
+%2Le:3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1:
+%*2Le:3.6190587245056029583909936820055344e+3716:0:2:
+%2Le:1.18973149535723176508575932662800702e4932:1:2:0x1:
+%*2Le:1.18973149535723176508575932662800702e4932:0:2:
+%2Le:1.18973149535723176508575932662800702e+4932:1:2:0x1:
+%*2Le:1.18973149535723176508575932662800702e+4932:0:2:
+%2Le:infinity:0:-1:
+%*2Le:infinity:0:-1:
+%2Le:+nan():0:-1:
+%*2Le:+nan():0:-1:
+%2Le:+nan(09A_Zaz):0:-1:
+%*2Le:+nan(09A_Zaz):0:-1:
+%2Le:+0e0:1:2:0x0:
+%*2Le:+0e0:0:2:
+%2Le:+0e+0:1:2:0x0:
+%*2Le:+0e+0:0:2:
+%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2Le:+3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:+3.6190587245056029583909936820055344e03716:1:2:0x1.8p1:
+%*2Le:+3.6190587245056029583909936820055344e03716:0:2:
+%2Le:+3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1:
+%*2Le:+3.6190587245056029583909936820055344e+3716:0:2:
+%2Le:+1.18973149535723176508575932662800702e4932:1:2:0x1:
+%*2Le:+1.18973149535723176508575932662800702e4932:0:2:
+%2Le:+1.18973149535723176508575932662800702e+4932:1:2:0x1:
+%*2Le:+1.18973149535723176508575932662800702e+4932:0:2:
+%2Le:+infinity:0:-1:
+%*2Le:+infinity:0:-1:
+%3Le::0:-1:
+%*3Le::0:-1:
+%3Le:-infinity:0:-1:
+%*3Le:-infinity:0:-1:
+%3Le:-1.18973149535723176508575932662800702e+4932:1:3:-0x1:
+%*3Le:-1.18973149535723176508575932662800702e+4932:0:3:
+%3Le:-1.18973149535723176508575932662800702e4932:1:3:-0x1:
+%*3Le:-1.18973149535723176508575932662800702e4932:0:3:
+%3Le:-3.6190587245056029583909936820055344e+3716:1:3:-0x1.8p1:
+%*3Le:-3.6190587245056029583909936820055344e+3716:0:3:
+%3Le:-3.6190587245056029583909936820055344e03716:1:3:-0x1.8p1:
+%*3Le:-3.6190587245056029583909936820055344e03716:0:3:
+%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1:
+%*3Le:-3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:-0e+0:0:-1:
+%*3Le:-0e+0:0:-1:
+%3Le:-0e0:0:-1:
+%*3Le:-0e0:0:-1:
+%3Le:-nan(09A_Zaz):0:-1:
+%*3Le:-nan(09A_Zaz):0:-1:
+%3Le:-nan():0:-1:
+%*3Le:-nan():0:-1:
+%3Le:nan():1:3:nan:
+%*3Le:nan():0:3:
+%3Le:nan(09A_Zaz):1:3:nan:
+%*3Le:nan(09A_Zaz):0:3:
+%3Le:0e0:1:3:0x0:
+%*3Le:0e0:0:3:
+%3Le:0e+0:0:-1:
+%*3Le:0e+0:0:-1:
+%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1:
+%*3Le:3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:3.6190587245056029583909936820055344e03716:1:3:0x1.cccccccccccccccccccccccccccdp1:
+%*3Le:3.6190587245056029583909936820055344e03716:0:3:
+%3Le:3.6190587245056029583909936820055344e+3716:1:3:0x1.cccccccccccccccccccccccccccdp1:
+%*3Le:3.6190587245056029583909936820055344e+3716:0:3:
+%3Le:1.18973149535723176508575932662800702e4932:1:3:0x1.199999999999999999999999999a:
+%*3Le:1.18973149535723176508575932662800702e4932:0:3:
+%3Le:1.18973149535723176508575932662800702e+4932:1:3:0x1.199999999999999999999999999a:
+%*3Le:1.18973149535723176508575932662800702e+4932:0:3:
+%3Le:infinity:1:3:inf:
+%*3Le:infinity:0:3:
+%3Le:+nan():0:-1:
+%*3Le:+nan():0:-1:
+%3Le:+nan(09A_Zaz):0:-1:
+%*3Le:+nan(09A_Zaz):0:-1:
+%3Le:+0e0:0:-1:
+%*3Le:+0e0:0:-1:
+%3Le:+0e+0:0:-1:
+%*3Le:+0e+0:0:-1:
+%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1:
+%*3Le:+3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:+3.6190587245056029583909936820055344e03716:1:3:0x1.8p1:
+%*3Le:+3.6190587245056029583909936820055344e03716:0:3:
+%3Le:+3.6190587245056029583909936820055344e+3716:1:3:0x1.8p1:
+%*3Le:+3.6190587245056029583909936820055344e+3716:0:3:
+%3Le:+1.18973149535723176508575932662800702e4932:1:3:0x1:
+%*3Le:+1.18973149535723176508575932662800702e4932:0:3:
+%3Le:+1.18973149535723176508575932662800702e+4932:1:3:0x1:
+%*3Le:+1.18973149535723176508575932662800702e+4932:0:3:
+%3Le:+infinity:0:-1:
+%*3Le:+infinity:0:-1:
+%4Le::0:-1:
+%*4Le::0:-1:
+%4Le:-infinity:1:4:-inf:
+%*4Le:-infinity:0:4:
+%4Le:-1.18973149535723176508575932662800702e+4932:1:4:-0x1.199999999999999999999999999a:
+%*4Le:-1.18973149535723176508575932662800702e+4932:0:4:
+%4Le:-1.18973149535723176508575932662800702e4932:1:4:-0x1.199999999999999999999999999a:
+%*4Le:-1.18973149535723176508575932662800702e4932:0:4:
+%4Le:-3.6190587245056029583909936820055344e+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1:
+%*4Le:-3.6190587245056029583909936820055344e+3716:0:4:
+%4Le:-3.6190587245056029583909936820055344e03716:1:4:-0x1.cccccccccccccccccccccccccccdp1:
+%*4Le:-3.6190587245056029583909936820055344e03716:0:4:
+%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1:
+%*4Le:-3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:-0e+0:0:-1:
+%*4Le:-0e+0:0:-1:
+%4Le:-0e0:1:4:-0x0:
+%*4Le:-0e0:0:4:
+%4Le:-nan(09A_Zaz):1:4:-nan:
+%*4Le:-nan(09A_Zaz):0:4:
+%4Le:-nan():1:4:-nan:
+%*4Le:-nan():0:4:
+%4Le:nan():0:-1:
+%*4Le:nan():0:-1:
+%4Le:nan(09A_Zaz):0:-1:
+%*4Le:nan(09A_Zaz):0:-1:
+%4Le:0e0:1:3:0x0:
+%*4Le:0e0:0:3:
+%4Le:0e+0:1:4:0x0:
+%*4Le:0e+0:0:4:
+%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1:
+%*4Le:3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:3.6190587245056029583909936820055344e03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1:
+%*4Le:3.6190587245056029583909936820055344e03716:0:4:
+%4Le:3.6190587245056029583909936820055344e+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1:
+%*4Le:3.6190587245056029583909936820055344e+3716:0:4:
+%4Le:1.18973149535723176508575932662800702e4932:1:4:0x1.2e147ae147ae147ae147ae147ae1:
+%*4Le:1.18973149535723176508575932662800702e4932:0:4:
+%4Le:1.18973149535723176508575932662800702e+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1:
+%*4Le:1.18973149535723176508575932662800702e+4932:0:4:
+%4Le:infinity:0:-1:
+%*4Le:infinity:0:-1:
+%4Le:+nan():1:4:nan:
+%*4Le:+nan():0:4:
+%4Le:+nan(09A_Zaz):1:4:nan:
+%*4Le:+nan(09A_Zaz):0:4:
+%4Le:+0e0:1:4:0x0:
+%*4Le:+0e0:0:4:
+%4Le:+0e+0:0:-1:
+%*4Le:+0e+0:0:-1:
+%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1:
+%*4Le:+3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:+3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*4Le:+3.6190587245056029583909936820055344e03716:0:4:
+%4Le:+3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*4Le:+3.6190587245056029583909936820055344e+3716:0:4:
+%4Le:+1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a:
+%*4Le:+1.18973149535723176508575932662800702e4932:0:4:
+%4Le:+1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a:
+%*4Le:+1.18973149535723176508575932662800702e+4932:0:4:
+%4Le:+infinity:1:4:inf:
+%*4Le:+infinity:0:4:
+%40Le::0:-1:
+%*40Le::0:-1:
+%40Le:-infinity:1:9:-inf:
+%*40Le:-infinity:0:9:
+%40Le:-1.18973149535723176508575932662800702e+4932:0:-1:
+%*40Le:-1.18973149535723176508575932662800702e+4932:0:-1:
+%40Le:-1.18973149535723176508575932662800702e4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40Le:-1.18973149535723176508575932662800702e4932:0:40:
+%40Le:-3.6190587245056029583909936820055344e+3716:1:40:-0x1.c461e11236e13b300745afb88861p11:
+%*40Le:-3.6190587245056029583909936820055344e+3716:0:40:
+%40Le:-3.6190587245056029583909936820055344e03716:1:40:-0x1.c461e11236e13b300745afb88861p11:
+%*40Le:-3.6190587245056029583909936820055344e03716:0:40:
+%40Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*40Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%40Le:-0e+0:1:5:-0x0:
+%*40Le:-0e+0:0:5:
+%40Le:-0e0:1:4:-0x0:
+%*40Le:-0e0:0:4:
+%40Le:-nan(09A_Zaz):1:13:-nan:
+%*40Le:-nan(09A_Zaz):0:13:
+%40Le:-nan():1:6:-nan:
+%*40Le:-nan():0:6:
+%40Le:nan():1:5:nan:
+%*40Le:nan():0:5:
+%40Le:nan(09A_Zaz):1:12:nan:
+%*40Le:nan(09A_Zaz):0:12:
+%40Le:0e0:1:3:0x0:
+%*40Le:0e0:0:3:
+%40Le:0e+0:1:4:0x0:
+%*40Le:0e+0:0:4:
+%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12:
+%*40Le:3.36210314311209350626267781732175260e-4932:0:40:
+%40Le:3.6190587245056029583909936820055344e03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124:
+%*40Le:3.6190587245056029583909936820055344e03716:0:40:
+%40Le:3.6190587245056029583909936820055344e+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124:
+%*40Le:3.6190587245056029583909936820055344e+3716:0:40:
+%40Le:1.18973149535723176508575932662800702e4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163:
+%*40Le:1.18973149535723176508575932662800702e4932:0:40:
+%40Le:1.18973149535723176508575932662800702e+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40Le:1.18973149535723176508575932662800702e+4932:0:40:
+%40Le:infinity:1:8:inf:
+%*40Le:infinity:0:8:
+%40Le:+nan():1:6:nan:
+%*40Le:+nan():0:6:
+%40Le:+nan(09A_Zaz):1:13:nan:
+%*40Le:+nan(09A_Zaz):0:13:
+%40Le:+0e0:1:4:0x0:
+%*40Le:+0e0:0:4:
+%40Le:+0e+0:1:5:0x0:
+%*40Le:+0e+0:0:5:
+%40Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*40Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%40Le:+3.6190587245056029583909936820055344e03716:1:40:0x1.c461e11236e13b300745afb88861p11:
+%*40Le:+3.6190587245056029583909936820055344e03716:0:40:
+%40Le:+3.6190587245056029583909936820055344e+3716:1:40:0x1.c461e11236e13b300745afb88861p11:
+%*40Le:+3.6190587245056029583909936820055344e+3716:0:40:
+%40Le:+1.18973149535723176508575932662800702e4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40Le:+1.18973149535723176508575932662800702e4932:0:40:
+%40Le:+1.18973149535723176508575932662800702e+4932:0:-1:
+%*40Le:+1.18973149535723176508575932662800702e+4932:0:-1:
+%40Le:+infinity:1:9:inf:
+%*40Le:+infinity:0:9:
+%48Le::0:-1:
+%*48Le::0:-1:
+%48Le:-infinity:1:9:-inf:
+%*48Le:-infinity:0:9:
+%48Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:-1.18973149535723176508575932662800702e+4932:0:44:
+%48Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:-1.18973149535723176508575932662800702e4932:0:43:
+%48Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:-3.6190587245056029583909936820055344e+3716:0:43:
+%48Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:-3.6190587245056029583909936820055344e03716:0:43:
+%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*48Le:-3.36210314311209350626267781732175260e-4932:0:44:
+%48Le:-0e+0:1:5:-0x0:
+%*48Le:-0e+0:0:5:
+%48Le:-0e0:1:4:-0x0:
+%*48Le:-0e0:0:4:
+%48Le:-nan(09A_Zaz):1:13:-nan:
+%*48Le:-nan(09A_Zaz):0:13:
+%48Le:-nan():1:6:-nan:
+%*48Le:-nan():0:6:
+%48Le:nan():1:5:nan:
+%*48Le:nan():0:5:
+%48Le:nan(09A_Zaz):1:12:nan:
+%*48Le:nan(09A_Zaz):0:12:
+%48Le:0e0:1:3:0x0:
+%*48Le:0e0:0:3:
+%48Le:0e+0:1:4:0x0:
+%*48Le:0e+0:0:4:
+%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*48Le:3.36210314311209350626267781732175260e-4932:0:43:
+%48Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:3.6190587245056029583909936820055344e03716:0:42:
+%48Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:3.6190587245056029583909936820055344e+3716:0:42:
+%48Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:1.18973149535723176508575932662800702e4932:0:42:
+%48Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:1.18973149535723176508575932662800702e+4932:0:43:
+%48Le:infinity:1:8:inf:
+%*48Le:infinity:0:8:
+%48Le:+nan():1:6:nan:
+%*48Le:+nan():0:6:
+%48Le:+nan(09A_Zaz):1:13:nan:
+%*48Le:+nan(09A_Zaz):0:13:
+%48Le:+0e0:1:4:0x0:
+%*48Le:+0e0:0:4:
+%48Le:+0e+0:1:5:0x0:
+%*48Le:+0e+0:0:5:
+%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48Le:+3.36210314311209350626267781732175260e-4932:0:44:
+%48Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:+3.6190587245056029583909936820055344e03716:0:43:
+%48Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le:+3.6190587245056029583909936820055344e+3716:0:43:
+%48Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:+1.18973149535723176508575932662800702e4932:0:43:
+%48Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le:+1.18973149535723176508575932662800702e+4932:0:44:
+%48Le:+infinity:1:9:inf:
+%*48Le:+infinity:0:9:
+%3Le: :0:-1:
+%*3Le: :0:-1:
+%3Le: -infinity:0:-1:
+%*3Le: -infinity:0:-1:
+%3Le: -1.18973149535723176508575932662800702e+4932:1:4:-0x1:
+%*3Le: -1.18973149535723176508575932662800702e+4932:0:4:
+%3Le: -1.18973149535723176508575932662800702e4932:1:4:-0x1:
+%*3Le: -1.18973149535723176508575932662800702e4932:0:4:
+%3Le: -3.6190587245056029583909936820055344e+3716:1:4:-0x1.8p1:
+%*3Le: -3.6190587245056029583909936820055344e+3716:0:4:
+%3Le: -3.6190587245056029583909936820055344e03716:1:4:-0x1.8p1:
+%*3Le: -3.6190587245056029583909936820055344e03716:0:4:
+%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1:
+%*3Le: -3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: -0e+0:0:-1:
+%*3Le: -0e+0:0:-1:
+%3Le: -0e0:0:-1:
+%*3Le: -0e0:0:-1:
+%3Le: -nan(09A_Zaz):0:-1:
+%*3Le: -nan(09A_Zaz):0:-1:
+%3Le: -nan():0:-1:
+%*3Le: -nan():0:-1:
+%3Le: nan():1:4:nan:
+%*3Le: nan():0:4:
+%3Le: nan(09A_Zaz):1:4:nan:
+%*3Le: nan(09A_Zaz):0:4:
+%3Le: 0e0:1:4:0x0:
+%*3Le: 0e0:0:4:
+%3Le: 0e+0:0:-1:
+%*3Le: 0e+0:0:-1:
+%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1:
+%*3Le: 3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: 3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*3Le: 3.6190587245056029583909936820055344e03716:0:4:
+%3Le: 3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*3Le: 3.6190587245056029583909936820055344e+3716:0:4:
+%3Le: 1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a:
+%*3Le: 1.18973149535723176508575932662800702e4932:0:4:
+%3Le: 1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a:
+%*3Le: 1.18973149535723176508575932662800702e+4932:0:4:
+%3Le: infinity:1:4:inf:
+%*3Le: infinity:0:4:
+%3Le: +nan():0:-1:
+%*3Le: +nan():0:-1:
+%3Le: +nan(09A_Zaz):0:-1:
+%*3Le: +nan(09A_Zaz):0:-1:
+%3Le: +0e0:0:-1:
+%*3Le: +0e0:0:-1:
+%3Le: +0e+0:0:-1:
+%*3Le: +0e+0:0:-1:
+%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1:
+%*3Le: +3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: +3.6190587245056029583909936820055344e03716:1:4:0x1.8p1:
+%*3Le: +3.6190587245056029583909936820055344e03716:0:4:
+%3Le: +3.6190587245056029583909936820055344e+3716:1:4:0x1.8p1:
+%*3Le: +3.6190587245056029583909936820055344e+3716:0:4:
+%3Le: +1.18973149535723176508575932662800702e4932:1:4:0x1:
+%*3Le: +1.18973149535723176508575932662800702e4932:0:4:
+%3Le: +1.18973149535723176508575932662800702e+4932:1:4:0x1:
+%*3Le: +1.18973149535723176508575932662800702e+4932:0:4:
+%3Le: +infinity:0:-1:
+%*3Le: +infinity:0:-1:
+%48Le: :0:-1:
+%*48Le: :0:-1:
+%48Le: -infinity:1:10:-inf:
+%*48Le: -infinity:0:10:
+%48Le: -1.18973149535723176508575932662800702e+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: -1.18973149535723176508575932662800702e+4932:0:45:
+%48Le: -1.18973149535723176508575932662800702e4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: -1.18973149535723176508575932662800702e4932:0:44:
+%48Le: -3.6190587245056029583909936820055344e+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: -3.6190587245056029583909936820055344e+3716:0:44:
+%48Le: -3.6190587245056029583909936820055344e03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: -3.6190587245056029583909936820055344e03716:0:44:
+%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382:
+%*48Le: -3.36210314311209350626267781732175260e-4932:0:45:
+%48Le: -0e+0:1:6:-0x0:
+%*48Le: -0e+0:0:6:
+%48Le: -0e0:1:5:-0x0:
+%*48Le: -0e0:0:5:
+%48Le: -nan(09A_Zaz):1:14:-nan:
+%*48Le: -nan(09A_Zaz):0:14:
+%48Le: -nan():1:7:-nan:
+%*48Le: -nan():0:7:
+%48Le: nan():1:6:nan:
+%*48Le: nan():0:6:
+%48Le: nan(09A_Zaz):1:13:nan:
+%*48Le: nan(09A_Zaz):0:13:
+%48Le: 0e0:1:4:0x0:
+%*48Le: 0e0:0:4:
+%48Le: 0e+0:1:5:0x0:
+%*48Le: 0e+0:0:5:
+%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48Le: 3.36210314311209350626267781732175260e-4932:0:44:
+%48Le: 3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: 3.6190587245056029583909936820055344e03716:0:43:
+%48Le: 3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: 3.6190587245056029583909936820055344e+3716:0:43:
+%48Le: 1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: 1.18973149535723176508575932662800702e4932:0:43:
+%48Le: 1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: 1.18973149535723176508575932662800702e+4932:0:44:
+%48Le: infinity:1:9:inf:
+%*48Le: infinity:0:9:
+%48Le: +nan():1:7:nan:
+%*48Le: +nan():0:7:
+%48Le: +nan(09A_Zaz):1:14:nan:
+%*48Le: +nan(09A_Zaz):0:14:
+%48Le: +0e0:1:5:0x0:
+%*48Le: +0e0:0:5:
+%48Le: +0e+0:1:6:0x0:
+%*48Le: +0e+0:0:6:
+%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382:
+%*48Le: +3.36210314311209350626267781732175260e-4932:0:45:
+%48Le: +3.6190587245056029583909936820055344e03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: +3.6190587245056029583909936820055344e03716:0:44:
+%48Le: +3.6190587245056029583909936820055344e+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48Le: +3.6190587245056029583909936820055344e+3716:0:44:
+%48Le: +1.18973149535723176508575932662800702e4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: +1.18973149535723176508575932662800702e4932:0:44:
+%48Le: +1.18973149535723176508575932662800702e+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383:
+%*48Le: +1.18973149535723176508575932662800702e+4932:0:45:
+%48Le: +infinity:1:10:inf:
+%*48Le: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input
new file mode 100644
index 0000000..cf5e751
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input
@@ -0,0 +1,558 @@
+%LE::0:-1:
+%*LE::0:-1:
+%LE:-INFINITY:1:9:-inf:
+%*LE:-INFINITY:0:9:
+%LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:-1.18973149535723176508575932662800702E+4932:0:44:
+%LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:-1.18973149535723176508575932662800702E4932:0:43:
+%LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:-3.6190587245056029583909936820055344E+3716:0:43:
+%LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:-3.6190587245056029583909936820055344E03716:0:43:
+%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*LE:-3.36210314311209350626267781732175260e-4932:0:44:
+%LE:-0E+0:1:5:-0x0:
+%*LE:-0E+0:0:5:
+%LE:-0E0:1:4:-0x0:
+%*LE:-0E0:0:4:
+%LE:-NAN(09A_Zaz):1:13:-nan:
+%*LE:-NAN(09A_Zaz):0:13:
+%LE:-NAN():1:6:-nan:
+%*LE:-NAN():0:6:
+%LE:NAN():1:5:nan:
+%*LE:NAN():0:5:
+%LE:NAN(09A_Zaz):1:12:nan:
+%*LE:NAN(09A_Zaz):0:12:
+%LE:0E0:1:3:0x0:
+%*LE:0E0:0:3:
+%LE:0E+0:1:4:0x0:
+%*LE:0E+0:0:4:
+%LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*LE:3.36210314311209350626267781732175260e-4932:0:43:
+%LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:3.6190587245056029583909936820055344E03716:0:42:
+%LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:3.6190587245056029583909936820055344E+3716:0:42:
+%LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:1.18973149535723176508575932662800702E4932:0:42:
+%LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:1.18973149535723176508575932662800702E+4932:0:43:
+%LE:INFINITY:1:8:inf:
+%*LE:INFINITY:0:8:
+%LE:+NAN():1:6:nan:
+%*LE:+NAN():0:6:
+%LE:+NAN(09A_Zaz):1:13:nan:
+%*LE:+NAN(09A_Zaz):0:13:
+%LE:+0E0:1:4:0x0:
+%*LE:+0E0:0:4:
+%LE:+0E+0:1:5:0x0:
+%*LE:+0E+0:0:5:
+%LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*LE:+3.36210314311209350626267781732175260e-4932:0:44:
+%LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:+3.6190587245056029583909936820055344E03716:0:43:
+%LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LE:+3.6190587245056029583909936820055344E+3716:0:43:
+%LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:+1.18973149535723176508575932662800702E4932:0:43:
+%LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*LE:+1.18973149535723176508575932662800702E+4932:0:44:
+%LE:+INFINITY:1:9:inf:
+%*LE:+INFINITY:0:9:
+%1LE::0:-1:
+%*1LE::0:-1:
+%1LE:-INFINITY:0:-1:
+%*1LE:-INFINITY:0:-1:
+%1LE:-1.18973149535723176508575932662800702E+4932:0:-1:
+%*1LE:-1.18973149535723176508575932662800702E+4932:0:-1:
+%1LE:-1.18973149535723176508575932662800702E4932:0:-1:
+%*1LE:-1.18973149535723176508575932662800702E4932:0:-1:
+%1LE:-3.6190587245056029583909936820055344E+3716:0:-1:
+%*1LE:-3.6190587245056029583909936820055344E+3716:0:-1:
+%1LE:-3.6190587245056029583909936820055344E03716:0:-1:
+%*1LE:-3.6190587245056029583909936820055344E03716:0:-1:
+%1LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%1LE:-0E+0:0:-1:
+%*1LE:-0E+0:0:-1:
+%1LE:-0E0:0:-1:
+%*1LE:-0E0:0:-1:
+%1LE:-NAN(09A_Zaz):0:-1:
+%*1LE:-NAN(09A_Zaz):0:-1:
+%1LE:-NAN():0:-1:
+%*1LE:-NAN():0:-1:
+%1LE:NAN():0:-1:
+%*1LE:NAN():0:-1:
+%1LE:NAN(09A_Zaz):0:-1:
+%*1LE:NAN(09A_Zaz):0:-1:
+%1LE:0E0:1:1:0x0:
+%*1LE:0E0:0:1:
+%1LE:0E+0:1:1:0x0:
+%*1LE:0E+0:0:1:
+%1LE:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1:
+%*1LE:3.36210314311209350626267781732175260e-4932:0:1:
+%1LE:3.6190587245056029583909936820055344E03716:1:1:0x1.8p1:
+%*1LE:3.6190587245056029583909936820055344E03716:0:1:
+%1LE:3.6190587245056029583909936820055344E+3716:1:1:0x1.8p1:
+%*1LE:3.6190587245056029583909936820055344E+3716:0:1:
+%1LE:1.18973149535723176508575932662800702E4932:1:1:0x1:
+%*1LE:1.18973149535723176508575932662800702E4932:0:1:
+%1LE:1.18973149535723176508575932662800702E+4932:1:1:0x1:
+%*1LE:1.18973149535723176508575932662800702E+4932:0:1:
+%1LE:INFINITY:0:-1:
+%*1LE:INFINITY:0:-1:
+%1LE:+NAN():0:-1:
+%*1LE:+NAN():0:-1:
+%1LE:+NAN(09A_Zaz):0:-1:
+%*1LE:+NAN(09A_Zaz):0:-1:
+%1LE:+0E0:0:-1:
+%*1LE:+0E0:0:-1:
+%1LE:+0E+0:0:-1:
+%*1LE:+0E+0:0:-1:
+%1LE:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*1LE:+3.36210314311209350626267781732175260e-4932:0:-1:
+%1LE:+3.6190587245056029583909936820055344E03716:0:-1:
+%*1LE:+3.6190587245056029583909936820055344E03716:0:-1:
+%1LE:+3.6190587245056029583909936820055344E+3716:0:-1:
+%*1LE:+3.6190587245056029583909936820055344E+3716:0:-1:
+%1LE:+1.18973149535723176508575932662800702E4932:0:-1:
+%*1LE:+1.18973149535723176508575932662800702E4932:0:-1:
+%1LE:+1.18973149535723176508575932662800702E+4932:0:-1:
+%*1LE:+1.18973149535723176508575932662800702E+4932:0:-1:
+%1LE:+INFINITY:0:-1:
+%*1LE:+INFINITY:0:-1:
+%2LE::0:-1:
+%*2LE::0:-1:
+%2LE:-INFINITY:0:-1:
+%*2LE:-INFINITY:0:-1:
+%2LE:-1.18973149535723176508575932662800702E+4932:1:2:-0x1:
+%*2LE:-1.18973149535723176508575932662800702E+4932:0:2:
+%2LE:-1.18973149535723176508575932662800702E4932:1:2:-0x1:
+%*2LE:-1.18973149535723176508575932662800702E4932:0:2:
+%2LE:-3.6190587245056029583909936820055344E+3716:1:2:-0x1.8p1:
+%*2LE:-3.6190587245056029583909936820055344E+3716:0:2:
+%2LE:-3.6190587245056029583909936820055344E03716:1:2:-0x1.8p1:
+%*2LE:-3.6190587245056029583909936820055344E03716:0:2:
+%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1:
+%*2LE:-3.36210314311209350626267781732175260e-4932:0:2:
+%2LE:-0E+0:1:2:-0x0:
+%*2LE:-0E+0:0:2:
+%2LE:-0E0:1:2:-0x0:
+%*2LE:-0E0:0:2:
+%2LE:-NAN(09A_Zaz):0:-1:
+%*2LE:-NAN(09A_Zaz):0:-1:
+%2LE:-NAN():0:-1:
+%*2LE:-NAN():0:-1:
+%2LE:NAN():0:-1:
+%*2LE:NAN():0:-1:
+%2LE:NAN(09A_Zaz):0:-1:
+%*2LE:NAN(09A_Zaz):0:-1:
+%2LE:0E0:0:-1:
+%*2LE:0E0:0:-1:
+%2LE:0E+0:0:-1:
+%*2LE:0E+0:0:-1:
+%2LE:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2LE:3.36210314311209350626267781732175260e-4932:0:2:
+%2LE:3.6190587245056029583909936820055344E03716:1:2:0x1.8p1:
+%*2LE:3.6190587245056029583909936820055344E03716:0:2:
+%2LE:3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1:
+%*2LE:3.6190587245056029583909936820055344E+3716:0:2:
+%2LE:1.18973149535723176508575932662800702E4932:1:2:0x1:
+%*2LE:1.18973149535723176508575932662800702E4932:0:2:
+%2LE:1.18973149535723176508575932662800702E+4932:1:2:0x1:
+%*2LE:1.18973149535723176508575932662800702E+4932:0:2:
+%2LE:INFINITY:0:-1:
+%*2LE:INFINITY:0:-1:
+%2LE:+NAN():0:-1:
+%*2LE:+NAN():0:-1:
+%2LE:+NAN(09A_Zaz):0:-1:
+%*2LE:+NAN(09A_Zaz):0:-1:
+%2LE:+0E0:1:2:0x0:
+%*2LE:+0E0:0:2:
+%2LE:+0E+0:1:2:0x0:
+%*2LE:+0E+0:0:2:
+%2LE:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2LE:+3.36210314311209350626267781732175260e-4932:0:2:
+%2LE:+3.6190587245056029583909936820055344E03716:1:2:0x1.8p1:
+%*2LE:+3.6190587245056029583909936820055344E03716:0:2:
+%2LE:+3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1:
+%*2LE:+3.6190587245056029583909936820055344E+3716:0:2:
+%2LE:+1.18973149535723176508575932662800702E4932:1:2:0x1:
+%*2LE:+1.18973149535723176508575932662800702E4932:0:2:
+%2LE:+1.18973149535723176508575932662800702E+4932:1:2:0x1:
+%*2LE:+1.18973149535723176508575932662800702E+4932:0:2:
+%2LE:+INFINITY:0:-1:
+%*2LE:+INFINITY:0:-1:
+%3LE::0:-1:
+%*3LE::0:-1:
+%3LE:-INFINITY:0:-1:
+%*3LE:-INFINITY:0:-1:
+%3LE:-1.18973149535723176508575932662800702E+4932:1:3:-0x1:
+%*3LE:-1.18973149535723176508575932662800702E+4932:0:3:
+%3LE:-1.18973149535723176508575932662800702E4932:1:3:-0x1:
+%*3LE:-1.18973149535723176508575932662800702E4932:0:3:
+%3LE:-3.6190587245056029583909936820055344E+3716:1:3:-0x1.8p1:
+%*3LE:-3.6190587245056029583909936820055344E+3716:0:3:
+%3LE:-3.6190587245056029583909936820055344E03716:1:3:-0x1.8p1:
+%*3LE:-3.6190587245056029583909936820055344E03716:0:3:
+%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1:
+%*3LE:-3.36210314311209350626267781732175260e-4932:0:3:
+%3LE:-0E+0:0:-1:
+%*3LE:-0E+0:0:-1:
+%3LE:-0E0:0:-1:
+%*3LE:-0E0:0:-1:
+%3LE:-NAN(09A_Zaz):0:-1:
+%*3LE:-NAN(09A_Zaz):0:-1:
+%3LE:-NAN():0:-1:
+%*3LE:-NAN():0:-1:
+%3LE:NAN():1:3:nan:
+%*3LE:NAN():0:3:
+%3LE:NAN(09A_Zaz):1:3:nan:
+%*3LE:NAN(09A_Zaz):0:3:
+%3LE:0E0:1:3:0x0:
+%*3LE:0E0:0:3:
+%3LE:0E+0:0:-1:
+%*3LE:0E+0:0:-1:
+%3LE:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1:
+%*3LE:3.36210314311209350626267781732175260e-4932:0:3:
+%3LE:3.6190587245056029583909936820055344E03716:1:3:0x1.cccccccccccccccccccccccccccdp1:
+%*3LE:3.6190587245056029583909936820055344E03716:0:3:
+%3LE:3.6190587245056029583909936820055344E+3716:1:3:0x1.cccccccccccccccccccccccccccdp1:
+%*3LE:3.6190587245056029583909936820055344E+3716:0:3:
+%3LE:1.18973149535723176508575932662800702E4932:1:3:0x1.199999999999999999999999999a:
+%*3LE:1.18973149535723176508575932662800702E4932:0:3:
+%3LE:1.18973149535723176508575932662800702E+4932:1:3:0x1.199999999999999999999999999a:
+%*3LE:1.18973149535723176508575932662800702E+4932:0:3:
+%3LE:INFINITY:1:3:inf:
+%*3LE:INFINITY:0:3:
+%3LE:+NAN():0:-1:
+%*3LE:+NAN():0:-1:
+%3LE:+NAN(09A_Zaz):0:-1:
+%*3LE:+NAN(09A_Zaz):0:-1:
+%3LE:+0E0:0:-1:
+%*3LE:+0E0:0:-1:
+%3LE:+0E+0:0:-1:
+%*3LE:+0E+0:0:-1:
+%3LE:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1:
+%*3LE:+3.36210314311209350626267781732175260e-4932:0:3:
+%3LE:+3.6190587245056029583909936820055344E03716:1:3:0x1.8p1:
+%*3LE:+3.6190587245056029583909936820055344E03716:0:3:
+%3LE:+3.6190587245056029583909936820055344E+3716:1:3:0x1.8p1:
+%*3LE:+3.6190587245056029583909936820055344E+3716:0:3:
+%3LE:+1.18973149535723176508575932662800702E4932:1:3:0x1:
+%*3LE:+1.18973149535723176508575932662800702E4932:0:3:
+%3LE:+1.18973149535723176508575932662800702E+4932:1:3:0x1:
+%*3LE:+1.18973149535723176508575932662800702E+4932:0:3:
+%3LE:+INFINITY:0:-1:
+%*3LE:+INFINITY:0:-1:
+%4LE::0:-1:
+%*4LE::0:-1:
+%4LE:-INFINITY:1:4:-inf:
+%*4LE:-INFINITY:0:4:
+%4LE:-1.18973149535723176508575932662800702E+4932:1:4:-0x1.199999999999999999999999999a:
+%*4LE:-1.18973149535723176508575932662800702E+4932:0:4:
+%4LE:-1.18973149535723176508575932662800702E4932:1:4:-0x1.199999999999999999999999999a:
+%*4LE:-1.18973149535723176508575932662800702E4932:0:4:
+%4LE:-3.6190587245056029583909936820055344E+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1:
+%*4LE:-3.6190587245056029583909936820055344E+3716:0:4:
+%4LE:-3.6190587245056029583909936820055344E03716:1:4:-0x1.cccccccccccccccccccccccccccdp1:
+%*4LE:-3.6190587245056029583909936820055344E03716:0:4:
+%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1:
+%*4LE:-3.36210314311209350626267781732175260e-4932:0:4:
+%4LE:-0E+0:0:-1:
+%*4LE:-0E+0:0:-1:
+%4LE:-0E0:1:4:-0x0:
+%*4LE:-0E0:0:4:
+%4LE:-NAN(09A_Zaz):1:4:-nan:
+%*4LE:-NAN(09A_Zaz):0:4:
+%4LE:-NAN():1:4:-nan:
+%*4LE:-NAN():0:4:
+%4LE:NAN():0:-1:
+%*4LE:NAN():0:-1:
+%4LE:NAN(09A_Zaz):0:-1:
+%*4LE:NAN(09A_Zaz):0:-1:
+%4LE:0E0:1:3:0x0:
+%*4LE:0E0:0:3:
+%4LE:0E+0:1:4:0x0:
+%*4LE:0E+0:0:4:
+%4LE:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1:
+%*4LE:3.36210314311209350626267781732175260e-4932:0:4:
+%4LE:3.6190587245056029583909936820055344E03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1:
+%*4LE:3.6190587245056029583909936820055344E03716:0:4:
+%4LE:3.6190587245056029583909936820055344E+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1:
+%*4LE:3.6190587245056029583909936820055344E+3716:0:4:
+%4LE:1.18973149535723176508575932662800702E4932:1:4:0x1.2e147ae147ae147ae147ae147ae1:
+%*4LE:1.18973149535723176508575932662800702E4932:0:4:
+%4LE:1.18973149535723176508575932662800702E+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1:
+%*4LE:1.18973149535723176508575932662800702E+4932:0:4:
+%4LE:INFINITY:0:-1:
+%*4LE:INFINITY:0:-1:
+%4LE:+NAN():1:4:nan:
+%*4LE:+NAN():0:4:
+%4LE:+NAN(09A_Zaz):1:4:nan:
+%*4LE:+NAN(09A_Zaz):0:4:
+%4LE:+0E0:1:4:0x0:
+%*4LE:+0E0:0:4:
+%4LE:+0E+0:0:-1:
+%*4LE:+0E+0:0:-1:
+%4LE:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1:
+%*4LE:+3.36210314311209350626267781732175260e-4932:0:4:
+%4LE:+3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*4LE:+3.6190587245056029583909936820055344E03716:0:4:
+%4LE:+3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*4LE:+3.6190587245056029583909936820055344E+3716:0:4:
+%4LE:+1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a:
+%*4LE:+1.18973149535723176508575932662800702E4932:0:4:
+%4LE:+1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a:
+%*4LE:+1.18973149535723176508575932662800702E+4932:0:4:
+%4LE:+INFINITY:1:4:inf:
+%*4LE:+INFINITY:0:4:
+%40LE::0:-1:
+%*40LE::0:-1:
+%40LE:-INFINITY:1:9:-inf:
+%*40LE:-INFINITY:0:9:
+%40LE:-1.18973149535723176508575932662800702E+4932:0:-1:
+%*40LE:-1.18973149535723176508575932662800702E+4932:0:-1:
+%40LE:-1.18973149535723176508575932662800702E4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40LE:-1.18973149535723176508575932662800702E4932:0:40:
+%40LE:-3.6190587245056029583909936820055344E+3716:1:40:-0x1.c461e11236e13b300745afb88861p11:
+%*40LE:-3.6190587245056029583909936820055344E+3716:0:40:
+%40LE:-3.6190587245056029583909936820055344E03716:1:40:-0x1.c461e11236e13b300745afb88861p11:
+%*40LE:-3.6190587245056029583909936820055344E03716:0:40:
+%40LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*40LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%40LE:-0E+0:1:5:-0x0:
+%*40LE:-0E+0:0:5:
+%40LE:-0E0:1:4:-0x0:
+%*40LE:-0E0:0:4:
+%40LE:-NAN(09A_Zaz):1:13:-nan:
+%*40LE:-NAN(09A_Zaz):0:13:
+%40LE:-NAN():1:6:-nan:
+%*40LE:-NAN():0:6:
+%40LE:NAN():1:5:nan:
+%*40LE:NAN():0:5:
+%40LE:NAN(09A_Zaz):1:12:nan:
+%*40LE:NAN(09A_Zaz):0:12:
+%40LE:0E0:1:3:0x0:
+%*40LE:0E0:0:3:
+%40LE:0E+0:1:4:0x0:
+%*40LE:0E+0:0:4:
+%40LE:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12:
+%*40LE:3.36210314311209350626267781732175260e-4932:0:40:
+%40LE:3.6190587245056029583909936820055344E03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124:
+%*40LE:3.6190587245056029583909936820055344E03716:0:40:
+%40LE:3.6190587245056029583909936820055344E+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124:
+%*40LE:3.6190587245056029583909936820055344E+3716:0:40:
+%40LE:1.18973149535723176508575932662800702E4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163:
+%*40LE:1.18973149535723176508575932662800702E4932:0:40:
+%40LE:1.18973149535723176508575932662800702E+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40LE:1.18973149535723176508575932662800702E+4932:0:40:
+%40LE:INFINITY:1:8:inf:
+%*40LE:INFINITY:0:8:
+%40LE:+NAN():1:6:nan:
+%*40LE:+NAN():0:6:
+%40LE:+NAN(09A_Zaz):1:13:nan:
+%*40LE:+NAN(09A_Zaz):0:13:
+%40LE:+0E0:1:4:0x0:
+%*40LE:+0E0:0:4:
+%40LE:+0E+0:1:5:0x0:
+%*40LE:+0E+0:0:5:
+%40LE:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*40LE:+3.36210314311209350626267781732175260e-4932:0:-1:
+%40LE:+3.6190587245056029583909936820055344E03716:1:40:0x1.c461e11236e13b300745afb88861p11:
+%*40LE:+3.6190587245056029583909936820055344E03716:0:40:
+%40LE:+3.6190587245056029583909936820055344E+3716:1:40:0x1.c461e11236e13b300745afb88861p11:
+%*40LE:+3.6190587245056029583909936820055344E+3716:0:40:
+%40LE:+1.18973149535723176508575932662800702E4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13:
+%*40LE:+1.18973149535723176508575932662800702E4932:0:40:
+%40LE:+1.18973149535723176508575932662800702E+4932:0:-1:
+%*40LE:+1.18973149535723176508575932662800702E+4932:0:-1:
+%40LE:+INFINITY:1:9:inf:
+%*40LE:+INFINITY:0:9:
+%48LE::0:-1:
+%*48LE::0:-1:
+%48LE:-INFINITY:1:9:-inf:
+%*48LE:-INFINITY:0:9:
+%48LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:-1.18973149535723176508575932662800702E+4932:0:44:
+%48LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:-1.18973149535723176508575932662800702E4932:0:43:
+%48LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:-3.6190587245056029583909936820055344E+3716:0:43:
+%48LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:-3.6190587245056029583909936820055344E03716:0:43:
+%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*48LE:-3.36210314311209350626267781732175260e-4932:0:44:
+%48LE:-0E+0:1:5:-0x0:
+%*48LE:-0E+0:0:5:
+%48LE:-0E0:1:4:-0x0:
+%*48LE:-0E0:0:4:
+%48LE:-NAN(09A_Zaz):1:13:-nan:
+%*48LE:-NAN(09A_Zaz):0:13:
+%48LE:-NAN():1:6:-nan:
+%*48LE:-NAN():0:6:
+%48LE:NAN():1:5:nan:
+%*48LE:NAN():0:5:
+%48LE:NAN(09A_Zaz):1:12:nan:
+%*48LE:NAN(09A_Zaz):0:12:
+%48LE:0E0:1:3:0x0:
+%*48LE:0E0:0:3:
+%48LE:0E+0:1:4:0x0:
+%*48LE:0E+0:0:4:
+%48LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*48LE:3.36210314311209350626267781732175260e-4932:0:43:
+%48LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:3.6190587245056029583909936820055344E03716:0:42:
+%48LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:3.6190587245056029583909936820055344E+3716:0:42:
+%48LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:1.18973149535723176508575932662800702E4932:0:42:
+%48LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:1.18973149535723176508575932662800702E+4932:0:43:
+%48LE:INFINITY:1:8:inf:
+%*48LE:INFINITY:0:8:
+%48LE:+NAN():1:6:nan:
+%*48LE:+NAN():0:6:
+%48LE:+NAN(09A_Zaz):1:13:nan:
+%*48LE:+NAN(09A_Zaz):0:13:
+%48LE:+0E0:1:4:0x0:
+%*48LE:+0E0:0:4:
+%48LE:+0E+0:1:5:0x0:
+%*48LE:+0E+0:0:5:
+%48LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48LE:+3.36210314311209350626267781732175260e-4932:0:44:
+%48LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:+3.6190587245056029583909936820055344E03716:0:43:
+%48LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE:+3.6190587245056029583909936820055344E+3716:0:43:
+%48LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:+1.18973149535723176508575932662800702E4932:0:43:
+%48LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE:+1.18973149535723176508575932662800702E+4932:0:44:
+%48LE:+INFINITY:1:9:inf:
+%*48LE:+INFINITY:0:9:
+%3LE: :0:-1:
+%*3LE: :0:-1:
+%3LE: -INFINITY:0:-1:
+%*3LE: -INFINITY:0:-1:
+%3LE: -1.18973149535723176508575932662800702E+4932:1:4:-0x1:
+%*3LE: -1.18973149535723176508575932662800702E+4932:0:4:
+%3LE: -1.18973149535723176508575932662800702E4932:1:4:-0x1:
+%*3LE: -1.18973149535723176508575932662800702E4932:0:4:
+%3LE: -3.6190587245056029583909936820055344E+3716:1:4:-0x1.8p1:
+%*3LE: -3.6190587245056029583909936820055344E+3716:0:4:
+%3LE: -3.6190587245056029583909936820055344E03716:1:4:-0x1.8p1:
+%*3LE: -3.6190587245056029583909936820055344E03716:0:4:
+%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1:
+%*3LE: -3.36210314311209350626267781732175260e-4932:0:4:
+%3LE: -0E+0:0:-1:
+%*3LE: -0E+0:0:-1:
+%3LE: -0E0:0:-1:
+%*3LE: -0E0:0:-1:
+%3LE: -NAN(09A_Zaz):0:-1:
+%*3LE: -NAN(09A_Zaz):0:-1:
+%3LE: -NAN():0:-1:
+%*3LE: -NAN():0:-1:
+%3LE: NAN():1:4:nan:
+%*3LE: NAN():0:4:
+%3LE: NAN(09A_Zaz):1:4:nan:
+%*3LE: NAN(09A_Zaz):0:4:
+%3LE: 0E0:1:4:0x0:
+%*3LE: 0E0:0:4:
+%3LE: 0E+0:0:-1:
+%*3LE: 0E+0:0:-1:
+%3LE: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1:
+%*3LE: 3.36210314311209350626267781732175260e-4932:0:4:
+%3LE: 3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*3LE: 3.6190587245056029583909936820055344E03716:0:4:
+%3LE: 3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1:
+%*3LE: 3.6190587245056029583909936820055344E+3716:0:4:
+%3LE: 1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a:
+%*3LE: 1.18973149535723176508575932662800702E4932:0:4:
+%3LE: 1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a:
+%*3LE: 1.18973149535723176508575932662800702E+4932:0:4:
+%3LE: INFINITY:1:4:inf:
+%*3LE: INFINITY:0:4:
+%3LE: +NAN():0:-1:
+%*3LE: +NAN():0:-1:
+%3LE: +NAN(09A_Zaz):0:-1:
+%*3LE: +NAN(09A_Zaz):0:-1:
+%3LE: +0E0:0:-1:
+%*3LE: +0E0:0:-1:
+%3LE: +0E+0:0:-1:
+%*3LE: +0E+0:0:-1:
+%3LE: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1:
+%*3LE: +3.36210314311209350626267781732175260e-4932:0:4:
+%3LE: +3.6190587245056029583909936820055344E03716:1:4:0x1.8p1:
+%*3LE: +3.6190587245056029583909936820055344E03716:0:4:
+%3LE: +3.6190587245056029583909936820055344E+3716:1:4:0x1.8p1:
+%*3LE: +3.6190587245056029583909936820055344E+3716:0:4:
+%3LE: +1.18973149535723176508575932662800702E4932:1:4:0x1:
+%*3LE: +1.18973149535723176508575932662800702E4932:0:4:
+%3LE: +1.18973149535723176508575932662800702E+4932:1:4:0x1:
+%*3LE: +1.18973149535723176508575932662800702E+4932:0:4:
+%3LE: +INFINITY:0:-1:
+%*3LE: +INFINITY:0:-1:
+%48LE: :0:-1:
+%*48LE: :0:-1:
+%48LE: -INFINITY:1:10:-inf:
+%*48LE: -INFINITY:0:10:
+%48LE: -1.18973149535723176508575932662800702E+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: -1.18973149535723176508575932662800702E+4932:0:45:
+%48LE: -1.18973149535723176508575932662800702E4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: -1.18973149535723176508575932662800702E4932:0:44:
+%48LE: -3.6190587245056029583909936820055344E+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: -3.6190587245056029583909936820055344E+3716:0:44:
+%48LE: -3.6190587245056029583909936820055344E03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: -3.6190587245056029583909936820055344E03716:0:44:
+%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382:
+%*48LE: -3.36210314311209350626267781732175260e-4932:0:45:
+%48LE: -0E+0:1:6:-0x0:
+%*48LE: -0E+0:0:6:
+%48LE: -0E0:1:5:-0x0:
+%*48LE: -0E0:0:5:
+%48LE: -NAN(09A_Zaz):1:14:-nan:
+%*48LE: -NAN(09A_Zaz):0:14:
+%48LE: -NAN():1:7:-nan:
+%*48LE: -NAN():0:7:
+%48LE: NAN():1:6:nan:
+%*48LE: NAN():0:6:
+%48LE: NAN(09A_Zaz):1:13:nan:
+%*48LE: NAN(09A_Zaz):0:13:
+%48LE: 0E0:1:4:0x0:
+%*48LE: 0E0:0:4:
+%48LE: 0E+0:1:5:0x0:
+%*48LE: 0E+0:0:5:
+%48LE: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48LE: 3.36210314311209350626267781732175260e-4932:0:44:
+%48LE: 3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: 3.6190587245056029583909936820055344E03716:0:43:
+%48LE: 3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: 3.6190587245056029583909936820055344E+3716:0:43:
+%48LE: 1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: 1.18973149535723176508575932662800702E4932:0:43:
+%48LE: 1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: 1.18973149535723176508575932662800702E+4932:0:44:
+%48LE: INFINITY:1:9:inf:
+%*48LE: INFINITY:0:9:
+%48LE: +NAN():1:7:nan:
+%*48LE: +NAN():0:7:
+%48LE: +NAN(09A_Zaz):1:14:nan:
+%*48LE: +NAN(09A_Zaz):0:14:
+%48LE: +0E0:1:5:0x0:
+%*48LE: +0E0:0:5:
+%48LE: +0E+0:1:6:0x0:
+%*48LE: +0E+0:0:6:
+%48LE: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382:
+%*48LE: +3.36210314311209350626267781732175260e-4932:0:45:
+%48LE: +3.6190587245056029583909936820055344E03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: +3.6190587245056029583909936820055344E03716:0:44:
+%48LE: +3.6190587245056029583909936820055344E+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*48LE: +3.6190587245056029583909936820055344E+3716:0:44:
+%48LE: +1.18973149535723176508575932662800702E4932:1:44:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: +1.18973149535723176508575932662800702E4932:0:44:
+%48LE: +1.18973149535723176508575932662800702E+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383:
+%*48LE: +1.18973149535723176508575932662800702E+4932:0:45:
+%48LE: +INFINITY:1:10:inf:
+%*48LE: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input
new file mode 100644
index 0000000..955ef17
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input
@@ -0,0 +1,496 @@
+%Lf::0:-1:
+%*Lf::0:-1:
+%Lf:-infinity:1:9:-inf:
+%*Lf:-infinity:0:9:
+%Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%Lf:-0.0:1:4:-0x0:
+%*Lf:-0.0:0:4:
+%Lf:-0:1:2:-0x0:
+%*Lf:-0:0:2:
+%Lf:-nan(09A_Zaz):1:13:-nan:
+%*Lf:-nan(09A_Zaz):0:13:
+%Lf:-nan():1:6:-nan:
+%*Lf:-nan():0:6:
+%Lf:nan():1:5:nan:
+%*Lf:nan():0:5:
+%Lf:nan(09A_Zaz):1:12:nan:
+%*Lf:nan(09A_Zaz):0:12:
+%Lf:0:1:1:0x0:
+%*Lf:0:0:1:
+%Lf:0.0:1:3:0x0:
+%*Lf:0.0:0:3:
+%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936:
+%Lf:infinity:1:8:inf:
+%*Lf:infinity:0:8:
+%Lf:+nan():1:6:nan:
+%*Lf:+nan():0:6:
+%Lf:+nan(09A_Zaz):1:13:nan:
+%*Lf:+nan(09A_Zaz):0:13:
+%Lf:+0:1:2:0x0:
+%*Lf:+0:0:2:
+%Lf:+0.0:1:4:0x0:
+%*Lf:+0.0:0:4:
+%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%Lf:+infinity:1:9:inf:
+%*Lf:+infinity:0:9:
+%1Lf::0:-1:
+%*1Lf::0:-1:
+%1Lf:-infinity:0:-1:
+%*1Lf:-infinity:0:-1:
+%1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%*1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%*1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%*1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%*1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1Lf:-0.0:0:-1:
+%*1Lf:-0.0:0:-1:
+%1Lf:-0:0:-1:
+%*1Lf:-0:0:-1:
+%1Lf:-nan(09A_Zaz):0:-1:
+%*1Lf:-nan(09A_Zaz):0:-1:
+%1Lf:-nan():0:-1:
+%*1Lf:-nan():0:-1:
+%1Lf:nan():0:-1:
+%*1Lf:nan():0:-1:
+%1Lf:nan(09A_Zaz):0:-1:
+%*1Lf:nan(09A_Zaz):0:-1:
+%1Lf:0:1:1:0x0:
+%*1Lf:0:0:1:
+%1Lf:0.0:1:1:0x0:
+%*1Lf:0.0:0:1:
+%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0:
+%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1:
+%1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1:
+%*1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1:
+%1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0:
+%*1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1:
+%1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1:
+%*1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1:
+%1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0:
+%*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1:
+%1Lf:infinity:0:-1:
+%*1Lf:infinity:0:-1:
+%1Lf:+nan():0:-1:
+%*1Lf:+nan():0:-1:
+%1Lf:+nan(09A_Zaz):0:-1:
+%*1Lf:+nan(09A_Zaz):0:-1:
+%1Lf:+0:0:-1:
+%*1Lf:+0:0:-1:
+%1Lf:+0.0:0:-1:
+%*1Lf:+0.0:0:-1:
+%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%*1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%*1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%*1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%*1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%1Lf:+infinity:0:-1:
+%*1Lf:+infinity:0:-1:
+%2Lf::0:-1:
+%*2Lf::0:-1:
+%2Lf:-infinity:0:-1:
+%*2Lf:-infinity:0:-1:
+%2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0:
+%*2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1:
+%*2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0:
+%*2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1:
+%*2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0:
+%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:-0.0:1:2:-0x0:
+%*2Lf:-0.0:0:2:
+%2Lf:-0:1:2:-0x0:
+%*2Lf:-0:0:2:
+%2Lf:-nan(09A_Zaz):0:-1:
+%*2Lf:-nan(09A_Zaz):0:-1:
+%2Lf:-nan():0:-1:
+%*2Lf:-nan():0:-1:
+%2Lf:nan():0:-1:
+%*2Lf:nan():0:-1:
+%2Lf:nan(09A_Zaz):0:-1:
+%*2Lf:nan(09A_Zaz):0:-1:
+%2Lf:0:1:1:0x0:
+%*2Lf:0:0:1:
+%2Lf:0.0:1:2:0x0:
+%*2Lf:0.0:0:2:
+%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5:
+%*2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1:
+%*2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3:
+%*2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1:
+%*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2Lf:infinity:0:-1:
+%*2Lf:infinity:0:-1:
+%2Lf:+nan():0:-1:
+%*2Lf:+nan():0:-1:
+%2Lf:+nan(09A_Zaz):0:-1:
+%*2Lf:+nan(09A_Zaz):0:-1:
+%2Lf:+0:1:2:0x0:
+%*2Lf:+0:0:2:
+%2Lf:+0.0:1:2:0x0:
+%*2Lf:+0.0:0:2:
+%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1:
+%*2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0:
+%*2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1:
+%*2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0:
+%*2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2Lf:+infinity:0:-1:
+%*2Lf:+infinity:0:-1:
+%3Lf::0:-1:
+%*3Lf::0:-1:
+%3Lf:-infinity:0:-1:
+%*3Lf:-infinity:0:-1:
+%3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1:
+%*3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3:
+%*3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1:
+%*3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5:
+%*3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0:
+%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:-0.0:1:3:-0x0:
+%*3Lf:-0.0:0:3:
+%3Lf:-0:1:2:-0x0:
+%*3Lf:-0:0:2:
+%3Lf:-nan(09A_Zaz):0:-1:
+%*3Lf:-nan(09A_Zaz):0:-1:
+%3Lf:-nan():0:-1:
+%*3Lf:-nan():0:-1:
+%3Lf:nan():1:3:nan:
+%*3Lf:nan():0:3:
+%3Lf:nan(09A_Zaz):1:3:nan:
+%*3Lf:nan(09A_Zaz):0:3:
+%3Lf:0:1:1:0x0:
+%*3Lf:0:0:1:
+%3Lf:0.0:1:3:0x0:
+%*3Lf:0.0:0:3:
+%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8:
+%*3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5:
+%*3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6:
+%*3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3:
+%*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3Lf:infinity:1:3:inf:
+%*3Lf:infinity:0:3:
+%3Lf:+nan():0:-1:
+%*3Lf:+nan():0:-1:
+%3Lf:+nan(09A_Zaz):0:-1:
+%*3Lf:+nan(09A_Zaz):0:-1:
+%3Lf:+0:1:2:0x0:
+%*3Lf:+0:0:2:
+%3Lf:+0.0:1:3:0x0:
+%*3Lf:+0.0:0:3:
+%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5:
+%*3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1:
+%*3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3:
+%*3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1:
+%*3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3Lf:+infinity:0:-1:
+%*3Lf:+infinity:0:-1:
+%4935Lf::0:-1:
+%*4935Lf::0:-1:
+%4935Lf:-infinity:1:9:-inf:
+%*4935Lf:-infinity:0:9:
+%4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383:
+%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:-0.0:1:4:-0x0:
+%*4935Lf:-0.0:0:4:
+%4935Lf:-0:1:2:-0x0:
+%*4935Lf:-0:0:2:
+%4935Lf:-nan(09A_Zaz):1:13:-nan:
+%*4935Lf:-nan(09A_Zaz):0:13:
+%4935Lf:-nan():1:6:-nan:
+%*4935Lf:-nan():0:6:
+%4935Lf:nan():1:5:nan:
+%*4935Lf:nan():0:5:
+%4935Lf:nan(09A_Zaz):1:12:nan:
+%*4935Lf:nan(09A_Zaz):0:12:
+%4935Lf:0:1:1:0x0:
+%*4935Lf:0:0:1:
+%4935Lf:0.0:1:3:0x0:
+%*4935Lf:0.0:0:3:
+%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383:
+%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935Lf:infinity:1:8:inf:
+%*4935Lf:infinity:0:8:
+%4935Lf:+nan():1:6:nan:
+%*4935Lf:+nan():0:6:
+%4935Lf:+nan(09A_Zaz):1:13:nan:
+%*4935Lf:+nan(09A_Zaz):0:13:
+%4935Lf:+0:1:2:0x0:
+%*4935Lf:+0:0:2:
+%4935Lf:+0.0:1:4:0x0:
+%*4935Lf:+0.0:0:4:
+%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383:
+%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935Lf:+infinity:1:9:inf:
+%*4935Lf:+infinity:0:9:
+%5000Lf::0:-1:
+%*5000Lf::0:-1:
+%5000Lf:-infinity:1:9:-inf:
+%*5000Lf:-infinity:0:9:
+%5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf:-0.0:1:4:-0x0:
+%*5000Lf:-0.0:0:4:
+%5000Lf:-0:1:2:-0x0:
+%*5000Lf:-0:0:2:
+%5000Lf:-nan(09A_Zaz):1:13:-nan:
+%*5000Lf:-nan(09A_Zaz):0:13:
+%5000Lf:-nan():1:6:-nan:
+%*5000Lf:-nan():0:6:
+%5000Lf:nan():1:5:nan:
+%*5000Lf:nan():0:5:
+%5000Lf:nan(09A_Zaz):1:12:nan:
+%*5000Lf:nan(09A_Zaz):0:12:
+%5000Lf:0:1:1:0x0:
+%*5000Lf:0:0:1:
+%5000Lf:0.0:1:3:0x0:
+%*5000Lf:0.0:0:3:
+%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936:
+%5000Lf:infinity:1:8:inf:
+%*5000Lf:infinity:0:8:
+%5000Lf:+nan():1:6:nan:
+%*5000Lf:+nan():0:6:
+%5000Lf:+nan(09A_Zaz):1:13:nan:
+%*5000Lf:+nan(09A_Zaz):0:13:
+%5000Lf:+0:1:2:0x0:
+%*5000Lf:+0:0:2:
+%5000Lf:+0.0:1:4:0x0:
+%*5000Lf:+0.0:0:4:
+%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000Lf:+infinity:1:9:inf:
+%*5000Lf:+infinity:0:9:
+%3Lf: :0:-1:
+%*3Lf: :0:-1:
+%3Lf: -infinity:0:-1:
+%*3Lf: -infinity:0:-1:
+%3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1:
+%*3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3:
+%*3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1:
+%*3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5:
+%*3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0:
+%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: -0.0:1:4:-0x0:
+%*3Lf: -0.0:0:4:
+%3Lf: -0:1:3:-0x0:
+%*3Lf: -0:0:3:
+%3Lf: -nan(09A_Zaz):0:-1:
+%*3Lf: -nan(09A_Zaz):0:-1:
+%3Lf: -nan():0:-1:
+%*3Lf: -nan():0:-1:
+%3Lf: nan():1:4:nan:
+%*3Lf: nan():0:4:
+%3Lf: nan(09A_Zaz):1:4:nan:
+%*3Lf: nan(09A_Zaz):0:4:
+%3Lf: 0:1:2:0x0:
+%*3Lf: 0:0:2:
+%3Lf: 0.0:1:4:0x0:
+%*3Lf: 0.0:0:4:
+%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8:
+%*3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5:
+%*3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6:
+%*3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3:
+%*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3Lf: infinity:1:4:inf:
+%*3Lf: infinity:0:4:
+%3Lf: +nan():0:-1:
+%*3Lf: +nan():0:-1:
+%3Lf: +nan(09A_Zaz):0:-1:
+%*3Lf: +nan(09A_Zaz):0:-1:
+%3Lf: +0:1:3:0x0:
+%*3Lf: +0:0:3:
+%3Lf: +0.0:1:4:0x0:
+%*3Lf: +0.0:0:4:
+%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5:
+%*3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1:
+%*3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3:
+%*3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1:
+%*3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3Lf: +infinity:0:-1:
+%*3Lf: +infinity:0:-1:
+%5000Lf: :0:-1:
+%*5000Lf: :0:-1:
+%5000Lf: -infinity:1:10:-inf:
+%*5000Lf: -infinity:0:10:
+%5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938:
+%5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935:
+%5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722:
+%5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719:
+%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382:
+%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000Lf: -0.0:1:5:-0x0:
+%*5000Lf: -0.0:0:5:
+%5000Lf: -0:1:3:-0x0:
+%*5000Lf: -0:0:3:
+%5000Lf: -nan(09A_Zaz):1:14:-nan:
+%*5000Lf: -nan(09A_Zaz):0:14:
+%5000Lf: -nan():1:7:-nan:
+%*5000Lf: -nan():0:7:
+%5000Lf: nan():1:6:nan:
+%*5000Lf: nan():0:6:
+%5000Lf: nan(09A_Zaz):1:13:nan:
+%*5000Lf: nan(09A_Zaz):0:13:
+%5000Lf: 0:1:2:0x0:
+%*5000Lf: 0:0:2:
+%5000Lf: 0.0:1:4:0x0:
+%*5000Lf: 0.0:0:4:
+%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000Lf: infinity:1:9:inf:
+%*5000Lf: infinity:0:9:
+%5000Lf: +nan():1:7:nan:
+%*5000Lf: +nan():0:7:
+%5000Lf: +nan(09A_Zaz):1:14:nan:
+%*5000Lf: +nan(09A_Zaz):0:14:
+%5000Lf: +0:1:3:0x0:
+%*5000Lf: +0:0:3:
+%5000Lf: +0.0:1:5:0x0:
+%*5000Lf: +0.0:0:5:
+%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382:
+%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719:
+%5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722:
+%5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935:
+%5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938:
+%5000Lf: +infinity:1:10:inf:
+%*5000Lf: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input
new file mode 100644
index 0000000..b3e73df
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input
@@ -0,0 +1,496 @@
+%LF::0:-1:
+%*LF::0:-1:
+%LF:-INFINITY:1:9:-inf:
+%*LF:-INFINITY:0:9:
+%LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%LF:-0.0:1:4:-0x0:
+%*LF:-0.0:0:4:
+%LF:-0:1:2:-0x0:
+%*LF:-0:0:2:
+%LF:-NAN(09A_Zaz):1:13:-nan:
+%*LF:-NAN(09A_Zaz):0:13:
+%LF:-NAN():1:6:-nan:
+%*LF:-NAN():0:6:
+%LF:NAN():1:5:nan:
+%*LF:NAN():0:5:
+%LF:NAN(09A_Zaz):1:12:nan:
+%*LF:NAN(09A_Zaz):0:12:
+%LF:0:1:1:0x0:
+%*LF:0:0:1:
+%LF:0.0:1:3:0x0:
+%*LF:0.0:0:3:
+%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936:
+%LF:INFINITY:1:8:inf:
+%*LF:INFINITY:0:8:
+%LF:+NAN():1:6:nan:
+%*LF:+NAN():0:6:
+%LF:+NAN(09A_Zaz):1:13:nan:
+%*LF:+NAN(09A_Zaz):0:13:
+%LF:+0:1:2:0x0:
+%*LF:+0:0:2:
+%LF:+0.0:1:4:0x0:
+%*LF:+0.0:0:4:
+%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%LF:+INFINITY:1:9:inf:
+%*LF:+INFINITY:0:9:
+%1LF::0:-1:
+%*1LF::0:-1:
+%1LF:-INFINITY:0:-1:
+%*1LF:-INFINITY:0:-1:
+%1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%*1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%*1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%*1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%*1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1LF:-0.0:0:-1:
+%*1LF:-0.0:0:-1:
+%1LF:-0:0:-1:
+%*1LF:-0:0:-1:
+%1LF:-NAN(09A_Zaz):0:-1:
+%*1LF:-NAN(09A_Zaz):0:-1:
+%1LF:-NAN():0:-1:
+%*1LF:-NAN():0:-1:
+%1LF:NAN():0:-1:
+%*1LF:NAN():0:-1:
+%1LF:NAN(09A_Zaz):0:-1:
+%*1LF:NAN(09A_Zaz):0:-1:
+%1LF:0:1:1:0x0:
+%*1LF:0:0:1:
+%1LF:0.0:1:1:0x0:
+%*1LF:0.0:0:1:
+%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0:
+%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1:
+%1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1:
+%*1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1:
+%1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0:
+%*1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1:
+%1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1:
+%*1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1:
+%1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0:
+%*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1:
+%1LF:INFINITY:0:-1:
+%*1LF:INFINITY:0:-1:
+%1LF:+NAN():0:-1:
+%*1LF:+NAN():0:-1:
+%1LF:+NAN(09A_Zaz):0:-1:
+%*1LF:+NAN(09A_Zaz):0:-1:
+%1LF:+0:0:-1:
+%*1LF:+0:0:-1:
+%1LF:+0.0:0:-1:
+%*1LF:+0.0:0:-1:
+%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%*1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1:
+%1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%*1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1:
+%1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%*1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1:
+%1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%*1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1:
+%1LF:+INFINITY:0:-1:
+%*1LF:+INFINITY:0:-1:
+%2LF::0:-1:
+%*2LF::0:-1:
+%2LF:-INFINITY:0:-1:
+%*2LF:-INFINITY:0:-1:
+%2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0:
+%*2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1:
+%*2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0:
+%*2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1:
+%*2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0:
+%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:-0.0:1:2:-0x0:
+%*2LF:-0.0:0:2:
+%2LF:-0:1:2:-0x0:
+%*2LF:-0:0:2:
+%2LF:-NAN(09A_Zaz):0:-1:
+%*2LF:-NAN(09A_Zaz):0:-1:
+%2LF:-NAN():0:-1:
+%*2LF:-NAN():0:-1:
+%2LF:NAN():0:-1:
+%*2LF:NAN():0:-1:
+%2LF:NAN(09A_Zaz):0:-1:
+%*2LF:NAN(09A_Zaz):0:-1:
+%2LF:0:1:1:0x0:
+%*2LF:0:0:1:
+%2LF:0.0:1:2:0x0:
+%*2LF:0.0:0:2:
+%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5:
+%*2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1:
+%*2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3:
+%*2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1:
+%*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2LF:INFINITY:0:-1:
+%*2LF:INFINITY:0:-1:
+%2LF:+NAN():0:-1:
+%*2LF:+NAN():0:-1:
+%2LF:+NAN(09A_Zaz):0:-1:
+%*2LF:+NAN(09A_Zaz):0:-1:
+%2LF:+0:1:2:0x0:
+%*2LF:+0:0:2:
+%2LF:+0.0:1:2:0x0:
+%*2LF:+0.0:0:2:
+%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1:
+%*2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2:
+%2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0:
+%*2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2:
+%2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1:
+%*2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2:
+%2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0:
+%*2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2:
+%2LF:+INFINITY:0:-1:
+%*2LF:+INFINITY:0:-1:
+%3LF::0:-1:
+%*3LF::0:-1:
+%3LF:-INFINITY:0:-1:
+%*3LF:-INFINITY:0:-1:
+%3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1:
+%*3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3:
+%*3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1:
+%*3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5:
+%*3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0:
+%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:-0.0:1:3:-0x0:
+%*3LF:-0.0:0:3:
+%3LF:-0:1:2:-0x0:
+%*3LF:-0:0:2:
+%3LF:-NAN(09A_Zaz):0:-1:
+%*3LF:-NAN(09A_Zaz):0:-1:
+%3LF:-NAN():0:-1:
+%*3LF:-NAN():0:-1:
+%3LF:NAN():1:3:nan:
+%*3LF:NAN():0:3:
+%3LF:NAN(09A_Zaz):1:3:nan:
+%*3LF:NAN(09A_Zaz):0:3:
+%3LF:0:1:1:0x0:
+%*3LF:0:0:1:
+%3LF:0.0:1:3:0x0:
+%*3LF:0.0:0:3:
+%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8:
+%*3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5:
+%*3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6:
+%*3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3:
+%*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3LF:INFINITY:1:3:inf:
+%*3LF:INFINITY:0:3:
+%3LF:+NAN():0:-1:
+%*3LF:+NAN():0:-1:
+%3LF:+NAN(09A_Zaz):0:-1:
+%*3LF:+NAN(09A_Zaz):0:-1:
+%3LF:+0:1:2:0x0:
+%*3LF:+0:0:2:
+%3LF:+0.0:1:3:0x0:
+%*3LF:+0.0:0:3:
+%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5:
+%*3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3:
+%3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1:
+%*3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3:
+%3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3:
+%*3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3:
+%3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1:
+%*3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3:
+%3LF:+INFINITY:0:-1:
+%*3LF:+INFINITY:0:-1:
+%4935LF::0:-1:
+%*4935LF::0:-1:
+%4935LF:-INFINITY:1:9:-inf:
+%*4935LF:-INFINITY:0:9:
+%4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383:
+%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:-0.0:1:4:-0x0:
+%*4935LF:-0.0:0:4:
+%4935LF:-0:1:2:-0x0:
+%*4935LF:-0:0:2:
+%4935LF:-NAN(09A_Zaz):1:13:-nan:
+%*4935LF:-NAN(09A_Zaz):0:13:
+%4935LF:-NAN():1:6:-nan:
+%*4935LF:-NAN():0:6:
+%4935LF:NAN():1:5:nan:
+%*4935LF:NAN():0:5:
+%4935LF:NAN(09A_Zaz):1:12:nan:
+%*4935LF:NAN(09A_Zaz):0:12:
+%4935LF:0:1:1:0x0:
+%*4935LF:0:0:1:
+%4935LF:0.0:1:3:0x0:
+%*4935LF:0.0:0:3:
+%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383:
+%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935LF:INFINITY:1:8:inf:
+%*4935LF:INFINITY:0:8:
+%4935LF:+NAN():1:6:nan:
+%*4935LF:+NAN():0:6:
+%4935LF:+NAN(09A_Zaz):1:13:nan:
+%*4935LF:+NAN(09A_Zaz):0:13:
+%4935LF:+0:1:2:0x0:
+%*4935LF:+0:0:2:
+%4935LF:+0.0:1:4:0x0:
+%*4935LF:+0.0:0:4:
+%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383:
+%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935:
+%4935LF:+INFINITY:1:9:inf:
+%*4935LF:+INFINITY:0:9:
+%5000LF::0:-1:
+%*5000LF::0:-1:
+%5000LF:-INFINITY:1:9:-inf:
+%*5000LF:-INFINITY:0:9:
+%5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF:-0.0:1:4:-0x0:
+%*5000LF:-0.0:0:4:
+%5000LF:-0:1:2:-0x0:
+%*5000LF:-0:0:2:
+%5000LF:-NAN(09A_Zaz):1:13:-nan:
+%*5000LF:-NAN(09A_Zaz):0:13:
+%5000LF:-NAN():1:6:-nan:
+%*5000LF:-NAN():0:6:
+%5000LF:NAN():1:5:nan:
+%*5000LF:NAN():0:5:
+%5000LF:NAN(09A_Zaz):1:12:nan:
+%*5000LF:NAN(09A_Zaz):0:12:
+%5000LF:0:1:1:0x0:
+%*5000LF:0:0:1:
+%5000LF:0.0:1:3:0x0:
+%*5000LF:0.0:0:3:
+%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717:
+%5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720:
+%5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933:
+%5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936:
+%5000LF:INFINITY:1:8:inf:
+%*5000LF:INFINITY:0:8:
+%5000LF:+NAN():1:6:nan:
+%*5000LF:+NAN():0:6:
+%5000LF:+NAN(09A_Zaz):1:13:nan:
+%*5000LF:+NAN(09A_Zaz):0:13:
+%5000LF:+0:1:2:0x0:
+%*5000LF:+0:0:2:
+%5000LF:+0.0:1:4:0x0:
+%*5000LF:+0.0:0:4:
+%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000LF:+INFINITY:1:9:inf:
+%*5000LF:+INFINITY:0:9:
+%3LF: :0:-1:
+%*3LF: :0:-1:
+%3LF: -INFINITY:0:-1:
+%*3LF: -INFINITY:0:-1:
+%3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1:
+%*3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3:
+%*3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1:
+%*3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5:
+%*3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0:
+%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: -0.0:1:4:-0x0:
+%*3LF: -0.0:0:4:
+%3LF: -0:1:3:-0x0:
+%*3LF: -0:0:3:
+%3LF: -NAN(09A_Zaz):0:-1:
+%*3LF: -NAN(09A_Zaz):0:-1:
+%3LF: -NAN():0:-1:
+%*3LF: -NAN():0:-1:
+%3LF: NAN():1:4:nan:
+%*3LF: NAN():0:4:
+%3LF: NAN(09A_Zaz):1:4:nan:
+%*3LF: NAN(09A_Zaz):0:4:
+%3LF: 0:1:2:0x0:
+%*3LF: 0:0:2:
+%3LF: 0.0:1:4:0x0:
+%*3LF: 0.0:0:4:
+%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8:
+%*3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5:
+%*3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6:
+%*3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3:
+%*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3LF: INFINITY:1:4:inf:
+%*3LF: INFINITY:0:4:
+%3LF: +NAN():0:-1:
+%*3LF: +NAN():0:-1:
+%3LF: +NAN(09A_Zaz):0:-1:
+%*3LF: +NAN(09A_Zaz):0:-1:
+%3LF: +0:1:3:0x0:
+%*3LF: +0:0:3:
+%3LF: +0.0:1:4:0x0:
+%*3LF: +0.0:0:4:
+%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5:
+%*3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4:
+%3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1:
+%*3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4:
+%3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3:
+%*3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4:
+%3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1:
+%*3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4:
+%3LF: +INFINITY:0:-1:
+%*3LF: +INFINITY:0:-1:
+%5000LF: :0:-1:
+%*5000LF: :0:-1:
+%5000LF: -INFINITY:1:10:-inf:
+%*5000LF: -INFINITY:0:10:
+%5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938:
+%5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935:
+%5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722:
+%5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719:
+%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382:
+%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000LF: -0.0:1:5:-0x0:
+%*5000LF: -0.0:0:5:
+%5000LF: -0:1:3:-0x0:
+%*5000LF: -0:0:3:
+%5000LF: -NAN(09A_Zaz):1:14:-nan:
+%*5000LF: -NAN(09A_Zaz):0:14:
+%5000LF: -NAN():1:7:-nan:
+%*5000LF: -NAN():0:7:
+%5000LF: NAN():1:6:nan:
+%*5000LF: NAN():0:6:
+%5000LF: NAN(09A_Zaz):1:13:nan:
+%*5000LF: NAN(09A_Zaz):0:13:
+%5000LF: 0:1:2:0x0:
+%*5000LF: 0:0:2:
+%5000LF: 0.0:1:4:0x0:
+%*5000LF: 0.0:0:4:
+%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718:
+%5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721:
+%5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934:
+%5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937:
+%5000LF: INFINITY:1:9:inf:
+%*5000LF: INFINITY:0:9:
+%5000LF: +NAN():1:7:nan:
+%*5000LF: +NAN():0:7:
+%5000LF: +NAN(09A_Zaz):1:14:nan:
+%*5000LF: +NAN(09A_Zaz):0:14:
+%5000LF: +0:1:3:0x0:
+%*5000LF: +0:0:3:
+%5000LF: +0.0:1:5:0x0:
+%*5000LF: +0.0:0:5:
+%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382:
+%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719:
+%5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722:
+%5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935:
+%5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383:
+%*5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938:
+%5000LF: +INFINITY:1:10:inf:
+%*5000LF: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input
new file mode 100644
index 0000000..fb5173c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input
@@ -0,0 +1,682 @@
+%Lg::0:-1:
+%*Lg::0:-1:
+%Lg:-infinity:1:9:-inf:
+%*Lg:-infinity:0:9:
+%Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40:
+%Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*Lg:-0x8p-16385:0:11:
+%Lg:-0x0p+0:1:7:-0x0:
+%*Lg:-0x0p+0:0:7:
+%Lg:-0x0p0:1:6:-0x0:
+%*Lg:-0x0p0:0:6:
+%Lg:-nan(09A_Zaz):1:13:-nan:
+%*Lg:-nan(09A_Zaz):0:13:
+%Lg:-nan():1:6:-nan:
+%*Lg:-nan():0:6:
+%Lg:nan():1:5:nan:
+%*Lg:nan():0:5:
+%Lg:nan(09A_Zaz):1:12:nan:
+%*Lg:nan(09A_Zaz):0:12:
+%Lg:0x0p0:1:5:0x0:
+%*Lg:0x0p0:0:5:
+%Lg:0x0p+0:1:6:0x0:
+%*Lg:0x0p+0:0:6:
+%Lg:0x8p-16385:1:10:0x1p-16382:
+%*Lg:0x8p-16385:0:10:
+%Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:0x2.3456789abcdef0123456789abcdep012345:0:39:
+%Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39:
+%Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38:
+%Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39:
+%Lg:infinity:1:8:inf:
+%*Lg:infinity:0:8:
+%Lg:+nan():1:6:nan:
+%*Lg:+nan():0:6:
+%Lg:+nan(09A_Zaz):1:13:nan:
+%*Lg:+nan(09A_Zaz):0:13:
+%Lg:+0x0p0:1:6:0x0:
+%*Lg:+0x0p0:0:6:
+%Lg:+0x0p+0:1:7:0x0:
+%*Lg:+0x0p+0:0:7:
+%Lg:+0x8p-16385:1:11:0x1p-16382:
+%*Lg:+0x8p-16385:0:11:
+%Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40:
+%Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%Lg:+infinity:1:9:inf:
+%*Lg:+infinity:0:9:
+%1Lg::0:-1:
+%*1Lg::0:-1:
+%1Lg:-infinity:0:-1:
+%*1Lg:-infinity:0:-1:
+%1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%1Lg:-0x8p-16385:0:-1:
+%*1Lg:-0x8p-16385:0:-1:
+%1Lg:-0x0p+0:0:-1:
+%*1Lg:-0x0p+0:0:-1:
+%1Lg:-0x0p0:0:-1:
+%*1Lg:-0x0p0:0:-1:
+%1Lg:-nan(09A_Zaz):0:-1:
+%*1Lg:-nan(09A_Zaz):0:-1:
+%1Lg:-nan():0:-1:
+%*1Lg:-nan():0:-1:
+%1Lg:nan():0:-1:
+%*1Lg:nan():0:-1:
+%1Lg:nan(09A_Zaz):0:-1:
+%*1Lg:nan(09A_Zaz):0:-1:
+%1Lg:0x0p0:1:1:0x0:
+%*1Lg:0x0p0:0:1:
+%1Lg:0x0p+0:1:1:0x0:
+%*1Lg:0x0p+0:0:1:
+%1Lg:0x8p-16385:1:1:0x0:
+%*1Lg:0x8p-16385:0:1:
+%1Lg:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0:
+%*1Lg:0x2.3456789abcdef0123456789abcdep012345:0:1:
+%1Lg:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0:
+%*1Lg:0x2.3456789abcdef0123456789abcdep+12345:0:1:
+%1Lg:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0:
+%*1Lg:0x7.fffffffffffffffffffffffffffcp16381:0:1:
+%1Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0:
+%*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1:
+%1Lg:infinity:0:-1:
+%*1Lg:infinity:0:-1:
+%1Lg:+nan():0:-1:
+%*1Lg:+nan():0:-1:
+%1Lg:+nan(09A_Zaz):0:-1:
+%*1Lg:+nan(09A_Zaz):0:-1:
+%1Lg:+0x0p0:0:-1:
+%*1Lg:+0x0p0:0:-1:
+%1Lg:+0x0p+0:0:-1:
+%*1Lg:+0x0p+0:0:-1:
+%1Lg:+0x8p-16385:0:-1:
+%*1Lg:+0x8p-16385:0:-1:
+%1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%1Lg:+infinity:0:-1:
+%*1Lg:+infinity:0:-1:
+%2Lg::0:-1:
+%*2Lg::0:-1:
+%2Lg:-infinity:0:-1:
+%*2Lg:-infinity:0:-1:
+%2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0:
+%*2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:2:
+%2Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0:
+%*2Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:2:
+%2Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:2:
+%2Lg:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef0123456789abcdep012345:0:2:
+%2Lg:-0x8p-16385:1:2:-0x0:
+%*2Lg:-0x8p-16385:0:2:
+%2Lg:-0x0p+0:1:2:-0x0:
+%*2Lg:-0x0p+0:0:2:
+%2Lg:-0x0p0:1:2:-0x0:
+%*2Lg:-0x0p0:0:2:
+%2Lg:-nan(09A_Zaz):0:-1:
+%*2Lg:-nan(09A_Zaz):0:-1:
+%2Lg:-nan():0:-1:
+%*2Lg:-nan():0:-1:
+%2Lg:nan():0:-1:
+%*2Lg:nan():0:-1:
+%2Lg:nan(09A_Zaz):0:-1:
+%*2Lg:nan(09A_Zaz):0:-1:
+%2Lg:0x0p0:0:-1:
+%*2Lg:0x0p0:0:-1:
+%2Lg:0x0p+0:0:-1:
+%*2Lg:0x0p+0:0:-1:
+%2Lg:0x8p-16385:0:-1:
+%*2Lg:0x8p-16385:0:-1:
+%2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%2Lg:infinity:0:-1:
+%*2Lg:infinity:0:-1:
+%2Lg:+nan():0:-1:
+%*2Lg:+nan():0:-1:
+%2Lg:+nan(09A_Zaz):0:-1:
+%*2Lg:+nan(09A_Zaz):0:-1:
+%2Lg:+0x0p0:1:2:0x0:
+%*2Lg:+0x0p0:0:2:
+%2Lg:+0x0p+0:1:2:0x0:
+%*2Lg:+0x0p+0:0:2:
+%2Lg:+0x8p-16385:1:2:0x0:
+%*2Lg:+0x8p-16385:0:2:
+%2Lg:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef0123456789abcdep012345:0:2:
+%2Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:2:
+%2Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0:
+%*2Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:2:
+%2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0:
+%*2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:2:
+%2Lg:+infinity:0:-1:
+%*2Lg:+infinity:0:-1:
+%3Lg::0:-1:
+%*3Lg::0:-1:
+%3Lg:-infinity:0:-1:
+%*3Lg:-infinity:0:-1:
+%3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%3Lg:-0x8p-16385:0:-1:
+%*3Lg:-0x8p-16385:0:-1:
+%3Lg:-0x0p+0:0:-1:
+%*3Lg:-0x0p+0:0:-1:
+%3Lg:-0x0p0:0:-1:
+%*3Lg:-0x0p0:0:-1:
+%3Lg:-nan(09A_Zaz):0:-1:
+%*3Lg:-nan(09A_Zaz):0:-1:
+%3Lg:-nan():0:-1:
+%*3Lg:-nan():0:-1:
+%3Lg:nan():1:3:nan:
+%*3Lg:nan():0:3:
+%3Lg:nan(09A_Zaz):1:3:nan:
+%*3Lg:nan(09A_Zaz):0:3:
+%3Lg:0x0p0:1:3:0x0:
+%*3Lg:0x0p0:0:3:
+%3Lg:0x0p+0:1:3:0x0:
+%*3Lg:0x0p+0:0:3:
+%3Lg:0x8p-16385:1:3:0x1p3:
+%*3Lg:0x8p-16385:0:3:
+%3Lg:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef0123456789abcdep012345:0:3:
+%3Lg:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef0123456789abcdep+12345:0:3:
+%3Lg:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2:
+%*3Lg:0x7.fffffffffffffffffffffffffffcp16381:0:3:
+%3Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3:
+%*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3:
+%3Lg:infinity:1:3:inf:
+%*3Lg:infinity:0:3:
+%3Lg:+nan():0:-1:
+%*3Lg:+nan():0:-1:
+%3Lg:+nan(09A_Zaz):0:-1:
+%*3Lg:+nan(09A_Zaz):0:-1:
+%3Lg:+0x0p0:0:-1:
+%*3Lg:+0x0p0:0:-1:
+%3Lg:+0x0p+0:0:-1:
+%*3Lg:+0x0p+0:0:-1:
+%3Lg:+0x8p-16385:0:-1:
+%*3Lg:+0x8p-16385:0:-1:
+%3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%*3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1:
+%3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%*3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1:
+%3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%3Lg:+infinity:0:-1:
+%*3Lg:+infinity:0:-1:
+%4Lg::0:-1:
+%*4Lg::0:-1:
+%4Lg:-infinity:1:4:-inf:
+%*4Lg:-infinity:0:4:
+%4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3:
+%*4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2:
+%*4Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4Lg:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4Lg:-0x8p-16385:1:4:-0x1p3:
+%*4Lg:-0x8p-16385:0:4:
+%4Lg:-0x0p+0:1:4:-0x0:
+%*4Lg:-0x0p+0:0:4:
+%4Lg:-0x0p0:1:4:-0x0:
+%*4Lg:-0x0p0:0:4:
+%4Lg:-nan(09A_Zaz):1:4:-nan:
+%*4Lg:-nan(09A_Zaz):0:4:
+%4Lg:-nan():1:4:-nan:
+%*4Lg:-nan():0:4:
+%4Lg:nan():0:-1:
+%*4Lg:nan():0:-1:
+%4Lg:nan(09A_Zaz):0:-1:
+%*4Lg:nan(09A_Zaz):0:-1:
+%4Lg:0x0p0:0:-1:
+%*4Lg:0x0p0:0:-1:
+%4Lg:0x0p+0:0:-1:
+%*4Lg:0x0p+0:0:-1:
+%4Lg:0x8p-16385:0:-1:
+%*4Lg:0x8p-16385:0:-1:
+%4Lg:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4Lg:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4Lg:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2:
+%*4Lg:0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3:
+%*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4Lg:infinity:0:-1:
+%*4Lg:infinity:0:-1:
+%4Lg:+nan():1:4:nan:
+%*4Lg:+nan():0:4:
+%4Lg:+nan(09A_Zaz):1:4:nan:
+%*4Lg:+nan(09A_Zaz):0:4:
+%4Lg:+0x0p0:1:4:0x0:
+%*4Lg:+0x0p0:0:4:
+%4Lg:+0x0p+0:1:4:0x0:
+%*4Lg:+0x0p+0:0:4:
+%4Lg:+0x8p-16385:1:4:0x1p3:
+%*4Lg:+0x8p-16385:0:4:
+%4Lg:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef0123456789abcdep012345:0:4:
+%4Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:4:
+%4Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2:
+%*4Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:4:
+%4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3:
+%*4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:4:
+%4Lg:+infinity:1:4:inf:
+%*4Lg:+infinity:0:4:
+%5Lg::0:-1:
+%*5Lg::0:-1:
+%5Lg:-infinity:0:-1:
+%*5Lg:-infinity:0:-1:
+%5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3:
+%*5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2:
+%*5Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5Lg:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5Lg:-0x8p-16385:0:-1:
+%*5Lg:-0x8p-16385:0:-1:
+%5Lg:-0x0p+0:0:-1:
+%*5Lg:-0x0p+0:0:-1:
+%5Lg:-0x0p0:0:-1:
+%*5Lg:-0x0p0:0:-1:
+%5Lg:-nan(09A_Zaz):0:-1:
+%*5Lg:-nan(09A_Zaz):0:-1:
+%5Lg:-nan():0:-1:
+%*5Lg:-nan():0:-1:
+%5Lg:nan():1:5:nan:
+%*5Lg:nan():0:5:
+%5Lg:nan(09A_Zaz):0:-1:
+%*5Lg:nan(09A_Zaz):0:-1:
+%5Lg:0x0p0:1:5:0x0:
+%*5Lg:0x0p0:0:5:
+%5Lg:0x0p+0:0:-1:
+%*5Lg:0x0p+0:0:-1:
+%5Lg:0x8p-16385:0:-1:
+%*5Lg:0x8p-16385:0:-1:
+%5Lg:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5Lg:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5Lg:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2:
+%*5Lg:0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3:
+%*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5Lg:infinity:0:-1:
+%*5Lg:infinity:0:-1:
+%5Lg:+nan():0:-1:
+%*5Lg:+nan():0:-1:
+%5Lg:+nan(09A_Zaz):0:-1:
+%*5Lg:+nan(09A_Zaz):0:-1:
+%5Lg:+0x0p0:0:-1:
+%*5Lg:+0x0p0:0:-1:
+%5Lg:+0x0p+0:0:-1:
+%*5Lg:+0x0p+0:0:-1:
+%5Lg:+0x8p-16385:0:-1:
+%*5Lg:+0x8p-16385:0:-1:
+%5Lg:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef0123456789abcdep012345:0:5:
+%5Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:5:
+%5Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2:
+%*5Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:5:
+%5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3:
+%*5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:5:
+%5Lg:+infinity:0:-1:
+%*5Lg:+infinity:0:-1:
+%6Lg::0:-1:
+%*6Lg::0:-1:
+%6Lg:-infinity:0:-1:
+%*6Lg:-infinity:0:-1:
+%6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3:
+%*6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2:
+%*6Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6Lg:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6Lg:-0x8p-16385:0:-1:
+%*6Lg:-0x8p-16385:0:-1:
+%6Lg:-0x0p+0:0:-1:
+%*6Lg:-0x0p+0:0:-1:
+%6Lg:-0x0p0:1:6:-0x0:
+%*6Lg:-0x0p0:0:6:
+%6Lg:-nan(09A_Zaz):0:-1:
+%*6Lg:-nan(09A_Zaz):0:-1:
+%6Lg:-nan():1:6:-nan:
+%*6Lg:-nan():0:6:
+%6Lg:nan():1:5:nan:
+%*6Lg:nan():0:5:
+%6Lg:nan(09A_Zaz):0:-1:
+%*6Lg:nan(09A_Zaz):0:-1:
+%6Lg:0x0p0:1:5:0x0:
+%*6Lg:0x0p0:0:5:
+%6Lg:0x0p+0:1:6:0x0:
+%*6Lg:0x0p+0:0:6:
+%6Lg:0x8p-16385:1:6:0x1p2:
+%*6Lg:0x8p-16385:0:6:
+%6Lg:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6Lg:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6Lg:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2:
+%*6Lg:0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3:
+%*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6Lg:infinity:0:-1:
+%*6Lg:infinity:0:-1:
+%6Lg:+nan():1:6:nan:
+%*6Lg:+nan():0:6:
+%6Lg:+nan(09A_Zaz):0:-1:
+%*6Lg:+nan(09A_Zaz):0:-1:
+%6Lg:+0x0p0:1:6:0x0:
+%*6Lg:+0x0p0:0:6:
+%6Lg:+0x0p+0:0:-1:
+%*6Lg:+0x0p+0:0:-1:
+%6Lg:+0x8p-16385:0:-1:
+%*6Lg:+0x8p-16385:0:-1:
+%6Lg:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef0123456789abcdep012345:0:6:
+%6Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%6Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2:
+%*6Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3:
+%*6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%6Lg:+infinity:0:-1:
+%*6Lg:+infinity:0:-1:
+%35Lg::0:-1:
+%*35Lg::0:-1:
+%35Lg:-infinity:1:9:-inf:
+%*35Lg:-infinity:0:9:
+%35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%35Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3:
+%*35Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%35Lg:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35Lg:-0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*35Lg:-0x8p-16385:0:11:
+%35Lg:-0x0p+0:1:7:-0x0:
+%*35Lg:-0x0p+0:0:7:
+%35Lg:-0x0p0:1:6:-0x0:
+%*35Lg:-0x0p0:0:6:
+%35Lg:-nan(09A_Zaz):1:13:-nan:
+%*35Lg:-nan(09A_Zaz):0:13:
+%35Lg:-nan():1:6:-nan:
+%*35Lg:-nan():0:6:
+%35Lg:nan():1:5:nan:
+%*35Lg:nan():0:5:
+%35Lg:nan(09A_Zaz):1:12:nan:
+%*35Lg:nan(09A_Zaz):0:12:
+%35Lg:0x0p0:1:5:0x0:
+%*35Lg:0x0p0:0:5:
+%35Lg:0x0p+0:1:6:0x0:
+%*35Lg:0x0p+0:0:6:
+%35Lg:0x8p-16385:1:10:0x1p-16382:
+%*35Lg:0x8p-16385:0:10:
+%35Lg:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35Lg:0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35Lg:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35Lg:0x2.3456789abcdef0123456789abcdep+12345:0:35:
+%35Lg:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18:
+%*35Lg:0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4:
+%*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35:
+%35Lg:infinity:1:8:inf:
+%*35Lg:infinity:0:8:
+%35Lg:+nan():1:6:nan:
+%*35Lg:+nan():0:6:
+%35Lg:+nan(09A_Zaz):1:13:nan:
+%*35Lg:+nan(09A_Zaz):0:13:
+%35Lg:+0x0p0:1:6:0x0:
+%*35Lg:+0x0p0:0:6:
+%35Lg:+0x0p+0:1:7:0x0:
+%*35Lg:+0x0p+0:0:7:
+%35Lg:+0x8p-16385:1:11:0x1p-16382:
+%*35Lg:+0x8p-16385:0:11:
+%35Lg:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35Lg:+0x2.3456789abcdef0123456789abcdep012345:0:35:
+%35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%*35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1:
+%35Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3:
+%*35Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:35:
+%35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%*35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1:
+%35Lg:+infinity:1:9:inf:
+%*35Lg:+infinity:0:9:
+%53Lg::0:-1:
+%*53Lg::0:-1:
+%53Lg:-infinity:1:9:-inf:
+%*53Lg:-infinity:0:9:
+%53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*53Lg:-0x8p-16385:0:11:
+%53Lg:-0x0p+0:1:7:-0x0:
+%*53Lg:-0x0p+0:0:7:
+%53Lg:-0x0p0:1:6:-0x0:
+%*53Lg:-0x0p0:0:6:
+%53Lg:-nan(09A_Zaz):1:13:-nan:
+%*53Lg:-nan(09A_Zaz):0:13:
+%53Lg:-nan():1:6:-nan:
+%*53Lg:-nan():0:6:
+%53Lg:nan():1:5:nan:
+%*53Lg:nan():0:5:
+%53Lg:nan(09A_Zaz):1:12:nan:
+%*53Lg:nan(09A_Zaz):0:12:
+%53Lg:0x0p0:1:5:0x0:
+%*53Lg:0x0p0:0:5:
+%53Lg:0x0p+0:1:6:0x0:
+%*53Lg:0x0p+0:0:6:
+%53Lg:0x8p-16385:1:10:0x1p-16382:
+%*53Lg:0x8p-16385:0:10:
+%53Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:0x2.3456789abcdef0123456789abcdep012345:0:39:
+%53Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39:
+%53Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38:
+%53Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39:
+%53Lg:infinity:1:8:inf:
+%*53Lg:infinity:0:8:
+%53Lg:+nan():1:6:nan:
+%*53Lg:+nan():0:6:
+%53Lg:+nan(09A_Zaz):1:13:nan:
+%*53Lg:+nan(09A_Zaz):0:13:
+%53Lg:+0x0p0:1:6:0x0:
+%*53Lg:+0x0p0:0:6:
+%53Lg:+0x0p+0:1:7:0x0:
+%*53Lg:+0x0p+0:0:7:
+%53Lg:+0x8p-16385:1:11:0x1p-16382:
+%*53Lg:+0x8p-16385:0:11:
+%53Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53Lg:+infinity:1:9:inf:
+%*53Lg:+infinity:0:9:
+%5Lg: :0:-1:
+%*5Lg: :0:-1:
+%5Lg: -infinity:0:-1:
+%*5Lg: -infinity:0:-1:
+%5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3:
+%*5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2:
+%*5Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5Lg: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5Lg: -0x8p-16385:0:-1:
+%*5Lg: -0x8p-16385:0:-1:
+%5Lg: -0x0p+0:0:-1:
+%*5Lg: -0x0p+0:0:-1:
+%5Lg: -0x0p0:0:-1:
+%*5Lg: -0x0p0:0:-1:
+%5Lg: -nan(09A_Zaz):0:-1:
+%*5Lg: -nan(09A_Zaz):0:-1:
+%5Lg: -nan():0:-1:
+%*5Lg: -nan():0:-1:
+%5Lg: nan():1:6:nan:
+%*5Lg: nan():0:6:
+%5Lg: nan(09A_Zaz):0:-1:
+%*5Lg: nan(09A_Zaz):0:-1:
+%5Lg: 0x0p0:1:6:0x0:
+%*5Lg: 0x0p0:0:6:
+%5Lg: 0x0p+0:0:-1:
+%*5Lg: 0x0p+0:0:-1:
+%5Lg: 0x8p-16385:0:-1:
+%*5Lg: 0x8p-16385:0:-1:
+%5Lg: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2:
+%*5Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3:
+%*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5Lg: infinity:0:-1:
+%*5Lg: infinity:0:-1:
+%5Lg: +nan():0:-1:
+%*5Lg: +nan():0:-1:
+%5Lg: +nan(09A_Zaz):0:-1:
+%*5Lg: +nan(09A_Zaz):0:-1:
+%5Lg: +0x0p0:0:-1:
+%*5Lg: +0x0p0:0:-1:
+%5Lg: +0x0p+0:0:-1:
+%*5Lg: +0x0p+0:0:-1:
+%5Lg: +0x8p-16385:0:-1:
+%*5Lg: +0x8p-16385:0:-1:
+%5Lg: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef0123456789abcdep012345:0:6:
+%5Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:6:
+%5Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2:
+%*5Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:6:
+%5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3:
+%*5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:6:
+%5Lg: +infinity:0:-1:
+%*5Lg: +infinity:0:-1:
+%53Lg: :0:-1:
+%*53Lg: :0:-1:
+%53Lg: -infinity:1:10:-inf:
+%*53Lg: -infinity:0:10:
+%53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:41:
+%53Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:40:
+%53Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:41:
+%53Lg: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: -0x2.3456789abcdef0123456789abcdep012345:0:41:
+%53Lg: -0x8p-16385:1:12:-0x1p-16382:
+%*53Lg: -0x8p-16385:0:12:
+%53Lg: -0x0p+0:1:8:-0x0:
+%*53Lg: -0x0p+0:0:8:
+%53Lg: -0x0p0:1:7:-0x0:
+%*53Lg: -0x0p0:0:7:
+%53Lg: -nan(09A_Zaz):1:14:-nan:
+%*53Lg: -nan(09A_Zaz):0:14:
+%53Lg: -nan():1:7:-nan:
+%*53Lg: -nan():0:7:
+%53Lg: nan():1:6:nan:
+%*53Lg: nan():0:6:
+%53Lg: nan(09A_Zaz):1:13:nan:
+%*53Lg: nan(09A_Zaz):0:13:
+%53Lg: 0x0p0:1:6:0x0:
+%*53Lg: 0x0p0:0:6:
+%53Lg: 0x0p+0:1:7:0x0:
+%*53Lg: 0x0p+0:0:7:
+%53Lg: 0x8p-16385:1:11:0x1p-16382:
+%*53Lg: 0x8p-16385:0:11:
+%53Lg: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: 0x2.3456789abcdef0123456789abcdep012345:0:40:
+%53Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:40:
+%53Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:39:
+%53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40:
+%53Lg: infinity:1:9:inf:
+%*53Lg: infinity:0:9:
+%53Lg: +nan():1:7:nan:
+%*53Lg: +nan():0:7:
+%53Lg: +nan(09A_Zaz):1:14:nan:
+%*53Lg: +nan(09A_Zaz):0:14:
+%53Lg: +0x0p0:1:7:0x0:
+%*53Lg: +0x0p0:0:7:
+%53Lg: +0x0p+0:1:8:0x0:
+%*53Lg: +0x0p+0:0:8:
+%53Lg: +0x8p-16385:1:12:0x1p-16382:
+%*53Lg: +0x8p-16385:0:12:
+%53Lg: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: +0x2.3456789abcdef0123456789abcdep012345:0:41:
+%53Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:41:
+%53Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:40:
+%53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383:
+%*53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:41:
+%53Lg: +infinity:1:10:inf:
+%*53Lg: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input
new file mode 100644
index 0000000..e9020af
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input
@@ -0,0 +1,682 @@
+%LG::0:-1:
+%*LG::0:-1:
+%LG:-INFINITY:1:9:-inf:
+%*LG:-INFINITY:0:9:
+%LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%LG:-0X8P-16385:1:11:-0x1p-16382:
+%*LG:-0X8P-16385:0:11:
+%LG:-0X0P+0:1:7:-0x0:
+%*LG:-0X0P+0:0:7:
+%LG:-0X0P0:1:6:-0x0:
+%*LG:-0X0P0:0:6:
+%LG:-NAN(09A_Zaz):1:13:-nan:
+%*LG:-NAN(09A_Zaz):0:13:
+%LG:-NAN():1:6:-nan:
+%*LG:-NAN():0:6:
+%LG:NAN():1:5:nan:
+%*LG:NAN():0:5:
+%LG:NAN(09A_Zaz):1:12:nan:
+%*LG:NAN(09A_Zaz):0:12:
+%LG:0X0P0:1:5:0x0:
+%*LG:0X0P0:0:5:
+%LG:0X0P+0:1:6:0x0:
+%*LG:0X0P+0:0:6:
+%LG:0X8P-16385:1:10:0x1p-16382:
+%*LG:0X8P-16385:0:10:
+%LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39:
+%LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39:
+%LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38:
+%LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39:
+%LG:INFINITY:1:8:inf:
+%*LG:INFINITY:0:8:
+%LG:+NAN():1:6:nan:
+%*LG:+NAN():0:6:
+%LG:+NAN(09A_Zaz):1:13:nan:
+%*LG:+NAN(09A_Zaz):0:13:
+%LG:+0X0P0:1:6:0x0:
+%*LG:+0X0P0:0:6:
+%LG:+0X0P+0:1:7:0x0:
+%*LG:+0X0P+0:0:7:
+%LG:+0X8P-16385:1:11:0x1p-16382:
+%*LG:+0X8P-16385:0:11:
+%LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%LG:+INFINITY:1:9:inf:
+%*LG:+INFINITY:0:9:
+%1LG::0:-1:
+%*1LG::0:-1:
+%1LG:-INFINITY:0:-1:
+%*1LG:-INFINITY:0:-1:
+%1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%1LG:-0X8P-16385:0:-1:
+%*1LG:-0X8P-16385:0:-1:
+%1LG:-0X0P+0:0:-1:
+%*1LG:-0X0P+0:0:-1:
+%1LG:-0X0P0:0:-1:
+%*1LG:-0X0P0:0:-1:
+%1LG:-NAN(09A_Zaz):0:-1:
+%*1LG:-NAN(09A_Zaz):0:-1:
+%1LG:-NAN():0:-1:
+%*1LG:-NAN():0:-1:
+%1LG:NAN():0:-1:
+%*1LG:NAN():0:-1:
+%1LG:NAN(09A_Zaz):0:-1:
+%*1LG:NAN(09A_Zaz):0:-1:
+%1LG:0X0P0:1:1:0x0:
+%*1LG:0X0P0:0:1:
+%1LG:0X0P+0:1:1:0x0:
+%*1LG:0X0P+0:0:1:
+%1LG:0X8P-16385:1:1:0x0:
+%*1LG:0X8P-16385:0:1:
+%1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1:
+%1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1:
+%1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0:
+%*1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1:
+%1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0:
+%*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1:
+%1LG:INFINITY:0:-1:
+%*1LG:INFINITY:0:-1:
+%1LG:+NAN():0:-1:
+%*1LG:+NAN():0:-1:
+%1LG:+NAN(09A_Zaz):0:-1:
+%*1LG:+NAN(09A_Zaz):0:-1:
+%1LG:+0X0P0:0:-1:
+%*1LG:+0X0P0:0:-1:
+%1LG:+0X0P+0:0:-1:
+%*1LG:+0X0P+0:0:-1:
+%1LG:+0X8P-16385:0:-1:
+%*1LG:+0X8P-16385:0:-1:
+%1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%1LG:+INFINITY:0:-1:
+%*1LG:+INFINITY:0:-1:
+%2LG::0:-1:
+%*2LG::0:-1:
+%2LG:-INFINITY:0:-1:
+%*2LG:-INFINITY:0:-1:
+%2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0:
+%*2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2:
+%2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0:
+%*2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2:
+%2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2:
+%2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2:
+%2LG:-0X8P-16385:1:2:-0x0:
+%*2LG:-0X8P-16385:0:2:
+%2LG:-0X0P+0:1:2:-0x0:
+%*2LG:-0X0P+0:0:2:
+%2LG:-0X0P0:1:2:-0x0:
+%*2LG:-0X0P0:0:2:
+%2LG:-NAN(09A_Zaz):0:-1:
+%*2LG:-NAN(09A_Zaz):0:-1:
+%2LG:-NAN():0:-1:
+%*2LG:-NAN():0:-1:
+%2LG:NAN():0:-1:
+%*2LG:NAN():0:-1:
+%2LG:NAN(09A_Zaz):0:-1:
+%*2LG:NAN(09A_Zaz):0:-1:
+%2LG:0X0P0:0:-1:
+%*2LG:0X0P0:0:-1:
+%2LG:0X0P+0:0:-1:
+%*2LG:0X0P+0:0:-1:
+%2LG:0X8P-16385:0:-1:
+%*2LG:0X8P-16385:0:-1:
+%2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%2LG:INFINITY:0:-1:
+%*2LG:INFINITY:0:-1:
+%2LG:+NAN():0:-1:
+%*2LG:+NAN():0:-1:
+%2LG:+NAN(09A_Zaz):0:-1:
+%*2LG:+NAN(09A_Zaz):0:-1:
+%2LG:+0X0P0:1:2:0x0:
+%*2LG:+0X0P0:0:2:
+%2LG:+0X0P+0:1:2:0x0:
+%*2LG:+0X0P+0:0:2:
+%2LG:+0X8P-16385:1:2:0x0:
+%*2LG:+0X8P-16385:0:2:
+%2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2:
+%2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2:
+%2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0:
+%*2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2:
+%2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0:
+%*2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2:
+%2LG:+INFINITY:0:-1:
+%*2LG:+INFINITY:0:-1:
+%3LG::0:-1:
+%*3LG::0:-1:
+%3LG:-INFINITY:0:-1:
+%*3LG:-INFINITY:0:-1:
+%3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%3LG:-0X8P-16385:0:-1:
+%*3LG:-0X8P-16385:0:-1:
+%3LG:-0X0P+0:0:-1:
+%*3LG:-0X0P+0:0:-1:
+%3LG:-0X0P0:0:-1:
+%*3LG:-0X0P0:0:-1:
+%3LG:-NAN(09A_Zaz):0:-1:
+%*3LG:-NAN(09A_Zaz):0:-1:
+%3LG:-NAN():0:-1:
+%*3LG:-NAN():0:-1:
+%3LG:NAN():1:3:nan:
+%*3LG:NAN():0:3:
+%3LG:NAN(09A_Zaz):1:3:nan:
+%*3LG:NAN(09A_Zaz):0:3:
+%3LG:0X0P0:1:3:0x0:
+%*3LG:0X0P0:0:3:
+%3LG:0X0P+0:1:3:0x0:
+%*3LG:0X0P+0:0:3:
+%3LG:0X8P-16385:1:3:0x1p3:
+%*3LG:0X8P-16385:0:3:
+%3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3:
+%3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3:
+%3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2:
+%*3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3:
+%3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3:
+%*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3:
+%3LG:INFINITY:1:3:inf:
+%*3LG:INFINITY:0:3:
+%3LG:+NAN():0:-1:
+%*3LG:+NAN():0:-1:
+%3LG:+NAN(09A_Zaz):0:-1:
+%*3LG:+NAN(09A_Zaz):0:-1:
+%3LG:+0X0P0:0:-1:
+%*3LG:+0X0P0:0:-1:
+%3LG:+0X0P+0:0:-1:
+%*3LG:+0X0P+0:0:-1:
+%3LG:+0X8P-16385:0:-1:
+%*3LG:+0X8P-16385:0:-1:
+%3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%*3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1:
+%3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%*3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1:
+%3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%3LG:+INFINITY:0:-1:
+%*3LG:+INFINITY:0:-1:
+%4LG::0:-1:
+%*4LG::0:-1:
+%4LG:-INFINITY:1:4:-inf:
+%*4LG:-INFINITY:0:4:
+%4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3:
+%*4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2:
+%*4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LG:-0X8P-16385:1:4:-0x1p3:
+%*4LG:-0X8P-16385:0:4:
+%4LG:-0X0P+0:1:4:-0x0:
+%*4LG:-0X0P+0:0:4:
+%4LG:-0X0P0:1:4:-0x0:
+%*4LG:-0X0P0:0:4:
+%4LG:-NAN(09A_Zaz):1:4:-nan:
+%*4LG:-NAN(09A_Zaz):0:4:
+%4LG:-NAN():1:4:-nan:
+%*4LG:-NAN():0:4:
+%4LG:NAN():0:-1:
+%*4LG:NAN():0:-1:
+%4LG:NAN(09A_Zaz):0:-1:
+%*4LG:NAN(09A_Zaz):0:-1:
+%4LG:0X0P0:0:-1:
+%*4LG:0X0P0:0:-1:
+%4LG:0X0P+0:0:-1:
+%*4LG:0X0P+0:0:-1:
+%4LG:0X8P-16385:0:-1:
+%*4LG:0X8P-16385:0:-1:
+%4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2:
+%*4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3:
+%*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LG:INFINITY:0:-1:
+%*4LG:INFINITY:0:-1:
+%4LG:+NAN():1:4:nan:
+%*4LG:+NAN():0:4:
+%4LG:+NAN(09A_Zaz):1:4:nan:
+%*4LG:+NAN(09A_Zaz):0:4:
+%4LG:+0X0P0:1:4:0x0:
+%*4LG:+0X0P0:0:4:
+%4LG:+0X0P+0:1:4:0x0:
+%*4LG:+0X0P+0:0:4:
+%4LG:+0X8P-16385:1:4:0x1p3:
+%*4LG:+0X8P-16385:0:4:
+%4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4:
+%4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4:
+%4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2:
+%*4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4:
+%4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3:
+%*4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4:
+%4LG:+INFINITY:1:4:inf:
+%*4LG:+INFINITY:0:4:
+%5LG::0:-1:
+%*5LG::0:-1:
+%5LG:-INFINITY:0:-1:
+%*5LG:-INFINITY:0:-1:
+%5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3:
+%*5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2:
+%*5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LG:-0X8P-16385:0:-1:
+%*5LG:-0X8P-16385:0:-1:
+%5LG:-0X0P+0:0:-1:
+%*5LG:-0X0P+0:0:-1:
+%5LG:-0X0P0:0:-1:
+%*5LG:-0X0P0:0:-1:
+%5LG:-NAN(09A_Zaz):0:-1:
+%*5LG:-NAN(09A_Zaz):0:-1:
+%5LG:-NAN():0:-1:
+%*5LG:-NAN():0:-1:
+%5LG:NAN():1:5:nan:
+%*5LG:NAN():0:5:
+%5LG:NAN(09A_Zaz):0:-1:
+%*5LG:NAN(09A_Zaz):0:-1:
+%5LG:0X0P0:1:5:0x0:
+%*5LG:0X0P0:0:5:
+%5LG:0X0P+0:0:-1:
+%*5LG:0X0P+0:0:-1:
+%5LG:0X8P-16385:0:-1:
+%*5LG:0X8P-16385:0:-1:
+%5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2:
+%*5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3:
+%*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LG:INFINITY:0:-1:
+%*5LG:INFINITY:0:-1:
+%5LG:+NAN():0:-1:
+%*5LG:+NAN():0:-1:
+%5LG:+NAN(09A_Zaz):0:-1:
+%*5LG:+NAN(09A_Zaz):0:-1:
+%5LG:+0X0P0:0:-1:
+%*5LG:+0X0P0:0:-1:
+%5LG:+0X0P+0:0:-1:
+%*5LG:+0X0P+0:0:-1:
+%5LG:+0X8P-16385:0:-1:
+%*5LG:+0X8P-16385:0:-1:
+%5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5:
+%5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5:
+%5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2:
+%*5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5:
+%5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3:
+%*5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5:
+%5LG:+INFINITY:0:-1:
+%*5LG:+INFINITY:0:-1:
+%6LG::0:-1:
+%*6LG::0:-1:
+%6LG:-INFINITY:0:-1:
+%*6LG:-INFINITY:0:-1:
+%6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3:
+%*6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2:
+%*6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LG:-0X8P-16385:0:-1:
+%*6LG:-0X8P-16385:0:-1:
+%6LG:-0X0P+0:0:-1:
+%*6LG:-0X0P+0:0:-1:
+%6LG:-0X0P0:1:6:-0x0:
+%*6LG:-0X0P0:0:6:
+%6LG:-NAN(09A_Zaz):0:-1:
+%*6LG:-NAN(09A_Zaz):0:-1:
+%6LG:-NAN():1:6:-nan:
+%*6LG:-NAN():0:6:
+%6LG:NAN():1:5:nan:
+%*6LG:NAN():0:5:
+%6LG:NAN(09A_Zaz):0:-1:
+%*6LG:NAN(09A_Zaz):0:-1:
+%6LG:0X0P0:1:5:0x0:
+%*6LG:0X0P0:0:5:
+%6LG:0X0P+0:1:6:0x0:
+%*6LG:0X0P+0:0:6:
+%6LG:0X8P-16385:1:6:0x1p2:
+%*6LG:0X8P-16385:0:6:
+%6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2:
+%*6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3:
+%*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LG:INFINITY:0:-1:
+%*6LG:INFINITY:0:-1:
+%6LG:+NAN():1:6:nan:
+%*6LG:+NAN():0:6:
+%6LG:+NAN(09A_Zaz):0:-1:
+%*6LG:+NAN(09A_Zaz):0:-1:
+%6LG:+0X0P0:1:6:0x0:
+%*6LG:+0X0P0:0:6:
+%6LG:+0X0P+0:0:-1:
+%*6LG:+0X0P+0:0:-1:
+%6LG:+0X8P-16385:0:-1:
+%*6LG:+0X8P-16385:0:-1:
+%6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2:
+%*6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3:
+%*6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%6LG:+INFINITY:0:-1:
+%*6LG:+INFINITY:0:-1:
+%35LG::0:-1:
+%*35LG::0:-1:
+%35LG:-INFINITY:1:9:-inf:
+%*35LG:-INFINITY:0:9:
+%35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3:
+%*35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LG:-0X8P-16385:1:11:-0x1p-16382:
+%*35LG:-0X8P-16385:0:11:
+%35LG:-0X0P+0:1:7:-0x0:
+%*35LG:-0X0P+0:0:7:
+%35LG:-0X0P0:1:6:-0x0:
+%*35LG:-0X0P0:0:6:
+%35LG:-NAN(09A_Zaz):1:13:-nan:
+%*35LG:-NAN(09A_Zaz):0:13:
+%35LG:-NAN():1:6:-nan:
+%*35LG:-NAN():0:6:
+%35LG:NAN():1:5:nan:
+%*35LG:NAN():0:5:
+%35LG:NAN(09A_Zaz):1:12:nan:
+%*35LG:NAN(09A_Zaz):0:12:
+%35LG:0X0P0:1:5:0x0:
+%*35LG:0X0P0:0:5:
+%35LG:0X0P+0:1:6:0x0:
+%*35LG:0X0P+0:0:6:
+%35LG:0X8P-16385:1:10:0x1p-16382:
+%*35LG:0X8P-16385:0:10:
+%35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2:
+%*35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35:
+%35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18:
+%*35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4:
+%*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35:
+%35LG:INFINITY:1:8:inf:
+%*35LG:INFINITY:0:8:
+%35LG:+NAN():1:6:nan:
+%*35LG:+NAN():0:6:
+%35LG:+NAN(09A_Zaz):1:13:nan:
+%*35LG:+NAN(09A_Zaz):0:13:
+%35LG:+0X0P0:1:6:0x0:
+%*35LG:+0X0P0:0:6:
+%35LG:+0X0P+0:1:7:0x0:
+%*35LG:+0X0P+0:0:7:
+%35LG:+0X8P-16385:1:11:0x1p-16382:
+%*35LG:+0X8P-16385:0:11:
+%35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1:
+%*35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35:
+%35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%*35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1:
+%35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3:
+%*35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35:
+%35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%*35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1:
+%35LG:+INFINITY:1:9:inf:
+%*35LG:+INFINITY:0:9:
+%53LG::0:-1:
+%*53LG::0:-1:
+%53LG:-INFINITY:1:9:-inf:
+%*53LG:-INFINITY:0:9:
+%53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LG:-0X8P-16385:1:11:-0x1p-16382:
+%*53LG:-0X8P-16385:0:11:
+%53LG:-0X0P+0:1:7:-0x0:
+%*53LG:-0X0P+0:0:7:
+%53LG:-0X0P0:1:6:-0x0:
+%*53LG:-0X0P0:0:6:
+%53LG:-NAN(09A_Zaz):1:13:-nan:
+%*53LG:-NAN(09A_Zaz):0:13:
+%53LG:-NAN():1:6:-nan:
+%*53LG:-NAN():0:6:
+%53LG:NAN():1:5:nan:
+%*53LG:NAN():0:5:
+%53LG:NAN(09A_Zaz):1:12:nan:
+%*53LG:NAN(09A_Zaz):0:12:
+%53LG:0X0P0:1:5:0x0:
+%*53LG:0X0P0:0:5:
+%53LG:0X0P+0:1:6:0x0:
+%*53LG:0X0P+0:0:6:
+%53LG:0X8P-16385:1:10:0x1p-16382:
+%*53LG:0X8P-16385:0:10:
+%53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39:
+%53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39:
+%53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38:
+%53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39:
+%53LG:INFINITY:1:8:inf:
+%*53LG:INFINITY:0:8:
+%53LG:+NAN():1:6:nan:
+%*53LG:+NAN():0:6:
+%53LG:+NAN(09A_Zaz):1:13:nan:
+%*53LG:+NAN(09A_Zaz):0:13:
+%53LG:+0X0P0:1:6:0x0:
+%*53LG:+0X0P0:0:6:
+%53LG:+0X0P+0:1:7:0x0:
+%*53LG:+0X0P+0:0:7:
+%53LG:+0X8P-16385:1:11:0x1p-16382:
+%*53LG:+0X8P-16385:0:11:
+%53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LG:+INFINITY:1:9:inf:
+%*53LG:+INFINITY:0:9:
+%5LG: :0:-1:
+%*5LG: :0:-1:
+%5LG: -INFINITY:0:-1:
+%*5LG: -INFINITY:0:-1:
+%5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3:
+%*5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2:
+%*5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LG: -0X8P-16385:0:-1:
+%*5LG: -0X8P-16385:0:-1:
+%5LG: -0X0P+0:0:-1:
+%*5LG: -0X0P+0:0:-1:
+%5LG: -0X0P0:0:-1:
+%*5LG: -0X0P0:0:-1:
+%5LG: -NAN(09A_Zaz):0:-1:
+%*5LG: -NAN(09A_Zaz):0:-1:
+%5LG: -NAN():0:-1:
+%*5LG: -NAN():0:-1:
+%5LG: NAN():1:6:nan:
+%*5LG: NAN():0:6:
+%5LG: NAN(09A_Zaz):0:-1:
+%*5LG: NAN(09A_Zaz):0:-1:
+%5LG: 0X0P0:1:6:0x0:
+%*5LG: 0X0P0:0:6:
+%5LG: 0X0P+0:0:-1:
+%*5LG: 0X0P+0:0:-1:
+%5LG: 0X8P-16385:0:-1:
+%*5LG: 0X8P-16385:0:-1:
+%5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2:
+%*5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3:
+%*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LG: INFINITY:0:-1:
+%*5LG: INFINITY:0:-1:
+%5LG: +NAN():0:-1:
+%*5LG: +NAN():0:-1:
+%5LG: +NAN(09A_Zaz):0:-1:
+%*5LG: +NAN(09A_Zaz):0:-1:
+%5LG: +0X0P0:0:-1:
+%*5LG: +0X0P0:0:-1:
+%5LG: +0X0P+0:0:-1:
+%*5LG: +0X0P+0:0:-1:
+%5LG: +0X8P-16385:0:-1:
+%*5LG: +0X8P-16385:0:-1:
+%5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6:
+%5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6:
+%5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2:
+%*5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6:
+%5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3:
+%*5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6:
+%5LG: +INFINITY:0:-1:
+%*5LG: +INFINITY:0:-1:
+%53LG: :0:-1:
+%*53LG: :0:-1:
+%53LG: -INFINITY:1:10:-inf:
+%*53LG: -INFINITY:0:10:
+%53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41:
+%53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40:
+%53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41:
+%53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41:
+%53LG: -0X8P-16385:1:12:-0x1p-16382:
+%*53LG: -0X8P-16385:0:12:
+%53LG: -0X0P+0:1:8:-0x0:
+%*53LG: -0X0P+0:0:8:
+%53LG: -0X0P0:1:7:-0x0:
+%*53LG: -0X0P0:0:7:
+%53LG: -NAN(09A_Zaz):1:14:-nan:
+%*53LG: -NAN(09A_Zaz):0:14:
+%53LG: -NAN():1:7:-nan:
+%*53LG: -NAN():0:7:
+%53LG: NAN():1:6:nan:
+%*53LG: NAN():0:6:
+%53LG: NAN(09A_Zaz):1:13:nan:
+%*53LG: NAN(09A_Zaz):0:13:
+%53LG: 0X0P0:1:6:0x0:
+%*53LG: 0X0P0:0:6:
+%53LG: 0X0P+0:1:7:0x0:
+%*53LG: 0X0P+0:0:7:
+%53LG: 0X8P-16385:1:11:0x1p-16382:
+%*53LG: 0X8P-16385:0:11:
+%53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40:
+%53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40:
+%53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39:
+%53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40:
+%53LG: INFINITY:1:9:inf:
+%*53LG: INFINITY:0:9:
+%53LG: +NAN():1:7:nan:
+%*53LG: +NAN():0:7:
+%53LG: +NAN(09A_Zaz):1:14:nan:
+%*53LG: +NAN(09A_Zaz):0:14:
+%53LG: +0X0P0:1:7:0x0:
+%*53LG: +0X0P0:0:7:
+%53LG: +0X0P+0:1:8:0x0:
+%*53LG: +0X0P+0:0:8:
+%53LG: +0X8P-16385:1:12:0x1p-16382:
+%*53LG: +0X8P-16385:0:12:
+%53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41:
+%53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346:
+%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41:
+%53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40:
+%53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383:
+%*53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41:
+%53LG: +INFINITY:1:10:inf:
+%*53LG: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128/x2y2m1l.c b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
index 80cf99c7..a0c0070 100644
--- a/sysdeps/ieee754/ldbl-128/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
index 910c019..ef3df9d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
@@ -78,6 +78,55 @@ CFLAGS-vfwprintf-internal.c += -mfloat128 -mabi=ibmlongdouble
CFLAGS-vfscanf-internal.c += -mfloat128 -mabi=ibmlongdouble
CFLAGS-vfwscanf-internal.c += -mfloat128 -mabi=ibmlongdouble
+ifeq ($(subdir),stdio-common)
+# We already have the long double conversion defined with our common rules
+# for the IBM format, so define these special rules to build and run extra
+# executables for the IEEE binary128 format, reusing the same sources and
+# inputs.
+define tst-scanf-format-128ibm-compat-tests
+test-srcs += \
+ tst-scanf-format-$(1)-ldouble-128ibm-compat \
+ # test-srcs
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat.o: \
+ tst-scanf-format-$(1)-ldouble.c $$(before-compile)
+ $$(compile-command.c)
+$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat: $$(libm)
+endef
+$(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-128ibm-compat-tests,$(p))))
+
+ifeq ($(run-built-tests),yes)
+define tst-scanf-format-128ibm-compat-rule
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out \
+ # tests-special
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out: \
+ ../sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-$(2).input \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat
+ $$(make-tst-scanf-format-out) > $$@ < $$<; \
+ $$(evaluate-test)
+
+ifeq (yes,$(build-shared))
+ifneq ($(PERL),no)
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \
+ # tests-special
+
+generated += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).mtrace \
+ # generated
+endif
+endif
+endef
+$(foreach f,$(fmts-xscanf-real), \
+ $(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-128ibm-compat-rule,$(p),$(f)))))
+endif # $(run-built-tests) == yes
+endif # $(subdir) == stdio-common
+
# Basic tests for the implementation of long double with IEEE binary128
# format and for the related redirections in installed headers.
tests-internal += test-printf-ieee128 test-printf-ibm128
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
index bd73016..ae4bd5b 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
@@ -144,6 +144,22 @@ libm {
__log10p1ieee128;
__logp1ieee128;
}
+ GLIBC_2.41 {
+ __acospiieee128;
+ __asinpiieee128;
+ __atan2piieee128;
+ __atanpiieee128;
+ __cospiieee128;
+ __sinpiieee128;
+ __tanpiieee128;
+ }
+ GLIBC_2.42 {
+ __compoundnieee128;
+ __pownieee128;
+ __powrieee128;
+ __rootnieee128;
+ __rsqrtieee128;
+ }
}
libc {
LDBL_IBM128_VERSION {
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h b/sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h
index c104d29..7547f99 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-opt version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c
index 3fab4a0..2d5b9c7 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c
@@ -1,5 +1,5 @@
/* Multiply _Float128 by integral power of 2
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c
index 40b4456..c9117a4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c
@@ -1,5 +1,5 @@
/* Wrapper for argp_error and argp_failure. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
index e83556d..12775e7 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for asprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
index f000f8f..ac0766d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __asprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
index 239a9bb..e78def0 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for dprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
index d618718..fc36a4c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __dprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c
index 878f572..3b26403 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c
@@ -1,5 +1,5 @@
/* Wrappers for err.h functions. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c
index 3f2489c..4ca8367 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c
@@ -1,5 +1,5 @@
/* Wrappers for error.h functions. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
index 9411556..f9a5213 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for fprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
index eb976d9..8c8127c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __fprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c
index 596ddcd..aadb47f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for fscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
index d56faaa..7608316 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for fwprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
index ecf8f0a..2cad460 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __fwprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c
index f6e4846..5669b24 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for fwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fscanf.c
index 92596b7..94dcf85 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_fscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fwscanf.c
index c022e06..551b1ed 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_fwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_fwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_scanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_scanf.c
index 063240f..07c5173 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_scanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_scanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_scanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_sscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_sscanf.c
index 5c0fdc7..b42be1d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_sscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_sscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_sscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_swscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_swscanf.c
index 54ffd73..3d7ab5d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_swscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_swscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_swscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfscanf.c
index baf6e17..2e77977 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vfscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfwscanf.c
index 5f62625..001f0c8 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vfwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vfwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vscanf.c
index ab93d43..06e5548 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vsscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vsscanf.c
index 967b6799..d2225ce 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vsscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vsscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vsscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vswscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vswscanf.c
index 8c4ae1d..5ea21a1 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vswscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vswscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vswscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vwscanf.c
index b3f4eea..5a30633 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_vwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_vwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_wscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_wscanf.c
index ece151d..da510c2 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_wscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc23_wscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc23_wscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
index a9a650e..bf91f9f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_fscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
index d5371a7..95975e8 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_fwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
index a3ce952..4bcbb3f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_scanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
index 318d08b..834e28e 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_sscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
index 9d53999..f8e7970 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_swscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
index 3c946b3..4cd901e 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vfscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
index 8702e5f..51afe13 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vfwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
index faf42f0..1eb303b 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
index 6cc94c8..68592d8 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vsscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
index f6f8aa5..5ce8580 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vswscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
index 4dc000b..920094d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_vwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
index 8b21165..0ef464f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for __isoc99_wscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c
index 2cf4db4..2d455de 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for obstack_vprintf and obstack_printf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c
index 49b0c44..037b1d1 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __obstack_printf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
index b6f42b7..7b1640c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
@@ -1,5 +1,5 @@
/* Wrapper for printf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
index ad6dca7..d1210f2 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __printf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
index d25863e..81ebe10 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
@@ -1,5 +1,5 @@
/* Wrapper for printf_size. IEEE128 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c
index 4236035..9787839 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c
@@ -1,5 +1,5 @@
/* IEEE binary128 versions of *cvt functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c
index 9cc1dd8..6208ec0 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c
@@ -1,5 +1,5 @@
/* IEEE binary128 versions of reentrant *cvt_r functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c
index 849998c..ec2c03a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c
@@ -1,5 +1,5 @@
/* Wrapper for scanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
index 80ca498..d458da7 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for snprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
index d5bd6aa..eaabd66 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __snprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
index 8932029..0065186 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for sprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
index 9ccf85c..ae35ac7 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __sprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c
index ea301bb..dec6104 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for sscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c
index d5dcf30..46d02cd 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c
@@ -1,5 +1,5 @@
/* Wrapper for strfmon. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c
index f9ca8dd..339424d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c
@@ -1,5 +1,5 @@
/* Wrapper for strfmon_l. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
index 71abeaa..4bdc480 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for swprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
index 607dfca..1795406 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __swprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c
index a659623..8b106fe 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for swscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c
index 187e861..197b149 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c
@@ -1,5 +1,5 @@
/* Wrapper for syslog. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
index 50ecb95..3673a41 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vasprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
index 13b8a13..8b4dea0 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vasprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
index c35a423..4fca28f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vdprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
index 7a391c6..bba2f03 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vdprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
index 1211ccb..8055a72 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vfprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
index f64e32f..9ece216 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vfprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c
index e91091c..bdb537c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vfscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
index dd34b45..6bddd8c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vfwprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
index 8b2166e..a7a8878 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vfwprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c
index a7a1a37..dd03c97 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vfwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c
index b80aee1..cc2bcd1 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __obstack_vprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
index 32403c3..a4748c0 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
index fb78d66..d4a692f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c
index 260bb0e..27a6c5b 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
index 7573236..8f23450 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vsnprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
index 9d434b8..c6c668d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vsnprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
index 087e323..8b30d5d 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vsprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
index a5946a3..33a9cfb 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vsprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c
index 0ad3173..3e4d92a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vsscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
index 047f44f..8a1458a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vswprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
index 132fe6b..3c00363 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vswprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c
index b3b1907..7efc0e5 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vswscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
index 127c66e..0e38aba 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for vwprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
index d047789..c377b73 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __vwprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c
index 3f88773..1fb7db3 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for vwscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
index 1d2bcee..cbbc1f4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
@@ -1,5 +1,5 @@
/* Wrapper for wprintf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
index 016d6d0..3f9180c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
@@ -1,5 +1,5 @@
/* Wrapper for __wprintf_chk. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c
index 4ee9518..1792c20 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c
@@ -1,5 +1,5 @@
/* Wrapper for wscanf. IEEE128 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h b/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
index 13fd07b..4ab56d2 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
@@ -1,5 +1,5 @@
/* Define aliases for libm _Float128 functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h b/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
index 8f9f2e5..8b635fc 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
@@ -1,5 +1,5 @@
/* Helper macros for functions returning a narrower type. F128-specific.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/math_ldbl.h b/sysdeps/ieee754/ldbl-128ibm-compat/math_ldbl.h
index 2828473..bb2193c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/s_nextafterf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/s_nextafterf128.c
index ed47f2e..5001da4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/s_nextafterf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/s_nextafterf128.c
@@ -1,5 +1,5 @@
/* Provide nexttowardl and nextafterl implementations for IEEE long double.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/s_nexttowardf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/s_nexttowardf128.c
index 422f341..d938908 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/s_nexttowardf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/s_nexttowardf128.c
@@ -1,5 +1,5 @@
/* Provide nexttoward[|f] implementations for IEEE long double.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/s_significandf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/s_significandf128.c
index 2d4ab9d..cb60873 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/s_significandf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/s_significandf128.c
@@ -1,5 +1,5 @@
/* Get mantissa of long double.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/set-freeres-fp.h b/sysdeps/ieee754/ldbl-128ibm-compat/set-freeres-fp.h
index 8dba2bf..2f3336f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/set-freeres-fp.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/set-freeres-fp.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. IBM long double 128 version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
index 474f66f..bcc1551 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
@@ -1,6 +1,6 @@
/* Definitions for strfromf128.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
index c06bd88..456637e 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
@@ -1,5 +1,5 @@
/* Definition of strtof128.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
index f94e8de..2d0a40a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c
index 58d156e..03d9de4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of obstrack*printf functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
index fcb5fc9..6f6e42f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *printf_chk functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
index 6a5f94f..0bd40c3 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *printf functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
index 9161a07..a1f9c68 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *scanf functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh
index 81a8667..37eb3c4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing of *scanf. IEEE binary128 for powerpc64le version.
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c
index bc6bcb7..3c02f9e 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of strfmon* functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c
index bc326e0..ac4bb47 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of strfroml and strtold.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c
index 5e8ddb6..03b5d98 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *syslog* functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c
index 4f31458..3f87570 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variant of wcstold.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
index 1808ba1..007c5e8 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *w*printf_chk functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
index d909257..bc85b68 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
@@ -1,5 +1,5 @@
/* Test for the long double variants of *w*printf functions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c
index ddc7a0e..c6d84c4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c
@@ -1,5 +1,5 @@
/* Multiply _Float128 by integral power of 2
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
index d8b0f26..8707f8f 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
@@ -1,5 +1,5 @@
/* Definition of wcstof128.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
index 468a9d2..ba1409c 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/Makefile b/sysdeps/ieee754/ldbl-128ibm/Makefile
index c38d4f6..4dfe440 100644
--- a/sysdeps/ieee754/ldbl-128ibm/Makefile
+++ b/sysdeps/ieee754/ldbl-128ibm/Makefile
@@ -17,6 +17,16 @@ ifeq ($(subdir),math)
tests += $(ldbl-tests)
endif
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-real-convs += ldouble
+
+# Use the IBM format for long double scanf format tests.
+$(foreach suf,$(all-object-suffixes), \
+ $(foreach p,$(xscanf-funcs), \
+ $(objpfx)tst-scanf-format-$(p)-ldouble$(suf))): \
+ sysdep-CFLAGS += $(type-ldouble-CFLAGS)
+endif
+
# Long double files may need extra CFLAGS.
ldbl-128ibm-routines = s_nexttoward s_nexttowardf \
$(type-ldouble-routines) \
diff --git a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
index a7cad22..88a8a2a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
@@ -1,5 +1,5 @@
/* Define iscanonical macro. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
index 90c9adf..fbc7d71 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_expl.c b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
index 02087ed..de88e73 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point e^x.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
index 5fa69f0..d3fca87 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
index 0e67112..d65d94b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point argument reduction.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c b/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
index 79e231a..ec8896b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
index c4b75c7..1a7b8be 100644
--- a/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/ieee754.h b/sysdeps/ieee754/ldbl-128ibm/ieee754.h
index 04eb389..6229859 100644
--- a/sysdeps/ieee754/ldbl-128ibm/ieee754.h
+++ b/sysdeps/ieee754/ldbl-128ibm/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_cosl.c b/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
index 571ef47..5100169 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
index 83f7b1e..7ddb393 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
index 8a84cb4..2868b97 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
index 9c1a34f..795d7b4 100644
--- a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c b/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
index 0f4c1c7..8167197 100644
--- a/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c b/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
index 95b99d4..246f6f2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
index 792e0e3..2d30e5c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling or ldbl-128ibm.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
index e85a943..9793d5c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c b/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
index 14777f1..85aabb6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c b/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
index 85344bc..daf1b05 100644
--- a/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
index 74c935f..b7ec46b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
@@ -1,6 +1,6 @@
/* Ceil (round to +inf) long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_daddl.c b/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
index 3c1e01b..22c96c8 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c b/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
index 4704b75..dc0db80 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dfmal.c b/sysdeps/ieee754/ldbl-128ibm/s_dfmal.c
index ce9b37c..8d90555 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dfmal.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dfmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128ibm) value, narrowing the result
to double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dmull.c b/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
index 2a94474..da1f038 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c
index 3665c11..dbac77c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c
@@ -1,6 +1,6 @@
/* Square root of long double (ldbl-128ibm) value, narrowing the result to
double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c b/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
index d417ec3..48524c8 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c b/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_faddl.c b/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
index 77383e9..229efd3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c b/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
index 53e0f55..c53dc8b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ffmal.c b/sysdeps/ieee754/ldbl-128ibm/s_ffmal.c
index 7597345..20de556 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ffmal.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ffmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128ibm) value, narrowing the result
to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
index 13530ed..b705c34 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
index 54ea7a4..7485896 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fmull.c b/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
index c6b5b9c..dce630c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
index d5488c9..b439dd2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
index 09e6014..8c51f47 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c
index afa6cfa..e09286a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c
@@ -1,6 +1,6 @@
/* Square root of long double (ldbl-128ibm) value, narrowing the result to
float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c b/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
index d82da64..52a3a1a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
index d9c3672..84f91dc 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c b/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
index 6849aa6..5930aad 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
@@ -1,5 +1,5 @@
/* Test whether long double value is canonical. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
index 72ea5e4..f180ca4 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c b/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
index 4c795a4..efc9255 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round to long long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c b/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
index 41bc8d5..a48b34c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
@@ -1,6 +1,6 @@
/* Round to long long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c b/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
index 5bbfe8d..e5ee3fe 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round to long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c b/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
index 4a894fc..c357bb0 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
@@ -1,6 +1,6 @@
/* Round to long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
index 46f8f82..5fd8dbd 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values without raising inexact.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c b/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
index 1ef56b9..0ec26c3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
index ca929b4..a0e6b42 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
index 5d15fcd..fbc5b6f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
index 9daa387..e509011 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
index 430ef42..4668aa2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
index 10e6855..bff6c34 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
index 96d6139..d4042ed 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
index ae0ef9e..fed559f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
index e428e0a..cdd5c30 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
index 071bfe7..2278a9a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-128ibm version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
index 28b3dea..5fddffc 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
@@ -1,6 +1,6 @@
/* Truncate (toward zero) long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
index 747a659..a840ee1 100644
--- a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/t_expl.h b/sysdeps/ieee754/ldbl-128ibm/t_expl.h
index 4ce8268..da3a981 100644
--- a/sysdeps/ieee754/ldbl-128ibm/t_expl.h
+++ b/sysdeps/ieee754/ldbl-128ibm/t_expl.h
@@ -1,5 +1,5 @@
/* Accurate table for expl().
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
index eed9173..6efc47f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine tables.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
index d6b5bb3..6b6cded 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test iscanonical and canonicalizel for ldbl-128ibm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
index 7f2b84c..619a866 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm fmodl handling of equal values (bug 19602).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
index 690ab03..151a839 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm fmodl etc. handling of equal values.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
index f290d82..85b16d1 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm remainderl handling of equal values (bug 19677).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
index 7b90124..0206dec 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm remquol handling of equal values (bug 19677).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
index 20e7f81..fba2ced 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test totalorderl and totalordermagl for ldbl-128ibm.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input
new file mode 100644
index 0000000..6f3b84b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input
@@ -0,0 +1,682 @@
+%La::0:-1:
+%*La::0:-1:
+%La:-infinity:1:9:-inf:
+%*La:-infinity:0:9:
+%La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:-0x7.ffffffffffffdffffffffffffep1021:0:36:
+%La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:-0x2.3456789abcdef0123456789abcp+123:0:36:
+%La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:-0x2.3456789abcdef0123456789abcp0123:0:36:
+%La:-0x8p-972:1:9:-0x1p-969:
+%*La:-0x8p-972:0:9:
+%La:-0x0p+0:1:7:-0x0:
+%*La:-0x0p+0:0:7:
+%La:-0x0p0:1:6:-0x0:
+%*La:-0x0p0:0:6:
+%La:-nan(09A_Zaz):1:13:-nan:
+%*La:-nan(09A_Zaz):0:13:
+%La:-nan():1:6:-nan:
+%*La:-nan():0:6:
+%La:nan():1:5:nan:
+%*La:nan():0:5:
+%La:nan(09A_Zaz):1:12:nan:
+%*La:nan(09A_Zaz):0:12:
+%La:0x0p0:1:5:0x0:
+%*La:0x0p0:0:5:
+%La:0x0p+0:1:6:0x0:
+%*La:0x0p+0:0:6:
+%La:0x8p-972:1:8:0x1p-969:
+%*La:0x8p-972:0:8:
+%La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:0x2.3456789abcdef0123456789abcp0123:0:35:
+%La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:0x2.3456789abcdef0123456789abcp+123:0:35:
+%La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:0x7.ffffffffffffdffffffffffffep1021:0:35:
+%La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36:
+%La:infinity:1:8:inf:
+%*La:infinity:0:8:
+%La:+nan():1:6:nan:
+%*La:+nan():0:6:
+%La:+nan(09A_Zaz):1:13:nan:
+%*La:+nan(09A_Zaz):0:13:
+%La:+0x0p0:1:6:0x0:
+%*La:+0x0p0:0:6:
+%La:+0x0p+0:1:7:0x0:
+%*La:+0x0p+0:0:7:
+%La:+0x8p-972:1:9:0x1p-969:
+%*La:+0x8p-972:0:9:
+%La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:+0x2.3456789abcdef0123456789abcp0123:0:36:
+%La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*La:+0x2.3456789abcdef0123456789abcp+123:0:36:
+%La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:+0x7.ffffffffffffdffffffffffffep1021:0:36:
+%La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%La:+infinity:1:9:inf:
+%*La:+infinity:0:9:
+%1La::0:-1:
+%*1La::0:-1:
+%1La:-infinity:0:-1:
+%*1La:-infinity:0:-1:
+%1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%1La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*1La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%1La:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*1La:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%1La:-0x8p-972:0:-1:
+%*1La:-0x8p-972:0:-1:
+%1La:-0x0p+0:0:-1:
+%*1La:-0x0p+0:0:-1:
+%1La:-0x0p0:0:-1:
+%*1La:-0x0p0:0:-1:
+%1La:-nan(09A_Zaz):0:-1:
+%*1La:-nan(09A_Zaz):0:-1:
+%1La:-nan():0:-1:
+%*1La:-nan():0:-1:
+%1La:nan():0:-1:
+%*1La:nan():0:-1:
+%1La:nan(09A_Zaz):0:-1:
+%*1La:nan(09A_Zaz):0:-1:
+%1La:0x0p0:1:1:0x0:
+%*1La:0x0p0:0:1:
+%1La:0x0p+0:1:1:0x0:
+%*1La:0x0p+0:0:1:
+%1La:0x8p-972:1:1:0x0:
+%*1La:0x8p-972:0:1:
+%1La:0x2.3456789abcdef0123456789abcp0123:1:1:0x0:
+%*1La:0x2.3456789abcdef0123456789abcp0123:0:1:
+%1La:0x2.3456789abcdef0123456789abcp+123:1:1:0x0:
+%*1La:0x2.3456789abcdef0123456789abcp+123:0:1:
+%1La:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0:
+%*1La:0x7.ffffffffffffdffffffffffffep1021:0:1:
+%1La:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0:
+%*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1:
+%1La:infinity:0:-1:
+%*1La:infinity:0:-1:
+%1La:+nan():0:-1:
+%*1La:+nan():0:-1:
+%1La:+nan(09A_Zaz):0:-1:
+%*1La:+nan(09A_Zaz):0:-1:
+%1La:+0x0p0:0:-1:
+%*1La:+0x0p0:0:-1:
+%1La:+0x0p+0:0:-1:
+%*1La:+0x0p+0:0:-1:
+%1La:+0x8p-972:0:-1:
+%*1La:+0x8p-972:0:-1:
+%1La:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*1La:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%1La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*1La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%1La:+infinity:0:-1:
+%*1La:+infinity:0:-1:
+%2La::0:-1:
+%*2La::0:-1:
+%2La:-infinity:0:-1:
+%*2La:-infinity:0:-1:
+%2La:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0:
+%*2La:-0xf.ffffffffffffbffffffffffffcp+1020:0:2:
+%2La:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0:
+%*2La:-0x7.ffffffffffffdffffffffffffep1021:0:2:
+%2La:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0:
+%*2La:-0x2.3456789abcdef0123456789abcp+123:0:2:
+%2La:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0:
+%*2La:-0x2.3456789abcdef0123456789abcp0123:0:2:
+%2La:-0x8p-972:1:2:-0x0:
+%*2La:-0x8p-972:0:2:
+%2La:-0x0p+0:1:2:-0x0:
+%*2La:-0x0p+0:0:2:
+%2La:-0x0p0:1:2:-0x0:
+%*2La:-0x0p0:0:2:
+%2La:-nan(09A_Zaz):0:-1:
+%*2La:-nan(09A_Zaz):0:-1:
+%2La:-nan():0:-1:
+%*2La:-nan():0:-1:
+%2La:nan():0:-1:
+%*2La:nan():0:-1:
+%2La:nan(09A_Zaz):0:-1:
+%*2La:nan(09A_Zaz):0:-1:
+%2La:0x0p0:0:-1:
+%*2La:0x0p0:0:-1:
+%2La:0x0p+0:0:-1:
+%*2La:0x0p+0:0:-1:
+%2La:0x8p-972:0:-1:
+%*2La:0x8p-972:0:-1:
+%2La:0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*2La:0x2.3456789abcdef0123456789abcp0123:0:-1:
+%2La:0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*2La:0x2.3456789abcdef0123456789abcp+123:0:-1:
+%2La:0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*2La:0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%2La:infinity:0:-1:
+%*2La:infinity:0:-1:
+%2La:+nan():0:-1:
+%*2La:+nan():0:-1:
+%2La:+nan(09A_Zaz):0:-1:
+%*2La:+nan(09A_Zaz):0:-1:
+%2La:+0x0p0:1:2:0x0:
+%*2La:+0x0p0:0:2:
+%2La:+0x0p+0:1:2:0x0:
+%*2La:+0x0p+0:0:2:
+%2La:+0x8p-972:1:2:0x0:
+%*2La:+0x8p-972:0:2:
+%2La:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0:
+%*2La:+0x2.3456789abcdef0123456789abcp0123:0:2:
+%2La:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0:
+%*2La:+0x2.3456789abcdef0123456789abcp+123:0:2:
+%2La:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0:
+%*2La:+0x7.ffffffffffffdffffffffffffep1021:0:2:
+%2La:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0:
+%*2La:+0xf.ffffffffffffbffffffffffffcp+1020:0:2:
+%2La:+infinity:0:-1:
+%*2La:+infinity:0:-1:
+%3La::0:-1:
+%*3La::0:-1:
+%3La:-infinity:0:-1:
+%*3La:-infinity:0:-1:
+%3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%3La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*3La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%3La:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*3La:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%3La:-0x8p-972:0:-1:
+%*3La:-0x8p-972:0:-1:
+%3La:-0x0p+0:0:-1:
+%*3La:-0x0p+0:0:-1:
+%3La:-0x0p0:0:-1:
+%*3La:-0x0p0:0:-1:
+%3La:-nan(09A_Zaz):0:-1:
+%*3La:-nan(09A_Zaz):0:-1:
+%3La:-nan():0:-1:
+%*3La:-nan():0:-1:
+%3La:nan():1:3:nan:
+%*3La:nan():0:3:
+%3La:nan(09A_Zaz):1:3:nan:
+%*3La:nan(09A_Zaz):0:3:
+%3La:0x0p0:1:3:0x0:
+%*3La:0x0p0:0:3:
+%3La:0x0p+0:1:3:0x0:
+%*3La:0x0p+0:0:3:
+%3La:0x8p-972:1:3:0x1p3:
+%*3La:0x8p-972:0:3:
+%3La:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1:
+%*3La:0x2.3456789abcdef0123456789abcp0123:0:3:
+%3La:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1:
+%*3La:0x2.3456789abcdef0123456789abcp+123:0:3:
+%3La:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2:
+%*3La:0x7.ffffffffffffdffffffffffffep1021:0:3:
+%3La:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3:
+%*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3:
+%3La:infinity:1:3:inf:
+%*3La:infinity:0:3:
+%3La:+nan():0:-1:
+%*3La:+nan():0:-1:
+%3La:+nan(09A_Zaz):0:-1:
+%*3La:+nan(09A_Zaz):0:-1:
+%3La:+0x0p0:0:-1:
+%*3La:+0x0p0:0:-1:
+%3La:+0x0p+0:0:-1:
+%*3La:+0x0p+0:0:-1:
+%3La:+0x8p-972:0:-1:
+%*3La:+0x8p-972:0:-1:
+%3La:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*3La:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%3La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*3La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%3La:+infinity:0:-1:
+%*3La:+infinity:0:-1:
+%4La::0:-1:
+%*4La::0:-1:
+%4La:-infinity:1:4:-inf:
+%*4La:-infinity:0:4:
+%4La:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3:
+%*4La:-0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4La:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2:
+%*4La:-0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4La:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef0123456789abcp+123:0:4:
+%4La:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef0123456789abcp0123:0:4:
+%4La:-0x8p-972:1:4:-0x1p3:
+%*4La:-0x8p-972:0:4:
+%4La:-0x0p+0:1:4:-0x0:
+%*4La:-0x0p+0:0:4:
+%4La:-0x0p0:1:4:-0x0:
+%*4La:-0x0p0:0:4:
+%4La:-nan(09A_Zaz):1:4:-nan:
+%*4La:-nan(09A_Zaz):0:4:
+%4La:-nan():1:4:-nan:
+%*4La:-nan():0:4:
+%4La:nan():0:-1:
+%*4La:nan():0:-1:
+%4La:nan(09A_Zaz):0:-1:
+%*4La:nan(09A_Zaz):0:-1:
+%4La:0x0p0:0:-1:
+%*4La:0x0p0:0:-1:
+%4La:0x0p+0:0:-1:
+%*4La:0x0p+0:0:-1:
+%4La:0x8p-972:0:-1:
+%*4La:0x8p-972:0:-1:
+%4La:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1:
+%*4La:0x2.3456789abcdef0123456789abcp0123:0:4:
+%4La:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1:
+%*4La:0x2.3456789abcdef0123456789abcp+123:0:4:
+%4La:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2:
+%*4La:0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4La:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3:
+%*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4La:infinity:0:-1:
+%*4La:infinity:0:-1:
+%4La:+nan():1:4:nan:
+%*4La:+nan():0:4:
+%4La:+nan(09A_Zaz):1:4:nan:
+%*4La:+nan(09A_Zaz):0:4:
+%4La:+0x0p0:1:4:0x0:
+%*4La:+0x0p0:0:4:
+%4La:+0x0p+0:1:4:0x0:
+%*4La:+0x0p+0:0:4:
+%4La:+0x8p-972:1:4:0x1p3:
+%*4La:+0x8p-972:0:4:
+%4La:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef0123456789abcp0123:0:4:
+%4La:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef0123456789abcp+123:0:4:
+%4La:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2:
+%*4La:+0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4La:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3:
+%*4La:+0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4La:+infinity:1:4:inf:
+%*4La:+infinity:0:4:
+%5La::0:-1:
+%*5La::0:-1:
+%5La:-infinity:0:-1:
+%*5La:-infinity:0:-1:
+%5La:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3:
+%*5La:-0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5La:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2:
+%*5La:-0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5La:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef0123456789abcp+123:0:5:
+%5La:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef0123456789abcp0123:0:5:
+%5La:-0x8p-972:0:-1:
+%*5La:-0x8p-972:0:-1:
+%5La:-0x0p+0:0:-1:
+%*5La:-0x0p+0:0:-1:
+%5La:-0x0p0:0:-1:
+%*5La:-0x0p0:0:-1:
+%5La:-nan(09A_Zaz):0:-1:
+%*5La:-nan(09A_Zaz):0:-1:
+%5La:-nan():0:-1:
+%*5La:-nan():0:-1:
+%5La:nan():1:5:nan:
+%*5La:nan():0:5:
+%5La:nan(09A_Zaz):0:-1:
+%*5La:nan(09A_Zaz):0:-1:
+%5La:0x0p0:1:5:0x0:
+%*5La:0x0p0:0:5:
+%5La:0x0p+0:0:-1:
+%*5La:0x0p+0:0:-1:
+%5La:0x8p-972:0:-1:
+%*5La:0x8p-972:0:-1:
+%5La:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef0123456789abcp0123:0:5:
+%5La:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef0123456789abcp+123:0:5:
+%5La:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2:
+%*5La:0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5La:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3:
+%*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5La:infinity:0:-1:
+%*5La:infinity:0:-1:
+%5La:+nan():0:-1:
+%*5La:+nan():0:-1:
+%5La:+nan(09A_Zaz):0:-1:
+%*5La:+nan(09A_Zaz):0:-1:
+%5La:+0x0p0:0:-1:
+%*5La:+0x0p0:0:-1:
+%5La:+0x0p+0:0:-1:
+%*5La:+0x0p+0:0:-1:
+%5La:+0x8p-972:0:-1:
+%*5La:+0x8p-972:0:-1:
+%5La:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef0123456789abcp0123:0:5:
+%5La:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef0123456789abcp+123:0:5:
+%5La:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2:
+%*5La:+0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5La:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3:
+%*5La:+0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5La:+infinity:0:-1:
+%*5La:+infinity:0:-1:
+%6La::0:-1:
+%*6La::0:-1:
+%6La:-infinity:0:-1:
+%*6La:-infinity:0:-1:
+%6La:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3:
+%*6La:-0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6La:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2:
+%*6La:-0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6La:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef0123456789abcp+123:0:6:
+%6La:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef0123456789abcp0123:0:6:
+%6La:-0x8p-972:0:-1:
+%*6La:-0x8p-972:0:-1:
+%6La:-0x0p+0:0:-1:
+%*6La:-0x0p+0:0:-1:
+%6La:-0x0p0:1:6:-0x0:
+%*6La:-0x0p0:0:6:
+%6La:-nan(09A_Zaz):0:-1:
+%*6La:-nan(09A_Zaz):0:-1:
+%6La:-nan():1:6:-nan:
+%*6La:-nan():0:6:
+%6La:nan():1:5:nan:
+%*6La:nan():0:5:
+%6La:nan(09A_Zaz):0:-1:
+%*6La:nan(09A_Zaz):0:-1:
+%6La:0x0p0:1:5:0x0:
+%*6La:0x0p0:0:5:
+%6La:0x0p+0:1:6:0x0:
+%*6La:0x0p+0:0:6:
+%6La:0x8p-972:1:6:0x1p-6:
+%*6La:0x8p-972:0:6:
+%6La:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef0123456789abcp0123:0:6:
+%6La:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef0123456789abcp+123:0:6:
+%6La:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2:
+%*6La:0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6La:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3:
+%*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6La:infinity:0:-1:
+%*6La:infinity:0:-1:
+%6La:+nan():1:6:nan:
+%*6La:+nan():0:6:
+%6La:+nan(09A_Zaz):0:-1:
+%*6La:+nan(09A_Zaz):0:-1:
+%6La:+0x0p0:1:6:0x0:
+%*6La:+0x0p0:0:6:
+%6La:+0x0p+0:0:-1:
+%*6La:+0x0p+0:0:-1:
+%6La:+0x8p-972:0:-1:
+%*6La:+0x8p-972:0:-1:
+%6La:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef0123456789abcp0123:0:6:
+%6La:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef0123456789abcp+123:0:6:
+%6La:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2:
+%*6La:+0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6La:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3:
+%*6La:+0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6La:+infinity:0:-1:
+%*6La:+infinity:0:-1:
+%33La::0:-1:
+%*33La::0:-1:
+%33La:-infinity:1:9:-inf:
+%*33La:-infinity:0:9:
+%33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%33La:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3:
+%*33La:-0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*33La:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%33La:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33La:-0x2.3456789abcdef0123456789abcp0123:0:33:
+%33La:-0x8p-972:1:9:-0x1p-969:
+%*33La:-0x8p-972:0:9:
+%33La:-0x0p+0:1:7:-0x0:
+%*33La:-0x0p+0:0:7:
+%33La:-0x0p0:1:6:-0x0:
+%*33La:-0x0p0:0:6:
+%33La:-nan(09A_Zaz):1:13:-nan:
+%*33La:-nan(09A_Zaz):0:13:
+%33La:-nan():1:6:-nan:
+%*33La:-nan():0:6:
+%33La:nan():1:5:nan:
+%*33La:nan():0:5:
+%33La:nan(09A_Zaz):1:12:nan:
+%*33La:nan(09A_Zaz):0:12:
+%33La:0x0p0:1:5:0x0:
+%*33La:0x0p0:0:5:
+%33La:0x0p+0:1:6:0x0:
+%*33La:0x0p+0:0:6:
+%33La:0x8p-972:1:8:0x1p-969:
+%*33La:0x8p-972:0:8:
+%33La:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33La:0x2.3456789abcdef0123456789abcp0123:0:33:
+%33La:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33La:0x2.3456789abcdef0123456789abcp+123:0:33:
+%33La:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12:
+%*33La:0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33La:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4:
+%*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33:
+%33La:infinity:1:8:inf:
+%*33La:infinity:0:8:
+%33La:+nan():1:6:nan:
+%*33La:+nan():0:6:
+%33La:+nan(09A_Zaz):1:13:nan:
+%*33La:+nan(09A_Zaz):0:13:
+%33La:+0x0p0:1:6:0x0:
+%*33La:+0x0p0:0:6:
+%33La:+0x0p+0:1:7:0x0:
+%*33La:+0x0p+0:0:7:
+%33La:+0x8p-972:1:9:0x1p-969:
+%*33La:+0x8p-972:0:9:
+%33La:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33La:+0x2.3456789abcdef0123456789abcp0123:0:33:
+%33La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*33La:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%33La:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3:
+%*33La:+0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%33La:+infinity:1:9:inf:
+%*33La:+infinity:0:9:
+%50La::0:-1:
+%*50La::0:-1:
+%50La:-infinity:1:9:-inf:
+%*50La:-infinity:0:9:
+%50La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:-0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:-0x2.3456789abcdef0123456789abcp+123:0:36:
+%50La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:-0x2.3456789abcdef0123456789abcp0123:0:36:
+%50La:-0x8p-972:1:9:-0x1p-969:
+%*50La:-0x8p-972:0:9:
+%50La:-0x0p+0:1:7:-0x0:
+%*50La:-0x0p+0:0:7:
+%50La:-0x0p0:1:6:-0x0:
+%*50La:-0x0p0:0:6:
+%50La:-nan(09A_Zaz):1:13:-nan:
+%*50La:-nan(09A_Zaz):0:13:
+%50La:-nan():1:6:-nan:
+%*50La:-nan():0:6:
+%50La:nan():1:5:nan:
+%*50La:nan():0:5:
+%50La:nan(09A_Zaz):1:12:nan:
+%*50La:nan(09A_Zaz):0:12:
+%50La:0x0p0:1:5:0x0:
+%*50La:0x0p0:0:5:
+%50La:0x0p+0:1:6:0x0:
+%*50La:0x0p+0:0:6:
+%50La:0x8p-972:1:8:0x1p-969:
+%*50La:0x8p-972:0:8:
+%50La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:0x2.3456789abcdef0123456789abcp0123:0:35:
+%50La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:0x2.3456789abcdef0123456789abcp+123:0:35:
+%50La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:0x7.ffffffffffffdffffffffffffep1021:0:35:
+%50La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36:
+%50La:infinity:1:8:inf:
+%*50La:infinity:0:8:
+%50La:+nan():1:6:nan:
+%*50La:+nan():0:6:
+%50La:+nan(09A_Zaz):1:13:nan:
+%*50La:+nan(09A_Zaz):0:13:
+%50La:+0x0p0:1:6:0x0:
+%*50La:+0x0p0:0:6:
+%50La:+0x0p+0:1:7:0x0:
+%*50La:+0x0p+0:0:7:
+%50La:+0x8p-972:1:9:0x1p-969:
+%*50La:+0x8p-972:0:9:
+%50La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:+0x2.3456789abcdef0123456789abcp0123:0:36:
+%50La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La:+0x2.3456789abcdef0123456789abcp+123:0:36:
+%50La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:+0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50La:+infinity:1:9:inf:
+%*50La:+infinity:0:9:
+%5La: :0:-1:
+%*5La: :0:-1:
+%5La: -infinity:0:-1:
+%*5La: -infinity:0:-1:
+%5La: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3:
+%*5La: -0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5La: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2:
+%*5La: -0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5La: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef0123456789abcp+123:0:6:
+%5La: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef0123456789abcp0123:0:6:
+%5La: -0x8p-972:0:-1:
+%*5La: -0x8p-972:0:-1:
+%5La: -0x0p+0:0:-1:
+%*5La: -0x0p+0:0:-1:
+%5La: -0x0p0:0:-1:
+%*5La: -0x0p0:0:-1:
+%5La: -nan(09A_Zaz):0:-1:
+%*5La: -nan(09A_Zaz):0:-1:
+%5La: -nan():0:-1:
+%*5La: -nan():0:-1:
+%5La: nan():1:6:nan:
+%*5La: nan():0:6:
+%5La: nan(09A_Zaz):0:-1:
+%*5La: nan(09A_Zaz):0:-1:
+%5La: 0x0p0:1:6:0x0:
+%*5La: 0x0p0:0:6:
+%5La: 0x0p+0:0:-1:
+%*5La: 0x0p+0:0:-1:
+%5La: 0x8p-972:0:-1:
+%*5La: 0x8p-972:0:-1:
+%5La: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef0123456789abcp0123:0:6:
+%5La: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef0123456789abcp+123:0:6:
+%5La: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2:
+%*5La: 0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5La: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3:
+%*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5La: infinity:0:-1:
+%*5La: infinity:0:-1:
+%5La: +nan():0:-1:
+%*5La: +nan():0:-1:
+%5La: +nan(09A_Zaz):0:-1:
+%*5La: +nan(09A_Zaz):0:-1:
+%5La: +0x0p0:0:-1:
+%*5La: +0x0p0:0:-1:
+%5La: +0x0p+0:0:-1:
+%*5La: +0x0p+0:0:-1:
+%5La: +0x8p-972:0:-1:
+%*5La: +0x8p-972:0:-1:
+%5La: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef0123456789abcp0123:0:6:
+%5La: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef0123456789abcp+123:0:6:
+%5La: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2:
+%*5La: +0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5La: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3:
+%*5La: +0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5La: +infinity:0:-1:
+%*5La: +infinity:0:-1:
+%50La: :0:-1:
+%*50La: :0:-1:
+%50La: -infinity:1:10:-inf:
+%*50La: -infinity:0:10:
+%50La: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: -0xf.ffffffffffffbffffffffffffcp+1020:0:38:
+%50La: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: -0x7.ffffffffffffdffffffffffffep1021:0:37:
+%50La: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: -0x2.3456789abcdef0123456789abcp+123:0:37:
+%50La: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: -0x2.3456789abcdef0123456789abcp0123:0:37:
+%50La: -0x8p-972:1:10:-0x1p-969:
+%*50La: -0x8p-972:0:10:
+%50La: -0x0p+0:1:8:-0x0:
+%*50La: -0x0p+0:0:8:
+%50La: -0x0p0:1:7:-0x0:
+%*50La: -0x0p0:0:7:
+%50La: -nan(09A_Zaz):1:14:-nan:
+%*50La: -nan(09A_Zaz):0:14:
+%50La: -nan():1:7:-nan:
+%*50La: -nan():0:7:
+%50La: nan():1:6:nan:
+%*50La: nan():0:6:
+%50La: nan(09A_Zaz):1:13:nan:
+%*50La: nan(09A_Zaz):0:13:
+%50La: 0x0p0:1:6:0x0:
+%*50La: 0x0p0:0:6:
+%50La: 0x0p+0:1:7:0x0:
+%*50La: 0x0p+0:0:7:
+%50La: 0x8p-972:1:9:0x1p-969:
+%*50La: 0x8p-972:0:9:
+%50La: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: 0x2.3456789abcdef0123456789abcp0123:0:36:
+%50La: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: 0x2.3456789abcdef0123456789abcp+123:0:36:
+%50La: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: 0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50La: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50La: infinity:1:9:inf:
+%*50La: infinity:0:9:
+%50La: +nan():1:7:nan:
+%*50La: +nan():0:7:
+%50La: +nan(09A_Zaz):1:14:nan:
+%*50La: +nan(09A_Zaz):0:14:
+%50La: +0x0p0:1:7:0x0:
+%*50La: +0x0p0:0:7:
+%50La: +0x0p+0:1:8:0x0:
+%*50La: +0x0p+0:0:8:
+%50La: +0x8p-972:1:10:0x1p-969:
+%*50La: +0x8p-972:0:10:
+%50La: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: +0x2.3456789abcdef0123456789abcp0123:0:37:
+%50La: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50La: +0x2.3456789abcdef0123456789abcp+123:0:37:
+%50La: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: +0x7.ffffffffffffdffffffffffffep1021:0:37:
+%50La: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50La: +0xf.ffffffffffffbffffffffffffcp+1020:0:38:
+%50La: +infinity:1:10:inf:
+%*50La: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input
new file mode 100644
index 0000000..5889e62
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input
@@ -0,0 +1,682 @@
+%LA::0:-1:
+%*LA::0:-1:
+%LA:-INFINITY:1:9:-inf:
+%*LA:-INFINITY:0:9:
+%LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%LA:-0X8P-972:1:9:-0x1p-969:
+%*LA:-0X8P-972:0:9:
+%LA:-0X0P+0:1:7:-0x0:
+%*LA:-0X0P+0:0:7:
+%LA:-0X0P0:1:6:-0x0:
+%*LA:-0X0P0:0:6:
+%LA:-NAN(09A_Zaz):1:13:-nan:
+%*LA:-NAN(09A_Zaz):0:13:
+%LA:-NAN():1:6:-nan:
+%*LA:-NAN():0:6:
+%LA:NAN():1:5:nan:
+%*LA:NAN():0:5:
+%LA:NAN(09A_Zaz):1:12:nan:
+%*LA:NAN(09A_Zaz):0:12:
+%LA:0X0P0:1:5:0x0:
+%*LA:0X0P0:0:5:
+%LA:0X0P+0:1:6:0x0:
+%*LA:0X0P+0:0:6:
+%LA:0X8P-972:1:8:0x1p-969:
+%*LA:0X8P-972:0:8:
+%LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35:
+%LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35:
+%LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35:
+%LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36:
+%LA:INFINITY:1:8:inf:
+%*LA:INFINITY:0:8:
+%LA:+NAN():1:6:nan:
+%*LA:+NAN():0:6:
+%LA:+NAN(09A_Zaz):1:13:nan:
+%*LA:+NAN(09A_Zaz):0:13:
+%LA:+0X0P0:1:6:0x0:
+%*LA:+0X0P0:0:6:
+%LA:+0X0P+0:1:7:0x0:
+%*LA:+0X0P+0:0:7:
+%LA:+0X8P-972:1:9:0x1p-969:
+%*LA:+0X8P-972:0:9:
+%LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%LA:+INFINITY:1:9:inf:
+%*LA:+INFINITY:0:9:
+%1LA::0:-1:
+%*1LA::0:-1:
+%1LA:-INFINITY:0:-1:
+%*1LA:-INFINITY:0:-1:
+%1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%1LA:-0X8P-972:0:-1:
+%*1LA:-0X8P-972:0:-1:
+%1LA:-0X0P+0:0:-1:
+%*1LA:-0X0P+0:0:-1:
+%1LA:-0X0P0:0:-1:
+%*1LA:-0X0P0:0:-1:
+%1LA:-NAN(09A_Zaz):0:-1:
+%*1LA:-NAN(09A_Zaz):0:-1:
+%1LA:-NAN():0:-1:
+%*1LA:-NAN():0:-1:
+%1LA:NAN():0:-1:
+%*1LA:NAN():0:-1:
+%1LA:NAN(09A_Zaz):0:-1:
+%*1LA:NAN(09A_Zaz):0:-1:
+%1LA:0X0P0:1:1:0x0:
+%*1LA:0X0P0:0:1:
+%1LA:0X0P+0:1:1:0x0:
+%*1LA:0X0P+0:0:1:
+%1LA:0X8P-972:1:1:0x0:
+%*1LA:0X8P-972:0:1:
+%1LA:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF0123456789ABCP0123:0:1:
+%1LA:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF0123456789ABCP+123:0:1:
+%1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0:
+%*1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1:
+%1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0:
+%*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1:
+%1LA:INFINITY:0:-1:
+%*1LA:INFINITY:0:-1:
+%1LA:+NAN():0:-1:
+%*1LA:+NAN():0:-1:
+%1LA:+NAN(09A_Zaz):0:-1:
+%*1LA:+NAN(09A_Zaz):0:-1:
+%1LA:+0X0P0:0:-1:
+%*1LA:+0X0P0:0:-1:
+%1LA:+0X0P+0:0:-1:
+%*1LA:+0X0P+0:0:-1:
+%1LA:+0X8P-972:0:-1:
+%*1LA:+0X8P-972:0:-1:
+%1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%1LA:+INFINITY:0:-1:
+%*1LA:+INFINITY:0:-1:
+%2LA::0:-1:
+%*2LA::0:-1:
+%2LA:-INFINITY:0:-1:
+%*2LA:-INFINITY:0:-1:
+%2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0:
+%*2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2:
+%2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0:
+%*2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2:
+%2LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:2:
+%2LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:2:
+%2LA:-0X8P-972:1:2:-0x0:
+%*2LA:-0X8P-972:0:2:
+%2LA:-0X0P+0:1:2:-0x0:
+%*2LA:-0X0P+0:0:2:
+%2LA:-0X0P0:1:2:-0x0:
+%*2LA:-0X0P0:0:2:
+%2LA:-NAN(09A_Zaz):0:-1:
+%*2LA:-NAN(09A_Zaz):0:-1:
+%2LA:-NAN():0:-1:
+%*2LA:-NAN():0:-1:
+%2LA:NAN():0:-1:
+%*2LA:NAN():0:-1:
+%2LA:NAN(09A_Zaz):0:-1:
+%*2LA:NAN(09A_Zaz):0:-1:
+%2LA:0X0P0:0:-1:
+%*2LA:0X0P0:0:-1:
+%2LA:0X0P+0:0:-1:
+%*2LA:0X0P+0:0:-1:
+%2LA:0X8P-972:0:-1:
+%*2LA:0X8P-972:0:-1:
+%2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%2LA:INFINITY:0:-1:
+%*2LA:INFINITY:0:-1:
+%2LA:+NAN():0:-1:
+%*2LA:+NAN():0:-1:
+%2LA:+NAN(09A_Zaz):0:-1:
+%*2LA:+NAN(09A_Zaz):0:-1:
+%2LA:+0X0P0:1:2:0x0:
+%*2LA:+0X0P0:0:2:
+%2LA:+0X0P+0:1:2:0x0:
+%*2LA:+0X0P+0:0:2:
+%2LA:+0X8P-972:1:2:0x0:
+%*2LA:+0X8P-972:0:2:
+%2LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:2:
+%2LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:2:
+%2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0:
+%*2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2:
+%2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0:
+%*2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2:
+%2LA:+INFINITY:0:-1:
+%*2LA:+INFINITY:0:-1:
+%3LA::0:-1:
+%*3LA::0:-1:
+%3LA:-INFINITY:0:-1:
+%*3LA:-INFINITY:0:-1:
+%3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%3LA:-0X8P-972:0:-1:
+%*3LA:-0X8P-972:0:-1:
+%3LA:-0X0P+0:0:-1:
+%*3LA:-0X0P+0:0:-1:
+%3LA:-0X0P0:0:-1:
+%*3LA:-0X0P0:0:-1:
+%3LA:-NAN(09A_Zaz):0:-1:
+%*3LA:-NAN(09A_Zaz):0:-1:
+%3LA:-NAN():0:-1:
+%*3LA:-NAN():0:-1:
+%3LA:NAN():1:3:nan:
+%*3LA:NAN():0:3:
+%3LA:NAN(09A_Zaz):1:3:nan:
+%*3LA:NAN(09A_Zaz):0:3:
+%3LA:0X0P0:1:3:0x0:
+%*3LA:0X0P0:0:3:
+%3LA:0X0P+0:1:3:0x0:
+%*3LA:0X0P+0:0:3:
+%3LA:0X8P-972:1:3:0x1p3:
+%*3LA:0X8P-972:0:3:
+%3LA:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF0123456789ABCP0123:0:3:
+%3LA:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF0123456789ABCP+123:0:3:
+%3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2:
+%*3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3:
+%3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3:
+%*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3:
+%3LA:INFINITY:1:3:inf:
+%*3LA:INFINITY:0:3:
+%3LA:+NAN():0:-1:
+%*3LA:+NAN():0:-1:
+%3LA:+NAN(09A_Zaz):0:-1:
+%*3LA:+NAN(09A_Zaz):0:-1:
+%3LA:+0X0P0:0:-1:
+%*3LA:+0X0P0:0:-1:
+%3LA:+0X0P+0:0:-1:
+%*3LA:+0X0P+0:0:-1:
+%3LA:+0X8P-972:0:-1:
+%*3LA:+0X8P-972:0:-1:
+%3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%3LA:+INFINITY:0:-1:
+%*3LA:+INFINITY:0:-1:
+%4LA::0:-1:
+%*4LA::0:-1:
+%4LA:-INFINITY:1:4:-inf:
+%*4LA:-INFINITY:0:4:
+%4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3:
+%*4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2:
+%*4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LA:-0X8P-972:1:4:-0x1p3:
+%*4LA:-0X8P-972:0:4:
+%4LA:-0X0P+0:1:4:-0x0:
+%*4LA:-0X0P+0:0:4:
+%4LA:-0X0P0:1:4:-0x0:
+%*4LA:-0X0P0:0:4:
+%4LA:-NAN(09A_Zaz):1:4:-nan:
+%*4LA:-NAN(09A_Zaz):0:4:
+%4LA:-NAN():1:4:-nan:
+%*4LA:-NAN():0:4:
+%4LA:NAN():0:-1:
+%*4LA:NAN():0:-1:
+%4LA:NAN(09A_Zaz):0:-1:
+%*4LA:NAN(09A_Zaz):0:-1:
+%4LA:0X0P0:0:-1:
+%*4LA:0X0P0:0:-1:
+%4LA:0X0P+0:0:-1:
+%*4LA:0X0P+0:0:-1:
+%4LA:0X8P-972:0:-1:
+%*4LA:0X8P-972:0:-1:
+%4LA:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LA:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2:
+%*4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3:
+%*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LA:INFINITY:0:-1:
+%*4LA:INFINITY:0:-1:
+%4LA:+NAN():1:4:nan:
+%*4LA:+NAN():0:4:
+%4LA:+NAN(09A_Zaz):1:4:nan:
+%*4LA:+NAN(09A_Zaz):0:4:
+%4LA:+0X0P0:1:4:0x0:
+%*4LA:+0X0P0:0:4:
+%4LA:+0X0P+0:1:4:0x0:
+%*4LA:+0X0P+0:0:4:
+%4LA:+0X8P-972:1:4:0x1p3:
+%*4LA:+0X8P-972:0:4:
+%4LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2:
+%*4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3:
+%*4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LA:+INFINITY:1:4:inf:
+%*4LA:+INFINITY:0:4:
+%5LA::0:-1:
+%*5LA::0:-1:
+%5LA:-INFINITY:0:-1:
+%*5LA:-INFINITY:0:-1:
+%5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3:
+%*5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2:
+%*5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LA:-0X8P-972:0:-1:
+%*5LA:-0X8P-972:0:-1:
+%5LA:-0X0P+0:0:-1:
+%*5LA:-0X0P+0:0:-1:
+%5LA:-0X0P0:0:-1:
+%*5LA:-0X0P0:0:-1:
+%5LA:-NAN(09A_Zaz):0:-1:
+%*5LA:-NAN(09A_Zaz):0:-1:
+%5LA:-NAN():0:-1:
+%*5LA:-NAN():0:-1:
+%5LA:NAN():1:5:nan:
+%*5LA:NAN():0:5:
+%5LA:NAN(09A_Zaz):0:-1:
+%*5LA:NAN(09A_Zaz):0:-1:
+%5LA:0X0P0:1:5:0x0:
+%*5LA:0X0P0:0:5:
+%5LA:0X0P+0:0:-1:
+%*5LA:0X0P+0:0:-1:
+%5LA:0X8P-972:0:-1:
+%*5LA:0X8P-972:0:-1:
+%5LA:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LA:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2:
+%*5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3:
+%*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LA:INFINITY:0:-1:
+%*5LA:INFINITY:0:-1:
+%5LA:+NAN():0:-1:
+%*5LA:+NAN():0:-1:
+%5LA:+NAN(09A_Zaz):0:-1:
+%*5LA:+NAN(09A_Zaz):0:-1:
+%5LA:+0X0P0:0:-1:
+%*5LA:+0X0P0:0:-1:
+%5LA:+0X0P+0:0:-1:
+%*5LA:+0X0P+0:0:-1:
+%5LA:+0X8P-972:0:-1:
+%*5LA:+0X8P-972:0:-1:
+%5LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2:
+%*5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3:
+%*5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LA:+INFINITY:0:-1:
+%*5LA:+INFINITY:0:-1:
+%6LA::0:-1:
+%*6LA::0:-1:
+%6LA:-INFINITY:0:-1:
+%*6LA:-INFINITY:0:-1:
+%6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3:
+%*6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2:
+%*6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LA:-0X8P-972:0:-1:
+%*6LA:-0X8P-972:0:-1:
+%6LA:-0X0P+0:0:-1:
+%*6LA:-0X0P+0:0:-1:
+%6LA:-0X0P0:1:6:-0x0:
+%*6LA:-0X0P0:0:6:
+%6LA:-NAN(09A_Zaz):0:-1:
+%*6LA:-NAN(09A_Zaz):0:-1:
+%6LA:-NAN():1:6:-nan:
+%*6LA:-NAN():0:6:
+%6LA:NAN():1:5:nan:
+%*6LA:NAN():0:5:
+%6LA:NAN(09A_Zaz):0:-1:
+%*6LA:NAN(09A_Zaz):0:-1:
+%6LA:0X0P0:1:5:0x0:
+%*6LA:0X0P0:0:5:
+%6LA:0X0P+0:1:6:0x0:
+%*6LA:0X0P+0:0:6:
+%6LA:0X8P-972:1:6:0x1p-6:
+%*6LA:0X8P-972:0:6:
+%6LA:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LA:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2:
+%*6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3:
+%*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LA:INFINITY:0:-1:
+%*6LA:INFINITY:0:-1:
+%6LA:+NAN():1:6:nan:
+%*6LA:+NAN():0:6:
+%6LA:+NAN(09A_Zaz):0:-1:
+%*6LA:+NAN(09A_Zaz):0:-1:
+%6LA:+0X0P0:1:6:0x0:
+%*6LA:+0X0P0:0:6:
+%6LA:+0X0P+0:0:-1:
+%*6LA:+0X0P+0:0:-1:
+%6LA:+0X8P-972:0:-1:
+%*6LA:+0X8P-972:0:-1:
+%6LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2:
+%*6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3:
+%*6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LA:+INFINITY:0:-1:
+%*6LA:+INFINITY:0:-1:
+%33LA::0:-1:
+%*33LA::0:-1:
+%33LA:-INFINITY:1:9:-inf:
+%*33LA:-INFINITY:0:9:
+%33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3:
+%*33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%33LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LA:-0X8P-972:1:9:-0x1p-969:
+%*33LA:-0X8P-972:0:9:
+%33LA:-0X0P+0:1:7:-0x0:
+%*33LA:-0X0P+0:0:7:
+%33LA:-0X0P0:1:6:-0x0:
+%*33LA:-0X0P0:0:6:
+%33LA:-NAN(09A_Zaz):1:13:-nan:
+%*33LA:-NAN(09A_Zaz):0:13:
+%33LA:-NAN():1:6:-nan:
+%*33LA:-NAN():0:6:
+%33LA:NAN():1:5:nan:
+%*33LA:NAN():0:5:
+%33LA:NAN(09A_Zaz):1:12:nan:
+%*33LA:NAN(09A_Zaz):0:12:
+%33LA:0X0P0:1:5:0x0:
+%*33LA:0X0P0:0:5:
+%33LA:0X0P+0:1:6:0x0:
+%*33LA:0X0P+0:0:6:
+%33LA:0X8P-972:1:8:0x1p-969:
+%*33LA:0X8P-972:0:8:
+%33LA:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33LA:0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LA:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33LA:0X2.3456789ABCDEF0123456789ABCP+123:0:33:
+%33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12:
+%*33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4:
+%*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33:
+%33LA:INFINITY:1:8:inf:
+%*33LA:INFINITY:0:8:
+%33LA:+NAN():1:6:nan:
+%*33LA:+NAN():0:6:
+%33LA:+NAN(09A_Zaz):1:13:nan:
+%*33LA:+NAN(09A_Zaz):0:13:
+%33LA:+0X0P0:1:6:0x0:
+%*33LA:+0X0P0:0:6:
+%33LA:+0X0P+0:1:7:0x0:
+%*33LA:+0X0P+0:0:7:
+%33LA:+0X8P-972:1:9:0x1p-969:
+%*33LA:+0X8P-972:0:9:
+%33LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3:
+%*33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%33LA:+INFINITY:1:9:inf:
+%*33LA:+INFINITY:0:9:
+%50LA::0:-1:
+%*50LA::0:-1:
+%50LA:-INFINITY:1:9:-inf:
+%*50LA:-INFINITY:0:9:
+%50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LA:-0X8P-972:1:9:-0x1p-969:
+%*50LA:-0X8P-972:0:9:
+%50LA:-0X0P+0:1:7:-0x0:
+%*50LA:-0X0P+0:0:7:
+%50LA:-0X0P0:1:6:-0x0:
+%*50LA:-0X0P0:0:6:
+%50LA:-NAN(09A_Zaz):1:13:-nan:
+%*50LA:-NAN(09A_Zaz):0:13:
+%50LA:-NAN():1:6:-nan:
+%*50LA:-NAN():0:6:
+%50LA:NAN():1:5:nan:
+%*50LA:NAN():0:5:
+%50LA:NAN(09A_Zaz):1:12:nan:
+%*50LA:NAN(09A_Zaz):0:12:
+%50LA:0X0P0:1:5:0x0:
+%*50LA:0X0P0:0:5:
+%50LA:0X0P+0:1:6:0x0:
+%*50LA:0X0P+0:0:6:
+%50LA:0X8P-972:1:8:0x1p-969:
+%*50LA:0X8P-972:0:8:
+%50LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35:
+%50LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35:
+%50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35:
+%50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36:
+%50LA:INFINITY:1:8:inf:
+%*50LA:INFINITY:0:8:
+%50LA:+NAN():1:6:nan:
+%*50LA:+NAN():0:6:
+%50LA:+NAN(09A_Zaz):1:13:nan:
+%*50LA:+NAN(09A_Zaz):0:13:
+%50LA:+0X0P0:1:6:0x0:
+%*50LA:+0X0P0:0:6:
+%50LA:+0X0P+0:1:7:0x0:
+%*50LA:+0X0P+0:0:7:
+%50LA:+0X8P-972:1:9:0x1p-969:
+%*50LA:+0X8P-972:0:9:
+%50LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LA:+INFINITY:1:9:inf:
+%*50LA:+INFINITY:0:9:
+%5LA: :0:-1:
+%*5LA: :0:-1:
+%5LA: -INFINITY:0:-1:
+%*5LA: -INFINITY:0:-1:
+%5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3:
+%*5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2:
+%*5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LA: -0X8P-972:0:-1:
+%*5LA: -0X8P-972:0:-1:
+%5LA: -0X0P+0:0:-1:
+%*5LA: -0X0P+0:0:-1:
+%5LA: -0X0P0:0:-1:
+%*5LA: -0X0P0:0:-1:
+%5LA: -NAN(09A_Zaz):0:-1:
+%*5LA: -NAN(09A_Zaz):0:-1:
+%5LA: -NAN():0:-1:
+%*5LA: -NAN():0:-1:
+%5LA: NAN():1:6:nan:
+%*5LA: NAN():0:6:
+%5LA: NAN(09A_Zaz):0:-1:
+%*5LA: NAN(09A_Zaz):0:-1:
+%5LA: 0X0P0:1:6:0x0:
+%*5LA: 0X0P0:0:6:
+%5LA: 0X0P+0:0:-1:
+%*5LA: 0X0P+0:0:-1:
+%5LA: 0X8P-972:0:-1:
+%*5LA: 0X8P-972:0:-1:
+%5LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2:
+%*5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3:
+%*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LA: INFINITY:0:-1:
+%*5LA: INFINITY:0:-1:
+%5LA: +NAN():0:-1:
+%*5LA: +NAN():0:-1:
+%5LA: +NAN(09A_Zaz):0:-1:
+%*5LA: +NAN(09A_Zaz):0:-1:
+%5LA: +0X0P0:0:-1:
+%*5LA: +0X0P0:0:-1:
+%5LA: +0X0P+0:0:-1:
+%*5LA: +0X0P+0:0:-1:
+%5LA: +0X8P-972:0:-1:
+%*5LA: +0X8P-972:0:-1:
+%5LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2:
+%*5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3:
+%*5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LA: +INFINITY:0:-1:
+%*5LA: +INFINITY:0:-1:
+%50LA: :0:-1:
+%*50LA: :0:-1:
+%50LA: -INFINITY:1:10:-inf:
+%*50LA: -INFINITY:0:10:
+%50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38:
+%50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37:
+%50LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:37:
+%50LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:37:
+%50LA: -0X8P-972:1:10:-0x1p-969:
+%*50LA: -0X8P-972:0:10:
+%50LA: -0X0P+0:1:8:-0x0:
+%*50LA: -0X0P+0:0:8:
+%50LA: -0X0P0:1:7:-0x0:
+%*50LA: -0X0P0:0:7:
+%50LA: -NAN(09A_Zaz):1:14:-nan:
+%*50LA: -NAN(09A_Zaz):0:14:
+%50LA: -NAN():1:7:-nan:
+%*50LA: -NAN():0:7:
+%50LA: NAN():1:6:nan:
+%*50LA: NAN():0:6:
+%50LA: NAN(09A_Zaz):1:13:nan:
+%*50LA: NAN(09A_Zaz):0:13:
+%50LA: 0X0P0:1:6:0x0:
+%*50LA: 0X0P0:0:6:
+%50LA: 0X0P+0:1:7:0x0:
+%*50LA: 0X0P+0:0:7:
+%50LA: 0X8P-972:1:9:0x1p-969:
+%*50LA: 0X8P-972:0:9:
+%50LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LA: INFINITY:1:9:inf:
+%*50LA: INFINITY:0:9:
+%50LA: +NAN():1:7:nan:
+%*50LA: +NAN():0:7:
+%50LA: +NAN(09A_Zaz):1:14:nan:
+%*50LA: +NAN(09A_Zaz):0:14:
+%50LA: +0X0P0:1:7:0x0:
+%*50LA: +0X0P0:0:7:
+%50LA: +0X0P+0:1:8:0x0:
+%*50LA: +0X0P+0:0:8:
+%50LA: +0X8P-972:1:10:0x1p-969:
+%*50LA: +0X8P-972:0:10:
+%50LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:37:
+%50LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:37:
+%50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37:
+%50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38:
+%50LA: +INFINITY:1:10:inf:
+%*50LA: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input
new file mode 100644
index 0000000..2edc8ba
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input
@@ -0,0 +1,558 @@
+%Le::0:-1:
+%*Le::0:-1:
+%Le:-infinity:1:9:-inf:
+%*Le:-infinity:0:9:
+%Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:-1.79769313486231580793728971405301199e+308:0:43:
+%Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:-1.79769313486231580793728971405301199e308:0:42:
+%Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:-2.3441674165664647186659237648155017216e+37:0:44:
+%Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:-2.3441674165664647186659237648155017216e037:0:44:
+%Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969:
+%*Le:-2.00416836000897277799610805135016205e-292:0:43:
+%Le:-0e+0:1:5:-0x0:
+%*Le:-0e+0:0:5:
+%Le:-0e0:1:4:-0x0:
+%*Le:-0e0:0:4:
+%Le:-nan(09A_Zaz):1:13:-nan:
+%*Le:-nan(09A_Zaz):0:13:
+%Le:-nan():1:6:-nan:
+%*Le:-nan():0:6:
+%Le:nan():1:5:nan:
+%*Le:nan():0:5:
+%Le:nan(09A_Zaz):1:12:nan:
+%*Le:nan(09A_Zaz):0:12:
+%Le:0e0:1:3:0x0:
+%*Le:0e0:0:3:
+%Le:0e+0:1:4:0x0:
+%*Le:0e+0:0:4:
+%Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969:
+%*Le:2.00416836000897277799610805135016205e-292:0:42:
+%Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:2.3441674165664647186659237648155017216e037:0:43:
+%Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:2.3441674165664647186659237648155017216e+37:0:43:
+%Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:1.79769313486231580793728971405301199e308:0:41:
+%Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:1.79769313486231580793728971405301199e+308:0:42:
+%Le:infinity:1:8:inf:
+%*Le:infinity:0:8:
+%Le:+nan():1:6:nan:
+%*Le:+nan():0:6:
+%Le:+nan(09A_Zaz):1:13:nan:
+%*Le:+nan(09A_Zaz):0:13:
+%Le:+0e0:1:4:0x0:
+%*Le:+0e0:0:4:
+%Le:+0e+0:1:5:0x0:
+%*Le:+0e+0:0:5:
+%Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969:
+%*Le:+2.00416836000897277799610805135016205e-292:0:43:
+%Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:+2.3441674165664647186659237648155017216e037:0:44:
+%Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Le:+2.3441674165664647186659237648155017216e+37:0:44:
+%Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:+1.79769313486231580793728971405301199e308:0:42:
+%Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Le:+1.79769313486231580793728971405301199e+308:0:43:
+%Le:+infinity:1:9:inf:
+%*Le:+infinity:0:9:
+%1Le::0:-1:
+%*1Le::0:-1:
+%1Le:-infinity:0:-1:
+%*1Le:-infinity:0:-1:
+%1Le:-1.79769313486231580793728971405301199e+308:0:-1:
+%*1Le:-1.79769313486231580793728971405301199e+308:0:-1:
+%1Le:-1.79769313486231580793728971405301199e308:0:-1:
+%*1Le:-1.79769313486231580793728971405301199e308:0:-1:
+%1Le:-2.3441674165664647186659237648155017216e+37:0:-1:
+%*1Le:-2.3441674165664647186659237648155017216e+37:0:-1:
+%1Le:-2.3441674165664647186659237648155017216e037:0:-1:
+%*1Le:-2.3441674165664647186659237648155017216e037:0:-1:
+%1Le:-2.00416836000897277799610805135016205e-292:0:-1:
+%*1Le:-2.00416836000897277799610805135016205e-292:0:-1:
+%1Le:-0e+0:0:-1:
+%*1Le:-0e+0:0:-1:
+%1Le:-0e0:0:-1:
+%*1Le:-0e0:0:-1:
+%1Le:-nan(09A_Zaz):0:-1:
+%*1Le:-nan(09A_Zaz):0:-1:
+%1Le:-nan():0:-1:
+%*1Le:-nan():0:-1:
+%1Le:nan():0:-1:
+%*1Le:nan():0:-1:
+%1Le:nan(09A_Zaz):0:-1:
+%*1Le:nan(09A_Zaz):0:-1:
+%1Le:0e0:1:1:0x0:
+%*1Le:0e0:0:1:
+%1Le:0e+0:1:1:0x0:
+%*1Le:0e+0:0:1:
+%1Le:2.00416836000897277799610805135016205e-292:1:1:0x1p1:
+%*1Le:2.00416836000897277799610805135016205e-292:0:1:
+%1Le:2.3441674165664647186659237648155017216e037:1:1:0x1p1:
+%*1Le:2.3441674165664647186659237648155017216e037:0:1:
+%1Le:2.3441674165664647186659237648155017216e+37:1:1:0x1p1:
+%*1Le:2.3441674165664647186659237648155017216e+37:0:1:
+%1Le:1.79769313486231580793728971405301199e308:1:1:0x1:
+%*1Le:1.79769313486231580793728971405301199e308:0:1:
+%1Le:1.79769313486231580793728971405301199e+308:1:1:0x1:
+%*1Le:1.79769313486231580793728971405301199e+308:0:1:
+%1Le:infinity:0:-1:
+%*1Le:infinity:0:-1:
+%1Le:+nan():0:-1:
+%*1Le:+nan():0:-1:
+%1Le:+nan(09A_Zaz):0:-1:
+%*1Le:+nan(09A_Zaz):0:-1:
+%1Le:+0e0:0:-1:
+%*1Le:+0e0:0:-1:
+%1Le:+0e+0:0:-1:
+%*1Le:+0e+0:0:-1:
+%1Le:+2.00416836000897277799610805135016205e-292:0:-1:
+%*1Le:+2.00416836000897277799610805135016205e-292:0:-1:
+%1Le:+2.3441674165664647186659237648155017216e037:0:-1:
+%*1Le:+2.3441674165664647186659237648155017216e037:0:-1:
+%1Le:+2.3441674165664647186659237648155017216e+37:0:-1:
+%*1Le:+2.3441674165664647186659237648155017216e+37:0:-1:
+%1Le:+1.79769313486231580793728971405301199e308:0:-1:
+%*1Le:+1.79769313486231580793728971405301199e308:0:-1:
+%1Le:+1.79769313486231580793728971405301199e+308:0:-1:
+%*1Le:+1.79769313486231580793728971405301199e+308:0:-1:
+%1Le:+infinity:0:-1:
+%*1Le:+infinity:0:-1:
+%2Le::0:-1:
+%*2Le::0:-1:
+%2Le:-infinity:0:-1:
+%*2Le:-infinity:0:-1:
+%2Le:-1.79769313486231580793728971405301199e+308:1:2:-0x1:
+%*2Le:-1.79769313486231580793728971405301199e+308:0:2:
+%2Le:-1.79769313486231580793728971405301199e308:1:2:-0x1:
+%*2Le:-1.79769313486231580793728971405301199e308:0:2:
+%2Le:-2.3441674165664647186659237648155017216e+37:1:2:-0x1p1:
+%*2Le:-2.3441674165664647186659237648155017216e+37:0:2:
+%2Le:-2.3441674165664647186659237648155017216e037:1:2:-0x1p1:
+%*2Le:-2.3441674165664647186659237648155017216e037:0:2:
+%2Le:-2.00416836000897277799610805135016205e-292:1:2:-0x1p1:
+%*2Le:-2.00416836000897277799610805135016205e-292:0:2:
+%2Le:-0e+0:1:2:-0x0:
+%*2Le:-0e+0:0:2:
+%2Le:-0e0:1:2:-0x0:
+%*2Le:-0e0:0:2:
+%2Le:-nan(09A_Zaz):0:-1:
+%*2Le:-nan(09A_Zaz):0:-1:
+%2Le:-nan():0:-1:
+%*2Le:-nan():0:-1:
+%2Le:nan():0:-1:
+%*2Le:nan():0:-1:
+%2Le:nan(09A_Zaz):0:-1:
+%*2Le:nan(09A_Zaz):0:-1:
+%2Le:0e0:0:-1:
+%*2Le:0e0:0:-1:
+%2Le:0e+0:0:-1:
+%*2Le:0e+0:0:-1:
+%2Le:2.00416836000897277799610805135016205e-292:1:2:0x1p1:
+%*2Le:2.00416836000897277799610805135016205e-292:0:2:
+%2Le:2.3441674165664647186659237648155017216e037:1:2:0x1p1:
+%*2Le:2.3441674165664647186659237648155017216e037:0:2:
+%2Le:2.3441674165664647186659237648155017216e+37:1:2:0x1p1:
+%*2Le:2.3441674165664647186659237648155017216e+37:0:2:
+%2Le:1.79769313486231580793728971405301199e308:1:2:0x1:
+%*2Le:1.79769313486231580793728971405301199e308:0:2:
+%2Le:1.79769313486231580793728971405301199e+308:1:2:0x1:
+%*2Le:1.79769313486231580793728971405301199e+308:0:2:
+%2Le:infinity:0:-1:
+%*2Le:infinity:0:-1:
+%2Le:+nan():0:-1:
+%*2Le:+nan():0:-1:
+%2Le:+nan(09A_Zaz):0:-1:
+%*2Le:+nan(09A_Zaz):0:-1:
+%2Le:+0e0:1:2:0x0:
+%*2Le:+0e0:0:2:
+%2Le:+0e+0:1:2:0x0:
+%*2Le:+0e+0:0:2:
+%2Le:+2.00416836000897277799610805135016205e-292:1:2:0x1p1:
+%*2Le:+2.00416836000897277799610805135016205e-292:0:2:
+%2Le:+2.3441674165664647186659237648155017216e037:1:2:0x1p1:
+%*2Le:+2.3441674165664647186659237648155017216e037:0:2:
+%2Le:+2.3441674165664647186659237648155017216e+37:1:2:0x1p1:
+%*2Le:+2.3441674165664647186659237648155017216e+37:0:2:
+%2Le:+1.79769313486231580793728971405301199e308:1:2:0x1:
+%*2Le:+1.79769313486231580793728971405301199e308:0:2:
+%2Le:+1.79769313486231580793728971405301199e+308:1:2:0x1:
+%*2Le:+1.79769313486231580793728971405301199e+308:0:2:
+%2Le:+infinity:0:-1:
+%*2Le:+infinity:0:-1:
+%3Le::0:-1:
+%*3Le::0:-1:
+%3Le:-infinity:0:-1:
+%*3Le:-infinity:0:-1:
+%3Le:-1.79769313486231580793728971405301199e+308:1:3:-0x1:
+%*3Le:-1.79769313486231580793728971405301199e+308:0:3:
+%3Le:-1.79769313486231580793728971405301199e308:1:3:-0x1:
+%*3Le:-1.79769313486231580793728971405301199e308:0:3:
+%3Le:-2.3441674165664647186659237648155017216e+37:1:3:-0x1p1:
+%*3Le:-2.3441674165664647186659237648155017216e+37:0:3:
+%3Le:-2.3441674165664647186659237648155017216e037:1:3:-0x1p1:
+%*3Le:-2.3441674165664647186659237648155017216e037:0:3:
+%3Le:-2.00416836000897277799610805135016205e-292:1:3:-0x1p1:
+%*3Le:-2.00416836000897277799610805135016205e-292:0:3:
+%3Le:-0e+0:0:-1:
+%*3Le:-0e+0:0:-1:
+%3Le:-0e0:0:-1:
+%*3Le:-0e0:0:-1:
+%3Le:-nan(09A_Zaz):0:-1:
+%*3Le:-nan(09A_Zaz):0:-1:
+%3Le:-nan():0:-1:
+%*3Le:-nan():0:-1:
+%3Le:nan():1:3:nan:
+%*3Le:nan():0:3:
+%3Le:nan(09A_Zaz):1:3:nan:
+%*3Le:nan(09A_Zaz):0:3:
+%3Le:0e0:1:3:0x0:
+%*3Le:0e0:0:3:
+%3Le:0e+0:0:-1:
+%*3Le:0e+0:0:-1:
+%3Le:2.00416836000897277799610805135016205e-292:1:3:0x1p1:
+%*3Le:2.00416836000897277799610805135016205e-292:0:3:
+%3Le:2.3441674165664647186659237648155017216e037:1:3:0x1.266666666666666666666666668p1:
+%*3Le:2.3441674165664647186659237648155017216e037:0:3:
+%3Le:2.3441674165664647186659237648155017216e+37:1:3:0x1.266666666666666666666666668p1:
+%*3Le:2.3441674165664647186659237648155017216e+37:0:3:
+%3Le:1.79769313486231580793728971405301199e308:1:3:0x1.b3333333333333333333333333:
+%*3Le:1.79769313486231580793728971405301199e308:0:3:
+%3Le:1.79769313486231580793728971405301199e+308:1:3:0x1.b3333333333333333333333333:
+%*3Le:1.79769313486231580793728971405301199e+308:0:3:
+%3Le:infinity:1:3:inf:
+%*3Le:infinity:0:3:
+%3Le:+nan():0:-1:
+%*3Le:+nan():0:-1:
+%3Le:+nan(09A_Zaz):0:-1:
+%*3Le:+nan(09A_Zaz):0:-1:
+%3Le:+0e0:0:-1:
+%*3Le:+0e0:0:-1:
+%3Le:+0e+0:0:-1:
+%*3Le:+0e+0:0:-1:
+%3Le:+2.00416836000897277799610805135016205e-292:1:3:0x1p1:
+%*3Le:+2.00416836000897277799610805135016205e-292:0:3:
+%3Le:+2.3441674165664647186659237648155017216e037:1:3:0x1p1:
+%*3Le:+2.3441674165664647186659237648155017216e037:0:3:
+%3Le:+2.3441674165664647186659237648155017216e+37:1:3:0x1p1:
+%*3Le:+2.3441674165664647186659237648155017216e+37:0:3:
+%3Le:+1.79769313486231580793728971405301199e308:1:3:0x1:
+%*3Le:+1.79769313486231580793728971405301199e308:0:3:
+%3Le:+1.79769313486231580793728971405301199e+308:1:3:0x1:
+%*3Le:+1.79769313486231580793728971405301199e+308:0:3:
+%3Le:+infinity:0:-1:
+%*3Le:+infinity:0:-1:
+%4Le::0:-1:
+%*4Le::0:-1:
+%4Le:-infinity:1:4:-inf:
+%*4Le:-infinity:0:4:
+%4Le:-1.79769313486231580793728971405301199e+308:1:4:-0x1.b3333333333333333333333333:
+%*4Le:-1.79769313486231580793728971405301199e+308:0:4:
+%4Le:-1.79769313486231580793728971405301199e308:1:4:-0x1.b3333333333333333333333333:
+%*4Le:-1.79769313486231580793728971405301199e308:0:4:
+%4Le:-2.3441674165664647186659237648155017216e+37:1:4:-0x1.266666666666666666666666668p1:
+%*4Le:-2.3441674165664647186659237648155017216e+37:0:4:
+%4Le:-2.3441674165664647186659237648155017216e037:1:4:-0x1.266666666666666666666666668p1:
+%*4Le:-2.3441674165664647186659237648155017216e037:0:4:
+%4Le:-2.00416836000897277799610805135016205e-292:1:4:-0x1p1:
+%*4Le:-2.00416836000897277799610805135016205e-292:0:4:
+%4Le:-0e+0:0:-1:
+%*4Le:-0e+0:0:-1:
+%4Le:-0e0:1:4:-0x0:
+%*4Le:-0e0:0:4:
+%4Le:-nan(09A_Zaz):1:4:-nan:
+%*4Le:-nan(09A_Zaz):0:4:
+%4Le:-nan():1:4:-nan:
+%*4Le:-nan():0:4:
+%4Le:nan():0:-1:
+%*4Le:nan():0:-1:
+%4Le:nan(09A_Zaz):0:-1:
+%*4Le:nan(09A_Zaz):0:-1:
+%4Le:0e0:1:3:0x0:
+%*4Le:0e0:0:3:
+%4Le:0e+0:1:4:0x0:
+%*4Le:0e+0:0:4:
+%4Le:2.00416836000897277799610805135016205e-292:1:4:0x1p1:
+%*4Le:2.00416836000897277799610805135016205e-292:0:4:
+%4Le:2.3441674165664647186659237648155017216e037:1:4:0x1.2b851eb851eb851eb851eb851e8p1:
+%*4Le:2.3441674165664647186659237648155017216e037:0:4:
+%4Le:2.3441674165664647186659237648155017216e+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1:
+%*4Le:2.3441674165664647186659237648155017216e+37:0:4:
+%4Le:1.79769313486231580793728971405301199e308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708:
+%*4Le:1.79769313486231580793728971405301199e308:0:4:
+%4Le:1.79769313486231580793728971405301199e+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708:
+%*4Le:1.79769313486231580793728971405301199e+308:0:4:
+%4Le:infinity:0:-1:
+%*4Le:infinity:0:-1:
+%4Le:+nan():1:4:nan:
+%*4Le:+nan():0:4:
+%4Le:+nan(09A_Zaz):1:4:nan:
+%*4Le:+nan(09A_Zaz):0:4:
+%4Le:+0e0:1:4:0x0:
+%*4Le:+0e0:0:4:
+%4Le:+0e+0:0:-1:
+%*4Le:+0e+0:0:-1:
+%4Le:+2.00416836000897277799610805135016205e-292:1:4:0x1p1:
+%*4Le:+2.00416836000897277799610805135016205e-292:0:4:
+%4Le:+2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1:
+%*4Le:+2.3441674165664647186659237648155017216e037:0:4:
+%4Le:+2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1:
+%*4Le:+2.3441674165664647186659237648155017216e+37:0:4:
+%4Le:+1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333:
+%*4Le:+1.79769313486231580793728971405301199e308:0:4:
+%4Le:+1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333:
+%*4Le:+1.79769313486231580793728971405301199e+308:0:4:
+%4Le:+infinity:1:4:inf:
+%*4Le:+infinity:0:4:
+%40Le::0:-1:
+%*40Le::0:-1:
+%40Le:-infinity:1:9:-inf:
+%*40Le:-infinity:0:9:
+%40Le:-1.79769313486231580793728971405301199e+308:0:-1:
+%*40Le:-1.79769313486231580793728971405301199e+308:0:-1:
+%40Le:-1.79769313486231580793728971405301199e308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40Le:-1.79769313486231580793728971405301199e308:0:40:
+%40Le:-2.3441674165664647186659237648155017216e+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40Le:-2.3441674165664647186659237648155017216e+37:0:40:
+%40Le:-2.3441674165664647186659237648155017216e037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40Le:-2.3441674165664647186659237648155017216e037:0:40:
+%40Le:-2.00416836000897277799610805135016205e-292:0:-1:
+%*40Le:-2.00416836000897277799610805135016205e-292:0:-1:
+%40Le:-0e+0:1:5:-0x0:
+%*40Le:-0e+0:0:5:
+%40Le:-0e0:1:4:-0x0:
+%*40Le:-0e0:0:4:
+%40Le:-nan(09A_Zaz):1:13:-nan:
+%*40Le:-nan(09A_Zaz):0:13:
+%40Le:-nan():1:6:-nan:
+%*40Le:-nan():0:6:
+%40Le:nan():1:5:nan:
+%*40Le:nan():0:5:
+%40Le:nan(09A_Zaz):1:12:nan:
+%*40Le:nan(09A_Zaz):0:12:
+%40Le:0e0:1:3:0x0:
+%*40Le:0e0:0:3:
+%40Le:0e+0:1:4:0x0:
+%*40Le:0e+0:0:4:
+%40Le:2.00416836000897277799610805135016205e-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6:
+%*40Le:2.00416836000897277799610805135016205e-292:0:40:
+%40Le:2.3441674165664647186659237648155017216e037:0:-1:
+%*40Le:2.3441674165664647186659237648155017216e037:0:-1:
+%40Le:2.3441674165664647186659237648155017216e+37:0:-1:
+%*40Le:2.3441674165664647186659237648155017216e+37:0:-1:
+%40Le:1.79769313486231580793728971405301199e308:1:40:0x1.6b0a8e891ffff0af2d6def985p100:
+%*40Le:1.79769313486231580793728971405301199e308:0:40:
+%40Le:1.79769313486231580793728971405301199e+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40Le:1.79769313486231580793728971405301199e+308:0:40:
+%40Le:infinity:1:8:inf:
+%*40Le:infinity:0:8:
+%40Le:+nan():1:6:nan:
+%*40Le:+nan():0:6:
+%40Le:+nan(09A_Zaz):1:13:nan:
+%*40Le:+nan(09A_Zaz):0:13:
+%40Le:+0e0:1:4:0x0:
+%*40Le:+0e0:0:4:
+%40Le:+0e+0:1:5:0x0:
+%*40Le:+0e+0:0:5:
+%40Le:+2.00416836000897277799610805135016205e-292:0:-1:
+%*40Le:+2.00416836000897277799610805135016205e-292:0:-1:
+%40Le:+2.3441674165664647186659237648155017216e037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40Le:+2.3441674165664647186659237648155017216e037:0:40:
+%40Le:+2.3441674165664647186659237648155017216e+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40Le:+2.3441674165664647186659237648155017216e+37:0:40:
+%40Le:+1.79769313486231580793728971405301199e308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40Le:+1.79769313486231580793728971405301199e308:0:40:
+%40Le:+1.79769313486231580793728971405301199e+308:0:-1:
+%*40Le:+1.79769313486231580793728971405301199e+308:0:-1:
+%40Le:+infinity:1:9:inf:
+%*40Le:+infinity:0:9:
+%48Le::0:-1:
+%*48Le::0:-1:
+%48Le:-infinity:1:9:-inf:
+%*48Le:-infinity:0:9:
+%48Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:-1.79769313486231580793728971405301199e+308:0:43:
+%48Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:-1.79769313486231580793728971405301199e308:0:42:
+%48Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:-2.3441674165664647186659237648155017216e+37:0:44:
+%48Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:-2.3441674165664647186659237648155017216e037:0:44:
+%48Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969:
+%*48Le:-2.00416836000897277799610805135016205e-292:0:43:
+%48Le:-0e+0:1:5:-0x0:
+%*48Le:-0e+0:0:5:
+%48Le:-0e0:1:4:-0x0:
+%*48Le:-0e0:0:4:
+%48Le:-nan(09A_Zaz):1:13:-nan:
+%*48Le:-nan(09A_Zaz):0:13:
+%48Le:-nan():1:6:-nan:
+%*48Le:-nan():0:6:
+%48Le:nan():1:5:nan:
+%*48Le:nan():0:5:
+%48Le:nan(09A_Zaz):1:12:nan:
+%*48Le:nan(09A_Zaz):0:12:
+%48Le:0e0:1:3:0x0:
+%*48Le:0e0:0:3:
+%48Le:0e+0:1:4:0x0:
+%*48Le:0e+0:0:4:
+%48Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969:
+%*48Le:2.00416836000897277799610805135016205e-292:0:42:
+%48Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:2.3441674165664647186659237648155017216e037:0:43:
+%48Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:2.3441674165664647186659237648155017216e+37:0:43:
+%48Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:1.79769313486231580793728971405301199e308:0:41:
+%48Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:1.79769313486231580793728971405301199e+308:0:42:
+%48Le:infinity:1:8:inf:
+%*48Le:infinity:0:8:
+%48Le:+nan():1:6:nan:
+%*48Le:+nan():0:6:
+%48Le:+nan(09A_Zaz):1:13:nan:
+%*48Le:+nan(09A_Zaz):0:13:
+%48Le:+0e0:1:4:0x0:
+%*48Le:+0e0:0:4:
+%48Le:+0e+0:1:5:0x0:
+%*48Le:+0e+0:0:5:
+%48Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969:
+%*48Le:+2.00416836000897277799610805135016205e-292:0:43:
+%48Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:+2.3441674165664647186659237648155017216e037:0:44:
+%48Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le:+2.3441674165664647186659237648155017216e+37:0:44:
+%48Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:+1.79769313486231580793728971405301199e308:0:42:
+%48Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le:+1.79769313486231580793728971405301199e+308:0:43:
+%48Le:+infinity:1:9:inf:
+%*48Le:+infinity:0:9:
+%3Le: :0:-1:
+%*3Le: :0:-1:
+%3Le: -infinity:0:-1:
+%*3Le: -infinity:0:-1:
+%3Le: -1.79769313486231580793728971405301199e+308:1:4:-0x1:
+%*3Le: -1.79769313486231580793728971405301199e+308:0:4:
+%3Le: -1.79769313486231580793728971405301199e308:1:4:-0x1:
+%*3Le: -1.79769313486231580793728971405301199e308:0:4:
+%3Le: -2.3441674165664647186659237648155017216e+37:1:4:-0x1p1:
+%*3Le: -2.3441674165664647186659237648155017216e+37:0:4:
+%3Le: -2.3441674165664647186659237648155017216e037:1:4:-0x1p1:
+%*3Le: -2.3441674165664647186659237648155017216e037:0:4:
+%3Le: -2.00416836000897277799610805135016205e-292:1:4:-0x1p1:
+%*3Le: -2.00416836000897277799610805135016205e-292:0:4:
+%3Le: -0e+0:0:-1:
+%*3Le: -0e+0:0:-1:
+%3Le: -0e0:0:-1:
+%*3Le: -0e0:0:-1:
+%3Le: -nan(09A_Zaz):0:-1:
+%*3Le: -nan(09A_Zaz):0:-1:
+%3Le: -nan():0:-1:
+%*3Le: -nan():0:-1:
+%3Le: nan():1:4:nan:
+%*3Le: nan():0:4:
+%3Le: nan(09A_Zaz):1:4:nan:
+%*3Le: nan(09A_Zaz):0:4:
+%3Le: 0e0:1:4:0x0:
+%*3Le: 0e0:0:4:
+%3Le: 0e+0:0:-1:
+%*3Le: 0e+0:0:-1:
+%3Le: 2.00416836000897277799610805135016205e-292:1:4:0x1p1:
+%*3Le: 2.00416836000897277799610805135016205e-292:0:4:
+%3Le: 2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1:
+%*3Le: 2.3441674165664647186659237648155017216e037:0:4:
+%3Le: 2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1:
+%*3Le: 2.3441674165664647186659237648155017216e+37:0:4:
+%3Le: 1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333:
+%*3Le: 1.79769313486231580793728971405301199e308:0:4:
+%3Le: 1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333:
+%*3Le: 1.79769313486231580793728971405301199e+308:0:4:
+%3Le: infinity:1:4:inf:
+%*3Le: infinity:0:4:
+%3Le: +nan():0:-1:
+%*3Le: +nan():0:-1:
+%3Le: +nan(09A_Zaz):0:-1:
+%*3Le: +nan(09A_Zaz):0:-1:
+%3Le: +0e0:0:-1:
+%*3Le: +0e0:0:-1:
+%3Le: +0e+0:0:-1:
+%*3Le: +0e+0:0:-1:
+%3Le: +2.00416836000897277799610805135016205e-292:1:4:0x1p1:
+%*3Le: +2.00416836000897277799610805135016205e-292:0:4:
+%3Le: +2.3441674165664647186659237648155017216e037:1:4:0x1p1:
+%*3Le: +2.3441674165664647186659237648155017216e037:0:4:
+%3Le: +2.3441674165664647186659237648155017216e+37:1:4:0x1p1:
+%*3Le: +2.3441674165664647186659237648155017216e+37:0:4:
+%3Le: +1.79769313486231580793728971405301199e308:1:4:0x1:
+%*3Le: +1.79769313486231580793728971405301199e308:0:4:
+%3Le: +1.79769313486231580793728971405301199e+308:1:4:0x1:
+%*3Le: +1.79769313486231580793728971405301199e+308:0:4:
+%3Le: +infinity:0:-1:
+%*3Le: +infinity:0:-1:
+%48Le: :0:-1:
+%*48Le: :0:-1:
+%48Le: -infinity:1:10:-inf:
+%*48Le: -infinity:0:10:
+%48Le: -1.79769313486231580793728971405301199e+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: -1.79769313486231580793728971405301199e+308:0:44:
+%48Le: -1.79769313486231580793728971405301199e308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: -1.79769313486231580793728971405301199e308:0:43:
+%48Le: -2.3441674165664647186659237648155017216e+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: -2.3441674165664647186659237648155017216e+37:0:45:
+%48Le: -2.3441674165664647186659237648155017216e037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: -2.3441674165664647186659237648155017216e037:0:45:
+%48Le: -2.00416836000897277799610805135016205e-292:1:44:-0x1p-969:
+%*48Le: -2.00416836000897277799610805135016205e-292:0:44:
+%48Le: -0e+0:1:6:-0x0:
+%*48Le: -0e+0:0:6:
+%48Le: -0e0:1:5:-0x0:
+%*48Le: -0e0:0:5:
+%48Le: -nan(09A_Zaz):1:14:-nan:
+%*48Le: -nan(09A_Zaz):0:14:
+%48Le: -nan():1:7:-nan:
+%*48Le: -nan():0:7:
+%48Le: nan():1:6:nan:
+%*48Le: nan():0:6:
+%48Le: nan(09A_Zaz):1:13:nan:
+%*48Le: nan(09A_Zaz):0:13:
+%48Le: 0e0:1:4:0x0:
+%*48Le: 0e0:0:4:
+%48Le: 0e+0:1:5:0x0:
+%*48Le: 0e+0:0:5:
+%48Le: 2.00416836000897277799610805135016205e-292:1:43:0x1p-969:
+%*48Le: 2.00416836000897277799610805135016205e-292:0:43:
+%48Le: 2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: 2.3441674165664647186659237648155017216e037:0:44:
+%48Le: 2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: 2.3441674165664647186659237648155017216e+37:0:44:
+%48Le: 1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: 1.79769313486231580793728971405301199e308:0:42:
+%48Le: 1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: 1.79769313486231580793728971405301199e+308:0:43:
+%48Le: infinity:1:9:inf:
+%*48Le: infinity:0:9:
+%48Le: +nan():1:7:nan:
+%*48Le: +nan():0:7:
+%48Le: +nan(09A_Zaz):1:14:nan:
+%*48Le: +nan(09A_Zaz):0:14:
+%48Le: +0e0:1:5:0x0:
+%*48Le: +0e0:0:5:
+%48Le: +0e+0:1:6:0x0:
+%*48Le: +0e+0:0:6:
+%48Le: +2.00416836000897277799610805135016205e-292:1:44:0x1p-969:
+%*48Le: +2.00416836000897277799610805135016205e-292:0:44:
+%48Le: +2.3441674165664647186659237648155017216e037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: +2.3441674165664647186659237648155017216e037:0:45:
+%48Le: +2.3441674165664647186659237648155017216e+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48Le: +2.3441674165664647186659237648155017216e+37:0:45:
+%48Le: +1.79769313486231580793728971405301199e308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: +1.79769313486231580793728971405301199e308:0:43:
+%48Le: +1.79769313486231580793728971405301199e+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48Le: +1.79769313486231580793728971405301199e+308:0:44:
+%48Le: +infinity:1:10:inf:
+%*48Le: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input
new file mode 100644
index 0000000..29a2d9d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input
@@ -0,0 +1,558 @@
+%LE::0:-1:
+%*LE::0:-1:
+%LE:-INFINITY:1:9:-inf:
+%*LE:-INFINITY:0:9:
+%LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:-1.79769313486231580793728971405301199E+308:0:43:
+%LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:-1.79769313486231580793728971405301199E308:0:42:
+%LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:-2.3441674165664647186659237648155017216E+37:0:44:
+%LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:-2.3441674165664647186659237648155017216E037:0:44:
+%LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969:
+%*LE:-2.00416836000897277799610805135016205E-292:0:43:
+%LE:-0E+0:1:5:-0x0:
+%*LE:-0E+0:0:5:
+%LE:-0E0:1:4:-0x0:
+%*LE:-0E0:0:4:
+%LE:-NAN(09A_Zaz):1:13:-nan:
+%*LE:-NAN(09A_Zaz):0:13:
+%LE:-NAN():1:6:-nan:
+%*LE:-NAN():0:6:
+%LE:NAN():1:5:nan:
+%*LE:NAN():0:5:
+%LE:NAN(09A_Zaz):1:12:nan:
+%*LE:NAN(09A_Zaz):0:12:
+%LE:0E0:1:3:0x0:
+%*LE:0E0:0:3:
+%LE:0E+0:1:4:0x0:
+%*LE:0E+0:0:4:
+%LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969:
+%*LE:2.00416836000897277799610805135016205E-292:0:42:
+%LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:2.3441674165664647186659237648155017216E037:0:43:
+%LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:2.3441674165664647186659237648155017216E+37:0:43:
+%LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:1.79769313486231580793728971405301199E308:0:41:
+%LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:1.79769313486231580793728971405301199E+308:0:42:
+%LE:INFINITY:1:8:inf:
+%*LE:INFINITY:0:8:
+%LE:+NAN():1:6:nan:
+%*LE:+NAN():0:6:
+%LE:+NAN(09A_Zaz):1:13:nan:
+%*LE:+NAN(09A_Zaz):0:13:
+%LE:+0E0:1:4:0x0:
+%*LE:+0E0:0:4:
+%LE:+0E+0:1:5:0x0:
+%*LE:+0E+0:0:5:
+%LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969:
+%*LE:+2.00416836000897277799610805135016205E-292:0:43:
+%LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:+2.3441674165664647186659237648155017216E037:0:44:
+%LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LE:+2.3441674165664647186659237648155017216E+37:0:44:
+%LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:+1.79769313486231580793728971405301199E308:0:42:
+%LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LE:+1.79769313486231580793728971405301199E+308:0:43:
+%LE:+INFINITY:1:9:inf:
+%*LE:+INFINITY:0:9:
+%1LE::0:-1:
+%*1LE::0:-1:
+%1LE:-INFINITY:0:-1:
+%*1LE:-INFINITY:0:-1:
+%1LE:-1.79769313486231580793728971405301199E+308:0:-1:
+%*1LE:-1.79769313486231580793728971405301199E+308:0:-1:
+%1LE:-1.79769313486231580793728971405301199E308:0:-1:
+%*1LE:-1.79769313486231580793728971405301199E308:0:-1:
+%1LE:-2.3441674165664647186659237648155017216E+37:0:-1:
+%*1LE:-2.3441674165664647186659237648155017216E+37:0:-1:
+%1LE:-2.3441674165664647186659237648155017216E037:0:-1:
+%*1LE:-2.3441674165664647186659237648155017216E037:0:-1:
+%1LE:-2.00416836000897277799610805135016205E-292:0:-1:
+%*1LE:-2.00416836000897277799610805135016205E-292:0:-1:
+%1LE:-0E+0:0:-1:
+%*1LE:-0E+0:0:-1:
+%1LE:-0E0:0:-1:
+%*1LE:-0E0:0:-1:
+%1LE:-NAN(09A_Zaz):0:-1:
+%*1LE:-NAN(09A_Zaz):0:-1:
+%1LE:-NAN():0:-1:
+%*1LE:-NAN():0:-1:
+%1LE:NAN():0:-1:
+%*1LE:NAN():0:-1:
+%1LE:NAN(09A_Zaz):0:-1:
+%*1LE:NAN(09A_Zaz):0:-1:
+%1LE:0E0:1:1:0x0:
+%*1LE:0E0:0:1:
+%1LE:0E+0:1:1:0x0:
+%*1LE:0E+0:0:1:
+%1LE:2.00416836000897277799610805135016205E-292:1:1:0x1p1:
+%*1LE:2.00416836000897277799610805135016205E-292:0:1:
+%1LE:2.3441674165664647186659237648155017216E037:1:1:0x1p1:
+%*1LE:2.3441674165664647186659237648155017216E037:0:1:
+%1LE:2.3441674165664647186659237648155017216E+37:1:1:0x1p1:
+%*1LE:2.3441674165664647186659237648155017216E+37:0:1:
+%1LE:1.79769313486231580793728971405301199E308:1:1:0x1:
+%*1LE:1.79769313486231580793728971405301199E308:0:1:
+%1LE:1.79769313486231580793728971405301199E+308:1:1:0x1:
+%*1LE:1.79769313486231580793728971405301199E+308:0:1:
+%1LE:INFINITY:0:-1:
+%*1LE:INFINITY:0:-1:
+%1LE:+NAN():0:-1:
+%*1LE:+NAN():0:-1:
+%1LE:+NAN(09A_Zaz):0:-1:
+%*1LE:+NAN(09A_Zaz):0:-1:
+%1LE:+0E0:0:-1:
+%*1LE:+0E0:0:-1:
+%1LE:+0E+0:0:-1:
+%*1LE:+0E+0:0:-1:
+%1LE:+2.00416836000897277799610805135016205E-292:0:-1:
+%*1LE:+2.00416836000897277799610805135016205E-292:0:-1:
+%1LE:+2.3441674165664647186659237648155017216E037:0:-1:
+%*1LE:+2.3441674165664647186659237648155017216E037:0:-1:
+%1LE:+2.3441674165664647186659237648155017216E+37:0:-1:
+%*1LE:+2.3441674165664647186659237648155017216E+37:0:-1:
+%1LE:+1.79769313486231580793728971405301199E308:0:-1:
+%*1LE:+1.79769313486231580793728971405301199E308:0:-1:
+%1LE:+1.79769313486231580793728971405301199E+308:0:-1:
+%*1LE:+1.79769313486231580793728971405301199E+308:0:-1:
+%1LE:+INFINITY:0:-1:
+%*1LE:+INFINITY:0:-1:
+%2LE::0:-1:
+%*2LE::0:-1:
+%2LE:-INFINITY:0:-1:
+%*2LE:-INFINITY:0:-1:
+%2LE:-1.79769313486231580793728971405301199E+308:1:2:-0x1:
+%*2LE:-1.79769313486231580793728971405301199E+308:0:2:
+%2LE:-1.79769313486231580793728971405301199E308:1:2:-0x1:
+%*2LE:-1.79769313486231580793728971405301199E308:0:2:
+%2LE:-2.3441674165664647186659237648155017216E+37:1:2:-0x1p1:
+%*2LE:-2.3441674165664647186659237648155017216E+37:0:2:
+%2LE:-2.3441674165664647186659237648155017216E037:1:2:-0x1p1:
+%*2LE:-2.3441674165664647186659237648155017216E037:0:2:
+%2LE:-2.00416836000897277799610805135016205E-292:1:2:-0x1p1:
+%*2LE:-2.00416836000897277799610805135016205E-292:0:2:
+%2LE:-0E+0:1:2:-0x0:
+%*2LE:-0E+0:0:2:
+%2LE:-0E0:1:2:-0x0:
+%*2LE:-0E0:0:2:
+%2LE:-NAN(09A_Zaz):0:-1:
+%*2LE:-NAN(09A_Zaz):0:-1:
+%2LE:-NAN():0:-1:
+%*2LE:-NAN():0:-1:
+%2LE:NAN():0:-1:
+%*2LE:NAN():0:-1:
+%2LE:NAN(09A_Zaz):0:-1:
+%*2LE:NAN(09A_Zaz):0:-1:
+%2LE:0E0:0:-1:
+%*2LE:0E0:0:-1:
+%2LE:0E+0:0:-1:
+%*2LE:0E+0:0:-1:
+%2LE:2.00416836000897277799610805135016205E-292:1:2:0x1p1:
+%*2LE:2.00416836000897277799610805135016205E-292:0:2:
+%2LE:2.3441674165664647186659237648155017216E037:1:2:0x1p1:
+%*2LE:2.3441674165664647186659237648155017216E037:0:2:
+%2LE:2.3441674165664647186659237648155017216E+37:1:2:0x1p1:
+%*2LE:2.3441674165664647186659237648155017216E+37:0:2:
+%2LE:1.79769313486231580793728971405301199E308:1:2:0x1:
+%*2LE:1.79769313486231580793728971405301199E308:0:2:
+%2LE:1.79769313486231580793728971405301199E+308:1:2:0x1:
+%*2LE:1.79769313486231580793728971405301199E+308:0:2:
+%2LE:INFINITY:0:-1:
+%*2LE:INFINITY:0:-1:
+%2LE:+NAN():0:-1:
+%*2LE:+NAN():0:-1:
+%2LE:+NAN(09A_Zaz):0:-1:
+%*2LE:+NAN(09A_Zaz):0:-1:
+%2LE:+0E0:1:2:0x0:
+%*2LE:+0E0:0:2:
+%2LE:+0E+0:1:2:0x0:
+%*2LE:+0E+0:0:2:
+%2LE:+2.00416836000897277799610805135016205E-292:1:2:0x1p1:
+%*2LE:+2.00416836000897277799610805135016205E-292:0:2:
+%2LE:+2.3441674165664647186659237648155017216E037:1:2:0x1p1:
+%*2LE:+2.3441674165664647186659237648155017216E037:0:2:
+%2LE:+2.3441674165664647186659237648155017216E+37:1:2:0x1p1:
+%*2LE:+2.3441674165664647186659237648155017216E+37:0:2:
+%2LE:+1.79769313486231580793728971405301199E308:1:2:0x1:
+%*2LE:+1.79769313486231580793728971405301199E308:0:2:
+%2LE:+1.79769313486231580793728971405301199E+308:1:2:0x1:
+%*2LE:+1.79769313486231580793728971405301199E+308:0:2:
+%2LE:+INFINITY:0:-1:
+%*2LE:+INFINITY:0:-1:
+%3LE::0:-1:
+%*3LE::0:-1:
+%3LE:-INFINITY:0:-1:
+%*3LE:-INFINITY:0:-1:
+%3LE:-1.79769313486231580793728971405301199E+308:1:3:-0x1:
+%*3LE:-1.79769313486231580793728971405301199E+308:0:3:
+%3LE:-1.79769313486231580793728971405301199E308:1:3:-0x1:
+%*3LE:-1.79769313486231580793728971405301199E308:0:3:
+%3LE:-2.3441674165664647186659237648155017216E+37:1:3:-0x1p1:
+%*3LE:-2.3441674165664647186659237648155017216E+37:0:3:
+%3LE:-2.3441674165664647186659237648155017216E037:1:3:-0x1p1:
+%*3LE:-2.3441674165664647186659237648155017216E037:0:3:
+%3LE:-2.00416836000897277799610805135016205E-292:1:3:-0x1p1:
+%*3LE:-2.00416836000897277799610805135016205E-292:0:3:
+%3LE:-0E+0:0:-1:
+%*3LE:-0E+0:0:-1:
+%3LE:-0E0:0:-1:
+%*3LE:-0E0:0:-1:
+%3LE:-NAN(09A_Zaz):0:-1:
+%*3LE:-NAN(09A_Zaz):0:-1:
+%3LE:-NAN():0:-1:
+%*3LE:-NAN():0:-1:
+%3LE:NAN():1:3:nan:
+%*3LE:NAN():0:3:
+%3LE:NAN(09A_Zaz):1:3:nan:
+%*3LE:NAN(09A_Zaz):0:3:
+%3LE:0E0:1:3:0x0:
+%*3LE:0E0:0:3:
+%3LE:0E+0:0:-1:
+%*3LE:0E+0:0:-1:
+%3LE:2.00416836000897277799610805135016205E-292:1:3:0x1p1:
+%*3LE:2.00416836000897277799610805135016205E-292:0:3:
+%3LE:2.3441674165664647186659237648155017216E037:1:3:0x1.266666666666666666666666668p1:
+%*3LE:2.3441674165664647186659237648155017216E037:0:3:
+%3LE:2.3441674165664647186659237648155017216E+37:1:3:0x1.266666666666666666666666668p1:
+%*3LE:2.3441674165664647186659237648155017216E+37:0:3:
+%3LE:1.79769313486231580793728971405301199E308:1:3:0x1.b3333333333333333333333333:
+%*3LE:1.79769313486231580793728971405301199E308:0:3:
+%3LE:1.79769313486231580793728971405301199E+308:1:3:0x1.b3333333333333333333333333:
+%*3LE:1.79769313486231580793728971405301199E+308:0:3:
+%3LE:INFINITY:1:3:inf:
+%*3LE:INFINITY:0:3:
+%3LE:+NAN():0:-1:
+%*3LE:+NAN():0:-1:
+%3LE:+NAN(09A_Zaz):0:-1:
+%*3LE:+NAN(09A_Zaz):0:-1:
+%3LE:+0E0:0:-1:
+%*3LE:+0E0:0:-1:
+%3LE:+0E+0:0:-1:
+%*3LE:+0E+0:0:-1:
+%3LE:+2.00416836000897277799610805135016205E-292:1:3:0x1p1:
+%*3LE:+2.00416836000897277799610805135016205E-292:0:3:
+%3LE:+2.3441674165664647186659237648155017216E037:1:3:0x1p1:
+%*3LE:+2.3441674165664647186659237648155017216E037:0:3:
+%3LE:+2.3441674165664647186659237648155017216E+37:1:3:0x1p1:
+%*3LE:+2.3441674165664647186659237648155017216E+37:0:3:
+%3LE:+1.79769313486231580793728971405301199E308:1:3:0x1:
+%*3LE:+1.79769313486231580793728971405301199E308:0:3:
+%3LE:+1.79769313486231580793728971405301199E+308:1:3:0x1:
+%*3LE:+1.79769313486231580793728971405301199E+308:0:3:
+%3LE:+INFINITY:0:-1:
+%*3LE:+INFINITY:0:-1:
+%4LE::0:-1:
+%*4LE::0:-1:
+%4LE:-INFINITY:1:4:-inf:
+%*4LE:-INFINITY:0:4:
+%4LE:-1.79769313486231580793728971405301199E+308:1:4:-0x1.b3333333333333333333333333:
+%*4LE:-1.79769313486231580793728971405301199E+308:0:4:
+%4LE:-1.79769313486231580793728971405301199E308:1:4:-0x1.b3333333333333333333333333:
+%*4LE:-1.79769313486231580793728971405301199E308:0:4:
+%4LE:-2.3441674165664647186659237648155017216E+37:1:4:-0x1.266666666666666666666666668p1:
+%*4LE:-2.3441674165664647186659237648155017216E+37:0:4:
+%4LE:-2.3441674165664647186659237648155017216E037:1:4:-0x1.266666666666666666666666668p1:
+%*4LE:-2.3441674165664647186659237648155017216E037:0:4:
+%4LE:-2.00416836000897277799610805135016205E-292:1:4:-0x1p1:
+%*4LE:-2.00416836000897277799610805135016205E-292:0:4:
+%4LE:-0E+0:0:-1:
+%*4LE:-0E+0:0:-1:
+%4LE:-0E0:1:4:-0x0:
+%*4LE:-0E0:0:4:
+%4LE:-NAN(09A_Zaz):1:4:-nan:
+%*4LE:-NAN(09A_Zaz):0:4:
+%4LE:-NAN():1:4:-nan:
+%*4LE:-NAN():0:4:
+%4LE:NAN():0:-1:
+%*4LE:NAN():0:-1:
+%4LE:NAN(09A_Zaz):0:-1:
+%*4LE:NAN(09A_Zaz):0:-1:
+%4LE:0E0:1:3:0x0:
+%*4LE:0E0:0:3:
+%4LE:0E+0:1:4:0x0:
+%*4LE:0E+0:0:4:
+%4LE:2.00416836000897277799610805135016205E-292:1:4:0x1p1:
+%*4LE:2.00416836000897277799610805135016205E-292:0:4:
+%4LE:2.3441674165664647186659237648155017216E037:1:4:0x1.2b851eb851eb851eb851eb851e8p1:
+%*4LE:2.3441674165664647186659237648155017216E037:0:4:
+%4LE:2.3441674165664647186659237648155017216E+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1:
+%*4LE:2.3441674165664647186659237648155017216E+37:0:4:
+%4LE:1.79769313486231580793728971405301199E308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708:
+%*4LE:1.79769313486231580793728971405301199E308:0:4:
+%4LE:1.79769313486231580793728971405301199E+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708:
+%*4LE:1.79769313486231580793728971405301199E+308:0:4:
+%4LE:INFINITY:0:-1:
+%*4LE:INFINITY:0:-1:
+%4LE:+NAN():1:4:nan:
+%*4LE:+NAN():0:4:
+%4LE:+NAN(09A_Zaz):1:4:nan:
+%*4LE:+NAN(09A_Zaz):0:4:
+%4LE:+0E0:1:4:0x0:
+%*4LE:+0E0:0:4:
+%4LE:+0E+0:0:-1:
+%*4LE:+0E+0:0:-1:
+%4LE:+2.00416836000897277799610805135016205E-292:1:4:0x1p1:
+%*4LE:+2.00416836000897277799610805135016205E-292:0:4:
+%4LE:+2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1:
+%*4LE:+2.3441674165664647186659237648155017216E037:0:4:
+%4LE:+2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1:
+%*4LE:+2.3441674165664647186659237648155017216E+37:0:4:
+%4LE:+1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333:
+%*4LE:+1.79769313486231580793728971405301199E308:0:4:
+%4LE:+1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333:
+%*4LE:+1.79769313486231580793728971405301199E+308:0:4:
+%4LE:+INFINITY:1:4:inf:
+%*4LE:+INFINITY:0:4:
+%40LE::0:-1:
+%*40LE::0:-1:
+%40LE:-INFINITY:1:9:-inf:
+%*40LE:-INFINITY:0:9:
+%40LE:-1.79769313486231580793728971405301199E+308:0:-1:
+%*40LE:-1.79769313486231580793728971405301199E+308:0:-1:
+%40LE:-1.79769313486231580793728971405301199E308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40LE:-1.79769313486231580793728971405301199E308:0:40:
+%40LE:-2.3441674165664647186659237648155017216E+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40LE:-2.3441674165664647186659237648155017216E+37:0:40:
+%40LE:-2.3441674165664647186659237648155017216E037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40LE:-2.3441674165664647186659237648155017216E037:0:40:
+%40LE:-2.00416836000897277799610805135016205E-292:0:-1:
+%*40LE:-2.00416836000897277799610805135016205E-292:0:-1:
+%40LE:-0E+0:1:5:-0x0:
+%*40LE:-0E+0:0:5:
+%40LE:-0E0:1:4:-0x0:
+%*40LE:-0E0:0:4:
+%40LE:-NAN(09A_Zaz):1:13:-nan:
+%*40LE:-NAN(09A_Zaz):0:13:
+%40LE:-NAN():1:6:-nan:
+%*40LE:-NAN():0:6:
+%40LE:NAN():1:5:nan:
+%*40LE:NAN():0:5:
+%40LE:NAN(09A_Zaz):1:12:nan:
+%*40LE:NAN(09A_Zaz):0:12:
+%40LE:0E0:1:3:0x0:
+%*40LE:0E0:0:3:
+%40LE:0E+0:1:4:0x0:
+%*40LE:0E+0:0:4:
+%40LE:2.00416836000897277799610805135016205E-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6:
+%*40LE:2.00416836000897277799610805135016205E-292:0:40:
+%40LE:2.3441674165664647186659237648155017216E037:0:-1:
+%*40LE:2.3441674165664647186659237648155017216E037:0:-1:
+%40LE:2.3441674165664647186659237648155017216E+37:0:-1:
+%*40LE:2.3441674165664647186659237648155017216E+37:0:-1:
+%40LE:1.79769313486231580793728971405301199E308:1:40:0x1.6b0a8e891ffff0af2d6def985p100:
+%*40LE:1.79769313486231580793728971405301199E308:0:40:
+%40LE:1.79769313486231580793728971405301199E+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40LE:1.79769313486231580793728971405301199E+308:0:40:
+%40LE:INFINITY:1:8:inf:
+%*40LE:INFINITY:0:8:
+%40LE:+NAN():1:6:nan:
+%*40LE:+NAN():0:6:
+%40LE:+NAN(09A_Zaz):1:13:nan:
+%*40LE:+NAN(09A_Zaz):0:13:
+%40LE:+0E0:1:4:0x0:
+%*40LE:+0E0:0:4:
+%40LE:+0E+0:1:5:0x0:
+%*40LE:+0E+0:0:5:
+%40LE:+2.00416836000897277799610805135016205E-292:0:-1:
+%*40LE:+2.00416836000897277799610805135016205E-292:0:-1:
+%40LE:+2.3441674165664647186659237648155017216E037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40LE:+2.3441674165664647186659237648155017216E037:0:40:
+%40LE:+2.3441674165664647186659237648155017216E+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1:
+%*40LE:+2.3441674165664647186659237648155017216E+37:0:40:
+%40LE:+1.79769313486231580793728971405301199E308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10:
+%*40LE:+1.79769313486231580793728971405301199E308:0:40:
+%40LE:+1.79769313486231580793728971405301199E+308:0:-1:
+%*40LE:+1.79769313486231580793728971405301199E+308:0:-1:
+%40LE:+INFINITY:1:9:inf:
+%*40LE:+INFINITY:0:9:
+%48LE::0:-1:
+%*48LE::0:-1:
+%48LE:-INFINITY:1:9:-inf:
+%*48LE:-INFINITY:0:9:
+%48LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:-1.79769313486231580793728971405301199E+308:0:43:
+%48LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:-1.79769313486231580793728971405301199E308:0:42:
+%48LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:-2.3441674165664647186659237648155017216E+37:0:44:
+%48LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:-2.3441674165664647186659237648155017216E037:0:44:
+%48LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969:
+%*48LE:-2.00416836000897277799610805135016205E-292:0:43:
+%48LE:-0E+0:1:5:-0x0:
+%*48LE:-0E+0:0:5:
+%48LE:-0E0:1:4:-0x0:
+%*48LE:-0E0:0:4:
+%48LE:-NAN(09A_Zaz):1:13:-nan:
+%*48LE:-NAN(09A_Zaz):0:13:
+%48LE:-NAN():1:6:-nan:
+%*48LE:-NAN():0:6:
+%48LE:NAN():1:5:nan:
+%*48LE:NAN():0:5:
+%48LE:NAN(09A_Zaz):1:12:nan:
+%*48LE:NAN(09A_Zaz):0:12:
+%48LE:0E0:1:3:0x0:
+%*48LE:0E0:0:3:
+%48LE:0E+0:1:4:0x0:
+%*48LE:0E+0:0:4:
+%48LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969:
+%*48LE:2.00416836000897277799610805135016205E-292:0:42:
+%48LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:2.3441674165664647186659237648155017216E037:0:43:
+%48LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:2.3441674165664647186659237648155017216E+37:0:43:
+%48LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:1.79769313486231580793728971405301199E308:0:41:
+%48LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:1.79769313486231580793728971405301199E+308:0:42:
+%48LE:INFINITY:1:8:inf:
+%*48LE:INFINITY:0:8:
+%48LE:+NAN():1:6:nan:
+%*48LE:+NAN():0:6:
+%48LE:+NAN(09A_Zaz):1:13:nan:
+%*48LE:+NAN(09A_Zaz):0:13:
+%48LE:+0E0:1:4:0x0:
+%*48LE:+0E0:0:4:
+%48LE:+0E+0:1:5:0x0:
+%*48LE:+0E+0:0:5:
+%48LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969:
+%*48LE:+2.00416836000897277799610805135016205E-292:0:43:
+%48LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:+2.3441674165664647186659237648155017216E037:0:44:
+%48LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE:+2.3441674165664647186659237648155017216E+37:0:44:
+%48LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:+1.79769313486231580793728971405301199E308:0:42:
+%48LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE:+1.79769313486231580793728971405301199E+308:0:43:
+%48LE:+INFINITY:1:9:inf:
+%*48LE:+INFINITY:0:9:
+%3LE: :0:-1:
+%*3LE: :0:-1:
+%3LE: -INFINITY:0:-1:
+%*3LE: -INFINITY:0:-1:
+%3LE: -1.79769313486231580793728971405301199E+308:1:4:-0x1:
+%*3LE: -1.79769313486231580793728971405301199E+308:0:4:
+%3LE: -1.79769313486231580793728971405301199E308:1:4:-0x1:
+%*3LE: -1.79769313486231580793728971405301199E308:0:4:
+%3LE: -2.3441674165664647186659237648155017216E+37:1:4:-0x1p1:
+%*3LE: -2.3441674165664647186659237648155017216E+37:0:4:
+%3LE: -2.3441674165664647186659237648155017216E037:1:4:-0x1p1:
+%*3LE: -2.3441674165664647186659237648155017216E037:0:4:
+%3LE: -2.00416836000897277799610805135016205E-292:1:4:-0x1p1:
+%*3LE: -2.00416836000897277799610805135016205E-292:0:4:
+%3LE: -0E+0:0:-1:
+%*3LE: -0E+0:0:-1:
+%3LE: -0E0:0:-1:
+%*3LE: -0E0:0:-1:
+%3LE: -NAN(09A_Zaz):0:-1:
+%*3LE: -NAN(09A_Zaz):0:-1:
+%3LE: -NAN():0:-1:
+%*3LE: -NAN():0:-1:
+%3LE: NAN():1:4:nan:
+%*3LE: NAN():0:4:
+%3LE: NAN(09A_Zaz):1:4:nan:
+%*3LE: NAN(09A_Zaz):0:4:
+%3LE: 0E0:1:4:0x0:
+%*3LE: 0E0:0:4:
+%3LE: 0E+0:0:-1:
+%*3LE: 0E+0:0:-1:
+%3LE: 2.00416836000897277799610805135016205E-292:1:4:0x1p1:
+%*3LE: 2.00416836000897277799610805135016205E-292:0:4:
+%3LE: 2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1:
+%*3LE: 2.3441674165664647186659237648155017216E037:0:4:
+%3LE: 2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1:
+%*3LE: 2.3441674165664647186659237648155017216E+37:0:4:
+%3LE: 1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333:
+%*3LE: 1.79769313486231580793728971405301199E308:0:4:
+%3LE: 1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333:
+%*3LE: 1.79769313486231580793728971405301199E+308:0:4:
+%3LE: INFINITY:1:4:inf:
+%*3LE: INFINITY:0:4:
+%3LE: +NAN():0:-1:
+%*3LE: +NAN():0:-1:
+%3LE: +NAN(09A_Zaz):0:-1:
+%*3LE: +NAN(09A_Zaz):0:-1:
+%3LE: +0E0:0:-1:
+%*3LE: +0E0:0:-1:
+%3LE: +0E+0:0:-1:
+%*3LE: +0E+0:0:-1:
+%3LE: +2.00416836000897277799610805135016205E-292:1:4:0x1p1:
+%*3LE: +2.00416836000897277799610805135016205E-292:0:4:
+%3LE: +2.3441674165664647186659237648155017216E037:1:4:0x1p1:
+%*3LE: +2.3441674165664647186659237648155017216E037:0:4:
+%3LE: +2.3441674165664647186659237648155017216E+37:1:4:0x1p1:
+%*3LE: +2.3441674165664647186659237648155017216E+37:0:4:
+%3LE: +1.79769313486231580793728971405301199E308:1:4:0x1:
+%*3LE: +1.79769313486231580793728971405301199E308:0:4:
+%3LE: +1.79769313486231580793728971405301199E+308:1:4:0x1:
+%*3LE: +1.79769313486231580793728971405301199E+308:0:4:
+%3LE: +INFINITY:0:-1:
+%*3LE: +INFINITY:0:-1:
+%48LE: :0:-1:
+%*48LE: :0:-1:
+%48LE: -INFINITY:1:10:-inf:
+%*48LE: -INFINITY:0:10:
+%48LE: -1.79769313486231580793728971405301199E+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: -1.79769313486231580793728971405301199E+308:0:44:
+%48LE: -1.79769313486231580793728971405301199E308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: -1.79769313486231580793728971405301199E308:0:43:
+%48LE: -2.3441674165664647186659237648155017216E+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: -2.3441674165664647186659237648155017216E+37:0:45:
+%48LE: -2.3441674165664647186659237648155017216E037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: -2.3441674165664647186659237648155017216E037:0:45:
+%48LE: -2.00416836000897277799610805135016205E-292:1:44:-0x1p-969:
+%*48LE: -2.00416836000897277799610805135016205E-292:0:44:
+%48LE: -0E+0:1:6:-0x0:
+%*48LE: -0E+0:0:6:
+%48LE: -0E0:1:5:-0x0:
+%*48LE: -0E0:0:5:
+%48LE: -NAN(09A_Zaz):1:14:-nan:
+%*48LE: -NAN(09A_Zaz):0:14:
+%48LE: -NAN():1:7:-nan:
+%*48LE: -NAN():0:7:
+%48LE: NAN():1:6:nan:
+%*48LE: NAN():0:6:
+%48LE: NAN(09A_Zaz):1:13:nan:
+%*48LE: NAN(09A_Zaz):0:13:
+%48LE: 0E0:1:4:0x0:
+%*48LE: 0E0:0:4:
+%48LE: 0E+0:1:5:0x0:
+%*48LE: 0E+0:0:5:
+%48LE: 2.00416836000897277799610805135016205E-292:1:43:0x1p-969:
+%*48LE: 2.00416836000897277799610805135016205E-292:0:43:
+%48LE: 2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: 2.3441674165664647186659237648155017216E037:0:44:
+%48LE: 2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: 2.3441674165664647186659237648155017216E+37:0:44:
+%48LE: 1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: 1.79769313486231580793728971405301199E308:0:42:
+%48LE: 1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: 1.79769313486231580793728971405301199E+308:0:43:
+%48LE: INFINITY:1:9:inf:
+%*48LE: INFINITY:0:9:
+%48LE: +NAN():1:7:nan:
+%*48LE: +NAN():0:7:
+%48LE: +NAN(09A_Zaz):1:14:nan:
+%*48LE: +NAN(09A_Zaz):0:14:
+%48LE: +0E0:1:5:0x0:
+%*48LE: +0E0:0:5:
+%48LE: +0E+0:1:6:0x0:
+%*48LE: +0E+0:0:6:
+%48LE: +2.00416836000897277799610805135016205E-292:1:44:0x1p-969:
+%*48LE: +2.00416836000897277799610805135016205E-292:0:44:
+%48LE: +2.3441674165664647186659237648155017216E037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: +2.3441674165664647186659237648155017216E037:0:45:
+%48LE: +2.3441674165664647186659237648155017216E+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*48LE: +2.3441674165664647186659237648155017216E+37:0:45:
+%48LE: +1.79769313486231580793728971405301199E308:1:43:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: +1.79769313486231580793728971405301199E308:0:43:
+%48LE: +1.79769313486231580793728971405301199E+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023:
+%*48LE: +1.79769313486231580793728971405301199E+308:0:44:
+%48LE: +INFINITY:1:10:inf:
+%*48LE: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input
new file mode 100644
index 0000000..9d4fd75
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input
@@ -0,0 +1,496 @@
+%Lf::0:-1:
+%*Lf::0:-1:
+%Lf:-infinity:1:9:-inf:
+%*Lf:-infinity:0:9:
+%Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:-023441674165664647186659237648155017216.0:0:42:
+%Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:-23441674165664647186659237648155017216:0:39:
+%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969:
+%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%Lf:-0.0:1:4:-0x0:
+%*Lf:-0.0:0:4:
+%Lf:-0:1:2:-0x0:
+%*Lf:-0:0:2:
+%Lf:-nan(09A_Zaz):1:13:-nan:
+%*Lf:-nan(09A_Zaz):0:13:
+%Lf:-nan():1:6:-nan:
+%*Lf:-nan():0:6:
+%Lf:nan():1:5:nan:
+%*Lf:nan():0:5:
+%Lf:nan(09A_Zaz):1:12:nan:
+%*Lf:nan(09A_Zaz):0:12:
+%Lf:0:1:1:0x0:
+%*Lf:0:0:1:
+%Lf:0.0:1:3:0x0:
+%*Lf:0.0:0:3:
+%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969:
+%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327:
+%Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:23441674165664647186659237648155017216:0:38:
+%Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:023441674165664647186659237648155017216.0:0:41:
+%Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309:
+%Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312:
+%Lf:infinity:1:8:inf:
+%*Lf:infinity:0:8:
+%Lf:+nan():1:6:nan:
+%*Lf:+nan():0:6:
+%Lf:+nan(09A_Zaz):1:13:nan:
+%*Lf:+nan(09A_Zaz):0:13:
+%Lf:+0:1:2:0x0:
+%*Lf:+0:0:2:
+%Lf:+0.0:1:4:0x0:
+%*Lf:+0.0:0:4:
+%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:+23441674165664647186659237648155017216:0:39:
+%Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lf:+023441674165664647186659237648155017216.0:0:42:
+%Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%Lf:+infinity:1:9:inf:
+%*Lf:+infinity:0:9:
+%1Lf::0:-1:
+%*1Lf::0:-1:
+%1Lf:-infinity:0:-1:
+%*1Lf:-infinity:0:-1:
+%1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%*1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%*1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%1Lf:-023441674165664647186659237648155017216.0:0:-1:
+%*1Lf:-023441674165664647186659237648155017216.0:0:-1:
+%1Lf:-23441674165664647186659237648155017216:0:-1:
+%*1Lf:-23441674165664647186659237648155017216:0:-1:
+%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%1Lf:-0.0:0:-1:
+%*1Lf:-0.0:0:-1:
+%1Lf:-0:0:-1:
+%*1Lf:-0:0:-1:
+%1Lf:-nan(09A_Zaz):0:-1:
+%*1Lf:-nan(09A_Zaz):0:-1:
+%1Lf:-nan():0:-1:
+%*1Lf:-nan():0:-1:
+%1Lf:nan():0:-1:
+%*1Lf:nan():0:-1:
+%1Lf:nan(09A_Zaz):0:-1:
+%*1Lf:nan(09A_Zaz):0:-1:
+%1Lf:0:1:1:0x0:
+%*1Lf:0:0:1:
+%1Lf:0.0:1:1:0x0:
+%*1Lf:0.0:0:1:
+%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0:
+%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1:
+%1Lf:23441674165664647186659237648155017216:1:1:0x1p1:
+%*1Lf:23441674165664647186659237648155017216:0:1:
+%1Lf:023441674165664647186659237648155017216.0:1:1:0x0:
+%*1Lf:023441674165664647186659237648155017216.0:0:1:
+%1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1:
+%*1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1:
+%1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0:
+%*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1:
+%1Lf:infinity:0:-1:
+%*1Lf:infinity:0:-1:
+%1Lf:+nan():0:-1:
+%*1Lf:+nan():0:-1:
+%1Lf:+nan(09A_Zaz):0:-1:
+%*1Lf:+nan(09A_Zaz):0:-1:
+%1Lf:+0:0:-1:
+%*1Lf:+0:0:-1:
+%1Lf:+0.0:0:-1:
+%*1Lf:+0.0:0:-1:
+%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%1Lf:+23441674165664647186659237648155017216:0:-1:
+%*1Lf:+23441674165664647186659237648155017216:0:-1:
+%1Lf:+023441674165664647186659237648155017216.0:0:-1:
+%*1Lf:+023441674165664647186659237648155017216.0:0:-1:
+%1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%*1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%*1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%1Lf:+infinity:0:-1:
+%*1Lf:+infinity:0:-1:
+%2Lf::0:-1:
+%*2Lf::0:-1:
+%2Lf:-infinity:0:-1:
+%*2Lf:-infinity:0:-1:
+%2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0:
+%*2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1:
+%*2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2Lf:-023441674165664647186659237648155017216.0:1:2:-0x0:
+%*2Lf:-023441674165664647186659237648155017216.0:0:2:
+%2Lf:-23441674165664647186659237648155017216:1:2:-0x1p1:
+%*2Lf:-23441674165664647186659237648155017216:0:2:
+%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0:
+%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2Lf:-0.0:1:2:-0x0:
+%*2Lf:-0.0:0:2:
+%2Lf:-0:1:2:-0x0:
+%*2Lf:-0:0:2:
+%2Lf:-nan(09A_Zaz):0:-1:
+%*2Lf:-nan(09A_Zaz):0:-1:
+%2Lf:-nan():0:-1:
+%*2Lf:-nan():0:-1:
+%2Lf:nan():0:-1:
+%*2Lf:nan():0:-1:
+%2Lf:nan(09A_Zaz):0:-1:
+%*2Lf:nan(09A_Zaz):0:-1:
+%2Lf:0:1:1:0x0:
+%*2Lf:0:0:1:
+%2Lf:0.0:1:2:0x0:
+%*2Lf:0.0:0:2:
+%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0:
+%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2Lf:23441674165664647186659237648155017216:1:2:0x1.7p4:
+%*2Lf:23441674165664647186659237648155017216:0:2:
+%2Lf:023441674165664647186659237648155017216.0:1:2:0x1p1:
+%*2Lf:023441674165664647186659237648155017216.0:0:2:
+%2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4:
+%*2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1:
+%*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2Lf:infinity:0:-1:
+%*2Lf:infinity:0:-1:
+%2Lf:+nan():0:-1:
+%*2Lf:+nan():0:-1:
+%2Lf:+nan(09A_Zaz):0:-1:
+%*2Lf:+nan(09A_Zaz):0:-1:
+%2Lf:+0:1:2:0x0:
+%*2Lf:+0:0:2:
+%2Lf:+0.0:1:2:0x0:
+%*2Lf:+0.0:0:2:
+%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0:
+%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2Lf:+23441674165664647186659237648155017216:1:2:0x1p1:
+%*2Lf:+23441674165664647186659237648155017216:0:2:
+%2Lf:+023441674165664647186659237648155017216.0:1:2:0x0:
+%*2Lf:+023441674165664647186659237648155017216.0:0:2:
+%2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1:
+%*2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0:
+%*2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2Lf:+infinity:0:-1:
+%*2Lf:+infinity:0:-1:
+%3Lf::0:-1:
+%*3Lf::0:-1:
+%3Lf:-infinity:0:-1:
+%*3Lf:-infinity:0:-1:
+%3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1:
+%*3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4:
+%*3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3Lf:-023441674165664647186659237648155017216.0:1:3:-0x1p1:
+%*3Lf:-023441674165664647186659237648155017216.0:0:3:
+%3Lf:-23441674165664647186659237648155017216:1:3:-0x1.7p4:
+%*3Lf:-23441674165664647186659237648155017216:0:3:
+%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0:
+%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3Lf:-0.0:1:3:-0x0:
+%*3Lf:-0.0:0:3:
+%3Lf:-0:1:2:-0x0:
+%*3Lf:-0:0:2:
+%3Lf:-nan(09A_Zaz):0:-1:
+%*3Lf:-nan(09A_Zaz):0:-1:
+%3Lf:-nan():0:-1:
+%*3Lf:-nan():0:-1:
+%3Lf:nan():1:3:nan:
+%*3Lf:nan():0:3:
+%3Lf:nan(09A_Zaz):1:3:nan:
+%*3Lf:nan(09A_Zaz):0:3:
+%3Lf:0:1:1:0x0:
+%*3Lf:0:0:1:
+%3Lf:0.0:1:3:0x0:
+%*3Lf:0.0:0:3:
+%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0:
+%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3Lf:23441674165664647186659237648155017216:1:3:0x1.d4p7:
+%*3Lf:23441674165664647186659237648155017216:0:3:
+%3Lf:023441674165664647186659237648155017216.0:1:3:0x1.7p4:
+%*3Lf:023441674165664647186659237648155017216.0:0:3:
+%3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7:
+%*3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4:
+%*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3Lf:infinity:1:3:inf:
+%*3Lf:infinity:0:3:
+%3Lf:+nan():0:-1:
+%*3Lf:+nan():0:-1:
+%3Lf:+nan(09A_Zaz):0:-1:
+%*3Lf:+nan(09A_Zaz):0:-1:
+%3Lf:+0:1:2:0x0:
+%*3Lf:+0:0:2:
+%3Lf:+0.0:1:3:0x0:
+%*3Lf:+0.0:0:3:
+%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0:
+%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3Lf:+23441674165664647186659237648155017216:1:3:0x1.7p4:
+%*3Lf:+23441674165664647186659237648155017216:0:3:
+%3Lf:+023441674165664647186659237648155017216.0:1:3:0x1p1:
+%*3Lf:+023441674165664647186659237648155017216.0:0:3:
+%3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4:
+%*3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1:
+%*3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3Lf:+infinity:0:-1:
+%*3Lf:+infinity:0:-1:
+%295Lf::0:-1:
+%*295Lf::0:-1:
+%295Lf:-infinity:1:9:-inf:
+%*295Lf:-infinity:0:9:
+%295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970:
+%*295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974:
+%*295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:-023441674165664647186659237648155017216.0:0:42:
+%295Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:-23441674165664647186659237648155017216:0:39:
+%295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295Lf:-0.0:1:4:-0x0:
+%*295Lf:-0.0:0:4:
+%295Lf:-0:1:2:-0x0:
+%*295Lf:-0:0:2:
+%295Lf:-nan(09A_Zaz):1:13:-nan:
+%*295Lf:-nan(09A_Zaz):0:13:
+%295Lf:-nan():1:6:-nan:
+%*295Lf:-nan():0:6:
+%295Lf:nan():1:5:nan:
+%*295Lf:nan():0:5:
+%295Lf:nan(09A_Zaz):1:12:nan:
+%*295Lf:nan(09A_Zaz):0:12:
+%295Lf:0:1:1:0x0:
+%*295Lf:0:0:1:
+%295Lf:0.0:1:3:0x0:
+%*295Lf:0.0:0:3:
+%295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:23441674165664647186659237648155017216:0:38:
+%295Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:023441674165664647186659237648155017216.0:0:41:
+%295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977:
+%*295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974:
+%*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295Lf:infinity:1:8:inf:
+%*295Lf:infinity:0:8:
+%295Lf:+nan():1:6:nan:
+%*295Lf:+nan():0:6:
+%295Lf:+nan(09A_Zaz):1:13:nan:
+%*295Lf:+nan(09A_Zaz):0:13:
+%295Lf:+0:1:2:0x0:
+%*295Lf:+0:0:2:
+%295Lf:+0.0:1:4:0x0:
+%*295Lf:+0.0:0:4:
+%295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:+23441674165664647186659237648155017216:0:39:
+%295Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295Lf:+023441674165664647186659237648155017216.0:0:42:
+%295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974:
+%*295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970:
+%*295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295Lf:+infinity:1:9:inf:
+%*295Lf:+infinity:0:9:
+%340Lf::0:-1:
+%*340Lf::0:-1:
+%340Lf:-infinity:1:9:-inf:
+%*340Lf:-infinity:0:9:
+%340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:-023441674165664647186659237648155017216.0:0:42:
+%340Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:-23441674165664647186659237648155017216:0:39:
+%340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969:
+%*340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340Lf:-0.0:1:4:-0x0:
+%*340Lf:-0.0:0:4:
+%340Lf:-0:1:2:-0x0:
+%*340Lf:-0:0:2:
+%340Lf:-nan(09A_Zaz):1:13:-nan:
+%*340Lf:-nan(09A_Zaz):0:13:
+%340Lf:-nan():1:6:-nan:
+%*340Lf:-nan():0:6:
+%340Lf:nan():1:5:nan:
+%*340Lf:nan():0:5:
+%340Lf:nan(09A_Zaz):1:12:nan:
+%*340Lf:nan(09A_Zaz):0:12:
+%340Lf:0:1:1:0x0:
+%*340Lf:0:0:1:
+%340Lf:0.0:1:3:0x0:
+%*340Lf:0.0:0:3:
+%340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969:
+%*340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327:
+%340Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:23441674165664647186659237648155017216:0:38:
+%340Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:023441674165664647186659237648155017216.0:0:41:
+%340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309:
+%340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312:
+%340Lf:infinity:1:8:inf:
+%*340Lf:infinity:0:8:
+%340Lf:+nan():1:6:nan:
+%*340Lf:+nan():0:6:
+%340Lf:+nan(09A_Zaz):1:13:nan:
+%*340Lf:+nan(09A_Zaz):0:13:
+%340Lf:+0:1:2:0x0:
+%*340Lf:+0:0:2:
+%340Lf:+0.0:1:4:0x0:
+%*340Lf:+0.0:0:4:
+%340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:+23441674165664647186659237648155017216:0:39:
+%340Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf:+023441674165664647186659237648155017216.0:0:42:
+%340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340Lf:+infinity:1:9:inf:
+%*340Lf:+infinity:0:9:
+%3Lf: :0:-1:
+%*3Lf: :0:-1:
+%3Lf: -infinity:0:-1:
+%*3Lf: -infinity:0:-1:
+%3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1:
+%*3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4:
+%*3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3Lf: -023441674165664647186659237648155017216.0:1:4:-0x1p1:
+%*3Lf: -023441674165664647186659237648155017216.0:0:4:
+%3Lf: -23441674165664647186659237648155017216:1:4:-0x1.7p4:
+%*3Lf: -23441674165664647186659237648155017216:0:4:
+%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0:
+%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3Lf: -0.0:1:4:-0x0:
+%*3Lf: -0.0:0:4:
+%3Lf: -0:1:3:-0x0:
+%*3Lf: -0:0:3:
+%3Lf: -nan(09A_Zaz):0:-1:
+%*3Lf: -nan(09A_Zaz):0:-1:
+%3Lf: -nan():0:-1:
+%*3Lf: -nan():0:-1:
+%3Lf: nan():1:4:nan:
+%*3Lf: nan():0:4:
+%3Lf: nan(09A_Zaz):1:4:nan:
+%*3Lf: nan(09A_Zaz):0:4:
+%3Lf: 0:1:2:0x0:
+%*3Lf: 0:0:2:
+%3Lf: 0.0:1:4:0x0:
+%*3Lf: 0.0:0:4:
+%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0:
+%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3Lf: 23441674165664647186659237648155017216:1:4:0x1.d4p7:
+%*3Lf: 23441674165664647186659237648155017216:0:4:
+%3Lf: 023441674165664647186659237648155017216.0:1:4:0x1.7p4:
+%*3Lf: 023441674165664647186659237648155017216.0:0:4:
+%3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7:
+%*3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4:
+%*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3Lf: infinity:1:4:inf:
+%*3Lf: infinity:0:4:
+%3Lf: +nan():0:-1:
+%*3Lf: +nan():0:-1:
+%3Lf: +nan(09A_Zaz):0:-1:
+%*3Lf: +nan(09A_Zaz):0:-1:
+%3Lf: +0:1:3:0x0:
+%*3Lf: +0:0:3:
+%3Lf: +0.0:1:4:0x0:
+%*3Lf: +0.0:0:4:
+%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0:
+%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3Lf: +23441674165664647186659237648155017216:1:4:0x1.7p4:
+%*3Lf: +23441674165664647186659237648155017216:0:4:
+%3Lf: +023441674165664647186659237648155017216.0:1:4:0x1p1:
+%*3Lf: +023441674165664647186659237648155017216.0:0:4:
+%3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4:
+%*3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1:
+%*3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3Lf: +infinity:0:-1:
+%*3Lf: +infinity:0:-1:
+%340Lf: :0:-1:
+%*340Lf: :0:-1:
+%340Lf: -infinity:1:10:-inf:
+%*340Lf: -infinity:0:10:
+%340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314:
+%340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311:
+%340Lf: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: -023441674165664647186659237648155017216.0:0:43:
+%340Lf: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: -23441674165664647186659237648155017216:0:40:
+%340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969:
+%*340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329:
+%340Lf: -0.0:1:5:-0x0:
+%*340Lf: -0.0:0:5:
+%340Lf: -0:1:3:-0x0:
+%*340Lf: -0:0:3:
+%340Lf: -nan(09A_Zaz):1:14:-nan:
+%*340Lf: -nan(09A_Zaz):0:14:
+%340Lf: -nan():1:7:-nan:
+%*340Lf: -nan():0:7:
+%340Lf: nan():1:6:nan:
+%*340Lf: nan():0:6:
+%340Lf: nan(09A_Zaz):1:13:nan:
+%*340Lf: nan(09A_Zaz):0:13:
+%340Lf: 0:1:2:0x0:
+%*340Lf: 0:0:2:
+%340Lf: 0.0:1:4:0x0:
+%*340Lf: 0.0:0:4:
+%340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340Lf: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: 23441674165664647186659237648155017216:0:39:
+%340Lf: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: 023441674165664647186659237648155017216.0:0:42:
+%340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340Lf: infinity:1:9:inf:
+%*340Lf: infinity:0:9:
+%340Lf: +nan():1:7:nan:
+%*340Lf: +nan():0:7:
+%340Lf: +nan(09A_Zaz):1:14:nan:
+%*340Lf: +nan(09A_Zaz):0:14:
+%340Lf: +0:1:3:0x0:
+%*340Lf: +0:0:3:
+%340Lf: +0.0:1:5:0x0:
+%*340Lf: +0.0:0:5:
+%340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969:
+%*340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329:
+%340Lf: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: +23441674165664647186659237648155017216:0:40:
+%340Lf: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340Lf: +023441674165664647186659237648155017216.0:0:43:
+%340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311:
+%340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314:
+%340Lf: +infinity:1:10:inf:
+%*340Lf: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input
new file mode 100644
index 0000000..bb7098a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input
@@ -0,0 +1,496 @@
+%LF::0:-1:
+%*LF::0:-1:
+%LF:-INFINITY:1:9:-inf:
+%*LF:-INFINITY:0:9:
+%LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:-023441674165664647186659237648155017216.0:0:42:
+%LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:-23441674165664647186659237648155017216:0:39:
+%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969:
+%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%LF:-0.0:1:4:-0x0:
+%*LF:-0.0:0:4:
+%LF:-0:1:2:-0x0:
+%*LF:-0:0:2:
+%LF:-NAN(09A_Zaz):1:13:-nan:
+%*LF:-NAN(09A_Zaz):0:13:
+%LF:-NAN():1:6:-nan:
+%*LF:-NAN():0:6:
+%LF:NAN():1:5:nan:
+%*LF:NAN():0:5:
+%LF:NAN(09A_Zaz):1:12:nan:
+%*LF:NAN(09A_Zaz):0:12:
+%LF:0:1:1:0x0:
+%*LF:0:0:1:
+%LF:0.0:1:3:0x0:
+%*LF:0.0:0:3:
+%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969:
+%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327:
+%LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:23441674165664647186659237648155017216:0:38:
+%LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:023441674165664647186659237648155017216.0:0:41:
+%LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309:
+%LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312:
+%LF:INFINITY:1:8:inf:
+%*LF:INFINITY:0:8:
+%LF:+NAN():1:6:nan:
+%*LF:+NAN():0:6:
+%LF:+NAN(09A_Zaz):1:13:nan:
+%*LF:+NAN(09A_Zaz):0:13:
+%LF:+0:1:2:0x0:
+%*LF:+0:0:2:
+%LF:+0.0:1:4:0x0:
+%*LF:+0.0:0:4:
+%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:+23441674165664647186659237648155017216:0:39:
+%LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LF:+023441674165664647186659237648155017216.0:0:42:
+%LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%LF:+INFINITY:1:9:inf:
+%*LF:+INFINITY:0:9:
+%1LF::0:-1:
+%*1LF::0:-1:
+%1LF:-INFINITY:0:-1:
+%*1LF:-INFINITY:0:-1:
+%1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%*1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%*1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%1LF:-023441674165664647186659237648155017216.0:0:-1:
+%*1LF:-023441674165664647186659237648155017216.0:0:-1:
+%1LF:-23441674165664647186659237648155017216:0:-1:
+%*1LF:-23441674165664647186659237648155017216:0:-1:
+%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%1LF:-0.0:0:-1:
+%*1LF:-0.0:0:-1:
+%1LF:-0:0:-1:
+%*1LF:-0:0:-1:
+%1LF:-NAN(09A_Zaz):0:-1:
+%*1LF:-NAN(09A_Zaz):0:-1:
+%1LF:-NAN():0:-1:
+%*1LF:-NAN():0:-1:
+%1LF:NAN():0:-1:
+%*1LF:NAN():0:-1:
+%1LF:NAN(09A_Zaz):0:-1:
+%*1LF:NAN(09A_Zaz):0:-1:
+%1LF:0:1:1:0x0:
+%*1LF:0:0:1:
+%1LF:0.0:1:1:0x0:
+%*1LF:0.0:0:1:
+%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0:
+%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1:
+%1LF:23441674165664647186659237648155017216:1:1:0x1p1:
+%*1LF:23441674165664647186659237648155017216:0:1:
+%1LF:023441674165664647186659237648155017216.0:1:1:0x0:
+%*1LF:023441674165664647186659237648155017216.0:0:1:
+%1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1:
+%*1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1:
+%1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0:
+%*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1:
+%1LF:INFINITY:0:-1:
+%*1LF:INFINITY:0:-1:
+%1LF:+NAN():0:-1:
+%*1LF:+NAN():0:-1:
+%1LF:+NAN(09A_Zaz):0:-1:
+%*1LF:+NAN(09A_Zaz):0:-1:
+%1LF:+0:0:-1:
+%*1LF:+0:0:-1:
+%1LF:+0.0:0:-1:
+%*1LF:+0.0:0:-1:
+%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1:
+%1LF:+23441674165664647186659237648155017216:0:-1:
+%*1LF:+23441674165664647186659237648155017216:0:-1:
+%1LF:+023441674165664647186659237648155017216.0:0:-1:
+%*1LF:+023441674165664647186659237648155017216.0:0:-1:
+%1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%*1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1:
+%1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%*1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1:
+%1LF:+INFINITY:0:-1:
+%*1LF:+INFINITY:0:-1:
+%2LF::0:-1:
+%*2LF::0:-1:
+%2LF:-INFINITY:0:-1:
+%*2LF:-INFINITY:0:-1:
+%2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0:
+%*2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1:
+%*2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2LF:-023441674165664647186659237648155017216.0:1:2:-0x0:
+%*2LF:-023441674165664647186659237648155017216.0:0:2:
+%2LF:-23441674165664647186659237648155017216:1:2:-0x1p1:
+%*2LF:-23441674165664647186659237648155017216:0:2:
+%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0:
+%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2LF:-0.0:1:2:-0x0:
+%*2LF:-0.0:0:2:
+%2LF:-0:1:2:-0x0:
+%*2LF:-0:0:2:
+%2LF:-NAN(09A_Zaz):0:-1:
+%*2LF:-NAN(09A_Zaz):0:-1:
+%2LF:-NAN():0:-1:
+%*2LF:-NAN():0:-1:
+%2LF:NAN():0:-1:
+%*2LF:NAN():0:-1:
+%2LF:NAN(09A_Zaz):0:-1:
+%*2LF:NAN(09A_Zaz):0:-1:
+%2LF:0:1:1:0x0:
+%*2LF:0:0:1:
+%2LF:0.0:1:2:0x0:
+%*2LF:0.0:0:2:
+%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0:
+%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2LF:23441674165664647186659237648155017216:1:2:0x1.7p4:
+%*2LF:23441674165664647186659237648155017216:0:2:
+%2LF:023441674165664647186659237648155017216.0:1:2:0x1p1:
+%*2LF:023441674165664647186659237648155017216.0:0:2:
+%2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4:
+%*2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1:
+%*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2LF:INFINITY:0:-1:
+%*2LF:INFINITY:0:-1:
+%2LF:+NAN():0:-1:
+%*2LF:+NAN():0:-1:
+%2LF:+NAN(09A_Zaz):0:-1:
+%*2LF:+NAN(09A_Zaz):0:-1:
+%2LF:+0:1:2:0x0:
+%*2LF:+0:0:2:
+%2LF:+0.0:1:2:0x0:
+%*2LF:+0.0:0:2:
+%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0:
+%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2:
+%2LF:+23441674165664647186659237648155017216:1:2:0x1p1:
+%*2LF:+23441674165664647186659237648155017216:0:2:
+%2LF:+023441674165664647186659237648155017216.0:1:2:0x0:
+%*2LF:+023441674165664647186659237648155017216.0:0:2:
+%2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1:
+%*2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2:
+%2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0:
+%*2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2:
+%2LF:+INFINITY:0:-1:
+%*2LF:+INFINITY:0:-1:
+%3LF::0:-1:
+%*3LF::0:-1:
+%3LF:-INFINITY:0:-1:
+%*3LF:-INFINITY:0:-1:
+%3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1:
+%*3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4:
+%*3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3LF:-023441674165664647186659237648155017216.0:1:3:-0x1p1:
+%*3LF:-023441674165664647186659237648155017216.0:0:3:
+%3LF:-23441674165664647186659237648155017216:1:3:-0x1.7p4:
+%*3LF:-23441674165664647186659237648155017216:0:3:
+%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0:
+%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3LF:-0.0:1:3:-0x0:
+%*3LF:-0.0:0:3:
+%3LF:-0:1:2:-0x0:
+%*3LF:-0:0:2:
+%3LF:-NAN(09A_Zaz):0:-1:
+%*3LF:-NAN(09A_Zaz):0:-1:
+%3LF:-NAN():0:-1:
+%*3LF:-NAN():0:-1:
+%3LF:NAN():1:3:nan:
+%*3LF:NAN():0:3:
+%3LF:NAN(09A_Zaz):1:3:nan:
+%*3LF:NAN(09A_Zaz):0:3:
+%3LF:0:1:1:0x0:
+%*3LF:0:0:1:
+%3LF:0.0:1:3:0x0:
+%*3LF:0.0:0:3:
+%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0:
+%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3LF:23441674165664647186659237648155017216:1:3:0x1.d4p7:
+%*3LF:23441674165664647186659237648155017216:0:3:
+%3LF:023441674165664647186659237648155017216.0:1:3:0x1.7p4:
+%*3LF:023441674165664647186659237648155017216.0:0:3:
+%3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7:
+%*3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4:
+%*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3LF:INFINITY:1:3:inf:
+%*3LF:INFINITY:0:3:
+%3LF:+NAN():0:-1:
+%*3LF:+NAN():0:-1:
+%3LF:+NAN(09A_Zaz):0:-1:
+%*3LF:+NAN(09A_Zaz):0:-1:
+%3LF:+0:1:2:0x0:
+%*3LF:+0:0:2:
+%3LF:+0.0:1:3:0x0:
+%*3LF:+0.0:0:3:
+%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0:
+%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3:
+%3LF:+23441674165664647186659237648155017216:1:3:0x1.7p4:
+%*3LF:+23441674165664647186659237648155017216:0:3:
+%3LF:+023441674165664647186659237648155017216.0:1:3:0x1p1:
+%*3LF:+023441674165664647186659237648155017216.0:0:3:
+%3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4:
+%*3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3:
+%3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1:
+%*3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3:
+%3LF:+INFINITY:0:-1:
+%*3LF:+INFINITY:0:-1:
+%295LF::0:-1:
+%*295LF::0:-1:
+%295LF:-INFINITY:1:9:-inf:
+%*295LF:-INFINITY:0:9:
+%295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970:
+%*295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974:
+%*295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:-023441674165664647186659237648155017216.0:0:42:
+%295LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:-23441674165664647186659237648155017216:0:39:
+%295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295LF:-0.0:1:4:-0x0:
+%*295LF:-0.0:0:4:
+%295LF:-0:1:2:-0x0:
+%*295LF:-0:0:2:
+%295LF:-NAN(09A_Zaz):1:13:-nan:
+%*295LF:-NAN(09A_Zaz):0:13:
+%295LF:-NAN():1:6:-nan:
+%*295LF:-NAN():0:6:
+%295LF:NAN():1:5:nan:
+%*295LF:NAN():0:5:
+%295LF:NAN(09A_Zaz):1:12:nan:
+%*295LF:NAN(09A_Zaz):0:12:
+%295LF:0:1:1:0x0:
+%*295LF:0:0:1:
+%295LF:0.0:1:3:0x0:
+%*295LF:0.0:0:3:
+%295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:23441674165664647186659237648155017216:0:38:
+%295LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:023441674165664647186659237648155017216.0:0:41:
+%295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977:
+%*295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974:
+%*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295LF:INFINITY:1:8:inf:
+%*295LF:INFINITY:0:8:
+%295LF:+NAN():1:6:nan:
+%*295LF:+NAN():0:6:
+%295LF:+NAN(09A_Zaz):1:13:nan:
+%*295LF:+NAN(09A_Zaz):0:13:
+%295LF:+0:1:2:0x0:
+%*295LF:+0:0:2:
+%295LF:+0.0:1:4:0x0:
+%*295LF:+0.0:0:4:
+%295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970:
+%*295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295:
+%295LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:+23441674165664647186659237648155017216:0:39:
+%295LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*295LF:+023441674165664647186659237648155017216.0:0:42:
+%295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974:
+%*295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295:
+%295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970:
+%*295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295:
+%295LF:+INFINITY:1:9:inf:
+%*295LF:+INFINITY:0:9:
+%340LF::0:-1:
+%*340LF::0:-1:
+%340LF:-INFINITY:1:9:-inf:
+%*340LF:-INFINITY:0:9:
+%340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:-023441674165664647186659237648155017216.0:0:42:
+%340LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:-23441674165664647186659237648155017216:0:39:
+%340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969:
+%*340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340LF:-0.0:1:4:-0x0:
+%*340LF:-0.0:0:4:
+%340LF:-0:1:2:-0x0:
+%*340LF:-0:0:2:
+%340LF:-NAN(09A_Zaz):1:13:-nan:
+%*340LF:-NAN(09A_Zaz):0:13:
+%340LF:-NAN():1:6:-nan:
+%*340LF:-NAN():0:6:
+%340LF:NAN():1:5:nan:
+%*340LF:NAN():0:5:
+%340LF:NAN(09A_Zaz):1:12:nan:
+%*340LF:NAN(09A_Zaz):0:12:
+%340LF:0:1:1:0x0:
+%*340LF:0:0:1:
+%340LF:0.0:1:3:0x0:
+%*340LF:0.0:0:3:
+%340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969:
+%*340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327:
+%340LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:23441674165664647186659237648155017216:0:38:
+%340LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:023441674165664647186659237648155017216.0:0:41:
+%340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309:
+%340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312:
+%340LF:INFINITY:1:8:inf:
+%*340LF:INFINITY:0:8:
+%340LF:+NAN():1:6:nan:
+%*340LF:+NAN():0:6:
+%340LF:+NAN(09A_Zaz):1:13:nan:
+%*340LF:+NAN(09A_Zaz):0:13:
+%340LF:+0:1:2:0x0:
+%*340LF:+0:0:2:
+%340LF:+0.0:1:4:0x0:
+%*340LF:+0.0:0:4:
+%340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:+23441674165664647186659237648155017216:0:39:
+%340LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF:+023441674165664647186659237648155017216.0:0:42:
+%340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340LF:+INFINITY:1:9:inf:
+%*340LF:+INFINITY:0:9:
+%3LF: :0:-1:
+%*3LF: :0:-1:
+%3LF: -INFINITY:0:-1:
+%*3LF: -INFINITY:0:-1:
+%3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1:
+%*3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4:
+%*3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3LF: -023441674165664647186659237648155017216.0:1:4:-0x1p1:
+%*3LF: -023441674165664647186659237648155017216.0:0:4:
+%3LF: -23441674165664647186659237648155017216:1:4:-0x1.7p4:
+%*3LF: -23441674165664647186659237648155017216:0:4:
+%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0:
+%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3LF: -0.0:1:4:-0x0:
+%*3LF: -0.0:0:4:
+%3LF: -0:1:3:-0x0:
+%*3LF: -0:0:3:
+%3LF: -NAN(09A_Zaz):0:-1:
+%*3LF: -NAN(09A_Zaz):0:-1:
+%3LF: -NAN():0:-1:
+%*3LF: -NAN():0:-1:
+%3LF: NAN():1:4:nan:
+%*3LF: NAN():0:4:
+%3LF: NAN(09A_Zaz):1:4:nan:
+%*3LF: NAN(09A_Zaz):0:4:
+%3LF: 0:1:2:0x0:
+%*3LF: 0:0:2:
+%3LF: 0.0:1:4:0x0:
+%*3LF: 0.0:0:4:
+%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0:
+%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3LF: 23441674165664647186659237648155017216:1:4:0x1.d4p7:
+%*3LF: 23441674165664647186659237648155017216:0:4:
+%3LF: 023441674165664647186659237648155017216.0:1:4:0x1.7p4:
+%*3LF: 023441674165664647186659237648155017216.0:0:4:
+%3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7:
+%*3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4:
+%*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3LF: INFINITY:1:4:inf:
+%*3LF: INFINITY:0:4:
+%3LF: +NAN():0:-1:
+%*3LF: +NAN():0:-1:
+%3LF: +NAN(09A_Zaz):0:-1:
+%*3LF: +NAN(09A_Zaz):0:-1:
+%3LF: +0:1:3:0x0:
+%*3LF: +0:0:3:
+%3LF: +0.0:1:4:0x0:
+%*3LF: +0.0:0:4:
+%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0:
+%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4:
+%3LF: +23441674165664647186659237648155017216:1:4:0x1.7p4:
+%*3LF: +23441674165664647186659237648155017216:0:4:
+%3LF: +023441674165664647186659237648155017216.0:1:4:0x1p1:
+%*3LF: +023441674165664647186659237648155017216.0:0:4:
+%3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4:
+%*3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4:
+%3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1:
+%*3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4:
+%3LF: +INFINITY:0:-1:
+%*3LF: +INFINITY:0:-1:
+%340LF: :0:-1:
+%*340LF: :0:-1:
+%340LF: -INFINITY:1:10:-inf:
+%*340LF: -INFINITY:0:10:
+%340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314:
+%340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311:
+%340LF: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: -023441674165664647186659237648155017216.0:0:43:
+%340LF: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: -23441674165664647186659237648155017216:0:40:
+%340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969:
+%*340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329:
+%340LF: -0.0:1:5:-0x0:
+%*340LF: -0.0:0:5:
+%340LF: -0:1:3:-0x0:
+%*340LF: -0:0:3:
+%340LF: -NAN(09A_Zaz):1:14:-nan:
+%*340LF: -NAN(09A_Zaz):0:14:
+%340LF: -NAN():1:7:-nan:
+%*340LF: -NAN():0:7:
+%340LF: NAN():1:6:nan:
+%*340LF: NAN():0:6:
+%340LF: NAN(09A_Zaz):1:13:nan:
+%*340LF: NAN(09A_Zaz):0:13:
+%340LF: 0:1:2:0x0:
+%*340LF: 0:0:2:
+%340LF: 0.0:1:4:0x0:
+%*340LF: 0.0:0:4:
+%340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969:
+%*340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328:
+%340LF: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: 23441674165664647186659237648155017216:0:39:
+%340LF: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: 023441674165664647186659237648155017216.0:0:42:
+%340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310:
+%340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313:
+%340LF: INFINITY:1:9:inf:
+%*340LF: INFINITY:0:9:
+%340LF: +NAN():1:7:nan:
+%*340LF: +NAN():0:7:
+%340LF: +NAN(09A_Zaz):1:14:nan:
+%*340LF: +NAN(09A_Zaz):0:14:
+%340LF: +0:1:3:0x0:
+%*340LF: +0:0:3:
+%340LF: +0.0:1:5:0x0:
+%*340LF: +0.0:0:5:
+%340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969:
+%*340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329:
+%340LF: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: +23441674165664647186659237648155017216:0:40:
+%340LF: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*340LF: +023441674165664647186659237648155017216.0:0:43:
+%340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311:
+%340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023:
+%*340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314:
+%340LF: +INFINITY:1:10:inf:
+%*340LF: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input
new file mode 100644
index 0000000..3254240
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input
@@ -0,0 +1,682 @@
+%Lg::0:-1:
+%*Lg::0:-1:
+%Lg:-infinity:1:9:-inf:
+%*Lg:-infinity:0:9:
+%Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36:
+%Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:-0x2.3456789abcdef0123456789abcp+123:0:36:
+%Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:-0x2.3456789abcdef0123456789abcp0123:0:36:
+%Lg:-0x8p-972:1:9:-0x1p-969:
+%*Lg:-0x8p-972:0:9:
+%Lg:-0x0p+0:1:7:-0x0:
+%*Lg:-0x0p+0:0:7:
+%Lg:-0x0p0:1:6:-0x0:
+%*Lg:-0x0p0:0:6:
+%Lg:-nan(09A_Zaz):1:13:-nan:
+%*Lg:-nan(09A_Zaz):0:13:
+%Lg:-nan():1:6:-nan:
+%*Lg:-nan():0:6:
+%Lg:nan():1:5:nan:
+%*Lg:nan():0:5:
+%Lg:nan(09A_Zaz):1:12:nan:
+%*Lg:nan(09A_Zaz):0:12:
+%Lg:0x0p0:1:5:0x0:
+%*Lg:0x0p0:0:5:
+%Lg:0x0p+0:1:6:0x0:
+%*Lg:0x0p+0:0:6:
+%Lg:0x8p-972:1:8:0x1p-969:
+%*Lg:0x8p-972:0:8:
+%Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:0x2.3456789abcdef0123456789abcp0123:0:35:
+%Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:0x2.3456789abcdef0123456789abcp+123:0:35:
+%Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:0x7.ffffffffffffdffffffffffffep1021:0:35:
+%Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36:
+%Lg:infinity:1:8:inf:
+%*Lg:infinity:0:8:
+%Lg:+nan():1:6:nan:
+%*Lg:+nan():0:6:
+%Lg:+nan(09A_Zaz):1:13:nan:
+%*Lg:+nan(09A_Zaz):0:13:
+%Lg:+0x0p0:1:6:0x0:
+%*Lg:+0x0p0:0:6:
+%Lg:+0x0p+0:1:7:0x0:
+%*Lg:+0x0p+0:0:7:
+%Lg:+0x8p-972:1:9:0x1p-969:
+%*Lg:+0x8p-972:0:9:
+%Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:+0x2.3456789abcdef0123456789abcp0123:0:36:
+%Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*Lg:+0x2.3456789abcdef0123456789abcp+123:0:36:
+%Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36:
+%Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%Lg:+infinity:1:9:inf:
+%*Lg:+infinity:0:9:
+%1Lg::0:-1:
+%*1Lg::0:-1:
+%1Lg:-infinity:0:-1:
+%*1Lg:-infinity:0:-1:
+%1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%1Lg:-0x8p-972:0:-1:
+%*1Lg:-0x8p-972:0:-1:
+%1Lg:-0x0p+0:0:-1:
+%*1Lg:-0x0p+0:0:-1:
+%1Lg:-0x0p0:0:-1:
+%*1Lg:-0x0p0:0:-1:
+%1Lg:-nan(09A_Zaz):0:-1:
+%*1Lg:-nan(09A_Zaz):0:-1:
+%1Lg:-nan():0:-1:
+%*1Lg:-nan():0:-1:
+%1Lg:nan():0:-1:
+%*1Lg:nan():0:-1:
+%1Lg:nan(09A_Zaz):0:-1:
+%*1Lg:nan(09A_Zaz):0:-1:
+%1Lg:0x0p0:1:1:0x0:
+%*1Lg:0x0p0:0:1:
+%1Lg:0x0p+0:1:1:0x0:
+%*1Lg:0x0p+0:0:1:
+%1Lg:0x8p-972:1:1:0x0:
+%*1Lg:0x8p-972:0:1:
+%1Lg:0x2.3456789abcdef0123456789abcp0123:1:1:0x0:
+%*1Lg:0x2.3456789abcdef0123456789abcp0123:0:1:
+%1Lg:0x2.3456789abcdef0123456789abcp+123:1:1:0x0:
+%*1Lg:0x2.3456789abcdef0123456789abcp+123:0:1:
+%1Lg:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0:
+%*1Lg:0x7.ffffffffffffdffffffffffffep1021:0:1:
+%1Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0:
+%*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1:
+%1Lg:infinity:0:-1:
+%*1Lg:infinity:0:-1:
+%1Lg:+nan():0:-1:
+%*1Lg:+nan():0:-1:
+%1Lg:+nan(09A_Zaz):0:-1:
+%*1Lg:+nan(09A_Zaz):0:-1:
+%1Lg:+0x0p0:0:-1:
+%*1Lg:+0x0p0:0:-1:
+%1Lg:+0x0p+0:0:-1:
+%*1Lg:+0x0p+0:0:-1:
+%1Lg:+0x8p-972:0:-1:
+%*1Lg:+0x8p-972:0:-1:
+%1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%1Lg:+infinity:0:-1:
+%*1Lg:+infinity:0:-1:
+%2Lg::0:-1:
+%*2Lg::0:-1:
+%2Lg:-infinity:0:-1:
+%*2Lg:-infinity:0:-1:
+%2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0:
+%*2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:2:
+%2Lg:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0:
+%*2Lg:-0x7.ffffffffffffdffffffffffffep1021:0:2:
+%2Lg:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef0123456789abcp+123:0:2:
+%2Lg:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef0123456789abcp0123:0:2:
+%2Lg:-0x8p-972:1:2:-0x0:
+%*2Lg:-0x8p-972:0:2:
+%2Lg:-0x0p+0:1:2:-0x0:
+%*2Lg:-0x0p+0:0:2:
+%2Lg:-0x0p0:1:2:-0x0:
+%*2Lg:-0x0p0:0:2:
+%2Lg:-nan(09A_Zaz):0:-1:
+%*2Lg:-nan(09A_Zaz):0:-1:
+%2Lg:-nan():0:-1:
+%*2Lg:-nan():0:-1:
+%2Lg:nan():0:-1:
+%*2Lg:nan():0:-1:
+%2Lg:nan(09A_Zaz):0:-1:
+%*2Lg:nan(09A_Zaz):0:-1:
+%2Lg:0x0p0:0:-1:
+%*2Lg:0x0p0:0:-1:
+%2Lg:0x0p+0:0:-1:
+%*2Lg:0x0p+0:0:-1:
+%2Lg:0x8p-972:0:-1:
+%*2Lg:0x8p-972:0:-1:
+%2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1:
+%2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1:
+%2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%2Lg:infinity:0:-1:
+%*2Lg:infinity:0:-1:
+%2Lg:+nan():0:-1:
+%*2Lg:+nan():0:-1:
+%2Lg:+nan(09A_Zaz):0:-1:
+%*2Lg:+nan(09A_Zaz):0:-1:
+%2Lg:+0x0p0:1:2:0x0:
+%*2Lg:+0x0p0:0:2:
+%2Lg:+0x0p+0:1:2:0x0:
+%*2Lg:+0x0p+0:0:2:
+%2Lg:+0x8p-972:1:2:0x0:
+%*2Lg:+0x8p-972:0:2:
+%2Lg:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef0123456789abcp0123:0:2:
+%2Lg:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef0123456789abcp+123:0:2:
+%2Lg:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0:
+%*2Lg:+0x7.ffffffffffffdffffffffffffep1021:0:2:
+%2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0:
+%*2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:2:
+%2Lg:+infinity:0:-1:
+%*2Lg:+infinity:0:-1:
+%3Lg::0:-1:
+%*3Lg::0:-1:
+%3Lg:-infinity:0:-1:
+%*3Lg:-infinity:0:-1:
+%3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1:
+%3Lg:-0x8p-972:0:-1:
+%*3Lg:-0x8p-972:0:-1:
+%3Lg:-0x0p+0:0:-1:
+%*3Lg:-0x0p+0:0:-1:
+%3Lg:-0x0p0:0:-1:
+%*3Lg:-0x0p0:0:-1:
+%3Lg:-nan(09A_Zaz):0:-1:
+%*3Lg:-nan(09A_Zaz):0:-1:
+%3Lg:-nan():0:-1:
+%*3Lg:-nan():0:-1:
+%3Lg:nan():1:3:nan:
+%*3Lg:nan():0:3:
+%3Lg:nan(09A_Zaz):1:3:nan:
+%*3Lg:nan(09A_Zaz):0:3:
+%3Lg:0x0p0:1:3:0x0:
+%*3Lg:0x0p0:0:3:
+%3Lg:0x0p+0:1:3:0x0:
+%*3Lg:0x0p+0:0:3:
+%3Lg:0x8p-972:1:3:0x1p3:
+%*3Lg:0x8p-972:0:3:
+%3Lg:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef0123456789abcp0123:0:3:
+%3Lg:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef0123456789abcp+123:0:3:
+%3Lg:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2:
+%*3Lg:0x7.ffffffffffffdffffffffffffep1021:0:3:
+%3Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3:
+%*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3:
+%3Lg:infinity:1:3:inf:
+%*3Lg:infinity:0:3:
+%3Lg:+nan():0:-1:
+%*3Lg:+nan():0:-1:
+%3Lg:+nan(09A_Zaz):0:-1:
+%*3Lg:+nan(09A_Zaz):0:-1:
+%3Lg:+0x0p0:0:-1:
+%*3Lg:+0x0p0:0:-1:
+%3Lg:+0x0p+0:0:-1:
+%*3Lg:+0x0p+0:0:-1:
+%3Lg:+0x8p-972:0:-1:
+%*3Lg:+0x8p-972:0:-1:
+%3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%*3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1:
+%3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%*3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1:
+%3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%3Lg:+infinity:0:-1:
+%*3Lg:+infinity:0:-1:
+%4Lg::0:-1:
+%*4Lg::0:-1:
+%4Lg:-infinity:1:4:-inf:
+%*4Lg:-infinity:0:4:
+%4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3:
+%*4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4Lg:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2:
+%*4Lg:-0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4Lg:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef0123456789abcp+123:0:4:
+%4Lg:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef0123456789abcp0123:0:4:
+%4Lg:-0x8p-972:1:4:-0x1p3:
+%*4Lg:-0x8p-972:0:4:
+%4Lg:-0x0p+0:1:4:-0x0:
+%*4Lg:-0x0p+0:0:4:
+%4Lg:-0x0p0:1:4:-0x0:
+%*4Lg:-0x0p0:0:4:
+%4Lg:-nan(09A_Zaz):1:4:-nan:
+%*4Lg:-nan(09A_Zaz):0:4:
+%4Lg:-nan():1:4:-nan:
+%*4Lg:-nan():0:4:
+%4Lg:nan():0:-1:
+%*4Lg:nan():0:-1:
+%4Lg:nan(09A_Zaz):0:-1:
+%*4Lg:nan(09A_Zaz):0:-1:
+%4Lg:0x0p0:0:-1:
+%*4Lg:0x0p0:0:-1:
+%4Lg:0x0p+0:0:-1:
+%*4Lg:0x0p+0:0:-1:
+%4Lg:0x8p-972:0:-1:
+%*4Lg:0x8p-972:0:-1:
+%4Lg:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef0123456789abcp0123:0:4:
+%4Lg:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef0123456789abcp+123:0:4:
+%4Lg:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2:
+%*4Lg:0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3:
+%*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4Lg:infinity:0:-1:
+%*4Lg:infinity:0:-1:
+%4Lg:+nan():1:4:nan:
+%*4Lg:+nan():0:4:
+%4Lg:+nan(09A_Zaz):1:4:nan:
+%*4Lg:+nan(09A_Zaz):0:4:
+%4Lg:+0x0p0:1:4:0x0:
+%*4Lg:+0x0p0:0:4:
+%4Lg:+0x0p+0:1:4:0x0:
+%*4Lg:+0x0p+0:0:4:
+%4Lg:+0x8p-972:1:4:0x1p3:
+%*4Lg:+0x8p-972:0:4:
+%4Lg:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef0123456789abcp0123:0:4:
+%4Lg:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef0123456789abcp+123:0:4:
+%4Lg:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2:
+%*4Lg:+0x7.ffffffffffffdffffffffffffep1021:0:4:
+%4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3:
+%*4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:4:
+%4Lg:+infinity:1:4:inf:
+%*4Lg:+infinity:0:4:
+%5Lg::0:-1:
+%*5Lg::0:-1:
+%5Lg:-infinity:0:-1:
+%*5Lg:-infinity:0:-1:
+%5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3:
+%*5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5Lg:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2:
+%*5Lg:-0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5Lg:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef0123456789abcp+123:0:5:
+%5Lg:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef0123456789abcp0123:0:5:
+%5Lg:-0x8p-972:0:-1:
+%*5Lg:-0x8p-972:0:-1:
+%5Lg:-0x0p+0:0:-1:
+%*5Lg:-0x0p+0:0:-1:
+%5Lg:-0x0p0:0:-1:
+%*5Lg:-0x0p0:0:-1:
+%5Lg:-nan(09A_Zaz):0:-1:
+%*5Lg:-nan(09A_Zaz):0:-1:
+%5Lg:-nan():0:-1:
+%*5Lg:-nan():0:-1:
+%5Lg:nan():1:5:nan:
+%*5Lg:nan():0:5:
+%5Lg:nan(09A_Zaz):0:-1:
+%*5Lg:nan(09A_Zaz):0:-1:
+%5Lg:0x0p0:1:5:0x0:
+%*5Lg:0x0p0:0:5:
+%5Lg:0x0p+0:0:-1:
+%*5Lg:0x0p+0:0:-1:
+%5Lg:0x8p-972:0:-1:
+%*5Lg:0x8p-972:0:-1:
+%5Lg:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef0123456789abcp0123:0:5:
+%5Lg:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef0123456789abcp+123:0:5:
+%5Lg:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2:
+%*5Lg:0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3:
+%*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5Lg:infinity:0:-1:
+%*5Lg:infinity:0:-1:
+%5Lg:+nan():0:-1:
+%*5Lg:+nan():0:-1:
+%5Lg:+nan(09A_Zaz):0:-1:
+%*5Lg:+nan(09A_Zaz):0:-1:
+%5Lg:+0x0p0:0:-1:
+%*5Lg:+0x0p0:0:-1:
+%5Lg:+0x0p+0:0:-1:
+%*5Lg:+0x0p+0:0:-1:
+%5Lg:+0x8p-972:0:-1:
+%*5Lg:+0x8p-972:0:-1:
+%5Lg:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef0123456789abcp0123:0:5:
+%5Lg:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef0123456789abcp+123:0:5:
+%5Lg:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2:
+%*5Lg:+0x7.ffffffffffffdffffffffffffep1021:0:5:
+%5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3:
+%*5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:5:
+%5Lg:+infinity:0:-1:
+%*5Lg:+infinity:0:-1:
+%6Lg::0:-1:
+%*6Lg::0:-1:
+%6Lg:-infinity:0:-1:
+%*6Lg:-infinity:0:-1:
+%6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3:
+%*6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6Lg:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2:
+%*6Lg:-0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6Lg:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef0123456789abcp+123:0:6:
+%6Lg:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef0123456789abcp0123:0:6:
+%6Lg:-0x8p-972:0:-1:
+%*6Lg:-0x8p-972:0:-1:
+%6Lg:-0x0p+0:0:-1:
+%*6Lg:-0x0p+0:0:-1:
+%6Lg:-0x0p0:1:6:-0x0:
+%*6Lg:-0x0p0:0:6:
+%6Lg:-nan(09A_Zaz):0:-1:
+%*6Lg:-nan(09A_Zaz):0:-1:
+%6Lg:-nan():1:6:-nan:
+%*6Lg:-nan():0:6:
+%6Lg:nan():1:5:nan:
+%*6Lg:nan():0:5:
+%6Lg:nan(09A_Zaz):0:-1:
+%*6Lg:nan(09A_Zaz):0:-1:
+%6Lg:0x0p0:1:5:0x0:
+%*6Lg:0x0p0:0:5:
+%6Lg:0x0p+0:1:6:0x0:
+%*6Lg:0x0p+0:0:6:
+%6Lg:0x8p-972:1:6:0x1p-6:
+%*6Lg:0x8p-972:0:6:
+%6Lg:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef0123456789abcp0123:0:6:
+%6Lg:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef0123456789abcp+123:0:6:
+%6Lg:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2:
+%*6Lg:0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3:
+%*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6Lg:infinity:0:-1:
+%*6Lg:infinity:0:-1:
+%6Lg:+nan():1:6:nan:
+%*6Lg:+nan():0:6:
+%6Lg:+nan(09A_Zaz):0:-1:
+%*6Lg:+nan(09A_Zaz):0:-1:
+%6Lg:+0x0p0:1:6:0x0:
+%*6Lg:+0x0p0:0:6:
+%6Lg:+0x0p+0:0:-1:
+%*6Lg:+0x0p+0:0:-1:
+%6Lg:+0x8p-972:0:-1:
+%*6Lg:+0x8p-972:0:-1:
+%6Lg:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef0123456789abcp0123:0:6:
+%6Lg:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef0123456789abcp+123:0:6:
+%6Lg:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2:
+%*6Lg:+0x7.ffffffffffffdffffffffffffep1021:0:6:
+%6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3:
+%*6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%6Lg:+infinity:0:-1:
+%*6Lg:+infinity:0:-1:
+%33Lg::0:-1:
+%*33Lg::0:-1:
+%33Lg:-infinity:1:9:-inf:
+%*33Lg:-infinity:0:9:
+%33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%33Lg:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3:
+%*33Lg:-0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1:
+%33Lg:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33Lg:-0x2.3456789abcdef0123456789abcp0123:0:33:
+%33Lg:-0x8p-972:1:9:-0x1p-969:
+%*33Lg:-0x8p-972:0:9:
+%33Lg:-0x0p+0:1:7:-0x0:
+%*33Lg:-0x0p+0:0:7:
+%33Lg:-0x0p0:1:6:-0x0:
+%*33Lg:-0x0p0:0:6:
+%33Lg:-nan(09A_Zaz):1:13:-nan:
+%*33Lg:-nan(09A_Zaz):0:13:
+%33Lg:-nan():1:6:-nan:
+%*33Lg:-nan():0:6:
+%33Lg:nan():1:5:nan:
+%*33Lg:nan():0:5:
+%33Lg:nan(09A_Zaz):1:12:nan:
+%*33Lg:nan(09A_Zaz):0:12:
+%33Lg:0x0p0:1:5:0x0:
+%*33Lg:0x0p0:0:5:
+%33Lg:0x0p+0:1:6:0x0:
+%*33Lg:0x0p+0:0:6:
+%33Lg:0x8p-972:1:8:0x1p-969:
+%*33Lg:0x8p-972:0:8:
+%33Lg:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33Lg:0x2.3456789abcdef0123456789abcp0123:0:33:
+%33Lg:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33Lg:0x2.3456789abcdef0123456789abcp+123:0:33:
+%33Lg:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12:
+%*33Lg:0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4:
+%*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33:
+%33Lg:infinity:1:8:inf:
+%*33Lg:infinity:0:8:
+%33Lg:+nan():1:6:nan:
+%*33Lg:+nan():0:6:
+%33Lg:+nan(09A_Zaz):1:13:nan:
+%*33Lg:+nan(09A_Zaz):0:13:
+%33Lg:+0x0p0:1:6:0x0:
+%*33Lg:+0x0p0:0:6:
+%33Lg:+0x0p+0:1:7:0x0:
+%*33Lg:+0x0p+0:0:7:
+%33Lg:+0x8p-972:1:9:0x1p-969:
+%*33Lg:+0x8p-972:0:9:
+%33Lg:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33Lg:+0x2.3456789abcdef0123456789abcp0123:0:33:
+%33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%*33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1:
+%33Lg:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3:
+%*33Lg:+0x7.ffffffffffffdffffffffffffep1021:0:33:
+%33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%*33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1:
+%33Lg:+infinity:1:9:inf:
+%*33Lg:+infinity:0:9:
+%50Lg::0:-1:
+%*50Lg::0:-1:
+%50Lg:-infinity:1:9:-inf:
+%*50Lg:-infinity:0:9:
+%50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:-0x2.3456789abcdef0123456789abcp+123:0:36:
+%50Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:-0x2.3456789abcdef0123456789abcp0123:0:36:
+%50Lg:-0x8p-972:1:9:-0x1p-969:
+%*50Lg:-0x8p-972:0:9:
+%50Lg:-0x0p+0:1:7:-0x0:
+%*50Lg:-0x0p+0:0:7:
+%50Lg:-0x0p0:1:6:-0x0:
+%*50Lg:-0x0p0:0:6:
+%50Lg:-nan(09A_Zaz):1:13:-nan:
+%*50Lg:-nan(09A_Zaz):0:13:
+%50Lg:-nan():1:6:-nan:
+%*50Lg:-nan():0:6:
+%50Lg:nan():1:5:nan:
+%*50Lg:nan():0:5:
+%50Lg:nan(09A_Zaz):1:12:nan:
+%*50Lg:nan(09A_Zaz):0:12:
+%50Lg:0x0p0:1:5:0x0:
+%*50Lg:0x0p0:0:5:
+%50Lg:0x0p+0:1:6:0x0:
+%*50Lg:0x0p+0:0:6:
+%50Lg:0x8p-972:1:8:0x1p-969:
+%*50Lg:0x8p-972:0:8:
+%50Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:0x2.3456789abcdef0123456789abcp0123:0:35:
+%50Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:0x2.3456789abcdef0123456789abcp+123:0:35:
+%50Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:0x7.ffffffffffffdffffffffffffep1021:0:35:
+%50Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36:
+%50Lg:infinity:1:8:inf:
+%*50Lg:infinity:0:8:
+%50Lg:+nan():1:6:nan:
+%*50Lg:+nan():0:6:
+%50Lg:+nan(09A_Zaz):1:13:nan:
+%*50Lg:+nan(09A_Zaz):0:13:
+%50Lg:+0x0p0:1:6:0x0:
+%*50Lg:+0x0p0:0:6:
+%50Lg:+0x0p+0:1:7:0x0:
+%*50Lg:+0x0p+0:0:7:
+%50Lg:+0x8p-972:1:9:0x1p-969:
+%*50Lg:+0x8p-972:0:9:
+%50Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:+0x2.3456789abcdef0123456789abcp0123:0:36:
+%50Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg:+0x2.3456789abcdef0123456789abcp+123:0:36:
+%50Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50Lg:+infinity:1:9:inf:
+%*50Lg:+infinity:0:9:
+%5Lg: :0:-1:
+%*5Lg: :0:-1:
+%5Lg: -infinity:0:-1:
+%*5Lg: -infinity:0:-1:
+%5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3:
+%*5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5Lg: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2:
+%*5Lg: -0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5Lg: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef0123456789abcp+123:0:6:
+%5Lg: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef0123456789abcp0123:0:6:
+%5Lg: -0x8p-972:0:-1:
+%*5Lg: -0x8p-972:0:-1:
+%5Lg: -0x0p+0:0:-1:
+%*5Lg: -0x0p+0:0:-1:
+%5Lg: -0x0p0:0:-1:
+%*5Lg: -0x0p0:0:-1:
+%5Lg: -nan(09A_Zaz):0:-1:
+%*5Lg: -nan(09A_Zaz):0:-1:
+%5Lg: -nan():0:-1:
+%*5Lg: -nan():0:-1:
+%5Lg: nan():1:6:nan:
+%*5Lg: nan():0:6:
+%5Lg: nan(09A_Zaz):0:-1:
+%*5Lg: nan(09A_Zaz):0:-1:
+%5Lg: 0x0p0:1:6:0x0:
+%*5Lg: 0x0p0:0:6:
+%5Lg: 0x0p+0:0:-1:
+%*5Lg: 0x0p+0:0:-1:
+%5Lg: 0x8p-972:0:-1:
+%*5Lg: 0x8p-972:0:-1:
+%5Lg: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef0123456789abcp0123:0:6:
+%5Lg: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef0123456789abcp+123:0:6:
+%5Lg: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2:
+%*5Lg: 0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3:
+%*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5Lg: infinity:0:-1:
+%*5Lg: infinity:0:-1:
+%5Lg: +nan():0:-1:
+%*5Lg: +nan():0:-1:
+%5Lg: +nan(09A_Zaz):0:-1:
+%*5Lg: +nan(09A_Zaz):0:-1:
+%5Lg: +0x0p0:0:-1:
+%*5Lg: +0x0p0:0:-1:
+%5Lg: +0x0p+0:0:-1:
+%*5Lg: +0x0p+0:0:-1:
+%5Lg: +0x8p-972:0:-1:
+%*5Lg: +0x8p-972:0:-1:
+%5Lg: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef0123456789abcp0123:0:6:
+%5Lg: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef0123456789abcp+123:0:6:
+%5Lg: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2:
+%*5Lg: +0x7.ffffffffffffdffffffffffffep1021:0:6:
+%5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3:
+%*5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:6:
+%5Lg: +infinity:0:-1:
+%*5Lg: +infinity:0:-1:
+%50Lg: :0:-1:
+%*50Lg: :0:-1:
+%50Lg: -infinity:1:10:-inf:
+%*50Lg: -infinity:0:10:
+%50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:38:
+%50Lg: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: -0x7.ffffffffffffdffffffffffffep1021:0:37:
+%50Lg: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: -0x2.3456789abcdef0123456789abcp+123:0:37:
+%50Lg: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: -0x2.3456789abcdef0123456789abcp0123:0:37:
+%50Lg: -0x8p-972:1:10:-0x1p-969:
+%*50Lg: -0x8p-972:0:10:
+%50Lg: -0x0p+0:1:8:-0x0:
+%*50Lg: -0x0p+0:0:8:
+%50Lg: -0x0p0:1:7:-0x0:
+%*50Lg: -0x0p0:0:7:
+%50Lg: -nan(09A_Zaz):1:14:-nan:
+%*50Lg: -nan(09A_Zaz):0:14:
+%50Lg: -nan():1:7:-nan:
+%*50Lg: -nan():0:7:
+%50Lg: nan():1:6:nan:
+%*50Lg: nan():0:6:
+%50Lg: nan(09A_Zaz):1:13:nan:
+%*50Lg: nan(09A_Zaz):0:13:
+%50Lg: 0x0p0:1:6:0x0:
+%*50Lg: 0x0p0:0:6:
+%50Lg: 0x0p+0:1:7:0x0:
+%*50Lg: 0x0p+0:0:7:
+%50Lg: 0x8p-972:1:9:0x1p-969:
+%*50Lg: 0x8p-972:0:9:
+%50Lg: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: 0x2.3456789abcdef0123456789abcp0123:0:36:
+%50Lg: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: 0x2.3456789abcdef0123456789abcp+123:0:36:
+%50Lg: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: 0x7.ffffffffffffdffffffffffffep1021:0:36:
+%50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37:
+%50Lg: infinity:1:9:inf:
+%*50Lg: infinity:0:9:
+%50Lg: +nan():1:7:nan:
+%*50Lg: +nan():0:7:
+%50Lg: +nan(09A_Zaz):1:14:nan:
+%*50Lg: +nan(09A_Zaz):0:14:
+%50Lg: +0x0p0:1:7:0x0:
+%*50Lg: +0x0p0:0:7:
+%50Lg: +0x0p+0:1:8:0x0:
+%*50Lg: +0x0p+0:0:8:
+%50Lg: +0x8p-972:1:10:0x1p-969:
+%*50Lg: +0x8p-972:0:10:
+%50Lg: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: +0x2.3456789abcdef0123456789abcp0123:0:37:
+%50Lg: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50Lg: +0x2.3456789abcdef0123456789abcp+123:0:37:
+%50Lg: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: +0x7.ffffffffffffdffffffffffffep1021:0:37:
+%50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:38:
+%50Lg: +infinity:1:10:inf:
+%*50Lg: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input
new file mode 100644
index 0000000..4df9b04
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input
@@ -0,0 +1,682 @@
+%LG::0:-1:
+%*LG::0:-1:
+%LG:-INFINITY:1:9:-inf:
+%*LG:-INFINITY:0:9:
+%LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%LG:-0X8P-972:1:9:-0x1p-969:
+%*LG:-0X8P-972:0:9:
+%LG:-0X0P+0:1:7:-0x0:
+%*LG:-0X0P+0:0:7:
+%LG:-0X0P0:1:6:-0x0:
+%*LG:-0X0P0:0:6:
+%LG:-NAN(09A_Zaz):1:13:-nan:
+%*LG:-NAN(09A_Zaz):0:13:
+%LG:-NAN():1:6:-nan:
+%*LG:-NAN():0:6:
+%LG:NAN():1:5:nan:
+%*LG:NAN():0:5:
+%LG:NAN(09A_Zaz):1:12:nan:
+%*LG:NAN(09A_Zaz):0:12:
+%LG:0X0P0:1:5:0x0:
+%*LG:0X0P0:0:5:
+%LG:0X0P+0:1:6:0x0:
+%*LG:0X0P+0:0:6:
+%LG:0X8P-972:1:8:0x1p-969:
+%*LG:0X8P-972:0:8:
+%LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35:
+%LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35:
+%LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35:
+%LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36:
+%LG:INFINITY:1:8:inf:
+%*LG:INFINITY:0:8:
+%LG:+NAN():1:6:nan:
+%*LG:+NAN():0:6:
+%LG:+NAN(09A_Zaz):1:13:nan:
+%*LG:+NAN(09A_Zaz):0:13:
+%LG:+0X0P0:1:6:0x0:
+%*LG:+0X0P0:0:6:
+%LG:+0X0P+0:1:7:0x0:
+%*LG:+0X0P+0:0:7:
+%LG:+0X8P-972:1:9:0x1p-969:
+%*LG:+0X8P-972:0:9:
+%LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%LG:+INFINITY:1:9:inf:
+%*LG:+INFINITY:0:9:
+%1LG::0:-1:
+%*1LG::0:-1:
+%1LG:-INFINITY:0:-1:
+%*1LG:-INFINITY:0:-1:
+%1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%1LG:-0X8P-972:0:-1:
+%*1LG:-0X8P-972:0:-1:
+%1LG:-0X0P+0:0:-1:
+%*1LG:-0X0P+0:0:-1:
+%1LG:-0X0P0:0:-1:
+%*1LG:-0X0P0:0:-1:
+%1LG:-NAN(09A_Zaz):0:-1:
+%*1LG:-NAN(09A_Zaz):0:-1:
+%1LG:-NAN():0:-1:
+%*1LG:-NAN():0:-1:
+%1LG:NAN():0:-1:
+%*1LG:NAN():0:-1:
+%1LG:NAN(09A_Zaz):0:-1:
+%*1LG:NAN(09A_Zaz):0:-1:
+%1LG:0X0P0:1:1:0x0:
+%*1LG:0X0P0:0:1:
+%1LG:0X0P+0:1:1:0x0:
+%*1LG:0X0P+0:0:1:
+%1LG:0X8P-972:1:1:0x0:
+%*1LG:0X8P-972:0:1:
+%1LG:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF0123456789ABCP0123:0:1:
+%1LG:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF0123456789ABCP+123:0:1:
+%1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0:
+%*1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1:
+%1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0:
+%*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1:
+%1LG:INFINITY:0:-1:
+%*1LG:INFINITY:0:-1:
+%1LG:+NAN():0:-1:
+%*1LG:+NAN():0:-1:
+%1LG:+NAN(09A_Zaz):0:-1:
+%*1LG:+NAN(09A_Zaz):0:-1:
+%1LG:+0X0P0:0:-1:
+%*1LG:+0X0P0:0:-1:
+%1LG:+0X0P+0:0:-1:
+%*1LG:+0X0P+0:0:-1:
+%1LG:+0X8P-972:0:-1:
+%*1LG:+0X8P-972:0:-1:
+%1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%1LG:+INFINITY:0:-1:
+%*1LG:+INFINITY:0:-1:
+%2LG::0:-1:
+%*2LG::0:-1:
+%2LG:-INFINITY:0:-1:
+%*2LG:-INFINITY:0:-1:
+%2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0:
+%*2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2:
+%2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0:
+%*2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2:
+%2LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:2:
+%2LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:2:
+%2LG:-0X8P-972:1:2:-0x0:
+%*2LG:-0X8P-972:0:2:
+%2LG:-0X0P+0:1:2:-0x0:
+%*2LG:-0X0P+0:0:2:
+%2LG:-0X0P0:1:2:-0x0:
+%*2LG:-0X0P0:0:2:
+%2LG:-NAN(09A_Zaz):0:-1:
+%*2LG:-NAN(09A_Zaz):0:-1:
+%2LG:-NAN():0:-1:
+%*2LG:-NAN():0:-1:
+%2LG:NAN():0:-1:
+%*2LG:NAN():0:-1:
+%2LG:NAN(09A_Zaz):0:-1:
+%*2LG:NAN(09A_Zaz):0:-1:
+%2LG:0X0P0:0:-1:
+%*2LG:0X0P0:0:-1:
+%2LG:0X0P+0:0:-1:
+%*2LG:0X0P+0:0:-1:
+%2LG:0X8P-972:0:-1:
+%*2LG:0X8P-972:0:-1:
+%2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%2LG:INFINITY:0:-1:
+%*2LG:INFINITY:0:-1:
+%2LG:+NAN():0:-1:
+%*2LG:+NAN():0:-1:
+%2LG:+NAN(09A_Zaz):0:-1:
+%*2LG:+NAN(09A_Zaz):0:-1:
+%2LG:+0X0P0:1:2:0x0:
+%*2LG:+0X0P0:0:2:
+%2LG:+0X0P+0:1:2:0x0:
+%*2LG:+0X0P+0:0:2:
+%2LG:+0X8P-972:1:2:0x0:
+%*2LG:+0X8P-972:0:2:
+%2LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:2:
+%2LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:2:
+%2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0:
+%*2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2:
+%2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0:
+%*2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2:
+%2LG:+INFINITY:0:-1:
+%*2LG:+INFINITY:0:-1:
+%3LG::0:-1:
+%*3LG::0:-1:
+%3LG:-INFINITY:0:-1:
+%*3LG:-INFINITY:0:-1:
+%3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%3LG:-0X8P-972:0:-1:
+%*3LG:-0X8P-972:0:-1:
+%3LG:-0X0P+0:0:-1:
+%*3LG:-0X0P+0:0:-1:
+%3LG:-0X0P0:0:-1:
+%*3LG:-0X0P0:0:-1:
+%3LG:-NAN(09A_Zaz):0:-1:
+%*3LG:-NAN(09A_Zaz):0:-1:
+%3LG:-NAN():0:-1:
+%*3LG:-NAN():0:-1:
+%3LG:NAN():1:3:nan:
+%*3LG:NAN():0:3:
+%3LG:NAN(09A_Zaz):1:3:nan:
+%*3LG:NAN(09A_Zaz):0:3:
+%3LG:0X0P0:1:3:0x0:
+%*3LG:0X0P0:0:3:
+%3LG:0X0P+0:1:3:0x0:
+%*3LG:0X0P+0:0:3:
+%3LG:0X8P-972:1:3:0x1p3:
+%*3LG:0X8P-972:0:3:
+%3LG:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF0123456789ABCP0123:0:3:
+%3LG:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF0123456789ABCP+123:0:3:
+%3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2:
+%*3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3:
+%3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3:
+%*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3:
+%3LG:INFINITY:1:3:inf:
+%*3LG:INFINITY:0:3:
+%3LG:+NAN():0:-1:
+%*3LG:+NAN():0:-1:
+%3LG:+NAN(09A_Zaz):0:-1:
+%*3LG:+NAN(09A_Zaz):0:-1:
+%3LG:+0X0P0:0:-1:
+%*3LG:+0X0P0:0:-1:
+%3LG:+0X0P+0:0:-1:
+%*3LG:+0X0P+0:0:-1:
+%3LG:+0X8P-972:0:-1:
+%*3LG:+0X8P-972:0:-1:
+%3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%*3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1:
+%3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%*3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1:
+%3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%3LG:+INFINITY:0:-1:
+%*3LG:+INFINITY:0:-1:
+%4LG::0:-1:
+%*4LG::0:-1:
+%4LG:-INFINITY:1:4:-inf:
+%*4LG:-INFINITY:0:4:
+%4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3:
+%*4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2:
+%*4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LG:-0X8P-972:1:4:-0x1p3:
+%*4LG:-0X8P-972:0:4:
+%4LG:-0X0P+0:1:4:-0x0:
+%*4LG:-0X0P+0:0:4:
+%4LG:-0X0P0:1:4:-0x0:
+%*4LG:-0X0P0:0:4:
+%4LG:-NAN(09A_Zaz):1:4:-nan:
+%*4LG:-NAN(09A_Zaz):0:4:
+%4LG:-NAN():1:4:-nan:
+%*4LG:-NAN():0:4:
+%4LG:NAN():0:-1:
+%*4LG:NAN():0:-1:
+%4LG:NAN(09A_Zaz):0:-1:
+%*4LG:NAN(09A_Zaz):0:-1:
+%4LG:0X0P0:0:-1:
+%*4LG:0X0P0:0:-1:
+%4LG:0X0P+0:0:-1:
+%*4LG:0X0P+0:0:-1:
+%4LG:0X8P-972:0:-1:
+%*4LG:0X8P-972:0:-1:
+%4LG:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LG:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2:
+%*4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3:
+%*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LG:INFINITY:0:-1:
+%*4LG:INFINITY:0:-1:
+%4LG:+NAN():1:4:nan:
+%*4LG:+NAN():0:4:
+%4LG:+NAN(09A_Zaz):1:4:nan:
+%*4LG:+NAN(09A_Zaz):0:4:
+%4LG:+0X0P0:1:4:0x0:
+%*4LG:+0X0P0:0:4:
+%4LG:+0X0P+0:1:4:0x0:
+%*4LG:+0X0P+0:0:4:
+%4LG:+0X8P-972:1:4:0x1p3:
+%*4LG:+0X8P-972:0:4:
+%4LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:4:
+%4LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:4:
+%4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2:
+%*4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4:
+%4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3:
+%*4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4:
+%4LG:+INFINITY:1:4:inf:
+%*4LG:+INFINITY:0:4:
+%5LG::0:-1:
+%*5LG::0:-1:
+%5LG:-INFINITY:0:-1:
+%*5LG:-INFINITY:0:-1:
+%5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3:
+%*5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2:
+%*5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LG:-0X8P-972:0:-1:
+%*5LG:-0X8P-972:0:-1:
+%5LG:-0X0P+0:0:-1:
+%*5LG:-0X0P+0:0:-1:
+%5LG:-0X0P0:0:-1:
+%*5LG:-0X0P0:0:-1:
+%5LG:-NAN(09A_Zaz):0:-1:
+%*5LG:-NAN(09A_Zaz):0:-1:
+%5LG:-NAN():0:-1:
+%*5LG:-NAN():0:-1:
+%5LG:NAN():1:5:nan:
+%*5LG:NAN():0:5:
+%5LG:NAN(09A_Zaz):0:-1:
+%*5LG:NAN(09A_Zaz):0:-1:
+%5LG:0X0P0:1:5:0x0:
+%*5LG:0X0P0:0:5:
+%5LG:0X0P+0:0:-1:
+%*5LG:0X0P+0:0:-1:
+%5LG:0X8P-972:0:-1:
+%*5LG:0X8P-972:0:-1:
+%5LG:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LG:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2:
+%*5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3:
+%*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LG:INFINITY:0:-1:
+%*5LG:INFINITY:0:-1:
+%5LG:+NAN():0:-1:
+%*5LG:+NAN():0:-1:
+%5LG:+NAN(09A_Zaz):0:-1:
+%*5LG:+NAN(09A_Zaz):0:-1:
+%5LG:+0X0P0:0:-1:
+%*5LG:+0X0P0:0:-1:
+%5LG:+0X0P+0:0:-1:
+%*5LG:+0X0P+0:0:-1:
+%5LG:+0X8P-972:0:-1:
+%*5LG:+0X8P-972:0:-1:
+%5LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:5:
+%5LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:5:
+%5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2:
+%*5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5:
+%5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3:
+%*5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5:
+%5LG:+INFINITY:0:-1:
+%*5LG:+INFINITY:0:-1:
+%6LG::0:-1:
+%*6LG::0:-1:
+%6LG:-INFINITY:0:-1:
+%*6LG:-INFINITY:0:-1:
+%6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3:
+%*6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2:
+%*6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LG:-0X8P-972:0:-1:
+%*6LG:-0X8P-972:0:-1:
+%6LG:-0X0P+0:0:-1:
+%*6LG:-0X0P+0:0:-1:
+%6LG:-0X0P0:1:6:-0x0:
+%*6LG:-0X0P0:0:6:
+%6LG:-NAN(09A_Zaz):0:-1:
+%*6LG:-NAN(09A_Zaz):0:-1:
+%6LG:-NAN():1:6:-nan:
+%*6LG:-NAN():0:6:
+%6LG:NAN():1:5:nan:
+%*6LG:NAN():0:5:
+%6LG:NAN(09A_Zaz):0:-1:
+%*6LG:NAN(09A_Zaz):0:-1:
+%6LG:0X0P0:1:5:0x0:
+%*6LG:0X0P0:0:5:
+%6LG:0X0P+0:1:6:0x0:
+%*6LG:0X0P+0:0:6:
+%6LG:0X8P-972:1:6:0x1p-6:
+%*6LG:0X8P-972:0:6:
+%6LG:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LG:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2:
+%*6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3:
+%*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LG:INFINITY:0:-1:
+%*6LG:INFINITY:0:-1:
+%6LG:+NAN():1:6:nan:
+%*6LG:+NAN():0:6:
+%6LG:+NAN(09A_Zaz):0:-1:
+%*6LG:+NAN(09A_Zaz):0:-1:
+%6LG:+0X0P0:1:6:0x0:
+%*6LG:+0X0P0:0:6:
+%6LG:+0X0P+0:0:-1:
+%*6LG:+0X0P+0:0:-1:
+%6LG:+0X8P-972:0:-1:
+%*6LG:+0X8P-972:0:-1:
+%6LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%6LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2:
+%*6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3:
+%*6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%6LG:+INFINITY:0:-1:
+%*6LG:+INFINITY:0:-1:
+%33LG::0:-1:
+%*33LG::0:-1:
+%33LG:-INFINITY:1:9:-inf:
+%*33LG:-INFINITY:0:9:
+%33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3:
+%*33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%33LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LG:-0X8P-972:1:9:-0x1p-969:
+%*33LG:-0X8P-972:0:9:
+%33LG:-0X0P+0:1:7:-0x0:
+%*33LG:-0X0P+0:0:7:
+%33LG:-0X0P0:1:6:-0x0:
+%*33LG:-0X0P0:0:6:
+%33LG:-NAN(09A_Zaz):1:13:-nan:
+%*33LG:-NAN(09A_Zaz):0:13:
+%33LG:-NAN():1:6:-nan:
+%*33LG:-NAN():0:6:
+%33LG:NAN():1:5:nan:
+%*33LG:NAN():0:5:
+%33LG:NAN(09A_Zaz):1:12:nan:
+%*33LG:NAN(09A_Zaz):0:12:
+%33LG:0X0P0:1:5:0x0:
+%*33LG:0X0P0:0:5:
+%33LG:0X0P+0:1:6:0x0:
+%*33LG:0X0P+0:0:6:
+%33LG:0X8P-972:1:8:0x1p-969:
+%*33LG:0X8P-972:0:8:
+%33LG:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33LG:0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LG:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2:
+%*33LG:0X2.3456789ABCDEF0123456789ABCP+123:0:33:
+%33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12:
+%*33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4:
+%*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33:
+%33LG:INFINITY:1:8:inf:
+%*33LG:INFINITY:0:8:
+%33LG:+NAN():1:6:nan:
+%*33LG:+NAN():0:6:
+%33LG:+NAN(09A_Zaz):1:13:nan:
+%*33LG:+NAN(09A_Zaz):0:13:
+%33LG:+0X0P0:1:6:0x0:
+%*33LG:+0X0P0:0:6:
+%33LG:+0X0P+0:1:7:0x0:
+%*33LG:+0X0P+0:0:7:
+%33LG:+0X8P-972:1:9:0x1p-969:
+%*33LG:+0X8P-972:0:9:
+%33LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1:
+%*33LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:33:
+%33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%*33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1:
+%33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3:
+%*33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33:
+%33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%*33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1:
+%33LG:+INFINITY:1:9:inf:
+%*33LG:+INFINITY:0:9:
+%50LG::0:-1:
+%*50LG::0:-1:
+%50LG:-INFINITY:1:9:-inf:
+%*50LG:-INFINITY:0:9:
+%50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LG:-0X8P-972:1:9:-0x1p-969:
+%*50LG:-0X8P-972:0:9:
+%50LG:-0X0P+0:1:7:-0x0:
+%*50LG:-0X0P+0:0:7:
+%50LG:-0X0P0:1:6:-0x0:
+%*50LG:-0X0P0:0:6:
+%50LG:-NAN(09A_Zaz):1:13:-nan:
+%*50LG:-NAN(09A_Zaz):0:13:
+%50LG:-NAN():1:6:-nan:
+%*50LG:-NAN():0:6:
+%50LG:NAN():1:5:nan:
+%*50LG:NAN():0:5:
+%50LG:NAN(09A_Zaz):1:12:nan:
+%*50LG:NAN(09A_Zaz):0:12:
+%50LG:0X0P0:1:5:0x0:
+%*50LG:0X0P0:0:5:
+%50LG:0X0P+0:1:6:0x0:
+%*50LG:0X0P+0:0:6:
+%50LG:0X8P-972:1:8:0x1p-969:
+%*50LG:0X8P-972:0:8:
+%50LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35:
+%50LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35:
+%50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35:
+%50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36:
+%50LG:INFINITY:1:8:inf:
+%*50LG:INFINITY:0:8:
+%50LG:+NAN():1:6:nan:
+%*50LG:+NAN():0:6:
+%50LG:+NAN(09A_Zaz):1:13:nan:
+%*50LG:+NAN(09A_Zaz):0:13:
+%50LG:+0X0P0:1:6:0x0:
+%*50LG:+0X0P0:0:6:
+%50LG:+0X0P+0:1:7:0x0:
+%*50LG:+0X0P+0:0:7:
+%50LG:+0X8P-972:1:9:0x1p-969:
+%*50LG:+0X8P-972:0:9:
+%50LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LG:+INFINITY:1:9:inf:
+%*50LG:+INFINITY:0:9:
+%5LG: :0:-1:
+%*5LG: :0:-1:
+%5LG: -INFINITY:0:-1:
+%*5LG: -INFINITY:0:-1:
+%5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3:
+%*5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2:
+%*5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LG: -0X8P-972:0:-1:
+%*5LG: -0X8P-972:0:-1:
+%5LG: -0X0P+0:0:-1:
+%*5LG: -0X0P+0:0:-1:
+%5LG: -0X0P0:0:-1:
+%*5LG: -0X0P0:0:-1:
+%5LG: -NAN(09A_Zaz):0:-1:
+%*5LG: -NAN(09A_Zaz):0:-1:
+%5LG: -NAN():0:-1:
+%*5LG: -NAN():0:-1:
+%5LG: NAN():1:6:nan:
+%*5LG: NAN():0:6:
+%5LG: NAN(09A_Zaz):0:-1:
+%*5LG: NAN(09A_Zaz):0:-1:
+%5LG: 0X0P0:1:6:0x0:
+%*5LG: 0X0P0:0:6:
+%5LG: 0X0P+0:0:-1:
+%*5LG: 0X0P+0:0:-1:
+%5LG: 0X8P-972:0:-1:
+%*5LG: 0X8P-972:0:-1:
+%5LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2:
+%*5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3:
+%*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LG: INFINITY:0:-1:
+%*5LG: INFINITY:0:-1:
+%5LG: +NAN():0:-1:
+%*5LG: +NAN():0:-1:
+%5LG: +NAN(09A_Zaz):0:-1:
+%*5LG: +NAN(09A_Zaz):0:-1:
+%5LG: +0X0P0:0:-1:
+%*5LG: +0X0P0:0:-1:
+%5LG: +0X0P+0:0:-1:
+%*5LG: +0X0P+0:0:-1:
+%5LG: +0X8P-972:0:-1:
+%*5LG: +0X8P-972:0:-1:
+%5LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:6:
+%5LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:6:
+%5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2:
+%*5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6:
+%5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3:
+%*5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6:
+%5LG: +INFINITY:0:-1:
+%*5LG: +INFINITY:0:-1:
+%50LG: :0:-1:
+%*50LG: :0:-1:
+%50LG: -INFINITY:1:10:-inf:
+%*50LG: -INFINITY:0:10:
+%50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38:
+%50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37:
+%50LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:37:
+%50LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:37:
+%50LG: -0X8P-972:1:10:-0x1p-969:
+%*50LG: -0X8P-972:0:10:
+%50LG: -0X0P+0:1:8:-0x0:
+%*50LG: -0X0P+0:0:8:
+%50LG: -0X0P0:1:7:-0x0:
+%*50LG: -0X0P0:0:7:
+%50LG: -NAN(09A_Zaz):1:14:-nan:
+%*50LG: -NAN(09A_Zaz):0:14:
+%50LG: -NAN():1:7:-nan:
+%*50LG: -NAN():0:7:
+%50LG: NAN():1:6:nan:
+%*50LG: NAN():0:6:
+%50LG: NAN(09A_Zaz):1:13:nan:
+%*50LG: NAN(09A_Zaz):0:13:
+%50LG: 0X0P0:1:6:0x0:
+%*50LG: 0X0P0:0:6:
+%50LG: 0X0P+0:1:7:0x0:
+%*50LG: 0X0P+0:0:7:
+%50LG: 0X8P-972:1:9:0x1p-969:
+%*50LG: 0X8P-972:0:9:
+%50LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:36:
+%50LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:36:
+%50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36:
+%50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37:
+%50LG: INFINITY:1:9:inf:
+%*50LG: INFINITY:0:9:
+%50LG: +NAN():1:7:nan:
+%*50LG: +NAN():0:7:
+%50LG: +NAN(09A_Zaz):1:14:nan:
+%*50LG: +NAN(09A_Zaz):0:14:
+%50LG: +0X0P0:1:7:0x0:
+%*50LG: +0X0P0:0:7:
+%50LG: +0X0P+0:1:8:0x0:
+%*50LG: +0X0P+0:0:8:
+%50LG: +0X8P-972:1:10:0x1p-969:
+%*50LG: +0X8P-972:0:10:
+%50LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:37:
+%50LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124:
+%*50LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:37:
+%50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37:
+%50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023:
+%*50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38:
+%50LG: +INFINITY:1:10:inf:
+%*50LG: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
index a67ac36..a21776b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm strtold overflow to infinity (bug 14551).
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c b/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
index 0dfa618..a3e23ea 100644
--- a/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-64-128/Makefile b/sysdeps/ieee754/ldbl-64-128/Makefile
new file mode 100644
index 0000000..7a37fa1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-64-128/Makefile
@@ -0,0 +1,14 @@
+ifeq ($(subdir),stdio-common)
+ifeq ($(run-built-tests),yes)
+# Put long double IEEE binary128 format inputs in sysdeps/ieee754/ldbl-128
+# first in vpath. Otherwise the ordering of sysdeps would cause long double
+# IEEE binary64 format inputs in sysdeps/ieee754/ldbl-opt to be used instead
+# for the common rules requested in sysdeps/ieee754/ldbl-128 with targets
+# using the dual -mlong-double-128/-mlong-double-64 arrangement.
+define tst-scanf-format-64-128-vpath
+vpath tst-scanf-format-ldouble-$(1).input ../sysdeps/ieee754/ldbl-128
+endef
+$(foreach f,$(fmts-xscanf-real), \
+ $(eval $(call tst-scanf-format-64-128-vpath,$(f))))
+endif # $(run-built-tests) == yes
+endif # $(subdir) == stdio-common
diff --git a/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
index f31d574..ab4b9bc 100644
--- a/sysdeps/ieee754/ldbl-64-128/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile
index a3ec2c5..833f3b7 100644
--- a/sysdeps/ieee754/ldbl-96/Makefile
+++ b/sysdeps/ieee754/ldbl-96/Makefile
@@ -1,5 +1,5 @@
# Makefile for sysdeps/ieee754/ldbl-96.
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -148,3 +148,7 @@ CFLAGS-s_y1l.c += -fno-builtin-y1f64x
CFLAGS-s_ynl.c += -fno-builtin-ynf64x
endif # $(subdir) == math
+
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-real-convs += ldouble
+endif
diff --git a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
index 9bfdfc4..5e5da29 100644
--- a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
@@ -1,5 +1,5 @@
/* Define iscanonical macro. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/bits/long-double.h b/sysdeps/ieee754/ldbl-96/bits/long-double.h
index 791b567..d78785a 100644
--- a/sysdeps/ieee754/ldbl-96/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-96/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
index f093681..0d1f5da 100644
--- a/sysdeps/ieee754/ldbl-96/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/e_hypotl.c b/sysdeps/ieee754/ldbl-96/e_hypotl.c
index 8ae5caf..8c724aa 100644
--- a/sysdeps/ieee754/ldbl-96/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-96/e_hypotl.c
@@ -1,5 +1,5 @@
/* Euclidean distance function. Long Double/Binary96 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
index 9d44bf6..ee57a0e 100644
--- a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point argument reduction.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/gamma_product.c b/sysdeps/ieee754/ldbl-96/gamma_product.c
index 27142a2..ecf71d7 100644
--- a/sysdeps/ieee754/ldbl-96/gamma_product.c
+++ b/sysdeps/ieee754/ldbl-96/gamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/gamma_productl.c b/sysdeps/ieee754/ldbl-96/gamma_productl.c
index c303eb1..ca15045 100644
--- a/sysdeps/ieee754/ldbl-96/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-96/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/k_cosl.c b/sysdeps/ieee754/ldbl-96/k_cosl.c
index d71d493..efb744f 100644
--- a/sysdeps/ieee754/ldbl-96/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-96/k_cosl.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/k_sinl.c b/sysdeps/ieee754/ldbl-96/k_sinl.c
index 06a8f7c..ee212ba 100644
--- a/sysdeps/ieee754/ldbl-96/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-96/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
index f4a6d45..07af979 100644
--- a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_negl.c b/sysdeps/ieee754/ldbl-96/lgamma_negl.c
index 40a298c..3b36f4a 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_product.c b/sysdeps/ieee754/ldbl-96/lgamma_product.c
index 19909de..06ea343 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_product.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_productl.c b/sysdeps/ieee754/ldbl-96/lgamma_productl.c
index b39bc3a..cbddaff 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
index fb0409e..c03555c 100644
--- a/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling for ldbl-96.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/math_ldbl.h b/sysdeps/ieee754/ldbl-96/math_ldbl.h
index 040b0da..3064347 100644
--- a/sysdeps/ieee754/ldbl-96/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-96/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/mpn2ldbl.c b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
index bb59939..659a47a 100644
--- a/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
index ae5dec8..567fae7 100644
--- a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
+++ b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
@@ -1,5 +1,5 @@
/* Pseudo-normal number handling. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/printf_fphex.c b/sysdeps/ieee754/ldbl-96/printf_fphex.c
index a57fbc2..e5b99f8 100644
--- a/sysdeps/ieee754/ldbl-96/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-96/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_cbrtl.c b/sysdeps/ieee754/ldbl-96/s_cbrtl.c
index 13d5dab..72085ab 100644
--- a/sysdeps/ieee754/ldbl-96/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-96/s_cbrtl.c
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_daddl.c b/sysdeps/ieee754/ldbl-96/s_daddl.c
index 87d9398..226af05 100644
--- a/sysdeps/ieee754/ldbl-96/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-96/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_ddivl.c b/sysdeps/ieee754/ldbl-96/s_ddivl.c
index ab2756b..dd1145b 100644
--- a/sysdeps/ieee754/ldbl-96/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-96/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_dfmal.c b/sysdeps/ieee754/ldbl-96/s_dfmal.c
index ec3a922..f362b52 100644
--- a/sysdeps/ieee754/ldbl-96/s_dfmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_dfmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-96) value, narrowing the result
to double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_dmull.c b/sysdeps/ieee754/ldbl-96/s_dmull.c
index f051cf8..9fc8324 100644
--- a/sysdeps/ieee754/ldbl-96/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-96/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_dsqrtl.c b/sysdeps/ieee754/ldbl-96/s_dsqrtl.c
index 9cd0758..ae0a237 100644
--- a/sysdeps/ieee754/ldbl-96/s_dsqrtl.c
+++ b/sysdeps/ieee754/ldbl-96/s_dsqrtl.c
@@ -1,5 +1,5 @@
/* Square root of long double (ldbl-96) value, narrowing the result to double.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_dsubl.c b/sysdeps/ieee754/ldbl-96/s_dsubl.c
index 141c9b0..3c370ba 100644
--- a/sysdeps/ieee754/ldbl-96/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-96/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_erfcl.c b/sysdeps/ieee754/ldbl-96/s_erfcl.c
new file mode 100644
index 0000000..95d17c8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/s_erfcl.c
@@ -0,0 +1 @@
+/* Not required. */
diff --git a/sysdeps/ieee754/ldbl-96/s_fabsl.c b/sysdeps/ieee754/ldbl-96/s_fabsl.c
index 9bd9b97..9891bb3 100644
--- a/sysdeps/ieee754/ldbl-96/s_fabsl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fabsl.c
@@ -1,5 +1,5 @@
/* Absolute value of floating-point number.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_faddl.c b/sysdeps/ieee754/ldbl-96/s_faddl.c
index 7d1d9d2..554dee1 100644
--- a/sysdeps/ieee754/ldbl-96/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-96/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fdivl.c b/sysdeps/ieee754/ldbl-96/s_fdivl.c
index 59877e6..96b07d2 100644
--- a/sysdeps/ieee754/ldbl-96/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_ffmal.c b/sysdeps/ieee754/ldbl-96/s_ffmal.c
index 894b625..b54b25c 100644
--- a/sysdeps/ieee754/ldbl-96/s_ffmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_ffmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-96) value, narrowing the result
to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fma.c b/sysdeps/ieee754/ldbl-96/s_fma.c
index 22f148b..2bb7889 100644
--- a/sysdeps/ieee754/ldbl-96/s_fma.c
+++ b/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fmal.c b/sysdeps/ieee754/ldbl-96/s_fmal.c
index 6b8a00e..ac88401 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fmull.c b/sysdeps/ieee754/ldbl-96/s_fmull.c
index 98ceec8..8b9763a 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
index df4446b..dfbf9a4 100644
--- a/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fsqrtl.c b/sysdeps/ieee754/ldbl-96/s_fsqrtl.c
index 1bb5b5b..bcd4ef0 100644
--- a/sysdeps/ieee754/ldbl-96/s_fsqrtl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fsqrtl.c
@@ -1,5 +1,5 @@
/* Square root of long double (ldbl-96) value, narrowing the result to float.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_fsubl.c b/sysdeps/ieee754/ldbl-96/s_fsubl.c
index aa594c8..34133f0 100644
--- a/sysdeps/ieee754/ldbl-96/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
index 7f0d848..dbc3e56 100644
--- a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_iscanonicall.c b/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
index af83960..bcafc34 100644
--- a/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
+++ b/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
@@ -1,5 +1,5 @@
/* Test whether long double value is canonical. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_issignalingl.c b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
index 9b563a7..5243987 100644
--- a/sysdeps/ieee754/ldbl-96/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_llrintl.c b/sysdeps/ieee754/ldbl-96/s_llrintl.c
index 790cfcb..88d3a46 100644
--- a/sysdeps/ieee754/ldbl-96/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-96/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_llroundl.c b/sysdeps/ieee754/ldbl-96/s_llroundl.c
index c2dd21c..d4babe4 100644
--- a/sysdeps/ieee754/ldbl-96/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_llroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_lrintl.c b/sysdeps/ieee754/ldbl-96/s_lrintl.c
index 8dce47d..bab88ff 100644
--- a/sysdeps/ieee754/ldbl-96/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-96/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_lroundl.c b/sysdeps/ieee754/ldbl-96/s_lroundl.c
index 2b4d829..3cd0f42 100644
--- a/sysdeps/ieee754/ldbl-96/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_lroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_nextupl.c b/sysdeps/ieee754/ldbl-96/s_nextupl.c
index 5be67bf..3f86368 100644
--- a/sysdeps/ieee754/ldbl-96/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-96/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_remquol.c b/sysdeps/ieee754/ldbl-96/s_remquol.c
index f869f37..65a22bb 100644
--- a/sysdeps/ieee754/ldbl-96/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-96/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
index b1808a4..0da5ce3 100644
--- a/sysdeps/ieee754/ldbl-96/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_roundl.c b/sysdeps/ieee754/ldbl-96/s_roundl.c
index 08b4274..91d0c44 100644
--- a/sysdeps/ieee754/ldbl-96/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_roundl.c
@@ -1,5 +1,5 @@
/* Round long double to integer away from zero.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
index 69274f5..27b9931 100644
--- a/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_signbitl.c b/sysdeps/ieee754/ldbl-96/s_signbitl.c
index 06c35b6..bfaed68 100644
--- a/sysdeps/ieee754/ldbl-96/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-96/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_sincosl.c b/sysdeps/ieee754/ldbl-96/s_sincosl.c
index d053097..20c2ffd 100644
--- a/sysdeps/ieee754/ldbl-96/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-96/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_totalorderl.c b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
index 1ef0444..5b8f59f 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
index d91a4b3..083747e 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-96 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/strtold_l.c b/sysdeps/ieee754/ldbl-96/strtold_l.c
index 6a30821..c721ddc 100644
--- a/sysdeps/ieee754/ldbl-96/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-96/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/t_sincosl.c b/sysdeps/ieee754/ldbl-96/t_sincosl.c
index 6cbccbe..968a825 100644
--- a/sysdeps/ieee754/ldbl-96/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-96/t_sincosl.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point sine and cosine tables.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
index 8a9245e..898bea9 100644
--- a/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
+++ b/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
@@ -1,5 +1,5 @@
/* Test iscanonical and canonicalizel for ldbl-96.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c b/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c
index 96603d1..cc1eb66 100644
--- a/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c
+++ b/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c
@@ -1,5 +1,5 @@
/* Test sinl for pseudo-zeros and unnormals for ldbl-96 (bug 25487).
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
index 5d64da8..02cf36d 100644
--- a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
+++ b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
@@ -1,5 +1,5 @@
/* Test totalorderl and totalordermagl for ldbl-96.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -46,9 +46,9 @@ do_test (void)
SET_LDOUBLE_WORDS (ldy, 0x7fff,
(tests[i] >> 32) | 0x80000000,
tests[i] & 0xffffffffULL);
- SET_LDOUBLE_WORDS (ldnx, 0xffff,
+ SET_LDOUBLE_WORDS (ldnx, -1,
tests[i] >> 32, tests[i] & 0xffffffffULL);
- SET_LDOUBLE_WORDS (ldny, 0xffff,
+ SET_LDOUBLE_WORDS (ldny, -1,
(tests[i] >> 32) | 0x80000000,
tests[i] & 0xffffffffULL);
bool to1 = totalorderl (&ldx, &ldy);
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input
new file mode 100644
index 0000000..1813a18
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input
@@ -0,0 +1,682 @@
+%La::0:-1:
+%*La::0:-1:
+%La:-infinity:1:9:-inf:
+%*La:-infinity:0:9:
+%La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383:
+%*La:-0xf.fffffffffffffffp+16380:0:27:
+%La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383:
+%*La:-0x7.fffffffffffffff8p16381:0:27:
+%La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*La:-0x2.3456789abcdef01p+12345:0:27:
+%La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*La:-0x2.3456789abcdef01p012345:0:27:
+%La:-0x8p-16385:1:11:-0x1p-16382:
+%*La:-0x8p-16385:0:11:
+%La:-0x0p+0:1:7:-0x0:
+%*La:-0x0p+0:0:7:
+%La:-0x0p0:1:6:-0x0:
+%*La:-0x0p0:0:6:
+%La:-nan(09A_Zaz):1:13:-nan:
+%*La:-nan(09A_Zaz):0:13:
+%La:-nan():1:6:-nan:
+%*La:-nan():0:6:
+%La:nan():1:5:nan:
+%*La:nan():0:5:
+%La:nan(09A_Zaz):1:12:nan:
+%*La:nan(09A_Zaz):0:12:
+%La:0x0p0:1:5:0x0:
+%*La:0x0p0:0:5:
+%La:0x0p+0:1:6:0x0:
+%*La:0x0p+0:0:6:
+%La:0x8p-16385:1:10:0x1p-16382:
+%*La:0x8p-16385:0:10:
+%La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*La:0x2.3456789abcdef01p012345:0:26:
+%La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*La:0x2.3456789abcdef01p+12345:0:26:
+%La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383:
+%*La:0x7.fffffffffffffff8p16381:0:26:
+%La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383:
+%*La:0xf.fffffffffffffffp+16380:0:26:
+%La:infinity:1:8:inf:
+%*La:infinity:0:8:
+%La:+nan():1:6:nan:
+%*La:+nan():0:6:
+%La:+nan(09A_Zaz):1:13:nan:
+%*La:+nan(09A_Zaz):0:13:
+%La:+0x0p0:1:6:0x0:
+%*La:+0x0p0:0:6:
+%La:+0x0p+0:1:7:0x0:
+%*La:+0x0p+0:0:7:
+%La:+0x8p-16385:1:11:0x1p-16382:
+%*La:+0x8p-16385:0:11:
+%La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*La:+0x2.3456789abcdef01p012345:0:27:
+%La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*La:+0x2.3456789abcdef01p+12345:0:27:
+%La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*La:+0x7.fffffffffffffff8p16381:0:27:
+%La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*La:+0xf.fffffffffffffffp+16380:0:27:
+%La:+infinity:1:9:inf:
+%*La:+infinity:0:9:
+%1La::0:-1:
+%*1La::0:-1:
+%1La:-infinity:0:-1:
+%*1La:-infinity:0:-1:
+%1La:-0xf.fffffffffffffffp+16380:0:-1:
+%*1La:-0xf.fffffffffffffffp+16380:0:-1:
+%1La:-0x7.fffffffffffffff8p16381:0:-1:
+%*1La:-0x7.fffffffffffffff8p16381:0:-1:
+%1La:-0x2.3456789abcdef01p+12345:0:-1:
+%*1La:-0x2.3456789abcdef01p+12345:0:-1:
+%1La:-0x2.3456789abcdef01p012345:0:-1:
+%*1La:-0x2.3456789abcdef01p012345:0:-1:
+%1La:-0x8p-16385:0:-1:
+%*1La:-0x8p-16385:0:-1:
+%1La:-0x0p+0:0:-1:
+%*1La:-0x0p+0:0:-1:
+%1La:-0x0p0:0:-1:
+%*1La:-0x0p0:0:-1:
+%1La:-nan(09A_Zaz):0:-1:
+%*1La:-nan(09A_Zaz):0:-1:
+%1La:-nan():0:-1:
+%*1La:-nan():0:-1:
+%1La:nan():0:-1:
+%*1La:nan():0:-1:
+%1La:nan(09A_Zaz):0:-1:
+%*1La:nan(09A_Zaz):0:-1:
+%1La:0x0p0:1:1:0x0:
+%*1La:0x0p0:0:1:
+%1La:0x0p+0:1:1:0x0:
+%*1La:0x0p+0:0:1:
+%1La:0x8p-16385:1:1:0x0:
+%*1La:0x8p-16385:0:1:
+%1La:0x2.3456789abcdef01p012345:1:1:0x0:
+%*1La:0x2.3456789abcdef01p012345:0:1:
+%1La:0x2.3456789abcdef01p+12345:1:1:0x0:
+%*1La:0x2.3456789abcdef01p+12345:0:1:
+%1La:0x7.fffffffffffffff8p16381:1:1:0x0:
+%*1La:0x7.fffffffffffffff8p16381:0:1:
+%1La:0xf.fffffffffffffffp+16380:1:1:0x0:
+%*1La:0xf.fffffffffffffffp+16380:0:1:
+%1La:infinity:0:-1:
+%*1La:infinity:0:-1:
+%1La:+nan():0:-1:
+%*1La:+nan():0:-1:
+%1La:+nan(09A_Zaz):0:-1:
+%*1La:+nan(09A_Zaz):0:-1:
+%1La:+0x0p0:0:-1:
+%*1La:+0x0p0:0:-1:
+%1La:+0x0p+0:0:-1:
+%*1La:+0x0p+0:0:-1:
+%1La:+0x8p-16385:0:-1:
+%*1La:+0x8p-16385:0:-1:
+%1La:+0x2.3456789abcdef01p012345:0:-1:
+%*1La:+0x2.3456789abcdef01p012345:0:-1:
+%1La:+0x2.3456789abcdef01p+12345:0:-1:
+%*1La:+0x2.3456789abcdef01p+12345:0:-1:
+%1La:+0x7.fffffffffffffff8p16381:0:-1:
+%*1La:+0x7.fffffffffffffff8p16381:0:-1:
+%1La:+0xf.fffffffffffffffp+16380:0:-1:
+%*1La:+0xf.fffffffffffffffp+16380:0:-1:
+%1La:+infinity:0:-1:
+%*1La:+infinity:0:-1:
+%2La::0:-1:
+%*2La::0:-1:
+%2La:-infinity:0:-1:
+%*2La:-infinity:0:-1:
+%2La:-0xf.fffffffffffffffp+16380:1:2:-0x0:
+%*2La:-0xf.fffffffffffffffp+16380:0:2:
+%2La:-0x7.fffffffffffffff8p16381:1:2:-0x0:
+%*2La:-0x7.fffffffffffffff8p16381:0:2:
+%2La:-0x2.3456789abcdef01p+12345:1:2:-0x0:
+%*2La:-0x2.3456789abcdef01p+12345:0:2:
+%2La:-0x2.3456789abcdef01p012345:1:2:-0x0:
+%*2La:-0x2.3456789abcdef01p012345:0:2:
+%2La:-0x8p-16385:1:2:-0x0:
+%*2La:-0x8p-16385:0:2:
+%2La:-0x0p+0:1:2:-0x0:
+%*2La:-0x0p+0:0:2:
+%2La:-0x0p0:1:2:-0x0:
+%*2La:-0x0p0:0:2:
+%2La:-nan(09A_Zaz):0:-1:
+%*2La:-nan(09A_Zaz):0:-1:
+%2La:-nan():0:-1:
+%*2La:-nan():0:-1:
+%2La:nan():0:-1:
+%*2La:nan():0:-1:
+%2La:nan(09A_Zaz):0:-1:
+%*2La:nan(09A_Zaz):0:-1:
+%2La:0x0p0:0:-1:
+%*2La:0x0p0:0:-1:
+%2La:0x0p+0:0:-1:
+%*2La:0x0p+0:0:-1:
+%2La:0x8p-16385:0:-1:
+%*2La:0x8p-16385:0:-1:
+%2La:0x2.3456789abcdef01p012345:0:-1:
+%*2La:0x2.3456789abcdef01p012345:0:-1:
+%2La:0x2.3456789abcdef01p+12345:0:-1:
+%*2La:0x2.3456789abcdef01p+12345:0:-1:
+%2La:0x7.fffffffffffffff8p16381:0:-1:
+%*2La:0x7.fffffffffffffff8p16381:0:-1:
+%2La:0xf.fffffffffffffffp+16380:0:-1:
+%*2La:0xf.fffffffffffffffp+16380:0:-1:
+%2La:infinity:0:-1:
+%*2La:infinity:0:-1:
+%2La:+nan():0:-1:
+%*2La:+nan():0:-1:
+%2La:+nan(09A_Zaz):0:-1:
+%*2La:+nan(09A_Zaz):0:-1:
+%2La:+0x0p0:1:2:0x0:
+%*2La:+0x0p0:0:2:
+%2La:+0x0p+0:1:2:0x0:
+%*2La:+0x0p+0:0:2:
+%2La:+0x8p-16385:1:2:0x0:
+%*2La:+0x8p-16385:0:2:
+%2La:+0x2.3456789abcdef01p012345:1:2:0x0:
+%*2La:+0x2.3456789abcdef01p012345:0:2:
+%2La:+0x2.3456789abcdef01p+12345:1:2:0x0:
+%*2La:+0x2.3456789abcdef01p+12345:0:2:
+%2La:+0x7.fffffffffffffff8p16381:1:2:0x0:
+%*2La:+0x7.fffffffffffffff8p16381:0:2:
+%2La:+0xf.fffffffffffffffp+16380:1:2:0x0:
+%*2La:+0xf.fffffffffffffffp+16380:0:2:
+%2La:+infinity:0:-1:
+%*2La:+infinity:0:-1:
+%3La::0:-1:
+%*3La::0:-1:
+%3La:-infinity:0:-1:
+%*3La:-infinity:0:-1:
+%3La:-0xf.fffffffffffffffp+16380:0:-1:
+%*3La:-0xf.fffffffffffffffp+16380:0:-1:
+%3La:-0x7.fffffffffffffff8p16381:0:-1:
+%*3La:-0x7.fffffffffffffff8p16381:0:-1:
+%3La:-0x2.3456789abcdef01p+12345:0:-1:
+%*3La:-0x2.3456789abcdef01p+12345:0:-1:
+%3La:-0x2.3456789abcdef01p012345:0:-1:
+%*3La:-0x2.3456789abcdef01p012345:0:-1:
+%3La:-0x8p-16385:0:-1:
+%*3La:-0x8p-16385:0:-1:
+%3La:-0x0p+0:0:-1:
+%*3La:-0x0p+0:0:-1:
+%3La:-0x0p0:0:-1:
+%*3La:-0x0p0:0:-1:
+%3La:-nan(09A_Zaz):0:-1:
+%*3La:-nan(09A_Zaz):0:-1:
+%3La:-nan():0:-1:
+%*3La:-nan():0:-1:
+%3La:nan():1:3:nan:
+%*3La:nan():0:3:
+%3La:nan(09A_Zaz):1:3:nan:
+%*3La:nan(09A_Zaz):0:3:
+%3La:0x0p0:1:3:0x0:
+%*3La:0x0p0:0:3:
+%3La:0x0p+0:1:3:0x0:
+%*3La:0x0p+0:0:3:
+%3La:0x8p-16385:1:3:0x1p3:
+%*3La:0x8p-16385:0:3:
+%3La:0x2.3456789abcdef01p012345:1:3:0x1p1:
+%*3La:0x2.3456789abcdef01p012345:0:3:
+%3La:0x2.3456789abcdef01p+12345:1:3:0x1p1:
+%*3La:0x2.3456789abcdef01p+12345:0:3:
+%3La:0x7.fffffffffffffff8p16381:1:3:0x1.cp2:
+%*3La:0x7.fffffffffffffff8p16381:0:3:
+%3La:0xf.fffffffffffffffp+16380:1:3:0x1.ep3:
+%*3La:0xf.fffffffffffffffp+16380:0:3:
+%3La:infinity:1:3:inf:
+%*3La:infinity:0:3:
+%3La:+nan():0:-1:
+%*3La:+nan():0:-1:
+%3La:+nan(09A_Zaz):0:-1:
+%*3La:+nan(09A_Zaz):0:-1:
+%3La:+0x0p0:0:-1:
+%*3La:+0x0p0:0:-1:
+%3La:+0x0p+0:0:-1:
+%*3La:+0x0p+0:0:-1:
+%3La:+0x8p-16385:0:-1:
+%*3La:+0x8p-16385:0:-1:
+%3La:+0x2.3456789abcdef01p012345:0:-1:
+%*3La:+0x2.3456789abcdef01p012345:0:-1:
+%3La:+0x2.3456789abcdef01p+12345:0:-1:
+%*3La:+0x2.3456789abcdef01p+12345:0:-1:
+%3La:+0x7.fffffffffffffff8p16381:0:-1:
+%*3La:+0x7.fffffffffffffff8p16381:0:-1:
+%3La:+0xf.fffffffffffffffp+16380:0:-1:
+%*3La:+0xf.fffffffffffffffp+16380:0:-1:
+%3La:+infinity:0:-1:
+%*3La:+infinity:0:-1:
+%4La::0:-1:
+%*4La::0:-1:
+%4La:-infinity:1:4:-inf:
+%*4La:-infinity:0:4:
+%4La:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3:
+%*4La:-0xf.fffffffffffffffp+16380:0:4:
+%4La:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2:
+%*4La:-0x7.fffffffffffffff8p16381:0:4:
+%4La:-0x2.3456789abcdef01p+12345:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef01p+12345:0:4:
+%4La:-0x2.3456789abcdef01p012345:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdef01p012345:0:4:
+%4La:-0x8p-16385:1:4:-0x1p3:
+%*4La:-0x8p-16385:0:4:
+%4La:-0x0p+0:1:4:-0x0:
+%*4La:-0x0p+0:0:4:
+%4La:-0x0p0:1:4:-0x0:
+%*4La:-0x0p0:0:4:
+%4La:-nan(09A_Zaz):1:4:-nan:
+%*4La:-nan(09A_Zaz):0:4:
+%4La:-nan():1:4:-nan:
+%*4La:-nan():0:4:
+%4La:nan():0:-1:
+%*4La:nan():0:-1:
+%4La:nan(09A_Zaz):0:-1:
+%*4La:nan(09A_Zaz):0:-1:
+%4La:0x0p0:0:-1:
+%*4La:0x0p0:0:-1:
+%4La:0x0p+0:0:-1:
+%*4La:0x0p+0:0:-1:
+%4La:0x8p-16385:0:-1:
+%*4La:0x8p-16385:0:-1:
+%4La:0x2.3456789abcdef01p012345:1:4:0x1p1:
+%*4La:0x2.3456789abcdef01p012345:0:4:
+%4La:0x2.3456789abcdef01p+12345:1:4:0x1p1:
+%*4La:0x2.3456789abcdef01p+12345:0:4:
+%4La:0x7.fffffffffffffff8p16381:1:4:0x1.cp2:
+%*4La:0x7.fffffffffffffff8p16381:0:4:
+%4La:0xf.fffffffffffffffp+16380:1:4:0x1.ep3:
+%*4La:0xf.fffffffffffffffp+16380:0:4:
+%4La:infinity:0:-1:
+%*4La:infinity:0:-1:
+%4La:+nan():1:4:nan:
+%*4La:+nan():0:4:
+%4La:+nan(09A_Zaz):1:4:nan:
+%*4La:+nan(09A_Zaz):0:4:
+%4La:+0x0p0:1:4:0x0:
+%*4La:+0x0p0:0:4:
+%4La:+0x0p+0:1:4:0x0:
+%*4La:+0x0p+0:0:4:
+%4La:+0x8p-16385:1:4:0x1p3:
+%*4La:+0x8p-16385:0:4:
+%4La:+0x2.3456789abcdef01p012345:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef01p012345:0:4:
+%4La:+0x2.3456789abcdef01p+12345:1:4:0x1p1:
+%*4La:+0x2.3456789abcdef01p+12345:0:4:
+%4La:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2:
+%*4La:+0x7.fffffffffffffff8p16381:0:4:
+%4La:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3:
+%*4La:+0xf.fffffffffffffffp+16380:0:4:
+%4La:+infinity:1:4:inf:
+%*4La:+infinity:0:4:
+%5La::0:-1:
+%*5La::0:-1:
+%5La:-infinity:0:-1:
+%*5La:-infinity:0:-1:
+%5La:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3:
+%*5La:-0xf.fffffffffffffffp+16380:0:5:
+%5La:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2:
+%*5La:-0x7.fffffffffffffff8p16381:0:5:
+%5La:-0x2.3456789abcdef01p+12345:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef01p+12345:0:5:
+%5La:-0x2.3456789abcdef01p012345:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdef01p012345:0:5:
+%5La:-0x8p-16385:0:-1:
+%*5La:-0x8p-16385:0:-1:
+%5La:-0x0p+0:0:-1:
+%*5La:-0x0p+0:0:-1:
+%5La:-0x0p0:0:-1:
+%*5La:-0x0p0:0:-1:
+%5La:-nan(09A_Zaz):0:-1:
+%*5La:-nan(09A_Zaz):0:-1:
+%5La:-nan():0:-1:
+%*5La:-nan():0:-1:
+%5La:nan():1:5:nan:
+%*5La:nan():0:5:
+%5La:nan(09A_Zaz):0:-1:
+%*5La:nan(09A_Zaz):0:-1:
+%5La:0x0p0:1:5:0x0:
+%*5La:0x0p0:0:5:
+%5La:0x0p+0:0:-1:
+%*5La:0x0p+0:0:-1:
+%5La:0x8p-16385:0:-1:
+%*5La:0x8p-16385:0:-1:
+%5La:0x2.3456789abcdef01p012345:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef01p012345:0:5:
+%5La:0x2.3456789abcdef01p+12345:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdef01p+12345:0:5:
+%5La:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2:
+%*5La:0x7.fffffffffffffff8p16381:0:5:
+%5La:0xf.fffffffffffffffp+16380:1:5:0x1.fep3:
+%*5La:0xf.fffffffffffffffp+16380:0:5:
+%5La:infinity:0:-1:
+%*5La:infinity:0:-1:
+%5La:+nan():0:-1:
+%*5La:+nan():0:-1:
+%5La:+nan(09A_Zaz):0:-1:
+%*5La:+nan(09A_Zaz):0:-1:
+%5La:+0x0p0:0:-1:
+%*5La:+0x0p0:0:-1:
+%5La:+0x0p+0:0:-1:
+%*5La:+0x0p+0:0:-1:
+%5La:+0x8p-16385:0:-1:
+%*5La:+0x8p-16385:0:-1:
+%5La:+0x2.3456789abcdef01p012345:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef01p012345:0:5:
+%5La:+0x2.3456789abcdef01p+12345:1:5:0x1p1:
+%*5La:+0x2.3456789abcdef01p+12345:0:5:
+%5La:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2:
+%*5La:+0x7.fffffffffffffff8p16381:0:5:
+%5La:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3:
+%*5La:+0xf.fffffffffffffffp+16380:0:5:
+%5La:+infinity:0:-1:
+%*5La:+infinity:0:-1:
+%6La::0:-1:
+%*6La::0:-1:
+%6La:-infinity:0:-1:
+%*6La:-infinity:0:-1:
+%6La:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3:
+%*6La:-0xf.fffffffffffffffp+16380:0:6:
+%6La:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2:
+%*6La:-0x7.fffffffffffffff8p16381:0:6:
+%6La:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef01p+12345:0:6:
+%6La:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdef01p012345:0:6:
+%6La:-0x8p-16385:0:-1:
+%*6La:-0x8p-16385:0:-1:
+%6La:-0x0p+0:0:-1:
+%*6La:-0x0p+0:0:-1:
+%6La:-0x0p0:1:6:-0x0:
+%*6La:-0x0p0:0:6:
+%6La:-nan(09A_Zaz):0:-1:
+%*6La:-nan(09A_Zaz):0:-1:
+%6La:-nan():1:6:-nan:
+%*6La:-nan():0:6:
+%6La:nan():1:5:nan:
+%*6La:nan():0:5:
+%6La:nan(09A_Zaz):0:-1:
+%*6La:nan(09A_Zaz):0:-1:
+%6La:0x0p0:1:5:0x0:
+%*6La:0x0p0:0:5:
+%6La:0x0p+0:1:6:0x0:
+%*6La:0x0p+0:0:6:
+%6La:0x8p-16385:1:6:0x1p2:
+%*6La:0x8p-16385:0:6:
+%6La:0x2.3456789abcdef01p012345:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef01p012345:0:6:
+%6La:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdef01p+12345:0:6:
+%6La:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2:
+%*6La:0x7.fffffffffffffff8p16381:0:6:
+%6La:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3:
+%*6La:0xf.fffffffffffffffp+16380:0:6:
+%6La:infinity:0:-1:
+%*6La:infinity:0:-1:
+%6La:+nan():1:6:nan:
+%*6La:+nan():0:6:
+%6La:+nan(09A_Zaz):0:-1:
+%*6La:+nan(09A_Zaz):0:-1:
+%6La:+0x0p0:1:6:0x0:
+%*6La:+0x0p0:0:6:
+%6La:+0x0p+0:0:-1:
+%*6La:+0x0p+0:0:-1:
+%6La:+0x8p-16385:0:-1:
+%*6La:+0x8p-16385:0:-1:
+%6La:+0x2.3456789abcdef01p012345:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef01p012345:0:6:
+%6La:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdef01p+12345:0:6:
+%6La:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2:
+%*6La:+0x7.fffffffffffffff8p16381:0:6:
+%6La:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3:
+%*6La:+0xf.fffffffffffffffp+16380:0:6:
+%6La:+infinity:0:-1:
+%*6La:+infinity:0:-1:
+%22La::0:-1:
+%*22La::0:-1:
+%22La:-infinity:1:9:-inf:
+%*22La:-infinity:0:9:
+%22La:-0xf.fffffffffffffffp+16380:0:-1:
+%*22La:-0xf.fffffffffffffffp+16380:0:-1:
+%22La:-0x7.fffffffffffffff8p16381:0:-1:
+%*22La:-0x7.fffffffffffffff8p16381:0:-1:
+%22La:-0x2.3456789abcdef01p+12345:0:-1:
+%*22La:-0x2.3456789abcdef01p+12345:0:-1:
+%22La:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1:
+%*22La:-0x2.3456789abcdef01p012345:0:22:
+%22La:-0x8p-16385:1:11:-0x1p-16382:
+%*22La:-0x8p-16385:0:11:
+%22La:-0x0p+0:1:7:-0x0:
+%*22La:-0x0p+0:0:7:
+%22La:-0x0p0:1:6:-0x0:
+%*22La:-0x0p0:0:6:
+%22La:-nan(09A_Zaz):1:13:-nan:
+%*22La:-nan(09A_Zaz):0:13:
+%22La:-nan():1:6:-nan:
+%*22La:-nan():0:6:
+%22La:nan():1:5:nan:
+%*22La:nan():0:5:
+%22La:nan(09A_Zaz):1:12:nan:
+%*22La:nan(09A_Zaz):0:12:
+%22La:0x0p0:1:5:0x0:
+%*22La:0x0p0:0:5:
+%22La:0x0p+0:1:6:0x0:
+%*22La:0x0p+0:0:6:
+%22La:0x8p-16385:1:10:0x1p-16382:
+%*22La:0x8p-16385:0:10:
+%22La:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22La:0x2.3456789abcdef01p012345:0:22:
+%22La:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22La:0x2.3456789abcdef01p+12345:0:22:
+%22La:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3:
+%*22La:0x7.fffffffffffffff8p16381:0:22:
+%22La:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4:
+%*22La:0xf.fffffffffffffffp+16380:0:22:
+%22La:infinity:1:8:inf:
+%*22La:infinity:0:8:
+%22La:+nan():1:6:nan:
+%*22La:+nan():0:6:
+%22La:+nan(09A_Zaz):1:13:nan:
+%*22La:+nan(09A_Zaz):0:13:
+%22La:+0x0p0:1:6:0x0:
+%*22La:+0x0p0:0:6:
+%22La:+0x0p+0:1:7:0x0:
+%*22La:+0x0p+0:0:7:
+%22La:+0x8p-16385:1:11:0x1p-16382:
+%*22La:+0x8p-16385:0:11:
+%22La:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1:
+%*22La:+0x2.3456789abcdef01p012345:0:22:
+%22La:+0x2.3456789abcdef01p+12345:0:-1:
+%*22La:+0x2.3456789abcdef01p+12345:0:-1:
+%22La:+0x7.fffffffffffffff8p16381:0:-1:
+%*22La:+0x7.fffffffffffffff8p16381:0:-1:
+%22La:+0xf.fffffffffffffffp+16380:0:-1:
+%*22La:+0xf.fffffffffffffffp+16380:0:-1:
+%22La:+infinity:1:9:inf:
+%*22La:+infinity:0:9:
+%37La::0:-1:
+%*37La::0:-1:
+%37La:-infinity:1:9:-inf:
+%*37La:-infinity:0:9:
+%37La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383:
+%*37La:-0xf.fffffffffffffffp+16380:0:27:
+%37La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383:
+%*37La:-0x7.fffffffffffffff8p16381:0:27:
+%37La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37La:-0x2.3456789abcdef01p+12345:0:27:
+%37La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37La:-0x2.3456789abcdef01p012345:0:27:
+%37La:-0x8p-16385:1:11:-0x1p-16382:
+%*37La:-0x8p-16385:0:11:
+%37La:-0x0p+0:1:7:-0x0:
+%*37La:-0x0p+0:0:7:
+%37La:-0x0p0:1:6:-0x0:
+%*37La:-0x0p0:0:6:
+%37La:-nan(09A_Zaz):1:13:-nan:
+%*37La:-nan(09A_Zaz):0:13:
+%37La:-nan():1:6:-nan:
+%*37La:-nan():0:6:
+%37La:nan():1:5:nan:
+%*37La:nan():0:5:
+%37La:nan(09A_Zaz):1:12:nan:
+%*37La:nan(09A_Zaz):0:12:
+%37La:0x0p0:1:5:0x0:
+%*37La:0x0p0:0:5:
+%37La:0x0p+0:1:6:0x0:
+%*37La:0x0p+0:0:6:
+%37La:0x8p-16385:1:10:0x1p-16382:
+%*37La:0x8p-16385:0:10:
+%37La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37La:0x2.3456789abcdef01p012345:0:26:
+%37La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37La:0x2.3456789abcdef01p+12345:0:26:
+%37La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383:
+%*37La:0x7.fffffffffffffff8p16381:0:26:
+%37La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383:
+%*37La:0xf.fffffffffffffffp+16380:0:26:
+%37La:infinity:1:8:inf:
+%*37La:infinity:0:8:
+%37La:+nan():1:6:nan:
+%*37La:+nan():0:6:
+%37La:+nan(09A_Zaz):1:13:nan:
+%*37La:+nan(09A_Zaz):0:13:
+%37La:+0x0p0:1:6:0x0:
+%*37La:+0x0p0:0:6:
+%37La:+0x0p+0:1:7:0x0:
+%*37La:+0x0p+0:0:7:
+%37La:+0x8p-16385:1:11:0x1p-16382:
+%*37La:+0x8p-16385:0:11:
+%37La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37La:+0x2.3456789abcdef01p012345:0:27:
+%37La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37La:+0x2.3456789abcdef01p+12345:0:27:
+%37La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*37La:+0x7.fffffffffffffff8p16381:0:27:
+%37La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*37La:+0xf.fffffffffffffffp+16380:0:27:
+%37La:+infinity:1:9:inf:
+%*37La:+infinity:0:9:
+%5La: :0:-1:
+%*5La: :0:-1:
+%5La: -infinity:0:-1:
+%*5La: -infinity:0:-1:
+%5La: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3:
+%*5La: -0xf.fffffffffffffffp+16380:0:6:
+%5La: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2:
+%*5La: -0x7.fffffffffffffff8p16381:0:6:
+%5La: -0x2.3456789abcdef01p+12345:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef01p+12345:0:6:
+%5La: -0x2.3456789abcdef01p012345:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdef01p012345:0:6:
+%5La: -0x8p-16385:0:-1:
+%*5La: -0x8p-16385:0:-1:
+%5La: -0x0p+0:0:-1:
+%*5La: -0x0p+0:0:-1:
+%5La: -0x0p0:0:-1:
+%*5La: -0x0p0:0:-1:
+%5La: -nan(09A_Zaz):0:-1:
+%*5La: -nan(09A_Zaz):0:-1:
+%5La: -nan():0:-1:
+%*5La: -nan():0:-1:
+%5La: nan():1:6:nan:
+%*5La: nan():0:6:
+%5La: nan(09A_Zaz):0:-1:
+%*5La: nan(09A_Zaz):0:-1:
+%5La: 0x0p0:1:6:0x0:
+%*5La: 0x0p0:0:6:
+%5La: 0x0p+0:0:-1:
+%*5La: 0x0p+0:0:-1:
+%5La: 0x8p-16385:0:-1:
+%*5La: 0x8p-16385:0:-1:
+%5La: 0x2.3456789abcdef01p012345:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef01p012345:0:6:
+%5La: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdef01p+12345:0:6:
+%5La: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2:
+%*5La: 0x7.fffffffffffffff8p16381:0:6:
+%5La: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3:
+%*5La: 0xf.fffffffffffffffp+16380:0:6:
+%5La: infinity:0:-1:
+%*5La: infinity:0:-1:
+%5La: +nan():0:-1:
+%*5La: +nan():0:-1:
+%5La: +nan(09A_Zaz):0:-1:
+%*5La: +nan(09A_Zaz):0:-1:
+%5La: +0x0p0:0:-1:
+%*5La: +0x0p0:0:-1:
+%5La: +0x0p+0:0:-1:
+%*5La: +0x0p+0:0:-1:
+%5La: +0x8p-16385:0:-1:
+%*5La: +0x8p-16385:0:-1:
+%5La: +0x2.3456789abcdef01p012345:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef01p012345:0:6:
+%5La: +0x2.3456789abcdef01p+12345:1:6:0x1p1:
+%*5La: +0x2.3456789abcdef01p+12345:0:6:
+%5La: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2:
+%*5La: +0x7.fffffffffffffff8p16381:0:6:
+%5La: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3:
+%*5La: +0xf.fffffffffffffffp+16380:0:6:
+%5La: +infinity:0:-1:
+%*5La: +infinity:0:-1:
+%37La: :0:-1:
+%*37La: :0:-1:
+%37La: -infinity:1:10:-inf:
+%*37La: -infinity:0:10:
+%37La: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383:
+%*37La: -0xf.fffffffffffffffp+16380:0:28:
+%37La: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383:
+%*37La: -0x7.fffffffffffffff8p16381:0:28:
+%37La: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37La: -0x2.3456789abcdef01p+12345:0:28:
+%37La: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37La: -0x2.3456789abcdef01p012345:0:28:
+%37La: -0x8p-16385:1:12:-0x1p-16382:
+%*37La: -0x8p-16385:0:12:
+%37La: -0x0p+0:1:8:-0x0:
+%*37La: -0x0p+0:0:8:
+%37La: -0x0p0:1:7:-0x0:
+%*37La: -0x0p0:0:7:
+%37La: -nan(09A_Zaz):1:14:-nan:
+%*37La: -nan(09A_Zaz):0:14:
+%37La: -nan():1:7:-nan:
+%*37La: -nan():0:7:
+%37La: nan():1:6:nan:
+%*37La: nan():0:6:
+%37La: nan(09A_Zaz):1:13:nan:
+%*37La: nan(09A_Zaz):0:13:
+%37La: 0x0p0:1:6:0x0:
+%*37La: 0x0p0:0:6:
+%37La: 0x0p+0:1:7:0x0:
+%*37La: 0x0p+0:0:7:
+%37La: 0x8p-16385:1:11:0x1p-16382:
+%*37La: 0x8p-16385:0:11:
+%37La: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37La: 0x2.3456789abcdef01p012345:0:27:
+%37La: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37La: 0x2.3456789abcdef01p+12345:0:27:
+%37La: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*37La: 0x7.fffffffffffffff8p16381:0:27:
+%37La: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*37La: 0xf.fffffffffffffffp+16380:0:27:
+%37La: infinity:1:9:inf:
+%*37La: infinity:0:9:
+%37La: +nan():1:7:nan:
+%*37La: +nan():0:7:
+%37La: +nan(09A_Zaz):1:14:nan:
+%*37La: +nan(09A_Zaz):0:14:
+%37La: +0x0p0:1:7:0x0:
+%*37La: +0x0p0:0:7:
+%37La: +0x0p+0:1:8:0x0:
+%*37La: +0x0p+0:0:8:
+%37La: +0x8p-16385:1:12:0x1p-16382:
+%*37La: +0x8p-16385:0:12:
+%37La: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37La: +0x2.3456789abcdef01p012345:0:28:
+%37La: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37La: +0x2.3456789abcdef01p+12345:0:28:
+%37La: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383:
+%*37La: +0x7.fffffffffffffff8p16381:0:28:
+%37La: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383:
+%*37La: +0xf.fffffffffffffffp+16380:0:28:
+%37La: +infinity:1:10:inf:
+%*37La: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input
new file mode 100644
index 0000000..26bc713
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input
@@ -0,0 +1,682 @@
+%LA::0:-1:
+%*LA::0:-1:
+%LA:-INFINITY:1:9:-inf:
+%*LA:-INFINITY:0:9:
+%LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383:
+%*LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383:
+%*LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*LA:-0X2.3456789ABCDEF01P+12345:0:27:
+%LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*LA:-0X2.3456789ABCDEF01P012345:0:27:
+%LA:-0X8P-16385:1:11:-0x1p-16382:
+%*LA:-0X8P-16385:0:11:
+%LA:-0X0P+0:1:7:-0x0:
+%*LA:-0X0P+0:0:7:
+%LA:-0X0P0:1:6:-0x0:
+%*LA:-0X0P0:0:6:
+%LA:-NAN(09A_Zaz):1:13:-nan:
+%*LA:-NAN(09A_Zaz):0:13:
+%LA:-NAN():1:6:-nan:
+%*LA:-NAN():0:6:
+%LA:NAN():1:5:nan:
+%*LA:NAN():0:5:
+%LA:NAN(09A_Zaz):1:12:nan:
+%*LA:NAN(09A_Zaz):0:12:
+%LA:0X0P0:1:5:0x0:
+%*LA:0X0P0:0:5:
+%LA:0X0P+0:1:6:0x0:
+%*LA:0X0P+0:0:6:
+%LA:0X8P-16385:1:10:0x1p-16382:
+%*LA:0X8P-16385:0:10:
+%LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*LA:0X2.3456789ABCDEF01P012345:0:26:
+%LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*LA:0X2.3456789ABCDEF01P+12345:0:26:
+%LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383:
+%*LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26:
+%LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383:
+%*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26:
+%LA:INFINITY:1:8:inf:
+%*LA:INFINITY:0:8:
+%LA:+NAN():1:6:nan:
+%*LA:+NAN():0:6:
+%LA:+NAN(09A_Zaz):1:13:nan:
+%*LA:+NAN(09A_Zaz):0:13:
+%LA:+0X0P0:1:6:0x0:
+%*LA:+0X0P0:0:6:
+%LA:+0X0P+0:1:7:0x0:
+%*LA:+0X0P+0:0:7:
+%LA:+0X8P-16385:1:11:0x1p-16382:
+%*LA:+0X8P-16385:0:11:
+%LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*LA:+0X2.3456789ABCDEF01P012345:0:27:
+%LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*LA:+0X2.3456789ABCDEF01P+12345:0:27:
+%LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%LA:+INFINITY:1:9:inf:
+%*LA:+INFINITY:0:9:
+%1LA::0:-1:
+%*1LA::0:-1:
+%1LA:-INFINITY:0:-1:
+%*1LA:-INFINITY:0:-1:
+%1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%1LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*1LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%1LA:-0X2.3456789ABCDEF01P012345:0:-1:
+%*1LA:-0X2.3456789ABCDEF01P012345:0:-1:
+%1LA:-0X8P-16385:0:-1:
+%*1LA:-0X8P-16385:0:-1:
+%1LA:-0X0P+0:0:-1:
+%*1LA:-0X0P+0:0:-1:
+%1LA:-0X0P0:0:-1:
+%*1LA:-0X0P0:0:-1:
+%1LA:-NAN(09A_Zaz):0:-1:
+%*1LA:-NAN(09A_Zaz):0:-1:
+%1LA:-NAN():0:-1:
+%*1LA:-NAN():0:-1:
+%1LA:NAN():0:-1:
+%*1LA:NAN():0:-1:
+%1LA:NAN(09A_Zaz):0:-1:
+%*1LA:NAN(09A_Zaz):0:-1:
+%1LA:0X0P0:1:1:0x0:
+%*1LA:0X0P0:0:1:
+%1LA:0X0P+0:1:1:0x0:
+%*1LA:0X0P+0:0:1:
+%1LA:0X8P-16385:1:1:0x0:
+%*1LA:0X8P-16385:0:1:
+%1LA:0X2.3456789ABCDEF01P012345:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF01P012345:0:1:
+%1LA:0X2.3456789ABCDEF01P+12345:1:1:0x0:
+%*1LA:0X2.3456789ABCDEF01P+12345:0:1:
+%1LA:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0:
+%*1LA:0X7.FFFFFFFFFFFFFFF8P16381:0:1:
+%1LA:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0:
+%*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1:
+%1LA:INFINITY:0:-1:
+%*1LA:INFINITY:0:-1:
+%1LA:+NAN():0:-1:
+%*1LA:+NAN():0:-1:
+%1LA:+NAN(09A_Zaz):0:-1:
+%*1LA:+NAN(09A_Zaz):0:-1:
+%1LA:+0X0P0:0:-1:
+%*1LA:+0X0P0:0:-1:
+%1LA:+0X0P+0:0:-1:
+%*1LA:+0X0P+0:0:-1:
+%1LA:+0X8P-16385:0:-1:
+%*1LA:+0X8P-16385:0:-1:
+%1LA:+0X2.3456789ABCDEF01P012345:0:-1:
+%*1LA:+0X2.3456789ABCDEF01P012345:0:-1:
+%1LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*1LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%1LA:+INFINITY:0:-1:
+%*1LA:+INFINITY:0:-1:
+%2LA::0:-1:
+%*2LA::0:-1:
+%2LA:-INFINITY:0:-1:
+%*2LA:-INFINITY:0:-1:
+%2LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0:
+%*2LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:2:
+%2LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0:
+%*2LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:2:
+%2LA:-0X2.3456789ABCDEF01P+12345:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF01P+12345:0:2:
+%2LA:-0X2.3456789ABCDEF01P012345:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDEF01P012345:0:2:
+%2LA:-0X8P-16385:1:2:-0x0:
+%*2LA:-0X8P-16385:0:2:
+%2LA:-0X0P+0:1:2:-0x0:
+%*2LA:-0X0P+0:0:2:
+%2LA:-0X0P0:1:2:-0x0:
+%*2LA:-0X0P0:0:2:
+%2LA:-NAN(09A_Zaz):0:-1:
+%*2LA:-NAN(09A_Zaz):0:-1:
+%2LA:-NAN():0:-1:
+%*2LA:-NAN():0:-1:
+%2LA:NAN():0:-1:
+%*2LA:NAN():0:-1:
+%2LA:NAN(09A_Zaz):0:-1:
+%*2LA:NAN(09A_Zaz):0:-1:
+%2LA:0X0P0:0:-1:
+%*2LA:0X0P0:0:-1:
+%2LA:0X0P+0:0:-1:
+%*2LA:0X0P+0:0:-1:
+%2LA:0X8P-16385:0:-1:
+%*2LA:0X8P-16385:0:-1:
+%2LA:0X2.3456789ABCDEF01P012345:0:-1:
+%*2LA:0X2.3456789ABCDEF01P012345:0:-1:
+%2LA:0X2.3456789ABCDEF01P+12345:0:-1:
+%*2LA:0X2.3456789ABCDEF01P+12345:0:-1:
+%2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%2LA:INFINITY:0:-1:
+%*2LA:INFINITY:0:-1:
+%2LA:+NAN():0:-1:
+%*2LA:+NAN():0:-1:
+%2LA:+NAN(09A_Zaz):0:-1:
+%*2LA:+NAN(09A_Zaz):0:-1:
+%2LA:+0X0P0:1:2:0x0:
+%*2LA:+0X0P0:0:2:
+%2LA:+0X0P+0:1:2:0x0:
+%*2LA:+0X0P+0:0:2:
+%2LA:+0X8P-16385:1:2:0x0:
+%*2LA:+0X8P-16385:0:2:
+%2LA:+0X2.3456789ABCDEF01P012345:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF01P012345:0:2:
+%2LA:+0X2.3456789ABCDEF01P+12345:1:2:0x0:
+%*2LA:+0X2.3456789ABCDEF01P+12345:0:2:
+%2LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0:
+%*2LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:2:
+%2LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0:
+%*2LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:2:
+%2LA:+INFINITY:0:-1:
+%*2LA:+INFINITY:0:-1:
+%3LA::0:-1:
+%*3LA::0:-1:
+%3LA:-INFINITY:0:-1:
+%*3LA:-INFINITY:0:-1:
+%3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%3LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*3LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%3LA:-0X2.3456789ABCDEF01P012345:0:-1:
+%*3LA:-0X2.3456789ABCDEF01P012345:0:-1:
+%3LA:-0X8P-16385:0:-1:
+%*3LA:-0X8P-16385:0:-1:
+%3LA:-0X0P+0:0:-1:
+%*3LA:-0X0P+0:0:-1:
+%3LA:-0X0P0:0:-1:
+%*3LA:-0X0P0:0:-1:
+%3LA:-NAN(09A_Zaz):0:-1:
+%*3LA:-NAN(09A_Zaz):0:-1:
+%3LA:-NAN():0:-1:
+%*3LA:-NAN():0:-1:
+%3LA:NAN():1:3:nan:
+%*3LA:NAN():0:3:
+%3LA:NAN(09A_Zaz):1:3:nan:
+%*3LA:NAN(09A_Zaz):0:3:
+%3LA:0X0P0:1:3:0x0:
+%*3LA:0X0P0:0:3:
+%3LA:0X0P+0:1:3:0x0:
+%*3LA:0X0P+0:0:3:
+%3LA:0X8P-16385:1:3:0x1p3:
+%*3LA:0X8P-16385:0:3:
+%3LA:0X2.3456789ABCDEF01P012345:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF01P012345:0:3:
+%3LA:0X2.3456789ABCDEF01P+12345:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDEF01P+12345:0:3:
+%3LA:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2:
+%*3LA:0X7.FFFFFFFFFFFFFFF8P16381:0:3:
+%3LA:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3:
+%*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3:
+%3LA:INFINITY:1:3:inf:
+%*3LA:INFINITY:0:3:
+%3LA:+NAN():0:-1:
+%*3LA:+NAN():0:-1:
+%3LA:+NAN(09A_Zaz):0:-1:
+%*3LA:+NAN(09A_Zaz):0:-1:
+%3LA:+0X0P0:0:-1:
+%*3LA:+0X0P0:0:-1:
+%3LA:+0X0P+0:0:-1:
+%*3LA:+0X0P+0:0:-1:
+%3LA:+0X8P-16385:0:-1:
+%*3LA:+0X8P-16385:0:-1:
+%3LA:+0X2.3456789ABCDEF01P012345:0:-1:
+%*3LA:+0X2.3456789ABCDEF01P012345:0:-1:
+%3LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*3LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%3LA:+INFINITY:0:-1:
+%*3LA:+INFINITY:0:-1:
+%4LA::0:-1:
+%*4LA::0:-1:
+%4LA:-INFINITY:1:4:-inf:
+%*4LA:-INFINITY:0:4:
+%4LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3:
+%*4LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2:
+%*4LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LA:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF01P+12345:0:4:
+%4LA:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDEF01P012345:0:4:
+%4LA:-0X8P-16385:1:4:-0x1p3:
+%*4LA:-0X8P-16385:0:4:
+%4LA:-0X0P+0:1:4:-0x0:
+%*4LA:-0X0P+0:0:4:
+%4LA:-0X0P0:1:4:-0x0:
+%*4LA:-0X0P0:0:4:
+%4LA:-NAN(09A_Zaz):1:4:-nan:
+%*4LA:-NAN(09A_Zaz):0:4:
+%4LA:-NAN():1:4:-nan:
+%*4LA:-NAN():0:4:
+%4LA:NAN():0:-1:
+%*4LA:NAN():0:-1:
+%4LA:NAN(09A_Zaz):0:-1:
+%*4LA:NAN(09A_Zaz):0:-1:
+%4LA:0X0P0:0:-1:
+%*4LA:0X0P0:0:-1:
+%4LA:0X0P+0:0:-1:
+%*4LA:0X0P+0:0:-1:
+%4LA:0X8P-16385:0:-1:
+%*4LA:0X8P-16385:0:-1:
+%4LA:0X2.3456789ABCDEF01P012345:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF01P012345:0:4:
+%4LA:0X2.3456789ABCDEF01P+12345:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDEF01P+12345:0:4:
+%4LA:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2:
+%*4LA:0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LA:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3:
+%*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LA:INFINITY:0:-1:
+%*4LA:INFINITY:0:-1:
+%4LA:+NAN():1:4:nan:
+%*4LA:+NAN():0:4:
+%4LA:+NAN(09A_Zaz):1:4:nan:
+%*4LA:+NAN(09A_Zaz):0:4:
+%4LA:+0X0P0:1:4:0x0:
+%*4LA:+0X0P0:0:4:
+%4LA:+0X0P+0:1:4:0x0:
+%*4LA:+0X0P+0:0:4:
+%4LA:+0X8P-16385:1:4:0x1p3:
+%*4LA:+0X8P-16385:0:4:
+%4LA:+0X2.3456789ABCDEF01P012345:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF01P012345:0:4:
+%4LA:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDEF01P+12345:0:4:
+%4LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2:
+%*4LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3:
+%*4LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LA:+INFINITY:1:4:inf:
+%*4LA:+INFINITY:0:4:
+%5LA::0:-1:
+%*5LA::0:-1:
+%5LA:-INFINITY:0:-1:
+%*5LA:-INFINITY:0:-1:
+%5LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3:
+%*5LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2:
+%*5LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LA:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF01P+12345:0:5:
+%5LA:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDEF01P012345:0:5:
+%5LA:-0X8P-16385:0:-1:
+%*5LA:-0X8P-16385:0:-1:
+%5LA:-0X0P+0:0:-1:
+%*5LA:-0X0P+0:0:-1:
+%5LA:-0X0P0:0:-1:
+%*5LA:-0X0P0:0:-1:
+%5LA:-NAN(09A_Zaz):0:-1:
+%*5LA:-NAN(09A_Zaz):0:-1:
+%5LA:-NAN():0:-1:
+%*5LA:-NAN():0:-1:
+%5LA:NAN():1:5:nan:
+%*5LA:NAN():0:5:
+%5LA:NAN(09A_Zaz):0:-1:
+%*5LA:NAN(09A_Zaz):0:-1:
+%5LA:0X0P0:1:5:0x0:
+%*5LA:0X0P0:0:5:
+%5LA:0X0P+0:0:-1:
+%*5LA:0X0P+0:0:-1:
+%5LA:0X8P-16385:0:-1:
+%*5LA:0X8P-16385:0:-1:
+%5LA:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF01P012345:0:5:
+%5LA:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDEF01P+12345:0:5:
+%5LA:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2:
+%*5LA:0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LA:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3:
+%*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LA:INFINITY:0:-1:
+%*5LA:INFINITY:0:-1:
+%5LA:+NAN():0:-1:
+%*5LA:+NAN():0:-1:
+%5LA:+NAN(09A_Zaz):0:-1:
+%*5LA:+NAN(09A_Zaz):0:-1:
+%5LA:+0X0P0:0:-1:
+%*5LA:+0X0P0:0:-1:
+%5LA:+0X0P+0:0:-1:
+%*5LA:+0X0P+0:0:-1:
+%5LA:+0X8P-16385:0:-1:
+%*5LA:+0X8P-16385:0:-1:
+%5LA:+0X2.3456789ABCDEF01P012345:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF01P012345:0:5:
+%5LA:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDEF01P+12345:0:5:
+%5LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2:
+%*5LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3:
+%*5LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LA:+INFINITY:0:-1:
+%*5LA:+INFINITY:0:-1:
+%6LA::0:-1:
+%*6LA::0:-1:
+%6LA:-INFINITY:0:-1:
+%*6LA:-INFINITY:0:-1:
+%6LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3:
+%*6LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2:
+%*6LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LA:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF01P+12345:0:6:
+%6LA:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDEF01P012345:0:6:
+%6LA:-0X8P-16385:0:-1:
+%*6LA:-0X8P-16385:0:-1:
+%6LA:-0X0P+0:0:-1:
+%*6LA:-0X0P+0:0:-1:
+%6LA:-0X0P0:1:6:-0x0:
+%*6LA:-0X0P0:0:6:
+%6LA:-NAN(09A_Zaz):0:-1:
+%*6LA:-NAN(09A_Zaz):0:-1:
+%6LA:-NAN():1:6:-nan:
+%*6LA:-NAN():0:6:
+%6LA:NAN():1:5:nan:
+%*6LA:NAN():0:5:
+%6LA:NAN(09A_Zaz):0:-1:
+%*6LA:NAN(09A_Zaz):0:-1:
+%6LA:0X0P0:1:5:0x0:
+%*6LA:0X0P0:0:5:
+%6LA:0X0P+0:1:6:0x0:
+%*6LA:0X0P+0:0:6:
+%6LA:0X8P-16385:1:6:0x1p2:
+%*6LA:0X8P-16385:0:6:
+%6LA:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF01P012345:0:6:
+%6LA:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDEF01P+12345:0:6:
+%6LA:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2:
+%*6LA:0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LA:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3:
+%*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LA:INFINITY:0:-1:
+%*6LA:INFINITY:0:-1:
+%6LA:+NAN():1:6:nan:
+%*6LA:+NAN():0:6:
+%6LA:+NAN(09A_Zaz):0:-1:
+%*6LA:+NAN(09A_Zaz):0:-1:
+%6LA:+0X0P0:1:6:0x0:
+%*6LA:+0X0P0:0:6:
+%6LA:+0X0P+0:0:-1:
+%*6LA:+0X0P+0:0:-1:
+%6LA:+0X8P-16385:0:-1:
+%*6LA:+0X8P-16385:0:-1:
+%6LA:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF01P012345:0:6:
+%6LA:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDEF01P+12345:0:6:
+%6LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2:
+%*6LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3:
+%*6LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LA:+INFINITY:0:-1:
+%*6LA:+INFINITY:0:-1:
+%22LA::0:-1:
+%*22LA::0:-1:
+%22LA:-INFINITY:1:9:-inf:
+%*22LA:-INFINITY:0:9:
+%22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%22LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*22LA:-0X2.3456789ABCDEF01P+12345:0:-1:
+%22LA:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1:
+%*22LA:-0X2.3456789ABCDEF01P012345:0:22:
+%22LA:-0X8P-16385:1:11:-0x1p-16382:
+%*22LA:-0X8P-16385:0:11:
+%22LA:-0X0P+0:1:7:-0x0:
+%*22LA:-0X0P+0:0:7:
+%22LA:-0X0P0:1:6:-0x0:
+%*22LA:-0X0P0:0:6:
+%22LA:-NAN(09A_Zaz):1:13:-nan:
+%*22LA:-NAN(09A_Zaz):0:13:
+%22LA:-NAN():1:6:-nan:
+%*22LA:-NAN():0:6:
+%22LA:NAN():1:5:nan:
+%*22LA:NAN():0:5:
+%22LA:NAN(09A_Zaz):1:12:nan:
+%*22LA:NAN(09A_Zaz):0:12:
+%22LA:0X0P0:1:5:0x0:
+%*22LA:0X0P0:0:5:
+%22LA:0X0P+0:1:6:0x0:
+%*22LA:0X0P+0:0:6:
+%22LA:0X8P-16385:1:10:0x1p-16382:
+%*22LA:0X8P-16385:0:10:
+%22LA:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22LA:0X2.3456789ABCDEF01P012345:0:22:
+%22LA:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22LA:0X2.3456789ABCDEF01P+12345:0:22:
+%22LA:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3:
+%*22LA:0X7.FFFFFFFFFFFFFFF8P16381:0:22:
+%22LA:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4:
+%*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22:
+%22LA:INFINITY:1:8:inf:
+%*22LA:INFINITY:0:8:
+%22LA:+NAN():1:6:nan:
+%*22LA:+NAN():0:6:
+%22LA:+NAN(09A_Zaz):1:13:nan:
+%*22LA:+NAN(09A_Zaz):0:13:
+%22LA:+0X0P0:1:6:0x0:
+%*22LA:+0X0P0:0:6:
+%22LA:+0X0P+0:1:7:0x0:
+%*22LA:+0X0P+0:0:7:
+%22LA:+0X8P-16385:1:11:0x1p-16382:
+%*22LA:+0X8P-16385:0:11:
+%22LA:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1:
+%*22LA:+0X2.3456789ABCDEF01P012345:0:22:
+%22LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*22LA:+0X2.3456789ABCDEF01P+12345:0:-1:
+%22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%22LA:+INFINITY:1:9:inf:
+%*22LA:+INFINITY:0:9:
+%37LA::0:-1:
+%*37LA::0:-1:
+%37LA:-INFINITY:1:9:-inf:
+%*37LA:-INFINITY:0:9:
+%37LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383:
+%*37LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383:
+%*37LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:-0X2.3456789ABCDEF01P+12345:0:27:
+%37LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:-0X2.3456789ABCDEF01P012345:0:27:
+%37LA:-0X8P-16385:1:11:-0x1p-16382:
+%*37LA:-0X8P-16385:0:11:
+%37LA:-0X0P+0:1:7:-0x0:
+%*37LA:-0X0P+0:0:7:
+%37LA:-0X0P0:1:6:-0x0:
+%*37LA:-0X0P0:0:6:
+%37LA:-NAN(09A_Zaz):1:13:-nan:
+%*37LA:-NAN(09A_Zaz):0:13:
+%37LA:-NAN():1:6:-nan:
+%*37LA:-NAN():0:6:
+%37LA:NAN():1:5:nan:
+%*37LA:NAN():0:5:
+%37LA:NAN(09A_Zaz):1:12:nan:
+%*37LA:NAN(09A_Zaz):0:12:
+%37LA:0X0P0:1:5:0x0:
+%*37LA:0X0P0:0:5:
+%37LA:0X0P+0:1:6:0x0:
+%*37LA:0X0P+0:0:6:
+%37LA:0X8P-16385:1:10:0x1p-16382:
+%*37LA:0X8P-16385:0:10:
+%37LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:0X2.3456789ABCDEF01P012345:0:26:
+%37LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:0X2.3456789ABCDEF01P+12345:0:26:
+%37LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383:
+%*37LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26:
+%37LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383:
+%*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26:
+%37LA:INFINITY:1:8:inf:
+%*37LA:INFINITY:0:8:
+%37LA:+NAN():1:6:nan:
+%*37LA:+NAN():0:6:
+%37LA:+NAN(09A_Zaz):1:13:nan:
+%*37LA:+NAN(09A_Zaz):0:13:
+%37LA:+0X0P0:1:6:0x0:
+%*37LA:+0X0P0:0:6:
+%37LA:+0X0P+0:1:7:0x0:
+%*37LA:+0X0P+0:0:7:
+%37LA:+0X8P-16385:1:11:0x1p-16382:
+%*37LA:+0X8P-16385:0:11:
+%37LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:+0X2.3456789ABCDEF01P012345:0:27:
+%37LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA:+0X2.3456789ABCDEF01P+12345:0:27:
+%37LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*37LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*37LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LA:+INFINITY:1:9:inf:
+%*37LA:+INFINITY:0:9:
+%5LA: :0:-1:
+%*5LA: :0:-1:
+%5LA: -INFINITY:0:-1:
+%*5LA: -INFINITY:0:-1:
+%5LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3:
+%*5LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2:
+%*5LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LA: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF01P+12345:0:6:
+%5LA: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDEF01P012345:0:6:
+%5LA: -0X8P-16385:0:-1:
+%*5LA: -0X8P-16385:0:-1:
+%5LA: -0X0P+0:0:-1:
+%*5LA: -0X0P+0:0:-1:
+%5LA: -0X0P0:0:-1:
+%*5LA: -0X0P0:0:-1:
+%5LA: -NAN(09A_Zaz):0:-1:
+%*5LA: -NAN(09A_Zaz):0:-1:
+%5LA: -NAN():0:-1:
+%*5LA: -NAN():0:-1:
+%5LA: NAN():1:6:nan:
+%*5LA: NAN():0:6:
+%5LA: NAN(09A_Zaz):0:-1:
+%*5LA: NAN(09A_Zaz):0:-1:
+%5LA: 0X0P0:1:6:0x0:
+%*5LA: 0X0P0:0:6:
+%5LA: 0X0P+0:0:-1:
+%*5LA: 0X0P+0:0:-1:
+%5LA: 0X8P-16385:0:-1:
+%*5LA: 0X8P-16385:0:-1:
+%5LA: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF01P012345:0:6:
+%5LA: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDEF01P+12345:0:6:
+%5LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2:
+%*5LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3:
+%*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LA: INFINITY:0:-1:
+%*5LA: INFINITY:0:-1:
+%5LA: +NAN():0:-1:
+%*5LA: +NAN():0:-1:
+%5LA: +NAN(09A_Zaz):0:-1:
+%*5LA: +NAN(09A_Zaz):0:-1:
+%5LA: +0X0P0:0:-1:
+%*5LA: +0X0P0:0:-1:
+%5LA: +0X0P+0:0:-1:
+%*5LA: +0X0P+0:0:-1:
+%5LA: +0X8P-16385:0:-1:
+%*5LA: +0X8P-16385:0:-1:
+%5LA: +0X2.3456789ABCDEF01P012345:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF01P012345:0:6:
+%5LA: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDEF01P+12345:0:6:
+%5LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2:
+%*5LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3:
+%*5LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LA: +INFINITY:0:-1:
+%*5LA: +INFINITY:0:-1:
+%37LA: :0:-1:
+%*37LA: :0:-1:
+%37LA: -INFINITY:1:10:-inf:
+%*37LA: -INFINITY:0:10:
+%37LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383:
+%*37LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:28:
+%37LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383:
+%*37LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:28:
+%37LA: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: -0X2.3456789ABCDEF01P+12345:0:28:
+%37LA: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: -0X2.3456789ABCDEF01P012345:0:28:
+%37LA: -0X8P-16385:1:12:-0x1p-16382:
+%*37LA: -0X8P-16385:0:12:
+%37LA: -0X0P+0:1:8:-0x0:
+%*37LA: -0X0P+0:0:8:
+%37LA: -0X0P0:1:7:-0x0:
+%*37LA: -0X0P0:0:7:
+%37LA: -NAN(09A_Zaz):1:14:-nan:
+%*37LA: -NAN(09A_Zaz):0:14:
+%37LA: -NAN():1:7:-nan:
+%*37LA: -NAN():0:7:
+%37LA: NAN():1:6:nan:
+%*37LA: NAN():0:6:
+%37LA: NAN(09A_Zaz):1:13:nan:
+%*37LA: NAN(09A_Zaz):0:13:
+%37LA: 0X0P0:1:6:0x0:
+%*37LA: 0X0P0:0:6:
+%37LA: 0X0P+0:1:7:0x0:
+%*37LA: 0X0P+0:0:7:
+%37LA: 0X8P-16385:1:11:0x1p-16382:
+%*37LA: 0X8P-16385:0:11:
+%37LA: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: 0X2.3456789ABCDEF01P012345:0:27:
+%37LA: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: 0X2.3456789ABCDEF01P+12345:0:27:
+%37LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*37LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LA: INFINITY:1:9:inf:
+%*37LA: INFINITY:0:9:
+%37LA: +NAN():1:7:nan:
+%*37LA: +NAN():0:7:
+%37LA: +NAN(09A_Zaz):1:14:nan:
+%*37LA: +NAN(09A_Zaz):0:14:
+%37LA: +0X0P0:1:7:0x0:
+%*37LA: +0X0P0:0:7:
+%37LA: +0X0P+0:1:8:0x0:
+%*37LA: +0X0P+0:0:8:
+%37LA: +0X8P-16385:1:12:0x1p-16382:
+%*37LA: +0X8P-16385:0:12:
+%37LA: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: +0X2.3456789ABCDEF01P012345:0:28:
+%37LA: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37LA: +0X2.3456789ABCDEF01P+12345:0:28:
+%37LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383:
+%*37LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:28:
+%37LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383:
+%*37LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:28:
+%37LA: +INFINITY:1:10:inf:
+%*37LA: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input
new file mode 100644
index 0000000..d9071e4
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input
@@ -0,0 +1,558 @@
+%Le::0:-1:
+%*Le::0:-1:
+%Le:-infinity:1:9:-inf:
+%*Le:-infinity:0:9:
+%Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383:
+%*Le:-1.18973149535723176502126385303097021e+4932:0:44:
+%Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383:
+%*Le:-1.18973149535723176502126385303097021e4932:0:43:
+%Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*Le:-3.619058724505602958194804115432455e+3716:0:42:
+%Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*Le:-3.619058724505602958194804115432455e03716:0:42:
+%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*Le:-3.36210314311209350626267781732175260e-4932:0:44:
+%Le:-0e+0:1:5:-0x0:
+%*Le:-0e+0:0:5:
+%Le:-0e0:1:4:-0x0:
+%*Le:-0e0:0:4:
+%Le:-nan(09A_Zaz):1:13:-nan:
+%*Le:-nan(09A_Zaz):0:13:
+%Le:-nan():1:6:-nan:
+%*Le:-nan():0:6:
+%Le:nan():1:5:nan:
+%*Le:nan():0:5:
+%Le:nan(09A_Zaz):1:12:nan:
+%*Le:nan(09A_Zaz):0:12:
+%Le:0e0:1:3:0x0:
+%*Le:0e0:0:3:
+%Le:0e+0:1:4:0x0:
+%*Le:0e+0:0:4:
+%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*Le:3.36210314311209350626267781732175260e-4932:0:43:
+%Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*Le:3.619058724505602958194804115432455e03716:0:41:
+%Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*Le:3.619058724505602958194804115432455e+3716:0:41:
+%Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383:
+%*Le:1.18973149535723176502126385303097021e4932:0:42:
+%Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383:
+%*Le:1.18973149535723176502126385303097021e+4932:0:43:
+%Le:infinity:1:8:inf:
+%*Le:infinity:0:8:
+%Le:+nan():1:6:nan:
+%*Le:+nan():0:6:
+%Le:+nan(09A_Zaz):1:13:nan:
+%*Le:+nan(09A_Zaz):0:13:
+%Le:+0e0:1:4:0x0:
+%*Le:+0e0:0:4:
+%Le:+0e+0:1:5:0x0:
+%*Le:+0e+0:0:5:
+%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*Le:+3.36210314311209350626267781732175260e-4932:0:44:
+%Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*Le:+3.619058724505602958194804115432455e03716:0:42:
+%Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*Le:+3.619058724505602958194804115432455e+3716:0:42:
+%Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383:
+%*Le:+1.18973149535723176502126385303097021e4932:0:43:
+%Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383:
+%*Le:+1.18973149535723176502126385303097021e+4932:0:44:
+%Le:+infinity:1:9:inf:
+%*Le:+infinity:0:9:
+%1Le::0:-1:
+%*1Le::0:-1:
+%1Le:-infinity:0:-1:
+%*1Le:-infinity:0:-1:
+%1Le:-1.18973149535723176502126385303097021e+4932:0:-1:
+%*1Le:-1.18973149535723176502126385303097021e+4932:0:-1:
+%1Le:-1.18973149535723176502126385303097021e4932:0:-1:
+%*1Le:-1.18973149535723176502126385303097021e4932:0:-1:
+%1Le:-3.619058724505602958194804115432455e+3716:0:-1:
+%*1Le:-3.619058724505602958194804115432455e+3716:0:-1:
+%1Le:-3.619058724505602958194804115432455e03716:0:-1:
+%*1Le:-3.619058724505602958194804115432455e03716:0:-1:
+%1Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%1Le:-0e+0:0:-1:
+%*1Le:-0e+0:0:-1:
+%1Le:-0e0:0:-1:
+%*1Le:-0e0:0:-1:
+%1Le:-nan(09A_Zaz):0:-1:
+%*1Le:-nan(09A_Zaz):0:-1:
+%1Le:-nan():0:-1:
+%*1Le:-nan():0:-1:
+%1Le:nan():0:-1:
+%*1Le:nan():0:-1:
+%1Le:nan(09A_Zaz):0:-1:
+%*1Le:nan(09A_Zaz):0:-1:
+%1Le:0e0:1:1:0x0:
+%*1Le:0e0:0:1:
+%1Le:0e+0:1:1:0x0:
+%*1Le:0e+0:0:1:
+%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1:
+%*1Le:3.36210314311209350626267781732175260e-4932:0:1:
+%1Le:3.619058724505602958194804115432455e03716:1:1:0x1.8p1:
+%*1Le:3.619058724505602958194804115432455e03716:0:1:
+%1Le:3.619058724505602958194804115432455e+3716:1:1:0x1.8p1:
+%*1Le:3.619058724505602958194804115432455e+3716:0:1:
+%1Le:1.18973149535723176502126385303097021e4932:1:1:0x1:
+%*1Le:1.18973149535723176502126385303097021e4932:0:1:
+%1Le:1.18973149535723176502126385303097021e+4932:1:1:0x1:
+%*1Le:1.18973149535723176502126385303097021e+4932:0:1:
+%1Le:infinity:0:-1:
+%*1Le:infinity:0:-1:
+%1Le:+nan():0:-1:
+%*1Le:+nan():0:-1:
+%1Le:+nan(09A_Zaz):0:-1:
+%*1Le:+nan(09A_Zaz):0:-1:
+%1Le:+0e0:0:-1:
+%*1Le:+0e0:0:-1:
+%1Le:+0e+0:0:-1:
+%*1Le:+0e+0:0:-1:
+%1Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%1Le:+3.619058724505602958194804115432455e03716:0:-1:
+%*1Le:+3.619058724505602958194804115432455e03716:0:-1:
+%1Le:+3.619058724505602958194804115432455e+3716:0:-1:
+%*1Le:+3.619058724505602958194804115432455e+3716:0:-1:
+%1Le:+1.18973149535723176502126385303097021e4932:0:-1:
+%*1Le:+1.18973149535723176502126385303097021e4932:0:-1:
+%1Le:+1.18973149535723176502126385303097021e+4932:0:-1:
+%*1Le:+1.18973149535723176502126385303097021e+4932:0:-1:
+%1Le:+infinity:0:-1:
+%*1Le:+infinity:0:-1:
+%2Le::0:-1:
+%*2Le::0:-1:
+%2Le:-infinity:0:-1:
+%*2Le:-infinity:0:-1:
+%2Le:-1.18973149535723176502126385303097021e+4932:1:2:-0x1:
+%*2Le:-1.18973149535723176502126385303097021e+4932:0:2:
+%2Le:-1.18973149535723176502126385303097021e4932:1:2:-0x1:
+%*2Le:-1.18973149535723176502126385303097021e4932:0:2:
+%2Le:-3.619058724505602958194804115432455e+3716:1:2:-0x1.8p1:
+%*2Le:-3.619058724505602958194804115432455e+3716:0:2:
+%2Le:-3.619058724505602958194804115432455e03716:1:2:-0x1.8p1:
+%*2Le:-3.619058724505602958194804115432455e03716:0:2:
+%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1:
+%*2Le:-3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:-0e+0:1:2:-0x0:
+%*2Le:-0e+0:0:2:
+%2Le:-0e0:1:2:-0x0:
+%*2Le:-0e0:0:2:
+%2Le:-nan(09A_Zaz):0:-1:
+%*2Le:-nan(09A_Zaz):0:-1:
+%2Le:-nan():0:-1:
+%*2Le:-nan():0:-1:
+%2Le:nan():0:-1:
+%*2Le:nan():0:-1:
+%2Le:nan(09A_Zaz):0:-1:
+%*2Le:nan(09A_Zaz):0:-1:
+%2Le:0e0:0:-1:
+%*2Le:0e0:0:-1:
+%2Le:0e+0:0:-1:
+%*2Le:0e+0:0:-1:
+%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2Le:3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:3.619058724505602958194804115432455e03716:1:2:0x1.8p1:
+%*2Le:3.619058724505602958194804115432455e03716:0:2:
+%2Le:3.619058724505602958194804115432455e+3716:1:2:0x1.8p1:
+%*2Le:3.619058724505602958194804115432455e+3716:0:2:
+%2Le:1.18973149535723176502126385303097021e4932:1:2:0x1:
+%*2Le:1.18973149535723176502126385303097021e4932:0:2:
+%2Le:1.18973149535723176502126385303097021e+4932:1:2:0x1:
+%*2Le:1.18973149535723176502126385303097021e+4932:0:2:
+%2Le:infinity:0:-1:
+%*2Le:infinity:0:-1:
+%2Le:+nan():0:-1:
+%*2Le:+nan():0:-1:
+%2Le:+nan(09A_Zaz):0:-1:
+%*2Le:+nan(09A_Zaz):0:-1:
+%2Le:+0e0:1:2:0x0:
+%*2Le:+0e0:0:2:
+%2Le:+0e+0:1:2:0x0:
+%*2Le:+0e+0:0:2:
+%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1:
+%*2Le:+3.36210314311209350626267781732175260e-4932:0:2:
+%2Le:+3.619058724505602958194804115432455e03716:1:2:0x1.8p1:
+%*2Le:+3.619058724505602958194804115432455e03716:0:2:
+%2Le:+3.619058724505602958194804115432455e+3716:1:2:0x1.8p1:
+%*2Le:+3.619058724505602958194804115432455e+3716:0:2:
+%2Le:+1.18973149535723176502126385303097021e4932:1:2:0x1:
+%*2Le:+1.18973149535723176502126385303097021e4932:0:2:
+%2Le:+1.18973149535723176502126385303097021e+4932:1:2:0x1:
+%*2Le:+1.18973149535723176502126385303097021e+4932:0:2:
+%2Le:+infinity:0:-1:
+%*2Le:+infinity:0:-1:
+%3Le::0:-1:
+%*3Le::0:-1:
+%3Le:-infinity:0:-1:
+%*3Le:-infinity:0:-1:
+%3Le:-1.18973149535723176502126385303097021e+4932:1:3:-0x1:
+%*3Le:-1.18973149535723176502126385303097021e+4932:0:3:
+%3Le:-1.18973149535723176502126385303097021e4932:1:3:-0x1:
+%*3Le:-1.18973149535723176502126385303097021e4932:0:3:
+%3Le:-3.619058724505602958194804115432455e+3716:1:3:-0x1.8p1:
+%*3Le:-3.619058724505602958194804115432455e+3716:0:3:
+%3Le:-3.619058724505602958194804115432455e03716:1:3:-0x1.8p1:
+%*3Le:-3.619058724505602958194804115432455e03716:0:3:
+%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1:
+%*3Le:-3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:-0e+0:0:-1:
+%*3Le:-0e+0:0:-1:
+%3Le:-0e0:0:-1:
+%*3Le:-0e0:0:-1:
+%3Le:-nan(09A_Zaz):0:-1:
+%*3Le:-nan(09A_Zaz):0:-1:
+%3Le:-nan():0:-1:
+%*3Le:-nan():0:-1:
+%3Le:nan():1:3:nan:
+%*3Le:nan():0:3:
+%3Le:nan(09A_Zaz):1:3:nan:
+%*3Le:nan(09A_Zaz):0:3:
+%3Le:0e0:1:3:0x0:
+%*3Le:0e0:0:3:
+%3Le:0e+0:0:-1:
+%*3Le:0e+0:0:-1:
+%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666p1:
+%*3Le:3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:3.619058724505602958194804115432455e03716:1:3:0x1.ccccccccccccccccp1:
+%*3Le:3.619058724505602958194804115432455e03716:0:3:
+%3Le:3.619058724505602958194804115432455e+3716:1:3:0x1.ccccccccccccccccp1:
+%*3Le:3.619058724505602958194804115432455e+3716:0:3:
+%3Le:1.18973149535723176502126385303097021e4932:1:3:0x1.199999999999999a:
+%*3Le:1.18973149535723176502126385303097021e4932:0:3:
+%3Le:1.18973149535723176502126385303097021e+4932:1:3:0x1.199999999999999a:
+%*3Le:1.18973149535723176502126385303097021e+4932:0:3:
+%3Le:infinity:1:3:inf:
+%*3Le:infinity:0:3:
+%3Le:+nan():0:-1:
+%*3Le:+nan():0:-1:
+%3Le:+nan(09A_Zaz):0:-1:
+%*3Le:+nan(09A_Zaz):0:-1:
+%3Le:+0e0:0:-1:
+%*3Le:+0e0:0:-1:
+%3Le:+0e+0:0:-1:
+%*3Le:+0e+0:0:-1:
+%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1:
+%*3Le:+3.36210314311209350626267781732175260e-4932:0:3:
+%3Le:+3.619058724505602958194804115432455e03716:1:3:0x1.8p1:
+%*3Le:+3.619058724505602958194804115432455e03716:0:3:
+%3Le:+3.619058724505602958194804115432455e+3716:1:3:0x1.8p1:
+%*3Le:+3.619058724505602958194804115432455e+3716:0:3:
+%3Le:+1.18973149535723176502126385303097021e4932:1:3:0x1:
+%*3Le:+1.18973149535723176502126385303097021e4932:0:3:
+%3Le:+1.18973149535723176502126385303097021e+4932:1:3:0x1:
+%*3Le:+1.18973149535723176502126385303097021e+4932:0:3:
+%3Le:+infinity:0:-1:
+%*3Le:+infinity:0:-1:
+%4Le::0:-1:
+%*4Le::0:-1:
+%4Le:-infinity:1:4:-inf:
+%*4Le:-infinity:0:4:
+%4Le:-1.18973149535723176502126385303097021e+4932:1:4:-0x1.199999999999999a:
+%*4Le:-1.18973149535723176502126385303097021e+4932:0:4:
+%4Le:-1.18973149535723176502126385303097021e4932:1:4:-0x1.199999999999999a:
+%*4Le:-1.18973149535723176502126385303097021e4932:0:4:
+%4Le:-3.619058724505602958194804115432455e+3716:1:4:-0x1.ccccccccccccccccp1:
+%*4Le:-3.619058724505602958194804115432455e+3716:0:4:
+%4Le:-3.619058724505602958194804115432455e03716:1:4:-0x1.ccccccccccccccccp1:
+%*4Le:-3.619058724505602958194804115432455e03716:0:4:
+%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1:
+%*4Le:-3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:-0e+0:0:-1:
+%*4Le:-0e+0:0:-1:
+%4Le:-0e0:1:4:-0x0:
+%*4Le:-0e0:0:4:
+%4Le:-nan(09A_Zaz):1:4:-nan:
+%*4Le:-nan(09A_Zaz):0:4:
+%4Le:-nan():1:4:-nan:
+%*4Le:-nan():0:4:
+%4Le:nan():0:-1:
+%*4Le:nan():0:-1:
+%4Le:nan(09A_Zaz):0:-1:
+%*4Le:nan(09A_Zaz):0:-1:
+%4Le:0e0:1:3:0x0:
+%*4Le:0e0:0:3:
+%4Le:0e+0:1:4:0x0:
+%*4Le:0e+0:0:4:
+%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ap1:
+%*4Le:3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:3.619058724505602958194804115432455e03716:1:4:0x1.ce147ae147ae147ap1:
+%*4Le:3.619058724505602958194804115432455e03716:0:4:
+%4Le:3.619058724505602958194804115432455e+3716:1:4:0x1.ce147ae147ae147ap1:
+%*4Le:3.619058724505602958194804115432455e+3716:0:4:
+%4Le:1.18973149535723176502126385303097021e4932:1:4:0x1.2e147ae147ae147a:
+%*4Le:1.18973149535723176502126385303097021e4932:0:4:
+%4Le:1.18973149535723176502126385303097021e+4932:1:4:0x1.2e147ae147ae147a:
+%*4Le:1.18973149535723176502126385303097021e+4932:0:4:
+%4Le:infinity:0:-1:
+%*4Le:infinity:0:-1:
+%4Le:+nan():1:4:nan:
+%*4Le:+nan():0:4:
+%4Le:+nan(09A_Zaz):1:4:nan:
+%*4Le:+nan(09A_Zaz):0:4:
+%4Le:+0e0:1:4:0x0:
+%*4Le:+0e0:0:4:
+%4Le:+0e+0:0:-1:
+%*4Le:+0e+0:0:-1:
+%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1:
+%*4Le:+3.36210314311209350626267781732175260e-4932:0:4:
+%4Le:+3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1:
+%*4Le:+3.619058724505602958194804115432455e03716:0:4:
+%4Le:+3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1:
+%*4Le:+3.619058724505602958194804115432455e+3716:0:4:
+%4Le:+1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a:
+%*4Le:+1.18973149535723176502126385303097021e4932:0:4:
+%4Le:+1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a:
+%*4Le:+1.18973149535723176502126385303097021e+4932:0:4:
+%4Le:+infinity:1:4:inf:
+%*4Le:+infinity:0:4:
+%40Le::0:-1:
+%*40Le::0:-1:
+%40Le:-infinity:1:9:-inf:
+%*40Le:-infinity:0:9:
+%40Le:-1.18973149535723176502126385303097021e+4932:0:-1:
+%*40Le:-1.18973149535723176502126385303097021e+4932:0:-1:
+%40Le:-1.18973149535723176502126385303097021e4932:1:40:-0x1.73ca850660e6e6c4p13:
+%*40Le:-1.18973149535723176502126385303097021e4932:0:40:
+%40Le:-3.619058724505602958194804115432455e+3716:1:40:-0x1.b3a0db6a2433ca1ap124:
+%*40Le:-3.619058724505602958194804115432455e+3716:0:40:
+%40Le:-3.619058724505602958194804115432455e03716:1:40:-0x1.b3a0db6a2433ca1ap124:
+%*40Le:-3.619058724505602958194804115432455e03716:0:40:
+%40Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*40Le:-3.36210314311209350626267781732175260e-4932:0:-1:
+%40Le:-0e+0:1:5:-0x0:
+%*40Le:-0e+0:0:5:
+%40Le:-0e0:1:4:-0x0:
+%*40Le:-0e0:0:4:
+%40Le:-nan(09A_Zaz):1:13:-nan:
+%*40Le:-nan(09A_Zaz):0:13:
+%40Le:-nan():1:6:-nan:
+%*40Le:-nan():0:6:
+%40Le:nan():1:5:nan:
+%*40Le:nan():0:5:
+%40Le:nan(09A_Zaz):1:12:nan:
+%*40Le:nan(09A_Zaz):0:12:
+%40Le:0e0:1:3:0x0:
+%*40Le:0e0:0:3:
+%40Le:0e+0:1:4:0x0:
+%*40Le:0e+0:0:4:
+%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bcep-12:
+%*40Le:3.36210314311209350626267781732175260e-4932:0:40:
+%40Le:3.619058724505602958194804115432455e03716:1:40:0x1.39330d0cb7b0b968p1234:
+%*40Le:3.619058724505602958194804115432455e03716:0:40:
+%40Le:3.619058724505602958194804115432455e+3716:1:40:0x1.39330d0cb7b0b968p1234:
+%*40Le:3.619058724505602958194804115432455e+3716:0:40:
+%40Le:1.18973149535723176502126385303097021e4932:1:40:0x1.047ec1b6d6390a5cp163:
+%*40Le:1.18973149535723176502126385303097021e4932:0:40:
+%40Le:1.18973149535723176502126385303097021e+4932:1:40:0x1.73ca850660e6e6c4p13:
+%*40Le:1.18973149535723176502126385303097021e+4932:0:40:
+%40Le:infinity:1:8:inf:
+%*40Le:infinity:0:8:
+%40Le:+nan():1:6:nan:
+%*40Le:+nan():0:6:
+%40Le:+nan(09A_Zaz):1:13:nan:
+%*40Le:+nan(09A_Zaz):0:13:
+%40Le:+0e0:1:4:0x0:
+%*40Le:+0e0:0:4:
+%40Le:+0e+0:1:5:0x0:
+%*40Le:+0e+0:0:5:
+%40Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%*40Le:+3.36210314311209350626267781732175260e-4932:0:-1:
+%40Le:+3.619058724505602958194804115432455e03716:1:40:0x1.b3a0db6a2433ca1ap124:
+%*40Le:+3.619058724505602958194804115432455e03716:0:40:
+%40Le:+3.619058724505602958194804115432455e+3716:1:40:0x1.b3a0db6a2433ca1ap124:
+%*40Le:+3.619058724505602958194804115432455e+3716:0:40:
+%40Le:+1.18973149535723176502126385303097021e4932:1:40:0x1.73ca850660e6e6c4p13:
+%*40Le:+1.18973149535723176502126385303097021e4932:0:40:
+%40Le:+1.18973149535723176502126385303097021e+4932:0:-1:
+%*40Le:+1.18973149535723176502126385303097021e+4932:0:-1:
+%40Le:+infinity:1:9:inf:
+%*40Le:+infinity:0:9:
+%48Le::0:-1:
+%*48Le::0:-1:
+%48Le:-infinity:1:9:-inf:
+%*48Le:-infinity:0:9:
+%48Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383:
+%*48Le:-1.18973149535723176502126385303097021e+4932:0:44:
+%48Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383:
+%*48Le:-1.18973149535723176502126385303097021e4932:0:43:
+%48Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:-3.619058724505602958194804115432455e+3716:0:42:
+%48Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:-3.619058724505602958194804115432455e03716:0:42:
+%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*48Le:-3.36210314311209350626267781732175260e-4932:0:44:
+%48Le:-0e+0:1:5:-0x0:
+%*48Le:-0e+0:0:5:
+%48Le:-0e0:1:4:-0x0:
+%*48Le:-0e0:0:4:
+%48Le:-nan(09A_Zaz):1:13:-nan:
+%*48Le:-nan(09A_Zaz):0:13:
+%48Le:-nan():1:6:-nan:
+%*48Le:-nan():0:6:
+%48Le:nan():1:5:nan:
+%*48Le:nan():0:5:
+%48Le:nan(09A_Zaz):1:12:nan:
+%*48Le:nan(09A_Zaz):0:12:
+%48Le:0e0:1:3:0x0:
+%*48Le:0e0:0:3:
+%48Le:0e+0:1:4:0x0:
+%*48Le:0e+0:0:4:
+%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382:
+%*48Le:3.36210314311209350626267781732175260e-4932:0:43:
+%48Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:3.619058724505602958194804115432455e03716:0:41:
+%48Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:3.619058724505602958194804115432455e+3716:0:41:
+%48Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383:
+%*48Le:1.18973149535723176502126385303097021e4932:0:42:
+%48Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383:
+%*48Le:1.18973149535723176502126385303097021e+4932:0:43:
+%48Le:infinity:1:8:inf:
+%*48Le:infinity:0:8:
+%48Le:+nan():1:6:nan:
+%*48Le:+nan():0:6:
+%48Le:+nan(09A_Zaz):1:13:nan:
+%*48Le:+nan(09A_Zaz):0:13:
+%48Le:+0e0:1:4:0x0:
+%*48Le:+0e0:0:4:
+%48Le:+0e+0:1:5:0x0:
+%*48Le:+0e+0:0:5:
+%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48Le:+3.36210314311209350626267781732175260e-4932:0:44:
+%48Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:+3.619058724505602958194804115432455e03716:0:42:
+%48Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le:+3.619058724505602958194804115432455e+3716:0:42:
+%48Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383:
+%*48Le:+1.18973149535723176502126385303097021e4932:0:43:
+%48Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383:
+%*48Le:+1.18973149535723176502126385303097021e+4932:0:44:
+%48Le:+infinity:1:9:inf:
+%*48Le:+infinity:0:9:
+%3Le: :0:-1:
+%*3Le: :0:-1:
+%3Le: -infinity:0:-1:
+%*3Le: -infinity:0:-1:
+%3Le: -1.18973149535723176502126385303097021e+4932:1:4:-0x1:
+%*3Le: -1.18973149535723176502126385303097021e+4932:0:4:
+%3Le: -1.18973149535723176502126385303097021e4932:1:4:-0x1:
+%*3Le: -1.18973149535723176502126385303097021e4932:0:4:
+%3Le: -3.619058724505602958194804115432455e+3716:1:4:-0x1.8p1:
+%*3Le: -3.619058724505602958194804115432455e+3716:0:4:
+%3Le: -3.619058724505602958194804115432455e03716:1:4:-0x1.8p1:
+%*3Le: -3.619058724505602958194804115432455e03716:0:4:
+%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1:
+%*3Le: -3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: -0e+0:0:-1:
+%*3Le: -0e+0:0:-1:
+%3Le: -0e0:0:-1:
+%*3Le: -0e0:0:-1:
+%3Le: -nan(09A_Zaz):0:-1:
+%*3Le: -nan(09A_Zaz):0:-1:
+%3Le: -nan():0:-1:
+%*3Le: -nan():0:-1:
+%3Le: nan():1:4:nan:
+%*3Le: nan():0:4:
+%3Le: nan(09A_Zaz):1:4:nan:
+%*3Le: nan(09A_Zaz):0:4:
+%3Le: 0e0:1:4:0x0:
+%*3Le: 0e0:0:4:
+%3Le: 0e+0:0:-1:
+%*3Le: 0e+0:0:-1:
+%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1:
+%*3Le: 3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: 3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1:
+%*3Le: 3.619058724505602958194804115432455e03716:0:4:
+%3Le: 3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1:
+%*3Le: 3.619058724505602958194804115432455e+3716:0:4:
+%3Le: 1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a:
+%*3Le: 1.18973149535723176502126385303097021e4932:0:4:
+%3Le: 1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a:
+%*3Le: 1.18973149535723176502126385303097021e+4932:0:4:
+%3Le: infinity:1:4:inf:
+%*3Le: infinity:0:4:
+%3Le: +nan():0:-1:
+%*3Le: +nan():0:-1:
+%3Le: +nan(09A_Zaz):0:-1:
+%*3Le: +nan(09A_Zaz):0:-1:
+%3Le: +0e0:0:-1:
+%*3Le: +0e0:0:-1:
+%3Le: +0e+0:0:-1:
+%*3Le: +0e+0:0:-1:
+%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1:
+%*3Le: +3.36210314311209350626267781732175260e-4932:0:4:
+%3Le: +3.619058724505602958194804115432455e03716:1:4:0x1.8p1:
+%*3Le: +3.619058724505602958194804115432455e03716:0:4:
+%3Le: +3.619058724505602958194804115432455e+3716:1:4:0x1.8p1:
+%*3Le: +3.619058724505602958194804115432455e+3716:0:4:
+%3Le: +1.18973149535723176502126385303097021e4932:1:4:0x1:
+%*3Le: +1.18973149535723176502126385303097021e4932:0:4:
+%3Le: +1.18973149535723176502126385303097021e+4932:1:4:0x1:
+%*3Le: +1.18973149535723176502126385303097021e+4932:0:4:
+%3Le: +infinity:0:-1:
+%*3Le: +infinity:0:-1:
+%48Le: :0:-1:
+%*48Le: :0:-1:
+%48Le: -infinity:1:10:-inf:
+%*48Le: -infinity:0:10:
+%48Le: -1.18973149535723176502126385303097021e+4932:1:45:-0x1.fffffffffffffffep16383:
+%*48Le: -1.18973149535723176502126385303097021e+4932:0:45:
+%48Le: -1.18973149535723176502126385303097021e4932:1:44:-0x1.fffffffffffffffep16383:
+%*48Le: -1.18973149535723176502126385303097021e4932:0:44:
+%48Le: -3.619058724505602958194804115432455e+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: -3.619058724505602958194804115432455e+3716:0:43:
+%48Le: -3.619058724505602958194804115432455e03716:1:43:-0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: -3.619058724505602958194804115432455e03716:0:43:
+%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382:
+%*48Le: -3.36210314311209350626267781732175260e-4932:0:45:
+%48Le: -0e+0:1:6:-0x0:
+%*48Le: -0e+0:0:6:
+%48Le: -0e0:1:5:-0x0:
+%*48Le: -0e0:0:5:
+%48Le: -nan(09A_Zaz):1:14:-nan:
+%*48Le: -nan(09A_Zaz):0:14:
+%48Le: -nan():1:7:-nan:
+%*48Le: -nan():0:7:
+%48Le: nan():1:6:nan:
+%*48Le: nan():0:6:
+%48Le: nan(09A_Zaz):1:13:nan:
+%*48Le: nan(09A_Zaz):0:13:
+%48Le: 0e0:1:4:0x0:
+%*48Le: 0e0:0:4:
+%48Le: 0e+0:1:5:0x0:
+%*48Le: 0e+0:0:5:
+%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382:
+%*48Le: 3.36210314311209350626267781732175260e-4932:0:44:
+%48Le: 3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: 3.619058724505602958194804115432455e03716:0:42:
+%48Le: 3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: 3.619058724505602958194804115432455e+3716:0:42:
+%48Le: 1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383:
+%*48Le: 1.18973149535723176502126385303097021e4932:0:43:
+%48Le: 1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383:
+%*48Le: 1.18973149535723176502126385303097021e+4932:0:44:
+%48Le: infinity:1:9:inf:
+%*48Le: infinity:0:9:
+%48Le: +nan():1:7:nan:
+%*48Le: +nan():0:7:
+%48Le: +nan(09A_Zaz):1:14:nan:
+%*48Le: +nan(09A_Zaz):0:14:
+%48Le: +0e0:1:5:0x0:
+%*48Le: +0e0:0:5:
+%48Le: +0e+0:1:6:0x0:
+%*48Le: +0e+0:0:6:
+%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382:
+%*48Le: +3.36210314311209350626267781732175260e-4932:0:45:
+%48Le: +3.619058724505602958194804115432455e03716:1:43:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: +3.619058724505602958194804115432455e03716:0:43:
+%48Le: +3.619058724505602958194804115432455e+3716:1:43:0x1.1a2b3c4d5e6f7808p12346:
+%*48Le: +3.619058724505602958194804115432455e+3716:0:43:
+%48Le: +1.18973149535723176502126385303097021e4932:1:44:0x1.fffffffffffffffep16383:
+%*48Le: +1.18973149535723176502126385303097021e4932:0:44:
+%48Le: +1.18973149535723176502126385303097021e+4932:1:45:0x1.fffffffffffffffep16383:
+%*48Le: +1.18973149535723176502126385303097021e+4932:0:45:
+%48Le: +infinity:1:10:inf:
+%*48Le: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input
new file mode 100644
index 0000000..c7cdc97
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input
@@ -0,0 +1,558 @@
+%LE::0:-1:
+%*LE::0:-1:
+%LE:-INFINITY:1:9:-inf:
+%*LE:-INFINITY:0:9:
+%LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383:
+%*LE:-1.18973149535723176502126385303097021E+4932:0:44:
+%LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383:
+%*LE:-1.18973149535723176502126385303097021E4932:0:43:
+%LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*LE:-3.619058724505602958194804115432455E+3716:0:42:
+%LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*LE:-3.619058724505602958194804115432455E03716:0:42:
+%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*LE:-3.36210314311209350626267781732175260e-4932:0:44:
+%LE:-0E+0:1:5:-0x0:
+%*LE:-0E+0:0:5:
+%LE:-0E0:1:4:-0x0:
+%*LE:-0E0:0:4:
+%LE:-NAN(09A_Zaz):1:13:-nan:
+%*LE:-NAN(09A_Zaz):0:13:
+%LE:-NAN():1:6:-nan:
+%*LE:-NAN():0:6:
+%LE:NAN():1:5:nan:
+%*LE:NAN():0:5:
+%LE:NAN(09A_Zaz):1:12:nan:
+%*LE:NAN(09A_Zaz):0:12:
+%LE:0E0:1:3:0x0:
+%*LE:0E0:0:3:
+%LE:0E+0:1:4:0x0:
+%*LE:0E+0:0:4:
+%LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382:
+%*LE:3.36210314311209350626267781732175260E-4932:0:43:
+%LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*LE:3.619058724505602958194804115432455E03716:0:41:
+%LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*LE:3.619058724505602958194804115432455E+3716:0:41:
+%LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383:
+%*LE:1.18973149535723176502126385303097021E4932:0:42:
+%LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383:
+%*LE:1.18973149535723176502126385303097021E+4932:0:43:
+%LE:INFINITY:1:8:inf:
+%*LE:INFINITY:0:8:
+%LE:+NAN():1:6:nan:
+%*LE:+NAN():0:6:
+%LE:+NAN(09A_Zaz):1:13:nan:
+%*LE:+NAN(09A_Zaz):0:13:
+%LE:+0E0:1:4:0x0:
+%*LE:+0E0:0:4:
+%LE:+0E+0:1:5:0x0:
+%*LE:+0E+0:0:5:
+%LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382:
+%*LE:+3.36210314311209350626267781732175260E-4932:0:44:
+%LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*LE:+3.619058724505602958194804115432455E03716:0:42:
+%LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*LE:+3.619058724505602958194804115432455E+3716:0:42:
+%LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383:
+%*LE:+1.18973149535723176502126385303097021E4932:0:43:
+%LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383:
+%*LE:+1.18973149535723176502126385303097021E+4932:0:44:
+%LE:+INFINITY:1:9:inf:
+%*LE:+INFINITY:0:9:
+%1LE::0:-1:
+%*1LE::0:-1:
+%1LE:-INFINITY:0:-1:
+%*1LE:-INFINITY:0:-1:
+%1LE:-1.18973149535723176502126385303097021E+4932:0:-1:
+%*1LE:-1.18973149535723176502126385303097021E+4932:0:-1:
+%1LE:-1.18973149535723176502126385303097021E4932:0:-1:
+%*1LE:-1.18973149535723176502126385303097021E4932:0:-1:
+%1LE:-3.619058724505602958194804115432455E+3716:0:-1:
+%*1LE:-3.619058724505602958194804115432455E+3716:0:-1:
+%1LE:-3.619058724505602958194804115432455E03716:0:-1:
+%*1LE:-3.619058724505602958194804115432455E03716:0:-1:
+%1LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%1LE:-0E+0:0:-1:
+%*1LE:-0E+0:0:-1:
+%1LE:-0E0:0:-1:
+%*1LE:-0E0:0:-1:
+%1LE:-NAN(09A_Zaz):0:-1:
+%*1LE:-NAN(09A_Zaz):0:-1:
+%1LE:-NAN():0:-1:
+%*1LE:-NAN():0:-1:
+%1LE:NAN():0:-1:
+%*1LE:NAN():0:-1:
+%1LE:NAN(09A_Zaz):0:-1:
+%*1LE:NAN(09A_Zaz):0:-1:
+%1LE:0E0:1:1:0x0:
+%*1LE:0E0:0:1:
+%1LE:0E+0:1:1:0x0:
+%*1LE:0E+0:0:1:
+%1LE:3.36210314311209350626267781732175260E-4932:1:1:0x1.8p1:
+%*1LE:3.36210314311209350626267781732175260E-4932:0:1:
+%1LE:3.619058724505602958194804115432455E03716:1:1:0x1.8p1:
+%*1LE:3.619058724505602958194804115432455E03716:0:1:
+%1LE:3.619058724505602958194804115432455E+3716:1:1:0x1.8p1:
+%*1LE:3.619058724505602958194804115432455E+3716:0:1:
+%1LE:1.18973149535723176502126385303097021E4932:1:1:0x1:
+%*1LE:1.18973149535723176502126385303097021E4932:0:1:
+%1LE:1.18973149535723176502126385303097021E+4932:1:1:0x1:
+%*1LE:1.18973149535723176502126385303097021E+4932:0:1:
+%1LE:INFINITY:0:-1:
+%*1LE:INFINITY:0:-1:
+%1LE:+NAN():0:-1:
+%*1LE:+NAN():0:-1:
+%1LE:+NAN(09A_Zaz):0:-1:
+%*1LE:+NAN(09A_Zaz):0:-1:
+%1LE:+0E0:0:-1:
+%*1LE:+0E0:0:-1:
+%1LE:+0E+0:0:-1:
+%*1LE:+0E+0:0:-1:
+%1LE:+3.36210314311209350626267781732175260E-4932:0:-1:
+%*1LE:+3.36210314311209350626267781732175260E-4932:0:-1:
+%1LE:+3.619058724505602958194804115432455E03716:0:-1:
+%*1LE:+3.619058724505602958194804115432455E03716:0:-1:
+%1LE:+3.619058724505602958194804115432455E+3716:0:-1:
+%*1LE:+3.619058724505602958194804115432455E+3716:0:-1:
+%1LE:+1.18973149535723176502126385303097021E4932:0:-1:
+%*1LE:+1.18973149535723176502126385303097021E4932:0:-1:
+%1LE:+1.18973149535723176502126385303097021E+4932:0:-1:
+%*1LE:+1.18973149535723176502126385303097021E+4932:0:-1:
+%1LE:+INFINITY:0:-1:
+%*1LE:+INFINITY:0:-1:
+%2LE::0:-1:
+%*2LE::0:-1:
+%2LE:-INFINITY:0:-1:
+%*2LE:-INFINITY:0:-1:
+%2LE:-1.18973149535723176502126385303097021E+4932:1:2:-0x1:
+%*2LE:-1.18973149535723176502126385303097021E+4932:0:2:
+%2LE:-1.18973149535723176502126385303097021E4932:1:2:-0x1:
+%*2LE:-1.18973149535723176502126385303097021E4932:0:2:
+%2LE:-3.619058724505602958194804115432455E+3716:1:2:-0x1.8p1:
+%*2LE:-3.619058724505602958194804115432455E+3716:0:2:
+%2LE:-3.619058724505602958194804115432455E03716:1:2:-0x1.8p1:
+%*2LE:-3.619058724505602958194804115432455E03716:0:2:
+%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1:
+%*2LE:-3.36210314311209350626267781732175260e-4932:0:2:
+%2LE:-0E+0:1:2:-0x0:
+%*2LE:-0E+0:0:2:
+%2LE:-0E0:1:2:-0x0:
+%*2LE:-0E0:0:2:
+%2LE:-NAN(09A_Zaz):0:-1:
+%*2LE:-NAN(09A_Zaz):0:-1:
+%2LE:-NAN():0:-1:
+%*2LE:-NAN():0:-1:
+%2LE:NAN():0:-1:
+%*2LE:NAN():0:-1:
+%2LE:NAN(09A_Zaz):0:-1:
+%*2LE:NAN(09A_Zaz):0:-1:
+%2LE:0E0:0:-1:
+%*2LE:0E0:0:-1:
+%2LE:0E+0:0:-1:
+%*2LE:0E+0:0:-1:
+%2LE:3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1:
+%*2LE:3.36210314311209350626267781732175260E-4932:0:2:
+%2LE:3.619058724505602958194804115432455E03716:1:2:0x1.8p1:
+%*2LE:3.619058724505602958194804115432455E03716:0:2:
+%2LE:3.619058724505602958194804115432455E+3716:1:2:0x1.8p1:
+%*2LE:3.619058724505602958194804115432455E+3716:0:2:
+%2LE:1.18973149535723176502126385303097021E4932:1:2:0x1:
+%*2LE:1.18973149535723176502126385303097021E4932:0:2:
+%2LE:1.18973149535723176502126385303097021E+4932:1:2:0x1:
+%*2LE:1.18973149535723176502126385303097021E+4932:0:2:
+%2LE:INFINITY:0:-1:
+%*2LE:INFINITY:0:-1:
+%2LE:+NAN():0:-1:
+%*2LE:+NAN():0:-1:
+%2LE:+NAN(09A_Zaz):0:-1:
+%*2LE:+NAN(09A_Zaz):0:-1:
+%2LE:+0E0:1:2:0x0:
+%*2LE:+0E0:0:2:
+%2LE:+0E+0:1:2:0x0:
+%*2LE:+0E+0:0:2:
+%2LE:+3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1:
+%*2LE:+3.36210314311209350626267781732175260E-4932:0:2:
+%2LE:+3.619058724505602958194804115432455E03716:1:2:0x1.8p1:
+%*2LE:+3.619058724505602958194804115432455E03716:0:2:
+%2LE:+3.619058724505602958194804115432455E+3716:1:2:0x1.8p1:
+%*2LE:+3.619058724505602958194804115432455E+3716:0:2:
+%2LE:+1.18973149535723176502126385303097021E4932:1:2:0x1:
+%*2LE:+1.18973149535723176502126385303097021E4932:0:2:
+%2LE:+1.18973149535723176502126385303097021E+4932:1:2:0x1:
+%*2LE:+1.18973149535723176502126385303097021E+4932:0:2:
+%2LE:+INFINITY:0:-1:
+%*2LE:+INFINITY:0:-1:
+%3LE::0:-1:
+%*3LE::0:-1:
+%3LE:-INFINITY:0:-1:
+%*3LE:-INFINITY:0:-1:
+%3LE:-1.18973149535723176502126385303097021E+4932:1:3:-0x1:
+%*3LE:-1.18973149535723176502126385303097021E+4932:0:3:
+%3LE:-1.18973149535723176502126385303097021E4932:1:3:-0x1:
+%*3LE:-1.18973149535723176502126385303097021E4932:0:3:
+%3LE:-3.619058724505602958194804115432455E+3716:1:3:-0x1.8p1:
+%*3LE:-3.619058724505602958194804115432455E+3716:0:3:
+%3LE:-3.619058724505602958194804115432455E03716:1:3:-0x1.8p1:
+%*3LE:-3.619058724505602958194804115432455E03716:0:3:
+%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1:
+%*3LE:-3.36210314311209350626267781732175260e-4932:0:3:
+%3LE:-0E+0:0:-1:
+%*3LE:-0E+0:0:-1:
+%3LE:-0E0:0:-1:
+%*3LE:-0E0:0:-1:
+%3LE:-NAN(09A_Zaz):0:-1:
+%*3LE:-NAN(09A_Zaz):0:-1:
+%3LE:-NAN():0:-1:
+%*3LE:-NAN():0:-1:
+%3LE:NAN():1:3:nan:
+%*3LE:NAN():0:3:
+%3LE:NAN(09A_Zaz):1:3:nan:
+%*3LE:NAN(09A_Zaz):0:3:
+%3LE:0E0:1:3:0x0:
+%*3LE:0E0:0:3:
+%3LE:0E+0:0:-1:
+%*3LE:0E+0:0:-1:
+%3LE:3.36210314311209350626267781732175260E-4932:1:3:0x1.a666666666666666p1:
+%*3LE:3.36210314311209350626267781732175260E-4932:0:3:
+%3LE:3.619058724505602958194804115432455E03716:1:3:0x1.ccccccccccccccccp1:
+%*3LE:3.619058724505602958194804115432455E03716:0:3:
+%3LE:3.619058724505602958194804115432455E+3716:1:3:0x1.ccccccccccccccccp1:
+%*3LE:3.619058724505602958194804115432455E+3716:0:3:
+%3LE:1.18973149535723176502126385303097021E4932:1:3:0x1.199999999999999a:
+%*3LE:1.18973149535723176502126385303097021E4932:0:3:
+%3LE:1.18973149535723176502126385303097021E+4932:1:3:0x1.199999999999999a:
+%*3LE:1.18973149535723176502126385303097021E+4932:0:3:
+%3LE:INFINITY:1:3:inf:
+%*3LE:INFINITY:0:3:
+%3LE:+NAN():0:-1:
+%*3LE:+NAN():0:-1:
+%3LE:+NAN(09A_Zaz):0:-1:
+%*3LE:+NAN(09A_Zaz):0:-1:
+%3LE:+0E0:0:-1:
+%*3LE:+0E0:0:-1:
+%3LE:+0E+0:0:-1:
+%*3LE:+0E+0:0:-1:
+%3LE:+3.36210314311209350626267781732175260E-4932:1:3:0x1.8p1:
+%*3LE:+3.36210314311209350626267781732175260E-4932:0:3:
+%3LE:+3.619058724505602958194804115432455E03716:1:3:0x1.8p1:
+%*3LE:+3.619058724505602958194804115432455E03716:0:3:
+%3LE:+3.619058724505602958194804115432455E+3716:1:3:0x1.8p1:
+%*3LE:+3.619058724505602958194804115432455E+3716:0:3:
+%3LE:+1.18973149535723176502126385303097021E4932:1:3:0x1:
+%*3LE:+1.18973149535723176502126385303097021E4932:0:3:
+%3LE:+1.18973149535723176502126385303097021E+4932:1:3:0x1:
+%*3LE:+1.18973149535723176502126385303097021E+4932:0:3:
+%3LE:+INFINITY:0:-1:
+%*3LE:+INFINITY:0:-1:
+%4LE::0:-1:
+%*4LE::0:-1:
+%4LE:-INFINITY:1:4:-inf:
+%*4LE:-INFINITY:0:4:
+%4LE:-1.18973149535723176502126385303097021E+4932:1:4:-0x1.199999999999999a:
+%*4LE:-1.18973149535723176502126385303097021E+4932:0:4:
+%4LE:-1.18973149535723176502126385303097021E4932:1:4:-0x1.199999999999999a:
+%*4LE:-1.18973149535723176502126385303097021E4932:0:4:
+%4LE:-3.619058724505602958194804115432455E+3716:1:4:-0x1.ccccccccccccccccp1:
+%*4LE:-3.619058724505602958194804115432455E+3716:0:4:
+%4LE:-3.619058724505602958194804115432455E03716:1:4:-0x1.ccccccccccccccccp1:
+%*4LE:-3.619058724505602958194804115432455E03716:0:4:
+%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1:
+%*4LE:-3.36210314311209350626267781732175260e-4932:0:4:
+%4LE:-0E+0:0:-1:
+%*4LE:-0E+0:0:-1:
+%4LE:-0E0:1:4:-0x0:
+%*4LE:-0E0:0:4:
+%4LE:-NAN(09A_Zaz):1:4:-nan:
+%*4LE:-NAN(09A_Zaz):0:4:
+%4LE:-NAN():1:4:-nan:
+%*4LE:-NAN():0:4:
+%4LE:NAN():0:-1:
+%*4LE:NAN():0:-1:
+%4LE:NAN(09A_Zaz):0:-1:
+%*4LE:NAN(09A_Zaz):0:-1:
+%4LE:0E0:1:3:0x0:
+%*4LE:0E0:0:3:
+%4LE:0E+0:1:4:0x0:
+%*4LE:0E+0:0:4:
+%4LE:3.36210314311209350626267781732175260E-4932:1:4:0x1.ae147ae147ae147Ap1:
+%*4LE:3.36210314311209350626267781732175260E-4932:0:4:
+%4LE:3.619058724505602958194804115432455E03716:1:4:0x1.ce147ae147ae147ap1:
+%*4LE:3.619058724505602958194804115432455E03716:0:4:
+%4LE:3.619058724505602958194804115432455E+3716:1:4:0x1.ce147ae147ae147ap1:
+%*4LE:3.619058724505602958194804115432455E+3716:0:4:
+%4LE:1.18973149535723176502126385303097021E4932:1:4:0x1.2e147ae147ae147a:
+%*4LE:1.18973149535723176502126385303097021E4932:0:4:
+%4LE:1.18973149535723176502126385303097021E+4932:1:4:0x1.2e147ae147ae147a:
+%*4LE:1.18973149535723176502126385303097021E+4932:0:4:
+%4LE:INFINITY:0:-1:
+%*4LE:INFINITY:0:-1:
+%4LE:+NAN():1:4:nan:
+%*4LE:+NAN():0:4:
+%4LE:+NAN(09A_Zaz):1:4:nan:
+%*4LE:+NAN(09A_Zaz):0:4:
+%4LE:+0E0:1:4:0x0:
+%*4LE:+0E0:0:4:
+%4LE:+0E+0:0:-1:
+%*4LE:+0E+0:0:-1:
+%4LE:+3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1:
+%*4LE:+3.36210314311209350626267781732175260E-4932:0:4:
+%4LE:+3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1:
+%*4LE:+3.619058724505602958194804115432455E03716:0:4:
+%4LE:+3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1:
+%*4LE:+3.619058724505602958194804115432455E+3716:0:4:
+%4LE:+1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a:
+%*4LE:+1.18973149535723176502126385303097021E4932:0:4:
+%4LE:+1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a:
+%*4LE:+1.18973149535723176502126385303097021E+4932:0:4:
+%4LE:+INFINITY:1:4:inf:
+%*4LE:+INFINITY:0:4:
+%40LE::0:-1:
+%*40LE::0:-1:
+%40LE:-INFINITY:1:9:-inf:
+%*40LE:-INFINITY:0:9:
+%40LE:-1.18973149535723176502126385303097021E+4932:0:-1:
+%*40LE:-1.18973149535723176502126385303097021E+4932:0:-1:
+%40LE:-1.18973149535723176502126385303097021E4932:1:40:-0x1.73CA850660E6E6C4p13:
+%*40LE:-1.18973149535723176502126385303097021E4932:0:40:
+%40LE:-3.619058724505602958194804115432455E+3716:1:40:-0x1.b3a0db6a2433ca1ap124:
+%*40LE:-3.619058724505602958194804115432455E+3716:0:40:
+%40LE:-3.619058724505602958194804115432455E03716:1:40:-0x1.b3a0db6a2433ca1ap124:
+%*40LE:-3.619058724505602958194804115432455E03716:0:40:
+%40LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%*40LE:-3.36210314311209350626267781732175260e-4932:0:-1:
+%40LE:-0E+0:1:5:-0x0:
+%*40LE:-0E+0:0:5:
+%40LE:-0E0:1:4:-0x0:
+%*40LE:-0E0:0:4:
+%40LE:-NAN(09A_Zaz):1:13:-nan:
+%*40LE:-NAN(09A_Zaz):0:13:
+%40LE:-NAN():1:6:-nan:
+%*40LE:-NAN():0:6:
+%40LE:NAN():1:5:nan:
+%*40LE:NAN():0:5:
+%40LE:NAN(09A_Zaz):1:12:nan:
+%*40LE:NAN(09A_Zaz):0:12:
+%40LE:0E0:1:3:0x0:
+%*40LE:0E0:0:3:
+%40LE:0E+0:1:4:0x0:
+%*40LE:0E+0:0:4:
+%40LE:3.36210314311209350626267781732175260E-4932:1:40:0x1.608ac4df6a146bcep-12:
+%*40LE:3.36210314311209350626267781732175260E-4932:0:40:
+%40LE:3.619058724505602958194804115432455E03716:1:40:0x1.39330d0cb7b0b968p1234:
+%*40LE:3.619058724505602958194804115432455E03716:0:40:
+%40LE:3.619058724505602958194804115432455E+3716:1:40:0x1.39330d0cb7b0b968p1234:
+%*40LE:3.619058724505602958194804115432455E+3716:0:40:
+%40LE:1.18973149535723176502126385303097021E4932:1:40:0x1.047ec1b6d6390a5cp163:
+%*40LE:1.18973149535723176502126385303097021E4932:0:40:
+%40LE:1.18973149535723176502126385303097021E+4932:1:40:0x1.73ca850660e6e6c4p13:
+%*40LE:1.18973149535723176502126385303097021E+4932:0:40:
+%40LE:INFINITY:1:8:inf:
+%*40LE:INFINITY:0:8:
+%40LE:+NAN():1:6:nan:
+%*40LE:+NAN():0:6:
+%40LE:+NAN(09A_Zaz):1:13:nan:
+%*40LE:+NAN(09A_Zaz):0:13:
+%40LE:+0E0:1:4:0x0:
+%*40LE:+0E0:0:4:
+%40LE:+0E+0:1:5:0x0:
+%*40LE:+0E+0:0:5:
+%40LE:+3.36210314311209350626267781732175260E-4932:0:-1:
+%*40LE:+3.36210314311209350626267781732175260E-4932:0:-1:
+%40LE:+3.619058724505602958194804115432455E03716:1:40:0x1.b3a0db6a2433ca1ap124:
+%*40LE:+3.619058724505602958194804115432455E03716:0:40:
+%40LE:+3.619058724505602958194804115432455E+3716:1:40:0x1.b3a0db6a2433ca1ap124:
+%*40LE:+3.619058724505602958194804115432455E+3716:0:40:
+%40LE:+1.18973149535723176502126385303097021E4932:1:40:0x1.73CA850660E6E6C4p13:
+%*40LE:+1.18973149535723176502126385303097021E4932:0:40:
+%40LE:+1.18973149535723176502126385303097021E+4932:0:-1:
+%*40LE:+1.18973149535723176502126385303097021E+4932:0:-1:
+%40LE:+INFINITY:1:9:inf:
+%*40LE:+INFINITY:0:9:
+%48LE::0:-1:
+%*48LE::0:-1:
+%48LE:-INFINITY:1:9:-inf:
+%*48LE:-INFINITY:0:9:
+%48LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383:
+%*48LE:-1.18973149535723176502126385303097021E+4932:0:44:
+%48LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383:
+%*48LE:-1.18973149535723176502126385303097021E4932:0:43:
+%48LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:-3.619058724505602958194804115432455E+3716:0:42:
+%48LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:-3.619058724505602958194804115432455E03716:0:42:
+%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382:
+%*48LE:-3.36210314311209350626267781732175260e-4932:0:44:
+%48LE:-0E+0:1:5:-0x0:
+%*48LE:-0E+0:0:5:
+%48LE:-0E0:1:4:-0x0:
+%*48LE:-0E0:0:4:
+%48LE:-NAN(09A_Zaz):1:13:-nan:
+%*48LE:-NAN(09A_Zaz):0:13:
+%48LE:-NAN():1:6:-nan:
+%*48LE:-NAN():0:6:
+%48LE:NAN():1:5:nan:
+%*48LE:NAN():0:5:
+%48LE:NAN(09A_Zaz):1:12:nan:
+%*48LE:NAN(09A_Zaz):0:12:
+%48LE:0E0:1:3:0x0:
+%*48LE:0E0:0:3:
+%48LE:0E+0:1:4:0x0:
+%*48LE:0E+0:0:4:
+%48LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382:
+%*48LE:3.36210314311209350626267781732175260E-4932:0:43:
+%48LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:3.619058724505602958194804115432455E03716:0:41:
+%48LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:3.619058724505602958194804115432455E+3716:0:41:
+%48LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383:
+%*48LE:1.18973149535723176502126385303097021E4932:0:42:
+%48LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383:
+%*48LE:1.18973149535723176502126385303097021E+4932:0:43:
+%48LE:INFINITY:1:8:inf:
+%*48LE:INFINITY:0:8:
+%48LE:+NAN():1:6:nan:
+%*48LE:+NAN():0:6:
+%48LE:+NAN(09A_Zaz):1:13:nan:
+%*48LE:+NAN(09A_Zaz):0:13:
+%48LE:+0E0:1:4:0x0:
+%*48LE:+0E0:0:4:
+%48LE:+0E+0:1:5:0x0:
+%*48LE:+0E+0:0:5:
+%48LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382:
+%*48LE:+3.36210314311209350626267781732175260E-4932:0:44:
+%48LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:+3.619058724505602958194804115432455E03716:0:42:
+%48LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE:+3.619058724505602958194804115432455E+3716:0:42:
+%48LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383:
+%*48LE:+1.18973149535723176502126385303097021E4932:0:43:
+%48LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383:
+%*48LE:+1.18973149535723176502126385303097021E+4932:0:44:
+%48LE:+INFINITY:1:9:inf:
+%*48LE:+INFINITY:0:9:
+%3LE: :0:-1:
+%*3LE: :0:-1:
+%3LE: -INFINITY:0:-1:
+%*3LE: -INFINITY:0:-1:
+%3LE: -1.18973149535723176502126385303097021E+4932:1:4:-0x1:
+%*3LE: -1.18973149535723176502126385303097021E+4932:0:4:
+%3LE: -1.18973149535723176502126385303097021E4932:1:4:-0x1:
+%*3LE: -1.18973149535723176502126385303097021E4932:0:4:
+%3LE: -3.619058724505602958194804115432455E+3716:1:4:-0x1.8p1:
+%*3LE: -3.619058724505602958194804115432455E+3716:0:4:
+%3LE: -3.619058724505602958194804115432455E03716:1:4:-0x1.8p1:
+%*3LE: -3.619058724505602958194804115432455E03716:0:4:
+%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1:
+%*3LE: -3.36210314311209350626267781732175260e-4932:0:4:
+%3LE: -0E+0:0:-1:
+%*3LE: -0E+0:0:-1:
+%3LE: -0E0:0:-1:
+%*3LE: -0E0:0:-1:
+%3LE: -NAN(09A_Zaz):0:-1:
+%*3LE: -NAN(09A_Zaz):0:-1:
+%3LE: -NAN():0:-1:
+%*3LE: -NAN():0:-1:
+%3LE: NAN():1:4:nan:
+%*3LE: NAN():0:4:
+%3LE: NAN(09A_Zaz):1:4:nan:
+%*3LE: NAN(09A_Zaz):0:4:
+%3LE: 0E0:1:4:0x0:
+%*3LE: 0E0:0:4:
+%3LE: 0E+0:0:-1:
+%*3LE: 0E+0:0:-1:
+%3LE: 3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1:
+%*3LE: 3.36210314311209350626267781732175260E-4932:0:4:
+%3LE: 3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1:
+%*3LE: 3.619058724505602958194804115432455E03716:0:4:
+%3LE: 3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1:
+%*3LE: 3.619058724505602958194804115432455E+3716:0:4:
+%3LE: 1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a:
+%*3LE: 1.18973149535723176502126385303097021E4932:0:4:
+%3LE: 1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a:
+%*3LE: 1.18973149535723176502126385303097021E+4932:0:4:
+%3LE: INFINITY:1:4:inf:
+%*3LE: INFINITY:0:4:
+%3LE: +NAN():0:-1:
+%*3LE: +NAN():0:-1:
+%3LE: +NAN(09A_Zaz):0:-1:
+%*3LE: +NAN(09A_Zaz):0:-1:
+%3LE: +0E0:0:-1:
+%*3LE: +0E0:0:-1:
+%3LE: +0E+0:0:-1:
+%*3LE: +0E+0:0:-1:
+%3LE: +3.36210314311209350626267781732175260E-4932:1:4:0x1.8p1:
+%*3LE: +3.36210314311209350626267781732175260E-4932:0:4:
+%3LE: +3.619058724505602958194804115432455E03716:1:4:0x1.8p1:
+%*3LE: +3.619058724505602958194804115432455E03716:0:4:
+%3LE: +3.619058724505602958194804115432455E+3716:1:4:0x1.8p1:
+%*3LE: +3.619058724505602958194804115432455E+3716:0:4:
+%3LE: +1.18973149535723176502126385303097021E4932:1:4:0x1:
+%*3LE: +1.18973149535723176502126385303097021E4932:0:4:
+%3LE: +1.18973149535723176502126385303097021E+4932:1:4:0x1:
+%*3LE: +1.18973149535723176502126385303097021E+4932:0:4:
+%3LE: +INFINITY:0:-1:
+%*3LE: +INFINITY:0:-1:
+%48LE: :0:-1:
+%*48LE: :0:-1:
+%48LE: -INFINITY:1:10:-inf:
+%*48LE: -INFINITY:0:10:
+%48LE: -1.18973149535723176502126385303097021E+4932:1:45:-0x1.fffffffffffffffep16383:
+%*48LE: -1.18973149535723176502126385303097021E+4932:0:45:
+%48LE: -1.18973149535723176502126385303097021E4932:1:44:-0x1.fffffffffffffffep16383:
+%*48LE: -1.18973149535723176502126385303097021E4932:0:44:
+%48LE: -3.619058724505602958194804115432455E+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: -3.619058724505602958194804115432455E+3716:0:43:
+%48LE: -3.619058724505602958194804115432455E03716:1:43:-0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: -3.619058724505602958194804115432455E03716:0:43:
+%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382:
+%*48LE: -3.36210314311209350626267781732175260e-4932:0:45:
+%48LE: -0E+0:1:6:-0x0:
+%*48LE: -0E+0:0:6:
+%48LE: -0E0:1:5:-0x0:
+%*48LE: -0E0:0:5:
+%48LE: -NAN(09A_Zaz):1:14:-nan:
+%*48LE: -NAN(09A_Zaz):0:14:
+%48LE: -NAN():1:7:-nan:
+%*48LE: -NAN():0:7:
+%48LE: NAN():1:6:nan:
+%*48LE: NAN():0:6:
+%48LE: NAN(09A_Zaz):1:13:nan:
+%*48LE: NAN(09A_Zaz):0:13:
+%48LE: 0E0:1:4:0x0:
+%*48LE: 0E0:0:4:
+%48LE: 0E+0:1:5:0x0:
+%*48LE: 0E+0:0:5:
+%48LE: 3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382:
+%*48LE: 3.36210314311209350626267781732175260E-4932:0:44:
+%48LE: 3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: 3.619058724505602958194804115432455E03716:0:42:
+%48LE: 3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: 3.619058724505602958194804115432455E+3716:0:42:
+%48LE: 1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383:
+%*48LE: 1.18973149535723176502126385303097021E4932:0:43:
+%48LE: 1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383:
+%*48LE: 1.18973149535723176502126385303097021E+4932:0:44:
+%48LE: INFINITY:1:9:inf:
+%*48LE: INFINITY:0:9:
+%48LE: +NAN():1:7:nan:
+%*48LE: +NAN():0:7:
+%48LE: +NAN(09A_Zaz):1:14:nan:
+%*48LE: +NAN(09A_Zaz):0:14:
+%48LE: +0E0:1:5:0x0:
+%*48LE: +0E0:0:5:
+%48LE: +0E+0:1:6:0x0:
+%*48LE: +0E+0:0:6:
+%48LE: +3.36210314311209350626267781732175260E-4932:1:45:0x1p-16382:
+%*48LE: +3.36210314311209350626267781732175260E-4932:0:45:
+%48LE: +3.619058724505602958194804115432455E03716:1:43:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: +3.619058724505602958194804115432455E03716:0:43:
+%48LE: +3.619058724505602958194804115432455E+3716:1:43:0x1.1a2b3c4d5e6f7808p12346:
+%*48LE: +3.619058724505602958194804115432455E+3716:0:43:
+%48LE: +1.18973149535723176502126385303097021E4932:1:44:0x1.fffffffffffffffep16383:
+%*48LE: +1.18973149535723176502126385303097021E4932:0:44:
+%48LE: +1.18973149535723176502126385303097021E+4932:1:45:0x1.fffffffffffffffep16383:
+%*48LE: +1.18973149535723176502126385303097021E+4932:0:45:
+%48LE: +INFINITY:1:10:inf:
+%*48LE: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input
new file mode 100644
index 0000000..7c06a32
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input
@@ -0,0 +1,496 @@
+%Lf::0:-1:
+%*Lf::0:-1:
+%Lf:-infinity:1:9:-inf:
+%*Lf:-infinity:0:9:
+%Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383:
+%*Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%Lf:-0.0:1:4:-0x0:
+%*Lf:-0.0:0:4:
+%Lf:-0:1:2:-0x0:
+%*Lf:-0:0:2:
+%Lf:-nan(09A_Zaz):1:13:-nan:
+%*Lf:-nan(09A_Zaz):0:13:
+%Lf:-nan():1:6:-nan:
+%*Lf:-nan():0:6:
+%Lf:nan():1:5:nan:
+%*Lf:nan():0:5:
+%Lf:nan(09A_Zaz):1:12:nan:
+%*Lf:nan(09A_Zaz):0:12:
+%Lf:0:1:1:0x0:
+%*Lf:0:0:1:
+%Lf:0.0:1:3:0x0:
+%*Lf:0.0:0:3:
+%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383:
+%*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936:
+%Lf:infinity:1:8:inf:
+%*Lf:infinity:0:8:
+%Lf:+nan():1:6:nan:
+%*Lf:+nan():0:6:
+%Lf:+nan(09A_Zaz):1:13:nan:
+%*Lf:+nan(09A_Zaz):0:13:
+%Lf:+0:1:2:0x0:
+%*Lf:+0:0:2:
+%Lf:+0.0:1:4:0x0:
+%*Lf:+0.0:0:4:
+%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%Lf:+infinity:1:9:inf:
+%*Lf:+infinity:0:9:
+%1Lf::0:-1:
+%*1Lf::0:-1:
+%1Lf:-infinity:0:-1:
+%*1Lf:-infinity:0:-1:
+%1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%*1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%*1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%*1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%*1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1Lf:-0.0:0:-1:
+%*1Lf:-0.0:0:-1:
+%1Lf:-0:0:-1:
+%*1Lf:-0:0:-1:
+%1Lf:-nan(09A_Zaz):0:-1:
+%*1Lf:-nan(09A_Zaz):0:-1:
+%1Lf:-nan():0:-1:
+%*1Lf:-nan():0:-1:
+%1Lf:nan():0:-1:
+%*1Lf:nan():0:-1:
+%1Lf:nan(09A_Zaz):0:-1:
+%*1Lf:nan(09A_Zaz):0:-1:
+%1Lf:0:1:1:0x0:
+%*1Lf:0:0:1:
+%1Lf:0.0:1:1:0x0:
+%*1Lf:0.0:0:1:
+%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0:
+%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1:
+%1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1:
+%*1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1:
+%1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0:
+%*1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1:
+%1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1:
+%*1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1:
+%1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0:
+%*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1:
+%1Lf:infinity:0:-1:
+%*1Lf:infinity:0:-1:
+%1Lf:+nan():0:-1:
+%*1Lf:+nan():0:-1:
+%1Lf:+nan(09A_Zaz):0:-1:
+%*1Lf:+nan(09A_Zaz):0:-1:
+%1Lf:+0:0:-1:
+%*1Lf:+0:0:-1:
+%1Lf:+0.0:0:-1:
+%*1Lf:+0.0:0:-1:
+%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%*1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%*1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%*1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%*1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%1Lf:+infinity:0:-1:
+%*1Lf:+infinity:0:-1:
+%2Lf::0:-1:
+%*2Lf::0:-1:
+%2Lf:-infinity:0:-1:
+%*2Lf:-infinity:0:-1:
+%2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0:
+%*2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1:
+%*2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0:
+%*2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1:
+%*2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0:
+%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:-0.0:1:2:-0x0:
+%*2Lf:-0.0:0:2:
+%2Lf:-0:1:2:-0x0:
+%*2Lf:-0:0:2:
+%2Lf:-nan(09A_Zaz):0:-1:
+%*2Lf:-nan(09A_Zaz):0:-1:
+%2Lf:-nan():0:-1:
+%*2Lf:-nan():0:-1:
+%2Lf:nan():0:-1:
+%*2Lf:nan():0:-1:
+%2Lf:nan(09A_Zaz):0:-1:
+%*2Lf:nan(09A_Zaz):0:-1:
+%2Lf:0:1:1:0x0:
+%*2Lf:0:0:1:
+%2Lf:0.0:1:2:0x0:
+%*2Lf:0.0:0:2:
+%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5:
+%*2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1:
+%*2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3:
+%*2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1:
+%*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2Lf:infinity:0:-1:
+%*2Lf:infinity:0:-1:
+%2Lf:+nan():0:-1:
+%*2Lf:+nan():0:-1:
+%2Lf:+nan(09A_Zaz):0:-1:
+%*2Lf:+nan(09A_Zaz):0:-1:
+%2Lf:+0:1:2:0x0:
+%*2Lf:+0:0:2:
+%2Lf:+0.0:1:2:0x0:
+%*2Lf:+0.0:0:2:
+%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1:
+%*2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0:
+%*2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1:
+%*2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0:
+%*2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2Lf:+infinity:0:-1:
+%*2Lf:+infinity:0:-1:
+%3Lf::0:-1:
+%*3Lf::0:-1:
+%3Lf:-infinity:0:-1:
+%*3Lf:-infinity:0:-1:
+%3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1:
+%*3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3:
+%*3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1:
+%*3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5:
+%*3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0:
+%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:-0.0:1:3:-0x0:
+%*3Lf:-0.0:0:3:
+%3Lf:-0:1:2:-0x0:
+%*3Lf:-0:0:2:
+%3Lf:-nan(09A_Zaz):0:-1:
+%*3Lf:-nan(09A_Zaz):0:-1:
+%3Lf:-nan():0:-1:
+%*3Lf:-nan():0:-1:
+%3Lf:nan():1:3:nan:
+%*3Lf:nan():0:3:
+%3Lf:nan(09A_Zaz):1:3:nan:
+%*3Lf:nan(09A_Zaz):0:3:
+%3Lf:0:1:1:0x0:
+%*3Lf:0:0:1:
+%3Lf:0.0:1:3:0x0:
+%*3Lf:0.0:0:3:
+%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8:
+%*3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5:
+%*3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6:
+%*3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3:
+%*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3Lf:infinity:1:3:inf:
+%*3Lf:infinity:0:3:
+%3Lf:+nan():0:-1:
+%*3Lf:+nan():0:-1:
+%3Lf:+nan(09A_Zaz):0:-1:
+%*3Lf:+nan(09A_Zaz):0:-1:
+%3Lf:+0:1:2:0x0:
+%*3Lf:+0:0:2:
+%3Lf:+0.0:1:3:0x0:
+%*3Lf:+0.0:0:3:
+%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5:
+%*3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1:
+%*3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3:
+%*3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1:
+%*3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3Lf:+infinity:0:-1:
+%*3Lf:+infinity:0:-1:
+%4935Lf::0:-1:
+%*4935Lf::0:-1:
+%4935Lf:-infinity:1:9:-inf:
+%*4935Lf:-infinity:0:9:
+%4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383:
+%*4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383:
+%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:-0.0:1:4:-0x0:
+%*4935Lf:-0.0:0:4:
+%4935Lf:-0:1:2:-0x0:
+%*4935Lf:-0:0:2:
+%4935Lf:-nan(09A_Zaz):1:13:-nan:
+%*4935Lf:-nan(09A_Zaz):0:13:
+%4935Lf:-nan():1:6:-nan:
+%*4935Lf:-nan():0:6:
+%4935Lf:nan():1:5:nan:
+%*4935Lf:nan():0:5:
+%4935Lf:nan(09A_Zaz):1:12:nan:
+%*4935Lf:nan(09A_Zaz):0:12:
+%4935Lf:0:1:1:0x0:
+%*4935Lf:0:0:1:
+%4935Lf:0.0:1:3:0x0:
+%*4935Lf:0.0:0:3:
+%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383:
+%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383:
+%*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935Lf:infinity:1:8:inf:
+%*4935Lf:infinity:0:8:
+%4935Lf:+nan():1:6:nan:
+%*4935Lf:+nan():0:6:
+%4935Lf:+nan(09A_Zaz):1:13:nan:
+%*4935Lf:+nan(09A_Zaz):0:13:
+%4935Lf:+0:1:2:0x0:
+%*4935Lf:+0:0:2:
+%4935Lf:+0.0:1:4:0x0:
+%*4935Lf:+0.0:0:4:
+%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383:
+%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383:
+%*4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935Lf:+infinity:1:9:inf:
+%*4935Lf:+infinity:0:9:
+%5000Lf::0:-1:
+%*5000Lf::0:-1:
+%5000Lf:-infinity:1:9:-inf:
+%*5000Lf:-infinity:0:9:
+%5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383:
+%*5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf:-0.0:1:4:-0x0:
+%*5000Lf:-0.0:0:4:
+%5000Lf:-0:1:2:-0x0:
+%*5000Lf:-0:0:2:
+%5000Lf:-nan(09A_Zaz):1:13:-nan:
+%*5000Lf:-nan(09A_Zaz):0:13:
+%5000Lf:-nan():1:6:-nan:
+%*5000Lf:-nan():0:6:
+%5000Lf:nan():1:5:nan:
+%*5000Lf:nan():0:5:
+%5000Lf:nan(09A_Zaz):1:12:nan:
+%*5000Lf:nan(09A_Zaz):0:12:
+%5000Lf:0:1:1:0x0:
+%*5000Lf:0:0:1:
+%5000Lf:0.0:1:3:0x0:
+%*5000Lf:0.0:0:3:
+%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383:
+%*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936:
+%5000Lf:infinity:1:8:inf:
+%*5000Lf:infinity:0:8:
+%5000Lf:+nan():1:6:nan:
+%*5000Lf:+nan():0:6:
+%5000Lf:+nan(09A_Zaz):1:13:nan:
+%*5000Lf:+nan(09A_Zaz):0:13:
+%5000Lf:+0:1:2:0x0:
+%*5000Lf:+0:0:2:
+%5000Lf:+0.0:1:4:0x0:
+%*5000Lf:+0.0:0:4:
+%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000Lf:+infinity:1:9:inf:
+%*5000Lf:+infinity:0:9:
+%3Lf: :0:-1:
+%*3Lf: :0:-1:
+%3Lf: -infinity:0:-1:
+%*3Lf: -infinity:0:-1:
+%3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1:
+%*3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3:
+%*3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1:
+%*3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5:
+%*3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0:
+%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: -0.0:1:4:-0x0:
+%*3Lf: -0.0:0:4:
+%3Lf: -0:1:3:-0x0:
+%*3Lf: -0:0:3:
+%3Lf: -nan(09A_Zaz):0:-1:
+%*3Lf: -nan(09A_Zaz):0:-1:
+%3Lf: -nan():0:-1:
+%*3Lf: -nan():0:-1:
+%3Lf: nan():1:4:nan:
+%*3Lf: nan():0:4:
+%3Lf: nan(09A_Zaz):1:4:nan:
+%*3Lf: nan(09A_Zaz):0:4:
+%3Lf: 0:1:2:0x0:
+%*3Lf: 0:0:2:
+%3Lf: 0.0:1:4:0x0:
+%*3Lf: 0.0:0:4:
+%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8:
+%*3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5:
+%*3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6:
+%*3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3:
+%*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3Lf: infinity:1:4:inf:
+%*3Lf: infinity:0:4:
+%3Lf: +nan():0:-1:
+%*3Lf: +nan():0:-1:
+%3Lf: +nan(09A_Zaz):0:-1:
+%*3Lf: +nan(09A_Zaz):0:-1:
+%3Lf: +0:1:3:0x0:
+%*3Lf: +0:0:3:
+%3Lf: +0.0:1:4:0x0:
+%*3Lf: +0.0:0:4:
+%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5:
+%*3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1:
+%*3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3:
+%*3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1:
+%*3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3Lf: +infinity:0:-1:
+%*3Lf: +infinity:0:-1:
+%5000Lf: :0:-1:
+%*5000Lf: :0:-1:
+%5000Lf: -infinity:1:10:-inf:
+%*5000Lf: -infinity:0:10:
+%5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383:
+%*5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938:
+%5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383:
+%*5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935:
+%5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722:
+%5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719:
+%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382:
+%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000Lf: -0.0:1:5:-0x0:
+%*5000Lf: -0.0:0:5:
+%5000Lf: -0:1:3:-0x0:
+%*5000Lf: -0:0:3:
+%5000Lf: -nan(09A_Zaz):1:14:-nan:
+%*5000Lf: -nan(09A_Zaz):0:14:
+%5000Lf: -nan():1:7:-nan:
+%*5000Lf: -nan():0:7:
+%5000Lf: nan():1:6:nan:
+%*5000Lf: nan():0:6:
+%5000Lf: nan(09A_Zaz):1:13:nan:
+%*5000Lf: nan(09A_Zaz):0:13:
+%5000Lf: 0:1:2:0x0:
+%*5000Lf: 0:0:2:
+%5000Lf: 0.0:1:4:0x0:
+%*5000Lf: 0.0:0:4:
+%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000Lf: infinity:1:9:inf:
+%*5000Lf: infinity:0:9:
+%5000Lf: +nan():1:7:nan:
+%*5000Lf: +nan():0:7:
+%5000Lf: +nan(09A_Zaz):1:14:nan:
+%*5000Lf: +nan(09A_Zaz):0:14:
+%5000Lf: +0:1:3:0x0:
+%*5000Lf: +0:0:3:
+%5000Lf: +0.0:1:5:0x0:
+%*5000Lf: +0.0:0:5:
+%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382:
+%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719:
+%5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346:
+%*5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722:
+%5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383:
+%*5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935:
+%5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383:
+%*5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938:
+%5000Lf: +infinity:1:10:inf:
+%*5000Lf: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input
new file mode 100644
index 0000000..1612fc4
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input
@@ -0,0 +1,496 @@
+%LF::0:-1:
+%*LF::0:-1:
+%LF:-INFINITY:1:9:-inf:
+%*LF:-INFINITY:0:9:
+%LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383:
+%*LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%LF:-0.0:1:4:-0x0:
+%*LF:-0.0:0:4:
+%LF:-0:1:2:-0x0:
+%*LF:-0:0:2:
+%LF:-NAN(09A_Zaz):1:13:-nan:
+%*LF:-NAN(09A_Zaz):0:13:
+%LF:-NAN():1:6:-nan:
+%*LF:-NAN():0:6:
+%LF:NAN():1:5:nan:
+%*LF:NAN():0:5:
+%LF:NAN(09A_Zaz):1:12:nan:
+%*LF:NAN(09A_Zaz):0:12:
+%LF:0:1:1:0x0:
+%*LF:0:0:1:
+%LF:0.0:1:3:0x0:
+%*LF:0.0:0:3:
+%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383:
+%*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936:
+%LF:INFINITY:1:8:inf:
+%*LF:INFINITY:0:8:
+%LF:+NAN():1:6:nan:
+%*LF:+NAN():0:6:
+%LF:+NAN(09A_Zaz):1:13:nan:
+%*LF:+NAN(09A_Zaz):0:13:
+%LF:+0:1:2:0x0:
+%*LF:+0:0:2:
+%LF:+0.0:1:4:0x0:
+%*LF:+0.0:0:4:
+%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%LF:+INFINITY:1:9:inf:
+%*LF:+INFINITY:0:9:
+%1LF::0:-1:
+%*1LF::0:-1:
+%1LF:-INFINITY:0:-1:
+%*1LF:-INFINITY:0:-1:
+%1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%*1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%*1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%*1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%*1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1LF:-0.0:0:-1:
+%*1LF:-0.0:0:-1:
+%1LF:-0:0:-1:
+%*1LF:-0:0:-1:
+%1LF:-NAN(09A_Zaz):0:-1:
+%*1LF:-NAN(09A_Zaz):0:-1:
+%1LF:-NAN():0:-1:
+%*1LF:-NAN():0:-1:
+%1LF:NAN():0:-1:
+%*1LF:NAN():0:-1:
+%1LF:NAN(09A_Zaz):0:-1:
+%*1LF:NAN(09A_Zaz):0:-1:
+%1LF:0:1:1:0x0:
+%*1LF:0:0:1:
+%1LF:0.0:1:1:0x0:
+%*1LF:0.0:0:1:
+%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0:
+%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1:
+%1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1:
+%*1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1:
+%1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0:
+%*1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1:
+%1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1:
+%*1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1:
+%1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0:
+%*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1:
+%1LF:INFINITY:0:-1:
+%*1LF:INFINITY:0:-1:
+%1LF:+NAN():0:-1:
+%*1LF:+NAN():0:-1:
+%1LF:+NAN(09A_Zaz):0:-1:
+%*1LF:+NAN(09A_Zaz):0:-1:
+%1LF:+0:0:-1:
+%*1LF:+0:0:-1:
+%1LF:+0.0:0:-1:
+%*1LF:+0.0:0:-1:
+%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1:
+%1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%*1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1:
+%1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%*1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1:
+%1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%*1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1:
+%1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%*1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1:
+%1LF:+INFINITY:0:-1:
+%*1LF:+INFINITY:0:-1:
+%2LF::0:-1:
+%*2LF::0:-1:
+%2LF:-INFINITY:0:-1:
+%*2LF:-INFINITY:0:-1:
+%2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0:
+%*2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1:
+%*2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0:
+%*2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1:
+%*2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0:
+%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:-0.0:1:2:-0x0:
+%*2LF:-0.0:0:2:
+%2LF:-0:1:2:-0x0:
+%*2LF:-0:0:2:
+%2LF:-NAN(09A_Zaz):0:-1:
+%*2LF:-NAN(09A_Zaz):0:-1:
+%2LF:-NAN():0:-1:
+%*2LF:-NAN():0:-1:
+%2LF:NAN():0:-1:
+%*2LF:NAN():0:-1:
+%2LF:NAN(09A_Zaz):0:-1:
+%*2LF:NAN(09A_Zaz):0:-1:
+%2LF:0:1:1:0x0:
+%*2LF:0:0:1:
+%2LF:0.0:1:2:0x0:
+%*2LF:0.0:0:2:
+%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5:
+%*2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1:
+%*2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3:
+%*2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1:
+%*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2LF:INFINITY:0:-1:
+%*2LF:INFINITY:0:-1:
+%2LF:+NAN():0:-1:
+%*2LF:+NAN():0:-1:
+%2LF:+NAN(09A_Zaz):0:-1:
+%*2LF:+NAN(09A_Zaz):0:-1:
+%2LF:+0:1:2:0x0:
+%*2LF:+0:0:2:
+%2LF:+0.0:1:2:0x0:
+%*2LF:+0.0:0:2:
+%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0:
+%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2:
+%2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1:
+%*2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2:
+%2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0:
+%*2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2:
+%2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1:
+%*2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2:
+%2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0:
+%*2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2:
+%2LF:+INFINITY:0:-1:
+%*2LF:+INFINITY:0:-1:
+%3LF::0:-1:
+%*3LF::0:-1:
+%3LF:-INFINITY:0:-1:
+%*3LF:-INFINITY:0:-1:
+%3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1:
+%*3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3:
+%*3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1:
+%*3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5:
+%*3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0:
+%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:-0.0:1:3:-0x0:
+%*3LF:-0.0:0:3:
+%3LF:-0:1:2:-0x0:
+%*3LF:-0:0:2:
+%3LF:-NAN(09A_Zaz):0:-1:
+%*3LF:-NAN(09A_Zaz):0:-1:
+%3LF:-NAN():0:-1:
+%*3LF:-NAN():0:-1:
+%3LF:NAN():1:3:nan:
+%*3LF:NAN():0:3:
+%3LF:NAN(09A_Zaz):1:3:nan:
+%*3LF:NAN(09A_Zaz):0:3:
+%3LF:0:1:1:0x0:
+%*3LF:0:0:1:
+%3LF:0.0:1:3:0x0:
+%*3LF:0.0:0:3:
+%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8:
+%*3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5:
+%*3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6:
+%*3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3:
+%*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3LF:INFINITY:1:3:inf:
+%*3LF:INFINITY:0:3:
+%3LF:+NAN():0:-1:
+%*3LF:+NAN():0:-1:
+%3LF:+NAN(09A_Zaz):0:-1:
+%*3LF:+NAN(09A_Zaz):0:-1:
+%3LF:+0:1:2:0x0:
+%*3LF:+0:0:2:
+%3LF:+0.0:1:3:0x0:
+%*3LF:+0.0:0:3:
+%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0:
+%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3:
+%3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5:
+%*3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3:
+%3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1:
+%*3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3:
+%3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3:
+%*3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3:
+%3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1:
+%*3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3:
+%3LF:+INFINITY:0:-1:
+%*3LF:+INFINITY:0:-1:
+%4935LF::0:-1:
+%*4935LF::0:-1:
+%4935LF:-INFINITY:1:9:-inf:
+%*4935LF:-INFINITY:0:9:
+%4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383:
+%*4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383:
+%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:-0.0:1:4:-0x0:
+%*4935LF:-0.0:0:4:
+%4935LF:-0:1:2:-0x0:
+%*4935LF:-0:0:2:
+%4935LF:-NAN(09A_Zaz):1:13:-nan:
+%*4935LF:-NAN(09A_Zaz):0:13:
+%4935LF:-NAN():1:6:-nan:
+%*4935LF:-NAN():0:6:
+%4935LF:NAN():1:5:nan:
+%*4935LF:NAN():0:5:
+%4935LF:NAN(09A_Zaz):1:12:nan:
+%*4935LF:NAN(09A_Zaz):0:12:
+%4935LF:0:1:1:0x0:
+%*4935LF:0:0:1:
+%4935LF:0.0:1:3:0x0:
+%*4935LF:0.0:0:3:
+%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383:
+%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383:
+%*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935LF:INFINITY:1:8:inf:
+%*4935LF:INFINITY:0:8:
+%4935LF:+NAN():1:6:nan:
+%*4935LF:+NAN():0:6:
+%4935LF:+NAN(09A_Zaz):1:13:nan:
+%*4935LF:+NAN(09A_Zaz):0:13:
+%4935LF:+0:1:2:0x0:
+%*4935LF:+0:0:2:
+%4935LF:+0.0:1:4:0x0:
+%*4935LF:+0.0:0:4:
+%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383:
+%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935:
+%4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383:
+%*4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935:
+%4935LF:+INFINITY:1:9:inf:
+%*4935LF:+INFINITY:0:9:
+%5000LF::0:-1:
+%*5000LF::0:-1:
+%5000LF:-INFINITY:1:9:-inf:
+%*5000LF:-INFINITY:0:9:
+%5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383:
+%*5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383:
+%*5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382:
+%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF:-0.0:1:4:-0x0:
+%*5000LF:-0.0:0:4:
+%5000LF:-0:1:2:-0x0:
+%*5000LF:-0:0:2:
+%5000LF:-NAN(09A_Zaz):1:13:-nan:
+%*5000LF:-NAN(09A_Zaz):0:13:
+%5000LF:-NAN():1:6:-nan:
+%*5000LF:-NAN():0:6:
+%5000LF:NAN():1:5:nan:
+%*5000LF:NAN():0:5:
+%5000LF:NAN(09A_Zaz):1:12:nan:
+%*5000LF:NAN(09A_Zaz):0:12:
+%5000LF:0:1:1:0x0:
+%*5000LF:0:0:1:
+%5000LF:0.0:1:3:0x0:
+%*5000LF:0.0:0:3:
+%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382:
+%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968:
+%5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717:
+%5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720:
+%5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383:
+%*5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933:
+%5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383:
+%*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936:
+%5000LF:INFINITY:1:8:inf:
+%*5000LF:INFINITY:0:8:
+%5000LF:+NAN():1:6:nan:
+%*5000LF:+NAN():0:6:
+%5000LF:+NAN(09A_Zaz):1:13:nan:
+%*5000LF:+NAN(09A_Zaz):0:13:
+%5000LF:+0:1:2:0x0:
+%*5000LF:+0:0:2:
+%5000LF:+0.0:1:4:0x0:
+%*5000LF:+0.0:0:4:
+%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000LF:+INFINITY:1:9:inf:
+%*5000LF:+INFINITY:0:9:
+%3LF: :0:-1:
+%*3LF: :0:-1:
+%3LF: -INFINITY:0:-1:
+%*3LF: -INFINITY:0:-1:
+%3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1:
+%*3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3:
+%*3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1:
+%*3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5:
+%*3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0:
+%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: -0.0:1:4:-0x0:
+%*3LF: -0.0:0:4:
+%3LF: -0:1:3:-0x0:
+%*3LF: -0:0:3:
+%3LF: -NAN(09A_Zaz):0:-1:
+%*3LF: -NAN(09A_Zaz):0:-1:
+%3LF: -NAN():0:-1:
+%*3LF: -NAN():0:-1:
+%3LF: NAN():1:4:nan:
+%*3LF: NAN():0:4:
+%3LF: NAN(09A_Zaz):1:4:nan:
+%*3LF: NAN(09A_Zaz):0:4:
+%3LF: 0:1:2:0x0:
+%*3LF: 0:0:2:
+%3LF: 0.0:1:4:0x0:
+%*3LF: 0.0:0:4:
+%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8:
+%*3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5:
+%*3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6:
+%*3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3:
+%*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3LF: INFINITY:1:4:inf:
+%*3LF: INFINITY:0:4:
+%3LF: +NAN():0:-1:
+%*3LF: +NAN():0:-1:
+%3LF: +NAN(09A_Zaz):0:-1:
+%*3LF: +NAN(09A_Zaz):0:-1:
+%3LF: +0:1:3:0x0:
+%*3LF: +0:0:3:
+%3LF: +0.0:1:4:0x0:
+%*3LF: +0.0:0:4:
+%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0:
+%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4:
+%3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5:
+%*3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4:
+%3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1:
+%*3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4:
+%3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3:
+%*3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4:
+%3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1:
+%*3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4:
+%3LF: +INFINITY:0:-1:
+%*3LF: +INFINITY:0:-1:
+%5000LF: :0:-1:
+%*5000LF: :0:-1:
+%5000LF: -INFINITY:1:10:-inf:
+%*5000LF: -INFINITY:0:10:
+%5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383:
+%*5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938:
+%5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383:
+%*5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935:
+%5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722:
+%5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719:
+%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382:
+%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000LF: -0.0:1:5:-0x0:
+%*5000LF: -0.0:0:5:
+%5000LF: -0:1:3:-0x0:
+%*5000LF: -0:0:3:
+%5000LF: -NAN(09A_Zaz):1:14:-nan:
+%*5000LF: -NAN(09A_Zaz):0:14:
+%5000LF: -NAN():1:7:-nan:
+%*5000LF: -NAN():0:7:
+%5000LF: NAN():1:6:nan:
+%*5000LF: NAN():0:6:
+%5000LF: NAN(09A_Zaz):1:13:nan:
+%*5000LF: NAN(09A_Zaz):0:13:
+%5000LF: 0:1:2:0x0:
+%*5000LF: 0:0:2:
+%5000LF: 0.0:1:4:0x0:
+%*5000LF: 0.0:0:4:
+%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382:
+%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969:
+%5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718:
+%5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721:
+%5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383:
+%*5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934:
+%5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383:
+%*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937:
+%5000LF: INFINITY:1:9:inf:
+%*5000LF: INFINITY:0:9:
+%5000LF: +NAN():1:7:nan:
+%*5000LF: +NAN():0:7:
+%5000LF: +NAN(09A_Zaz):1:14:nan:
+%*5000LF: +NAN(09A_Zaz):0:14:
+%5000LF: +0:1:3:0x0:
+%*5000LF: +0:0:3:
+%5000LF: +0.0:1:5:0x0:
+%*5000LF: +0.0:0:5:
+%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382:
+%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970:
+%5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719:
+%5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346:
+%*5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722:
+%5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383:
+%*5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935:
+%5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383:
+%*5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938:
+%5000LF: +INFINITY:1:10:inf:
+%*5000LF: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input
new file mode 100644
index 0000000..7c32ba1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input
@@ -0,0 +1,682 @@
+%Lg::0:-1:
+%*Lg::0:-1:
+%Lg:-infinity:1:9:-inf:
+%*Lg:-infinity:0:9:
+%Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383:
+%*Lg:-0xf.fffffffffffffffp+16380:0:27:
+%Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383:
+%*Lg:-0x7.fffffffffffffff8p16381:0:27:
+%Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:-0x2.3456789abcdef01p+12345:0:27:
+%Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:-0x2.3456789abcdef01p012345:0:27:
+%Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*Lg:-0x8p-16385:0:11:
+%Lg:-0x0p+0:1:7:-0x0:
+%*Lg:-0x0p+0:0:7:
+%Lg:-0x0p0:1:6:-0x0:
+%*Lg:-0x0p0:0:6:
+%Lg:-nan(09A_Zaz):1:13:-nan:
+%*Lg:-nan(09A_Zaz):0:13:
+%Lg:-nan():1:6:-nan:
+%*Lg:-nan():0:6:
+%Lg:nan():1:5:nan:
+%*Lg:nan():0:5:
+%Lg:nan(09A_Zaz):1:12:nan:
+%*Lg:nan(09A_Zaz):0:12:
+%Lg:0x0p0:1:5:0x0:
+%*Lg:0x0p0:0:5:
+%Lg:0x0p+0:1:6:0x0:
+%*Lg:0x0p+0:0:6:
+%Lg:0x8p-16385:1:10:0x1p-16382:
+%*Lg:0x8p-16385:0:10:
+%Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:0x2.3456789abcdef01p012345:0:26:
+%Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:0x2.3456789abcdef01p+12345:0:26:
+%Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383:
+%*Lg:0x7.fffffffffffffff8p16381:0:26:
+%Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383:
+%*Lg:0xf.fffffffffffffffp+16380:0:26:
+%Lg:infinity:1:8:inf:
+%*Lg:infinity:0:8:
+%Lg:+nan():1:6:nan:
+%*Lg:+nan():0:6:
+%Lg:+nan(09A_Zaz):1:13:nan:
+%*Lg:+nan(09A_Zaz):0:13:
+%Lg:+0x0p0:1:6:0x0:
+%*Lg:+0x0p0:0:6:
+%Lg:+0x0p+0:1:7:0x0:
+%*Lg:+0x0p+0:0:7:
+%Lg:+0x8p-16385:1:11:0x1p-16382:
+%*Lg:+0x8p-16385:0:11:
+%Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:+0x2.3456789abcdef01p012345:0:27:
+%Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*Lg:+0x2.3456789abcdef01p+12345:0:27:
+%Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*Lg:+0x7.fffffffffffffff8p16381:0:27:
+%Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*Lg:+0xf.fffffffffffffffp+16380:0:27:
+%Lg:+infinity:1:9:inf:
+%*Lg:+infinity:0:9:
+%1Lg::0:-1:
+%*1Lg::0:-1:
+%1Lg:-infinity:0:-1:
+%*1Lg:-infinity:0:-1:
+%1Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%*1Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%1Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%*1Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%1Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%*1Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%1Lg:-0x2.3456789abcdef01p012345:0:-1:
+%*1Lg:-0x2.3456789abcdef01p012345:0:-1:
+%1Lg:-0x8p-16385:0:-1:
+%*1Lg:-0x8p-16385:0:-1:
+%1Lg:-0x0p+0:0:-1:
+%*1Lg:-0x0p+0:0:-1:
+%1Lg:-0x0p0:0:-1:
+%*1Lg:-0x0p0:0:-1:
+%1Lg:-nan(09A_Zaz):0:-1:
+%*1Lg:-nan(09A_Zaz):0:-1:
+%1Lg:-nan():0:-1:
+%*1Lg:-nan():0:-1:
+%1Lg:nan():0:-1:
+%*1Lg:nan():0:-1:
+%1Lg:nan(09A_Zaz):0:-1:
+%*1Lg:nan(09A_Zaz):0:-1:
+%1Lg:0x0p0:1:1:0x0:
+%*1Lg:0x0p0:0:1:
+%1Lg:0x0p+0:1:1:0x0:
+%*1Lg:0x0p+0:0:1:
+%1Lg:0x8p-16385:1:1:0x0:
+%*1Lg:0x8p-16385:0:1:
+%1Lg:0x2.3456789abcdef01p012345:1:1:0x0:
+%*1Lg:0x2.3456789abcdef01p012345:0:1:
+%1Lg:0x2.3456789abcdef01p+12345:1:1:0x0:
+%*1Lg:0x2.3456789abcdef01p+12345:0:1:
+%1Lg:0x7.fffffffffffffff8p16381:1:1:0x0:
+%*1Lg:0x7.fffffffffffffff8p16381:0:1:
+%1Lg:0xf.fffffffffffffffp+16380:1:1:0x0:
+%*1Lg:0xf.fffffffffffffffp+16380:0:1:
+%1Lg:infinity:0:-1:
+%*1Lg:infinity:0:-1:
+%1Lg:+nan():0:-1:
+%*1Lg:+nan():0:-1:
+%1Lg:+nan(09A_Zaz):0:-1:
+%*1Lg:+nan(09A_Zaz):0:-1:
+%1Lg:+0x0p0:0:-1:
+%*1Lg:+0x0p0:0:-1:
+%1Lg:+0x0p+0:0:-1:
+%*1Lg:+0x0p+0:0:-1:
+%1Lg:+0x8p-16385:0:-1:
+%*1Lg:+0x8p-16385:0:-1:
+%1Lg:+0x2.3456789abcdef01p012345:0:-1:
+%*1Lg:+0x2.3456789abcdef01p012345:0:-1:
+%1Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%*1Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%1Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%*1Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%1Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%*1Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%1Lg:+infinity:0:-1:
+%*1Lg:+infinity:0:-1:
+%2Lg::0:-1:
+%*2Lg::0:-1:
+%2Lg:-infinity:0:-1:
+%*2Lg:-infinity:0:-1:
+%2Lg:-0xf.fffffffffffffffp+16380:1:2:-0x0:
+%*2Lg:-0xf.fffffffffffffffp+16380:0:2:
+%2Lg:-0x7.fffffffffffffff8p16381:1:2:-0x0:
+%*2Lg:-0x7.fffffffffffffff8p16381:0:2:
+%2Lg:-0x2.3456789abcdef01p+12345:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef01p+12345:0:2:
+%2Lg:-0x2.3456789abcdef01p012345:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdef01p012345:0:2:
+%2Lg:-0x8p-16385:1:2:-0x0:
+%*2Lg:-0x8p-16385:0:2:
+%2Lg:-0x0p+0:1:2:-0x0:
+%*2Lg:-0x0p+0:0:2:
+%2Lg:-0x0p0:1:2:-0x0:
+%*2Lg:-0x0p0:0:2:
+%2Lg:-nan(09A_Zaz):0:-1:
+%*2Lg:-nan(09A_Zaz):0:-1:
+%2Lg:-nan():0:-1:
+%*2Lg:-nan():0:-1:
+%2Lg:nan():0:-1:
+%*2Lg:nan():0:-1:
+%2Lg:nan(09A_Zaz):0:-1:
+%*2Lg:nan(09A_Zaz):0:-1:
+%2Lg:0x0p0:0:-1:
+%*2Lg:0x0p0:0:-1:
+%2Lg:0x0p+0:0:-1:
+%*2Lg:0x0p+0:0:-1:
+%2Lg:0x8p-16385:0:-1:
+%*2Lg:0x8p-16385:0:-1:
+%2Lg:0x2.3456789abcdef01p012345:0:-1:
+%*2Lg:0x2.3456789abcdef01p012345:0:-1:
+%2Lg:0x2.3456789abcdef01p+12345:0:-1:
+%*2Lg:0x2.3456789abcdef01p+12345:0:-1:
+%2Lg:0x7.fffffffffffffff8p16381:0:-1:
+%*2Lg:0x7.fffffffffffffff8p16381:0:-1:
+%2Lg:0xf.fffffffffffffffp+16380:0:-1:
+%*2Lg:0xf.fffffffffffffffp+16380:0:-1:
+%2Lg:infinity:0:-1:
+%*2Lg:infinity:0:-1:
+%2Lg:+nan():0:-1:
+%*2Lg:+nan():0:-1:
+%2Lg:+nan(09A_Zaz):0:-1:
+%*2Lg:+nan(09A_Zaz):0:-1:
+%2Lg:+0x0p0:1:2:0x0:
+%*2Lg:+0x0p0:0:2:
+%2Lg:+0x0p+0:1:2:0x0:
+%*2Lg:+0x0p+0:0:2:
+%2Lg:+0x8p-16385:1:2:0x0:
+%*2Lg:+0x8p-16385:0:2:
+%2Lg:+0x2.3456789abcdef01p012345:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef01p012345:0:2:
+%2Lg:+0x2.3456789abcdef01p+12345:1:2:0x0:
+%*2Lg:+0x2.3456789abcdef01p+12345:0:2:
+%2Lg:+0x7.fffffffffffffff8p16381:1:2:0x0:
+%*2Lg:+0x7.fffffffffffffff8p16381:0:2:
+%2Lg:+0xf.fffffffffffffffp+16380:1:2:0x0:
+%*2Lg:+0xf.fffffffffffffffp+16380:0:2:
+%2Lg:+infinity:0:-1:
+%*2Lg:+infinity:0:-1:
+%3Lg::0:-1:
+%*3Lg::0:-1:
+%3Lg:-infinity:0:-1:
+%*3Lg:-infinity:0:-1:
+%3Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%*3Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%3Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%*3Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%3Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%*3Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%3Lg:-0x2.3456789abcdef01p012345:0:-1:
+%*3Lg:-0x2.3456789abcdef01p012345:0:-1:
+%3Lg:-0x8p-16385:0:-1:
+%*3Lg:-0x8p-16385:0:-1:
+%3Lg:-0x0p+0:0:-1:
+%*3Lg:-0x0p+0:0:-1:
+%3Lg:-0x0p0:0:-1:
+%*3Lg:-0x0p0:0:-1:
+%3Lg:-nan(09A_Zaz):0:-1:
+%*3Lg:-nan(09A_Zaz):0:-1:
+%3Lg:-nan():0:-1:
+%*3Lg:-nan():0:-1:
+%3Lg:nan():1:3:nan:
+%*3Lg:nan():0:3:
+%3Lg:nan(09A_Zaz):1:3:nan:
+%*3Lg:nan(09A_Zaz):0:3:
+%3Lg:0x0p0:1:3:0x0:
+%*3Lg:0x0p0:0:3:
+%3Lg:0x0p+0:1:3:0x0:
+%*3Lg:0x0p+0:0:3:
+%3Lg:0x8p-16385:1:3:0x1p3:
+%*3Lg:0x8p-16385:0:3:
+%3Lg:0x2.3456789abcdef01p012345:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef01p012345:0:3:
+%3Lg:0x2.3456789abcdef01p+12345:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdef01p+12345:0:3:
+%3Lg:0x7.fffffffffffffff8p16381:1:3:0x1.cp2:
+%*3Lg:0x7.fffffffffffffff8p16381:0:3:
+%3Lg:0xf.fffffffffffffffp+16380:1:3:0x1.ep3:
+%*3Lg:0xf.fffffffffffffffp+16380:0:3:
+%3Lg:infinity:1:3:inf:
+%*3Lg:infinity:0:3:
+%3Lg:+nan():0:-1:
+%*3Lg:+nan():0:-1:
+%3Lg:+nan(09A_Zaz):0:-1:
+%*3Lg:+nan(09A_Zaz):0:-1:
+%3Lg:+0x0p0:0:-1:
+%*3Lg:+0x0p0:0:-1:
+%3Lg:+0x0p+0:0:-1:
+%*3Lg:+0x0p+0:0:-1:
+%3Lg:+0x8p-16385:0:-1:
+%*3Lg:+0x8p-16385:0:-1:
+%3Lg:+0x2.3456789abcdef01p012345:0:-1:
+%*3Lg:+0x2.3456789abcdef01p012345:0:-1:
+%3Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%*3Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%3Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%*3Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%3Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%*3Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%3Lg:+infinity:0:-1:
+%*3Lg:+infinity:0:-1:
+%4Lg::0:-1:
+%*4Lg::0:-1:
+%4Lg:-infinity:1:4:-inf:
+%*4Lg:-infinity:0:4:
+%4Lg:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3:
+%*4Lg:-0xf.fffffffffffffffp+16380:0:4:
+%4Lg:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2:
+%*4Lg:-0x7.fffffffffffffff8p16381:0:4:
+%4Lg:-0x2.3456789abcdef01p+12345:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef01p+12345:0:4:
+%4Lg:-0x2.3456789abcdef01p012345:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdef01p012345:0:4:
+%4Lg:-0x8p-16385:1:4:-0x1p3:
+%*4Lg:-0x8p-16385:0:4:
+%4Lg:-0x0p+0:1:4:-0x0:
+%*4Lg:-0x0p+0:0:4:
+%4Lg:-0x0p0:1:4:-0x0:
+%*4Lg:-0x0p0:0:4:
+%4Lg:-nan(09A_Zaz):1:4:-nan:
+%*4Lg:-nan(09A_Zaz):0:4:
+%4Lg:-nan():1:4:-nan:
+%*4Lg:-nan():0:4:
+%4Lg:nan():0:-1:
+%*4Lg:nan():0:-1:
+%4Lg:nan(09A_Zaz):0:-1:
+%*4Lg:nan(09A_Zaz):0:-1:
+%4Lg:0x0p0:0:-1:
+%*4Lg:0x0p0:0:-1:
+%4Lg:0x0p+0:0:-1:
+%*4Lg:0x0p+0:0:-1:
+%4Lg:0x8p-16385:0:-1:
+%*4Lg:0x8p-16385:0:-1:
+%4Lg:0x2.3456789abcdef01p012345:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef01p012345:0:4:
+%4Lg:0x2.3456789abcdef01p+12345:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdef01p+12345:0:4:
+%4Lg:0x7.fffffffffffffff8p16381:1:4:0x1.cp2:
+%*4Lg:0x7.fffffffffffffff8p16381:0:4:
+%4Lg:0xf.fffffffffffffffp+16380:1:4:0x1.ep3:
+%*4Lg:0xf.fffffffffffffffp+16380:0:4:
+%4Lg:infinity:0:-1:
+%*4Lg:infinity:0:-1:
+%4Lg:+nan():1:4:nan:
+%*4Lg:+nan():0:4:
+%4Lg:+nan(09A_Zaz):1:4:nan:
+%*4Lg:+nan(09A_Zaz):0:4:
+%4Lg:+0x0p0:1:4:0x0:
+%*4Lg:+0x0p0:0:4:
+%4Lg:+0x0p+0:1:4:0x0:
+%*4Lg:+0x0p+0:0:4:
+%4Lg:+0x8p-16385:1:4:0x1p3:
+%*4Lg:+0x8p-16385:0:4:
+%4Lg:+0x2.3456789abcdef01p012345:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef01p012345:0:4:
+%4Lg:+0x2.3456789abcdef01p+12345:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdef01p+12345:0:4:
+%4Lg:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2:
+%*4Lg:+0x7.fffffffffffffff8p16381:0:4:
+%4Lg:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3:
+%*4Lg:+0xf.fffffffffffffffp+16380:0:4:
+%4Lg:+infinity:1:4:inf:
+%*4Lg:+infinity:0:4:
+%5Lg::0:-1:
+%*5Lg::0:-1:
+%5Lg:-infinity:0:-1:
+%*5Lg:-infinity:0:-1:
+%5Lg:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3:
+%*5Lg:-0xf.fffffffffffffffp+16380:0:5:
+%5Lg:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2:
+%*5Lg:-0x7.fffffffffffffff8p16381:0:5:
+%5Lg:-0x2.3456789abcdef01p+12345:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef01p+12345:0:5:
+%5Lg:-0x2.3456789abcdef01p012345:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdef01p012345:0:5:
+%5Lg:-0x8p-16385:0:-1:
+%*5Lg:-0x8p-16385:0:-1:
+%5Lg:-0x0p+0:0:-1:
+%*5Lg:-0x0p+0:0:-1:
+%5Lg:-0x0p0:0:-1:
+%*5Lg:-0x0p0:0:-1:
+%5Lg:-nan(09A_Zaz):0:-1:
+%*5Lg:-nan(09A_Zaz):0:-1:
+%5Lg:-nan():0:-1:
+%*5Lg:-nan():0:-1:
+%5Lg:nan():1:5:nan:
+%*5Lg:nan():0:5:
+%5Lg:nan(09A_Zaz):0:-1:
+%*5Lg:nan(09A_Zaz):0:-1:
+%5Lg:0x0p0:1:5:0x0:
+%*5Lg:0x0p0:0:5:
+%5Lg:0x0p+0:0:-1:
+%*5Lg:0x0p+0:0:-1:
+%5Lg:0x8p-16385:0:-1:
+%*5Lg:0x8p-16385:0:-1:
+%5Lg:0x2.3456789abcdef01p012345:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef01p012345:0:5:
+%5Lg:0x2.3456789abcdef01p+12345:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdef01p+12345:0:5:
+%5Lg:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2:
+%*5Lg:0x7.fffffffffffffff8p16381:0:5:
+%5Lg:0xf.fffffffffffffffp+16380:1:5:0x1.fep3:
+%*5Lg:0xf.fffffffffffffffp+16380:0:5:
+%5Lg:infinity:0:-1:
+%*5Lg:infinity:0:-1:
+%5Lg:+nan():0:-1:
+%*5Lg:+nan():0:-1:
+%5Lg:+nan(09A_Zaz):0:-1:
+%*5Lg:+nan(09A_Zaz):0:-1:
+%5Lg:+0x0p0:0:-1:
+%*5Lg:+0x0p0:0:-1:
+%5Lg:+0x0p+0:0:-1:
+%*5Lg:+0x0p+0:0:-1:
+%5Lg:+0x8p-16385:0:-1:
+%*5Lg:+0x8p-16385:0:-1:
+%5Lg:+0x2.3456789abcdef01p012345:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef01p012345:0:5:
+%5Lg:+0x2.3456789abcdef01p+12345:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdef01p+12345:0:5:
+%5Lg:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2:
+%*5Lg:+0x7.fffffffffffffff8p16381:0:5:
+%5Lg:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3:
+%*5Lg:+0xf.fffffffffffffffp+16380:0:5:
+%5Lg:+infinity:0:-1:
+%*5Lg:+infinity:0:-1:
+%6Lg::0:-1:
+%*6Lg::0:-1:
+%6Lg:-infinity:0:-1:
+%*6Lg:-infinity:0:-1:
+%6Lg:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3:
+%*6Lg:-0xf.fffffffffffffffp+16380:0:6:
+%6Lg:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2:
+%*6Lg:-0x7.fffffffffffffff8p16381:0:6:
+%6Lg:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef01p+12345:0:6:
+%6Lg:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdef01p012345:0:6:
+%6Lg:-0x8p-16385:0:-1:
+%*6Lg:-0x8p-16385:0:-1:
+%6Lg:-0x0p+0:0:-1:
+%*6Lg:-0x0p+0:0:-1:
+%6Lg:-0x0p0:1:6:-0x0:
+%*6Lg:-0x0p0:0:6:
+%6Lg:-nan(09A_Zaz):0:-1:
+%*6Lg:-nan(09A_Zaz):0:-1:
+%6Lg:-nan():1:6:-nan:
+%*6Lg:-nan():0:6:
+%6Lg:nan():1:5:nan:
+%*6Lg:nan():0:5:
+%6Lg:nan(09A_Zaz):0:-1:
+%*6Lg:nan(09A_Zaz):0:-1:
+%6Lg:0x0p0:1:5:0x0:
+%*6Lg:0x0p0:0:5:
+%6Lg:0x0p+0:1:6:0x0:
+%*6Lg:0x0p+0:0:6:
+%6Lg:0x8p-16385:1:6:0x1p2:
+%*6Lg:0x8p-16385:0:6:
+%6Lg:0x2.3456789abcdef01p012345:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef01p012345:0:6:
+%6Lg:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdef01p+12345:0:6:
+%6Lg:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2:
+%*6Lg:0x7.fffffffffffffff8p16381:0:6:
+%6Lg:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3:
+%*6Lg:0xf.fffffffffffffffp+16380:0:6:
+%6Lg:infinity:0:-1:
+%*6Lg:infinity:0:-1:
+%6Lg:+nan():1:6:nan:
+%*6Lg:+nan():0:6:
+%6Lg:+nan(09A_Zaz):0:-1:
+%*6Lg:+nan(09A_Zaz):0:-1:
+%6Lg:+0x0p0:1:6:0x0:
+%*6Lg:+0x0p0:0:6:
+%6Lg:+0x0p+0:0:-1:
+%*6Lg:+0x0p+0:0:-1:
+%6Lg:+0x8p-16385:0:-1:
+%*6Lg:+0x8p-16385:0:-1:
+%6Lg:+0x2.3456789abcdef01p012345:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef01p012345:0:6:
+%6Lg:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdef01p+12345:0:6:
+%6Lg:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2:
+%*6Lg:+0x7.fffffffffffffff8p16381:0:6:
+%6Lg:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3:
+%*6Lg:+0xf.fffffffffffffffp+16380:0:6:
+%6Lg:+infinity:0:-1:
+%*6Lg:+infinity:0:-1:
+%22Lg::0:-1:
+%*22Lg::0:-1:
+%22Lg:-infinity:1:9:-inf:
+%*22Lg:-infinity:0:9:
+%22Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%*22Lg:-0xf.fffffffffffffffp+16380:0:-1:
+%22Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%*22Lg:-0x7.fffffffffffffff8p16381:0:-1:
+%22Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%*22Lg:-0x2.3456789abcdef01p+12345:0:-1:
+%22Lg:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1:
+%*22Lg:-0x2.3456789abcdef01p012345:0:22:
+%22Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*22Lg:-0x8p-16385:0:11:
+%22Lg:-0x0p+0:1:7:-0x0:
+%*22Lg:-0x0p+0:0:7:
+%22Lg:-0x0p0:1:6:-0x0:
+%*22Lg:-0x0p0:0:6:
+%22Lg:-nan(09A_Zaz):1:13:-nan:
+%*22Lg:-nan(09A_Zaz):0:13:
+%22Lg:-nan():1:6:-nan:
+%*22Lg:-nan():0:6:
+%22Lg:nan():1:5:nan:
+%*22Lg:nan():0:5:
+%22Lg:nan(09A_Zaz):1:12:nan:
+%*22Lg:nan(09A_Zaz):0:12:
+%22Lg:0x0p0:1:5:0x0:
+%*22Lg:0x0p0:0:5:
+%22Lg:0x0p+0:1:6:0x0:
+%*22Lg:0x0p+0:0:6:
+%22Lg:0x8p-16385:1:10:0x1p-16382:
+%*22Lg:0x8p-16385:0:10:
+%22Lg:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22Lg:0x2.3456789abcdef01p012345:0:22:
+%22Lg:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22Lg:0x2.3456789abcdef01p+12345:0:22:
+%22Lg:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3:
+%*22Lg:0x7.fffffffffffffff8p16381:0:22:
+%22Lg:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4:
+%*22Lg:0xf.fffffffffffffffp+16380:0:22:
+%22Lg:infinity:1:8:inf:
+%*22Lg:infinity:0:8:
+%22Lg:+nan():1:6:nan:
+%*22Lg:+nan():0:6:
+%22Lg:+nan(09A_Zaz):1:13:nan:
+%*22Lg:+nan(09A_Zaz):0:13:
+%22Lg:+0x0p0:1:6:0x0:
+%*22Lg:+0x0p0:0:6:
+%22Lg:+0x0p+0:1:7:0x0:
+%*22Lg:+0x0p+0:0:7:
+%22Lg:+0x8p-16385:1:11:0x1p-16382:
+%*22Lg:+0x8p-16385:0:11:
+%22Lg:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1:
+%*22Lg:+0x2.3456789abcdef01p012345:0:22:
+%22Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%*22Lg:+0x2.3456789abcdef01p+12345:0:-1:
+%22Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%*22Lg:+0x7.fffffffffffffff8p16381:0:-1:
+%22Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%*22Lg:+0xf.fffffffffffffffp+16380:0:-1:
+%22Lg:+infinity:1:9:inf:
+%*22Lg:+infinity:0:9:
+%37Lg::0:-1:
+%*37Lg::0:-1:
+%37Lg:-infinity:1:9:-inf:
+%*37Lg:-infinity:0:9:
+%37Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383:
+%*37Lg:-0xf.fffffffffffffffp+16380:0:27:
+%37Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383:
+%*37Lg:-0x7.fffffffffffffff8p16381:0:27:
+%37Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:-0x2.3456789abcdef01p+12345:0:27:
+%37Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:-0x2.3456789abcdef01p012345:0:27:
+%37Lg:-0x8p-16385:1:11:-0x1p-16382:
+%*37Lg:-0x8p-16385:0:11:
+%37Lg:-0x0p+0:1:7:-0x0:
+%*37Lg:-0x0p+0:0:7:
+%37Lg:-0x0p0:1:6:-0x0:
+%*37Lg:-0x0p0:0:6:
+%37Lg:-nan(09A_Zaz):1:13:-nan:
+%*37Lg:-nan(09A_Zaz):0:13:
+%37Lg:-nan():1:6:-nan:
+%*37Lg:-nan():0:6:
+%37Lg:nan():1:5:nan:
+%*37Lg:nan():0:5:
+%37Lg:nan(09A_Zaz):1:12:nan:
+%*37Lg:nan(09A_Zaz):0:12:
+%37Lg:0x0p0:1:5:0x0:
+%*37Lg:0x0p0:0:5:
+%37Lg:0x0p+0:1:6:0x0:
+%*37Lg:0x0p+0:0:6:
+%37Lg:0x8p-16385:1:10:0x1p-16382:
+%*37Lg:0x8p-16385:0:10:
+%37Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:0x2.3456789abcdef01p012345:0:26:
+%37Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:0x2.3456789abcdef01p+12345:0:26:
+%37Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383:
+%*37Lg:0x7.fffffffffffffff8p16381:0:26:
+%37Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383:
+%*37Lg:0xf.fffffffffffffffp+16380:0:26:
+%37Lg:infinity:1:8:inf:
+%*37Lg:infinity:0:8:
+%37Lg:+nan():1:6:nan:
+%*37Lg:+nan():0:6:
+%37Lg:+nan(09A_Zaz):1:13:nan:
+%*37Lg:+nan(09A_Zaz):0:13:
+%37Lg:+0x0p0:1:6:0x0:
+%*37Lg:+0x0p0:0:6:
+%37Lg:+0x0p+0:1:7:0x0:
+%*37Lg:+0x0p+0:0:7:
+%37Lg:+0x8p-16385:1:11:0x1p-16382:
+%*37Lg:+0x8p-16385:0:11:
+%37Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:+0x2.3456789abcdef01p012345:0:27:
+%37Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg:+0x2.3456789abcdef01p+12345:0:27:
+%37Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*37Lg:+0x7.fffffffffffffff8p16381:0:27:
+%37Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*37Lg:+0xf.fffffffffffffffp+16380:0:27:
+%37Lg:+infinity:1:9:inf:
+%*37Lg:+infinity:0:9:
+%5Lg: :0:-1:
+%*5Lg: :0:-1:
+%5Lg: -infinity:0:-1:
+%*5Lg: -infinity:0:-1:
+%5Lg: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3:
+%*5Lg: -0xf.fffffffffffffffp+16380:0:6:
+%5Lg: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2:
+%*5Lg: -0x7.fffffffffffffff8p16381:0:6:
+%5Lg: -0x2.3456789abcdef01p+12345:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef01p+12345:0:6:
+%5Lg: -0x2.3456789abcdef01p012345:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdef01p012345:0:6:
+%5Lg: -0x8p-16385:0:-1:
+%*5Lg: -0x8p-16385:0:-1:
+%5Lg: -0x0p+0:0:-1:
+%*5Lg: -0x0p+0:0:-1:
+%5Lg: -0x0p0:0:-1:
+%*5Lg: -0x0p0:0:-1:
+%5Lg: -nan(09A_Zaz):0:-1:
+%*5Lg: -nan(09A_Zaz):0:-1:
+%5Lg: -nan():0:-1:
+%*5Lg: -nan():0:-1:
+%5Lg: nan():1:6:nan:
+%*5Lg: nan():0:6:
+%5Lg: nan(09A_Zaz):0:-1:
+%*5Lg: nan(09A_Zaz):0:-1:
+%5Lg: 0x0p0:1:6:0x0:
+%*5Lg: 0x0p0:0:6:
+%5Lg: 0x0p+0:0:-1:
+%*5Lg: 0x0p+0:0:-1:
+%5Lg: 0x8p-16385:0:-1:
+%*5Lg: 0x8p-16385:0:-1:
+%5Lg: 0x2.3456789abcdef01p012345:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef01p012345:0:6:
+%5Lg: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdef01p+12345:0:6:
+%5Lg: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2:
+%*5Lg: 0x7.fffffffffffffff8p16381:0:6:
+%5Lg: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3:
+%*5Lg: 0xf.fffffffffffffffp+16380:0:6:
+%5Lg: infinity:0:-1:
+%*5Lg: infinity:0:-1:
+%5Lg: +nan():0:-1:
+%*5Lg: +nan():0:-1:
+%5Lg: +nan(09A_Zaz):0:-1:
+%*5Lg: +nan(09A_Zaz):0:-1:
+%5Lg: +0x0p0:0:-1:
+%*5Lg: +0x0p0:0:-1:
+%5Lg: +0x0p+0:0:-1:
+%*5Lg: +0x0p+0:0:-1:
+%5Lg: +0x8p-16385:0:-1:
+%*5Lg: +0x8p-16385:0:-1:
+%5Lg: +0x2.3456789abcdef01p012345:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef01p012345:0:6:
+%5Lg: +0x2.3456789abcdef01p+12345:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdef01p+12345:0:6:
+%5Lg: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2:
+%*5Lg: +0x7.fffffffffffffff8p16381:0:6:
+%5Lg: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3:
+%*5Lg: +0xf.fffffffffffffffp+16380:0:6:
+%5Lg: +infinity:0:-1:
+%*5Lg: +infinity:0:-1:
+%37Lg: :0:-1:
+%*37Lg: :0:-1:
+%37Lg: -infinity:1:10:-inf:
+%*37Lg: -infinity:0:10:
+%37Lg: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383:
+%*37Lg: -0xf.fffffffffffffffp+16380:0:28:
+%37Lg: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383:
+%*37Lg: -0x7.fffffffffffffff8p16381:0:28:
+%37Lg: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: -0x2.3456789abcdef01p+12345:0:28:
+%37Lg: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: -0x2.3456789abcdef01p012345:0:28:
+%37Lg: -0x8p-16385:1:12:-0x1p-16382:
+%*37Lg: -0x8p-16385:0:12:
+%37Lg: -0x0p+0:1:8:-0x0:
+%*37Lg: -0x0p+0:0:8:
+%37Lg: -0x0p0:1:7:-0x0:
+%*37Lg: -0x0p0:0:7:
+%37Lg: -nan(09A_Zaz):1:14:-nan:
+%*37Lg: -nan(09A_Zaz):0:14:
+%37Lg: -nan():1:7:-nan:
+%*37Lg: -nan():0:7:
+%37Lg: nan():1:6:nan:
+%*37Lg: nan():0:6:
+%37Lg: nan(09A_Zaz):1:13:nan:
+%*37Lg: nan(09A_Zaz):0:13:
+%37Lg: 0x0p0:1:6:0x0:
+%*37Lg: 0x0p0:0:6:
+%37Lg: 0x0p+0:1:7:0x0:
+%*37Lg: 0x0p+0:0:7:
+%37Lg: 0x8p-16385:1:11:0x1p-16382:
+%*37Lg: 0x8p-16385:0:11:
+%37Lg: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: 0x2.3456789abcdef01p012345:0:27:
+%37Lg: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: 0x2.3456789abcdef01p+12345:0:27:
+%37Lg: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383:
+%*37Lg: 0x7.fffffffffffffff8p16381:0:27:
+%37Lg: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383:
+%*37Lg: 0xf.fffffffffffffffp+16380:0:27:
+%37Lg: infinity:1:9:inf:
+%*37Lg: infinity:0:9:
+%37Lg: +nan():1:7:nan:
+%*37Lg: +nan():0:7:
+%37Lg: +nan(09A_Zaz):1:14:nan:
+%*37Lg: +nan(09A_Zaz):0:14:
+%37Lg: +0x0p0:1:7:0x0:
+%*37Lg: +0x0p0:0:7:
+%37Lg: +0x0p+0:1:8:0x0:
+%*37Lg: +0x0p+0:0:8:
+%37Lg: +0x8p-16385:1:12:0x1p-16382:
+%*37Lg: +0x8p-16385:0:12:
+%37Lg: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: +0x2.3456789abcdef01p012345:0:28:
+%37Lg: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37Lg: +0x2.3456789abcdef01p+12345:0:28:
+%37Lg: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383:
+%*37Lg: +0x7.fffffffffffffff8p16381:0:28:
+%37Lg: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383:
+%*37Lg: +0xf.fffffffffffffffp+16380:0:28:
+%37Lg: +infinity:1:10:inf:
+%*37Lg: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input
new file mode 100644
index 0000000..15f8ea1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input
@@ -0,0 +1,682 @@
+%LG::0:-1:
+%*LG::0:-1:
+%LG:-INFINITY:1:9:-inf:
+%*LG:-INFINITY:0:9:
+%LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383:
+%*LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383:
+%*LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*LG:-0X2.3456789ABCDEF01P+12345:0:27:
+%LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*LG:-0X2.3456789ABCDEF01P012345:0:27:
+%LG:-0X8P-16385:1:11:-0x1p-16382:
+%*LG:-0X8P-16385:0:11:
+%LG:-0X0P+0:1:7:-0x0:
+%*LG:-0X0P+0:0:7:
+%LG:-0X0P0:1:6:-0x0:
+%*LG:-0X0P0:0:6:
+%LG:-NAN(09A_Zaz):1:13:-nan:
+%*LG:-NAN(09A_Zaz):0:13:
+%LG:-NAN():1:6:-nan:
+%*LG:-NAN():0:6:
+%LG:NAN():1:5:nan:
+%*LG:NAN():0:5:
+%LG:NAN(09A_Zaz):1:12:nan:
+%*LG:NAN(09A_Zaz):0:12:
+%LG:0X0P0:1:5:0x0:
+%*LG:0X0P0:0:5:
+%LG:0X0P+0:1:6:0x0:
+%*LG:0X0P+0:0:6:
+%LG:0X8P-16385:1:10:0x1p-16382:
+%*LG:0X8P-16385:0:10:
+%LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*LG:0X2.3456789ABCDEF01P012345:0:26:
+%LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*LG:0X2.3456789ABCDEF01P+12345:0:26:
+%LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383:
+%*LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26:
+%LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383:
+%*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26:
+%LG:INFINITY:1:8:inf:
+%*LG:INFINITY:0:8:
+%LG:+NAN():1:6:nan:
+%*LG:+NAN():0:6:
+%LG:+NAN(09A_Zaz):1:13:nan:
+%*LG:+NAN(09A_Zaz):0:13:
+%LG:+0X0P0:1:6:0x0:
+%*LG:+0X0P0:0:6:
+%LG:+0X0P+0:1:7:0x0:
+%*LG:+0X0P+0:0:7:
+%LG:+0X8P-16385:1:11:0x1p-16382:
+%*LG:+0X8P-16385:0:11:
+%LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*LG:+0X2.3456789ABCDEF01P012345:0:27:
+%LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*LG:+0X2.3456789ABCDEF01P+12345:0:27:
+%LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%LG:+INFINITY:1:9:inf:
+%*LG:+INFINITY:0:9:
+%1LG::0:-1:
+%*1LG::0:-1:
+%1LG:-INFINITY:0:-1:
+%*1LG:-INFINITY:0:-1:
+%1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%1LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*1LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%1LG:-0X2.3456789ABCDEF01P012345:0:-1:
+%*1LG:-0X2.3456789ABCDEF01P012345:0:-1:
+%1LG:-0X8P-16385:0:-1:
+%*1LG:-0X8P-16385:0:-1:
+%1LG:-0X0P+0:0:-1:
+%*1LG:-0X0P+0:0:-1:
+%1LG:-0X0P0:0:-1:
+%*1LG:-0X0P0:0:-1:
+%1LG:-NAN(09A_Zaz):0:-1:
+%*1LG:-NAN(09A_Zaz):0:-1:
+%1LG:-NAN():0:-1:
+%*1LG:-NAN():0:-1:
+%1LG:NAN():0:-1:
+%*1LG:NAN():0:-1:
+%1LG:NAN(09A_Zaz):0:-1:
+%*1LG:NAN(09A_Zaz):0:-1:
+%1LG:0X0P0:1:1:0x0:
+%*1LG:0X0P0:0:1:
+%1LG:0X0P+0:1:1:0x0:
+%*1LG:0X0P+0:0:1:
+%1LG:0X8P-16385:1:1:0x0:
+%*1LG:0X8P-16385:0:1:
+%1LG:0X2.3456789ABCDEF01P012345:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF01P012345:0:1:
+%1LG:0X2.3456789ABCDEF01P+12345:1:1:0x0:
+%*1LG:0X2.3456789ABCDEF01P+12345:0:1:
+%1LG:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0:
+%*1LG:0X7.FFFFFFFFFFFFFFF8P16381:0:1:
+%1LG:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0:
+%*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1:
+%1LG:INFINITY:0:-1:
+%*1LG:INFINITY:0:-1:
+%1LG:+NAN():0:-1:
+%*1LG:+NAN():0:-1:
+%1LG:+NAN(09A_Zaz):0:-1:
+%*1LG:+NAN(09A_Zaz):0:-1:
+%1LG:+0X0P0:0:-1:
+%*1LG:+0X0P0:0:-1:
+%1LG:+0X0P+0:0:-1:
+%*1LG:+0X0P+0:0:-1:
+%1LG:+0X8P-16385:0:-1:
+%*1LG:+0X8P-16385:0:-1:
+%1LG:+0X2.3456789ABCDEF01P012345:0:-1:
+%*1LG:+0X2.3456789ABCDEF01P012345:0:-1:
+%1LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*1LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%1LG:+INFINITY:0:-1:
+%*1LG:+INFINITY:0:-1:
+%2LG::0:-1:
+%*2LG::0:-1:
+%2LG:-INFINITY:0:-1:
+%*2LG:-INFINITY:0:-1:
+%2LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0:
+%*2LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:2:
+%2LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0:
+%*2LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:2:
+%2LG:-0X2.3456789ABCDEF01P+12345:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF01P+12345:0:2:
+%2LG:-0X2.3456789ABCDEF01P012345:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDEF01P012345:0:2:
+%2LG:-0X8P-16385:1:2:-0x0:
+%*2LG:-0X8P-16385:0:2:
+%2LG:-0X0P+0:1:2:-0x0:
+%*2LG:-0X0P+0:0:2:
+%2LG:-0X0P0:1:2:-0x0:
+%*2LG:-0X0P0:0:2:
+%2LG:-NAN(09A_Zaz):0:-1:
+%*2LG:-NAN(09A_Zaz):0:-1:
+%2LG:-NAN():0:-1:
+%*2LG:-NAN():0:-1:
+%2LG:NAN():0:-1:
+%*2LG:NAN():0:-1:
+%2LG:NAN(09A_Zaz):0:-1:
+%*2LG:NAN(09A_Zaz):0:-1:
+%2LG:0X0P0:0:-1:
+%*2LG:0X0P0:0:-1:
+%2LG:0X0P+0:0:-1:
+%*2LG:0X0P+0:0:-1:
+%2LG:0X8P-16385:0:-1:
+%*2LG:0X8P-16385:0:-1:
+%2LG:0X2.3456789ABCDEF01P012345:0:-1:
+%*2LG:0X2.3456789ABCDEF01P012345:0:-1:
+%2LG:0X2.3456789ABCDEF01P+12345:0:-1:
+%*2LG:0X2.3456789ABCDEF01P+12345:0:-1:
+%2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%2LG:INFINITY:0:-1:
+%*2LG:INFINITY:0:-1:
+%2LG:+NAN():0:-1:
+%*2LG:+NAN():0:-1:
+%2LG:+NAN(09A_Zaz):0:-1:
+%*2LG:+NAN(09A_Zaz):0:-1:
+%2LG:+0X0P0:1:2:0x0:
+%*2LG:+0X0P0:0:2:
+%2LG:+0X0P+0:1:2:0x0:
+%*2LG:+0X0P+0:0:2:
+%2LG:+0X8P-16385:1:2:0x0:
+%*2LG:+0X8P-16385:0:2:
+%2LG:+0X2.3456789ABCDEF01P012345:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF01P012345:0:2:
+%2LG:+0X2.3456789ABCDEF01P+12345:1:2:0x0:
+%*2LG:+0X2.3456789ABCDEF01P+12345:0:2:
+%2LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0:
+%*2LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:2:
+%2LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0:
+%*2LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:2:
+%2LG:+INFINITY:0:-1:
+%*2LG:+INFINITY:0:-1:
+%3LG::0:-1:
+%*3LG::0:-1:
+%3LG:-INFINITY:0:-1:
+%*3LG:-INFINITY:0:-1:
+%3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%3LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*3LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%3LG:-0X2.3456789ABCDEF01P012345:0:-1:
+%*3LG:-0X2.3456789ABCDEF01P012345:0:-1:
+%3LG:-0X8P-16385:0:-1:
+%*3LG:-0X8P-16385:0:-1:
+%3LG:-0X0P+0:0:-1:
+%*3LG:-0X0P+0:0:-1:
+%3LG:-0X0P0:0:-1:
+%*3LG:-0X0P0:0:-1:
+%3LG:-NAN(09A_Zaz):0:-1:
+%*3LG:-NAN(09A_Zaz):0:-1:
+%3LG:-NAN():0:-1:
+%*3LG:-NAN():0:-1:
+%3LG:NAN():1:3:nan:
+%*3LG:NAN():0:3:
+%3LG:NAN(09A_Zaz):1:3:nan:
+%*3LG:NAN(09A_Zaz):0:3:
+%3LG:0X0P0:1:3:0x0:
+%*3LG:0X0P0:0:3:
+%3LG:0X0P+0:1:3:0x0:
+%*3LG:0X0P+0:0:3:
+%3LG:0X8P-16385:1:3:0x1p3:
+%*3LG:0X8P-16385:0:3:
+%3LG:0X2.3456789ABCDEF01P012345:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF01P012345:0:3:
+%3LG:0X2.3456789ABCDEF01P+12345:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDEF01P+12345:0:3:
+%3LG:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2:
+%*3LG:0X7.FFFFFFFFFFFFFFF8P16381:0:3:
+%3LG:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3:
+%*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3:
+%3LG:INFINITY:1:3:inf:
+%*3LG:INFINITY:0:3:
+%3LG:+NAN():0:-1:
+%*3LG:+NAN():0:-1:
+%3LG:+NAN(09A_Zaz):0:-1:
+%*3LG:+NAN(09A_Zaz):0:-1:
+%3LG:+0X0P0:0:-1:
+%*3LG:+0X0P0:0:-1:
+%3LG:+0X0P+0:0:-1:
+%*3LG:+0X0P+0:0:-1:
+%3LG:+0X8P-16385:0:-1:
+%*3LG:+0X8P-16385:0:-1:
+%3LG:+0X2.3456789ABCDEF01P012345:0:-1:
+%*3LG:+0X2.3456789ABCDEF01P012345:0:-1:
+%3LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*3LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%3LG:+INFINITY:0:-1:
+%*3LG:+INFINITY:0:-1:
+%4LG::0:-1:
+%*4LG::0:-1:
+%4LG:-INFINITY:1:4:-inf:
+%*4LG:-INFINITY:0:4:
+%4LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3:
+%*4LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2:
+%*4LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LG:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF01P+12345:0:4:
+%4LG:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDEF01P012345:0:4:
+%4LG:-0X8P-16385:1:4:-0x1p3:
+%*4LG:-0X8P-16385:0:4:
+%4LG:-0X0P+0:1:4:-0x0:
+%*4LG:-0X0P+0:0:4:
+%4LG:-0X0P0:1:4:-0x0:
+%*4LG:-0X0P0:0:4:
+%4LG:-NAN(09A_Zaz):1:4:-nan:
+%*4LG:-NAN(09A_Zaz):0:4:
+%4LG:-NAN():1:4:-nan:
+%*4LG:-NAN():0:4:
+%4LG:NAN():0:-1:
+%*4LG:NAN():0:-1:
+%4LG:NAN(09A_Zaz):0:-1:
+%*4LG:NAN(09A_Zaz):0:-1:
+%4LG:0X0P0:0:-1:
+%*4LG:0X0P0:0:-1:
+%4LG:0X0P+0:0:-1:
+%*4LG:0X0P+0:0:-1:
+%4LG:0X8P-16385:0:-1:
+%*4LG:0X8P-16385:0:-1:
+%4LG:0X2.3456789ABCDEF01P012345:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF01P012345:0:4:
+%4LG:0X2.3456789ABCDEF01P+12345:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDEF01P+12345:0:4:
+%4LG:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2:
+%*4LG:0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LG:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3:
+%*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LG:INFINITY:0:-1:
+%*4LG:INFINITY:0:-1:
+%4LG:+NAN():1:4:nan:
+%*4LG:+NAN():0:4:
+%4LG:+NAN(09A_Zaz):1:4:nan:
+%*4LG:+NAN(09A_Zaz):0:4:
+%4LG:+0X0P0:1:4:0x0:
+%*4LG:+0X0P0:0:4:
+%4LG:+0X0P+0:1:4:0x0:
+%*4LG:+0X0P+0:0:4:
+%4LG:+0X8P-16385:1:4:0x1p3:
+%*4LG:+0X8P-16385:0:4:
+%4LG:+0X2.3456789ABCDEF01P012345:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF01P012345:0:4:
+%4LG:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDEF01P+12345:0:4:
+%4LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2:
+%*4LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:4:
+%4LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3:
+%*4LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:4:
+%4LG:+INFINITY:1:4:inf:
+%*4LG:+INFINITY:0:4:
+%5LG::0:-1:
+%*5LG::0:-1:
+%5LG:-INFINITY:0:-1:
+%*5LG:-INFINITY:0:-1:
+%5LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3:
+%*5LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2:
+%*5LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LG:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF01P+12345:0:5:
+%5LG:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDEF01P012345:0:5:
+%5LG:-0X8P-16385:0:-1:
+%*5LG:-0X8P-16385:0:-1:
+%5LG:-0X0P+0:0:-1:
+%*5LG:-0X0P+0:0:-1:
+%5LG:-0X0P0:0:-1:
+%*5LG:-0X0P0:0:-1:
+%5LG:-NAN(09A_Zaz):0:-1:
+%*5LG:-NAN(09A_Zaz):0:-1:
+%5LG:-NAN():0:-1:
+%*5LG:-NAN():0:-1:
+%5LG:NAN():1:5:nan:
+%*5LG:NAN():0:5:
+%5LG:NAN(09A_Zaz):0:-1:
+%*5LG:NAN(09A_Zaz):0:-1:
+%5LG:0X0P0:1:5:0x0:
+%*5LG:0X0P0:0:5:
+%5LG:0X0P+0:0:-1:
+%*5LG:0X0P+0:0:-1:
+%5LG:0X8P-16385:0:-1:
+%*5LG:0X8P-16385:0:-1:
+%5LG:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF01P012345:0:5:
+%5LG:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDEF01P+12345:0:5:
+%5LG:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2:
+%*5LG:0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LG:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3:
+%*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LG:INFINITY:0:-1:
+%*5LG:INFINITY:0:-1:
+%5LG:+NAN():0:-1:
+%*5LG:+NAN():0:-1:
+%5LG:+NAN(09A_Zaz):0:-1:
+%*5LG:+NAN(09A_Zaz):0:-1:
+%5LG:+0X0P0:0:-1:
+%*5LG:+0X0P0:0:-1:
+%5LG:+0X0P+0:0:-1:
+%*5LG:+0X0P+0:0:-1:
+%5LG:+0X8P-16385:0:-1:
+%*5LG:+0X8P-16385:0:-1:
+%5LG:+0X2.3456789ABCDEF01P012345:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF01P012345:0:5:
+%5LG:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDEF01P+12345:0:5:
+%5LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2:
+%*5LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:5:
+%5LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3:
+%*5LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:5:
+%5LG:+INFINITY:0:-1:
+%*5LG:+INFINITY:0:-1:
+%6LG::0:-1:
+%*6LG::0:-1:
+%6LG:-INFINITY:0:-1:
+%*6LG:-INFINITY:0:-1:
+%6LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3:
+%*6LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2:
+%*6LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LG:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF01P+12345:0:6:
+%6LG:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDEF01P012345:0:6:
+%6LG:-0X8P-16385:0:-1:
+%*6LG:-0X8P-16385:0:-1:
+%6LG:-0X0P+0:0:-1:
+%*6LG:-0X0P+0:0:-1:
+%6LG:-0X0P0:1:6:-0x0:
+%*6LG:-0X0P0:0:6:
+%6LG:-NAN(09A_Zaz):0:-1:
+%*6LG:-NAN(09A_Zaz):0:-1:
+%6LG:-NAN():1:6:-nan:
+%*6LG:-NAN():0:6:
+%6LG:NAN():1:5:nan:
+%*6LG:NAN():0:5:
+%6LG:NAN(09A_Zaz):0:-1:
+%*6LG:NAN(09A_Zaz):0:-1:
+%6LG:0X0P0:1:5:0x0:
+%*6LG:0X0P0:0:5:
+%6LG:0X0P+0:1:6:0x0:
+%*6LG:0X0P+0:0:6:
+%6LG:0X8P-16385:1:6:0x1p2:
+%*6LG:0X8P-16385:0:6:
+%6LG:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF01P012345:0:6:
+%6LG:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDEF01P+12345:0:6:
+%6LG:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2:
+%*6LG:0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LG:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3:
+%*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LG:INFINITY:0:-1:
+%*6LG:INFINITY:0:-1:
+%6LG:+NAN():1:6:nan:
+%*6LG:+NAN():0:6:
+%6LG:+NAN(09A_Zaz):0:-1:
+%*6LG:+NAN(09A_Zaz):0:-1:
+%6LG:+0X0P0:1:6:0x0:
+%*6LG:+0X0P0:0:6:
+%6LG:+0X0P+0:0:-1:
+%*6LG:+0X0P+0:0:-1:
+%6LG:+0X8P-16385:0:-1:
+%*6LG:+0X8P-16385:0:-1:
+%6LG:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF01P012345:0:6:
+%6LG:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDEF01P+12345:0:6:
+%6LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2:
+%*6LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%6LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3:
+%*6LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%6LG:+INFINITY:0:-1:
+%*6LG:+INFINITY:0:-1:
+%22LG::0:-1:
+%*22LG::0:-1:
+%22LG:-INFINITY:1:9:-inf:
+%*22LG:-INFINITY:0:9:
+%22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%22LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%*22LG:-0X2.3456789ABCDEF01P+12345:0:-1:
+%22LG:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1:
+%*22LG:-0X2.3456789ABCDEF01P012345:0:22:
+%22LG:-0X8P-16385:1:11:-0x1p-16382:
+%*22LG:-0X8P-16385:0:11:
+%22LG:-0X0P+0:1:7:-0x0:
+%*22LG:-0X0P+0:0:7:
+%22LG:-0X0P0:1:6:-0x0:
+%*22LG:-0X0P0:0:6:
+%22LG:-NAN(09A_Zaz):1:13:-nan:
+%*22LG:-NAN(09A_Zaz):0:13:
+%22LG:-NAN():1:6:-nan:
+%*22LG:-NAN():0:6:
+%22LG:NAN():1:5:nan:
+%*22LG:NAN():0:5:
+%22LG:NAN(09A_Zaz):1:12:nan:
+%*22LG:NAN(09A_Zaz):0:12:
+%22LG:0X0P0:1:5:0x0:
+%*22LG:0X0P0:0:5:
+%22LG:0X0P+0:1:6:0x0:
+%*22LG:0X0P+0:0:6:
+%22LG:0X8P-16385:1:10:0x1p-16382:
+%*22LG:0X8P-16385:0:10:
+%22LG:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22LG:0X2.3456789ABCDEF01P012345:0:22:
+%22LG:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2:
+%*22LG:0X2.3456789ABCDEF01P+12345:0:22:
+%22LG:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3:
+%*22LG:0X7.FFFFFFFFFFFFFFF8P16381:0:22:
+%22LG:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4:
+%*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22:
+%22LG:INFINITY:1:8:inf:
+%*22LG:INFINITY:0:8:
+%22LG:+NAN():1:6:nan:
+%*22LG:+NAN():0:6:
+%22LG:+NAN(09A_Zaz):1:13:nan:
+%*22LG:+NAN(09A_Zaz):0:13:
+%22LG:+0X0P0:1:6:0x0:
+%*22LG:+0X0P0:0:6:
+%22LG:+0X0P+0:1:7:0x0:
+%*22LG:+0X0P+0:0:7:
+%22LG:+0X8P-16385:1:11:0x1p-16382:
+%*22LG:+0X8P-16385:0:11:
+%22LG:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1:
+%*22LG:+0X2.3456789ABCDEF01P012345:0:22:
+%22LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%*22LG:+0X2.3456789ABCDEF01P+12345:0:-1:
+%22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%*22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1:
+%22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%*22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1:
+%22LG:+INFINITY:1:9:inf:
+%*22LG:+INFINITY:0:9:
+%37LG::0:-1:
+%*37LG::0:-1:
+%37LG:-INFINITY:1:9:-inf:
+%*37LG:-INFINITY:0:9:
+%37LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383:
+%*37LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383:
+%*37LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:-0X2.3456789ABCDEF01P+12345:0:27:
+%37LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:-0X2.3456789ABCDEF01P012345:0:27:
+%37LG:-0X8P-16385:1:11:-0x1p-16382:
+%*37LG:-0X8P-16385:0:11:
+%37LG:-0X0P+0:1:7:-0x0:
+%*37LG:-0X0P+0:0:7:
+%37LG:-0X0P0:1:6:-0x0:
+%*37LG:-0X0P0:0:6:
+%37LG:-NAN(09A_Zaz):1:13:-nan:
+%*37LG:-NAN(09A_Zaz):0:13:
+%37LG:-NAN():1:6:-nan:
+%*37LG:-NAN():0:6:
+%37LG:NAN():1:5:nan:
+%*37LG:NAN():0:5:
+%37LG:NAN(09A_Zaz):1:12:nan:
+%*37LG:NAN(09A_Zaz):0:12:
+%37LG:0X0P0:1:5:0x0:
+%*37LG:0X0P0:0:5:
+%37LG:0X0P+0:1:6:0x0:
+%*37LG:0X0P+0:0:6:
+%37LG:0X8P-16385:1:10:0x1p-16382:
+%*37LG:0X8P-16385:0:10:
+%37LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:0X2.3456789ABCDEF01P012345:0:26:
+%37LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:0X2.3456789ABCDEF01P+12345:0:26:
+%37LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383:
+%*37LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26:
+%37LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383:
+%*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26:
+%37LG:INFINITY:1:8:inf:
+%*37LG:INFINITY:0:8:
+%37LG:+NAN():1:6:nan:
+%*37LG:+NAN():0:6:
+%37LG:+NAN(09A_Zaz):1:13:nan:
+%*37LG:+NAN(09A_Zaz):0:13:
+%37LG:+0X0P0:1:6:0x0:
+%*37LG:+0X0P0:0:6:
+%37LG:+0X0P+0:1:7:0x0:
+%*37LG:+0X0P+0:0:7:
+%37LG:+0X8P-16385:1:11:0x1p-16382:
+%*37LG:+0X8P-16385:0:11:
+%37LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:+0X2.3456789ABCDEF01P012345:0:27:
+%37LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG:+0X2.3456789ABCDEF01P+12345:0:27:
+%37LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*37LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*37LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LG:+INFINITY:1:9:inf:
+%*37LG:+INFINITY:0:9:
+%5LG: :0:-1:
+%*5LG: :0:-1:
+%5LG: -INFINITY:0:-1:
+%*5LG: -INFINITY:0:-1:
+%5LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3:
+%*5LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2:
+%*5LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LG: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF01P+12345:0:6:
+%5LG: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDEF01P012345:0:6:
+%5LG: -0X8P-16385:0:-1:
+%*5LG: -0X8P-16385:0:-1:
+%5LG: -0X0P+0:0:-1:
+%*5LG: -0X0P+0:0:-1:
+%5LG: -0X0P0:0:-1:
+%*5LG: -0X0P0:0:-1:
+%5LG: -NAN(09A_Zaz):0:-1:
+%*5LG: -NAN(09A_Zaz):0:-1:
+%5LG: -NAN():0:-1:
+%*5LG: -NAN():0:-1:
+%5LG: NAN():1:6:nan:
+%*5LG: NAN():0:6:
+%5LG: NAN(09A_Zaz):0:-1:
+%*5LG: NAN(09A_Zaz):0:-1:
+%5LG: 0X0P0:1:6:0x0:
+%*5LG: 0X0P0:0:6:
+%5LG: 0X0P+0:0:-1:
+%*5LG: 0X0P+0:0:-1:
+%5LG: 0X8P-16385:0:-1:
+%*5LG: 0X8P-16385:0:-1:
+%5LG: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF01P012345:0:6:
+%5LG: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDEF01P+12345:0:6:
+%5LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2:
+%*5LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3:
+%*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LG: INFINITY:0:-1:
+%*5LG: INFINITY:0:-1:
+%5LG: +NAN():0:-1:
+%*5LG: +NAN():0:-1:
+%5LG: +NAN(09A_Zaz):0:-1:
+%*5LG: +NAN(09A_Zaz):0:-1:
+%5LG: +0X0P0:0:-1:
+%*5LG: +0X0P0:0:-1:
+%5LG: +0X0P+0:0:-1:
+%*5LG: +0X0P+0:0:-1:
+%5LG: +0X8P-16385:0:-1:
+%*5LG: +0X8P-16385:0:-1:
+%5LG: +0X2.3456789ABCDEF01P012345:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF01P012345:0:6:
+%5LG: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDEF01P+12345:0:6:
+%5LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2:
+%*5LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:6:
+%5LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3:
+%*5LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:6:
+%5LG: +INFINITY:0:-1:
+%*5LG: +INFINITY:0:-1:
+%37LG: :0:-1:
+%*37LG: :0:-1:
+%37LG: -INFINITY:1:10:-inf:
+%*37LG: -INFINITY:0:10:
+%37LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383:
+%*37LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:28:
+%37LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383:
+%*37LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:28:
+%37LG: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: -0X2.3456789ABCDEF01P+12345:0:28:
+%37LG: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: -0X2.3456789ABCDEF01P012345:0:28:
+%37LG: -0X8P-16385:1:12:-0x1p-16382:
+%*37LG: -0X8P-16385:0:12:
+%37LG: -0X0P+0:1:8:-0x0:
+%*37LG: -0X0P+0:0:8:
+%37LG: -0X0P0:1:7:-0x0:
+%*37LG: -0X0P0:0:7:
+%37LG: -NAN(09A_Zaz):1:14:-nan:
+%*37LG: -NAN(09A_Zaz):0:14:
+%37LG: -NAN():1:7:-nan:
+%*37LG: -NAN():0:7:
+%37LG: NAN():1:6:nan:
+%*37LG: NAN():0:6:
+%37LG: NAN(09A_Zaz):1:13:nan:
+%*37LG: NAN(09A_Zaz):0:13:
+%37LG: 0X0P0:1:6:0x0:
+%*37LG: 0X0P0:0:6:
+%37LG: 0X0P+0:1:7:0x0:
+%*37LG: 0X0P+0:0:7:
+%37LG: 0X8P-16385:1:11:0x1p-16382:
+%*37LG: 0X8P-16385:0:11:
+%37LG: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: 0X2.3456789ABCDEF01P012345:0:27:
+%37LG: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: 0X2.3456789ABCDEF01P+12345:0:27:
+%37LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383:
+%*37LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:27:
+%37LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383:
+%*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27:
+%37LG: INFINITY:1:9:inf:
+%*37LG: INFINITY:0:9:
+%37LG: +NAN():1:7:nan:
+%*37LG: +NAN():0:7:
+%37LG: +NAN(09A_Zaz):1:14:nan:
+%*37LG: +NAN(09A_Zaz):0:14:
+%37LG: +0X0P0:1:7:0x0:
+%*37LG: +0X0P0:0:7:
+%37LG: +0X0P+0:1:8:0x0:
+%*37LG: +0X0P+0:0:8:
+%37LG: +0X8P-16385:1:12:0x1p-16382:
+%*37LG: +0X8P-16385:0:12:
+%37LG: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: +0X2.3456789ABCDEF01P012345:0:28:
+%37LG: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346:
+%*37LG: +0X2.3456789ABCDEF01P+12345:0:28:
+%37LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383:
+%*37LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:28:
+%37LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383:
+%*37LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:28:
+%37LG: +INFINITY:1:10:inf:
+%*37LG: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c
new file mode 100644
index 0000000..7e8c1d6
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c
@@ -0,0 +1,33 @@
+/* Test skeleton for formatted scanf input for ldbl-96 conversions.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <math_ldbl.h>
+#include <stdint.h>
+#include <string.h>
+
+#undef compare_real
+#define compare_real(x, y) \
+({ \
+ ieee_long_double_shape_type ux = { .value = x }, uy = { .value = y }; \
+ (ux.parts.lsw == uy.parts.lsw && ux.parts.msw == uy.parts.msw \
+ && ux.parts.sign_exponent == uy.parts.sign_exponent); \
+})
+
+typedef long double type_t;
+
+#include "tst-scanf-format-skeleton.c"
diff --git a/sysdeps/ieee754/ldbl-96/x2y2m1.c b/sysdeps/ieee754/ldbl-96/x2y2m1.c
index 51c879a..2343fa9 100644
--- a/sysdeps/ieee754/ldbl-96/x2y2m1.c
+++ b/sysdeps/ieee754/ldbl-96/x2y2m1.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-96/x2y2m1l.c b/sysdeps/ieee754/ldbl-96/x2y2m1l.c
index 9cbdabd..11f97d2 100644
--- a/sysdeps/ieee754/ldbl-96/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-96/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index 14fd715..ef7da1f 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -14,13 +14,17 @@ extra-libs += libnldbl
libnldbl-calls = \
acos \
acosh \
+ acospi \
asin \
asinh \
+ asinpi \
asprintf \
asprintf_chk \
atan \
atan2 \
+ atan2pi \
atanh \
+ atanpi \
cabs \
cacos \
cacosh \
@@ -38,10 +42,12 @@ libnldbl-calls = \
cimag \
clog \
clog10 \
+ compoundn \
conj \
copysign \
cos \
cosh \
+ cospi \
cpow \
cproj \
creal \
@@ -161,6 +167,8 @@ libnldbl-calls = \
obstack_vprintf \
obstack_vprintf_chk \
pow \
+ pown \
+ powr \
printf \
printf_chk \
printf_fp \
@@ -173,8 +181,10 @@ libnldbl-calls = \
remainder \
remquo \
rint \
+ rootn \
round \
roundeven \
+ rsqrt \
scalb \
scalbln \
scalbn \
@@ -186,6 +196,7 @@ libnldbl-calls = \
sin \
sincos \
sinh \
+ sinpi \
snprintf \
snprintf_chk \
sprintf \
@@ -205,6 +216,7 @@ libnldbl-calls = \
syslog_chk \
tan \
tanh \
+ tanpi \
tgamma \
totalorder \
totalordermag \
@@ -254,11 +266,15 @@ extra-objs += $(addsuffix .oS, $(libnldbl-routines))
CFLAGS-nldbl-acos.c = -fno-builtin-acosl
CFLAGS-nldbl-acosh.c = -fno-builtin-acoshl
+CFLAGS-nldbl-acospi.c = -fno-builtin-acospil
CFLAGS-nldbl-asin.c = -fno-builtin-asinl
CFLAGS-nldbl-asinh.c = -fno-builtin-asinhl
+CFLAGS-nldbl-asinpi.c = -fno-builtin-asinpil
CFLAGS-nldbl-atan.c = -fno-builtin-atanl
CFLAGS-nldbl-atan2.c = -fno-builtin-atan2l
+CFLAGS-nldbl-atan2pi.c = -fno-builtin-atan2pil
CFLAGS-nldbl-atanh.c = -fno-builtin-atanhl
+CFLAGS-nldbl-atanpi.c = -fno-builtin-atanpil
CFLAGS-nldbl-cabs.c = -fno-builtin-cabsl
CFLAGS-nldbl-cacos.c = -fno-builtin-cacosl
CFLAGS-nldbl-cacosh.c = -fno-builtin-cacoshl
@@ -276,10 +292,12 @@ CFLAGS-nldbl-cexp.c = -fno-builtin-cexpl
CFLAGS-nldbl-cimag.c = -fno-builtin-cimagl
CFLAGS-nldbl-clog.c = -fno-builtin-clogl
CFLAGS-nldbl-clog10.c = -fno-builtin-clog10l
+CFLAGS-nldbl-compoundn.c = -fno-builtin-compoundnl
CFLAGS-nldbl-conj.c = -fno-builtin-conjl
CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl
CFLAGS-nldbl-cos.c = -fno-builtin-cosl
CFLAGS-nldbl-cosh.c = -fno-builtin-coshl
+CFLAGS-nldbl-cospi.c = -fno-builtin-cospil
CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl
CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl
CFLAGS-nldbl-creal.c = -fno-builtin-creall
@@ -362,11 +380,15 @@ CFLAGS-nldbl-nexttoward.c = -fno-builtin-nexttoward -fno-builtin-nexttowardl
CFLAGS-nldbl-nexttowardf.c = -fno-builtin-nexttowardf
CFLAGS-nldbl-nextup.c = -fno-builtin-nextupl
CFLAGS-nldbl-pow.c = -fno-builtin-powl
+CFLAGS-nldbl-pown.c = -fno-builtin-pownl
+CFLAGS-nldbl-powr.c = -fno-builtin-powrl
CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl -fno-builtin-dreml
CFLAGS-nldbl-remquo.c = -fno-builtin-remquol
CFLAGS-nldbl-rint.c = -fno-builtin-rintl
+CFLAGS-nldbl-rootn.c = -fno-builtin-rootnl
CFLAGS-nldbl-round.c = -fno-builtin-roundl
CFLAGS-nldbl-roundeven.c = -fno-builtin-roundevenl
+CFLAGS-nldbl-rsqrt.c = -fno-builtin-rsqrtl
CFLAGS-nldbl-scalb.c = -fno-builtin-scalbl
CFLAGS-nldbl-scalbln.c = -fno-builtin-scalblnl
CFLAGS-nldbl-scalbn.c = -fno-builtin-scalbnl
@@ -376,9 +398,11 @@ CFLAGS-nldbl-significand.c = -fno-builtin-significandl
CFLAGS-nldbl-sin.c = -fno-builtin-sinl
CFLAGS-nldbl-sincos.c = -fno-builtin-sincosl
CFLAGS-nldbl-sinh.c = -fno-builtin-sinhl
+CFLAGS-nldbl-sinpi.c = -fno-builtin-sinpil
CFLAGS-nldbl-sqrt.c = -fno-builtin-sqrtl
CFLAGS-nldbl-tan.c = -fno-builtin-tanl
CFLAGS-nldbl-tanh.c = -fno-builtin-tanhl
+CFLAGS-nldbl-tanpi.c = -fno-builtin-tanpil
CFLAGS-nldbl-tgamma.c = -fno-builtin-tgammal
CFLAGS-nldbl-totalorder.c = -fno-builtin-totalorderl
CFLAGS-nldbl-totalordermag.c = -fno-builtin-totalordermagl
@@ -433,6 +457,59 @@ CFLAGS-tst-nldbl-errorfptr.c += -mlong-double-64
endif
ifeq ($(subdir), stdio-common)
+# We already have the long double conversion defined with our common rules
+# for the IEEE binary128 format, so define these special rules to build
+# and run extra executables for the IEEE binary64 format, reusing the same
+# sources.
+define tst-scanf-format-64-tests
+test-srcs += \
+ tst-scanf-format-$(1)-ldouble-64 \
+ # test-srcs
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \
+ tst-scanf-format-$(1)-ldouble.c $$(before-compile)
+ $$(compile-command.c)
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm)
+endef
+$(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-64-tests,$(p))))
+
+# Use the IEEE binary64 format for long double scanf format tests.
+$(foreach suf,$(all-object-suffixes), \
+ $(foreach p,$(xscanf-funcs), \
+ $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \
+ sysdep-CFLAGS += -mlong-double-64
+
+ifeq ($(run-built-tests),yes)
+define tst-scanf-format-64-rule
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \
+ # tests-special
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \
+ ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64
+ $$(make-tst-scanf-format-out) > $$@ < $$<; \
+ $$(evaluate-test)
+
+ifeq (yes,$(build-shared))
+ifneq ($(PERL),no)
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
+ # tests-special
+
+generated += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \
+ # generated
+endif
+endif
+endef
+$(foreach f,$(fmts-xscanf-real), \
+ $(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-64-rule,$(p),$(f)))))
+endif # $(run-built-tests) == yes
+
tests += \
tst-nldbl-scanf-binary-c11 \
tst-nldbl-scanf-binary-c23 \
@@ -453,7 +530,7 @@ CFLAGS-tst-nldbl-scanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
CFLAGS-tst-nldbl-scanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
-DOBJPFX=\"$(objpfx)\"
-endif
+endif # $(subdir) == stdio-common
ifeq ($(subdir), wcsmbs)
tests += \
diff --git a/sysdeps/ieee754/ldbl-opt/bits/long-double.h b/sysdeps/ieee754/ldbl-opt/bits/long-double.h
index 9b94f29..339a900 100644
--- a/sysdeps/ieee754/ldbl-opt/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-opt/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-opt version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
index dcbc1c0..04993a5 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
@@ -1,5 +1,5 @@
/* Define aliases for libm double functions. ldbl-opt version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
index 1886b07..e16b4db 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
@@ -1,5 +1,5 @@
/* Define aliases for libm long double functions. ldbl-opt version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c b/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c
new file mode 100644
index 0000000..666037a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+acospil (double x)
+{
+ return acospi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-asinpi.c b/sysdeps/ieee754/ldbl-opt/nldbl-asinpi.c
new file mode 100644
index 0000000..65033b4
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-asinpi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+asinpil (double x)
+{
+ return asinpi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-atan2pi.c b/sysdeps/ieee754/ldbl-opt/nldbl-atan2pi.c
new file mode 100644
index 0000000..d1a7ca0
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-atan2pi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atan2pil (double x, double y)
+{
+ return atan2pi (x, y);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c b/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c
new file mode 100644
index 0000000..259397d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atanpil (double x)
+{
+ return atanpi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c b/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
index 1535bc2..b2ba716 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for canonicalize.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
index f0bfb1e..f99fe7e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -1,5 +1,5 @@
/* *printf* family compatibility routines for IEEE double as long double
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
index 08bddf0..deddc81 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -1,5 +1,5 @@
/* Prototypes for compatibility double == long double entry points.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compoundn.c b/sysdeps/ieee754/ldbl-opt/nldbl-compoundn.c
new file mode 100644
index 0000000..43da519
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compoundn.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+compoundnl (double x, long long int y)
+{
+ return compoundn (x, y);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-cospi.c b/sysdeps/ieee754/ldbl-opt/nldbl-cospi.c
new file mode 100644
index 0000000..11d38ab
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-cospi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+cospil (double x)
+{
+ return cospi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c b/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
index b84fff5..dbc62ac 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dadd.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c b/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
index 05055c6..357cdc2 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ddiv.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dfma.c b/sysdeps/ieee754/ldbl-opt/nldbl-dfma.c
index c1740a2..dc8c9f1 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dfma.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dfma.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dfma.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c b/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
index eb415fb..c0b8ae8 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dmul.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c b/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c
index 6aaa314..2551442 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dsqrt.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c b/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
index b1e8f44..c872e5e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dsub.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c b/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
index f046d52..dd3287e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fadd.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c b/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
index 5f27cec..f45cbf9 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fdiv.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ffma.c b/sysdeps/ieee754/ldbl-opt/nldbl-ffma.c
index c87a683..52f4d70 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ffma.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ffma.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ffma.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c
index 1f29176..173b94a 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaximum.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c
index c1d1434..0852a59 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaximum_mag.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c
index e9878ad..9aa5022 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaximum_mag_num.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c
index 58a8bb0..dabc340 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaximum_num.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
index c9e1a8d..b8e1077 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaxmag.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c
index 359bae4..c981acd 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminimum.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c
index 1340b03..d625b59 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminimum_mag.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c
index 8405c08..bd013a8 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminimum_mag_num.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c
index ca0b4a8..09da501 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminimum_num.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
index b2bda80..13cb1c5 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminmag.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
index 2f74671..617f591 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmul.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c b/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
index 427189a..4b5143d 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fromfp.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c b/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
index c17a543..a3d9599 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fromfpx.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c b/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c
index ba1c787..b31ab59 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fsqrt.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c b/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
index 4ee203e..2256d1d 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fsub.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c b/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
index 0366630..5e2a9a8 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for getpayload.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c b/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
index 774ee49..1e7bc03 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for llogb.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c b/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
index ec7d35a..3542e94 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for nextdown.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c b/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
index b5a4bc7..9d01468 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for nextup.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-pown.c b/sysdeps/ieee754/ldbl-opt/nldbl-pown.c
new file mode 100644
index 0000000..7f7e02b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-pown.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+pownl (double x, long long int y)
+{
+ return pown (x, y);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-powr.c b/sysdeps/ieee754/ldbl-opt/nldbl-powr.c
new file mode 100644
index 0000000..f828c83
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-powr.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+powrl (double x, double y)
+{
+ return powr (x, y);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-rootn.c b/sysdeps/ieee754/ldbl-opt/nldbl-rootn.c
new file mode 100644
index 0000000..fb0d860
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-rootn.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+rootnl (double x, long long int y)
+{
+ return rootn (x, y);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c b/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
index 0bac6a5..280227b 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for roundeven.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-rsqrt.c b/sysdeps/ieee754/ldbl-opt/nldbl-rsqrt.c
new file mode 100644
index 0000000..cb1d91e
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-rsqrt.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+rsqrtl (double x)
+{
+ return rsqrt (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c b/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
index 93d97eb..22ffff4 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for setpayload.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c b/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
index 2e24002..cbc610e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for setpayloadsig.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-sinpi.c b/sysdeps/ieee754/ldbl-opt/nldbl-sinpi.c
new file mode 100644
index 0000000..db295e9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-sinpi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+sinpil (double x)
+{
+ return sinpi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-tanpi.c b/sysdeps/ieee754/ldbl-opt/nldbl-tanpi.c
new file mode 100644
index 0000000..2bd6133
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-tanpi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+tanpil (double x)
+{
+ return tanpi (x);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
index 0448772..15d188b 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for totalorder.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
index 742d822..a45abbb 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for totalordermag.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
index 97c43b8..10018ad 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ufromfp.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
index 2b3d99c..3016659 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ufromfpx.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/s_clog10.c b/sysdeps/ieee754/ldbl-opt/s_clog10.c
index c196247..f84dfe6 100644
--- a/sysdeps/ieee754/ldbl-opt/s_clog10.c
+++ b/sysdeps/ieee754/ldbl-opt/s_clog10.c
@@ -1,5 +1,5 @@
/* Define __clog10l compat symbol for clog10 for ldbl-opt.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/s_clog10l.c b/sysdeps/ieee754/ldbl-opt/s_clog10l.c
index f6714df..845076c 100644
--- a/sysdeps/ieee754/ldbl-opt/s_clog10l.c
+++ b/sysdeps/ieee754/ldbl-opt/s_clog10l.c
@@ -1,6 +1,6 @@
/* clog10l alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
index 6dae618..44fb6f0 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexp.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
@@ -1,6 +1,6 @@
/* ldexp alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
index 932cc43..8c6f770 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
@@ -1,6 +1,6 @@
/* ldexpl alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c b/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c
index 4c4b5c9..c6ea031 100644
--- a/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c
+++ b/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c
@@ -1,5 +1,5 @@
/* Test libnldbl_nonshared.a wrappers call visible functions (bug 23735).
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c b/sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c
index 4b97eee..e679ced 100644
--- a/sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c
+++ b/sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c
@@ -1,5 +1,5 @@
/* Test if __LDBL_COMPAT redirections conflict with other types.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input
new file mode 100644
index 0000000..59f3dff
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input
@@ -0,0 +1,682 @@
+%La::0:-1:
+%*La::0:-1:
+%La:-infinity:1:9:-inf:
+%*La:-infinity:0:9:
+%La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*La:-0xf.ffffffffffff8p+1020:0:24:
+%La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*La:-0x7.ffffffffffffcp1021:0:23:
+%La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*La:-0x2.3456789abcdfep+123:0:23:
+%La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*La:-0x2.3456789abcdfep0123:0:23:
+%La:-0x8p-1025:1:10:-0x1p-1022:
+%*La:-0x8p-1025:0:10:
+%La:-0x0p+0:1:7:-0x0:
+%*La:-0x0p+0:0:7:
+%La:-0x0p0:1:6:-0x0:
+%*La:-0x0p0:0:6:
+%La:-nan(09A_Zaz):1:13:-nan:
+%*La:-nan(09A_Zaz):0:13:
+%La:-nan():1:6:-nan:
+%*La:-nan():0:6:
+%La:nan():1:5:nan:
+%*La:nan():0:5:
+%La:nan(09A_Zaz):1:12:nan:
+%*La:nan(09A_Zaz):0:12:
+%La:0x0p0:1:5:0x0:
+%*La:0x0p0:0:5:
+%La:0x0p+0:1:6:0x0:
+%*La:0x0p+0:0:6:
+%La:0x8p-1025:1:9:0x1p-1022:
+%*La:0x8p-1025:0:9:
+%La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*La:0x2.3456789abcdfep0123:0:22:
+%La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*La:0x2.3456789abcdfep+123:0:22:
+%La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*La:0x7.ffffffffffffcp1021:0:22:
+%La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*La:0xf.ffffffffffff8p+1020:0:23:
+%La:infinity:1:8:inf:
+%*La:infinity:0:8:
+%La:+nan():1:6:nan:
+%*La:+nan():0:6:
+%La:+nan(09A_Zaz):1:13:nan:
+%*La:+nan(09A_Zaz):0:13:
+%La:+0x0p0:1:6:0x0:
+%*La:+0x0p0:0:6:
+%La:+0x0p+0:1:7:0x0:
+%*La:+0x0p+0:0:7:
+%La:+0x8p-1025:1:10:0x1p-1022:
+%*La:+0x8p-1025:0:10:
+%La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*La:+0x2.3456789abcdfep0123:0:23:
+%La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*La:+0x2.3456789abcdfep+123:0:23:
+%La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*La:+0x7.ffffffffffffcp1021:0:23:
+%La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*La:+0xf.ffffffffffff8p+1020:0:24:
+%La:+infinity:1:9:inf:
+%*La:+infinity:0:9:
+%1La::0:-1:
+%*1La::0:-1:
+%1La:-infinity:0:-1:
+%*1La:-infinity:0:-1:
+%1La:-0xf.ffffffffffff8p+1020:0:-1:
+%*1La:-0xf.ffffffffffff8p+1020:0:-1:
+%1La:-0x7.ffffffffffffcp1021:0:-1:
+%*1La:-0x7.ffffffffffffcp1021:0:-1:
+%1La:-0x2.3456789abcdfep+123:0:-1:
+%*1La:-0x2.3456789abcdfep+123:0:-1:
+%1La:-0x2.3456789abcdfep0123:0:-1:
+%*1La:-0x2.3456789abcdfep0123:0:-1:
+%1La:-0x8p-1025:0:-1:
+%*1La:-0x8p-1025:0:-1:
+%1La:-0x0p+0:0:-1:
+%*1La:-0x0p+0:0:-1:
+%1La:-0x0p0:0:-1:
+%*1La:-0x0p0:0:-1:
+%1La:-nan(09A_Zaz):0:-1:
+%*1La:-nan(09A_Zaz):0:-1:
+%1La:-nan():0:-1:
+%*1La:-nan():0:-1:
+%1La:nan():0:-1:
+%*1La:nan():0:-1:
+%1La:nan(09A_Zaz):0:-1:
+%*1La:nan(09A_Zaz):0:-1:
+%1La:0x0p0:1:1:0x0:
+%*1La:0x0p0:0:1:
+%1La:0x0p+0:1:1:0x0:
+%*1La:0x0p+0:0:1:
+%1La:0x8p-1025:1:1:0x0:
+%*1La:0x8p-1025:0:1:
+%1La:0x2.3456789abcdfep0123:1:1:0x0:
+%*1La:0x2.3456789abcdfep0123:0:1:
+%1La:0x2.3456789abcdfep+123:1:1:0x0:
+%*1La:0x2.3456789abcdfep+123:0:1:
+%1La:0x7.ffffffffffffcp1021:1:1:0x0:
+%*1La:0x7.ffffffffffffcp1021:0:1:
+%1La:0xf.ffffffffffff8p+1020:1:1:0x0:
+%*1La:0xf.ffffffffffff8p+1020:0:1:
+%1La:infinity:0:-1:
+%*1La:infinity:0:-1:
+%1La:+nan():0:-1:
+%*1La:+nan():0:-1:
+%1La:+nan(09A_Zaz):0:-1:
+%*1La:+nan(09A_Zaz):0:-1:
+%1La:+0x0p0:0:-1:
+%*1La:+0x0p0:0:-1:
+%1La:+0x0p+0:0:-1:
+%*1La:+0x0p+0:0:-1:
+%1La:+0x8p-1025:0:-1:
+%*1La:+0x8p-1025:0:-1:
+%1La:+0x2.3456789abcdfep0123:0:-1:
+%*1La:+0x2.3456789abcdfep0123:0:-1:
+%1La:+0x2.3456789abcdfep+123:0:-1:
+%*1La:+0x2.3456789abcdfep+123:0:-1:
+%1La:+0x7.ffffffffffffcp1021:0:-1:
+%*1La:+0x7.ffffffffffffcp1021:0:-1:
+%1La:+0xf.ffffffffffff8p+1020:0:-1:
+%*1La:+0xf.ffffffffffff8p+1020:0:-1:
+%1La:+infinity:0:-1:
+%*1La:+infinity:0:-1:
+%2La::0:-1:
+%*2La::0:-1:
+%2La:-infinity:0:-1:
+%*2La:-infinity:0:-1:
+%2La:-0xf.ffffffffffff8p+1020:1:2:-0x0:
+%*2La:-0xf.ffffffffffff8p+1020:0:2:
+%2La:-0x7.ffffffffffffcp1021:1:2:-0x0:
+%*2La:-0x7.ffffffffffffcp1021:0:2:
+%2La:-0x2.3456789abcdfep+123:1:2:-0x0:
+%*2La:-0x2.3456789abcdfep+123:0:2:
+%2La:-0x2.3456789abcdfep0123:1:2:-0x0:
+%*2La:-0x2.3456789abcdfep0123:0:2:
+%2La:-0x8p-1025:1:2:-0x0:
+%*2La:-0x8p-1025:0:2:
+%2La:-0x0p+0:1:2:-0x0:
+%*2La:-0x0p+0:0:2:
+%2La:-0x0p0:1:2:-0x0:
+%*2La:-0x0p0:0:2:
+%2La:-nan(09A_Zaz):0:-1:
+%*2La:-nan(09A_Zaz):0:-1:
+%2La:-nan():0:-1:
+%*2La:-nan():0:-1:
+%2La:nan():0:-1:
+%*2La:nan():0:-1:
+%2La:nan(09A_Zaz):0:-1:
+%*2La:nan(09A_Zaz):0:-1:
+%2La:0x0p0:0:-1:
+%*2La:0x0p0:0:-1:
+%2La:0x0p+0:0:-1:
+%*2La:0x0p+0:0:-1:
+%2La:0x8p-1025:0:-1:
+%*2La:0x8p-1025:0:-1:
+%2La:0x2.3456789abcdfep0123:0:-1:
+%*2La:0x2.3456789abcdfep0123:0:-1:
+%2La:0x2.3456789abcdfep+123:0:-1:
+%*2La:0x2.3456789abcdfep+123:0:-1:
+%2La:0x7.ffffffffffffcp1021:0:-1:
+%*2La:0x7.ffffffffffffcp1021:0:-1:
+%2La:0xf.ffffffffffff8p+1020:0:-1:
+%*2La:0xf.ffffffffffff8p+1020:0:-1:
+%2La:infinity:0:-1:
+%*2La:infinity:0:-1:
+%2La:+nan():0:-1:
+%*2La:+nan():0:-1:
+%2La:+nan(09A_Zaz):0:-1:
+%*2La:+nan(09A_Zaz):0:-1:
+%2La:+0x0p0:1:2:0x0:
+%*2La:+0x0p0:0:2:
+%2La:+0x0p+0:1:2:0x0:
+%*2La:+0x0p+0:0:2:
+%2La:+0x8p-1025:1:2:0x0:
+%*2La:+0x8p-1025:0:2:
+%2La:+0x2.3456789abcdfep0123:1:2:0x0:
+%*2La:+0x2.3456789abcdfep0123:0:2:
+%2La:+0x2.3456789abcdfep+123:1:2:0x0:
+%*2La:+0x2.3456789abcdfep+123:0:2:
+%2La:+0x7.ffffffffffffcp1021:1:2:0x0:
+%*2La:+0x7.ffffffffffffcp1021:0:2:
+%2La:+0xf.ffffffffffff8p+1020:1:2:0x0:
+%*2La:+0xf.ffffffffffff8p+1020:0:2:
+%2La:+infinity:0:-1:
+%*2La:+infinity:0:-1:
+%3La::0:-1:
+%*3La::0:-1:
+%3La:-infinity:0:-1:
+%*3La:-infinity:0:-1:
+%3La:-0xf.ffffffffffff8p+1020:0:-1:
+%*3La:-0xf.ffffffffffff8p+1020:0:-1:
+%3La:-0x7.ffffffffffffcp1021:0:-1:
+%*3La:-0x7.ffffffffffffcp1021:0:-1:
+%3La:-0x2.3456789abcdfep+123:0:-1:
+%*3La:-0x2.3456789abcdfep+123:0:-1:
+%3La:-0x2.3456789abcdfep0123:0:-1:
+%*3La:-0x2.3456789abcdfep0123:0:-1:
+%3La:-0x8p-1025:0:-1:
+%*3La:-0x8p-1025:0:-1:
+%3La:-0x0p+0:0:-1:
+%*3La:-0x0p+0:0:-1:
+%3La:-0x0p0:0:-1:
+%*3La:-0x0p0:0:-1:
+%3La:-nan(09A_Zaz):0:-1:
+%*3La:-nan(09A_Zaz):0:-1:
+%3La:-nan():0:-1:
+%*3La:-nan():0:-1:
+%3La:nan():1:3:nan:
+%*3La:nan():0:3:
+%3La:nan(09A_Zaz):1:3:nan:
+%*3La:nan(09A_Zaz):0:3:
+%3La:0x0p0:1:3:0x0:
+%*3La:0x0p0:0:3:
+%3La:0x0p+0:1:3:0x0:
+%*3La:0x0p+0:0:3:
+%3La:0x8p-1025:1:3:0x1p3:
+%*3La:0x8p-1025:0:3:
+%3La:0x2.3456789abcdfep0123:1:3:0x1p1:
+%*3La:0x2.3456789abcdfep0123:0:3:
+%3La:0x2.3456789abcdfep+123:1:3:0x1p1:
+%*3La:0x2.3456789abcdfep+123:0:3:
+%3La:0x7.ffffffffffffcp1021:1:3:0x1.cp2:
+%*3La:0x7.ffffffffffffcp1021:0:3:
+%3La:0xf.ffffffffffff8p+1020:1:3:0x1.ep3:
+%*3La:0xf.ffffffffffff8p+1020:0:3:
+%3La:infinity:1:3:inf:
+%*3La:infinity:0:3:
+%3La:+nan():0:-1:
+%*3La:+nan():0:-1:
+%3La:+nan(09A_Zaz):0:-1:
+%*3La:+nan(09A_Zaz):0:-1:
+%3La:+0x0p0:0:-1:
+%*3La:+0x0p0:0:-1:
+%3La:+0x0p+0:0:-1:
+%*3La:+0x0p+0:0:-1:
+%3La:+0x8p-1025:0:-1:
+%*3La:+0x8p-1025:0:-1:
+%3La:+0x2.3456789abcdfep0123:0:-1:
+%*3La:+0x2.3456789abcdfep0123:0:-1:
+%3La:+0x2.3456789abcdfep+123:0:-1:
+%*3La:+0x2.3456789abcdfep+123:0:-1:
+%3La:+0x7.ffffffffffffcp1021:0:-1:
+%*3La:+0x7.ffffffffffffcp1021:0:-1:
+%3La:+0xf.ffffffffffff8p+1020:0:-1:
+%*3La:+0xf.ffffffffffff8p+1020:0:-1:
+%3La:+infinity:0:-1:
+%*3La:+infinity:0:-1:
+%4La::0:-1:
+%*4La::0:-1:
+%4La:-infinity:1:4:-inf:
+%*4La:-infinity:0:4:
+%4La:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3:
+%*4La:-0xf.ffffffffffff8p+1020:0:4:
+%4La:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2:
+%*4La:-0x7.ffffffffffffcp1021:0:4:
+%4La:-0x2.3456789abcdfep+123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdfep+123:0:4:
+%4La:-0x2.3456789abcdfep0123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdfep0123:0:4:
+%4La:-0x8p-1025:1:4:-0x1p3:
+%*4La:-0x8p-1025:0:4:
+%4La:-0x0p+0:1:4:-0x0:
+%*4La:-0x0p+0:0:4:
+%4La:-0x0p0:1:4:-0x0:
+%*4La:-0x0p0:0:4:
+%4La:-nan(09A_Zaz):1:4:-nan:
+%*4La:-nan(09A_Zaz):0:4:
+%4La:-nan():1:4:-nan:
+%*4La:-nan():0:4:
+%4La:nan():0:-1:
+%*4La:nan():0:-1:
+%4La:nan(09A_Zaz):0:-1:
+%*4La:nan(09A_Zaz):0:-1:
+%4La:0x0p0:0:-1:
+%*4La:0x0p0:0:-1:
+%4La:0x0p+0:0:-1:
+%*4La:0x0p+0:0:-1:
+%4La:0x8p-1025:0:-1:
+%*4La:0x8p-1025:0:-1:
+%4La:0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4La:0x2.3456789abcdfep0123:0:4:
+%4La:0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4La:0x2.3456789abcdfep+123:0:4:
+%4La:0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4La:0x7.ffffffffffffcp1021:0:4:
+%4La:0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4La:0xf.ffffffffffff8p+1020:0:4:
+%4La:infinity:0:-1:
+%*4La:infinity:0:-1:
+%4La:+nan():1:4:nan:
+%*4La:+nan():0:4:
+%4La:+nan(09A_Zaz):1:4:nan:
+%*4La:+nan(09A_Zaz):0:4:
+%4La:+0x0p0:1:4:0x0:
+%*4La:+0x0p0:0:4:
+%4La:+0x0p+0:1:4:0x0:
+%*4La:+0x0p+0:0:4:
+%4La:+0x8p-1025:1:4:0x1p3:
+%*4La:+0x8p-1025:0:4:
+%4La:+0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdfep0123:0:4:
+%4La:+0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdfep+123:0:4:
+%4La:+0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4La:+0x7.ffffffffffffcp1021:0:4:
+%4La:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4La:+0xf.ffffffffffff8p+1020:0:4:
+%4La:+infinity:1:4:inf:
+%*4La:+infinity:0:4:
+%5La::0:-1:
+%*5La::0:-1:
+%5La:-infinity:0:-1:
+%*5La:-infinity:0:-1:
+%5La:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3:
+%*5La:-0xf.ffffffffffff8p+1020:0:5:
+%5La:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2:
+%*5La:-0x7.ffffffffffffcp1021:0:5:
+%5La:-0x2.3456789abcdfep+123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdfep+123:0:5:
+%5La:-0x2.3456789abcdfep0123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdfep0123:0:5:
+%5La:-0x8p-1025:0:-1:
+%*5La:-0x8p-1025:0:-1:
+%5La:-0x0p+0:0:-1:
+%*5La:-0x0p+0:0:-1:
+%5La:-0x0p0:0:-1:
+%*5La:-0x0p0:0:-1:
+%5La:-nan(09A_Zaz):0:-1:
+%*5La:-nan(09A_Zaz):0:-1:
+%5La:-nan():0:-1:
+%*5La:-nan():0:-1:
+%5La:nan():1:5:nan:
+%*5La:nan():0:5:
+%5La:nan(09A_Zaz):0:-1:
+%*5La:nan(09A_Zaz):0:-1:
+%5La:0x0p0:1:5:0x0:
+%*5La:0x0p0:0:5:
+%5La:0x0p+0:0:-1:
+%*5La:0x0p+0:0:-1:
+%5La:0x8p-1025:0:-1:
+%*5La:0x8p-1025:0:-1:
+%5La:0x2.3456789abcdfep0123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdfep0123:0:5:
+%5La:0x2.3456789abcdfep+123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdfep+123:0:5:
+%5La:0x7.ffffffffffffcp1021:1:5:0x1.fcp2:
+%*5La:0x7.ffffffffffffcp1021:0:5:
+%5La:0xf.ffffffffffff8p+1020:1:5:0x1.fep3:
+%*5La:0xf.ffffffffffff8p+1020:0:5:
+%5La:infinity:0:-1:
+%*5La:infinity:0:-1:
+%5La:+nan():0:-1:
+%*5La:+nan():0:-1:
+%5La:+nan(09A_Zaz):0:-1:
+%*5La:+nan(09A_Zaz):0:-1:
+%5La:+0x0p0:0:-1:
+%*5La:+0x0p0:0:-1:
+%5La:+0x0p+0:0:-1:
+%*5La:+0x0p+0:0:-1:
+%5La:+0x8p-1025:0:-1:
+%*5La:+0x8p-1025:0:-1:
+%5La:+0x2.3456789abcdfep0123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdfep0123:0:5:
+%5La:+0x2.3456789abcdfep+123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdfep+123:0:5:
+%5La:+0x7.ffffffffffffcp1021:1:5:0x1.cp2:
+%*5La:+0x7.ffffffffffffcp1021:0:5:
+%5La:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3:
+%*5La:+0xf.ffffffffffff8p+1020:0:5:
+%5La:+infinity:0:-1:
+%*5La:+infinity:0:-1:
+%6La::0:-1:
+%*6La::0:-1:
+%6La:-infinity:0:-1:
+%*6La:-infinity:0:-1:
+%6La:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3:
+%*6La:-0xf.ffffffffffff8p+1020:0:6:
+%6La:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2:
+%*6La:-0x7.ffffffffffffcp1021:0:6:
+%6La:-0x2.3456789abcdfep+123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdfep+123:0:6:
+%6La:-0x2.3456789abcdfep0123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdfep0123:0:6:
+%6La:-0x8p-1025:0:-1:
+%*6La:-0x8p-1025:0:-1:
+%6La:-0x0p+0:0:-1:
+%*6La:-0x0p+0:0:-1:
+%6La:-0x0p0:1:6:-0x0:
+%*6La:-0x0p0:0:6:
+%6La:-nan(09A_Zaz):0:-1:
+%*6La:-nan(09A_Zaz):0:-1:
+%6La:-nan():1:6:-nan:
+%*6La:-nan():0:6:
+%6La:nan():1:5:nan:
+%*6La:nan():0:5:
+%6La:nan(09A_Zaz):0:-1:
+%*6La:nan(09A_Zaz):0:-1:
+%6La:0x0p0:1:5:0x0:
+%*6La:0x0p0:0:5:
+%6La:0x0p+0:1:6:0x0:
+%*6La:0x0p+0:0:6:
+%6La:0x8p-1025:1:6:0x1p2:
+%*6La:0x8p-1025:0:6:
+%6La:0x2.3456789abcdfep0123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdfep0123:0:6:
+%6La:0x2.3456789abcdfep+123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdfep+123:0:6:
+%6La:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2:
+%*6La:0x7.ffffffffffffcp1021:0:6:
+%6La:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3:
+%*6La:0xf.ffffffffffff8p+1020:0:6:
+%6La:infinity:0:-1:
+%*6La:infinity:0:-1:
+%6La:+nan():1:6:nan:
+%*6La:+nan():0:6:
+%6La:+nan(09A_Zaz):0:-1:
+%*6La:+nan(09A_Zaz):0:-1:
+%6La:+0x0p0:1:6:0x0:
+%*6La:+0x0p0:0:6:
+%6La:+0x0p+0:0:-1:
+%*6La:+0x0p+0:0:-1:
+%6La:+0x8p-1025:0:-1:
+%*6La:+0x8p-1025:0:-1:
+%6La:+0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdfep0123:0:6:
+%6La:+0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdfep+123:0:6:
+%6La:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*6La:+0x7.ffffffffffffcp1021:0:6:
+%6La:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*6La:+0xf.ffffffffffff8p+1020:0:6:
+%6La:+infinity:0:-1:
+%*6La:+infinity:0:-1:
+%20La::0:-1:
+%*20La::0:-1:
+%20La:-infinity:1:9:-inf:
+%*20La:-infinity:0:9:
+%20La:-0xf.ffffffffffff8p+1020:0:-1:
+%*20La:-0xf.ffffffffffff8p+1020:0:-1:
+%20La:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3:
+%*20La:-0x7.ffffffffffffcp1021:0:20:
+%20La:-0x2.3456789abcdfep+123:0:-1:
+%*20La:-0x2.3456789abcdfep+123:0:-1:
+%20La:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20La:-0x2.3456789abcdfep0123:0:20:
+%20La:-0x8p-1025:1:10:-0x1p-1022:
+%*20La:-0x8p-1025:0:10:
+%20La:-0x0p+0:1:7:-0x0:
+%*20La:-0x0p+0:0:7:
+%20La:-0x0p0:1:6:-0x0:
+%*20La:-0x0p0:0:6:
+%20La:-nan(09A_Zaz):1:13:-nan:
+%*20La:-nan(09A_Zaz):0:13:
+%20La:-nan():1:6:-nan:
+%*20La:-nan():0:6:
+%20La:nan():1:5:nan:
+%*20La:nan():0:5:
+%20La:nan(09A_Zaz):1:12:nan:
+%*20La:nan(09A_Zaz):0:12:
+%20La:0x0p0:1:5:0x0:
+%*20La:0x0p0:0:5:
+%20La:0x0p+0:1:6:0x0:
+%*20La:0x0p+0:0:6:
+%20La:0x8p-1025:1:9:0x1p-1022:
+%*20La:0x8p-1025:0:9:
+%20La:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20La:0x2.3456789abcdfep0123:0:20:
+%20La:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20La:0x2.3456789abcdfep+123:0:20:
+%20La:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12:
+%*20La:0x7.ffffffffffffcp1021:0:20:
+%20La:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4:
+%*20La:0xf.ffffffffffff8p+1020:0:20:
+%20La:infinity:1:8:inf:
+%*20La:infinity:0:8:
+%20La:+nan():1:6:nan:
+%*20La:+nan():0:6:
+%20La:+nan(09A_Zaz):1:13:nan:
+%*20La:+nan(09A_Zaz):0:13:
+%20La:+0x0p0:1:6:0x0:
+%*20La:+0x0p0:0:6:
+%20La:+0x0p+0:1:7:0x0:
+%*20La:+0x0p+0:0:7:
+%20La:+0x8p-1025:1:10:0x1p-1022:
+%*20La:+0x8p-1025:0:10:
+%20La:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20La:+0x2.3456789abcdfep0123:0:20:
+%20La:+0x2.3456789abcdfep+123:0:-1:
+%*20La:+0x2.3456789abcdfep+123:0:-1:
+%20La:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3:
+%*20La:+0x7.ffffffffffffcp1021:0:20:
+%20La:+0xf.ffffffffffff8p+1020:0:-1:
+%*20La:+0xf.ffffffffffff8p+1020:0:-1:
+%20La:+infinity:1:9:inf:
+%*20La:+infinity:0:9:
+%32La::0:-1:
+%*32La::0:-1:
+%32La:-infinity:1:9:-inf:
+%*32La:-infinity:0:9:
+%32La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*32La:-0xf.ffffffffffff8p+1020:0:24:
+%32La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*32La:-0x7.ffffffffffffcp1021:0:23:
+%32La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32La:-0x2.3456789abcdfep+123:0:23:
+%32La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32La:-0x2.3456789abcdfep0123:0:23:
+%32La:-0x8p-1025:1:10:-0x1p-1022:
+%*32La:-0x8p-1025:0:10:
+%32La:-0x0p+0:1:7:-0x0:
+%*32La:-0x0p+0:0:7:
+%32La:-0x0p0:1:6:-0x0:
+%*32La:-0x0p0:0:6:
+%32La:-nan(09A_Zaz):1:13:-nan:
+%*32La:-nan(09A_Zaz):0:13:
+%32La:-nan():1:6:-nan:
+%*32La:-nan():0:6:
+%32La:nan():1:5:nan:
+%*32La:nan():0:5:
+%32La:nan(09A_Zaz):1:12:nan:
+%*32La:nan(09A_Zaz):0:12:
+%32La:0x0p0:1:5:0x0:
+%*32La:0x0p0:0:5:
+%32La:0x0p+0:1:6:0x0:
+%*32La:0x0p+0:0:6:
+%32La:0x8p-1025:1:9:0x1p-1022:
+%*32La:0x8p-1025:0:9:
+%32La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32La:0x2.3456789abcdfep0123:0:22:
+%32La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32La:0x2.3456789abcdfep+123:0:22:
+%32La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*32La:0x7.ffffffffffffcp1021:0:22:
+%32La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*32La:0xf.ffffffffffff8p+1020:0:23:
+%32La:infinity:1:8:inf:
+%*32La:infinity:0:8:
+%32La:+nan():1:6:nan:
+%*32La:+nan():0:6:
+%32La:+nan(09A_Zaz):1:13:nan:
+%*32La:+nan(09A_Zaz):0:13:
+%32La:+0x0p0:1:6:0x0:
+%*32La:+0x0p0:0:6:
+%32La:+0x0p+0:1:7:0x0:
+%*32La:+0x0p+0:0:7:
+%32La:+0x8p-1025:1:10:0x1p-1022:
+%*32La:+0x8p-1025:0:10:
+%32La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32La:+0x2.3456789abcdfep0123:0:23:
+%32La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32La:+0x2.3456789abcdfep+123:0:23:
+%32La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32La:+0x7.ffffffffffffcp1021:0:23:
+%32La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32La:+0xf.ffffffffffff8p+1020:0:24:
+%32La:+infinity:1:9:inf:
+%*32La:+infinity:0:9:
+%5La: :0:-1:
+%*5La: :0:-1:
+%5La: -infinity:0:-1:
+%*5La: -infinity:0:-1:
+%5La: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3:
+%*5La: -0xf.ffffffffffff8p+1020:0:6:
+%5La: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2:
+%*5La: -0x7.ffffffffffffcp1021:0:6:
+%5La: -0x2.3456789abcdfep+123:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdfep+123:0:6:
+%5La: -0x2.3456789abcdfep0123:1:6:-0x1p1:
+%*5La: -0x2.3456789abcdfep0123:0:6:
+%5La: -0x8p-1025:0:-1:
+%*5La: -0x8p-1025:0:-1:
+%5La: -0x0p+0:0:-1:
+%*5La: -0x0p+0:0:-1:
+%5La: -0x0p0:0:-1:
+%*5La: -0x0p0:0:-1:
+%5La: -nan(09A_Zaz):0:-1:
+%*5La: -nan(09A_Zaz):0:-1:
+%5La: -nan():0:-1:
+%*5La: -nan():0:-1:
+%5La: nan():1:6:nan:
+%*5La: nan():0:6:
+%5La: nan(09A_Zaz):0:-1:
+%*5La: nan(09A_Zaz):0:-1:
+%5La: 0x0p0:1:6:0x0:
+%*5La: 0x0p0:0:6:
+%5La: 0x0p+0:0:-1:
+%*5La: 0x0p+0:0:-1:
+%5La: 0x8p-1025:0:-1:
+%*5La: 0x8p-1025:0:-1:
+%5La: 0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdfep0123:0:6:
+%5La: 0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*5La: 0x2.3456789abcdfep+123:0:6:
+%5La: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*5La: 0x7.ffffffffffffcp1021:0:6:
+%5La: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*5La: 0xf.ffffffffffff8p+1020:0:6:
+%5La: infinity:0:-1:
+%*5La: infinity:0:-1:
+%5La: +nan():0:-1:
+%*5La: +nan():0:-1:
+%5La: +nan(09A_Zaz):0:-1:
+%*5La: +nan(09A_Zaz):0:-1:
+%5La: +0x0p0:0:-1:
+%*5La: +0x0p0:0:-1:
+%5La: +0x0p+0:0:-1:
+%*5La: +0x0p+0:0:-1:
+%5La: +0x8p-1025:0:-1:
+%*5La: +0x8p-1025:0:-1:
+%5La: +0x2.3456789abcdfep0123:1:6:0x1p1:
+%*5La: +0x2.3456789abcdfep0123:0:6:
+%5La: +0x2.3456789abcdfep+123:1:6:0x1p1:
+%*5La: +0x2.3456789abcdfep+123:0:6:
+%5La: +0x7.ffffffffffffcp1021:1:6:0x1.cp2:
+%*5La: +0x7.ffffffffffffcp1021:0:6:
+%5La: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3:
+%*5La: +0xf.ffffffffffff8p+1020:0:6:
+%5La: +infinity:0:-1:
+%*5La: +infinity:0:-1:
+%32La: :0:-1:
+%*32La: :0:-1:
+%32La: -infinity:1:10:-inf:
+%*32La: -infinity:0:10:
+%32La: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023:
+%*32La: -0xf.ffffffffffff8p+1020:0:25:
+%32La: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023:
+%*32La: -0x7.ffffffffffffcp1021:0:24:
+%32La: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32La: -0x2.3456789abcdfep+123:0:24:
+%32La: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32La: -0x2.3456789abcdfep0123:0:24:
+%32La: -0x8p-1025:1:11:-0x1p-1022:
+%*32La: -0x8p-1025:0:11:
+%32La: -0x0p+0:1:8:-0x0:
+%*32La: -0x0p+0:0:8:
+%32La: -0x0p0:1:7:-0x0:
+%*32La: -0x0p0:0:7:
+%32La: -nan(09A_Zaz):1:14:-nan:
+%*32La: -nan(09A_Zaz):0:14:
+%32La: -nan():1:7:-nan:
+%*32La: -nan():0:7:
+%32La: nan():1:6:nan:
+%*32La: nan():0:6:
+%32La: nan(09A_Zaz):1:13:nan:
+%*32La: nan(09A_Zaz):0:13:
+%32La: 0x0p0:1:6:0x0:
+%*32La: 0x0p0:0:6:
+%32La: 0x0p+0:1:7:0x0:
+%*32La: 0x0p+0:0:7:
+%32La: 0x8p-1025:1:10:0x1p-1022:
+%*32La: 0x8p-1025:0:10:
+%32La: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32La: 0x2.3456789abcdfep0123:0:23:
+%32La: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32La: 0x2.3456789abcdfep+123:0:23:
+%32La: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32La: 0x7.ffffffffffffcp1021:0:23:
+%32La: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32La: 0xf.ffffffffffff8p+1020:0:24:
+%32La: infinity:1:9:inf:
+%*32La: infinity:0:9:
+%32La: +nan():1:7:nan:
+%*32La: +nan():0:7:
+%32La: +nan(09A_Zaz):1:14:nan:
+%*32La: +nan(09A_Zaz):0:14:
+%32La: +0x0p0:1:7:0x0:
+%*32La: +0x0p0:0:7:
+%32La: +0x0p+0:1:8:0x0:
+%*32La: +0x0p+0:0:8:
+%32La: +0x8p-1025:1:11:0x1p-1022:
+%*32La: +0x8p-1025:0:11:
+%32La: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32La: +0x2.3456789abcdfep0123:0:24:
+%32La: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32La: +0x2.3456789abcdfep+123:0:24:
+%32La: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023:
+%*32La: +0x7.ffffffffffffcp1021:0:24:
+%32La: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023:
+%*32La: +0xf.ffffffffffff8p+1020:0:25:
+%32La: +infinity:1:10:inf:
+%*32La: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input
new file mode 100644
index 0000000..4cce198
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input
@@ -0,0 +1,682 @@
+%LA::0:-1:
+%*LA::0:-1:
+%LA:-INFINITY:1:9:-inf:
+%*LA:-INFINITY:0:9:
+%LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*LA:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*LA:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*LA:-0X2.3456789ABCDFEP+123:0:23:
+%LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*LA:-0X2.3456789ABCDFEP0123:0:23:
+%LA:-0X8P-1025:1:10:-0x1p-1022:
+%*LA:-0X8P-1025:0:10:
+%LA:-0X0P+0:1:7:-0x0:
+%*LA:-0X0P+0:0:7:
+%LA:-0X0P0:1:6:-0x0:
+%*LA:-0X0P0:0:6:
+%LA:-NAN(09A_Zaz):1:13:-nan:
+%*LA:-NAN(09A_Zaz):0:13:
+%LA:-NAN():1:6:-nan:
+%*LA:-NAN():0:6:
+%LA:NAN():1:5:nan:
+%*LA:NAN():0:5:
+%LA:NAN(09A_Zaz):1:12:nan:
+%*LA:NAN(09A_Zaz):0:12:
+%LA:0X0P0:1:5:0x0:
+%*LA:0X0P0:0:5:
+%LA:0X0P+0:1:6:0x0:
+%*LA:0X0P+0:0:6:
+%LA:0X8P-1025:1:9:0x1p-1022:
+%*LA:0X8P-1025:0:9:
+%LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*LA:0X2.3456789ABCDFEP0123:0:22:
+%LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*LA:0X2.3456789ABCDFEP+123:0:22:
+%LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*LA:0X7.FFFFFFFFFFFFCP1021:0:22:
+%LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*LA:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%LA:INFINITY:1:8:inf:
+%*LA:INFINITY:0:8:
+%LA:+NAN():1:6:nan:
+%*LA:+NAN():0:6:
+%LA:+NAN(09A_Zaz):1:13:nan:
+%*LA:+NAN(09A_Zaz):0:13:
+%LA:+0X0P0:1:6:0x0:
+%*LA:+0X0P0:0:6:
+%LA:+0X0P+0:1:7:0x0:
+%*LA:+0X0P+0:0:7:
+%LA:+0X8P-1025:1:10:0x1p-1022:
+%*LA:+0X8P-1025:0:10:
+%LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*LA:+0X2.3456789ABCDFEP0123:0:23:
+%LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*LA:+0X2.3456789ABCDFEP+123:0:23:
+%LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*LA:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*LA:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%LA:+INFINITY:1:9:inf:
+%*LA:+INFINITY:0:9:
+%1LA::0:-1:
+%*1LA::0:-1:
+%1LA:-INFINITY:0:-1:
+%*1LA:-INFINITY:0:-1:
+%1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1LA:-0X2.3456789ABCDFEP+123:0:-1:
+%*1LA:-0X2.3456789ABCDFEP+123:0:-1:
+%1LA:-0X2.3456789ABCDFEP0123:0:-1:
+%*1LA:-0X2.3456789ABCDFEP0123:0:-1:
+%1LA:-0X8P-1025:0:-1:
+%*1LA:-0X8P-1025:0:-1:
+%1LA:-0X0P+0:0:-1:
+%*1LA:-0X0P+0:0:-1:
+%1LA:-0X0P0:0:-1:
+%*1LA:-0X0P0:0:-1:
+%1LA:-NAN(09A_Zaz):0:-1:
+%*1LA:-NAN(09A_Zaz):0:-1:
+%1LA:-NAN():0:-1:
+%*1LA:-NAN():0:-1:
+%1LA:NAN():0:-1:
+%*1LA:NAN():0:-1:
+%1LA:NAN(09A_Zaz):0:-1:
+%*1LA:NAN(09A_Zaz):0:-1:
+%1LA:0X0P0:1:1:0x0:
+%*1LA:0X0P0:0:1:
+%1LA:0X0P+0:1:1:0x0:
+%*1LA:0X0P+0:0:1:
+%1LA:0X8P-1025:1:1:0x0:
+%*1LA:0X8P-1025:0:1:
+%1LA:0X2.3456789ABCDFEP0123:1:1:0x0:
+%*1LA:0X2.3456789ABCDFEP0123:0:1:
+%1LA:0X2.3456789ABCDFEP+123:1:1:0x0:
+%*1LA:0X2.3456789ABCDFEP+123:0:1:
+%1LA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0:
+%*1LA:0X7.FFFFFFFFFFFFCP1021:0:1:
+%1LA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0:
+%*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1:
+%1LA:INFINITY:0:-1:
+%*1LA:INFINITY:0:-1:
+%1LA:+NAN():0:-1:
+%*1LA:+NAN():0:-1:
+%1LA:+NAN(09A_Zaz):0:-1:
+%*1LA:+NAN(09A_Zaz):0:-1:
+%1LA:+0X0P0:0:-1:
+%*1LA:+0X0P0:0:-1:
+%1LA:+0X0P+0:0:-1:
+%*1LA:+0X0P+0:0:-1:
+%1LA:+0X8P-1025:0:-1:
+%*1LA:+0X8P-1025:0:-1:
+%1LA:+0X2.3456789ABCDFEP0123:0:-1:
+%*1LA:+0X2.3456789ABCDFEP0123:0:-1:
+%1LA:+0X2.3456789ABCDFEP+123:0:-1:
+%*1LA:+0X2.3456789ABCDFEP+123:0:-1:
+%1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1LA:+INFINITY:0:-1:
+%*1LA:+INFINITY:0:-1:
+%2LA::0:-1:
+%*2LA::0:-1:
+%2LA:-INFINITY:0:-1:
+%*2LA:-INFINITY:0:-1:
+%2LA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0:
+%*2LA:-0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2LA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0:
+%*2LA:-0X7.FFFFFFFFFFFFCP1021:0:2:
+%2LA:-0X2.3456789ABCDFEP+123:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDFEP+123:0:2:
+%2LA:-0X2.3456789ABCDFEP0123:1:2:-0x0:
+%*2LA:-0X2.3456789ABCDFEP0123:0:2:
+%2LA:-0X8P-1025:1:2:-0x0:
+%*2LA:-0X8P-1025:0:2:
+%2LA:-0X0P+0:1:2:-0x0:
+%*2LA:-0X0P+0:0:2:
+%2LA:-0X0P0:1:2:-0x0:
+%*2LA:-0X0P0:0:2:
+%2LA:-NAN(09A_Zaz):0:-1:
+%*2LA:-NAN(09A_Zaz):0:-1:
+%2LA:-NAN():0:-1:
+%*2LA:-NAN():0:-1:
+%2LA:NAN():0:-1:
+%*2LA:NAN():0:-1:
+%2LA:NAN(09A_Zaz):0:-1:
+%*2LA:NAN(09A_Zaz):0:-1:
+%2LA:0X0P0:0:-1:
+%*2LA:0X0P0:0:-1:
+%2LA:0X0P+0:0:-1:
+%*2LA:0X0P+0:0:-1:
+%2LA:0X8P-1025:0:-1:
+%*2LA:0X8P-1025:0:-1:
+%2LA:0X2.3456789ABCDFEP0123:0:-1:
+%*2LA:0X2.3456789ABCDFEP0123:0:-1:
+%2LA:0X2.3456789ABCDFEP+123:0:-1:
+%*2LA:0X2.3456789ABCDFEP+123:0:-1:
+%2LA:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*2LA:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%2LA:INFINITY:0:-1:
+%*2LA:INFINITY:0:-1:
+%2LA:+NAN():0:-1:
+%*2LA:+NAN():0:-1:
+%2LA:+NAN(09A_Zaz):0:-1:
+%*2LA:+NAN(09A_Zaz):0:-1:
+%2LA:+0X0P0:1:2:0x0:
+%*2LA:+0X0P0:0:2:
+%2LA:+0X0P+0:1:2:0x0:
+%*2LA:+0X0P+0:0:2:
+%2LA:+0X8P-1025:1:2:0x0:
+%*2LA:+0X8P-1025:0:2:
+%2LA:+0X2.3456789ABCDFEP0123:1:2:0x0:
+%*2LA:+0X2.3456789ABCDFEP0123:0:2:
+%2LA:+0X2.3456789ABCDFEP+123:1:2:0x0:
+%*2LA:+0X2.3456789ABCDFEP+123:0:2:
+%2LA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0:
+%*2LA:+0X7.FFFFFFFFFFFFCP1021:0:2:
+%2LA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0:
+%*2LA:+0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2LA:+INFINITY:0:-1:
+%*2LA:+INFINITY:0:-1:
+%3LA::0:-1:
+%*3LA::0:-1:
+%3LA:-INFINITY:0:-1:
+%*3LA:-INFINITY:0:-1:
+%3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3LA:-0X2.3456789ABCDFEP+123:0:-1:
+%*3LA:-0X2.3456789ABCDFEP+123:0:-1:
+%3LA:-0X2.3456789ABCDFEP0123:0:-1:
+%*3LA:-0X2.3456789ABCDFEP0123:0:-1:
+%3LA:-0X8P-1025:0:-1:
+%*3LA:-0X8P-1025:0:-1:
+%3LA:-0X0P+0:0:-1:
+%*3LA:-0X0P+0:0:-1:
+%3LA:-0X0P0:0:-1:
+%*3LA:-0X0P0:0:-1:
+%3LA:-NAN(09A_Zaz):0:-1:
+%*3LA:-NAN(09A_Zaz):0:-1:
+%3LA:-NAN():0:-1:
+%*3LA:-NAN():0:-1:
+%3LA:NAN():1:3:nan:
+%*3LA:NAN():0:3:
+%3LA:NAN(09A_Zaz):1:3:nan:
+%*3LA:NAN(09A_Zaz):0:3:
+%3LA:0X0P0:1:3:0x0:
+%*3LA:0X0P0:0:3:
+%3LA:0X0P+0:1:3:0x0:
+%*3LA:0X0P+0:0:3:
+%3LA:0X8P-1025:1:3:0x1p3:
+%*3LA:0X8P-1025:0:3:
+%3LA:0X2.3456789ABCDFEP0123:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDFEP0123:0:3:
+%3LA:0X2.3456789ABCDFEP+123:1:3:0x1p1:
+%*3LA:0X2.3456789ABCDFEP+123:0:3:
+%3LA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2:
+%*3LA:0X7.FFFFFFFFFFFFCP1021:0:3:
+%3LA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3:
+%*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3:
+%3LA:INFINITY:1:3:inf:
+%*3LA:INFINITY:0:3:
+%3LA:+NAN():0:-1:
+%*3LA:+NAN():0:-1:
+%3LA:+NAN(09A_Zaz):0:-1:
+%*3LA:+NAN(09A_Zaz):0:-1:
+%3LA:+0X0P0:0:-1:
+%*3LA:+0X0P0:0:-1:
+%3LA:+0X0P+0:0:-1:
+%*3LA:+0X0P+0:0:-1:
+%3LA:+0X8P-1025:0:-1:
+%*3LA:+0X8P-1025:0:-1:
+%3LA:+0X2.3456789ABCDFEP0123:0:-1:
+%*3LA:+0X2.3456789ABCDFEP0123:0:-1:
+%3LA:+0X2.3456789ABCDFEP+123:0:-1:
+%*3LA:+0X2.3456789ABCDFEP+123:0:-1:
+%3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3LA:+INFINITY:0:-1:
+%*3LA:+INFINITY:0:-1:
+%4LA::0:-1:
+%*4LA::0:-1:
+%4LA:-INFINITY:1:4:-inf:
+%*4LA:-INFINITY:0:4:
+%4LA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3:
+%*4LA:-0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2:
+%*4LA:-0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDFEP+123:0:4:
+%4LA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1:
+%*4LA:-0X2.3456789ABCDFEP0123:0:4:
+%4LA:-0X8P-1025:1:4:-0x1p3:
+%*4LA:-0X8P-1025:0:4:
+%4LA:-0X0P+0:1:4:-0x0:
+%*4LA:-0X0P+0:0:4:
+%4LA:-0X0P0:1:4:-0x0:
+%*4LA:-0X0P0:0:4:
+%4LA:-NAN(09A_Zaz):1:4:-nan:
+%*4LA:-NAN(09A_Zaz):0:4:
+%4LA:-NAN():1:4:-nan:
+%*4LA:-NAN():0:4:
+%4LA:NAN():0:-1:
+%*4LA:NAN():0:-1:
+%4LA:NAN(09A_Zaz):0:-1:
+%*4LA:NAN(09A_Zaz):0:-1:
+%4LA:0X0P0:0:-1:
+%*4LA:0X0P0:0:-1:
+%4LA:0X0P+0:0:-1:
+%*4LA:0X0P+0:0:-1:
+%4LA:0X8P-1025:0:-1:
+%*4LA:0X8P-1025:0:-1:
+%4LA:0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDFEP0123:0:4:
+%4LA:0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4LA:0X2.3456789ABCDFEP+123:0:4:
+%4LA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4LA:0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LA:INFINITY:0:-1:
+%*4LA:INFINITY:0:-1:
+%4LA:+NAN():1:4:nan:
+%*4LA:+NAN():0:4:
+%4LA:+NAN(09A_Zaz):1:4:nan:
+%*4LA:+NAN(09A_Zaz):0:4:
+%4LA:+0X0P0:1:4:0x0:
+%*4LA:+0X0P0:0:4:
+%4LA:+0X0P+0:1:4:0x0:
+%*4LA:+0X0P+0:0:4:
+%4LA:+0X8P-1025:1:4:0x1p3:
+%*4LA:+0X8P-1025:0:4:
+%4LA:+0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDFEP0123:0:4:
+%4LA:+0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4LA:+0X2.3456789ABCDFEP+123:0:4:
+%4LA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4LA:+0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4LA:+0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LA:+INFINITY:1:4:inf:
+%*4LA:+INFINITY:0:4:
+%5LA::0:-1:
+%*5LA::0:-1:
+%5LA:-INFINITY:0:-1:
+%*5LA:-INFINITY:0:-1:
+%5LA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3:
+%*5LA:-0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2:
+%*5LA:-0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDFEP+123:0:5:
+%5LA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1:
+%*5LA:-0X2.3456789ABCDFEP0123:0:5:
+%5LA:-0X8P-1025:0:-1:
+%*5LA:-0X8P-1025:0:-1:
+%5LA:-0X0P+0:0:-1:
+%*5LA:-0X0P+0:0:-1:
+%5LA:-0X0P0:0:-1:
+%*5LA:-0X0P0:0:-1:
+%5LA:-NAN(09A_Zaz):0:-1:
+%*5LA:-NAN(09A_Zaz):0:-1:
+%5LA:-NAN():0:-1:
+%*5LA:-NAN():0:-1:
+%5LA:NAN():1:5:nan:
+%*5LA:NAN():0:5:
+%5LA:NAN(09A_Zaz):0:-1:
+%*5LA:NAN(09A_Zaz):0:-1:
+%5LA:0X0P0:1:5:0x0:
+%*5LA:0X0P0:0:5:
+%5LA:0X0P+0:0:-1:
+%*5LA:0X0P+0:0:-1:
+%5LA:0X8P-1025:0:-1:
+%*5LA:0X8P-1025:0:-1:
+%5LA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDFEP0123:0:5:
+%5LA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1:
+%*5LA:0X2.3456789ABCDFEP+123:0:5:
+%5LA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2:
+%*5LA:0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3:
+%*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LA:INFINITY:0:-1:
+%*5LA:INFINITY:0:-1:
+%5LA:+NAN():0:-1:
+%*5LA:+NAN():0:-1:
+%5LA:+NAN(09A_Zaz):0:-1:
+%*5LA:+NAN(09A_Zaz):0:-1:
+%5LA:+0X0P0:0:-1:
+%*5LA:+0X0P0:0:-1:
+%5LA:+0X0P+0:0:-1:
+%*5LA:+0X0P+0:0:-1:
+%5LA:+0X8P-1025:0:-1:
+%*5LA:+0X8P-1025:0:-1:
+%5LA:+0X2.3456789ABCDFEP0123:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDFEP0123:0:5:
+%5LA:+0X2.3456789ABCDFEP+123:1:5:0x1p1:
+%*5LA:+0X2.3456789ABCDFEP+123:0:5:
+%5LA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2:
+%*5LA:+0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3:
+%*5LA:+0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LA:+INFINITY:0:-1:
+%*5LA:+INFINITY:0:-1:
+%6LA::0:-1:
+%*6LA::0:-1:
+%6LA:-INFINITY:0:-1:
+%*6LA:-INFINITY:0:-1:
+%6LA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3:
+%*6LA:-0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2:
+%*6LA:-0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDFEP+123:0:6:
+%6LA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1:
+%*6LA:-0X2.3456789ABCDFEP0123:0:6:
+%6LA:-0X8P-1025:0:-1:
+%*6LA:-0X8P-1025:0:-1:
+%6LA:-0X0P+0:0:-1:
+%*6LA:-0X0P+0:0:-1:
+%6LA:-0X0P0:1:6:-0x0:
+%*6LA:-0X0P0:0:6:
+%6LA:-NAN(09A_Zaz):0:-1:
+%*6LA:-NAN(09A_Zaz):0:-1:
+%6LA:-NAN():1:6:-nan:
+%*6LA:-NAN():0:6:
+%6LA:NAN():1:5:nan:
+%*6LA:NAN():0:5:
+%6LA:NAN(09A_Zaz):0:-1:
+%*6LA:NAN(09A_Zaz):0:-1:
+%6LA:0X0P0:1:5:0x0:
+%*6LA:0X0P0:0:5:
+%6LA:0X0P+0:1:6:0x0:
+%*6LA:0X0P+0:0:6:
+%6LA:0X8P-1025:1:6:0x1p2:
+%*6LA:0X8P-1025:0:6:
+%6LA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDFEP0123:0:6:
+%6LA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1:
+%*6LA:0X2.3456789ABCDFEP+123:0:6:
+%6LA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2:
+%*6LA:0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3:
+%*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LA:INFINITY:0:-1:
+%*6LA:INFINITY:0:-1:
+%6LA:+NAN():1:6:nan:
+%*6LA:+NAN():0:6:
+%6LA:+NAN(09A_Zaz):0:-1:
+%*6LA:+NAN(09A_Zaz):0:-1:
+%6LA:+0X0P0:1:6:0x0:
+%*6LA:+0X0P0:0:6:
+%6LA:+0X0P+0:0:-1:
+%*6LA:+0X0P+0:0:-1:
+%6LA:+0X8P-1025:0:-1:
+%*6LA:+0X8P-1025:0:-1:
+%6LA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDFEP0123:0:6:
+%6LA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*6LA:+0X2.3456789ABCDFEP+123:0:6:
+%6LA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*6LA:+0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*6LA:+0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LA:+INFINITY:0:-1:
+%*6LA:+INFINITY:0:-1:
+%20LA::0:-1:
+%*20LA::0:-1:
+%20LA:-INFINITY:1:9:-inf:
+%*20LA:-INFINITY:0:9:
+%20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20LA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3:
+%*20LA:-0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LA:-0X2.3456789ABCDFEP+123:0:-1:
+%*20LA:-0X2.3456789ABCDFEP+123:0:-1:
+%20LA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20LA:-0X2.3456789ABCDFEP0123:0:20:
+%20LA:-0X8P-1025:1:10:-0x1p-1022:
+%*20LA:-0X8P-1025:0:10:
+%20LA:-0X0P+0:1:7:-0x0:
+%*20LA:-0X0P+0:0:7:
+%20LA:-0X0P0:1:6:-0x0:
+%*20LA:-0X0P0:0:6:
+%20LA:-NAN(09A_Zaz):1:13:-nan:
+%*20LA:-NAN(09A_Zaz):0:13:
+%20LA:-NAN():1:6:-nan:
+%*20LA:-NAN():0:6:
+%20LA:NAN():1:5:nan:
+%*20LA:NAN():0:5:
+%20LA:NAN(09A_Zaz):1:12:nan:
+%*20LA:NAN(09A_Zaz):0:12:
+%20LA:0X0P0:1:5:0x0:
+%*20LA:0X0P0:0:5:
+%20LA:0X0P+0:1:6:0x0:
+%*20LA:0X0P+0:0:6:
+%20LA:0X8P-1025:1:9:0x1p-1022:
+%*20LA:0X8P-1025:0:9:
+%20LA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20LA:0X2.3456789ABCDFEP0123:0:20:
+%20LA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20LA:0X2.3456789ABCDFEP+123:0:20:
+%20LA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12:
+%*20LA:0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4:
+%*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20:
+%20LA:INFINITY:1:8:inf:
+%*20LA:INFINITY:0:8:
+%20LA:+NAN():1:6:nan:
+%*20LA:+NAN():0:6:
+%20LA:+NAN(09A_Zaz):1:13:nan:
+%*20LA:+NAN(09A_Zaz):0:13:
+%20LA:+0X0P0:1:6:0x0:
+%*20LA:+0X0P0:0:6:
+%20LA:+0X0P+0:1:7:0x0:
+%*20LA:+0X0P+0:0:7:
+%20LA:+0X8P-1025:1:10:0x1p-1022:
+%*20LA:+0X8P-1025:0:10:
+%20LA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20LA:+0X2.3456789ABCDFEP0123:0:20:
+%20LA:+0X2.3456789ABCDFEP+123:0:-1:
+%*20LA:+0X2.3456789ABCDFEP+123:0:-1:
+%20LA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3:
+%*20LA:+0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20LA:+INFINITY:1:9:inf:
+%*20LA:+INFINITY:0:9:
+%32LA::0:-1:
+%*32LA::0:-1:
+%32LA:-INFINITY:1:9:-inf:
+%*32LA:-INFINITY:0:9:
+%32LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*32LA:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*32LA:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32LA:-0X2.3456789ABCDFEP+123:0:23:
+%32LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32LA:-0X2.3456789ABCDFEP0123:0:23:
+%32LA:-0X8P-1025:1:10:-0x1p-1022:
+%*32LA:-0X8P-1025:0:10:
+%32LA:-0X0P+0:1:7:-0x0:
+%*32LA:-0X0P+0:0:7:
+%32LA:-0X0P0:1:6:-0x0:
+%*32LA:-0X0P0:0:6:
+%32LA:-NAN(09A_Zaz):1:13:-nan:
+%*32LA:-NAN(09A_Zaz):0:13:
+%32LA:-NAN():1:6:-nan:
+%*32LA:-NAN():0:6:
+%32LA:NAN():1:5:nan:
+%*32LA:NAN():0:5:
+%32LA:NAN(09A_Zaz):1:12:nan:
+%*32LA:NAN(09A_Zaz):0:12:
+%32LA:0X0P0:1:5:0x0:
+%*32LA:0X0P0:0:5:
+%32LA:0X0P+0:1:6:0x0:
+%*32LA:0X0P+0:0:6:
+%32LA:0X8P-1025:1:9:0x1p-1022:
+%*32LA:0X8P-1025:0:9:
+%32LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32LA:0X2.3456789ABCDFEP0123:0:22:
+%32LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32LA:0X2.3456789ABCDFEP+123:0:22:
+%32LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*32LA:0X7.FFFFFFFFFFFFCP1021:0:22:
+%32LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%32LA:INFINITY:1:8:inf:
+%*32LA:INFINITY:0:8:
+%32LA:+NAN():1:6:nan:
+%*32LA:+NAN():0:6:
+%32LA:+NAN(09A_Zaz):1:13:nan:
+%*32LA:+NAN(09A_Zaz):0:13:
+%32LA:+0X0P0:1:6:0x0:
+%*32LA:+0X0P0:0:6:
+%32LA:+0X0P+0:1:7:0x0:
+%*32LA:+0X0P+0:0:7:
+%32LA:+0X8P-1025:1:10:0x1p-1022:
+%*32LA:+0X8P-1025:0:10:
+%32LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LA:+0X2.3456789ABCDFEP0123:0:23:
+%32LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LA:+0X2.3456789ABCDFEP+123:0:23:
+%32LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32LA:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32LA:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LA:+INFINITY:1:9:inf:
+%*32LA:+INFINITY:0:9:
+%5LA: :0:-1:
+%*5LA: :0:-1:
+%5LA: -INFINITY:0:-1:
+%*5LA: -INFINITY:0:-1:
+%5LA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3:
+%*5LA: -0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2:
+%*5LA: -0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDFEP+123:0:6:
+%5LA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1:
+%*5LA: -0X2.3456789ABCDFEP0123:0:6:
+%5LA: -0X8P-1025:0:-1:
+%*5LA: -0X8P-1025:0:-1:
+%5LA: -0X0P+0:0:-1:
+%*5LA: -0X0P+0:0:-1:
+%5LA: -0X0P0:0:-1:
+%*5LA: -0X0P0:0:-1:
+%5LA: -NAN(09A_Zaz):0:-1:
+%*5LA: -NAN(09A_Zaz):0:-1:
+%5LA: -NAN():0:-1:
+%*5LA: -NAN():0:-1:
+%5LA: NAN():1:6:nan:
+%*5LA: NAN():0:6:
+%5LA: NAN(09A_Zaz):0:-1:
+%*5LA: NAN(09A_Zaz):0:-1:
+%5LA: 0X0P0:1:6:0x0:
+%*5LA: 0X0P0:0:6:
+%5LA: 0X0P+0:0:-1:
+%*5LA: 0X0P+0:0:-1:
+%5LA: 0X8P-1025:0:-1:
+%*5LA: 0X8P-1025:0:-1:
+%5LA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDFEP0123:0:6:
+%5LA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*5LA: 0X2.3456789ABCDFEP+123:0:6:
+%5LA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*5LA: 0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LA: INFINITY:0:-1:
+%*5LA: INFINITY:0:-1:
+%5LA: +NAN():0:-1:
+%*5LA: +NAN():0:-1:
+%5LA: +NAN(09A_Zaz):0:-1:
+%*5LA: +NAN(09A_Zaz):0:-1:
+%5LA: +0X0P0:0:-1:
+%*5LA: +0X0P0:0:-1:
+%5LA: +0X0P+0:0:-1:
+%*5LA: +0X0P+0:0:-1:
+%5LA: +0X8P-1025:0:-1:
+%*5LA: +0X8P-1025:0:-1:
+%5LA: +0X2.3456789ABCDFEP0123:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDFEP0123:0:6:
+%5LA: +0X2.3456789ABCDFEP+123:1:6:0x1p1:
+%*5LA: +0X2.3456789ABCDFEP+123:0:6:
+%5LA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2:
+%*5LA: +0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3:
+%*5LA: +0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LA: +INFINITY:0:-1:
+%*5LA: +INFINITY:0:-1:
+%32LA: :0:-1:
+%*32LA: :0:-1:
+%32LA: -INFINITY:1:10:-inf:
+%*32LA: -INFINITY:0:10:
+%32LA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023:
+%*32LA: -0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32LA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023:
+%*32LA: -0X7.FFFFFFFFFFFFCP1021:0:24:
+%32LA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32LA: -0X2.3456789ABCDFEP+123:0:24:
+%32LA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32LA: -0X2.3456789ABCDFEP0123:0:24:
+%32LA: -0X8P-1025:1:11:-0x1p-1022:
+%*32LA: -0X8P-1025:0:11:
+%32LA: -0X0P+0:1:8:-0x0:
+%*32LA: -0X0P+0:0:8:
+%32LA: -0X0P0:1:7:-0x0:
+%*32LA: -0X0P0:0:7:
+%32LA: -NAN(09A_Zaz):1:14:-nan:
+%*32LA: -NAN(09A_Zaz):0:14:
+%32LA: -NAN():1:7:-nan:
+%*32LA: -NAN():0:7:
+%32LA: NAN():1:6:nan:
+%*32LA: NAN():0:6:
+%32LA: NAN(09A_Zaz):1:13:nan:
+%*32LA: NAN(09A_Zaz):0:13:
+%32LA: 0X0P0:1:6:0x0:
+%*32LA: 0X0P0:0:6:
+%32LA: 0X0P+0:1:7:0x0:
+%*32LA: 0X0P+0:0:7:
+%32LA: 0X8P-1025:1:10:0x1p-1022:
+%*32LA: 0X8P-1025:0:10:
+%32LA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LA: 0X2.3456789ABCDFEP0123:0:23:
+%32LA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LA: 0X2.3456789ABCDFEP+123:0:23:
+%32LA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32LA: 0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LA: INFINITY:1:9:inf:
+%*32LA: INFINITY:0:9:
+%32LA: +NAN():1:7:nan:
+%*32LA: +NAN():0:7:
+%32LA: +NAN(09A_Zaz):1:14:nan:
+%*32LA: +NAN(09A_Zaz):0:14:
+%32LA: +0X0P0:1:7:0x0:
+%*32LA: +0X0P0:0:7:
+%32LA: +0X0P+0:1:8:0x0:
+%*32LA: +0X0P+0:0:8:
+%32LA: +0X8P-1025:1:11:0x1p-1022:
+%*32LA: +0X8P-1025:0:11:
+%32LA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32LA: +0X2.3456789ABCDFEP0123:0:24:
+%32LA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32LA: +0X2.3456789ABCDFEP+123:0:24:
+%32LA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023:
+%*32LA: +0X7.FFFFFFFFFFFFCP1021:0:24:
+%32LA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023:
+%*32LA: +0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32LA: +INFINITY:1:10:inf:
+%*32LA: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input
new file mode 100644
index 0000000..9961adc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input
@@ -0,0 +1,558 @@
+%Le::0:-1:
+%*Le::0:-1:
+%Le:-infinity:1:9:-inf:
+%*Le:-infinity:0:9:
+%Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023:
+%*Le:-1.79769313486231570814527423731704357e+308:0:43:
+%Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023:
+%*Le:-1.79769313486231570814527423731704357e308:0:42:
+%Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*Le:-2.3441674165664682593913711430784253952e+37:0:44:
+%Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*Le:-2.3441674165664682593913711430784253952e037:0:44:
+%Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022:
+%*Le:-2.22507385850720138309023271733240406e-308:0:43:
+%Le:-0e+0:1:5:-0x0:
+%*Le:-0e+0:0:5:
+%Le:-0e0:1:4:-0x0:
+%*Le:-0e0:0:4:
+%Le:-nan(09A_Zaz):1:13:-nan:
+%*Le:-nan(09A_Zaz):0:13:
+%Le:-nan():1:6:-nan:
+%*Le:-nan():0:6:
+%Le:nan():1:5:nan:
+%*Le:nan():0:5:
+%Le:nan(09A_Zaz):1:12:nan:
+%*Le:nan(09A_Zaz):0:12:
+%Le:0e0:1:3:0x0:
+%*Le:0e0:0:3:
+%Le:0e+0:1:4:0x0:
+%*Le:0e+0:0:4:
+%Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022:
+%*Le:2.22507385850720138309023271733240406e-308:0:42:
+%Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*Le:2.3441674165664682593913711430784253952e037:0:43:
+%Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*Le:2.3441674165664682593913711430784253952e+37:0:43:
+%Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023:
+%*Le:1.79769313486231570814527423731704357e308:0:41:
+%Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023:
+%*Le:1.79769313486231570814527423731704357e+308:0:42:
+%Le:infinity:1:8:inf:
+%*Le:infinity:0:8:
+%Le:+nan():1:6:nan:
+%*Le:+nan():0:6:
+%Le:+nan(09A_Zaz):1:13:nan:
+%*Le:+nan(09A_Zaz):0:13:
+%Le:+0e0:1:4:0x0:
+%*Le:+0e0:0:4:
+%Le:+0e+0:1:5:0x0:
+%*Le:+0e+0:0:5:
+%Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*Le:+2.22507385850720138309023271733240406e-308:0:43:
+%Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*Le:+2.3441674165664682593913711430784253952e037:0:44:
+%Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*Le:+2.3441674165664682593913711430784253952e+37:0:44:
+%Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*Le:+1.79769313486231570814527423731704357e308:0:42:
+%Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*Le:+1.79769313486231570814527423731704357e+308:0:43:
+%Le:+infinity:1:9:inf:
+%*Le:+infinity:0:9:
+%1Le::0:-1:
+%*1Le::0:-1:
+%1Le:-infinity:0:-1:
+%*1Le:-infinity:0:-1:
+%1Le:-1.79769313486231570814527423731704357e+308:0:-1:
+%*1Le:-1.79769313486231570814527423731704357e+308:0:-1:
+%1Le:-1.79769313486231570814527423731704357e308:0:-1:
+%*1Le:-1.79769313486231570814527423731704357e308:0:-1:
+%1Le:-2.3441674165664682593913711430784253952e+37:0:-1:
+%*1Le:-2.3441674165664682593913711430784253952e+37:0:-1:
+%1Le:-2.3441674165664682593913711430784253952e037:0:-1:
+%*1Le:-2.3441674165664682593913711430784253952e037:0:-1:
+%1Le:-2.22507385850720138309023271733240406e-308:0:-1:
+%*1Le:-2.22507385850720138309023271733240406e-308:0:-1:
+%1Le:-0e+0:0:-1:
+%*1Le:-0e+0:0:-1:
+%1Le:-0e0:0:-1:
+%*1Le:-0e0:0:-1:
+%1Le:-nan(09A_Zaz):0:-1:
+%*1Le:-nan(09A_Zaz):0:-1:
+%1Le:-nan():0:-1:
+%*1Le:-nan():0:-1:
+%1Le:nan():0:-1:
+%*1Le:nan():0:-1:
+%1Le:nan(09A_Zaz):0:-1:
+%*1Le:nan(09A_Zaz):0:-1:
+%1Le:0e0:1:1:0x0:
+%*1Le:0e0:0:1:
+%1Le:0e+0:1:1:0x0:
+%*1Le:0e+0:0:1:
+%1Le:2.22507385850720138309023271733240406e-308:1:1:0x1p1:
+%*1Le:2.22507385850720138309023271733240406e-308:0:1:
+%1Le:2.3441674165664682593913711430784253952e037:1:1:0x1p1:
+%*1Le:2.3441674165664682593913711430784253952e037:0:1:
+%1Le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1:
+%*1Le:2.3441674165664682593913711430784253952e+37:0:1:
+%1Le:1.79769313486231570814527423731704357e308:1:1:0x1:
+%*1Le:1.79769313486231570814527423731704357e308:0:1:
+%1Le:1.79769313486231570814527423731704357e+308:1:1:0x1:
+%*1Le:1.79769313486231570814527423731704357e+308:0:1:
+%1Le:infinity:0:-1:
+%*1Le:infinity:0:-1:
+%1Le:+nan():0:-1:
+%*1Le:+nan():0:-1:
+%1Le:+nan(09A_Zaz):0:-1:
+%*1Le:+nan(09A_Zaz):0:-1:
+%1Le:+0e0:0:-1:
+%*1Le:+0e0:0:-1:
+%1Le:+0e+0:0:-1:
+%*1Le:+0e+0:0:-1:
+%1Le:+2.22507385850720138309023271733240406e-308:0:-1:
+%*1Le:+2.22507385850720138309023271733240406e-308:0:-1:
+%1Le:+2.3441674165664682593913711430784253952e037:0:-1:
+%*1Le:+2.3441674165664682593913711430784253952e037:0:-1:
+%1Le:+2.3441674165664682593913711430784253952e+37:0:-1:
+%*1Le:+2.3441674165664682593913711430784253952e+37:0:-1:
+%1Le:+1.79769313486231570814527423731704357e308:0:-1:
+%*1Le:+1.79769313486231570814527423731704357e308:0:-1:
+%1Le:+1.79769313486231570814527423731704357e+308:0:-1:
+%*1Le:+1.79769313486231570814527423731704357e+308:0:-1:
+%1Le:+infinity:0:-1:
+%*1Le:+infinity:0:-1:
+%2Le::0:-1:
+%*2Le::0:-1:
+%2Le:-infinity:0:-1:
+%*2Le:-infinity:0:-1:
+%2Le:-1.79769313486231570814527423731704357e+308:1:2:-0x1:
+%*2Le:-1.79769313486231570814527423731704357e+308:0:2:
+%2Le:-1.79769313486231570814527423731704357e308:1:2:-0x1:
+%*2Le:-1.79769313486231570814527423731704357e308:0:2:
+%2Le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1:
+%*2Le:-2.3441674165664682593913711430784253952e+37:0:2:
+%2Le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1:
+%*2Le:-2.3441674165664682593913711430784253952e037:0:2:
+%2Le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1:
+%*2Le:-2.22507385850720138309023271733240406e-308:0:2:
+%2Le:-0e+0:1:2:-0x0:
+%*2Le:-0e+0:0:2:
+%2Le:-0e0:1:2:-0x0:
+%*2Le:-0e0:0:2:
+%2Le:-nan(09A_Zaz):0:-1:
+%*2Le:-nan(09A_Zaz):0:-1:
+%2Le:-nan():0:-1:
+%*2Le:-nan():0:-1:
+%2Le:nan():0:-1:
+%*2Le:nan():0:-1:
+%2Le:nan(09A_Zaz):0:-1:
+%*2Le:nan(09A_Zaz):0:-1:
+%2Le:0e0:0:-1:
+%*2Le:0e0:0:-1:
+%2Le:0e+0:0:-1:
+%*2Le:0e+0:0:-1:
+%2Le:2.22507385850720138309023271733240406e-308:1:2:0x1p1:
+%*2Le:2.22507385850720138309023271733240406e-308:0:2:
+%2Le:2.3441674165664682593913711430784253952e037:1:2:0x1p1:
+%*2Le:2.3441674165664682593913711430784253952e037:0:2:
+%2Le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1:
+%*2Le:2.3441674165664682593913711430784253952e+37:0:2:
+%2Le:1.79769313486231570814527423731704357e308:1:2:0x1:
+%*2Le:1.79769313486231570814527423731704357e308:0:2:
+%2Le:1.79769313486231570814527423731704357e+308:1:2:0x1:
+%*2Le:1.79769313486231570814527423731704357e+308:0:2:
+%2Le:infinity:0:-1:
+%*2Le:infinity:0:-1:
+%2Le:+nan():0:-1:
+%*2Le:+nan():0:-1:
+%2Le:+nan(09A_Zaz):0:-1:
+%*2Le:+nan(09A_Zaz):0:-1:
+%2Le:+0e0:1:2:0x0:
+%*2Le:+0e0:0:2:
+%2Le:+0e+0:1:2:0x0:
+%*2Le:+0e+0:0:2:
+%2Le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1:
+%*2Le:+2.22507385850720138309023271733240406e-308:0:2:
+%2Le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1:
+%*2Le:+2.3441674165664682593913711430784253952e037:0:2:
+%2Le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1:
+%*2Le:+2.3441674165664682593913711430784253952e+37:0:2:
+%2Le:+1.79769313486231570814527423731704357e308:1:2:0x1:
+%*2Le:+1.79769313486231570814527423731704357e308:0:2:
+%2Le:+1.79769313486231570814527423731704357e+308:1:2:0x1:
+%*2Le:+1.79769313486231570814527423731704357e+308:0:2:
+%2Le:+infinity:0:-1:
+%*2Le:+infinity:0:-1:
+%3Le::0:-1:
+%*3Le::0:-1:
+%3Le:-infinity:0:-1:
+%*3Le:-infinity:0:-1:
+%3Le:-1.79769313486231570814527423731704357e+308:1:3:-0x1:
+%*3Le:-1.79769313486231570814527423731704357e+308:0:3:
+%3Le:-1.79769313486231570814527423731704357e308:1:3:-0x1:
+%*3Le:-1.79769313486231570814527423731704357e308:0:3:
+%3Le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1:
+%*3Le:-2.3441674165664682593913711430784253952e+37:0:3:
+%3Le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1:
+%*3Le:-2.3441674165664682593913711430784253952e037:0:3:
+%3Le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1:
+%*3Le:-2.22507385850720138309023271733240406e-308:0:3:
+%3Le:-0e+0:0:-1:
+%*3Le:-0e+0:0:-1:
+%3Le:-0e0:0:-1:
+%*3Le:-0e0:0:-1:
+%3Le:-nan(09A_Zaz):0:-1:
+%*3Le:-nan(09A_Zaz):0:-1:
+%3Le:-nan():0:-1:
+%*3Le:-nan():0:-1:
+%3Le:nan():1:3:nan:
+%*3Le:nan():0:3:
+%3Le:nan(09A_Zaz):1:3:nan:
+%*3Le:nan(09A_Zaz):0:3:
+%3Le:0e0:1:3:0x0:
+%*3Le:0e0:0:3:
+%3Le:0e+0:0:-1:
+%*3Le:0e+0:0:-1:
+%3Le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1:
+%*3Le:2.22507385850720138309023271733240406e-308:0:3:
+%3Le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1:
+%*3Le:2.3441674165664682593913711430784253952e037:0:3:
+%3Le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1:
+%*3Le:2.3441674165664682593913711430784253952e+37:0:3:
+%3Le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333:
+%*3Le:1.79769313486231570814527423731704357e308:0:3:
+%3Le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333:
+%*3Le:1.79769313486231570814527423731704357e+308:0:3:
+%3Le:infinity:1:3:inf:
+%*3Le:infinity:0:3:
+%3Le:+nan():0:-1:
+%*3Le:+nan():0:-1:
+%3Le:+nan(09A_Zaz):0:-1:
+%*3Le:+nan(09A_Zaz):0:-1:
+%3Le:+0e0:0:-1:
+%*3Le:+0e0:0:-1:
+%3Le:+0e+0:0:-1:
+%*3Le:+0e+0:0:-1:
+%3Le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1:
+%*3Le:+2.22507385850720138309023271733240406e-308:0:3:
+%3Le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1:
+%*3Le:+2.3441674165664682593913711430784253952e037:0:3:
+%3Le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1:
+%*3Le:+2.3441674165664682593913711430784253952e+37:0:3:
+%3Le:+1.79769313486231570814527423731704357e308:1:3:0x1:
+%*3Le:+1.79769313486231570814527423731704357e308:0:3:
+%3Le:+1.79769313486231570814527423731704357e+308:1:3:0x1:
+%*3Le:+1.79769313486231570814527423731704357e+308:0:3:
+%3Le:+infinity:0:-1:
+%*3Le:+infinity:0:-1:
+%4Le::0:-1:
+%*4Le::0:-1:
+%4Le:-infinity:1:4:-inf:
+%*4Le:-infinity:0:4:
+%4Le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333:
+%*4Le:-1.79769313486231570814527423731704357e+308:0:4:
+%4Le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333:
+%*4Le:-1.79769313486231570814527423731704357e308:0:4:
+%4Le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1:
+%*4Le:-2.3441674165664682593913711430784253952e+37:0:4:
+%4Le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1:
+%*4Le:-2.3441674165664682593913711430784253952e037:0:4:
+%4Le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1:
+%*4Le:-2.22507385850720138309023271733240406e-308:0:4:
+%4Le:-0e+0:0:-1:
+%*4Le:-0e+0:0:-1:
+%4Le:-0e0:1:4:-0x0:
+%*4Le:-0e0:0:4:
+%4Le:-nan(09A_Zaz):1:4:-nan:
+%*4Le:-nan(09A_Zaz):0:4:
+%4Le:-nan():1:4:-nan:
+%*4Le:-nan():0:4:
+%4Le:nan():0:-1:
+%*4Le:nan():0:-1:
+%4Le:nan(09A_Zaz):0:-1:
+%*4Le:nan(09A_Zaz):0:-1:
+%4Le:0e0:1:3:0x0:
+%*4Le:0e0:0:3:
+%4Le:0e+0:1:4:0x0:
+%*4Le:0e+0:0:4:
+%4Le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1:
+%*4Le:2.22507385850720138309023271733240406e-308:0:4:
+%4Le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1:
+%*4Le:2.3441674165664682593913711430784253952e037:0:4:
+%4Le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1:
+%*4Le:2.3441674165664682593913711430784253952e+37:0:4:
+%4Le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4:
+%*4Le:1.79769313486231570814527423731704357e308:0:4:
+%4Le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4:
+%*4Le:1.79769313486231570814527423731704357e+308:0:4:
+%4Le:infinity:0:-1:
+%*4Le:infinity:0:-1:
+%4Le:+nan():1:4:nan:
+%*4Le:+nan():0:4:
+%4Le:+nan(09A_Zaz):1:4:nan:
+%*4Le:+nan(09A_Zaz):0:4:
+%4Le:+0e0:1:4:0x0:
+%*4Le:+0e0:0:4:
+%4Le:+0e+0:0:-1:
+%*4Le:+0e+0:0:-1:
+%4Le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1:
+%*4Le:+2.22507385850720138309023271733240406e-308:0:4:
+%4Le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1:
+%*4Le:+2.3441674165664682593913711430784253952e037:0:4:
+%4Le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1:
+%*4Le:+2.3441674165664682593913711430784253952e+37:0:4:
+%4Le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333:
+%*4Le:+1.79769313486231570814527423731704357e308:0:4:
+%4Le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333:
+%*4Le:+1.79769313486231570814527423731704357e+308:0:4:
+%4Le:+infinity:1:4:inf:
+%*4Le:+infinity:0:4:
+%40Le::0:-1:
+%*40Le::0:-1:
+%40Le:-infinity:1:9:-inf:
+%*40Le:-infinity:0:9:
+%40Le:-1.79769313486231570814527423731704357e+308:0:-1:
+%*40Le:-1.79769313486231570814527423731704357e+308:0:-1:
+%40Le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10:
+%*40Le:-1.79769313486231570814527423731704357e308:0:40:
+%40Le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1:
+%*40Le:-2.3441674165664682593913711430784253952e+37:0:40:
+%40Le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1:
+%*40Le:-2.3441674165664682593913711430784253952e037:0:40:
+%40Le:-2.22507385850720138309023271733240406e-308:0:-1:
+%*40Le:-2.22507385850720138309023271733240406e-308:0:-1:
+%40Le:-0e+0:1:5:-0x0:
+%*40Le:-0e+0:0:5:
+%40Le:-0e0:1:4:-0x0:
+%*40Le:-0e0:0:4:
+%40Le:-nan(09A_Zaz):1:13:-nan:
+%*40Le:-nan(09A_Zaz):0:13:
+%40Le:-nan():1:6:-nan:
+%*40Le:-nan():0:6:
+%40Le:nan():1:5:nan:
+%*40Le:nan():0:5:
+%40Le:nan(09A_Zaz):1:12:nan:
+%*40Le:nan(09A_Zaz):0:12:
+%40Le:0e0:1:3:0x0:
+%*40Le:0e0:0:3:
+%40Le:0e+0:1:4:0x0:
+%*40Le:0e+0:0:4:
+%40Le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9:
+%*40Le:2.22507385850720138309023271733240406e-308:0:40:
+%40Le:2.3441674165664682593913711430784253952e037:0:-1:
+%*40Le:2.3441674165664682593913711430784253952e037:0:-1:
+%40Le:2.3441674165664682593913711430784253952e+37:0:-1:
+%*40Le:2.3441674165664682593913711430784253952e+37:0:-1:
+%40Le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100:
+%*40Le:1.79769313486231570814527423731704357e308:0:40:
+%40Le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10:
+%*40Le:1.79769313486231570814527423731704357e+308:0:40:
+%40Le:infinity:1:8:inf:
+%*40Le:infinity:0:8:
+%40Le:+nan():1:6:nan:
+%*40Le:+nan():0:6:
+%40Le:+nan(09A_Zaz):1:13:nan:
+%*40Le:+nan(09A_Zaz):0:13:
+%40Le:+0e0:1:4:0x0:
+%*40Le:+0e0:0:4:
+%40Le:+0e+0:1:5:0x0:
+%*40Le:+0e+0:0:5:
+%40Le:+2.22507385850720138309023271733240406e-308:0:-1:
+%*40Le:+2.22507385850720138309023271733240406e-308:0:-1:
+%40Le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1:
+%*40Le:+2.3441674165664682593913711430784253952e037:0:40:
+%40Le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1:
+%*40Le:+2.3441674165664682593913711430784253952e+37:0:40:
+%40Le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10:
+%*40Le:+1.79769313486231570814527423731704357e308:0:40:
+%40Le:+1.79769313486231570814527423731704357e+308:0:-1:
+%*40Le:+1.79769313486231570814527423731704357e+308:0:-1:
+%40Le:+infinity:1:9:inf:
+%*40Le:+infinity:0:9:
+%48Le::0:-1:
+%*48Le::0:-1:
+%48Le:-infinity:1:9:-inf:
+%*48Le:-infinity:0:9:
+%48Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023:
+%*48Le:-1.79769313486231570814527423731704357e+308:0:43:
+%48Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023:
+%*48Le:-1.79769313486231570814527423731704357e308:0:42:
+%48Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48Le:-2.3441674165664682593913711430784253952e+37:0:44:
+%48Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48Le:-2.3441674165664682593913711430784253952e037:0:44:
+%48Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022:
+%*48Le:-2.22507385850720138309023271733240406e-308:0:43:
+%48Le:-0e+0:1:5:-0x0:
+%*48Le:-0e+0:0:5:
+%48Le:-0e0:1:4:-0x0:
+%*48Le:-0e0:0:4:
+%48Le:-nan(09A_Zaz):1:13:-nan:
+%*48Le:-nan(09A_Zaz):0:13:
+%48Le:-nan():1:6:-nan:
+%*48Le:-nan():0:6:
+%48Le:nan():1:5:nan:
+%*48Le:nan():0:5:
+%48Le:nan(09A_Zaz):1:12:nan:
+%*48Le:nan(09A_Zaz):0:12:
+%48Le:0e0:1:3:0x0:
+%*48Le:0e0:0:3:
+%48Le:0e+0:1:4:0x0:
+%*48Le:0e+0:0:4:
+%48Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022:
+%*48Le:2.22507385850720138309023271733240406e-308:0:42:
+%48Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48Le:2.3441674165664682593913711430784253952e037:0:43:
+%48Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48Le:2.3441674165664682593913711430784253952e+37:0:43:
+%48Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023:
+%*48Le:1.79769313486231570814527423731704357e308:0:41:
+%48Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023:
+%*48Le:1.79769313486231570814527423731704357e+308:0:42:
+%48Le:infinity:1:8:inf:
+%*48Le:infinity:0:8:
+%48Le:+nan():1:6:nan:
+%*48Le:+nan():0:6:
+%48Le:+nan(09A_Zaz):1:13:nan:
+%*48Le:+nan(09A_Zaz):0:13:
+%48Le:+0e0:1:4:0x0:
+%*48Le:+0e0:0:4:
+%48Le:+0e+0:1:5:0x0:
+%*48Le:+0e+0:0:5:
+%48Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*48Le:+2.22507385850720138309023271733240406e-308:0:43:
+%48Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48Le:+2.3441674165664682593913711430784253952e037:0:44:
+%48Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48Le:+2.3441674165664682593913711430784253952e+37:0:44:
+%48Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*48Le:+1.79769313486231570814527423731704357e308:0:42:
+%48Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*48Le:+1.79769313486231570814527423731704357e+308:0:43:
+%48Le:+infinity:1:9:inf:
+%*48Le:+infinity:0:9:
+%3Le: :0:-1:
+%*3Le: :0:-1:
+%3Le: -infinity:0:-1:
+%*3Le: -infinity:0:-1:
+%3Le: -1.79769313486231570814527423731704357e+308:1:4:-0x1:
+%*3Le: -1.79769313486231570814527423731704357e+308:0:4:
+%3Le: -1.79769313486231570814527423731704357e308:1:4:-0x1:
+%*3Le: -1.79769313486231570814527423731704357e308:0:4:
+%3Le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1:
+%*3Le: -2.3441674165664682593913711430784253952e+37:0:4:
+%3Le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1:
+%*3Le: -2.3441674165664682593913711430784253952e037:0:4:
+%3Le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1:
+%*3Le: -2.22507385850720138309023271733240406e-308:0:4:
+%3Le: -0e+0:0:-1:
+%*3Le: -0e+0:0:-1:
+%3Le: -0e0:0:-1:
+%*3Le: -0e0:0:-1:
+%3Le: -nan(09A_Zaz):0:-1:
+%*3Le: -nan(09A_Zaz):0:-1:
+%3Le: -nan():0:-1:
+%*3Le: -nan():0:-1:
+%3Le: nan():1:4:nan:
+%*3Le: nan():0:4:
+%3Le: nan(09A_Zaz):1:4:nan:
+%*3Le: nan(09A_Zaz):0:4:
+%3Le: 0e0:1:4:0x0:
+%*3Le: 0e0:0:4:
+%3Le: 0e+0:0:-1:
+%*3Le: 0e+0:0:-1:
+%3Le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1:
+%*3Le: 2.22507385850720138309023271733240406e-308:0:4:
+%3Le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1:
+%*3Le: 2.3441674165664682593913711430784253952e037:0:4:
+%3Le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1:
+%*3Le: 2.3441674165664682593913711430784253952e+37:0:4:
+%3Le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333:
+%*3Le: 1.79769313486231570814527423731704357e308:0:4:
+%3Le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333:
+%*3Le: 1.79769313486231570814527423731704357e+308:0:4:
+%3Le: infinity:1:4:inf:
+%*3Le: infinity:0:4:
+%3Le: +nan():0:-1:
+%*3Le: +nan():0:-1:
+%3Le: +nan(09A_Zaz):0:-1:
+%*3Le: +nan(09A_Zaz):0:-1:
+%3Le: +0e0:0:-1:
+%*3Le: +0e0:0:-1:
+%3Le: +0e+0:0:-1:
+%*3Le: +0e+0:0:-1:
+%3Le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1:
+%*3Le: +2.22507385850720138309023271733240406e-308:0:4:
+%3Le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1:
+%*3Le: +2.3441674165664682593913711430784253952e037:0:4:
+%3Le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1:
+%*3Le: +2.3441674165664682593913711430784253952e+37:0:4:
+%3Le: +1.79769313486231570814527423731704357e308:1:4:0x1:
+%*3Le: +1.79769313486231570814527423731704357e308:0:4:
+%3Le: +1.79769313486231570814527423731704357e+308:1:4:0x1:
+%*3Le: +1.79769313486231570814527423731704357e+308:0:4:
+%3Le: +infinity:0:-1:
+%*3Le: +infinity:0:-1:
+%48Le: :0:-1:
+%*48Le: :0:-1:
+%48Le: -infinity:1:10:-inf:
+%*48Le: -infinity:0:10:
+%48Le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023:
+%*48Le: -1.79769313486231570814527423731704357e+308:0:44:
+%48Le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023:
+%*48Le: -1.79769313486231570814527423731704357e308:0:43:
+%48Le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48Le: -2.3441674165664682593913711430784253952e+37:0:45:
+%48Le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48Le: -2.3441674165664682593913711430784253952e037:0:45:
+%48Le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022:
+%*48Le: -2.22507385850720138309023271733240406e-308:0:44:
+%48Le: -0e+0:1:6:-0x0:
+%*48Le: -0e+0:0:6:
+%48Le: -0e0:1:5:-0x0:
+%*48Le: -0e0:0:5:
+%48Le: -nan(09A_Zaz):1:14:-nan:
+%*48Le: -nan(09A_Zaz):0:14:
+%48Le: -nan():1:7:-nan:
+%*48Le: -nan():0:7:
+%48Le: nan():1:6:nan:
+%*48Le: nan():0:6:
+%48Le: nan(09A_Zaz):1:13:nan:
+%*48Le: nan(09A_Zaz):0:13:
+%48Le: 0e0:1:4:0x0:
+%*48Le: 0e0:0:4:
+%48Le: 0e+0:1:5:0x0:
+%*48Le: 0e+0:0:5:
+%48Le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022:
+%*48Le: 2.22507385850720138309023271733240406e-308:0:43:
+%48Le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48Le: 2.3441674165664682593913711430784253952e037:0:44:
+%48Le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48Le: 2.3441674165664682593913711430784253952e+37:0:44:
+%48Le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023:
+%*48Le: 1.79769313486231570814527423731704357e308:0:42:
+%48Le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023:
+%*48Le: 1.79769313486231570814527423731704357e+308:0:43:
+%48Le: infinity:1:9:inf:
+%*48Le: infinity:0:9:
+%48Le: +nan():1:7:nan:
+%*48Le: +nan():0:7:
+%48Le: +nan(09A_Zaz):1:14:nan:
+%*48Le: +nan(09A_Zaz):0:14:
+%48Le: +0e0:1:5:0x0:
+%*48Le: +0e0:0:5:
+%48Le: +0e+0:1:6:0x0:
+%*48Le: +0e+0:0:6:
+%48Le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022:
+%*48Le: +2.22507385850720138309023271733240406e-308:0:44:
+%48Le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48Le: +2.3441674165664682593913711430784253952e037:0:45:
+%48Le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48Le: +2.3441674165664682593913711430784253952e+37:0:45:
+%48Le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023:
+%*48Le: +1.79769313486231570814527423731704357e308:0:43:
+%48Le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023:
+%*48Le: +1.79769313486231570814527423731704357e+308:0:44:
+%48Le: +infinity:1:10:inf:
+%*48Le: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input
new file mode 100644
index 0000000..9a0186f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input
@@ -0,0 +1,558 @@
+%LE::0:-1:
+%*LE::0:-1:
+%LE:-INFINITY:1:9:-inf:
+%*LE:-INFINITY:0:9:
+%LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023:
+%*LE:-1.79769313486231570814527423731704357E+308:0:43:
+%LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023:
+%*LE:-1.79769313486231570814527423731704357E308:0:42:
+%LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*LE:-2.3441674165664682593913711430784253952E+37:0:44:
+%LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*LE:-2.3441674165664682593913711430784253952E037:0:44:
+%LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022:
+%*LE:-2.22507385850720138309023271733240406E-308:0:43:
+%LE:-0E+0:1:5:-0x0:
+%*LE:-0E+0:0:5:
+%LE:-0E0:1:4:-0x0:
+%*LE:-0E0:0:4:
+%LE:-NAN(09A_Zaz):1:13:-nan:
+%*LE:-NAN(09A_Zaz):0:13:
+%LE:-NAN():1:6:-nan:
+%*LE:-NAN():0:6:
+%LE:NAN():1:5:nan:
+%*LE:NAN():0:5:
+%LE:NAN(09A_Zaz):1:12:nan:
+%*LE:NAN(09A_Zaz):0:12:
+%LE:0E0:1:3:0x0:
+%*LE:0E0:0:3:
+%LE:0E+0:1:4:0x0:
+%*LE:0E+0:0:4:
+%LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022:
+%*LE:2.22507385850720138309023271733240406E-308:0:42:
+%LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*LE:2.3441674165664682593913711430784253952E037:0:43:
+%LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*LE:2.3441674165664682593913711430784253952E+37:0:43:
+%LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023:
+%*LE:1.79769313486231570814527423731704357E308:0:41:
+%LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023:
+%*LE:1.79769313486231570814527423731704357E+308:0:42:
+%LE:INFINITY:1:8:inf:
+%*LE:INFINITY:0:8:
+%LE:+NAN():1:6:nan:
+%*LE:+NAN():0:6:
+%LE:+NAN(09A_Zaz):1:13:nan:
+%*LE:+NAN(09A_Zaz):0:13:
+%LE:+0E0:1:4:0x0:
+%*LE:+0E0:0:4:
+%LE:+0E+0:1:5:0x0:
+%*LE:+0E+0:0:5:
+%LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*LE:+2.22507385850720138309023271733240406E-308:0:43:
+%LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*LE:+2.3441674165664682593913711430784253952E037:0:44:
+%LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*LE:+2.3441674165664682593913711430784253952E+37:0:44:
+%LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*LE:+1.79769313486231570814527423731704357E308:0:42:
+%LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*LE:+1.79769313486231570814527423731704357E+308:0:43:
+%LE:+INFINITY:1:9:inf:
+%*LE:+INFINITY:0:9:
+%1LE::0:-1:
+%*1LE::0:-1:
+%1LE:-INFINITY:0:-1:
+%*1LE:-INFINITY:0:-1:
+%1LE:-1.79769313486231570814527423731704357E+308:0:-1:
+%*1LE:-1.79769313486231570814527423731704357E+308:0:-1:
+%1LE:-1.79769313486231570814527423731704357E308:0:-1:
+%*1LE:-1.79769313486231570814527423731704357E308:0:-1:
+%1LE:-2.3441674165664682593913711430784253952E+37:0:-1:
+%*1LE:-2.3441674165664682593913711430784253952E+37:0:-1:
+%1LE:-2.3441674165664682593913711430784253952E037:0:-1:
+%*1LE:-2.3441674165664682593913711430784253952E037:0:-1:
+%1LE:-2.22507385850720138309023271733240406E-308:0:-1:
+%*1LE:-2.22507385850720138309023271733240406E-308:0:-1:
+%1LE:-0E+0:0:-1:
+%*1LE:-0E+0:0:-1:
+%1LE:-0E0:0:-1:
+%*1LE:-0E0:0:-1:
+%1LE:-NAN(09A_Zaz):0:-1:
+%*1LE:-NAN(09A_Zaz):0:-1:
+%1LE:-NAN():0:-1:
+%*1LE:-NAN():0:-1:
+%1LE:NAN():0:-1:
+%*1LE:NAN():0:-1:
+%1LE:NAN(09A_Zaz):0:-1:
+%*1LE:NAN(09A_Zaz):0:-1:
+%1LE:0E0:1:1:0x0:
+%*1LE:0E0:0:1:
+%1LE:0E+0:1:1:0x0:
+%*1LE:0E+0:0:1:
+%1LE:2.22507385850720138309023271733240406E-308:1:1:0x1p1:
+%*1LE:2.22507385850720138309023271733240406E-308:0:1:
+%1LE:2.3441674165664682593913711430784253952E037:1:1:0x1p1:
+%*1LE:2.3441674165664682593913711430784253952E037:0:1:
+%1LE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1:
+%*1LE:2.3441674165664682593913711430784253952E+37:0:1:
+%1LE:1.79769313486231570814527423731704357E308:1:1:0x1:
+%*1LE:1.79769313486231570814527423731704357E308:0:1:
+%1LE:1.79769313486231570814527423731704357E+308:1:1:0x1:
+%*1LE:1.79769313486231570814527423731704357E+308:0:1:
+%1LE:INFINITY:0:-1:
+%*1LE:INFINITY:0:-1:
+%1LE:+NAN():0:-1:
+%*1LE:+NAN():0:-1:
+%1LE:+NAN(09A_Zaz):0:-1:
+%*1LE:+NAN(09A_Zaz):0:-1:
+%1LE:+0E0:0:-1:
+%*1LE:+0E0:0:-1:
+%1LE:+0E+0:0:-1:
+%*1LE:+0E+0:0:-1:
+%1LE:+2.22507385850720138309023271733240406E-308:0:-1:
+%*1LE:+2.22507385850720138309023271733240406E-308:0:-1:
+%1LE:+2.3441674165664682593913711430784253952E037:0:-1:
+%*1LE:+2.3441674165664682593913711430784253952E037:0:-1:
+%1LE:+2.3441674165664682593913711430784253952E+37:0:-1:
+%*1LE:+2.3441674165664682593913711430784253952E+37:0:-1:
+%1LE:+1.79769313486231570814527423731704357E308:0:-1:
+%*1LE:+1.79769313486231570814527423731704357E308:0:-1:
+%1LE:+1.79769313486231570814527423731704357E+308:0:-1:
+%*1LE:+1.79769313486231570814527423731704357E+308:0:-1:
+%1LE:+INFINITY:0:-1:
+%*1LE:+INFINITY:0:-1:
+%2LE::0:-1:
+%*2LE::0:-1:
+%2LE:-INFINITY:0:-1:
+%*2LE:-INFINITY:0:-1:
+%2LE:-1.79769313486231570814527423731704357E+308:1:2:-0x1:
+%*2LE:-1.79769313486231570814527423731704357E+308:0:2:
+%2LE:-1.79769313486231570814527423731704357E308:1:2:-0x1:
+%*2LE:-1.79769313486231570814527423731704357E308:0:2:
+%2LE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1:
+%*2LE:-2.3441674165664682593913711430784253952E+37:0:2:
+%2LE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1:
+%*2LE:-2.3441674165664682593913711430784253952E037:0:2:
+%2LE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1:
+%*2LE:-2.22507385850720138309023271733240406E-308:0:2:
+%2LE:-0E+0:1:2:-0x0:
+%*2LE:-0E+0:0:2:
+%2LE:-0E0:1:2:-0x0:
+%*2LE:-0E0:0:2:
+%2LE:-NAN(09A_Zaz):0:-1:
+%*2LE:-NAN(09A_Zaz):0:-1:
+%2LE:-NAN():0:-1:
+%*2LE:-NAN():0:-1:
+%2LE:NAN():0:-1:
+%*2LE:NAN():0:-1:
+%2LE:NAN(09A_Zaz):0:-1:
+%*2LE:NAN(09A_Zaz):0:-1:
+%2LE:0E0:0:-1:
+%*2LE:0E0:0:-1:
+%2LE:0E+0:0:-1:
+%*2LE:0E+0:0:-1:
+%2LE:2.22507385850720138309023271733240406E-308:1:2:0x1p1:
+%*2LE:2.22507385850720138309023271733240406E-308:0:2:
+%2LE:2.3441674165664682593913711430784253952E037:1:2:0x1p1:
+%*2LE:2.3441674165664682593913711430784253952E037:0:2:
+%2LE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1:
+%*2LE:2.3441674165664682593913711430784253952E+37:0:2:
+%2LE:1.79769313486231570814527423731704357E308:1:2:0x1:
+%*2LE:1.79769313486231570814527423731704357E308:0:2:
+%2LE:1.79769313486231570814527423731704357E+308:1:2:0x1:
+%*2LE:1.79769313486231570814527423731704357E+308:0:2:
+%2LE:INFINITY:0:-1:
+%*2LE:INFINITY:0:-1:
+%2LE:+NAN():0:-1:
+%*2LE:+NAN():0:-1:
+%2LE:+NAN(09A_Zaz):0:-1:
+%*2LE:+NAN(09A_Zaz):0:-1:
+%2LE:+0E0:1:2:0x0:
+%*2LE:+0E0:0:2:
+%2LE:+0E+0:1:2:0x0:
+%*2LE:+0E+0:0:2:
+%2LE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1:
+%*2LE:+2.22507385850720138309023271733240406E-308:0:2:
+%2LE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1:
+%*2LE:+2.3441674165664682593913711430784253952E037:0:2:
+%2LE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1:
+%*2LE:+2.3441674165664682593913711430784253952E+37:0:2:
+%2LE:+1.79769313486231570814527423731704357E308:1:2:0x1:
+%*2LE:+1.79769313486231570814527423731704357E308:0:2:
+%2LE:+1.79769313486231570814527423731704357E+308:1:2:0x1:
+%*2LE:+1.79769313486231570814527423731704357E+308:0:2:
+%2LE:+INFINITY:0:-1:
+%*2LE:+INFINITY:0:-1:
+%3LE::0:-1:
+%*3LE::0:-1:
+%3LE:-INFINITY:0:-1:
+%*3LE:-INFINITY:0:-1:
+%3LE:-1.79769313486231570814527423731704357E+308:1:3:-0x1:
+%*3LE:-1.79769313486231570814527423731704357E+308:0:3:
+%3LE:-1.79769313486231570814527423731704357E308:1:3:-0x1:
+%*3LE:-1.79769313486231570814527423731704357E308:0:3:
+%3LE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1:
+%*3LE:-2.3441674165664682593913711430784253952E+37:0:3:
+%3LE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1:
+%*3LE:-2.3441674165664682593913711430784253952E037:0:3:
+%3LE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1:
+%*3LE:-2.22507385850720138309023271733240406E-308:0:3:
+%3LE:-0E+0:0:-1:
+%*3LE:-0E+0:0:-1:
+%3LE:-0E0:0:-1:
+%*3LE:-0E0:0:-1:
+%3LE:-NAN(09A_Zaz):0:-1:
+%*3LE:-NAN(09A_Zaz):0:-1:
+%3LE:-NAN():0:-1:
+%*3LE:-NAN():0:-1:
+%3LE:NAN():1:3:nan:
+%*3LE:NAN():0:3:
+%3LE:NAN(09A_Zaz):1:3:nan:
+%*3LE:NAN(09A_Zaz):0:3:
+%3LE:0E0:1:3:0x0:
+%*3LE:0E0:0:3:
+%3LE:0E+0:0:-1:
+%*3LE:0E+0:0:-1:
+%3LE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1:
+%*3LE:2.22507385850720138309023271733240406E-308:0:3:
+%3LE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1:
+%*3LE:2.3441674165664682593913711430784253952E037:0:3:
+%3LE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1:
+%*3LE:2.3441674165664682593913711430784253952E+37:0:3:
+%3LE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333:
+%*3LE:1.79769313486231570814527423731704357E308:0:3:
+%3LE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333:
+%*3LE:1.79769313486231570814527423731704357E+308:0:3:
+%3LE:INFINITY:1:3:inf:
+%*3LE:INFINITY:0:3:
+%3LE:+NAN():0:-1:
+%*3LE:+NAN():0:-1:
+%3LE:+NAN(09A_Zaz):0:-1:
+%*3LE:+NAN(09A_Zaz):0:-1:
+%3LE:+0E0:0:-1:
+%*3LE:+0E0:0:-1:
+%3LE:+0E+0:0:-1:
+%*3LE:+0E+0:0:-1:
+%3LE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1:
+%*3LE:+2.22507385850720138309023271733240406E-308:0:3:
+%3LE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1:
+%*3LE:+2.3441674165664682593913711430784253952E037:0:3:
+%3LE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1:
+%*3LE:+2.3441674165664682593913711430784253952E+37:0:3:
+%3LE:+1.79769313486231570814527423731704357E308:1:3:0x1:
+%*3LE:+1.79769313486231570814527423731704357E308:0:3:
+%3LE:+1.79769313486231570814527423731704357E+308:1:3:0x1:
+%*3LE:+1.79769313486231570814527423731704357E+308:0:3:
+%3LE:+INFINITY:0:-1:
+%*3LE:+INFINITY:0:-1:
+%4LE::0:-1:
+%*4LE::0:-1:
+%4LE:-INFINITY:1:4:-inf:
+%*4LE:-INFINITY:0:4:
+%4LE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333:
+%*4LE:-1.79769313486231570814527423731704357E+308:0:4:
+%4LE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333:
+%*4LE:-1.79769313486231570814527423731704357E308:0:4:
+%4LE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1:
+%*4LE:-2.3441674165664682593913711430784253952E+37:0:4:
+%4LE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1:
+%*4LE:-2.3441674165664682593913711430784253952E037:0:4:
+%4LE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1:
+%*4LE:-2.22507385850720138309023271733240406E-308:0:4:
+%4LE:-0E+0:0:-1:
+%*4LE:-0E+0:0:-1:
+%4LE:-0E0:1:4:-0x0:
+%*4LE:-0E0:0:4:
+%4LE:-NAN(09A_Zaz):1:4:-nan:
+%*4LE:-NAN(09A_Zaz):0:4:
+%4LE:-NAN():1:4:-nan:
+%*4LE:-NAN():0:4:
+%4LE:NAN():0:-1:
+%*4LE:NAN():0:-1:
+%4LE:NAN(09A_Zaz):0:-1:
+%*4LE:NAN(09A_Zaz):0:-1:
+%4LE:0E0:1:3:0x0:
+%*4LE:0E0:0:3:
+%4LE:0E+0:1:4:0x0:
+%*4LE:0E+0:0:4:
+%4LE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1:
+%*4LE:2.22507385850720138309023271733240406E-308:0:4:
+%4LE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1:
+%*4LE:2.3441674165664682593913711430784253952E037:0:4:
+%4LE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1:
+%*4LE:2.3441674165664682593913711430784253952E+37:0:4:
+%4LE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4:
+%*4LE:1.79769313486231570814527423731704357E308:0:4:
+%4LE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4:
+%*4LE:1.79769313486231570814527423731704357E+308:0:4:
+%4LE:INFINITY:0:-1:
+%*4LE:INFINITY:0:-1:
+%4LE:+NAN():1:4:nan:
+%*4LE:+NAN():0:4:
+%4LE:+NAN(09A_Zaz):1:4:nan:
+%*4LE:+NAN(09A_Zaz):0:4:
+%4LE:+0E0:1:4:0x0:
+%*4LE:+0E0:0:4:
+%4LE:+0E+0:0:-1:
+%*4LE:+0E+0:0:-1:
+%4LE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1:
+%*4LE:+2.22507385850720138309023271733240406E-308:0:4:
+%4LE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1:
+%*4LE:+2.3441674165664682593913711430784253952E037:0:4:
+%4LE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1:
+%*4LE:+2.3441674165664682593913711430784253952E+37:0:4:
+%4LE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333:
+%*4LE:+1.79769313486231570814527423731704357E308:0:4:
+%4LE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333:
+%*4LE:+1.79769313486231570814527423731704357E+308:0:4:
+%4LE:+INFINITY:1:4:inf:
+%*4LE:+INFINITY:0:4:
+%40LE::0:-1:
+%*40LE::0:-1:
+%40LE:-INFINITY:1:9:-inf:
+%*40LE:-INFINITY:0:9:
+%40LE:-1.79769313486231570814527423731704357E+308:0:-1:
+%*40LE:-1.79769313486231570814527423731704357E+308:0:-1:
+%40LE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10:
+%*40LE:-1.79769313486231570814527423731704357E308:0:40:
+%40LE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1:
+%*40LE:-2.3441674165664682593913711430784253952E+37:0:40:
+%40LE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1:
+%*40LE:-2.3441674165664682593913711430784253952E037:0:40:
+%40LE:-2.22507385850720138309023271733240406E-308:0:-1:
+%*40LE:-2.22507385850720138309023271733240406E-308:0:-1:
+%40LE:-0E+0:1:5:-0x0:
+%*40LE:-0E+0:0:5:
+%40LE:-0E0:1:4:-0x0:
+%*40LE:-0E0:0:4:
+%40LE:-NAN(09A_Zaz):1:13:-nan:
+%*40LE:-NAN(09A_Zaz):0:13:
+%40LE:-NAN():1:6:-nan:
+%*40LE:-NAN():0:6:
+%40LE:NAN():1:5:nan:
+%*40LE:NAN():0:5:
+%40LE:NAN(09A_Zaz):1:12:nan:
+%*40LE:NAN(09A_Zaz):0:12:
+%40LE:0E0:1:3:0x0:
+%*40LE:0E0:0:3:
+%40LE:0E+0:1:4:0x0:
+%*40LE:0E+0:0:4:
+%40LE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9:
+%*40LE:2.22507385850720138309023271733240406E-308:0:40:
+%40LE:2.3441674165664682593913711430784253952E037:0:-1:
+%*40LE:2.3441674165664682593913711430784253952E037:0:-1:
+%40LE:2.3441674165664682593913711430784253952E+37:0:-1:
+%*40LE:2.3441674165664682593913711430784253952E+37:0:-1:
+%40LE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100:
+%*40LE:1.79769313486231570814527423731704357E308:0:40:
+%40LE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10:
+%*40LE:1.79769313486231570814527423731704357E+308:0:40:
+%40LE:INFINITY:1:8:inf:
+%*40LE:INFINITY:0:8:
+%40LE:+NAN():1:6:nan:
+%*40LE:+NAN():0:6:
+%40LE:+NAN(09A_Zaz):1:13:nan:
+%*40LE:+NAN(09A_Zaz):0:13:
+%40LE:+0E0:1:4:0x0:
+%*40LE:+0E0:0:4:
+%40LE:+0E+0:1:5:0x0:
+%*40LE:+0E+0:0:5:
+%40LE:+2.22507385850720138309023271733240406E-308:0:-1:
+%*40LE:+2.22507385850720138309023271733240406E-308:0:-1:
+%40LE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1:
+%*40LE:+2.3441674165664682593913711430784253952E037:0:40:
+%40LE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1:
+%*40LE:+2.3441674165664682593913711430784253952E+37:0:40:
+%40LE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10:
+%*40LE:+1.79769313486231570814527423731704357E308:0:40:
+%40LE:+1.79769313486231570814527423731704357E+308:0:-1:
+%*40LE:+1.79769313486231570814527423731704357E+308:0:-1:
+%40LE:+INFINITY:1:9:inf:
+%*40LE:+INFINITY:0:9:
+%48LE::0:-1:
+%*48LE::0:-1:
+%48LE:-INFINITY:1:9:-inf:
+%*48LE:-INFINITY:0:9:
+%48LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023:
+%*48LE:-1.79769313486231570814527423731704357E+308:0:43:
+%48LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023:
+%*48LE:-1.79769313486231570814527423731704357E308:0:42:
+%48LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48LE:-2.3441674165664682593913711430784253952E+37:0:44:
+%48LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124:
+%*48LE:-2.3441674165664682593913711430784253952E037:0:44:
+%48LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022:
+%*48LE:-2.22507385850720138309023271733240406E-308:0:43:
+%48LE:-0E+0:1:5:-0x0:
+%*48LE:-0E+0:0:5:
+%48LE:-0E0:1:4:-0x0:
+%*48LE:-0E0:0:4:
+%48LE:-NAN(09A_Zaz):1:13:-nan:
+%*48LE:-NAN(09A_Zaz):0:13:
+%48LE:-NAN():1:6:-nan:
+%*48LE:-NAN():0:6:
+%48LE:NAN():1:5:nan:
+%*48LE:NAN():0:5:
+%48LE:NAN(09A_Zaz):1:12:nan:
+%*48LE:NAN(09A_Zaz):0:12:
+%48LE:0E0:1:3:0x0:
+%*48LE:0E0:0:3:
+%48LE:0E+0:1:4:0x0:
+%*48LE:0E+0:0:4:
+%48LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022:
+%*48LE:2.22507385850720138309023271733240406E-308:0:42:
+%48LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48LE:2.3441674165664682593913711430784253952E037:0:43:
+%48LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124:
+%*48LE:2.3441674165664682593913711430784253952E+37:0:43:
+%48LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023:
+%*48LE:1.79769313486231570814527423731704357E308:0:41:
+%48LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023:
+%*48LE:1.79769313486231570814527423731704357E+308:0:42:
+%48LE:INFINITY:1:8:inf:
+%*48LE:INFINITY:0:8:
+%48LE:+NAN():1:6:nan:
+%*48LE:+NAN():0:6:
+%48LE:+NAN(09A_Zaz):1:13:nan:
+%*48LE:+NAN(09A_Zaz):0:13:
+%48LE:+0E0:1:4:0x0:
+%*48LE:+0E0:0:4:
+%48LE:+0E+0:1:5:0x0:
+%*48LE:+0E+0:0:5:
+%48LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*48LE:+2.22507385850720138309023271733240406E-308:0:43:
+%48LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48LE:+2.3441674165664682593913711430784253952E037:0:44:
+%48LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48LE:+2.3441674165664682593913711430784253952E+37:0:44:
+%48LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*48LE:+1.79769313486231570814527423731704357E308:0:42:
+%48LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*48LE:+1.79769313486231570814527423731704357E+308:0:43:
+%48LE:+INFINITY:1:9:inf:
+%*48LE:+INFINITY:0:9:
+%3LE: :0:-1:
+%*3LE: :0:-1:
+%3LE: -INFINITY:0:-1:
+%*3LE: -INFINITY:0:-1:
+%3LE: -1.79769313486231570814527423731704357E+308:1:4:-0x1:
+%*3LE: -1.79769313486231570814527423731704357E+308:0:4:
+%3LE: -1.79769313486231570814527423731704357E308:1:4:-0x1:
+%*3LE: -1.79769313486231570814527423731704357E308:0:4:
+%3LE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1:
+%*3LE: -2.3441674165664682593913711430784253952E+37:0:4:
+%3LE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1:
+%*3LE: -2.3441674165664682593913711430784253952E037:0:4:
+%3LE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1:
+%*3LE: -2.22507385850720138309023271733240406E-308:0:4:
+%3LE: -0E+0:0:-1:
+%*3LE: -0E+0:0:-1:
+%3LE: -0E0:0:-1:
+%*3LE: -0E0:0:-1:
+%3LE: -NAN(09A_Zaz):0:-1:
+%*3LE: -NAN(09A_Zaz):0:-1:
+%3LE: -NAN():0:-1:
+%*3LE: -NAN():0:-1:
+%3LE: NAN():1:4:nan:
+%*3LE: NAN():0:4:
+%3LE: NAN(09A_Zaz):1:4:nan:
+%*3LE: NAN(09A_Zaz):0:4:
+%3LE: 0E0:1:4:0x0:
+%*3LE: 0E0:0:4:
+%3LE: 0E+0:0:-1:
+%*3LE: 0E+0:0:-1:
+%3LE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1:
+%*3LE: 2.22507385850720138309023271733240406E-308:0:4:
+%3LE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1:
+%*3LE: 2.3441674165664682593913711430784253952E037:0:4:
+%3LE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1:
+%*3LE: 2.3441674165664682593913711430784253952E+37:0:4:
+%3LE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333:
+%*3LE: 1.79769313486231570814527423731704357E308:0:4:
+%3LE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333:
+%*3LE: 1.79769313486231570814527423731704357E+308:0:4:
+%3LE: INFINITY:1:4:inf:
+%*3LE: INFINITY:0:4:
+%3LE: +NAN():0:-1:
+%*3LE: +NAN():0:-1:
+%3LE: +NAN(09A_Zaz):0:-1:
+%*3LE: +NAN(09A_Zaz):0:-1:
+%3LE: +0E0:0:-1:
+%*3LE: +0E0:0:-1:
+%3LE: +0E+0:0:-1:
+%*3LE: +0E+0:0:-1:
+%3LE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1:
+%*3LE: +2.22507385850720138309023271733240406E-308:0:4:
+%3LE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1:
+%*3LE: +2.3441674165664682593913711430784253952E037:0:4:
+%3LE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1:
+%*3LE: +2.3441674165664682593913711430784253952E+37:0:4:
+%3LE: +1.79769313486231570814527423731704357E308:1:4:0x1:
+%*3LE: +1.79769313486231570814527423731704357E308:0:4:
+%3LE: +1.79769313486231570814527423731704357E+308:1:4:0x1:
+%*3LE: +1.79769313486231570814527423731704357E+308:0:4:
+%3LE: +INFINITY:0:-1:
+%*3LE: +INFINITY:0:-1:
+%48LE: :0:-1:
+%*48LE: :0:-1:
+%48LE: -INFINITY:1:10:-inf:
+%*48LE: -INFINITY:0:10:
+%48LE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023:
+%*48LE: -1.79769313486231570814527423731704357E+308:0:44:
+%48LE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023:
+%*48LE: -1.79769313486231570814527423731704357E308:0:43:
+%48LE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48LE: -2.3441674165664682593913711430784253952E+37:0:45:
+%48LE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124:
+%*48LE: -2.3441674165664682593913711430784253952E037:0:45:
+%48LE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022:
+%*48LE: -2.22507385850720138309023271733240406E-308:0:44:
+%48LE: -0E+0:1:6:-0x0:
+%*48LE: -0E+0:0:6:
+%48LE: -0E0:1:5:-0x0:
+%*48LE: -0E0:0:5:
+%48LE: -NAN(09A_Zaz):1:14:-nan:
+%*48LE: -NAN(09A_Zaz):0:14:
+%48LE: -NAN():1:7:-nan:
+%*48LE: -NAN():0:7:
+%48LE: NAN():1:6:nan:
+%*48LE: NAN():0:6:
+%48LE: NAN(09A_Zaz):1:13:nan:
+%*48LE: NAN(09A_Zaz):0:13:
+%48LE: 0E0:1:4:0x0:
+%*48LE: 0E0:0:4:
+%48LE: 0E+0:1:5:0x0:
+%*48LE: 0E+0:0:5:
+%48LE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022:
+%*48LE: 2.22507385850720138309023271733240406E-308:0:43:
+%48LE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48LE: 2.3441674165664682593913711430784253952E037:0:44:
+%48LE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124:
+%*48LE: 2.3441674165664682593913711430784253952E+37:0:44:
+%48LE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023:
+%*48LE: 1.79769313486231570814527423731704357E308:0:42:
+%48LE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023:
+%*48LE: 1.79769313486231570814527423731704357E+308:0:43:
+%48LE: INFINITY:1:9:inf:
+%*48LE: INFINITY:0:9:
+%48LE: +NAN():1:7:nan:
+%*48LE: +NAN():0:7:
+%48LE: +NAN(09A_Zaz):1:14:nan:
+%*48LE: +NAN(09A_Zaz):0:14:
+%48LE: +0E0:1:5:0x0:
+%*48LE: +0E0:0:5:
+%48LE: +0E+0:1:6:0x0:
+%*48LE: +0E+0:0:6:
+%48LE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022:
+%*48LE: +2.22507385850720138309023271733240406E-308:0:44:
+%48LE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48LE: +2.3441674165664682593913711430784253952E037:0:45:
+%48LE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124:
+%*48LE: +2.3441674165664682593913711430784253952E+37:0:45:
+%48LE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023:
+%*48LE: +1.79769313486231570814527423731704357E308:0:43:
+%48LE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023:
+%*48LE: +1.79769313486231570814527423731704357E+308:0:44:
+%48LE: +INFINITY:1:10:inf:
+%*48LE: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input
new file mode 100644
index 0000000..a506658
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input
@@ -0,0 +1,558 @@
+%Lf::0:-1:
+%*Lf::0:-1:
+%Lf:-infinity:1:9:-inf:
+%*Lf:-infinity:0:9:
+%Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*Lf:-023441674165664682593913711430784253952.0:0:42:
+%Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*Lf:-23441674165664682593913711430784253952:0:39:
+%Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%Lf:-0.0:1:4:-0x0:
+%*Lf:-0.0:0:4:
+%Lf:-0:1:2:-0x0:
+%*Lf:-0:0:2:
+%Lf:-nan(09A_Zaz):1:13:-nan:
+%*Lf:-nan(09A_Zaz):0:13:
+%Lf:-nan():1:6:-nan:
+%*Lf:-nan():0:6:
+%Lf:nan():1:5:nan:
+%*Lf:nan():0:5:
+%Lf:nan(09A_Zaz):1:12:nan:
+%*Lf:nan(09A_Zaz):0:12:
+%Lf:0:1:1:0x0:
+%*Lf:0:0:1:
+%Lf:0.0:1:3:0x0:
+%*Lf:0.0:0:3:
+%Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*Lf:23441674165664682593913711430784253952:0:38:
+%Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*Lf:023441674165664682593913711430784253952.0:0:41:
+%Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%Lf:infinity:1:8:inf:
+%*Lf:infinity:0:8:
+%Lf:+nan():1:6:nan:
+%*Lf:+nan():0:6:
+%Lf:+nan(09A_Zaz):1:13:nan:
+%*Lf:+nan(09A_Zaz):0:13:
+%Lf:+0:1:2:0x0:
+%*Lf:+0:0:2:
+%Lf:+0.0:1:4:0x0:
+%*Lf:+0.0:0:4:
+%Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*Lf:+23441674165664682593913711430784253952:0:39:
+%Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*Lf:+023441674165664682593913711430784253952.0:0:42:
+%Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%Lf:+infinity:1:9:inf:
+%*Lf:+infinity:0:9:
+%1Lf::0:-1:
+%*1Lf::0:-1:
+%1Lf:-infinity:0:-1:
+%*1Lf:-infinity:0:-1:
+%1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1Lf:-023441674165664682593913711430784253952.0:0:-1:
+%*1Lf:-023441674165664682593913711430784253952.0:0:-1:
+%1Lf:-23441674165664682593913711430784253952:0:-1:
+%*1Lf:-23441674165664682593913711430784253952:0:-1:
+%1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1Lf:-0.0:0:-1:
+%*1Lf:-0.0:0:-1:
+%1Lf:-0:0:-1:
+%*1Lf:-0:0:-1:
+%1Lf:-nan(09A_Zaz):0:-1:
+%*1Lf:-nan(09A_Zaz):0:-1:
+%1Lf:-nan():0:-1:
+%*1Lf:-nan():0:-1:
+%1Lf:nan():0:-1:
+%*1Lf:nan():0:-1:
+%1Lf:nan(09A_Zaz):0:-1:
+%*1Lf:nan(09A_Zaz):0:-1:
+%1Lf:0:1:1:0x0:
+%*1Lf:0:0:1:
+%1Lf:0.0:1:1:0x0:
+%*1Lf:0.0:0:1:
+%1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0:
+%*1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1:
+%1Lf:23441674165664682593913711430784253952:1:1:0x1p1:
+%*1Lf:23441674165664682593913711430784253952:0:1:
+%1Lf:023441674165664682593913711430784253952.0:1:1:0x0:
+%*1Lf:023441674165664682593913711430784253952.0:0:1:
+%1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1:
+%*1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1:
+%1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0:
+%*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1:
+%1Lf:infinity:0:-1:
+%*1Lf:infinity:0:-1:
+%1Lf:+nan():0:-1:
+%*1Lf:+nan():0:-1:
+%1Lf:+nan(09A_Zaz):0:-1:
+%*1Lf:+nan(09A_Zaz):0:-1:
+%1Lf:+0:0:-1:
+%*1Lf:+0:0:-1:
+%1Lf:+0.0:0:-1:
+%*1Lf:+0.0:0:-1:
+%1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1Lf:+23441674165664682593913711430784253952:0:-1:
+%*1Lf:+23441674165664682593913711430784253952:0:-1:
+%1Lf:+023441674165664682593913711430784253952.0:0:-1:
+%*1Lf:+023441674165664682593913711430784253952.0:0:-1:
+%1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1Lf:+infinity:0:-1:
+%*1Lf:+infinity:0:-1:
+%2Lf::0:-1:
+%*2Lf::0:-1:
+%2Lf:-infinity:0:-1:
+%*2Lf:-infinity:0:-1:
+%2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0:
+%*2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1:
+%*2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2Lf:-023441674165664682593913711430784253952.0:1:2:-0x0:
+%*2Lf:-023441674165664682593913711430784253952.0:0:2:
+%2Lf:-23441674165664682593913711430784253952:1:2:-0x1p1:
+%*2Lf:-23441674165664682593913711430784253952:0:2:
+%2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0:
+%*2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2Lf:-0.0:1:2:-0x0:
+%*2Lf:-0.0:0:2:
+%2Lf:-0:1:2:-0x0:
+%*2Lf:-0:0:2:
+%2Lf:-nan(09A_Zaz):0:-1:
+%*2Lf:-nan(09A_Zaz):0:-1:
+%2Lf:-nan():0:-1:
+%*2Lf:-nan():0:-1:
+%2Lf:nan():0:-1:
+%*2Lf:nan():0:-1:
+%2Lf:nan(09A_Zaz):0:-1:
+%*2Lf:nan(09A_Zaz):0:-1:
+%2Lf:0:1:1:0x0:
+%*2Lf:0:0:1:
+%2Lf:0.0:1:2:0x0:
+%*2Lf:0.0:0:2:
+%2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2Lf:23441674165664682593913711430784253952:1:2:0x1.7p+4:
+%*2Lf:23441674165664682593913711430784253952:0:2:
+%2Lf:023441674165664682593913711430784253952.0:1:2:0x1p1:
+%*2Lf:023441674165664682593913711430784253952.0:0:2:
+%2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4:
+%*2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1:
+%*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2Lf:infinity:0:-1:
+%*2Lf:infinity:0:-1:
+%2Lf:+nan():0:-1:
+%*2Lf:+nan():0:-1:
+%2Lf:+nan(09A_Zaz):0:-1:
+%*2Lf:+nan(09A_Zaz):0:-1:
+%2Lf:+0:1:2:0x0:
+%*2Lf:+0:0:2:
+%2Lf:+0.0:1:2:0x0:
+%*2Lf:+0.0:0:2:
+%2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2Lf:+23441674165664682593913711430784253952:1:2:0x1p1:
+%*2Lf:+23441674165664682593913711430784253952:0:2:
+%2Lf:+023441674165664682593913711430784253952.0:1:2:0x0:
+%*2Lf:+023441674165664682593913711430784253952.0:0:2:
+%2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1:
+%*2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0:
+%*2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2Lf:+infinity:0:-1:
+%*2Lf:+infinity:0:-1:
+%3Lf::0:-1:
+%*3Lf::0:-1:
+%3Lf:-infinity:0:-1:
+%*3Lf:-infinity:0:-1:
+%3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1:
+%*3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4:
+%*3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3Lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1:
+%*3Lf:-023441674165664682593913711430784253952.0:0:3:
+%3Lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4:
+%*3Lf:-23441674165664682593913711430784253952:0:3:
+%3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0:
+%*3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3Lf:-0.0:1:3:-0x0:
+%*3Lf:-0.0:0:3:
+%3Lf:-0:1:2:-0x0:
+%*3Lf:-0:0:2:
+%3Lf:-nan(09A_Zaz):0:-1:
+%*3Lf:-nan(09A_Zaz):0:-1:
+%3Lf:-nan():0:-1:
+%*3Lf:-nan():0:-1:
+%3Lf:nan():1:3:nan:
+%*3Lf:nan():0:3:
+%3Lf:nan(09A_Zaz):1:3:nan:
+%*3Lf:nan(09A_Zaz):0:3:
+%3Lf:0:1:1:0x0:
+%*3Lf:0:0:1:
+%3Lf:0.0:1:3:0x0:
+%*3Lf:0.0:0:3:
+%3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3Lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7:
+%*3Lf:23441674165664682593913711430784253952:0:3:
+%3Lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4:
+%*3Lf:023441674165664682593913711430784253952.0:0:3:
+%3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7:
+%*3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4:
+%*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3Lf:infinity:1:3:inf:
+%*3Lf:infinity:0:3:
+%3Lf:+nan():0:-1:
+%*3Lf:+nan():0:-1:
+%3Lf:+nan(09A_Zaz):0:-1:
+%*3Lf:+nan(09A_Zaz):0:-1:
+%3Lf:+0:1:2:0x0:
+%*3Lf:+0:0:2:
+%3Lf:+0.0:1:3:0x0:
+%*3Lf:+0.0:0:3:
+%3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3Lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4:
+%*3Lf:+23441674165664682593913711430784253952:0:3:
+%3Lf:+023441674165664682593913711430784253952.0:1:3:0x1p1:
+%*3Lf:+023441674165664682593913711430784253952.0:0:3:
+%3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4:
+%*3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1:
+%*3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3Lf:+infinity:0:-1:
+%*3Lf:+infinity:0:-1:
+%4Lf::0:-1:
+%*4Lf::0:-1:
+%4Lf:-infinity:1:4:-inf:
+%*4Lf:-infinity:0:4:
+%4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4:
+%*4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7:
+%*4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4Lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4:
+%*4Lf:-023441674165664682593913711430784253952.0:0:4:
+%4Lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7:
+%*4Lf:-23441674165664682593913711430784253952:0:4:
+%4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4Lf:-0.0:1:4:-0x0:
+%*4Lf:-0.0:0:4:
+%4Lf:-0:1:2:-0x0:
+%*4Lf:-0:0:2:
+%4Lf:-nan(09A_Zaz):1:4:-nan:
+%*4Lf:-nan(09A_Zaz):0:4:
+%4Lf:-nan():1:4:-nan:
+%*4Lf:-nan():0:4:
+%4Lf:nan():0:-1:
+%*4Lf:nan():0:-1:
+%4Lf:nan(09A_Zaz):0:-1:
+%*4Lf:nan(09A_Zaz):0:-1:
+%4Lf:0:1:1:0x0:
+%*4Lf:0:0:1:
+%4Lf:0.0:1:3:0x0:
+%*4Lf:0.0:0:3:
+%4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4Lf:23441674165664682593913711430784253952:1:4:0x1.25p11:
+%*4Lf:23441674165664682593913711430784253952:0:4:
+%4Lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7:
+%*4Lf:023441674165664682593913711430784253952.0:0:4:
+%4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10:
+%*4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7:
+%*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4Lf:infinity:0:-1:
+%*4Lf:infinity:0:-1:
+%4Lf:+nan():1:4:nan:
+%*4Lf:+nan():0:4:
+%4Lf:+nan(09A_Zaz):1:4:nan:
+%*4Lf:+nan(09A_Zaz):0:4:
+%4Lf:+0:1:2:0x0:
+%*4Lf:+0:0:2:
+%4Lf:+0.0:1:4:0x0:
+%*4Lf:+0.0:0:4:
+%4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4Lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*4Lf:+23441674165664682593913711430784253952:0:4:
+%4Lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*4Lf:+023441674165664682593913711430784253952.0:0:4:
+%4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4Lf:+infinity:1:4:inf:
+%*4Lf:+infinity:0:4:
+%311Lf::0:-1:
+%*311Lf::0:-1:
+%311Lf:-infinity:1:9:-inf:
+%*311Lf:-infinity:0:9:
+%311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023:
+%*311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*311Lf:-023441674165664682593913711430784253952.0:0:42:
+%311Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*311Lf:-23441674165664682593913711430784253952:0:39:
+%311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023:
+%*311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311Lf:-0.0:1:4:-0x0:
+%*311Lf:-0.0:0:4:
+%311Lf:-0:1:2:-0x0:
+%*311Lf:-0:0:2:
+%311Lf:-nan(09A_Zaz):1:13:-nan:
+%*311Lf:-nan(09A_Zaz):0:13:
+%311Lf:-nan():1:6:-nan:
+%*311Lf:-nan():0:6:
+%311Lf:nan():1:5:nan:
+%*311Lf:nan():0:5:
+%311Lf:nan(09A_Zaz):1:12:nan:
+%*311Lf:nan(09A_Zaz):0:12:
+%311Lf:0:1:1:0x0:
+%*311Lf:0:0:1:
+%311Lf:0.0:1:3:0x0:
+%*311Lf:0.0:0:3:
+%311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023:
+%*311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*311Lf:23441674165664682593913711430784253952:0:38:
+%311Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*311Lf:023441674165664682593913711430784253952.0:0:41:
+%311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311Lf:infinity:1:8:inf:
+%*311Lf:infinity:0:8:
+%311Lf:+nan():1:6:nan:
+%*311Lf:+nan():0:6:
+%311Lf:+nan(09A_Zaz):1:13:nan:
+%*311Lf:+nan(09A_Zaz):0:13:
+%311Lf:+0:1:2:0x0:
+%*311Lf:+0:0:2:
+%311Lf:+0.0:1:4:0x0:
+%*311Lf:+0.0:0:4:
+%311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023:
+%*311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*311Lf:+23441674165664682593913711430784253952:0:39:
+%311Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*311Lf:+023441674165664682593913711430784253952.0:0:42:
+%311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311Lf:+infinity:1:9:inf:
+%*311Lf:+infinity:0:9:
+%350Lf::0:-1:
+%*350Lf::0:-1:
+%350Lf:-infinity:1:9:-inf:
+%*350Lf:-infinity:0:9:
+%350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*350Lf:-023441674165664682593913711430784253952.0:0:42:
+%350Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*350Lf:-23441674165664682593913711430784253952:0:39:
+%350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350Lf:-0.0:1:4:-0x0:
+%*350Lf:-0.0:0:4:
+%350Lf:-0:1:2:-0x0:
+%*350Lf:-0:0:2:
+%350Lf:-nan(09A_Zaz):1:13:-nan:
+%*350Lf:-nan(09A_Zaz):0:13:
+%350Lf:-nan():1:6:-nan:
+%*350Lf:-nan():0:6:
+%350Lf:nan():1:5:nan:
+%*350Lf:nan():0:5:
+%350Lf:nan(09A_Zaz):1:12:nan:
+%*350Lf:nan(09A_Zaz):0:12:
+%350Lf:0:1:1:0x0:
+%*350Lf:0:0:1:
+%350Lf:0.0:1:3:0x0:
+%*350Lf:0.0:0:3:
+%350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%350Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*350Lf:23441674165664682593913711430784253952:0:38:
+%350Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*350Lf:023441674165664682593913711430784253952.0:0:41:
+%350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%350Lf:infinity:1:8:inf:
+%*350Lf:infinity:0:8:
+%350Lf:+nan():1:6:nan:
+%*350Lf:+nan():0:6:
+%350Lf:+nan(09A_Zaz):1:13:nan:
+%*350Lf:+nan(09A_Zaz):0:13:
+%350Lf:+0:1:2:0x0:
+%*350Lf:+0:0:2:
+%350Lf:+0.0:1:4:0x0:
+%*350Lf:+0.0:0:4:
+%350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350Lf:+23441674165664682593913711430784253952:0:39:
+%350Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350Lf:+023441674165664682593913711430784253952.0:0:42:
+%350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350Lf:+infinity:1:9:inf:
+%*350Lf:+infinity:0:9:
+%3Lf: :0:-1:
+%*3Lf: :0:-1:
+%3Lf: -infinity:0:-1:
+%*3Lf: -infinity:0:-1:
+%3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1:
+%*3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4:
+%*3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3Lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1:
+%*3Lf: -023441674165664682593913711430784253952.0:0:4:
+%3Lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4:
+%*3Lf: -23441674165664682593913711430784253952:0:4:
+%3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3Lf: -0.0:1:4:-0x0:
+%*3Lf: -0.0:0:4:
+%3Lf: -0:1:3:-0x0:
+%*3Lf: -0:0:3:
+%3Lf: -nan(09A_Zaz):0:-1:
+%*3Lf: -nan(09A_Zaz):0:-1:
+%3Lf: -nan():0:-1:
+%*3Lf: -nan():0:-1:
+%3Lf: nan():1:4:nan:
+%*3Lf: nan():0:4:
+%3Lf: nan(09A_Zaz):1:4:nan:
+%*3Lf: nan(09A_Zaz):0:4:
+%3Lf: 0:1:2:0x0:
+%*3Lf: 0:0:2:
+%3Lf: 0.0:1:4:0x0:
+%*3Lf: 0.0:0:4:
+%3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3Lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*3Lf: 23441674165664682593913711430784253952:0:4:
+%3Lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*3Lf: 023441674165664682593913711430784253952.0:0:4:
+%3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3Lf: infinity:1:4:inf:
+%*3Lf: infinity:0:4:
+%3Lf: +nan():0:-1:
+%*3Lf: +nan():0:-1:
+%3Lf: +nan(09A_Zaz):0:-1:
+%*3Lf: +nan(09A_Zaz):0:-1:
+%3Lf: +0:1:3:0x0:
+%*3Lf: +0:0:3:
+%3Lf: +0.0:1:4:0x0:
+%*3Lf: +0.0:0:4:
+%3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3Lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4:
+%*3Lf: +23441674165664682593913711430784253952:0:4:
+%3Lf: +023441674165664682593913711430784253952.0:1:4:0x1p1:
+%*3Lf: +023441674165664682593913711430784253952.0:0:4:
+%3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4:
+%*3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1:
+%*3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3Lf: +infinity:0:-1:
+%*3Lf: +infinity:0:-1:
+%350Lf: :0:-1:
+%*350Lf: :0:-1:
+%350Lf: -infinity:1:10:-inf:
+%*350Lf: -infinity:0:10:
+%350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023:
+%*350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023:
+%*350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350Lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124:
+%*350Lf: -023441674165664682593913711430784253952.0:0:43:
+%350Lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124:
+%*350Lf: -23441674165664682593913711430784253952:0:40:
+%350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022:
+%*350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350Lf: -0.0:1:5:-0x0:
+%*350Lf: -0.0:0:5:
+%350Lf: -0:1:3:-0x0:
+%*350Lf: -0:0:3:
+%350Lf: -nan(09A_Zaz):1:14:-nan:
+%*350Lf: -nan(09A_Zaz):0:14:
+%350Lf: -nan():1:7:-nan:
+%*350Lf: -nan():0:7:
+%350Lf: nan():1:6:nan:
+%*350Lf: nan():0:6:
+%350Lf: nan(09A_Zaz):1:13:nan:
+%*350Lf: nan(09A_Zaz):0:13:
+%350Lf: 0:1:2:0x0:
+%*350Lf: 0:0:2:
+%350Lf: 0.0:1:4:0x0:
+%*350Lf: 0.0:0:4:
+%350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350Lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350Lf: 23441674165664682593913711430784253952:0:39:
+%350Lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350Lf: 023441674165664682593913711430784253952.0:0:42:
+%350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350Lf: infinity:1:9:inf:
+%*350Lf: infinity:0:9:
+%350Lf: +nan():1:7:nan:
+%*350Lf: +nan():0:7:
+%350Lf: +nan(09A_Zaz):1:14:nan:
+%*350Lf: +nan(09A_Zaz):0:14:
+%350Lf: +0:1:3:0x0:
+%*350Lf: +0:0:3:
+%350Lf: +0.0:1:5:0x0:
+%*350Lf: +0.0:0:5:
+%350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022:
+%*350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350Lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124:
+%*350Lf: +23441674165664682593913711430784253952:0:40:
+%350Lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124:
+%*350Lf: +023441674165664682593913711430784253952.0:0:43:
+%350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023:
+%*350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023:
+%*350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350Lf: +infinity:1:10:inf:
+%*350Lf: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input
new file mode 100644
index 0000000..03dedfc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input
@@ -0,0 +1,558 @@
+%LF::0:-1:
+%*LF::0:-1:
+%LF:-INFINITY:1:9:-inf:
+%*LF:-INFINITY:0:9:
+%LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*LF:-023441674165664682593913711430784253952.0:0:42:
+%LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*LF:-23441674165664682593913711430784253952:0:39:
+%LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%LF:-0.0:1:4:-0x0:
+%*LF:-0.0:0:4:
+%LF:-0:1:2:-0x0:
+%*LF:-0:0:2:
+%LF:-NAN(09A_Zaz):1:13:-nan:
+%*LF:-NAN(09A_Zaz):0:13:
+%LF:-NAN():1:6:-nan:
+%*LF:-NAN():0:6:
+%LF:NAN():1:5:nan:
+%*LF:NAN():0:5:
+%LF:NAN(09A_Zaz):1:12:nan:
+%*LF:NAN(09A_Zaz):0:12:
+%LF:0:1:1:0x0:
+%*LF:0:0:1:
+%LF:0.0:1:3:0x0:
+%*LF:0.0:0:3:
+%LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*LF:23441674165664682593913711430784253952:0:38:
+%LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*LF:023441674165664682593913711430784253952.0:0:41:
+%LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%LF:INFINITY:1:8:inf:
+%*LF:INFINITY:0:8:
+%LF:+NAN():1:6:nan:
+%*LF:+NAN():0:6:
+%LF:+NAN(09A_Zaz):1:13:nan:
+%*LF:+NAN(09A_Zaz):0:13:
+%LF:+0:1:2:0x0:
+%*LF:+0:0:2:
+%LF:+0.0:1:4:0x0:
+%*LF:+0.0:0:4:
+%LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*LF:+23441674165664682593913711430784253952:0:39:
+%LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*LF:+023441674165664682593913711430784253952.0:0:42:
+%LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%LF:+INFINITY:1:9:inf:
+%*LF:+INFINITY:0:9:
+%1LF::0:-1:
+%*1LF::0:-1:
+%1LF:-INFINITY:0:-1:
+%*1LF:-INFINITY:0:-1:
+%1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1LF:-023441674165664682593913711430784253952.0:0:-1:
+%*1LF:-023441674165664682593913711430784253952.0:0:-1:
+%1LF:-23441674165664682593913711430784253952:0:-1:
+%*1LF:-23441674165664682593913711430784253952:0:-1:
+%1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1LF:-0.0:0:-1:
+%*1LF:-0.0:0:-1:
+%1LF:-0:0:-1:
+%*1LF:-0:0:-1:
+%1LF:-NAN(09A_Zaz):0:-1:
+%*1LF:-NAN(09A_Zaz):0:-1:
+%1LF:-NAN():0:-1:
+%*1LF:-NAN():0:-1:
+%1LF:NAN():0:-1:
+%*1LF:NAN():0:-1:
+%1LF:NAN(09A_Zaz):0:-1:
+%*1LF:NAN(09A_Zaz):0:-1:
+%1LF:0:1:1:0x0:
+%*1LF:0:0:1:
+%1LF:0.0:1:1:0x0:
+%*1LF:0.0:0:1:
+%1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0:
+%*1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1:
+%1LF:23441674165664682593913711430784253952:1:1:0x1p1:
+%*1LF:23441674165664682593913711430784253952:0:1:
+%1LF:023441674165664682593913711430784253952.0:1:1:0x0:
+%*1LF:023441674165664682593913711430784253952.0:0:1:
+%1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1:
+%*1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1:
+%1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0:
+%*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1:
+%1LF:INFINITY:0:-1:
+%*1LF:INFINITY:0:-1:
+%1LF:+NAN():0:-1:
+%*1LF:+NAN():0:-1:
+%1LF:+NAN(09A_Zaz):0:-1:
+%*1LF:+NAN(09A_Zaz):0:-1:
+%1LF:+0:0:-1:
+%*1LF:+0:0:-1:
+%1LF:+0.0:0:-1:
+%*1LF:+0.0:0:-1:
+%1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%*1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1:
+%1LF:+23441674165664682593913711430784253952:0:-1:
+%*1LF:+23441674165664682593913711430784253952:0:-1:
+%1LF:+023441674165664682593913711430784253952.0:0:-1:
+%*1LF:+023441674165664682593913711430784253952.0:0:-1:
+%1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%*1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1:
+%1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%*1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1:
+%1LF:+INFINITY:0:-1:
+%*1LF:+INFINITY:0:-1:
+%2LF::0:-1:
+%*2LF::0:-1:
+%2LF:-INFINITY:0:-1:
+%*2LF:-INFINITY:0:-1:
+%2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0:
+%*2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1:
+%*2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2LF:-023441674165664682593913711430784253952.0:1:2:-0x0:
+%*2LF:-023441674165664682593913711430784253952.0:0:2:
+%2LF:-23441674165664682593913711430784253952:1:2:-0x1p1:
+%*2LF:-23441674165664682593913711430784253952:0:2:
+%2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0:
+%*2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2LF:-0.0:1:2:-0x0:
+%*2LF:-0.0:0:2:
+%2LF:-0:1:2:-0x0:
+%*2LF:-0:0:2:
+%2LF:-NAN(09A_Zaz):0:-1:
+%*2LF:-NAN(09A_Zaz):0:-1:
+%2LF:-NAN():0:-1:
+%*2LF:-NAN():0:-1:
+%2LF:NAN():0:-1:
+%*2LF:NAN():0:-1:
+%2LF:NAN(09A_Zaz):0:-1:
+%*2LF:NAN(09A_Zaz):0:-1:
+%2LF:0:1:1:0x0:
+%*2LF:0:0:1:
+%2LF:0.0:1:2:0x0:
+%*2LF:0.0:0:2:
+%2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2LF:23441674165664682593913711430784253952:1:2:0x1.7p+4:
+%*2LF:23441674165664682593913711430784253952:0:2:
+%2LF:023441674165664682593913711430784253952.0:1:2:0x1p1:
+%*2LF:023441674165664682593913711430784253952.0:0:2:
+%2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4:
+%*2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1:
+%*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2LF:INFINITY:0:-1:
+%*2LF:INFINITY:0:-1:
+%2LF:+NAN():0:-1:
+%*2LF:+NAN():0:-1:
+%2LF:+NAN(09A_Zaz):0:-1:
+%*2LF:+NAN(09A_Zaz):0:-1:
+%2LF:+0:1:2:0x0:
+%*2LF:+0:0:2:
+%2LF:+0.0:1:2:0x0:
+%*2LF:+0.0:0:2:
+%2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0:
+%*2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2:
+%2LF:+23441674165664682593913711430784253952:1:2:0x1p1:
+%*2LF:+23441674165664682593913711430784253952:0:2:
+%2LF:+023441674165664682593913711430784253952.0:1:2:0x0:
+%*2LF:+023441674165664682593913711430784253952.0:0:2:
+%2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1:
+%*2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2:
+%2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0:
+%*2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2:
+%2LF:+INFINITY:0:-1:
+%*2LF:+INFINITY:0:-1:
+%3LF::0:-1:
+%*3LF::0:-1:
+%3LF:-INFINITY:0:-1:
+%*3LF:-INFINITY:0:-1:
+%3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1:
+%*3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4:
+%*3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3LF:-023441674165664682593913711430784253952.0:1:3:-0x1p1:
+%*3LF:-023441674165664682593913711430784253952.0:0:3:
+%3LF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4:
+%*3LF:-23441674165664682593913711430784253952:0:3:
+%3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0:
+%*3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3LF:-0.0:1:3:-0x0:
+%*3LF:-0.0:0:3:
+%3LF:-0:1:2:-0x0:
+%*3LF:-0:0:2:
+%3LF:-NAN(09A_Zaz):0:-1:
+%*3LF:-NAN(09A_Zaz):0:-1:
+%3LF:-NAN():0:-1:
+%*3LF:-NAN():0:-1:
+%3LF:NAN():1:3:nan:
+%*3LF:NAN():0:3:
+%3LF:NAN(09A_Zaz):1:3:nan:
+%*3LF:NAN(09A_Zaz):0:3:
+%3LF:0:1:1:0x0:
+%*3LF:0:0:1:
+%3LF:0.0:1:3:0x0:
+%*3LF:0.0:0:3:
+%3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3LF:23441674165664682593913711430784253952:1:3:0x1.d4p+7:
+%*3LF:23441674165664682593913711430784253952:0:3:
+%3LF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4:
+%*3LF:023441674165664682593913711430784253952.0:0:3:
+%3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7:
+%*3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4:
+%*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3LF:INFINITY:1:3:inf:
+%*3LF:INFINITY:0:3:
+%3LF:+NAN():0:-1:
+%*3LF:+NAN():0:-1:
+%3LF:+NAN(09A_Zaz):0:-1:
+%*3LF:+NAN(09A_Zaz):0:-1:
+%3LF:+0:1:2:0x0:
+%*3LF:+0:0:2:
+%3LF:+0.0:1:3:0x0:
+%*3LF:+0.0:0:3:
+%3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0:
+%*3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3:
+%3LF:+23441674165664682593913711430784253952:1:3:0x1.7p+4:
+%*3LF:+23441674165664682593913711430784253952:0:3:
+%3LF:+023441674165664682593913711430784253952.0:1:3:0x1p1:
+%*3LF:+023441674165664682593913711430784253952.0:0:3:
+%3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4:
+%*3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3:
+%3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1:
+%*3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3:
+%3LF:+INFINITY:0:-1:
+%*3LF:+INFINITY:0:-1:
+%4LF::0:-1:
+%*4LF::0:-1:
+%4LF:-INFINITY:1:4:-inf:
+%*4LF:-INFINITY:0:4:
+%4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4:
+%*4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7:
+%*4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4LF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4:
+%*4LF:-023441674165664682593913711430784253952.0:0:4:
+%4LF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7:
+%*4LF:-23441674165664682593913711430784253952:0:4:
+%4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4LF:-0.0:1:4:-0x0:
+%*4LF:-0.0:0:4:
+%4LF:-0:1:2:-0x0:
+%*4LF:-0:0:2:
+%4LF:-NAN(09A_Zaz):1:4:-nan:
+%*4LF:-NAN(09A_Zaz):0:4:
+%4LF:-NAN():1:4:-nan:
+%*4LF:-NAN():0:4:
+%4LF:NAN():0:-1:
+%*4LF:NAN():0:-1:
+%4LF:NAN(09A_Zaz):0:-1:
+%*4LF:NAN(09A_Zaz):0:-1:
+%4LF:0:1:1:0x0:
+%*4LF:0:0:1:
+%4LF:0.0:1:3:0x0:
+%*4LF:0.0:0:3:
+%4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4LF:23441674165664682593913711430784253952:1:4:0x1.25p11:
+%*4LF:23441674165664682593913711430784253952:0:4:
+%4LF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7:
+%*4LF:023441674165664682593913711430784253952.0:0:4:
+%4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10:
+%*4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7:
+%*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4LF:INFINITY:0:-1:
+%*4LF:INFINITY:0:-1:
+%4LF:+NAN():1:4:nan:
+%*4LF:+NAN():0:4:
+%4LF:+NAN(09A_Zaz):1:4:nan:
+%*4LF:+NAN(09A_Zaz):0:4:
+%4LF:+0:1:2:0x0:
+%*4LF:+0:0:2:
+%4LF:+0.0:1:4:0x0:
+%*4LF:+0.0:0:4:
+%4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%4LF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*4LF:+23441674165664682593913711430784253952:0:4:
+%4LF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*4LF:+023441674165664682593913711430784253952.0:0:4:
+%4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%4LF:+INFINITY:1:4:inf:
+%*4LF:+INFINITY:0:4:
+%311LF::0:-1:
+%*311LF::0:-1:
+%311LF:-INFINITY:1:9:-inf:
+%*311LF:-INFINITY:0:9:
+%311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023:
+%*311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*311LF:-023441674165664682593913711430784253952.0:0:42:
+%311LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*311LF:-23441674165664682593913711430784253952:0:39:
+%311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023:
+%*311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311LF:-0.0:1:4:-0x0:
+%*311LF:-0.0:0:4:
+%311LF:-0:1:2:-0x0:
+%*311LF:-0:0:2:
+%311LF:-NAN(09A_Zaz):1:13:-nan:
+%*311LF:-NAN(09A_Zaz):0:13:
+%311LF:-NAN():1:6:-nan:
+%*311LF:-NAN():0:6:
+%311LF:NAN():1:5:nan:
+%*311LF:NAN():0:5:
+%311LF:NAN(09A_Zaz):1:12:nan:
+%*311LF:NAN(09A_Zaz):0:12:
+%311LF:0:1:1:0x0:
+%*311LF:0:0:1:
+%311LF:0.0:1:3:0x0:
+%*311LF:0.0:0:3:
+%311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023:
+%*311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*311LF:23441674165664682593913711430784253952:0:38:
+%311LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*311LF:023441674165664682593913711430784253952.0:0:41:
+%311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311LF:INFINITY:1:8:inf:
+%*311LF:INFINITY:0:8:
+%311LF:+NAN():1:6:nan:
+%*311LF:+NAN():0:6:
+%311LF:+NAN(09A_Zaz):1:13:nan:
+%*311LF:+NAN(09A_Zaz):0:13:
+%311LF:+0:1:2:0x0:
+%*311LF:+0:0:2:
+%311LF:+0.0:1:4:0x0:
+%*311LF:+0.0:0:4:
+%311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023:
+%*311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311:
+%311LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*311LF:+23441674165664682593913711430784253952:0:39:
+%311LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*311LF:+023441674165664682593913711430784253952.0:0:42:
+%311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023:
+%*311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311:
+%311LF:+INFINITY:1:9:inf:
+%*311LF:+INFINITY:0:9:
+%350LF::0:-1:
+%*350LF::0:-1:
+%350LF:-INFINITY:1:9:-inf:
+%*350LF:-INFINITY:0:9:
+%350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023:
+%*350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023:
+%*350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124:
+%*350LF:-023441674165664682593913711430784253952.0:0:42:
+%350LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124:
+%*350LF:-23441674165664682593913711430784253952:0:39:
+%350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022:
+%*350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350LF:-0.0:1:4:-0x0:
+%*350LF:-0.0:0:4:
+%350LF:-0:1:2:-0x0:
+%*350LF:-0:0:2:
+%350LF:-NAN(09A_Zaz):1:13:-nan:
+%*350LF:-NAN(09A_Zaz):0:13:
+%350LF:-NAN():1:6:-nan:
+%*350LF:-NAN():0:6:
+%350LF:NAN():1:5:nan:
+%*350LF:NAN():0:5:
+%350LF:NAN(09A_Zaz):1:12:nan:
+%*350LF:NAN(09A_Zaz):0:12:
+%350LF:0:1:1:0x0:
+%*350LF:0:0:1:
+%350LF:0.0:1:3:0x0:
+%*350LF:0.0:0:3:
+%350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022:
+%*350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341:
+%350LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124:
+%*350LF:23441674165664682593913711430784253952:0:38:
+%350LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124:
+%*350LF:023441674165664682593913711430784253952.0:0:41:
+%350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023:
+%*350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309:
+%350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023:
+%*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312:
+%350LF:INFINITY:1:8:inf:
+%*350LF:INFINITY:0:8:
+%350LF:+NAN():1:6:nan:
+%*350LF:+NAN():0:6:
+%350LF:+NAN(09A_Zaz):1:13:nan:
+%*350LF:+NAN(09A_Zaz):0:13:
+%350LF:+0:1:2:0x0:
+%*350LF:+0:0:2:
+%350LF:+0.0:1:4:0x0:
+%*350LF:+0.0:0:4:
+%350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350LF:+23441674165664682593913711430784253952:0:39:
+%350LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350LF:+023441674165664682593913711430784253952.0:0:42:
+%350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350LF:+INFINITY:1:9:inf:
+%*350LF:+INFINITY:0:9:
+%3LF: :0:-1:
+%*3LF: :0:-1:
+%3LF: -INFINITY:0:-1:
+%*3LF: -INFINITY:0:-1:
+%3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1:
+%*3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4:
+%*3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3LF: -023441674165664682593913711430784253952.0:1:4:-0x1p1:
+%*3LF: -023441674165664682593913711430784253952.0:0:4:
+%3LF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4:
+%*3LF: -23441674165664682593913711430784253952:0:4:
+%3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0:
+%*3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3LF: -0.0:1:4:-0x0:
+%*3LF: -0.0:0:4:
+%3LF: -0:1:3:-0x0:
+%*3LF: -0:0:3:
+%3LF: -NAN(09A_Zaz):0:-1:
+%*3LF: -NAN(09A_Zaz):0:-1:
+%3LF: -NAN():0:-1:
+%*3LF: -NAN():0:-1:
+%3LF: NAN():1:4:nan:
+%*3LF: NAN():0:4:
+%3LF: NAN(09A_Zaz):1:4:nan:
+%*3LF: NAN(09A_Zaz):0:4:
+%3LF: 0:1:2:0x0:
+%*3LF: 0:0:2:
+%3LF: 0.0:1:4:0x0:
+%*3LF: 0.0:0:4:
+%3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3LF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7:
+%*3LF: 23441674165664682593913711430784253952:0:4:
+%3LF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4:
+%*3LF: 023441674165664682593913711430784253952.0:0:4:
+%3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7:
+%*3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4:
+%*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3LF: INFINITY:1:4:inf:
+%*3LF: INFINITY:0:4:
+%3LF: +NAN():0:-1:
+%*3LF: +NAN():0:-1:
+%3LF: +NAN(09A_Zaz):0:-1:
+%*3LF: +NAN(09A_Zaz):0:-1:
+%3LF: +0:1:3:0x0:
+%*3LF: +0:0:3:
+%3LF: +0.0:1:4:0x0:
+%*3LF: +0.0:0:4:
+%3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0:
+%*3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4:
+%3LF: +23441674165664682593913711430784253952:1:4:0x1.7p+4:
+%*3LF: +23441674165664682593913711430784253952:0:4:
+%3LF: +023441674165664682593913711430784253952.0:1:4:0x1p1:
+%*3LF: +023441674165664682593913711430784253952.0:0:4:
+%3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4:
+%*3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4:
+%3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1:
+%*3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4:
+%3LF: +INFINITY:0:-1:
+%*3LF: +INFINITY:0:-1:
+%350LF: :0:-1:
+%*350LF: :0:-1:
+%350LF: -INFINITY:1:10:-inf:
+%*350LF: -INFINITY:0:10:
+%350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023:
+%*350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023:
+%*350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350LF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124:
+%*350LF: -023441674165664682593913711430784253952.0:0:43:
+%350LF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124:
+%*350LF: -23441674165664682593913711430784253952:0:40:
+%350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022:
+%*350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350LF: -0.0:1:5:-0x0:
+%*350LF: -0.0:0:5:
+%350LF: -0:1:3:-0x0:
+%*350LF: -0:0:3:
+%350LF: -NAN(09A_Zaz):1:14:-nan:
+%*350LF: -NAN(09A_Zaz):0:14:
+%350LF: -NAN():1:7:-nan:
+%*350LF: -NAN():0:7:
+%350LF: NAN():1:6:nan:
+%*350LF: NAN():0:6:
+%350LF: NAN(09A_Zaz):1:13:nan:
+%*350LF: NAN(09A_Zaz):0:13:
+%350LF: 0:1:2:0x0:
+%*350LF: 0:0:2:
+%350LF: 0.0:1:4:0x0:
+%*350LF: 0.0:0:4:
+%350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022:
+%*350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342:
+%350LF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124:
+%*350LF: 23441674165664682593913711430784253952:0:39:
+%350LF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124:
+%*350LF: 023441674165664682593913711430784253952.0:0:42:
+%350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023:
+%*350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310:
+%350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023:
+%*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313:
+%350LF: INFINITY:1:9:inf:
+%*350LF: INFINITY:0:9:
+%350LF: +NAN():1:7:nan:
+%*350LF: +NAN():0:7:
+%350LF: +NAN(09A_Zaz):1:14:nan:
+%*350LF: +NAN(09A_Zaz):0:14:
+%350LF: +0:1:3:0x0:
+%*350LF: +0:0:3:
+%350LF: +0.0:1:5:0x0:
+%*350LF: +0.0:0:5:
+%350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022:
+%*350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343:
+%350LF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124:
+%*350LF: +23441674165664682593913711430784253952:0:40:
+%350LF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124:
+%*350LF: +023441674165664682593913711430784253952.0:0:43:
+%350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023:
+%*350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311:
+%350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023:
+%*350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314:
+%350LF: +INFINITY:1:10:inf:
+%*350LF: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input
new file mode 100644
index 0000000..2aba539
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input
@@ -0,0 +1,682 @@
+%Lg::0:-1:
+%*Lg::0:-1:
+%Lg:-infinity:1:9:-inf:
+%*Lg:-infinity:0:9:
+%Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*Lg:-0xf.ffffffffffff8p+1020:0:24:
+%Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*Lg:-0x7.ffffffffffffcp1021:0:23:
+%Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*Lg:-0x2.3456789abcdfep+123:0:23:
+%Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*Lg:-0x2.3456789abcdfep0123:0:23:
+%Lg:-0x8p-1025:1:10:-0x1p-1022:
+%*Lg:-0x8p-1025:0:10:
+%Lg:-0x0p+0:1:7:-0x0:
+%*Lg:-0x0p+0:0:7:
+%Lg:-0x0p0:1:6:-0x0:
+%*Lg:-0x0p0:0:6:
+%Lg:-nan(09A_Zaz):1:13:-nan:
+%*Lg:-nan(09A_Zaz):0:13:
+%Lg:-nan():1:6:-nan:
+%*Lg:-nan():0:6:
+%Lg:nan():1:5:nan:
+%*Lg:nan():0:5:
+%Lg:nan(09A_Zaz):1:12:nan:
+%*Lg:nan(09A_Zaz):0:12:
+%Lg:0x0p0:1:5:0x0:
+%*Lg:0x0p0:0:5:
+%Lg:0x0p+0:1:6:0x0:
+%*Lg:0x0p+0:0:6:
+%Lg:0x8p-1025:1:9:0x1p-1022:
+%*Lg:0x8p-1025:0:9:
+%Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*Lg:0x2.3456789abcdfep0123:0:22:
+%Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*Lg:0x2.3456789abcdfep+123:0:22:
+%Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*Lg:0x7.ffffffffffffcp1021:0:22:
+%Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*Lg:0xf.ffffffffffff8p+1020:0:23:
+%Lg:infinity:1:8:inf:
+%*Lg:infinity:0:8:
+%Lg:+nan():1:6:nan:
+%*Lg:+nan():0:6:
+%Lg:+nan(09A_Zaz):1:13:nan:
+%*Lg:+nan(09A_Zaz):0:13:
+%Lg:+0x0p0:1:6:0x0:
+%*Lg:+0x0p0:0:6:
+%Lg:+0x0p+0:1:7:0x0:
+%*Lg:+0x0p+0:0:7:
+%Lg:+0x8p-1025:1:10:0x1p-1022:
+%*Lg:+0x8p-1025:0:10:
+%Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*Lg:+0x2.3456789abcdfep0123:0:23:
+%Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*Lg:+0x2.3456789abcdfep+123:0:23:
+%Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*Lg:+0x7.ffffffffffffcp1021:0:23:
+%Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*Lg:+0xf.ffffffffffff8p+1020:0:24:
+%Lg:+infinity:1:9:inf:
+%*Lg:+infinity:0:9:
+%1Lg::0:-1:
+%*1Lg::0:-1:
+%1Lg:-infinity:0:-1:
+%*1Lg:-infinity:0:-1:
+%1Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*1Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%1Lg:-0x7.ffffffffffffcp1021:0:-1:
+%*1Lg:-0x7.ffffffffffffcp1021:0:-1:
+%1Lg:-0x2.3456789abcdfep+123:0:-1:
+%*1Lg:-0x2.3456789abcdfep+123:0:-1:
+%1Lg:-0x2.3456789abcdfep0123:0:-1:
+%*1Lg:-0x2.3456789abcdfep0123:0:-1:
+%1Lg:-0x8p-1025:0:-1:
+%*1Lg:-0x8p-1025:0:-1:
+%1Lg:-0x0p+0:0:-1:
+%*1Lg:-0x0p+0:0:-1:
+%1Lg:-0x0p0:0:-1:
+%*1Lg:-0x0p0:0:-1:
+%1Lg:-nan(09A_Zaz):0:-1:
+%*1Lg:-nan(09A_Zaz):0:-1:
+%1Lg:-nan():0:-1:
+%*1Lg:-nan():0:-1:
+%1Lg:nan():0:-1:
+%*1Lg:nan():0:-1:
+%1Lg:nan(09A_Zaz):0:-1:
+%*1Lg:nan(09A_Zaz):0:-1:
+%1Lg:0x0p0:1:1:0x0:
+%*1Lg:0x0p0:0:1:
+%1Lg:0x0p+0:1:1:0x0:
+%*1Lg:0x0p+0:0:1:
+%1Lg:0x8p-1025:1:1:0x0:
+%*1Lg:0x8p-1025:0:1:
+%1Lg:0x2.3456789abcdfep0123:1:1:0x0:
+%*1Lg:0x2.3456789abcdfep0123:0:1:
+%1Lg:0x2.3456789abcdfep+123:1:1:0x0:
+%*1Lg:0x2.3456789abcdfep+123:0:1:
+%1Lg:0x7.ffffffffffffcp1021:1:1:0x0:
+%*1Lg:0x7.ffffffffffffcp1021:0:1:
+%1Lg:0xf.ffffffffffff8p+1020:1:1:0x0:
+%*1Lg:0xf.ffffffffffff8p+1020:0:1:
+%1Lg:infinity:0:-1:
+%*1Lg:infinity:0:-1:
+%1Lg:+nan():0:-1:
+%*1Lg:+nan():0:-1:
+%1Lg:+nan(09A_Zaz):0:-1:
+%*1Lg:+nan(09A_Zaz):0:-1:
+%1Lg:+0x0p0:0:-1:
+%*1Lg:+0x0p0:0:-1:
+%1Lg:+0x0p+0:0:-1:
+%*1Lg:+0x0p+0:0:-1:
+%1Lg:+0x8p-1025:0:-1:
+%*1Lg:+0x8p-1025:0:-1:
+%1Lg:+0x2.3456789abcdfep0123:0:-1:
+%*1Lg:+0x2.3456789abcdfep0123:0:-1:
+%1Lg:+0x2.3456789abcdfep+123:0:-1:
+%*1Lg:+0x2.3456789abcdfep+123:0:-1:
+%1Lg:+0x7.ffffffffffffcp1021:0:-1:
+%*1Lg:+0x7.ffffffffffffcp1021:0:-1:
+%1Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*1Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%1Lg:+infinity:0:-1:
+%*1Lg:+infinity:0:-1:
+%2Lg::0:-1:
+%*2Lg::0:-1:
+%2Lg:-infinity:0:-1:
+%*2Lg:-infinity:0:-1:
+%2Lg:-0xf.ffffffffffff8p+1020:1:2:-0x0:
+%*2Lg:-0xf.ffffffffffff8p+1020:0:2:
+%2Lg:-0x7.ffffffffffffcp1021:1:2:-0x0:
+%*2Lg:-0x7.ffffffffffffcp1021:0:2:
+%2Lg:-0x2.3456789abcdfep+123:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdfep+123:0:2:
+%2Lg:-0x2.3456789abcdfep0123:1:2:-0x0:
+%*2Lg:-0x2.3456789abcdfep0123:0:2:
+%2Lg:-0x8p-1025:1:2:-0x0:
+%*2Lg:-0x8p-1025:0:2:
+%2Lg:-0x0p+0:1:2:-0x0:
+%*2Lg:-0x0p+0:0:2:
+%2Lg:-0x0p0:1:2:-0x0:
+%*2Lg:-0x0p0:0:2:
+%2Lg:-nan(09A_Zaz):0:-1:
+%*2Lg:-nan(09A_Zaz):0:-1:
+%2Lg:-nan():0:-1:
+%*2Lg:-nan():0:-1:
+%2Lg:nan():0:-1:
+%*2Lg:nan():0:-1:
+%2Lg:nan(09A_Zaz):0:-1:
+%*2Lg:nan(09A_Zaz):0:-1:
+%2Lg:0x0p0:0:-1:
+%*2Lg:0x0p0:0:-1:
+%2Lg:0x0p+0:0:-1:
+%*2Lg:0x0p+0:0:-1:
+%2Lg:0x8p-1025:0:-1:
+%*2Lg:0x8p-1025:0:-1:
+%2Lg:0x2.3456789abcdfep0123:0:-1:
+%*2Lg:0x2.3456789abcdfep0123:0:-1:
+%2Lg:0x2.3456789abcdfep+123:0:-1:
+%*2Lg:0x2.3456789abcdfep+123:0:-1:
+%2Lg:0x7.ffffffffffffcp1021:0:-1:
+%*2Lg:0x7.ffffffffffffcp1021:0:-1:
+%2Lg:0xf.ffffffffffff8p+1020:0:-1:
+%*2Lg:0xf.ffffffffffff8p+1020:0:-1:
+%2Lg:infinity:0:-1:
+%*2Lg:infinity:0:-1:
+%2Lg:+nan():0:-1:
+%*2Lg:+nan():0:-1:
+%2Lg:+nan(09A_Zaz):0:-1:
+%*2Lg:+nan(09A_Zaz):0:-1:
+%2Lg:+0x0p0:1:2:0x0:
+%*2Lg:+0x0p0:0:2:
+%2Lg:+0x0p+0:1:2:0x0:
+%*2Lg:+0x0p+0:0:2:
+%2Lg:+0x8p-1025:1:2:0x0:
+%*2Lg:+0x8p-1025:0:2:
+%2Lg:+0x2.3456789abcdfep0123:1:2:0x0:
+%*2Lg:+0x2.3456789abcdfep0123:0:2:
+%2Lg:+0x2.3456789abcdfep+123:1:2:0x0:
+%*2Lg:+0x2.3456789abcdfep+123:0:2:
+%2Lg:+0x7.ffffffffffffcp1021:1:2:0x0:
+%*2Lg:+0x7.ffffffffffffcp1021:0:2:
+%2Lg:+0xf.ffffffffffff8p+1020:1:2:0x0:
+%*2Lg:+0xf.ffffffffffff8p+1020:0:2:
+%2Lg:+infinity:0:-1:
+%*2Lg:+infinity:0:-1:
+%3Lg::0:-1:
+%*3Lg::0:-1:
+%3Lg:-infinity:0:-1:
+%*3Lg:-infinity:0:-1:
+%3Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*3Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%3Lg:-0x7.ffffffffffffcp1021:0:-1:
+%*3Lg:-0x7.ffffffffffffcp1021:0:-1:
+%3Lg:-0x2.3456789abcdfep+123:0:-1:
+%*3Lg:-0x2.3456789abcdfep+123:0:-1:
+%3Lg:-0x2.3456789abcdfep0123:0:-1:
+%*3Lg:-0x2.3456789abcdfep0123:0:-1:
+%3Lg:-0x8p-1025:0:-1:
+%*3Lg:-0x8p-1025:0:-1:
+%3Lg:-0x0p+0:0:-1:
+%*3Lg:-0x0p+0:0:-1:
+%3Lg:-0x0p0:0:-1:
+%*3Lg:-0x0p0:0:-1:
+%3Lg:-nan(09A_Zaz):0:-1:
+%*3Lg:-nan(09A_Zaz):0:-1:
+%3Lg:-nan():0:-1:
+%*3Lg:-nan():0:-1:
+%3Lg:nan():1:3:nan:
+%*3Lg:nan():0:3:
+%3Lg:nan(09A_Zaz):1:3:nan:
+%*3Lg:nan(09A_Zaz):0:3:
+%3Lg:0x0p0:1:3:0x0:
+%*3Lg:0x0p0:0:3:
+%3Lg:0x0p+0:1:3:0x0:
+%*3Lg:0x0p+0:0:3:
+%3Lg:0x8p-1025:1:3:0x1p3:
+%*3Lg:0x8p-1025:0:3:
+%3Lg:0x2.3456789abcdfep0123:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdfep0123:0:3:
+%3Lg:0x2.3456789abcdfep+123:1:3:0x1p1:
+%*3Lg:0x2.3456789abcdfep+123:0:3:
+%3Lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2:
+%*3Lg:0x7.ffffffffffffcp1021:0:3:
+%3Lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3:
+%*3Lg:0xf.ffffffffffff8p+1020:0:3:
+%3Lg:infinity:1:3:inf:
+%*3Lg:infinity:0:3:
+%3Lg:+nan():0:-1:
+%*3Lg:+nan():0:-1:
+%3Lg:+nan(09A_Zaz):0:-1:
+%*3Lg:+nan(09A_Zaz):0:-1:
+%3Lg:+0x0p0:0:-1:
+%*3Lg:+0x0p0:0:-1:
+%3Lg:+0x0p+0:0:-1:
+%*3Lg:+0x0p+0:0:-1:
+%3Lg:+0x8p-1025:0:-1:
+%*3Lg:+0x8p-1025:0:-1:
+%3Lg:+0x2.3456789abcdfep0123:0:-1:
+%*3Lg:+0x2.3456789abcdfep0123:0:-1:
+%3Lg:+0x2.3456789abcdfep+123:0:-1:
+%*3Lg:+0x2.3456789abcdfep+123:0:-1:
+%3Lg:+0x7.ffffffffffffcp1021:0:-1:
+%*3Lg:+0x7.ffffffffffffcp1021:0:-1:
+%3Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*3Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%3Lg:+infinity:0:-1:
+%*3Lg:+infinity:0:-1:
+%4Lg::0:-1:
+%*4Lg::0:-1:
+%4Lg:-infinity:1:4:-inf:
+%*4Lg:-infinity:0:4:
+%4Lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3:
+%*4Lg:-0xf.ffffffffffff8p+1020:0:4:
+%4Lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2:
+%*4Lg:-0x7.ffffffffffffcp1021:0:4:
+%4Lg:-0x2.3456789abcdfep+123:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdfep+123:0:4:
+%4Lg:-0x2.3456789abcdfep0123:1:4:-0x1p1:
+%*4Lg:-0x2.3456789abcdfep0123:0:4:
+%4Lg:-0x8p-1025:1:4:-0x1p3:
+%*4Lg:-0x8p-1025:0:4:
+%4Lg:-0x0p+0:1:4:-0x0:
+%*4Lg:-0x0p+0:0:4:
+%4Lg:-0x0p0:1:4:-0x0:
+%*4Lg:-0x0p0:0:4:
+%4Lg:-nan(09A_Zaz):1:4:-nan:
+%*4Lg:-nan(09A_Zaz):0:4:
+%4Lg:-nan():1:4:-nan:
+%*4Lg:-nan():0:4:
+%4Lg:nan():0:-1:
+%*4Lg:nan():0:-1:
+%4Lg:nan(09A_Zaz):0:-1:
+%*4Lg:nan(09A_Zaz):0:-1:
+%4Lg:0x0p0:0:-1:
+%*4Lg:0x0p0:0:-1:
+%4Lg:0x0p+0:0:-1:
+%*4Lg:0x0p+0:0:-1:
+%4Lg:0x8p-1025:0:-1:
+%*4Lg:0x8p-1025:0:-1:
+%4Lg:0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdfep0123:0:4:
+%4Lg:0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4Lg:0x2.3456789abcdfep+123:0:4:
+%4Lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4Lg:0x7.ffffffffffffcp1021:0:4:
+%4Lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4Lg:0xf.ffffffffffff8p+1020:0:4:
+%4Lg:infinity:0:-1:
+%*4Lg:infinity:0:-1:
+%4Lg:+nan():1:4:nan:
+%*4Lg:+nan():0:4:
+%4Lg:+nan(09A_Zaz):1:4:nan:
+%*4Lg:+nan(09A_Zaz):0:4:
+%4Lg:+0x0p0:1:4:0x0:
+%*4Lg:+0x0p0:0:4:
+%4Lg:+0x0p+0:1:4:0x0:
+%*4Lg:+0x0p+0:0:4:
+%4Lg:+0x8p-1025:1:4:0x1p3:
+%*4Lg:+0x8p-1025:0:4:
+%4Lg:+0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdfep0123:0:4:
+%4Lg:+0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4Lg:+0x2.3456789abcdfep+123:0:4:
+%4Lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4Lg:+0x7.ffffffffffffcp1021:0:4:
+%4Lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4Lg:+0xf.ffffffffffff8p+1020:0:4:
+%4Lg:+infinity:1:4:inf:
+%*4Lg:+infinity:0:4:
+%5Lg::0:-1:
+%*5Lg::0:-1:
+%5Lg:-infinity:0:-1:
+%*5Lg:-infinity:0:-1:
+%5Lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3:
+%*5Lg:-0xf.ffffffffffff8p+1020:0:5:
+%5Lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2:
+%*5Lg:-0x7.ffffffffffffcp1021:0:5:
+%5Lg:-0x2.3456789abcdfep+123:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdfep+123:0:5:
+%5Lg:-0x2.3456789abcdfep0123:1:5:-0x1p1:
+%*5Lg:-0x2.3456789abcdfep0123:0:5:
+%5Lg:-0x8p-1025:0:-1:
+%*5Lg:-0x8p-1025:0:-1:
+%5Lg:-0x0p+0:0:-1:
+%*5Lg:-0x0p+0:0:-1:
+%5Lg:-0x0p0:0:-1:
+%*5Lg:-0x0p0:0:-1:
+%5Lg:-nan(09A_Zaz):0:-1:
+%*5Lg:-nan(09A_Zaz):0:-1:
+%5Lg:-nan():0:-1:
+%*5Lg:-nan():0:-1:
+%5Lg:nan():1:5:nan:
+%*5Lg:nan():0:5:
+%5Lg:nan(09A_Zaz):0:-1:
+%*5Lg:nan(09A_Zaz):0:-1:
+%5Lg:0x0p0:1:5:0x0:
+%*5Lg:0x0p0:0:5:
+%5Lg:0x0p+0:0:-1:
+%*5Lg:0x0p+0:0:-1:
+%5Lg:0x8p-1025:0:-1:
+%*5Lg:0x8p-1025:0:-1:
+%5Lg:0x2.3456789abcdfep0123:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdfep0123:0:5:
+%5Lg:0x2.3456789abcdfep+123:1:5:0x1.18p1:
+%*5Lg:0x2.3456789abcdfep+123:0:5:
+%5Lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2:
+%*5Lg:0x7.ffffffffffffcp1021:0:5:
+%5Lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3:
+%*5Lg:0xf.ffffffffffff8p+1020:0:5:
+%5Lg:infinity:0:-1:
+%*5Lg:infinity:0:-1:
+%5Lg:+nan():0:-1:
+%*5Lg:+nan():0:-1:
+%5Lg:+nan(09A_Zaz):0:-1:
+%*5Lg:+nan(09A_Zaz):0:-1:
+%5Lg:+0x0p0:0:-1:
+%*5Lg:+0x0p0:0:-1:
+%5Lg:+0x0p+0:0:-1:
+%*5Lg:+0x0p+0:0:-1:
+%5Lg:+0x8p-1025:0:-1:
+%*5Lg:+0x8p-1025:0:-1:
+%5Lg:+0x2.3456789abcdfep0123:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdfep0123:0:5:
+%5Lg:+0x2.3456789abcdfep+123:1:5:0x1p1:
+%*5Lg:+0x2.3456789abcdfep+123:0:5:
+%5Lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2:
+%*5Lg:+0x7.ffffffffffffcp1021:0:5:
+%5Lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3:
+%*5Lg:+0xf.ffffffffffff8p+1020:0:5:
+%5Lg:+infinity:0:-1:
+%*5Lg:+infinity:0:-1:
+%6Lg::0:-1:
+%*6Lg::0:-1:
+%6Lg:-infinity:0:-1:
+%*6Lg:-infinity:0:-1:
+%6Lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3:
+%*6Lg:-0xf.ffffffffffff8p+1020:0:6:
+%6Lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2:
+%*6Lg:-0x7.ffffffffffffcp1021:0:6:
+%6Lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdfep+123:0:6:
+%6Lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1:
+%*6Lg:-0x2.3456789abcdfep0123:0:6:
+%6Lg:-0x8p-1025:0:-1:
+%*6Lg:-0x8p-1025:0:-1:
+%6Lg:-0x0p+0:0:-1:
+%*6Lg:-0x0p+0:0:-1:
+%6Lg:-0x0p0:1:6:-0x0:
+%*6Lg:-0x0p0:0:6:
+%6Lg:-nan(09A_Zaz):0:-1:
+%*6Lg:-nan(09A_Zaz):0:-1:
+%6Lg:-nan():1:6:-nan:
+%*6Lg:-nan():0:6:
+%6Lg:nan():1:5:nan:
+%*6Lg:nan():0:5:
+%6Lg:nan(09A_Zaz):0:-1:
+%*6Lg:nan(09A_Zaz):0:-1:
+%6Lg:0x0p0:1:5:0x0:
+%*6Lg:0x0p0:0:5:
+%6Lg:0x0p+0:1:6:0x0:
+%*6Lg:0x0p+0:0:6:
+%6Lg:0x8p-1025:1:6:0x1p2:
+%*6Lg:0x8p-1025:0:6:
+%6Lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdfep0123:0:6:
+%6Lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1:
+%*6Lg:0x2.3456789abcdfep+123:0:6:
+%6Lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2:
+%*6Lg:0x7.ffffffffffffcp1021:0:6:
+%6Lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3:
+%*6Lg:0xf.ffffffffffff8p+1020:0:6:
+%6Lg:infinity:0:-1:
+%*6Lg:infinity:0:-1:
+%6Lg:+nan():1:6:nan:
+%*6Lg:+nan():0:6:
+%6Lg:+nan(09A_Zaz):0:-1:
+%*6Lg:+nan(09A_Zaz):0:-1:
+%6Lg:+0x0p0:1:6:0x0:
+%*6Lg:+0x0p0:0:6:
+%6Lg:+0x0p+0:0:-1:
+%*6Lg:+0x0p+0:0:-1:
+%6Lg:+0x8p-1025:0:-1:
+%*6Lg:+0x8p-1025:0:-1:
+%6Lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdfep0123:0:6:
+%6Lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*6Lg:+0x2.3456789abcdfep+123:0:6:
+%6Lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*6Lg:+0x7.ffffffffffffcp1021:0:6:
+%6Lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*6Lg:+0xf.ffffffffffff8p+1020:0:6:
+%6Lg:+infinity:0:-1:
+%*6Lg:+infinity:0:-1:
+%20Lg::0:-1:
+%*20Lg::0:-1:
+%20Lg:-infinity:1:9:-inf:
+%*20Lg:-infinity:0:9:
+%20Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%*20Lg:-0xf.ffffffffffff8p+1020:0:-1:
+%20Lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3:
+%*20Lg:-0x7.ffffffffffffcp1021:0:20:
+%20Lg:-0x2.3456789abcdfep+123:0:-1:
+%*20Lg:-0x2.3456789abcdfep+123:0:-1:
+%20Lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20Lg:-0x2.3456789abcdfep0123:0:20:
+%20Lg:-0x8p-1025:1:10:-0x1p-1022:
+%*20Lg:-0x8p-1025:0:10:
+%20Lg:-0x0p+0:1:7:-0x0:
+%*20Lg:-0x0p+0:0:7:
+%20Lg:-0x0p0:1:6:-0x0:
+%*20Lg:-0x0p0:0:6:
+%20Lg:-nan(09A_Zaz):1:13:-nan:
+%*20Lg:-nan(09A_Zaz):0:13:
+%20Lg:-nan():1:6:-nan:
+%*20Lg:-nan():0:6:
+%20Lg:nan():1:5:nan:
+%*20Lg:nan():0:5:
+%20Lg:nan(09A_Zaz):1:12:nan:
+%*20Lg:nan(09A_Zaz):0:12:
+%20Lg:0x0p0:1:5:0x0:
+%*20Lg:0x0p0:0:5:
+%20Lg:0x0p+0:1:6:0x0:
+%*20Lg:0x0p+0:0:6:
+%20Lg:0x8p-1025:1:9:0x1p-1022:
+%*20Lg:0x8p-1025:0:9:
+%20Lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20Lg:0x2.3456789abcdfep0123:0:20:
+%20Lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20Lg:0x2.3456789abcdfep+123:0:20:
+%20Lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12:
+%*20Lg:0x7.ffffffffffffcp1021:0:20:
+%20Lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4:
+%*20Lg:0xf.ffffffffffff8p+1020:0:20:
+%20Lg:infinity:1:8:inf:
+%*20Lg:infinity:0:8:
+%20Lg:+nan():1:6:nan:
+%*20Lg:+nan():0:6:
+%20Lg:+nan(09A_Zaz):1:13:nan:
+%*20Lg:+nan(09A_Zaz):0:13:
+%20Lg:+0x0p0:1:6:0x0:
+%*20Lg:+0x0p0:0:6:
+%20Lg:+0x0p+0:1:7:0x0:
+%*20Lg:+0x0p+0:0:7:
+%20Lg:+0x8p-1025:1:10:0x1p-1022:
+%*20Lg:+0x8p-1025:0:10:
+%20Lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20Lg:+0x2.3456789abcdfep0123:0:20:
+%20Lg:+0x2.3456789abcdfep+123:0:-1:
+%*20Lg:+0x2.3456789abcdfep+123:0:-1:
+%20Lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3:
+%*20Lg:+0x7.ffffffffffffcp1021:0:20:
+%20Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%*20Lg:+0xf.ffffffffffff8p+1020:0:-1:
+%20Lg:+infinity:1:9:inf:
+%*20Lg:+infinity:0:9:
+%32Lg::0:-1:
+%*32Lg::0:-1:
+%32Lg:-infinity:1:9:-inf:
+%*32Lg:-infinity:0:9:
+%32Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*32Lg:-0xf.ffffffffffff8p+1020:0:24:
+%32Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*32Lg:-0x7.ffffffffffffcp1021:0:23:
+%32Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32Lg:-0x2.3456789abcdfep+123:0:23:
+%32Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32Lg:-0x2.3456789abcdfep0123:0:23:
+%32Lg:-0x8p-1025:1:10:-0x1p-1022:
+%*32Lg:-0x8p-1025:0:10:
+%32Lg:-0x0p+0:1:7:-0x0:
+%*32Lg:-0x0p+0:0:7:
+%32Lg:-0x0p0:1:6:-0x0:
+%*32Lg:-0x0p0:0:6:
+%32Lg:-nan(09A_Zaz):1:13:-nan:
+%*32Lg:-nan(09A_Zaz):0:13:
+%32Lg:-nan():1:6:-nan:
+%*32Lg:-nan():0:6:
+%32Lg:nan():1:5:nan:
+%*32Lg:nan():0:5:
+%32Lg:nan(09A_Zaz):1:12:nan:
+%*32Lg:nan(09A_Zaz):0:12:
+%32Lg:0x0p0:1:5:0x0:
+%*32Lg:0x0p0:0:5:
+%32Lg:0x0p+0:1:6:0x0:
+%*32Lg:0x0p+0:0:6:
+%32Lg:0x8p-1025:1:9:0x1p-1022:
+%*32Lg:0x8p-1025:0:9:
+%32Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32Lg:0x2.3456789abcdfep0123:0:22:
+%32Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32Lg:0x2.3456789abcdfep+123:0:22:
+%32Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*32Lg:0x7.ffffffffffffcp1021:0:22:
+%32Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*32Lg:0xf.ffffffffffff8p+1020:0:23:
+%32Lg:infinity:1:8:inf:
+%*32Lg:infinity:0:8:
+%32Lg:+nan():1:6:nan:
+%*32Lg:+nan():0:6:
+%32Lg:+nan(09A_Zaz):1:13:nan:
+%*32Lg:+nan(09A_Zaz):0:13:
+%32Lg:+0x0p0:1:6:0x0:
+%*32Lg:+0x0p0:0:6:
+%32Lg:+0x0p+0:1:7:0x0:
+%*32Lg:+0x0p+0:0:7:
+%32Lg:+0x8p-1025:1:10:0x1p-1022:
+%*32Lg:+0x8p-1025:0:10:
+%32Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32Lg:+0x2.3456789abcdfep0123:0:23:
+%32Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32Lg:+0x2.3456789abcdfep+123:0:23:
+%32Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32Lg:+0x7.ffffffffffffcp1021:0:23:
+%32Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32Lg:+0xf.ffffffffffff8p+1020:0:24:
+%32Lg:+infinity:1:9:inf:
+%*32Lg:+infinity:0:9:
+%5Lg: :0:-1:
+%*5Lg: :0:-1:
+%5Lg: -infinity:0:-1:
+%*5Lg: -infinity:0:-1:
+%5Lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3:
+%*5Lg: -0xf.ffffffffffff8p+1020:0:6:
+%5Lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2:
+%*5Lg: -0x7.ffffffffffffcp1021:0:6:
+%5Lg: -0x2.3456789abcdfep+123:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdfep+123:0:6:
+%5Lg: -0x2.3456789abcdfep0123:1:6:-0x1p1:
+%*5Lg: -0x2.3456789abcdfep0123:0:6:
+%5Lg: -0x8p-1025:0:-1:
+%*5Lg: -0x8p-1025:0:-1:
+%5Lg: -0x0p+0:0:-1:
+%*5Lg: -0x0p+0:0:-1:
+%5Lg: -0x0p0:0:-1:
+%*5Lg: -0x0p0:0:-1:
+%5Lg: -nan(09A_Zaz):0:-1:
+%*5Lg: -nan(09A_Zaz):0:-1:
+%5Lg: -nan():0:-1:
+%*5Lg: -nan():0:-1:
+%5Lg: nan():1:6:nan:
+%*5Lg: nan():0:6:
+%5Lg: nan(09A_Zaz):0:-1:
+%*5Lg: nan(09A_Zaz):0:-1:
+%5Lg: 0x0p0:1:6:0x0:
+%*5Lg: 0x0p0:0:6:
+%5Lg: 0x0p+0:0:-1:
+%*5Lg: 0x0p+0:0:-1:
+%5Lg: 0x8p-1025:0:-1:
+%*5Lg: 0x8p-1025:0:-1:
+%5Lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdfep0123:0:6:
+%5Lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*5Lg: 0x2.3456789abcdfep+123:0:6:
+%5Lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*5Lg: 0x7.ffffffffffffcp1021:0:6:
+%5Lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*5Lg: 0xf.ffffffffffff8p+1020:0:6:
+%5Lg: infinity:0:-1:
+%*5Lg: infinity:0:-1:
+%5Lg: +nan():0:-1:
+%*5Lg: +nan():0:-1:
+%5Lg: +nan(09A_Zaz):0:-1:
+%*5Lg: +nan(09A_Zaz):0:-1:
+%5Lg: +0x0p0:0:-1:
+%*5Lg: +0x0p0:0:-1:
+%5Lg: +0x0p+0:0:-1:
+%*5Lg: +0x0p+0:0:-1:
+%5Lg: +0x8p-1025:0:-1:
+%*5Lg: +0x8p-1025:0:-1:
+%5Lg: +0x2.3456789abcdfep0123:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdfep0123:0:6:
+%5Lg: +0x2.3456789abcdfep+123:1:6:0x1p1:
+%*5Lg: +0x2.3456789abcdfep+123:0:6:
+%5Lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2:
+%*5Lg: +0x7.ffffffffffffcp1021:0:6:
+%5Lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3:
+%*5Lg: +0xf.ffffffffffff8p+1020:0:6:
+%5Lg: +infinity:0:-1:
+%*5Lg: +infinity:0:-1:
+%32Lg: :0:-1:
+%*32Lg: :0:-1:
+%32Lg: -infinity:1:10:-inf:
+%*32Lg: -infinity:0:10:
+%32Lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023:
+%*32Lg: -0xf.ffffffffffff8p+1020:0:25:
+%32Lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023:
+%*32Lg: -0x7.ffffffffffffcp1021:0:24:
+%32Lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32Lg: -0x2.3456789abcdfep+123:0:24:
+%32Lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32Lg: -0x2.3456789abcdfep0123:0:24:
+%32Lg: -0x8p-1025:1:11:-0x1p-1022:
+%*32Lg: -0x8p-1025:0:11:
+%32Lg: -0x0p+0:1:8:-0x0:
+%*32Lg: -0x0p+0:0:8:
+%32Lg: -0x0p0:1:7:-0x0:
+%*32Lg: -0x0p0:0:7:
+%32Lg: -nan(09A_Zaz):1:14:-nan:
+%*32Lg: -nan(09A_Zaz):0:14:
+%32Lg: -nan():1:7:-nan:
+%*32Lg: -nan():0:7:
+%32Lg: nan():1:6:nan:
+%*32Lg: nan():0:6:
+%32Lg: nan(09A_Zaz):1:13:nan:
+%*32Lg: nan(09A_Zaz):0:13:
+%32Lg: 0x0p0:1:6:0x0:
+%*32Lg: 0x0p0:0:6:
+%32Lg: 0x0p+0:1:7:0x0:
+%*32Lg: 0x0p+0:0:7:
+%32Lg: 0x8p-1025:1:10:0x1p-1022:
+%*32Lg: 0x8p-1025:0:10:
+%32Lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32Lg: 0x2.3456789abcdfep0123:0:23:
+%32Lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32Lg: 0x2.3456789abcdfep+123:0:23:
+%32Lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*32Lg: 0x7.ffffffffffffcp1021:0:23:
+%32Lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*32Lg: 0xf.ffffffffffff8p+1020:0:24:
+%32Lg: infinity:1:9:inf:
+%*32Lg: infinity:0:9:
+%32Lg: +nan():1:7:nan:
+%*32Lg: +nan():0:7:
+%32Lg: +nan(09A_Zaz):1:14:nan:
+%*32Lg: +nan(09A_Zaz):0:14:
+%32Lg: +0x0p0:1:7:0x0:
+%*32Lg: +0x0p0:0:7:
+%32Lg: +0x0p+0:1:8:0x0:
+%*32Lg: +0x0p+0:0:8:
+%32Lg: +0x8p-1025:1:11:0x1p-1022:
+%*32Lg: +0x8p-1025:0:11:
+%32Lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32Lg: +0x2.3456789abcdfep0123:0:24:
+%32Lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32Lg: +0x2.3456789abcdfep+123:0:24:
+%32Lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023:
+%*32Lg: +0x7.ffffffffffffcp1021:0:24:
+%32Lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023:
+%*32Lg: +0xf.ffffffffffff8p+1020:0:25:
+%32Lg: +infinity:1:10:inf:
+%*32Lg: +infinity:0:10:
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input
new file mode 100644
index 0000000..b34ed6b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input
@@ -0,0 +1,682 @@
+%LG::0:-1:
+%*LG::0:-1:
+%LG:-INFINITY:1:9:-inf:
+%*LG:-INFINITY:0:9:
+%LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*LG:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*LG:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*LG:-0X2.3456789ABCDFEP+123:0:23:
+%LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*LG:-0X2.3456789ABCDFEP0123:0:23:
+%LG:-0X8P-1025:1:10:-0x1p-1022:
+%*LG:-0X8P-1025:0:10:
+%LG:-0X0P+0:1:7:-0x0:
+%*LG:-0X0P+0:0:7:
+%LG:-0X0P0:1:6:-0x0:
+%*LG:-0X0P0:0:6:
+%LG:-NAN(09A_Zaz):1:13:-nan:
+%*LG:-NAN(09A_Zaz):0:13:
+%LG:-NAN():1:6:-nan:
+%*LG:-NAN():0:6:
+%LG:NAN():1:5:nan:
+%*LG:NAN():0:5:
+%LG:NAN(09A_Zaz):1:12:nan:
+%*LG:NAN(09A_Zaz):0:12:
+%LG:0X0P0:1:5:0x0:
+%*LG:0X0P0:0:5:
+%LG:0X0P+0:1:6:0x0:
+%*LG:0X0P+0:0:6:
+%LG:0X8P-1025:1:9:0x1p-1022:
+%*LG:0X8P-1025:0:9:
+%LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*LG:0X2.3456789ABCDFEP0123:0:22:
+%LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*LG:0X2.3456789ABCDFEP+123:0:22:
+%LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*LG:0X7.FFFFFFFFFFFFCP1021:0:22:
+%LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*LG:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%LG:INFINITY:1:8:inf:
+%*LG:INFINITY:0:8:
+%LG:+NAN():1:6:nan:
+%*LG:+NAN():0:6:
+%LG:+NAN(09A_Zaz):1:13:nan:
+%*LG:+NAN(09A_Zaz):0:13:
+%LG:+0X0P0:1:6:0x0:
+%*LG:+0X0P0:0:6:
+%LG:+0X0P+0:1:7:0x0:
+%*LG:+0X0P+0:0:7:
+%LG:+0X8P-1025:1:10:0x1p-1022:
+%*LG:+0X8P-1025:0:10:
+%LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*LG:+0X2.3456789ABCDFEP0123:0:23:
+%LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*LG:+0X2.3456789ABCDFEP+123:0:23:
+%LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*LG:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*LG:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%LG:+INFINITY:1:9:inf:
+%*LG:+INFINITY:0:9:
+%1LG::0:-1:
+%*1LG::0:-1:
+%1LG:-INFINITY:0:-1:
+%*1LG:-INFINITY:0:-1:
+%1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1LG:-0X2.3456789ABCDFEP+123:0:-1:
+%*1LG:-0X2.3456789ABCDFEP+123:0:-1:
+%1LG:-0X2.3456789ABCDFEP0123:0:-1:
+%*1LG:-0X2.3456789ABCDFEP0123:0:-1:
+%1LG:-0X8P-1025:0:-1:
+%*1LG:-0X8P-1025:0:-1:
+%1LG:-0X0P+0:0:-1:
+%*1LG:-0X0P+0:0:-1:
+%1LG:-0X0P0:0:-1:
+%*1LG:-0X0P0:0:-1:
+%1LG:-NAN(09A_Zaz):0:-1:
+%*1LG:-NAN(09A_Zaz):0:-1:
+%1LG:-NAN():0:-1:
+%*1LG:-NAN():0:-1:
+%1LG:NAN():0:-1:
+%*1LG:NAN():0:-1:
+%1LG:NAN(09A_Zaz):0:-1:
+%*1LG:NAN(09A_Zaz):0:-1:
+%1LG:0X0P0:1:1:0x0:
+%*1LG:0X0P0:0:1:
+%1LG:0X0P+0:1:1:0x0:
+%*1LG:0X0P+0:0:1:
+%1LG:0X8P-1025:1:1:0x0:
+%*1LG:0X8P-1025:0:1:
+%1LG:0X2.3456789ABCDFEP0123:1:1:0x0:
+%*1LG:0X2.3456789ABCDFEP0123:0:1:
+%1LG:0X2.3456789ABCDFEP+123:1:1:0x0:
+%*1LG:0X2.3456789ABCDFEP+123:0:1:
+%1LG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0:
+%*1LG:0X7.FFFFFFFFFFFFCP1021:0:1:
+%1LG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0:
+%*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1:
+%1LG:INFINITY:0:-1:
+%*1LG:INFINITY:0:-1:
+%1LG:+NAN():0:-1:
+%*1LG:+NAN():0:-1:
+%1LG:+NAN(09A_Zaz):0:-1:
+%*1LG:+NAN(09A_Zaz):0:-1:
+%1LG:+0X0P0:0:-1:
+%*1LG:+0X0P0:0:-1:
+%1LG:+0X0P+0:0:-1:
+%*1LG:+0X0P+0:0:-1:
+%1LG:+0X8P-1025:0:-1:
+%*1LG:+0X8P-1025:0:-1:
+%1LG:+0X2.3456789ABCDFEP0123:0:-1:
+%*1LG:+0X2.3456789ABCDFEP0123:0:-1:
+%1LG:+0X2.3456789ABCDFEP+123:0:-1:
+%*1LG:+0X2.3456789ABCDFEP+123:0:-1:
+%1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%1LG:+INFINITY:0:-1:
+%*1LG:+INFINITY:0:-1:
+%2LG::0:-1:
+%*2LG::0:-1:
+%2LG:-INFINITY:0:-1:
+%*2LG:-INFINITY:0:-1:
+%2LG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0:
+%*2LG:-0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2LG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0:
+%*2LG:-0X7.FFFFFFFFFFFFCP1021:0:2:
+%2LG:-0X2.3456789ABCDFEP+123:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDFEP+123:0:2:
+%2LG:-0X2.3456789ABCDFEP0123:1:2:-0x0:
+%*2LG:-0X2.3456789ABCDFEP0123:0:2:
+%2LG:-0X8P-1025:1:2:-0x0:
+%*2LG:-0X8P-1025:0:2:
+%2LG:-0X0P+0:1:2:-0x0:
+%*2LG:-0X0P+0:0:2:
+%2LG:-0X0P0:1:2:-0x0:
+%*2LG:-0X0P0:0:2:
+%2LG:-NAN(09A_Zaz):0:-1:
+%*2LG:-NAN(09A_Zaz):0:-1:
+%2LG:-NAN():0:-1:
+%*2LG:-NAN():0:-1:
+%2LG:NAN():0:-1:
+%*2LG:NAN():0:-1:
+%2LG:NAN(09A_Zaz):0:-1:
+%*2LG:NAN(09A_Zaz):0:-1:
+%2LG:0X0P0:0:-1:
+%*2LG:0X0P0:0:-1:
+%2LG:0X0P+0:0:-1:
+%*2LG:0X0P+0:0:-1:
+%2LG:0X8P-1025:0:-1:
+%*2LG:0X8P-1025:0:-1:
+%2LG:0X2.3456789ABCDFEP0123:0:-1:
+%*2LG:0X2.3456789ABCDFEP0123:0:-1:
+%2LG:0X2.3456789ABCDFEP+123:0:-1:
+%*2LG:0X2.3456789ABCDFEP+123:0:-1:
+%2LG:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*2LG:0X7.FFFFFFFFFFFFCP1021:0:-1:
+%2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%2LG:INFINITY:0:-1:
+%*2LG:INFINITY:0:-1:
+%2LG:+NAN():0:-1:
+%*2LG:+NAN():0:-1:
+%2LG:+NAN(09A_Zaz):0:-1:
+%*2LG:+NAN(09A_Zaz):0:-1:
+%2LG:+0X0P0:1:2:0x0:
+%*2LG:+0X0P0:0:2:
+%2LG:+0X0P+0:1:2:0x0:
+%*2LG:+0X0P+0:0:2:
+%2LG:+0X8P-1025:1:2:0x0:
+%*2LG:+0X8P-1025:0:2:
+%2LG:+0X2.3456789ABCDFEP0123:1:2:0x0:
+%*2LG:+0X2.3456789ABCDFEP0123:0:2:
+%2LG:+0X2.3456789ABCDFEP+123:1:2:0x0:
+%*2LG:+0X2.3456789ABCDFEP+123:0:2:
+%2LG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0:
+%*2LG:+0X7.FFFFFFFFFFFFCP1021:0:2:
+%2LG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0:
+%*2LG:+0XF.FFFFFFFFFFFF8P+1020:0:2:
+%2LG:+INFINITY:0:-1:
+%*2LG:+INFINITY:0:-1:
+%3LG::0:-1:
+%*3LG::0:-1:
+%3LG:-INFINITY:0:-1:
+%*3LG:-INFINITY:0:-1:
+%3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3LG:-0X2.3456789ABCDFEP+123:0:-1:
+%*3LG:-0X2.3456789ABCDFEP+123:0:-1:
+%3LG:-0X2.3456789ABCDFEP0123:0:-1:
+%*3LG:-0X2.3456789ABCDFEP0123:0:-1:
+%3LG:-0X8P-1025:0:-1:
+%*3LG:-0X8P-1025:0:-1:
+%3LG:-0X0P+0:0:-1:
+%*3LG:-0X0P+0:0:-1:
+%3LG:-0X0P0:0:-1:
+%*3LG:-0X0P0:0:-1:
+%3LG:-NAN(09A_Zaz):0:-1:
+%*3LG:-NAN(09A_Zaz):0:-1:
+%3LG:-NAN():0:-1:
+%*3LG:-NAN():0:-1:
+%3LG:NAN():1:3:nan:
+%*3LG:NAN():0:3:
+%3LG:NAN(09A_Zaz):1:3:nan:
+%*3LG:NAN(09A_Zaz):0:3:
+%3LG:0X0P0:1:3:0x0:
+%*3LG:0X0P0:0:3:
+%3LG:0X0P+0:1:3:0x0:
+%*3LG:0X0P+0:0:3:
+%3LG:0X8P-1025:1:3:0x1p3:
+%*3LG:0X8P-1025:0:3:
+%3LG:0X2.3456789ABCDFEP0123:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDFEP0123:0:3:
+%3LG:0X2.3456789ABCDFEP+123:1:3:0x1p1:
+%*3LG:0X2.3456789ABCDFEP+123:0:3:
+%3LG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2:
+%*3LG:0X7.FFFFFFFFFFFFCP1021:0:3:
+%3LG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3:
+%*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3:
+%3LG:INFINITY:1:3:inf:
+%*3LG:INFINITY:0:3:
+%3LG:+NAN():0:-1:
+%*3LG:+NAN():0:-1:
+%3LG:+NAN(09A_Zaz):0:-1:
+%*3LG:+NAN(09A_Zaz):0:-1:
+%3LG:+0X0P0:0:-1:
+%*3LG:+0X0P0:0:-1:
+%3LG:+0X0P+0:0:-1:
+%*3LG:+0X0P+0:0:-1:
+%3LG:+0X8P-1025:0:-1:
+%*3LG:+0X8P-1025:0:-1:
+%3LG:+0X2.3456789ABCDFEP0123:0:-1:
+%*3LG:+0X2.3456789ABCDFEP0123:0:-1:
+%3LG:+0X2.3456789ABCDFEP+123:0:-1:
+%*3LG:+0X2.3456789ABCDFEP+123:0:-1:
+%3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%*3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1:
+%3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%3LG:+INFINITY:0:-1:
+%*3LG:+INFINITY:0:-1:
+%4LG::0:-1:
+%*4LG::0:-1:
+%4LG:-INFINITY:1:4:-inf:
+%*4LG:-INFINITY:0:4:
+%4LG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3:
+%*4LG:-0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2:
+%*4LG:-0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDFEP+123:0:4:
+%4LG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1:
+%*4LG:-0X2.3456789ABCDFEP0123:0:4:
+%4LG:-0X8P-1025:1:4:-0x1p3:
+%*4LG:-0X8P-1025:0:4:
+%4LG:-0X0P+0:1:4:-0x0:
+%*4LG:-0X0P+0:0:4:
+%4LG:-0X0P0:1:4:-0x0:
+%*4LG:-0X0P0:0:4:
+%4LG:-NAN(09A_Zaz):1:4:-nan:
+%*4LG:-NAN(09A_Zaz):0:4:
+%4LG:-NAN():1:4:-nan:
+%*4LG:-NAN():0:4:
+%4LG:NAN():0:-1:
+%*4LG:NAN():0:-1:
+%4LG:NAN(09A_Zaz):0:-1:
+%*4LG:NAN(09A_Zaz):0:-1:
+%4LG:0X0P0:0:-1:
+%*4LG:0X0P0:0:-1:
+%4LG:0X0P+0:0:-1:
+%*4LG:0X0P+0:0:-1:
+%4LG:0X8P-1025:0:-1:
+%*4LG:0X8P-1025:0:-1:
+%4LG:0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDFEP0123:0:4:
+%4LG:0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4LG:0X2.3456789ABCDFEP+123:0:4:
+%4LG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4LG:0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LG:INFINITY:0:-1:
+%*4LG:INFINITY:0:-1:
+%4LG:+NAN():1:4:nan:
+%*4LG:+NAN():0:4:
+%4LG:+NAN(09A_Zaz):1:4:nan:
+%*4LG:+NAN(09A_Zaz):0:4:
+%4LG:+0X0P0:1:4:0x0:
+%*4LG:+0X0P0:0:4:
+%4LG:+0X0P+0:1:4:0x0:
+%*4LG:+0X0P+0:0:4:
+%4LG:+0X8P-1025:1:4:0x1p3:
+%*4LG:+0X8P-1025:0:4:
+%4LG:+0X2.3456789ABCDFEP0123:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDFEP0123:0:4:
+%4LG:+0X2.3456789ABCDFEP+123:1:4:0x1p1:
+%*4LG:+0X2.3456789ABCDFEP+123:0:4:
+%4LG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2:
+%*4LG:+0X7.FFFFFFFFFFFFCP1021:0:4:
+%4LG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3:
+%*4LG:+0XF.FFFFFFFFFFFF8P+1020:0:4:
+%4LG:+INFINITY:1:4:inf:
+%*4LG:+INFINITY:0:4:
+%5LG::0:-1:
+%*5LG::0:-1:
+%5LG:-INFINITY:0:-1:
+%*5LG:-INFINITY:0:-1:
+%5LG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3:
+%*5LG:-0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2:
+%*5LG:-0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDFEP+123:0:5:
+%5LG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1:
+%*5LG:-0X2.3456789ABCDFEP0123:0:5:
+%5LG:-0X8P-1025:0:-1:
+%*5LG:-0X8P-1025:0:-1:
+%5LG:-0X0P+0:0:-1:
+%*5LG:-0X0P+0:0:-1:
+%5LG:-0X0P0:0:-1:
+%*5LG:-0X0P0:0:-1:
+%5LG:-NAN(09A_Zaz):0:-1:
+%*5LG:-NAN(09A_Zaz):0:-1:
+%5LG:-NAN():0:-1:
+%*5LG:-NAN():0:-1:
+%5LG:NAN():1:5:nan:
+%*5LG:NAN():0:5:
+%5LG:NAN(09A_Zaz):0:-1:
+%*5LG:NAN(09A_Zaz):0:-1:
+%5LG:0X0P0:1:5:0x0:
+%*5LG:0X0P0:0:5:
+%5LG:0X0P+0:0:-1:
+%*5LG:0X0P+0:0:-1:
+%5LG:0X8P-1025:0:-1:
+%*5LG:0X8P-1025:0:-1:
+%5LG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDFEP0123:0:5:
+%5LG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1:
+%*5LG:0X2.3456789ABCDFEP+123:0:5:
+%5LG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2:
+%*5LG:0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3:
+%*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LG:INFINITY:0:-1:
+%*5LG:INFINITY:0:-1:
+%5LG:+NAN():0:-1:
+%*5LG:+NAN():0:-1:
+%5LG:+NAN(09A_Zaz):0:-1:
+%*5LG:+NAN(09A_Zaz):0:-1:
+%5LG:+0X0P0:0:-1:
+%*5LG:+0X0P0:0:-1:
+%5LG:+0X0P+0:0:-1:
+%*5LG:+0X0P+0:0:-1:
+%5LG:+0X8P-1025:0:-1:
+%*5LG:+0X8P-1025:0:-1:
+%5LG:+0X2.3456789ABCDFEP0123:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDFEP0123:0:5:
+%5LG:+0X2.3456789ABCDFEP+123:1:5:0x1p1:
+%*5LG:+0X2.3456789ABCDFEP+123:0:5:
+%5LG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2:
+%*5LG:+0X7.FFFFFFFFFFFFCP1021:0:5:
+%5LG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3:
+%*5LG:+0XF.FFFFFFFFFFFF8P+1020:0:5:
+%5LG:+INFINITY:0:-1:
+%*5LG:+INFINITY:0:-1:
+%6LG::0:-1:
+%*6LG::0:-1:
+%6LG:-INFINITY:0:-1:
+%*6LG:-INFINITY:0:-1:
+%6LG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3:
+%*6LG:-0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2:
+%*6LG:-0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDFEP+123:0:6:
+%6LG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1:
+%*6LG:-0X2.3456789ABCDFEP0123:0:6:
+%6LG:-0X8P-1025:0:-1:
+%*6LG:-0X8P-1025:0:-1:
+%6LG:-0X0P+0:0:-1:
+%*6LG:-0X0P+0:0:-1:
+%6LG:-0X0P0:1:6:-0x0:
+%*6LG:-0X0P0:0:6:
+%6LG:-NAN(09A_Zaz):0:-1:
+%*6LG:-NAN(09A_Zaz):0:-1:
+%6LG:-NAN():1:6:-nan:
+%*6LG:-NAN():0:6:
+%6LG:NAN():1:5:nan:
+%*6LG:NAN():0:5:
+%6LG:NAN(09A_Zaz):0:-1:
+%*6LG:NAN(09A_Zaz):0:-1:
+%6LG:0X0P0:1:5:0x0:
+%*6LG:0X0P0:0:5:
+%6LG:0X0P+0:1:6:0x0:
+%*6LG:0X0P+0:0:6:
+%6LG:0X8P-1025:1:6:0x1p2:
+%*6LG:0X8P-1025:0:6:
+%6LG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDFEP0123:0:6:
+%6LG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1:
+%*6LG:0X2.3456789ABCDFEP+123:0:6:
+%6LG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2:
+%*6LG:0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3:
+%*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LG:INFINITY:0:-1:
+%*6LG:INFINITY:0:-1:
+%6LG:+NAN():1:6:nan:
+%*6LG:+NAN():0:6:
+%6LG:+NAN(09A_Zaz):0:-1:
+%*6LG:+NAN(09A_Zaz):0:-1:
+%6LG:+0X0P0:1:6:0x0:
+%*6LG:+0X0P0:0:6:
+%6LG:+0X0P+0:0:-1:
+%*6LG:+0X0P+0:0:-1:
+%6LG:+0X8P-1025:0:-1:
+%*6LG:+0X8P-1025:0:-1:
+%6LG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDFEP0123:0:6:
+%6LG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*6LG:+0X2.3456789ABCDFEP+123:0:6:
+%6LG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*6LG:+0X7.FFFFFFFFFFFFCP1021:0:6:
+%6LG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*6LG:+0XF.FFFFFFFFFFFF8P+1020:0:6:
+%6LG:+INFINITY:0:-1:
+%*6LG:+INFINITY:0:-1:
+%20LG::0:-1:
+%*20LG::0:-1:
+%20LG:-INFINITY:1:9:-inf:
+%*20LG:-INFINITY:0:9:
+%20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20LG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3:
+%*20LG:-0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LG:-0X2.3456789ABCDFEP+123:0:-1:
+%*20LG:-0X2.3456789ABCDFEP+123:0:-1:
+%20LG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20LG:-0X2.3456789ABCDFEP0123:0:20:
+%20LG:-0X8P-1025:1:10:-0x1p-1022:
+%*20LG:-0X8P-1025:0:10:
+%20LG:-0X0P+0:1:7:-0x0:
+%*20LG:-0X0P+0:0:7:
+%20LG:-0X0P0:1:6:-0x0:
+%*20LG:-0X0P0:0:6:
+%20LG:-NAN(09A_Zaz):1:13:-nan:
+%*20LG:-NAN(09A_Zaz):0:13:
+%20LG:-NAN():1:6:-nan:
+%*20LG:-NAN():0:6:
+%20LG:NAN():1:5:nan:
+%*20LG:NAN():0:5:
+%20LG:NAN(09A_Zaz):1:12:nan:
+%*20LG:NAN(09A_Zaz):0:12:
+%20LG:0X0P0:1:5:0x0:
+%*20LG:0X0P0:0:5:
+%20LG:0X0P+0:1:6:0x0:
+%*20LG:0X0P+0:0:6:
+%20LG:0X8P-1025:1:9:0x1p-1022:
+%*20LG:0X8P-1025:0:9:
+%20LG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20LG:0X2.3456789ABCDFEP0123:0:20:
+%20LG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20LG:0X2.3456789ABCDFEP+123:0:20:
+%20LG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12:
+%*20LG:0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4:
+%*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20:
+%20LG:INFINITY:1:8:inf:
+%*20LG:INFINITY:0:8:
+%20LG:+NAN():1:6:nan:
+%*20LG:+NAN():0:6:
+%20LG:+NAN(09A_Zaz):1:13:nan:
+%*20LG:+NAN(09A_Zaz):0:13:
+%20LG:+0X0P0:1:6:0x0:
+%*20LG:+0X0P0:0:6:
+%20LG:+0X0P+0:1:7:0x0:
+%*20LG:+0X0P+0:0:7:
+%20LG:+0X8P-1025:1:10:0x1p-1022:
+%*20LG:+0X8P-1025:0:10:
+%20LG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20LG:+0X2.3456789ABCDFEP0123:0:20:
+%20LG:+0X2.3456789ABCDFEP+123:0:-1:
+%*20LG:+0X2.3456789ABCDFEP+123:0:-1:
+%20LG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3:
+%*20LG:+0X7.FFFFFFFFFFFFCP1021:0:20:
+%20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%*20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1:
+%20LG:+INFINITY:1:9:inf:
+%*20LG:+INFINITY:0:9:
+%32LG::0:-1:
+%*32LG::0:-1:
+%32LG:-INFINITY:1:9:-inf:
+%*32LG:-INFINITY:0:9:
+%32LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023:
+%*32LG:-0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023:
+%*32LG:-0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32LG:-0X2.3456789ABCDFEP+123:0:23:
+%32LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32LG:-0X2.3456789ABCDFEP0123:0:23:
+%32LG:-0X8P-1025:1:10:-0x1p-1022:
+%*32LG:-0X8P-1025:0:10:
+%32LG:-0X0P+0:1:7:-0x0:
+%*32LG:-0X0P+0:0:7:
+%32LG:-0X0P0:1:6:-0x0:
+%*32LG:-0X0P0:0:6:
+%32LG:-NAN(09A_Zaz):1:13:-nan:
+%*32LG:-NAN(09A_Zaz):0:13:
+%32LG:-NAN():1:6:-nan:
+%*32LG:-NAN():0:6:
+%32LG:NAN():1:5:nan:
+%*32LG:NAN():0:5:
+%32LG:NAN(09A_Zaz):1:12:nan:
+%*32LG:NAN(09A_Zaz):0:12:
+%32LG:0X0P0:1:5:0x0:
+%*32LG:0X0P0:0:5:
+%32LG:0X0P+0:1:6:0x0:
+%*32LG:0X0P+0:0:6:
+%32LG:0X8P-1025:1:9:0x1p-1022:
+%*32LG:0X8P-1025:0:9:
+%32LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32LG:0X2.3456789ABCDFEP0123:0:22:
+%32LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*32LG:0X2.3456789ABCDFEP+123:0:22:
+%32LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023:
+%*32LG:0X7.FFFFFFFFFFFFCP1021:0:22:
+%32LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023:
+%*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23:
+%32LG:INFINITY:1:8:inf:
+%*32LG:INFINITY:0:8:
+%32LG:+NAN():1:6:nan:
+%*32LG:+NAN():0:6:
+%32LG:+NAN(09A_Zaz):1:13:nan:
+%*32LG:+NAN(09A_Zaz):0:13:
+%32LG:+0X0P0:1:6:0x0:
+%*32LG:+0X0P0:0:6:
+%32LG:+0X0P+0:1:7:0x0:
+%*32LG:+0X0P+0:0:7:
+%32LG:+0X8P-1025:1:10:0x1p-1022:
+%*32LG:+0X8P-1025:0:10:
+%32LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LG:+0X2.3456789ABCDFEP0123:0:23:
+%32LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LG:+0X2.3456789ABCDFEP+123:0:23:
+%32LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32LG:+0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32LG:+0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LG:+INFINITY:1:9:inf:
+%*32LG:+INFINITY:0:9:
+%5LG: :0:-1:
+%*5LG: :0:-1:
+%5LG: -INFINITY:0:-1:
+%*5LG: -INFINITY:0:-1:
+%5LG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3:
+%*5LG: -0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2:
+%*5LG: -0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDFEP+123:0:6:
+%5LG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1:
+%*5LG: -0X2.3456789ABCDFEP0123:0:6:
+%5LG: -0X8P-1025:0:-1:
+%*5LG: -0X8P-1025:0:-1:
+%5LG: -0X0P+0:0:-1:
+%*5LG: -0X0P+0:0:-1:
+%5LG: -0X0P0:0:-1:
+%*5LG: -0X0P0:0:-1:
+%5LG: -NAN(09A_Zaz):0:-1:
+%*5LG: -NAN(09A_Zaz):0:-1:
+%5LG: -NAN():0:-1:
+%*5LG: -NAN():0:-1:
+%5LG: NAN():1:6:nan:
+%*5LG: NAN():0:6:
+%5LG: NAN(09A_Zaz):0:-1:
+%*5LG: NAN(09A_Zaz):0:-1:
+%5LG: 0X0P0:1:6:0x0:
+%*5LG: 0X0P0:0:6:
+%5LG: 0X0P+0:0:-1:
+%*5LG: 0X0P+0:0:-1:
+%5LG: 0X8P-1025:0:-1:
+%*5LG: 0X8P-1025:0:-1:
+%5LG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDFEP0123:0:6:
+%5LG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1:
+%*5LG: 0X2.3456789ABCDFEP+123:0:6:
+%5LG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2:
+%*5LG: 0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3:
+%*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LG: INFINITY:0:-1:
+%*5LG: INFINITY:0:-1:
+%5LG: +NAN():0:-1:
+%*5LG: +NAN():0:-1:
+%5LG: +NAN(09A_Zaz):0:-1:
+%*5LG: +NAN(09A_Zaz):0:-1:
+%5LG: +0X0P0:0:-1:
+%*5LG: +0X0P0:0:-1:
+%5LG: +0X0P+0:0:-1:
+%*5LG: +0X0P+0:0:-1:
+%5LG: +0X8P-1025:0:-1:
+%*5LG: +0X8P-1025:0:-1:
+%5LG: +0X2.3456789ABCDFEP0123:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDFEP0123:0:6:
+%5LG: +0X2.3456789ABCDFEP+123:1:6:0x1p1:
+%*5LG: +0X2.3456789ABCDFEP+123:0:6:
+%5LG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2:
+%*5LG: +0X7.FFFFFFFFFFFFCP1021:0:6:
+%5LG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3:
+%*5LG: +0XF.FFFFFFFFFFFF8P+1020:0:6:
+%5LG: +INFINITY:0:-1:
+%*5LG: +INFINITY:0:-1:
+%32LG: :0:-1:
+%*32LG: :0:-1:
+%32LG: -INFINITY:1:10:-inf:
+%*32LG: -INFINITY:0:10:
+%32LG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023:
+%*32LG: -0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32LG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023:
+%*32LG: -0X7.FFFFFFFFFFFFCP1021:0:24:
+%32LG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32LG: -0X2.3456789ABCDFEP+123:0:24:
+%32LG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124:
+%*32LG: -0X2.3456789ABCDFEP0123:0:24:
+%32LG: -0X8P-1025:1:11:-0x1p-1022:
+%*32LG: -0X8P-1025:0:11:
+%32LG: -0X0P+0:1:8:-0x0:
+%*32LG: -0X0P+0:0:8:
+%32LG: -0X0P0:1:7:-0x0:
+%*32LG: -0X0P0:0:7:
+%32LG: -NAN(09A_Zaz):1:14:-nan:
+%*32LG: -NAN(09A_Zaz):0:14:
+%32LG: -NAN():1:7:-nan:
+%*32LG: -NAN():0:7:
+%32LG: NAN():1:6:nan:
+%*32LG: NAN():0:6:
+%32LG: NAN(09A_Zaz):1:13:nan:
+%*32LG: NAN(09A_Zaz):0:13:
+%32LG: 0X0P0:1:6:0x0:
+%*32LG: 0X0P0:0:6:
+%32LG: 0X0P+0:1:7:0x0:
+%*32LG: 0X0P+0:0:7:
+%32LG: 0X8P-1025:1:10:0x1p-1022:
+%*32LG: 0X8P-1025:0:10:
+%32LG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LG: 0X2.3456789ABCDFEP0123:0:23:
+%32LG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*32LG: 0X2.3456789ABCDFEP+123:0:23:
+%32LG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023:
+%*32LG: 0X7.FFFFFFFFFFFFCP1021:0:23:
+%32LG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023:
+%*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24:
+%32LG: INFINITY:1:9:inf:
+%*32LG: INFINITY:0:9:
+%32LG: +NAN():1:7:nan:
+%*32LG: +NAN():0:7:
+%32LG: +NAN(09A_Zaz):1:14:nan:
+%*32LG: +NAN(09A_Zaz):0:14:
+%32LG: +0X0P0:1:7:0x0:
+%*32LG: +0X0P0:0:7:
+%32LG: +0X0P+0:1:8:0x0:
+%*32LG: +0X0P+0:0:8:
+%32LG: +0X8P-1025:1:11:0x1p-1022:
+%*32LG: +0X8P-1025:0:11:
+%32LG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32LG: +0X2.3456789ABCDFEP0123:0:24:
+%32LG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124:
+%*32LG: +0X2.3456789ABCDFEP+123:0:24:
+%32LG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023:
+%*32LG: +0X7.FFFFFFFFFFFFCP1021:0:24:
+%32LG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023:
+%*32LG: +0XF.FFFFFFFFFFFF8P+1020:0:25:
+%32LG: +INFINITY:1:10:inf:
+%*32LG: +INFINITY:0:10:
diff --git a/sysdeps/ieee754/libm-alias-finite.h b/sysdeps/ieee754/libm-alias-finite.h
index c56b43e..adc57a1 100644
--- a/sysdeps/ieee754/libm-alias-finite.h
+++ b/sysdeps/ieee754/libm-alias-finite.h
@@ -1,5 +1,5 @@
/* Finite math compatibility macros.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_daddl.c b/sysdeps/ieee754/soft-fp/s_daddl.c
index dcb7d5d..4fd0102 100644
--- a/sysdeps/ieee754/soft-fp/s_daddl.c
+++ b/sysdeps/ieee754/soft-fp/s_daddl.c
@@ -1,6 +1,6 @@
/* Add long double (ldbl-128) values, narrowing the result to double,
using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210..1ce6306 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -1,6 +1,6 @@
/* Divide long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c5..c129929 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_dmull.c b/sysdeps/ieee754/soft-fp/s_dmull.c
index 78d6a33..52c98e8 100644
--- a/sysdeps/ieee754/soft-fp/s_dmull.c
+++ b/sysdeps/ieee754/soft-fp/s_dmull.c
@@ -1,6 +1,6 @@
/* Multiply long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065..f1c3894 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -1,6 +1,6 @@
/* Square root of long double (ldbl-128) value, narrowing the result to
double, using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_dsubl.c b/sysdeps/ieee754/soft-fp/s_dsubl.c
index 2c950bd..a97079a 100644
--- a/sysdeps/ieee754/soft-fp/s_dsubl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsubl.c
@@ -1,6 +1,6 @@
/* Subtract long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fadd.c b/sysdeps/ieee754/soft-fp/s_fadd.c
index 19368eb..d007c41 100644
--- a/sysdeps/ieee754/soft-fp/s_fadd.c
+++ b/sysdeps/ieee754/soft-fp/s_fadd.c
@@ -1,5 +1,5 @@
/* Add double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_faddl.c b/sysdeps/ieee754/soft-fp/s_faddl.c
index 50e00e1..d48998c 100644
--- a/sysdeps/ieee754/soft-fp/s_faddl.c
+++ b/sysdeps/ieee754/soft-fp/s_faddl.c
@@ -1,6 +1,6 @@
/* Add long double (ldbl-128) values, narrowing the result to float,
using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6..071721a 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -1,5 +1,5 @@
/* Divide double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9..27a4c3e 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -1,6 +1,6 @@
/* Divide long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2..c60757e 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of double values, narrowing the result to float,
using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed..dabf340 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6..211198c 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -1,5 +1,5 @@
/* Implement fma using soft-fp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949..e635bd2 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -1,5 +1,5 @@
/* Implement fmaf using soft-fp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21..19d36c8 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -1,5 +1,5 @@
/* Implement fmal using soft-fp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fmul.c b/sysdeps/ieee754/soft-fp/s_fmul.c
index c545f54..6ac3c35 100644
--- a/sysdeps/ieee754/soft-fp/s_fmul.c
+++ b/sysdeps/ieee754/soft-fp/s_fmul.c
@@ -1,5 +1,5 @@
/* Multiply double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fmull.c b/sysdeps/ieee754/soft-fp/s_fmull.c
index 6594609..d9d3483 100644
--- a/sysdeps/ieee754/soft-fp/s_fmull.c
+++ b/sysdeps/ieee754/soft-fp/s_fmull.c
@@ -1,6 +1,6 @@
/* Multiply long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c
index f64ae82..93109c5 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrt.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c
@@ -1,5 +1,5 @@
/* Square root of double value, narrowing the result to float, using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrtl.c b/sysdeps/ieee754/soft-fp/s_fsqrtl.c
index 2854b90..15a88f3 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrtl.c
@@ -1,6 +1,6 @@
/* Square root of long double (ldbl-128) value, narrowing the result to
float, using soft-fp.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fsub.c b/sysdeps/ieee754/soft-fp/s_fsub.c
index 830f115..88fc123 100644
--- a/sysdeps/ieee754/soft-fp/s_fsub.c
+++ b/sysdeps/ieee754/soft-fp/s_fsub.c
@@ -1,5 +1,5 @@
/* Subtract double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/ieee754/soft-fp/s_fsubl.c b/sysdeps/ieee754/soft-fp/s_fsubl.c
index 8f1000d..10bbf3c 100644
--- a/sysdeps/ieee754/soft-fp/s_fsubl.c
+++ b/sysdeps/ieee754/soft-fp/s_fsubl.c
@@ -1,6 +1,6 @@
/* Subtract long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/__longjmp.S b/sysdeps/loongarch/__longjmp.S
index aff0a27..33c1f77 100644
--- a/sysdeps/loongarch/__longjmp.S
+++ b/sysdeps/loongarch/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/bits/fenv.h b/sysdeps/loongarch/bits/fenv.h
index 4417c42..9cfefa0 100644
--- a/sysdeps/loongarch/bits/fenv.h
+++ b/sysdeps/loongarch/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/bits/link.h b/sysdeps/loongarch/bits/link.h
index bb35433..013a468 100644
--- a/sysdeps/loongarch/bits/link.h
+++ b/sysdeps/loongarch/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/bits/link_lavcurrent.h b/sysdeps/loongarch/bits/link_lavcurrent.h
index 80e35cd..1cc14c7 100644
--- a/sysdeps/loongarch/bits/link_lavcurrent.h
+++ b/sysdeps/loongarch/bits/link_lavcurrent.h
@@ -1,6 +1,6 @@
/* Data structure for communication from the run-time dynamic linker for
loaded ELF shared objects. LAV_CURRENT definition.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/bits/setjmp.h b/sysdeps/loongarch/bits/setjmp.h
index 68d2c4a..538e9cb 100644
--- a/sysdeps/loongarch/bits/setjmp.h
+++ b/sysdeps/loongarch/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/cpu-tunables.c b/sysdeps/loongarch/cpu-tunables.c
index e274e99..cad2e26 100644
--- a/sysdeps/loongarch/cpu-tunables.c
+++ b/sysdeps/loongarch/cpu-tunables.c
@@ -1,6 +1,6 @@
/* LoongArch CPU feature tuning.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -50,7 +50,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
GLIBC_TUNABLES=glibc.cpu.hwcaps=-xxx,yyy,-zzz,....
can be used to enable CPU/ARCH feature yyy, disable CPU/ARCH feature
- yyy and zzz, where the feature name is case-sensitive and has to
+ xxx and zzz, where the feature name is case-sensitive and has to
match the ones in cpu-features.h. It can be used by glibc developers
to tune for a new processor or override the IFUNC selection to
improve performance for a particular workload.
diff --git a/sysdeps/loongarch/dl-audit-check.h b/sysdeps/loongarch/dl-audit-check.h
index 4cbca57..3eb3675 100644
--- a/sysdeps/loongarch/dl-audit-check.h
+++ b/sysdeps/loongarch/dl-audit-check.h
@@ -1,5 +1,5 @@
/* rtld-audit version check. LoongArch version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/dl-get-cpu-features.c b/sysdeps/loongarch/dl-get-cpu-features.c
index 3dcecef..8183088 100644
--- a/sysdeps/loongarch/dl-get-cpu-features.c
+++ b/sysdeps/loongarch/dl-get-cpu-features.c
@@ -1,5 +1,5 @@
/* Define _dl_larch_get_cpu_features.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/loongarch/dl-irel.h b/sysdeps/loongarch/dl-irel.h
index fe68477..a356de4 100644
--- a/sysdeps/loongarch/dl-irel.h
+++ b/sysdeps/loongarch/dl-irel.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF indirect relocation inline functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/dl-machine.h b/sysdeps/loongarch/dl-machine.h
index ab6f1da..a956590 100644
--- a/sysdeps/loongarch/dl-machine.h
+++ b/sysdeps/loongarch/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -223,6 +223,13 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
{
td->arg = _dl_make_tlsdesc_dynamic (sym_map,
sym->st_value + reloc->r_addend);
+# ifndef __loongarch_soft_float
+ if (RTLD_SUPPORT_LASX)
+ td->entry = _dl_tlsdesc_dynamic_lasx;
+ else if (RTLD_SUPPORT_LSX)
+ td->entry = _dl_tlsdesc_dynamic_lsx;
+ else
+# endif
td->entry = _dl_tlsdesc_dynamic;
}
else
diff --git a/sysdeps/loongarch/dl-tls.h b/sysdeps/loongarch/dl-tls.h
index de593c0..b25d599 100644
--- a/sysdeps/loongarch/dl-tls.h
+++ b/sysdeps/loongarch/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,7 +42,6 @@ extern void *__tls_get_addr (tls_index *ti);
/* Compute the value for a DTPREL reloc. */
#define TLS_DTPREL_VALUE(sym) ((sym)->st_value - TLS_DTV_OFFSET)
-#define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
/* Value used for dtv entries for which the allocation is delayed. */
diff --git a/sysdeps/loongarch/dl-tlsdesc-dynamic.h b/sysdeps/loongarch/dl-tlsdesc-dynamic.h
new file mode 100644
index 0000000..5f78eb2
--- /dev/null
+++ b/sysdeps/loongarch/dl-tlsdesc-dynamic.h
@@ -0,0 +1,222 @@
+/* Thread-local storage handling in the ELF dynamic linker.
+ LoongArch version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define FRAME_SIZE (-((-14 * SZREG) & ALMASK))
+
+ /* Handler for dynamic TLS symbols.
+ Prototype:
+ _dl_tlsdesc_dynamic (tlsdesc *) ;
+
+ The second word of the descriptor points to a
+ tlsdesc_dynamic_arg structure.
+
+ Returns the offset between the thread pointer and the
+ object referenced by the argument.
+
+ ptrdiff_t
+ _dl_tlsdesc_dynamic (struct tlsdesc *tdp)
+ {
+ struct tlsdesc_dynamic_arg *td = tdp->arg;
+ dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer - SIZE_OF_TCB);
+ if (__glibc_likely (td->gen_count <= dtv[0].counter
+ && (dtv[td->tlsinfo.ti_module].pointer.val
+ != TLS_DTV_UNALLOCATED),
+ 1))
+ return dtv[td->tlsinfo.ti_module].pointer.val
+ + td->tlsinfo.ti_offset
+ - __thread_pointer;
+
+ return ___tls_get_addr (&td->tlsinfo) - __thread_pointer;
+ } */
+ .hidden _dl_tlsdesc_dynamic
+ .global _dl_tlsdesc_dynamic
+ .type _dl_tlsdesc_dynamic,%function
+ cfi_startproc
+ .align 2
+_dl_tlsdesc_dynamic:
+ /* Save just enough registers to support fast path, if we fall
+ into slow path we will save additional registers. */
+ ADDI sp, sp, -32
+ cfi_adjust_cfa_offset (32)
+ REG_S t0, sp, 0
+ REG_S t1, sp, 8
+ REG_S t2, sp, 16
+ cfi_rel_offset (12, 0)
+ cfi_rel_offset (13, 8)
+ cfi_rel_offset (14, 16)
+
+/* Runtime Storage Layout of Thread-Local Storage
+ TP point to the start of TLS block.
+
+ dtv
+Low address TCB ----------------> dtv0(counter)
+ TP --> static_block0 <----- dtv1
+ static_block1 <----- dtv2
+ static_block2 <----- dtv3
+ dynamic_block0 <----- dtv4
+Hign address dynamic_block1 <----- dtv5 */
+
+ REG_L t0, tp, -SIZE_OF_TCB /* t0 = dtv */
+ REG_L a0, a0, TLSDESC_ARG /* a0(td) = tdp->arg */
+ REG_L t1, a0, TLSDESC_GEN_COUNT /* t1 = td->gen_count */
+ REG_L t2, t0, DTV_COUNTER /* t2 = dtv[0].counter */
+ /* If dtv[0].counter < td->gen_count, goto slow path. */
+ bltu t2, t1, .Lslow
+
+ REG_L t1, a0, TLSDESC_MODID /* t1 = td->tlsinfo.ti_module */
+ /* t1 = t1 * sizeof(dtv_t) = t1 * (2 * sizeof(void*)) */
+ slli.d t1, t1, 4
+ add.d t1, t1, t0 /* t1 = dtv[td->tlsinfo.ti_module] */
+ REG_L t1, t1, 0 /* t1 = dtv[td->tlsinfo.ti_module].pointer.val */
+ li.d t2, TLS_DTV_UNALLOCATED
+ /* If dtv[td->tlsinfo.ti_module].pointer.val is TLS_DTV_UNALLOCATED,
+ goto slow path. */
+ beq t1, t2, .Lslow
+
+ cfi_remember_state
+ REG_L t2, a0, TLSDESC_MODOFF /* t2 = td->tlsinfo.ti_offset */
+ /* dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset */
+ add.d a0, t1, t2
+.Lret:
+ sub.d a0, a0, tp
+ REG_L t0, sp, 0
+ REG_L t1, sp, 8
+ REG_L t2, sp, 16
+ ADDI sp, sp, 32
+ cfi_adjust_cfa_offset (-32)
+ RET
+
+.Lslow:
+ /* This is the slow path. We need to call __tls_get_addr() which
+ means we need to save and restore all the register that the
+ callee will trash. */
+
+ /* Save the remaining registers that we must treat as caller save. */
+ cfi_restore_state
+ ADDI sp, sp, -FRAME_SIZE
+ cfi_adjust_cfa_offset (FRAME_SIZE)
+ REG_S ra, sp, 0 * SZREG
+ REG_S a1, sp, 1 * SZREG
+ REG_S a2, sp, 2 * SZREG
+ REG_S a3, sp, 3 * SZREG
+ REG_S a4, sp, 4 * SZREG
+ REG_S a5, sp, 5 * SZREG
+ REG_S a6, sp, 6 * SZREG
+ REG_S a7, sp, 7 * SZREG
+ REG_S t3, sp, 8 * SZREG
+ REG_S t4, sp, 9 * SZREG
+ REG_S t5, sp, 10 * SZREG
+ REG_S t6, sp, 11 * SZREG
+ REG_S t7, sp, 12 * SZREG
+ REG_S t8, sp, 13 * SZREG
+ cfi_rel_offset (1, 0 * SZREG)
+ cfi_rel_offset (5, 1 * SZREG)
+ cfi_rel_offset (6, 2 * SZREG)
+ cfi_rel_offset (7, 3 * SZREG)
+ cfi_rel_offset (8, 4 * SZREG)
+ cfi_rel_offset (9, 5 * SZREG)
+ cfi_rel_offset (10, 6 * SZREG)
+ cfi_rel_offset (11, 7 * SZREG)
+ cfi_rel_offset (15, 8 * SZREG)
+ cfi_rel_offset (16, 9 * SZREG)
+ cfi_rel_offset (17, 10 * SZREG)
+ cfi_rel_offset (18, 11 * SZREG)
+ cfi_rel_offset (19, 12 * SZREG)
+ cfi_rel_offset (20, 13 * SZREG)
+
+#ifndef __loongarch_soft_float
+
+ /* Save fcsr0 register.
+ Only one physical fcsr0 register, fcsr1-fcsr3 are aliases
+ of some fields in fcsr0. */
+ movfcsr2gr t0, fcsr0
+ st.w t0, sp, FRAME_SIZE + 24 /* Use the spare slot above t2. */
+
+#ifdef USE_LASX
+ #define V_REG_S xvst
+ #define V_REG_L xvld
+ #define V_SPACE (-((-32 * SZXREG) & ALMASK)) /* Space for LASX registers. */
+ #define V_REG(n) $xr##n
+ #define V_REGS 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, \
+ 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+ #define V_REGSZ SZXREG
+#elif defined USE_LSX
+ #define V_REG_S vst
+ #define V_REG_L vld
+ #define V_SPACE (-((-32 * SZVREG) & ALMASK)) /* Space for LSX registers. */
+ #define V_REG(n) $vr##n
+ #define V_REGS 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, \
+ 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+ #define V_REGSZ SZVREG
+#else
+ #define V_REG_S fst.d
+ #define V_REG_L fld.d
+ #define V_SPACE (-((-24 * SZFREG) & ALMASK)) /* Space for FLOAT registers. */
+ #define V_REG(n) $f##n
+ #define V_REGS 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
+ #define V_REGSZ SZFREG
+#endif
+
+ ADDI sp, sp, -V_SPACE
+ cfi_adjust_cfa_offset (V_SPACE)
+ .irp i,V_REGS
+ V_REG_S V_REG(\i), sp, \i * V_REGSZ
+ .endr
+
+#endif /* #ifndef __loongarch_soft_float */
+
+ bl HIDDEN_JUMPTARGET(__tls_get_addr)
+ ADDI a0, a0, -TLS_DTV_OFFSET
+
+#ifndef __loongarch_soft_float
+
+ .irp i,V_REGS
+ V_REG_L V_REG(\i), sp, \i * V_REGSZ
+ .endr
+ ADDI sp, sp, V_SPACE
+ cfi_adjust_cfa_offset (-V_SPACE)
+
+ /* Restore fcsr0 register. */
+ ld.w t0, sp, FRAME_SIZE + 24
+ movgr2fcsr fcsr0, t0
+
+#endif /* #ifndef __loongarch_soft_float */
+
+ REG_L ra, sp, 0 * SZREG
+ REG_L a1, sp, 1 * SZREG
+ REG_L a2, sp, 2 * SZREG
+ REG_L a3, sp, 3 * SZREG
+ REG_L a4, sp, 4 * SZREG
+ REG_L a5, sp, 5 * SZREG
+ REG_L a6, sp, 6 * SZREG
+ REG_L a7, sp, 7 * SZREG
+ REG_L t3, sp, 8 * SZREG
+ REG_L t4, sp, 9 * SZREG
+ REG_L t5, sp, 10 * SZREG
+ REG_L t6, sp, 11 * SZREG
+ REG_L t7, sp, 12 * SZREG
+ REG_L t8, sp, 13 * SZREG
+ ADDI sp, sp, FRAME_SIZE
+ cfi_adjust_cfa_offset (-FRAME_SIZE)
+
+ b .Lret
+ cfi_endproc
+ .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
+ .hidden HIDDEN_JUMPTARGET(__tls_get_addr)
diff --git a/sysdeps/loongarch/dl-tlsdesc.S b/sysdeps/loongarch/dl-tlsdesc.S
index a6627cc..906c69b 100644
--- a/sysdeps/loongarch/dl-tlsdesc.S
+++ b/sysdeps/loongarch/dl-tlsdesc.S
@@ -1,6 +1,6 @@
/* Thread-local storage handling in the ELF dynamic linker.
LoongArch version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -59,376 +59,46 @@ _dl_tlsdesc_undefweak:
cfi_endproc
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
-
#ifdef SHARED
-#define FRAME_SIZE (-((-14 * SZREG) & ALMASK))
-#define FRAME_SIZE_LSX (-((-32 * SZVREG) & ALMASK))
-#define FRAME_SIZE_LASX (-((-32 * SZXREG) & ALMASK))
-#define FRAME_SIZE_FLOAT (-((-24 * SZFREG) & ALMASK))
-
- /* Handler for dynamic TLS symbols.
- Prototype:
- _dl_tlsdesc_dynamic (tlsdesc *) ;
-
- The second word of the descriptor points to a
- tlsdesc_dynamic_arg structure.
-
- Returns the offset between the thread pointer and the
- object referenced by the argument.
-
- ptrdiff_t
- _dl_tlsdesc_dynamic (struct tlsdesc *tdp)
- {
- struct tlsdesc_dynamic_arg *td = tdp->arg;
- dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer - SIZE_OF_TCB);
- if (__glibc_likely (td->gen_count <= dtv[0].counter
- && (dtv[td->tlsinfo.ti_module].pointer.val
- != TLS_DTV_UNALLOCATED),
- 1))
- return dtv[td->tlsinfo.ti_module].pointer.val
- + td->tlsinfo.ti_offset
- - __thread_pointer;
-
- return ___tls_get_addr (&td->tlsinfo) - __thread_pointer;
- } */
- .hidden _dl_tlsdesc_dynamic
- .global _dl_tlsdesc_dynamic
- .type _dl_tlsdesc_dynamic,%function
- cfi_startproc
- .align 2
-_dl_tlsdesc_dynamic:
- /* Save just enough registers to support fast path, if we fall
- into slow path we will save additional registers. */
- ADDI sp, sp, -32
- REG_S t0, sp, 0
- REG_S t1, sp, 8
- REG_S t2, sp, 16
-
-/* Runtime Storage Layout of Thread-Local Storage
- TP point to the start of TLS block.
-
- dtv
-Low address TCB ----------------> dtv0(counter)
- TP --> static_block0 <----- dtv1
- static_block1 <----- dtv2
- static_block2 <----- dtv3
- dynamic_block0 <----- dtv4
-Hign address dynamic_block1 <----- dtv5 */
-
- REG_L t0, tp, -SIZE_OF_TCB /* t0 = dtv */
- REG_L a0, a0, TLSDESC_ARG /* a0(td) = tdp->arg */
- REG_L t1, a0, TLSDESC_GEN_COUNT /* t1 = td->gen_count */
- REG_L t2, t0, DTV_COUNTER /* t2 = dtv[0].counter */
- /* If dtv[0].counter < td->gen_count, goto slow path. */
- bltu t2, t1, .Lslow
-
- REG_L t1, a0, TLSDESC_MODID /* t1 = td->tlsinfo.ti_module */
- /* t1 = t1 * sizeof(dtv_t) = t1 * (2 * sizeof(void*)) */
- slli.d t1, t1, 4
- add.d t1, t1, t0 /* t1 = dtv[td->tlsinfo.ti_module] */
- REG_L t1, t1, 0 /* t1 = dtv[td->tlsinfo.ti_module].pointer.val */
- li.d t2, TLS_DTV_UNALLOCATED
- /* If dtv[td->tlsinfo.ti_module].pointer.val is TLS_DTV_UNALLOCATED,
- goto slow path. */
- beq t1, t2, .Lslow
-
- REG_L t2, a0, TLSDESC_MODOFF /* t2 = td->tlsinfo.ti_offset */
- /* dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset */
- add.d a0, t1, t2
-.Lret:
- sub.d a0, a0, tp
- REG_L t0, sp, 0
- REG_L t1, sp, 8
- REG_L t2, sp, 16
- ADDI sp, sp, 32
- RET
-
-.Lslow:
- /* This is the slow path. We need to call __tls_get_addr() which
- means we need to save and restore all the register that the
- callee will trash. */
-
- /* Save the remaining registers that we must treat as caller save. */
- ADDI sp, sp, -FRAME_SIZE
- REG_S ra, sp, 0 * SZREG
- REG_S a1, sp, 1 * SZREG
- REG_S a2, sp, 2 * SZREG
- REG_S a3, sp, 3 * SZREG
- REG_S a4, sp, 4 * SZREG
- REG_S a5, sp, 5 * SZREG
- REG_S a6, sp, 6 * SZREG
- REG_S a7, sp, 7 * SZREG
- REG_S t3, sp, 8 * SZREG
- REG_S t4, sp, 9 * SZREG
- REG_S t5, sp, 10 * SZREG
- REG_S t6, sp, 11 * SZREG
- REG_S t7, sp, 12 * SZREG
- REG_S t8, sp, 13 * SZREG
-
#ifndef __loongarch_soft_float
- /* Save fcsr0 register.
- Only one physical fcsr0 register, fcsr1-fcsr3 are aliases
- of some fields in fcsr0. */
- movfcsr2gr t0, fcsr0
- st.w t0, sp, FRAME_SIZE + 24 /* Use the spare slot above t2 */
-
- /* Whether support LASX. */
- la.global t0, _rtld_global_ro
- REG_L t0, t0, GLRO_DL_HWCAP_OFFSET
- andi t1, t0, HWCAP_LOONGARCH_LASX
- beqz t1, .Llsx
-
- /* Save 256-bit vector registers.
- FIXME: Without vector ABI, save all vector registers. */
- ADDI sp, sp, -FRAME_SIZE_LASX
- xvst xr0, sp, 0*SZXREG
- xvst xr1, sp, 1*SZXREG
- xvst xr2, sp, 2*SZXREG
- xvst xr3, sp, 3*SZXREG
- xvst xr4, sp, 4*SZXREG
- xvst xr5, sp, 5*SZXREG
- xvst xr6, sp, 6*SZXREG
- xvst xr7, sp, 7*SZXREG
- xvst xr8, sp, 8*SZXREG
- xvst xr9, sp, 9*SZXREG
- xvst xr10, sp, 10*SZXREG
- xvst xr11, sp, 11*SZXREG
- xvst xr12, sp, 12*SZXREG
- xvst xr13, sp, 13*SZXREG
- xvst xr14, sp, 14*SZXREG
- xvst xr15, sp, 15*SZXREG
- xvst xr16, sp, 16*SZXREG
- xvst xr17, sp, 17*SZXREG
- xvst xr18, sp, 18*SZXREG
- xvst xr19, sp, 19*SZXREG
- xvst xr20, sp, 20*SZXREG
- xvst xr21, sp, 21*SZXREG
- xvst xr22, sp, 22*SZXREG
- xvst xr23, sp, 23*SZXREG
- xvst xr24, sp, 24*SZXREG
- xvst xr25, sp, 25*SZXREG
- xvst xr26, sp, 26*SZXREG
- xvst xr27, sp, 27*SZXREG
- xvst xr28, sp, 28*SZXREG
- xvst xr29, sp, 29*SZXREG
- xvst xr30, sp, 30*SZXREG
- xvst xr31, sp, 31*SZXREG
- b .Ltga
-
-.Llsx:
- /* Whether support LSX. */
- andi t1, t0, HWCAP_LOONGARCH_LSX
- beqz t1, .Lfloat
-
- /* Save 128-bit vector registers. */
- ADDI sp, sp, -FRAME_SIZE_LSX
- vst vr0, sp, 0*SZVREG
- vst vr1, sp, 1*SZVREG
- vst vr2, sp, 2*SZVREG
- vst vr3, sp, 3*SZVREG
- vst vr4, sp, 4*SZVREG
- vst vr5, sp, 5*SZVREG
- vst vr6, sp, 6*SZVREG
- vst vr7, sp, 7*SZVREG
- vst vr8, sp, 8*SZVREG
- vst vr9, sp, 9*SZVREG
- vst vr10, sp, 10*SZVREG
- vst vr11, sp, 11*SZVREG
- vst vr12, sp, 12*SZVREG
- vst vr13, sp, 13*SZVREG
- vst vr14, sp, 14*SZVREG
- vst vr15, sp, 15*SZVREG
- vst vr16, sp, 16*SZVREG
- vst vr17, sp, 17*SZVREG
- vst vr18, sp, 18*SZVREG
- vst vr19, sp, 19*SZVREG
- vst vr20, sp, 20*SZVREG
- vst vr21, sp, 21*SZVREG
- vst vr22, sp, 22*SZVREG
- vst vr23, sp, 23*SZVREG
- vst vr24, sp, 24*SZVREG
- vst vr25, sp, 25*SZVREG
- vst vr26, sp, 26*SZVREG
- vst vr27, sp, 27*SZVREG
- vst vr28, sp, 28*SZVREG
- vst vr29, sp, 29*SZVREG
- vst vr30, sp, 30*SZVREG
- vst vr31, sp, 31*SZVREG
- b .Ltga
-
-.Lfloat:
- /* Save float registers. */
- ADDI sp, sp, -FRAME_SIZE_FLOAT
- FREG_S fa0, sp, 0*SZFREG
- FREG_S fa1, sp, 1*SZFREG
- FREG_S fa2, sp, 2*SZFREG
- FREG_S fa3, sp, 3*SZFREG
- FREG_S fa4, sp, 4*SZFREG
- FREG_S fa5, sp, 5*SZFREG
- FREG_S fa6, sp, 6*SZFREG
- FREG_S fa7, sp, 7*SZFREG
- FREG_S ft0, sp, 8*SZFREG
- FREG_S ft1, sp, 9*SZFREG
- FREG_S ft2, sp, 10*SZFREG
- FREG_S ft3, sp, 11*SZFREG
- FREG_S ft4, sp, 12*SZFREG
- FREG_S ft5, sp, 13*SZFREG
- FREG_S ft6, sp, 14*SZFREG
- FREG_S ft7, sp, 15*SZFREG
- FREG_S ft8, sp, 16*SZFREG
- FREG_S ft9, sp, 17*SZFREG
- FREG_S ft10, sp, 18*SZFREG
- FREG_S ft11, sp, 19*SZFREG
- FREG_S ft12, sp, 20*SZFREG
- FREG_S ft13, sp, 21*SZFREG
- FREG_S ft14, sp, 22*SZFREG
- FREG_S ft15, sp, 23*SZFREG
-
-#endif /* #ifndef __loongarch_soft_float */
-
-.Ltga:
- bl HIDDEN_JUMPTARGET(__tls_get_addr)
- ADDI a0, a0, -TLS_DTV_OFFSET
-
-#ifndef __loongarch_soft_float
-
- la.global t0, _rtld_global_ro
- REG_L t0, t0, GLRO_DL_HWCAP_OFFSET
- andi t1, t0, HWCAP_LOONGARCH_LASX
- beqz t1, .Llsx1
-
- /* Restore 256-bit vector registers. */
- xvld xr0, sp, 0*SZXREG
- xvld xr1, sp, 1*SZXREG
- xvld xr2, sp, 2*SZXREG
- xvld xr3, sp, 3*SZXREG
- xvld xr4, sp, 4*SZXREG
- xvld xr5, sp, 5*SZXREG
- xvld xr6, sp, 6*SZXREG
- xvld xr7, sp, 7*SZXREG
- xvld xr8, sp, 8*SZXREG
- xvld xr9, sp, 9*SZXREG
- xvld xr10, sp, 10*SZXREG
- xvld xr11, sp, 11*SZXREG
- xvld xr12, sp, 12*SZXREG
- xvld xr13, sp, 13*SZXREG
- xvld xr14, sp, 14*SZXREG
- xvld xr15, sp, 15*SZXREG
- xvld xr16, sp, 16*SZXREG
- xvld xr17, sp, 17*SZXREG
- xvld xr18, sp, 18*SZXREG
- xvld xr19, sp, 19*SZXREG
- xvld xr20, sp, 20*SZXREG
- xvld xr21, sp, 21*SZXREG
- xvld xr22, sp, 22*SZXREG
- xvld xr23, sp, 23*SZXREG
- xvld xr24, sp, 24*SZXREG
- xvld xr25, sp, 25*SZXREG
- xvld xr26, sp, 26*SZXREG
- xvld xr27, sp, 27*SZXREG
- xvld xr28, sp, 28*SZXREG
- xvld xr29, sp, 29*SZXREG
- xvld xr30, sp, 30*SZXREG
- xvld xr31, sp, 31*SZXREG
- ADDI sp, sp, FRAME_SIZE_LASX
- b .Lfcsr
-
-.Llsx1:
- andi t1, t0, HWCAP_LOONGARCH_LSX
- beqz t1, .Lfloat1
-
- /* Restore 128-bit vector registers. */
- vld vr0, sp, 0*SZVREG
- vld vr1, sp, 1*SZVREG
- vld vr2, sp, 2*SZVREG
- vld vr3, sp, 3*SZVREG
- vld vr4, sp, 4*SZVREG
- vld vr5, sp, 5*SZVREG
- vld vr6, sp, 6*SZVREG
- vld vr7, sp, 7*SZVREG
- vld vr8, sp, 8*SZVREG
- vld vr9, sp, 9*SZVREG
- vld vr10, sp, 10*SZVREG
- vld vr11, sp, 11*SZVREG
- vld vr12, sp, 12*SZVREG
- vld vr13, sp, 13*SZVREG
- vld vr14, sp, 14*SZVREG
- vld vr15, sp, 15*SZVREG
- vld vr16, sp, 16*SZVREG
- vld vr17, sp, 17*SZVREG
- vld vr18, sp, 18*SZVREG
- vld vr19, sp, 19*SZVREG
- vld vr20, sp, 20*SZVREG
- vld vr21, sp, 21*SZVREG
- vld vr22, sp, 22*SZVREG
- vld vr23, sp, 23*SZVREG
- vld vr24, sp, 24*SZVREG
- vld vr25, sp, 25*SZVREG
- vld vr26, sp, 26*SZVREG
- vld vr27, sp, 27*SZVREG
- vld vr28, sp, 28*SZVREG
- vld vr29, sp, 29*SZVREG
- vld vr30, sp, 30*SZVREG
- vld vr31, sp, 31*SZVREG
- ADDI sp, sp, FRAME_SIZE_LSX
- b .Lfcsr
-
-.Lfloat1:
- /* Restore float registers. */
- FREG_L fa0, sp, 0*SZFREG
- FREG_L fa1, sp, 1*SZFREG
- FREG_L fa2, sp, 2*SZFREG
- FREG_L fa3, sp, 3*SZFREG
- FREG_L fa4, sp, 4*SZFREG
- FREG_L fa5, sp, 5*SZFREG
- FREG_L fa6, sp, 6*SZFREG
- FREG_L fa7, sp, 7*SZFREG
- FREG_L ft0, sp, 8*SZFREG
- FREG_L ft1, sp, 9*SZFREG
- FREG_L ft2, sp, 10*SZFREG
- FREG_L ft3, sp, 11*SZFREG
- FREG_L ft4, sp, 12*SZFREG
- FREG_L ft5, sp, 13*SZFREG
- FREG_L ft6, sp, 14*SZFREG
- FREG_L ft7, sp, 15*SZFREG
- FREG_L ft8, sp, 16*SZFREG
- FREG_L ft9, sp, 17*SZFREG
- FREG_L ft10, sp, 18*SZFREG
- FREG_L ft11, sp, 19*SZFREG
- FREG_L ft12, sp, 20*SZFREG
- FREG_L ft13, sp, 21*SZFREG
- FREG_L ft14, sp, 22*SZFREG
- FREG_L ft15, sp, 23*SZFREG
- ADDI sp, sp, FRAME_SIZE_FLOAT
-
-.Lfcsr:
- /* Restore fcsr0 register. */
- ld.w t0, sp, FRAME_SIZE + 24
- movgr2fcsr fcsr0, t0
+#define USE_LASX
+#define _dl_tlsdesc_dynamic _dl_tlsdesc_dynamic_lasx
+#define Lret Lret_lasx
+#define Lslow Lslow_lasx
+#include "dl-tlsdesc-dynamic.h"
+#undef FRAME_SIZE
+#undef V_REG_S
+#undef V_REG_L
+#undef V_SPACE
+#undef V_REG
+#undef V_REGS
+#undef V_REGSZ
+#undef USE_LASX
+#undef _dl_tlsdesc_dynamic
+#undef Lret
+#undef Lslow
+
+#define USE_LSX
+#define _dl_tlsdesc_dynamic _dl_tlsdesc_dynamic_lsx
+#define Lret Lret_lsx
+#define Lslow Lslow_lsx
+#include "dl-tlsdesc-dynamic.h"
+#undef FRAME_SIZE
+#undef V_REG_S
+#undef V_REG_L
+#undef V_SPACE
+#undef V_REG
+#undef V_REGS
+#undef V_REGSZ
+#undef USE_LSX
+#undef _dl_tlsdesc_dynamic
+#undef Lret
+#undef Lslow
#endif /* #ifndef __loongarch_soft_float */
- REG_L ra, sp, 0 * SZREG
- REG_L a1, sp, 1 * SZREG
- REG_L a2, sp, 2 * SZREG
- REG_L a3, sp, 3 * SZREG
- REG_L a4, sp, 4 * SZREG
- REG_L a5, sp, 5 * SZREG
- REG_L a6, sp, 6 * SZREG
- REG_L a7, sp, 7 * SZREG
- REG_L t3, sp, 8 * SZREG
- REG_L t4, sp, 9 * SZREG
- REG_L t5, sp, 10 * SZREG
- REG_L t6, sp, 11 * SZREG
- REG_L t7, sp, 12 * SZREG
- REG_L t8, sp, 13 * SZREG
- ADDI sp, sp, FRAME_SIZE
-
- b .Lret
- cfi_endproc
- .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
- .hidden HIDDEN_JUMPTARGET(__tls_get_addr)
+#include "dl-tlsdesc-dynamic.h"
#endif /* #ifdef SHARED */
diff --git a/sysdeps/loongarch/dl-tlsdesc.h b/sysdeps/loongarch/dl-tlsdesc.h
index ff8c69c..f1cde19 100644
--- a/sysdeps/loongarch/dl-tlsdesc.h
+++ b/sysdeps/loongarch/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
LoongArch version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -43,6 +43,10 @@ extern ptrdiff_t attribute_hidden _dl_tlsdesc_undefweak (struct tlsdesc *);
#ifdef SHARED
extern void *_dl_make_tlsdesc_dynamic (struct link_map *, size_t);
+#ifndef __loongarch_soft_float
+extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic_lasx (struct tlsdesc *);
+extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic_lsx (struct tlsdesc *);
+#endif
extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic (struct tlsdesc *);
#endif
diff --git a/sysdeps/loongarch/dl-trampoline.S b/sysdeps/loongarch/dl-trampoline.S
index b9ae445..cbf50c3 100644
--- a/sysdeps/loongarch/dl-trampoline.S
+++ b/sysdeps/loongarch/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/dl-trampoline.h b/sysdeps/loongarch/dl-trampoline.h
index cabb23b..c267240 100644
--- a/sysdeps/loongarch/dl-trampoline.h
+++ b/sysdeps/loongarch/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/dl-tunables.list b/sysdeps/loongarch/dl-tunables.list
index 00869a9..64d7cac 100644
--- a/sysdeps/loongarch/dl-tunables.list
+++ b/sysdeps/loongarch/dl-tunables.list
@@ -1,5 +1,5 @@
# LoongArch specific tunables.
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/e_sqrtl.c b/sysdeps/loongarch/e_sqrtl.c
index bb1fda6..3e5fe79 100644
--- a/sysdeps/loongarch/e_sqrtl.c
+++ b/sysdeps/loongarch/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/math_private.h b/sysdeps/loongarch/fenv_private.h
index 40cd54c..7614e7c 100644
--- a/sysdeps/loongarch/math_private.h
+++ b/sysdeps/loongarch/fenv_private.h
@@ -1,5 +1,5 @@
/* Internal math stuff.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,11 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef LOONGARCH_MATH_PRIVATE_H
-#define LOONGARCH_MATH_PRIVATE_H 1
+#ifndef LOONGARCH_FENV_PRIVATE_H
+#define LOONGARCH_FENV_PRIVATE_H 1
/* Inline functions to speed up the math library implementation. The
- default versions of these routines are in generic/math_private.h
+ default versions of these routines are in generic/fenv_private.h
and call fesetround, feholdexcept, etc. These routines use inlined
code instead. */
@@ -243,6 +243,6 @@ libc_feholdsetround_loongarch_ctx (struct rm_ctx *ctx, int round)
#endif
-#include_next <math_private.h>
+#include_next <fenv_private.h>
#endif
diff --git a/sysdeps/loongarch/fpu/e_ilogbf.c b/sysdeps/loongarch/fpu/e_ilogbf.c
index 32ed958..a27fb94 100644
--- a/sysdeps/loongarch/fpu/e_ilogbf.c
+++ b/sysdeps/loongarch/fpu/e_ilogbf.c
@@ -1,39 +1 @@
-/* __ieee754_ilogbf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <fpu_control.h>
-
-int
-__ieee754_ilogbf (float x)
-{
- int x_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
-
- if (__glibc_unlikely (x_cond & _FCLASS_ZERO))
- return FP_ILOGB0;
- else if (__glibc_unlikely (x_cond & ( _FCLASS_NAN | _FCLASS_INF)))
- return FP_ILOGBNAN;
- else
- {
- asm volatile ("fabs.s \t%0, %1" : "=f" (x) : "f" (x));
- asm volatile ("flogb.s \t%0, %1" : "=f" (x) : "f" (x));
- return x;
- }
-}
+/* ilogbf is implemented at w_ilogbf.c */
diff --git a/sysdeps/loongarch/fpu/e_scalb.c b/sysdeps/loongarch/fpu/e_scalb.c
index 211272c..039cbd6 100644
--- a/sysdeps/loongarch/fpu/e_scalb.c
+++ b/sysdeps/loongarch/fpu/e_scalb.c
@@ -1,5 +1,5 @@
/* scalb(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/e_scalbf.c b/sysdeps/loongarch/fpu/e_scalbf.c
index 7c0395f..4a4092c 100644
--- a/sysdeps/loongarch/fpu/e_scalbf.c
+++ b/sysdeps/loongarch/fpu/e_scalbf.c
@@ -1,5 +1,5 @@
/* scalbf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fclrexcpt.c b/sysdeps/loongarch/fpu/fclrexcpt.c
index 4301b1f..8bd2cf2 100644
--- a/sysdeps/loongarch/fpu/fclrexcpt.c
+++ b/sysdeps/loongarch/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fedisblxcpt.c b/sysdeps/loongarch/fpu/fedisblxcpt.c
index a3f92f1..ca96fbb 100644
--- a/sysdeps/loongarch/fpu/fedisblxcpt.c
+++ b/sysdeps/loongarch/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/feenablxcpt.c b/sysdeps/loongarch/fpu/feenablxcpt.c
index 9b415f0..a348df1 100644
--- a/sysdeps/loongarch/fpu/feenablxcpt.c
+++ b/sysdeps/loongarch/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fegetenv.c b/sysdeps/loongarch/fpu/fegetenv.c
index 493d22f..2adfe1a 100644
--- a/sysdeps/loongarch/fpu/fegetenv.c
+++ b/sysdeps/loongarch/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fegetexcept.c b/sysdeps/loongarch/fpu/fegetexcept.c
index a57543f..6fa297e 100644
--- a/sysdeps/loongarch/fpu/fegetexcept.c
+++ b/sysdeps/loongarch/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fegetmode.c b/sysdeps/loongarch/fpu/fegetmode.c
index 91adace..8543aa7 100644
--- a/sysdeps/loongarch/fpu/fegetmode.c
+++ b/sysdeps/loongarch/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fegetround.c b/sysdeps/loongarch/fpu/fegetround.c
index d9cc78a..4c3ea83 100644
--- a/sysdeps/loongarch/fpu/fegetround.c
+++ b/sysdeps/loongarch/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/feholdexcpt.c b/sysdeps/loongarch/fpu/feholdexcpt.c
index a278511..320a9bf 100644
--- a/sysdeps/loongarch/fpu/feholdexcpt.c
+++ b/sysdeps/loongarch/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fenv_libc.h b/sysdeps/loongarch/fpu/fenv_libc.h
index 639e0b1..a48f37c 100644
--- a/sysdeps/loongarch/fpu/fenv_libc.h
+++ b/sysdeps/loongarch/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fesetenv.c b/sysdeps/loongarch/fpu/fesetenv.c
index 183b5a1..d24a60d 100644
--- a/sysdeps/loongarch/fpu/fesetenv.c
+++ b/sysdeps/loongarch/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fesetexcept.c b/sysdeps/loongarch/fpu/fesetexcept.c
index 98746f8..dd59bd3 100644
--- a/sysdeps/loongarch/fpu/fesetexcept.c
+++ b/sysdeps/loongarch/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fesetmode.c b/sysdeps/loongarch/fpu/fesetmode.c
index acabeba..dcb486c 100644
--- a/sysdeps/loongarch/fpu/fesetmode.c
+++ b/sysdeps/loongarch/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fesetround.c b/sysdeps/loongarch/fpu/fesetround.c
index ea60548..ad78f4d 100644
--- a/sysdeps/loongarch/fpu/fesetround.c
+++ b/sysdeps/loongarch/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/feupdateenv.c b/sysdeps/loongarch/fpu/feupdateenv.c
index 02d6f0b..b5db777 100644
--- a/sysdeps/loongarch/fpu/feupdateenv.c
+++ b/sysdeps/loongarch/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fgetexcptflg.c b/sysdeps/loongarch/fpu/fgetexcptflg.c
index d692979..a4b0647 100644
--- a/sysdeps/loongarch/fpu/fgetexcptflg.c
+++ b/sysdeps/loongarch/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fraiseexcpt.c b/sysdeps/loongarch/fpu/fraiseexcpt.c
index 8b09f26..770a422 100644
--- a/sysdeps/loongarch/fpu/fraiseexcpt.c
+++ b/sysdeps/loongarch/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/fsetexcptflg.c b/sysdeps/loongarch/fpu/fsetexcptflg.c
index 98dac1c..1e6d7ac 100644
--- a/sysdeps/loongarch/fpu/fsetexcptflg.c
+++ b/sysdeps/loongarch/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/ftestexcept.c b/sysdeps/loongarch/fpu/ftestexcept.c
index 58dd1d0..14e1857 100644
--- a/sysdeps/loongarch/fpu/ftestexcept.c
+++ b/sysdeps/loongarch/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/get-rounding-mode.h b/sysdeps/loongarch/fpu/get-rounding-mode.h
index 4319cff..d7ceb2b 100644
--- a/sysdeps/loongarch/fpu/get-rounding-mode.h
+++ b/sysdeps/loongarch/fpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/fpu/math-barriers.h b/sysdeps/loongarch/fpu/math-barriers.h
index 3bff6b6..9dfc6c4 100644
--- a/sysdeps/loongarch/fpu/math-barriers.h
+++ b/sysdeps/loongarch/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. LoongArch version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/math-type-macros-double.h b/sysdeps/loongarch/fpu/math-type-macros-double.h
new file mode 100644
index 0000000..dd53885
--- /dev/null
+++ b/sysdeps/loongarch/fpu/math-type-macros-double.h
@@ -0,0 +1,21 @@
+/* Helper macros for double variants of type generic functions of libm,
+ LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include_next <math-type-macros-double.h>
+#define INSN_FMT "d"
diff --git a/sysdeps/loongarch/fpu/math-type-macros-float.h b/sysdeps/loongarch/fpu/math-type-macros-float.h
new file mode 100644
index 0000000..ee5f784
--- /dev/null
+++ b/sysdeps/loongarch/fpu/math-type-macros-float.h
@@ -0,0 +1,21 @@
+/* Helper macros for float variants of type generic functions of libm,
+ LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include_next <math-type-macros-float.h>
+#define INSN_FMT "s"
diff --git a/sysdeps/loongarch/fpu/s_finite.c b/sysdeps/loongarch/fpu/s_finite.c
index 8ebda93..64f4e4c 100644
--- a/sysdeps/loongarch/fpu/s_finite.c
+++ b/sysdeps/loongarch/fpu/s_finite.c
@@ -1,5 +1,5 @@
/* finite(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_finitef.c b/sysdeps/loongarch/fpu/s_finitef.c
index 7ef528b..a5ab916 100644
--- a/sysdeps/loongarch/fpu/s_finitef.c
+++ b/sysdeps/loongarch/fpu/s_finitef.c
@@ -1,5 +1,5 @@
/* finitef(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_mag_num.c b/sysdeps/loongarch/fpu/s_fmaximum_mag_num.c
deleted file mode 100644
index 7ffe342..0000000
--- a/sysdeps/loongarch/fpu/s_fmaximum_mag_num.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fmaximum_mag_num(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-
-double
-__fmaximum_mag_num (double x, double y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmaxa.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmaxa.d \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmaxa.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_double (__fmaximum_mag_num, fmaximum_mag_num)
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_magf.c b/sysdeps/loongarch/fpu/s_fmaximum_mag_num_template.c
index 55ece23..adea16d 100644
--- a/sysdeps/loongarch/fpu/s_fmaximum_magf.c
+++ b/sysdeps/loongarch/fpu/s_fmaximum_mag_num_template.c
@@ -1,5 +1,5 @@
-/* fmaximum_magf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Return number with maximum magnitude. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,24 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
+#ifndef INSN_FMT
+#include_next <s_fmaximum_mag_num_template.c>
+#else
+
#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-float
-__fmaximum_magf (float x, float y)
+FLOAT
+M_DECL_FUNC (__fmaximum_mag_num) (FLOAT x, FLOAT y)
{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
- {
- asm volatile ("fmaxa.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %3, %2, $fcc0\n\t"
+ "fsel" "\t%1, %2, %3, $fcc1\n\t"
+ "fmaxa." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
}
-libm_alias_float (__fmaximum_mag, fmaximum_mag)
+declare_mgen_alias (__fmaximum_mag_num, fmaximum_mag_num);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c b/sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c
deleted file mode 100644
index 7474f8c..0000000
--- a/sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fmaximum_mag_numf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-
-float
-__fmaximum_mag_numf (float x, float y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmaxa.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmaxa.s \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmaxa.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_float (__fmaximum_mag_num, fmaximum_mag_num)
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_mag_template.c b/sysdeps/loongarch/fpu/s_fmaximum_mag_template.c
new file mode 100644
index 0000000..7aa32c7
--- /dev/null
+++ b/sysdeps/loongarch/fpu/s_fmaximum_mag_template.c
@@ -0,0 +1,39 @@
+/* Return value with maximum magnitude. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef INSN_FMT
+#include_next <s_fmaximum_mag_template.c>
+#else
+
+#include <math.h>
+
+FLOAT
+M_DECL_FUNC (__fmaximum_mag) (FLOAT x, FLOAT y)
+{
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %2, %3, $fcc0\n\t"
+ "fsel" "\t%1, %3, %2, $fcc1\n\t"
+ "fmaxa." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
+}
+declare_mgen_alias (__fmaximum_mag, fmaximum_mag);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_num.c b/sysdeps/loongarch/fpu/s_fmaximum_num.c
deleted file mode 100644
index c963240..0000000
--- a/sysdeps/loongarch/fpu/s_fmaximum_num.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fmaximum_num(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-
-double
-__fmaximum_num (double x, double y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmax.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmax.d \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmax.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_double (__fmaximum_num, fmaximum_num)
diff --git a/sysdeps/loongarch/fpu/s_fminimum.c b/sysdeps/loongarch/fpu/s_fmaximum_num_template.c
index d723a5b..34f5634 100644
--- a/sysdeps/loongarch/fpu/s_fminimum.c
+++ b/sysdeps/loongarch/fpu/s_fmaximum_num_template.c
@@ -1,5 +1,5 @@
-/* fminimum(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Return maximum number of X and Y. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,24 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
+#ifndef INSN_FMT
+#include_next <s_fmaximum_num_template.c>
+#else
+
#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-double
-__fminimum (double x, double y)
+FLOAT
+M_DECL_FUNC (__fmaximum_num) (FLOAT x, FLOAT y)
{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
- {
- asm volatile ("fmin.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %3, %2, $fcc0\n\t"
+ "fsel" "\t%1, %2, %3, $fcc1\n\t"
+ "fmax." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
}
-libm_alias_double (__fminimum, fminimum)
+declare_mgen_alias (__fmaximum_num, fmaximum_num);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_numf.c b/sysdeps/loongarch/fpu/s_fmaximum_numf.c
deleted file mode 100644
index 7eb5408..0000000
--- a/sysdeps/loongarch/fpu/s_fmaximum_numf.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* fmaximum_numf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-
-float
-__fmaximum_numf (float x, float y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmax.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmax.s \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmax.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_float (__fmaximum_num, fmaximum_num)
diff --git a/sysdeps/loongarch/fpu/s_fmaximum.c b/sysdeps/loongarch/fpu/s_fmaximum_template.c
index 3259298..701850e 100644
--- a/sysdeps/loongarch/fpu/s_fmaximum.c
+++ b/sysdeps/loongarch/fpu/s_fmaximum_template.c
@@ -1,5 +1,5 @@
-/* fmaximum(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Return maximum of X and Y. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,24 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
+#ifndef INSN_FMT
+#include_next <s_fmaximum_template.c>
+#else
+
#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-double
-__fmaximum (double x, double y)
+FLOAT
+M_DECL_FUNC (__fmaximum) (FLOAT x, FLOAT y)
{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
- {
- asm volatile ("fmax.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %2, %3, $fcc0\n\t"
+ "fsel" "\t%1, %3, %2, $fcc1\n\t"
+ "fmax." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
}
-libm_alias_double (__fmaximum, fmaximum)
+declare_mgen_alias (__fmaximum, fmaximum);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fmaxmag.c b/sysdeps/loongarch/fpu/s_fmaxmag.c
index af87965..0876487 100644
--- a/sysdeps/loongarch/fpu/s_fmaxmag.c
+++ b/sysdeps/loongarch/fpu/s_fmaxmag.c
@@ -1,5 +1,5 @@
/* fmaxmag(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fmaxmagf.c b/sysdeps/loongarch/fpu/s_fmaxmagf.c
index 145fe6f..4f32cda 100644
--- a/sysdeps/loongarch/fpu/s_fmaxmagf.c
+++ b/sysdeps/loongarch/fpu/s_fmaxmagf.c
@@ -1,5 +1,5 @@
/* fmaxmagf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fminimum_mag.c b/sysdeps/loongarch/fpu/s_fminimum_mag.c
deleted file mode 100644
index f4ccb84..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_mag.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* fminimum_mag(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-
-double
-__fminimum_mag (double x, double y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
- {
- asm volatile ("fmina.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_double (__fminimum_mag, fminimum_mag)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_mag_num.c b/sysdeps/loongarch/fpu/s_fminimum_mag_num.c
deleted file mode 100644
index 4a60263..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_mag_num.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fminimum_mag_num(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-
-double
-__fminimum_mag_num (double x, double y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmina.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmina.d \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmina.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_double (__fminimum_mag_num, fminimum_mag_num)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_mag_num_template.c b/sysdeps/loongarch/fpu/s_fminimum_mag_num_template.c
new file mode 100644
index 0000000..4d6737d
--- /dev/null
+++ b/sysdeps/loongarch/fpu/s_fminimum_mag_num_template.c
@@ -0,0 +1,39 @@
+/* Return number with minimum magnitude. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef INSN_FMT
+#include_next <s_fminimum_mag_num_template.c>
+#else
+
+#include <math.h>
+
+FLOAT
+M_DECL_FUNC (__fminimum_mag_num) (FLOAT x, FLOAT y)
+{
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %3, %2, $fcc0\n\t"
+ "fsel" "\t%1, %2, %3, $fcc1\n\t"
+ "fmina." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
+}
+declare_mgen_alias (__fminimum_mag_num, fminimum_mag_num);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fminimum_mag_numf.c b/sysdeps/loongarch/fpu/s_fminimum_mag_numf.c
deleted file mode 100644
index aa88430..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_mag_numf.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fminimum_mag_numf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-
-float
-__fminimum_mag_numf (float x, float y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmina.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmina.s \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmina.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_float (__fminimum_mag_num, fminimum_mag_num)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_mag_template.c b/sysdeps/loongarch/fpu/s_fminimum_mag_template.c
new file mode 100644
index 0000000..39601a8
--- /dev/null
+++ b/sysdeps/loongarch/fpu/s_fminimum_mag_template.c
@@ -0,0 +1,39 @@
+/* Return value with minimum magnitude. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef INSN_FMT
+#include_next <s_fminimum_mag_template.c>
+#else
+
+#include <math.h>
+
+FLOAT
+M_DECL_FUNC (__fminimum_mag) (FLOAT x, FLOAT y)
+{
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %2, %3, $fcc0\n\t"
+ "fsel" "\t%1, %3, %2, $fcc1\n\t"
+ "fmina." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
+}
+declare_mgen_alias (__fminimum_mag, fminimum_mag);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fminimum_magf.c b/sysdeps/loongarch/fpu/s_fminimum_magf.c
deleted file mode 100644
index a38e58b..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_magf.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* fminimum_magf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-
-float
-__fminimum_magf (float x, float y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
- {
- asm volatile ("fmina.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_float (__fminimum_mag, fminimum_mag)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_num.c b/sysdeps/loongarch/fpu/s_fminimum_num.c
deleted file mode 100644
index 7d88dbd..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_num.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fminimum_num(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
-
-double
-__fminimum_num (double x, double y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmin.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmin.d \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmin.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_double (__fminimum_num, fminimum_num)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_num_template.c b/sysdeps/loongarch/fpu/s_fminimum_num_template.c
new file mode 100644
index 0000000..035cfbd
--- /dev/null
+++ b/sysdeps/loongarch/fpu/s_fminimum_num_template.c
@@ -0,0 +1,39 @@
+/* Return minimum number of X and Y. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef INSN_FMT
+#include_next <s_fminimum_num_template.c>
+#else
+
+#include <math.h>
+
+FLOAT
+M_DECL_FUNC (__fminimum_num) (FLOAT x, FLOAT y)
+{
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %3, %2, $fcc0\n\t"
+ "fsel" "\t%1, %2, %3, $fcc1\n\t"
+ "fmin." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
+}
+declare_mgen_alias (__fminimum_num, fminimum_num);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fminimum_numf.c b/sysdeps/loongarch/fpu/s_fminimum_numf.c
deleted file mode 100644
index 7ef5470..0000000
--- a/sysdeps/loongarch/fpu/s_fminimum_numf.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* fminimum_numf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
-
-float
-__fminimum_numf (float x, float y)
-{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond & _FCLASS_NAN) && !(y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmin.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return y;
- }
- else if (__glibc_unlikely(!(x_cond & _FCLASS_NAN) && (y_cond & _FCLASS_NAN)))
- {
- asm volatile ("fmin.s \t%0, %1, %2" : "=f" (y) : "f" (x), "f" (y));
- return x;
- }
- else
- {
- asm volatile ("fmin.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
- }
-}
-libm_alias_float (__fminimum_num, fminimum_num)
diff --git a/sysdeps/loongarch/fpu/s_fminimum_template.c b/sysdeps/loongarch/fpu/s_fminimum_template.c
new file mode 100644
index 0000000..80db72e
--- /dev/null
+++ b/sysdeps/loongarch/fpu/s_fminimum_template.c
@@ -0,0 +1,39 @@
+/* Return minimum of X and Y. LoongArch version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef INSN_FMT
+#include_next <s_fminimum_template.c>
+#else
+
+#include <math.h>
+
+FLOAT
+M_DECL_FUNC (__fminimum) (FLOAT x, FLOAT y)
+{
+ FLOAT a, b;
+ asm("fcmp.cor." INSN_FMT "\t$fcc0, %2, %2\n\t"
+ "fcmp.cor." INSN_FMT "\t$fcc1, %3, %3\n\t"
+ "fsel" "\t%0, %2, %3, $fcc0\n\t"
+ "fsel" "\t%1, %3, %2, $fcc1\n\t"
+ "fmin." INSN_FMT "\t%1, %0, %1"
+ : "=&f" (a), "=f" (b) : "f" (x), "f" (y) : "fcc0", "fcc1");
+ return b;
+}
+declare_mgen_alias (__fminimum, fminimum);
+
+#endif
diff --git a/sysdeps/loongarch/fpu/s_fminmag.c b/sysdeps/loongarch/fpu/s_fminmag.c
index 7bf501f..4675e3a 100644
--- a/sysdeps/loongarch/fpu/s_fminmag.c
+++ b/sysdeps/loongarch/fpu/s_fminmag.c
@@ -1,5 +1,5 @@
/* fminmag(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fminmagf.c b/sysdeps/loongarch/fpu/s_fminmagf.c
index 656411c..65fd8d7 100644
--- a/sysdeps/loongarch/fpu/s_fminmagf.c
+++ b/sysdeps/loongarch/fpu/s_fminmagf.c
@@ -1,5 +1,5 @@
/* fminmagf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fpclassify.c b/sysdeps/loongarch/fpu/s_fpclassify.c
index a65fb00..6df61f0 100644
--- a/sysdeps/loongarch/fpu/s_fpclassify.c
+++ b/sysdeps/loongarch/fpu/s_fpclassify.c
@@ -1,5 +1,5 @@
/* fpclassify(). LoongArch version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fpclassifyf.c b/sysdeps/loongarch/fpu/s_fpclassifyf.c
index ee64200..60e3db6 100644
--- a/sysdeps/loongarch/fpu/s_fpclassifyf.c
+++ b/sysdeps/loongarch/fpu/s_fpclassifyf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/fpu/s_isinf.c b/sysdeps/loongarch/fpu/s_isinf.c
index a56d8e7..ca2c6b8 100644
--- a/sysdeps/loongarch/fpu/s_isinf.c
+++ b/sysdeps/loongarch/fpu/s_isinf.c
@@ -1,5 +1,5 @@
/* isinf(). LoongArch version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_isinff.c b/sysdeps/loongarch/fpu/s_isinff.c
index 02110a3..88fca80 100644
--- a/sysdeps/loongarch/fpu/s_isinff.c
+++ b/sysdeps/loongarch/fpu/s_isinff.c
@@ -1,5 +1,5 @@
/* isinff(). LoongArch version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_isnan.c b/sysdeps/loongarch/fpu/s_isnan.c
index 7f90d4b..2f045d0 100644
--- a/sysdeps/loongarch/fpu/s_isnan.c
+++ b/sysdeps/loongarch/fpu/s_isnan.c
@@ -1,5 +1,5 @@
/* isnan(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_isnanf.c b/sysdeps/loongarch/fpu/s_isnanf.c
index 9d4dc67..2c95188 100644
--- a/sysdeps/loongarch/fpu/s_isnanf.c
+++ b/sysdeps/loongarch/fpu/s_isnanf.c
@@ -1,5 +1,5 @@
/* isnanf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_issignaling.c b/sysdeps/loongarch/fpu/s_issignaling.c
index 6d7b31e..f7a2992 100644
--- a/sysdeps/loongarch/fpu/s_issignaling.c
+++ b/sysdeps/loongarch/fpu/s_issignaling.c
@@ -1,5 +1,5 @@
/* issignaling(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_issignalingf.c b/sysdeps/loongarch/fpu/s_issignalingf.c
index 72150d1..99f75c0 100644
--- a/sysdeps/loongarch/fpu/s_issignalingf.c
+++ b/sysdeps/loongarch/fpu/s_issignalingf.c
@@ -1,5 +1,5 @@
/* issignalingf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_scalbn.c b/sysdeps/loongarch/fpu/s_scalbn.c
index 00f5777..34d4cd4 100644
--- a/sysdeps/loongarch/fpu/s_scalbn.c
+++ b/sysdeps/loongarch/fpu/s_scalbn.c
@@ -1,5 +1,5 @@
/* scalbn(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_scalbnf.c b/sysdeps/loongarch/fpu/s_scalbnf.c
index 96d1e1c..fde18cf 100644
--- a/sysdeps/loongarch/fpu/s_scalbnf.c
+++ b/sysdeps/loongarch/fpu/s_scalbnf.c
@@ -1,5 +1,5 @@
/* scalbnf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/e_ilogb.c b/sysdeps/loongarch/fpu/w_ilogb-impl.h
index 8de689e..1905373 100644
--- a/sysdeps/loongarch/fpu/e_ilogb.c
+++ b/sysdeps/loongarch/fpu/w_ilogb-impl.h
@@ -1,5 +1,5 @@
-/* __ieee754_ilogb(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Get integer exponent of a floating-point value. LoongArch version.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,20 +16,18 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
-#include <math.h>
#include <fpu_control.h>
-int
-__ieee754_ilogb (double x)
+static inline RET_TYPE
+IMPL_NAME (double x)
{
int x_cond;
asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
if (__glibc_unlikely (x_cond & _FCLASS_ZERO))
- return FP_ILOGB0;
+ return RET_INVALID (RET_LOGB0);
else if (__glibc_unlikely (x_cond & ( _FCLASS_NAN | _FCLASS_INF)))
- return FP_ILOGBNAN;
+ return RET_INVALID (RET_LOGBNAN);
else
{
asm volatile ("fabs.d \t%0, %1" : "=f" (x) : "f" (x));
diff --git a/sysdeps/loongarch/fpu/s_fminimumf.c b/sysdeps/loongarch/fpu/w_ilogbf-impl.h
index 769f84f..9cb4172 100644
--- a/sysdeps/loongarch/fpu/s_fminimumf.c
+++ b/sysdeps/loongarch/fpu/w_ilogbf-impl.h
@@ -1,5 +1,5 @@
-/* fminimumf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Get integer exponent of a floating-point value. LoongArch version.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,22 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
#include <fpu_control.h>
-float
-__fminimumf (float x, float y)
+static inline RET_TYPE
+IMPL_NAME (float x)
{
int x_cond;
- int y_cond;
asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
+ if (__glibc_unlikely (x_cond & _FCLASS_ZERO))
+ return RET_INVALID (RET_LOGB0);
+ else if (__glibc_unlikely (x_cond & ( _FCLASS_NAN | _FCLASS_INF)))
+ return RET_INVALID (RET_LOGBNAN);
else
{
- asm volatile ("fmin.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
+ asm volatile ("fabs.s \t%0, %1" : "=f" (x) : "f" (x));
+ asm volatile ("flogb.s \t%0, %1" : "=f" (x) : "f" (x));
return x;
}
}
-libm_alias_float (__fminimum, fminimum)
diff --git a/sysdeps/loongarch/fpu_control.h b/sysdeps/loongarch/fpu_control.h
index 3cdf241..352e91c 100644
--- a/sysdeps/loongarch/fpu_control.h
+++ b/sysdeps/loongarch/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/hp-timing.h b/sysdeps/loongarch/hp-timing.h
index d553496..71c9613 100644
--- a/sysdeps/loongarch/hp-timing.h
+++ b/sysdeps/loongarch/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/jmpbuf-offsets.h b/sysdeps/loongarch/jmpbuf-offsets.h
index 665212f..b449215 100644
--- a/sysdeps/loongarch/jmpbuf-offsets.h
+++ b/sysdeps/loongarch/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/jmpbuf-unwind.h b/sysdeps/loongarch/jmpbuf-unwind.h
index 24db64f..c389712 100644
--- a/sysdeps/loongarch/jmpbuf-unwind.h
+++ b/sysdeps/loongarch/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/ldsodefs.h b/sysdeps/loongarch/ldsodefs.h
index 899cd7d..f316a1e 100644
--- a/sysdeps/loongarch/ldsodefs.h
+++ b/sysdeps/loongarch/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/libc-tls.c b/sysdeps/loongarch/libc-tls.c
index c8d87a8..e3c10e6 100644
--- a/sysdeps/loongarch/libc-tls.c
+++ b/sysdeps/loongarch/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,5 +28,5 @@ void *
__tls_get_addr (tls_index *ti)
{
dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
+ return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
}
diff --git a/sysdeps/loongarch/linkmap.h b/sysdeps/loongarch/linkmap.h
index 833dc9e..ec0f530 100644
--- a/sysdeps/loongarch/linkmap.h
+++ b/sysdeps/loongarch/linkmap.h
@@ -1,5 +1,5 @@
/* Definition of link_map_machine.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/libm-test-ulps b/sysdeps/loongarch/lp64/libm-test-ulps
deleted file mode 100644
index 80f8aaf..0000000
--- a/sysdeps/loongarch/lp64/libm-test-ulps
+++ /dev/null
@@ -1,1513 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 6
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 4
-
-Function: "erfc_downward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp2":
-double: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2m1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 5
-float: 8
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 4
-ldouble: 7
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "log":
-double: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_downward":
-ldouble: 1
-
-Function: "log_towardzero":
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-ldouble: 2
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos":
-double: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 9
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-ldouble: 3
-
-Function: "y0_upward":
-double: 3
-float: 9
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/loongarch/lp64/libm-test-ulps-name b/sysdeps/loongarch/lp64/libm-test-ulps-name
deleted file mode 100644
index ce02281..0000000
--- a/sysdeps/loongarch/lp64/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-LoongArch 64-bit
diff --git a/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h
index a73390b..9b43cdd 100644
--- a/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c b/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
index 63bd7d8..396da6f 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function LoongArch64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-lasx.h b/sysdeps/loongarch/lp64/multiarch/ifunc-lasx.h
index 15c21b9..14eb447 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-lasx.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-lasx.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selection implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-memchr.h b/sysdeps/loongarch/lp64/multiarch/ifunc-memchr.h
index bccaef8..3a08e08 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-memchr.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-memchr.h
@@ -1,6 +1,6 @@
/* Common definition for memchr ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-memcmp.h b/sysdeps/loongarch/lp64/multiarch/ifunc-memcmp.h
index 3ce39ac..07ba58e 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-memcmp.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-memcmp.h
@@ -1,6 +1,6 @@
/* Common definition for memcmp ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-memrchr.h b/sysdeps/loongarch/lp64/multiarch/ifunc-memrchr.h
index bc53ff8..d95c313 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-memrchr.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-memrchr.h
@@ -1,6 +1,6 @@
/* Common definition for memrchr implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-rawmemchr.h b/sysdeps/loongarch/lp64/multiarch/ifunc-rawmemchr.h
index 56c008a..165244d 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-rawmemchr.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-rawmemchr.h
@@ -1,6 +1,6 @@
/* Common definition for rawmemchr ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strchr.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strchr.h
index 4288a2b..c9f2634 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strchr.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strchr.h
@@ -1,6 +1,6 @@
/* Common definition for strchr ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strchrnul.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strchrnul.h
index 38ce91c..6cd3e69 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strchrnul.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strchrnul.h
@@ -1,6 +1,6 @@
/* Common definition for strchrnul ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strcmp.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strcmp.h
index 19136ca..9529c9d 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strcmp.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strcmp.h
@@ -1,6 +1,6 @@
/* Common definition for strcmp ifunc selection.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strlen.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strlen.h
index e1ff4b9..06fda52 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strlen.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strlen.h
@@ -1,6 +1,6 @@
/* Common definition for strlen ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strncmp.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strncmp.h
index 12b6909..1997f70 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strncmp.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strncmp.h
@@ -1,6 +1,6 @@
/* Common definition for strncmp ifunc selection.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strnlen.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strnlen.h
index f8c1b0e..b0a9457 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strnlen.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strnlen.h
@@ -1,6 +1,6 @@
/* Common definition for strnlen ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-strrchr.h b/sysdeps/loongarch/lp64/multiarch/ifunc-strrchr.h
index 7890c6f..ec13f42 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-strrchr.h
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-strrchr.h
@@ -1,6 +1,6 @@
/* Common definition for strrchr ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memchr-aligned.S b/sysdeps/loongarch/lp64/multiarch/memchr-aligned.S
index f2f6c1c..a4e66b6 100644
--- a/sysdeps/loongarch/lp64/multiarch/memchr-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memchr-aligned.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memchr-lasx.S b/sysdeps/loongarch/lp64/multiarch/memchr-lasx.S
index 40278e5..91eace2 100644
--- a/sysdeps/loongarch/lp64/multiarch/memchr-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memchr-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memchr-lsx.S b/sysdeps/loongarch/lp64/multiarch/memchr-lsx.S
index f309148..7c0b20e 100644
--- a/sysdeps/loongarch/lp64/multiarch/memchr-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memchr-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memchr.c b/sysdeps/loongarch/lp64/multiarch/memchr.c
index 56d4e6b..7ea7dc5 100644
--- a/sysdeps/loongarch/lp64/multiarch/memchr.c
+++ b/sysdeps/loongarch/lp64/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memcmp-aligned.S b/sysdeps/loongarch/lp64/multiarch/memcmp-aligned.S
index 98870e8..41274aa 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcmp-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcmp-aligned.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memcmp-lasx.S b/sysdeps/loongarch/lp64/multiarch/memcmp-lasx.S
index 004669a..2c66175 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcmp-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcmp-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memcmp-lsx.S b/sysdeps/loongarch/lp64/multiarch/memcmp-lsx.S
index 719277e..5b68b97 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcmp-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcmp-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memcmp.c b/sysdeps/loongarch/lp64/multiarch/memcmp.c
index 546f687..494a395 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcmp.c
+++ b/sysdeps/loongarch/lp64/multiarch/memcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memcpy-aligned.S b/sysdeps/loongarch/lp64/multiarch/memcpy-aligned.S
index 5a79c3f..297cab3 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcpy-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcpy-aligned.S
@@ -1,5 +1,5 @@
/* Optimized memcpy_aligned implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memcpy-lasx.S b/sysdeps/loongarch/lp64/multiarch/memcpy-lasx.S
index ee8e285..81871b2 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcpy-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcpy-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memcpy-lsx.S b/sysdeps/loongarch/lp64/multiarch/memcpy-lsx.S
index b47db04..2293b91 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcpy-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcpy-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memcpy-unaligned.S b/sysdeps/loongarch/lp64/multiarch/memcpy-unaligned.S
index 8e50f3a..ca99a3a 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcpy-unaligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memcpy-unaligned.S
@@ -1,5 +1,5 @@
/* Optimized unaligned memcpy implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memcpy.c b/sysdeps/loongarch/lp64/multiarch/memcpy.c
index 1405293..562073a 100644
--- a/sysdeps/loongarch/lp64/multiarch/memcpy.c
+++ b/sysdeps/loongarch/lp64/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-aligned.S b/sysdeps/loongarch/lp64/multiarch/memmove-aligned.S
index 023a1a3..0843d346 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memmove-aligned.S
@@ -1,5 +1,5 @@
/* Optimized memmove_aligned implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-lasx.S b/sysdeps/loongarch/lp64/multiarch/memmove-lasx.S
index d3f1b84..c95a28a 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memmove-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S b/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
index c6e72c6..ee1c6b8 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-unaligned.S b/sysdeps/loongarch/lp64/multiarch/memmove-unaligned.S
index 3e6f821..80e30a8 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove-unaligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memmove-unaligned.S
@@ -1,5 +1,5 @@
/* Optimized memmove_unaligned implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove.c b/sysdeps/loongarch/lp64/multiarch/memmove.c
index a23a57d..5937743 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove.c
+++ b/sysdeps/loongarch/lp64/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memrchr-generic.c b/sysdeps/loongarch/lp64/multiarch/memrchr-generic.c
index e473ad4..0cfd281 100644
--- a/sysdeps/loongarch/lp64/multiarch/memrchr-generic.c
+++ b/sysdeps/loongarch/lp64/multiarch/memrchr-generic.c
@@ -1,5 +1,5 @@
/* Generic implementation of memrchr.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memrchr-lasx.S b/sysdeps/loongarch/lp64/multiarch/memrchr-lasx.S
index 52f3ff9..51565ba 100644
--- a/sysdeps/loongarch/lp64/multiarch/memrchr-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memrchr-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memrchr-lsx.S b/sysdeps/loongarch/lp64/multiarch/memrchr-lsx.S
index 875e1f6..6956790 100644
--- a/sysdeps/loongarch/lp64/multiarch/memrchr-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memrchr-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memrchr.c b/sysdeps/loongarch/lp64/multiarch/memrchr.c
index ac989c9..52de4af 100644
--- a/sysdeps/loongarch/lp64/multiarch/memrchr.c
+++ b/sysdeps/loongarch/lp64/multiarch/memrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/memset-aligned.S b/sysdeps/loongarch/lp64/multiarch/memset-aligned.S
index e1be66b..2357d41 100644
--- a/sysdeps/loongarch/lp64/multiarch/memset-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memset-aligned.S
@@ -1,5 +1,5 @@
/* Optimized memset aligned implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memset-lasx.S b/sysdeps/loongarch/lp64/multiarch/memset-lasx.S
index 5be1a5a..8b730a5 100644
--- a/sysdeps/loongarch/lp64/multiarch/memset-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memset-lasx.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memset-lsx.S b/sysdeps/loongarch/lp64/multiarch/memset-lsx.S
index 6389cb5..cb37b0a 100644
--- a/sysdeps/loongarch/lp64/multiarch/memset-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memset-lsx.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memset-unaligned.S b/sysdeps/loongarch/lp64/multiarch/memset-unaligned.S
index 12e6368..ecab0d4 100644
--- a/sysdeps/loongarch/lp64/multiarch/memset-unaligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/memset-unaligned.S
@@ -1,5 +1,5 @@
/* Optimized memset unaligned implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/memset.c b/sysdeps/loongarch/lp64/multiarch/memset.c
index 8ba61ae..d9f3838 100644
--- a/sysdeps/loongarch/lp64/multiarch/memset.c
+++ b/sysdeps/loongarch/lp64/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/rawmemchr-aligned.S b/sysdeps/loongarch/lp64/multiarch/rawmemchr-aligned.S
index bd72933..35d6965 100644
--- a/sysdeps/loongarch/lp64/multiarch/rawmemchr-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/rawmemchr-aligned.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/rawmemchr-lasx.S b/sysdeps/loongarch/lp64/multiarch/rawmemchr-lasx.S
index c38265f..3eb601b 100644
--- a/sysdeps/loongarch/lp64/multiarch/rawmemchr-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/rawmemchr-lasx.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/rawmemchr-lsx.S b/sysdeps/loongarch/lp64/multiarch/rawmemchr-lsx.S
index b8bcf9f..ee29961 100644
--- a/sysdeps/loongarch/lp64/multiarch/rawmemchr-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/rawmemchr-lsx.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/rawmemchr.c b/sysdeps/loongarch/lp64/multiarch/rawmemchr.c
index b94bd5a..bdb3f8d 100644
--- a/sysdeps/loongarch/lp64/multiarch/rawmemchr.c
+++ b/sysdeps/loongarch/lp64/multiarch/rawmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of rawmemchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/stpcpy-aligned.S b/sysdeps/loongarch/lp64/multiarch/stpcpy-aligned.S
index faa4d8c..c761475 100644
--- a/sysdeps/loongarch/lp64/multiarch/stpcpy-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/stpcpy-aligned.S
@@ -1,5 +1,5 @@
/* stpcpy-aligned implementation is in strcpy-aligned.S.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
# define STPCPY __stpcpy_aligned
#else
# define STPCPY __stpcpy
+weak_alias (__stpcpy, stpcpy)
#endif
#define USE_AS_STPCPY
diff --git a/sysdeps/loongarch/lp64/multiarch/stpcpy-lasx.S b/sysdeps/loongarch/lp64/multiarch/stpcpy-lasx.S
index 3d8bcb8..a74a065 100644
--- a/sysdeps/loongarch/lp64/multiarch/stpcpy-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/stpcpy-lasx.S
@@ -1,5 +1,5 @@
/* stpcpy-lasx implementation is in strcpy-lasx.S.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/stpcpy-lsx.S b/sysdeps/loongarch/lp64/multiarch/stpcpy-lsx.S
index 96c7d13..f36be95 100644
--- a/sysdeps/loongarch/lp64/multiarch/stpcpy-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/stpcpy-lsx.S
@@ -1,5 +1,5 @@
/* stpcpy-lsx implementation is in strcpy-lsx.S.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/stpcpy-unaligned.S b/sysdeps/loongarch/lp64/multiarch/stpcpy-unaligned.S
index e22142c..47bc095 100644
--- a/sysdeps/loongarch/lp64/multiarch/stpcpy-unaligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/stpcpy-unaligned.S
@@ -1,5 +1,5 @@
/* stpcpy-unaligned implementation is in strcpy-unaligned.S.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/stpcpy.c b/sysdeps/loongarch/lp64/multiarch/stpcpy.c
index 0b14919..6ad2eb7 100644
--- a/sysdeps/loongarch/lp64/multiarch/stpcpy.c
+++ b/sysdeps/loongarch/lp64/multiarch/stpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strchr-aligned.S b/sysdeps/loongarch/lp64/multiarch/strchr-aligned.S
index 63f5f8e..8b81d16 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchr-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchr-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchr-lasx.S b/sysdeps/loongarch/lp64/multiarch/strchr-lasx.S
index 6162de4..d2fe5a3 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchr-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchr-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchr-lsx.S b/sysdeps/loongarch/lp64/multiarch/strchr-lsx.S
index c11dd3e..335a0ea 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchr-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchr-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchr.c b/sysdeps/loongarch/lp64/multiarch/strchr.c
index 37b104a..05394c9 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchr.c
+++ b/sysdeps/loongarch/lp64/multiarch/strchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strchrnul-aligned.S b/sysdeps/loongarch/lp64/multiarch/strchrnul-aligned.S
index b7b976d..bcbb13e 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchrnul-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchrnul-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchrnul-lasx.S b/sysdeps/loongarch/lp64/multiarch/strchrnul-lasx.S
index a90df43..446213c 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchrnul-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchrnul-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchrnul-lsx.S b/sysdeps/loongarch/lp64/multiarch/strchrnul-lsx.S
index e68dcd3..af8990a 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchrnul-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strchrnul-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strchrnul.c b/sysdeps/loongarch/lp64/multiarch/strchrnul.c
index 29ef6bf..40ead28 100644
--- a/sysdeps/loongarch/lp64/multiarch/strchrnul.c
+++ b/sysdeps/loongarch/lp64/multiarch/strchrnul.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchrnul.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strcmp-aligned.S b/sysdeps/loongarch/lp64/multiarch/strcmp-aligned.S
index 74ed63d..12b9cc6 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcmp-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcmp-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strcmp-lsx.S b/sysdeps/loongarch/lp64/multiarch/strcmp-lsx.S
index f82039e..6a0b2fa 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcmp-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcmp-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strcmp.c b/sysdeps/loongarch/lp64/multiarch/strcmp.c
index 34ac1dc..5d65009 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcmp.c
+++ b/sysdeps/loongarch/lp64/multiarch/strcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strcpy-aligned.S b/sysdeps/loongarch/lp64/multiarch/strcpy-aligned.S
index 29e0381..43d74f6 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcpy-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcpy-aligned.S
@@ -1,6 +1,6 @@
/* Optimized strcpy stpcpy aligned implementation using basic LoongArch
instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -198,5 +198,3 @@ L(un_out):
#endif
jr ra
END(STRCPY)
-
-libc_hidden_builtin_def (STRCPY)
diff --git a/sysdeps/loongarch/lp64/multiarch/strcpy-lasx.S b/sysdeps/loongarch/lp64/multiarch/strcpy-lasx.S
index 663b8ca..5629283 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcpy-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcpy-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strcpy stpcpy implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -211,5 +211,4 @@ L(zero_byte):
jr ra
END(STRCPY)
-libc_hidden_builtin_def (STRCPY)
#endif
diff --git a/sysdeps/loongarch/lp64/multiarch/strcpy-lsx.S b/sysdeps/loongarch/lp64/multiarch/strcpy-lsx.S
index 389719b..97a612b 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcpy-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcpy-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strcpy stpcpy implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -208,5 +208,4 @@ L(INDEX):
.dword 0x0706050403020100
.dword 0x0f0e0d0c0b0a0908
-libc_hidden_builtin_def (STRCPY)
#endif
diff --git a/sysdeps/loongarch/lp64/multiarch/strcpy-unaligned.S b/sysdeps/loongarch/lp64/multiarch/strcpy-unaligned.S
index f031e51..7231b4d 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcpy-unaligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strcpy-unaligned.S
@@ -1,6 +1,6 @@
/* Optimized strcpy unaligned implementation using basic LoongArch
instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -134,5 +134,4 @@ L(page_cross):
b L(end)
END(STRCPY)
-libc_hidden_builtin_def (STRCPY)
#endif
diff --git a/sysdeps/loongarch/lp64/multiarch/strcpy.c b/sysdeps/loongarch/lp64/multiarch/strcpy.c
index de04426..08634b4 100644
--- a/sysdeps/loongarch/lp64/multiarch/strcpy.c
+++ b/sysdeps/loongarch/lp64/multiarch/strcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strlen-aligned.S b/sysdeps/loongarch/lp64/multiarch/strlen-aligned.S
index cd10c30..5ca95f9 100644
--- a/sysdeps/loongarch/lp64/multiarch/strlen-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strlen-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strlen-lasx.S b/sysdeps/loongarch/lp64/multiarch/strlen-lasx.S
index e047013..20e1844 100644
--- a/sysdeps/loongarch/lp64/multiarch/strlen-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strlen-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strlen-lsx.S b/sysdeps/loongarch/lp64/multiarch/strlen-lsx.S
index bfe75d9..0f508d8 100644
--- a/sysdeps/loongarch/lp64/multiarch/strlen-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strlen-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strlen.c b/sysdeps/loongarch/lp64/multiarch/strlen.c
index ab10560..b1458b2 100644
--- a/sysdeps/loongarch/lp64/multiarch/strlen.c
+++ b/sysdeps/loongarch/lp64/multiarch/strlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strncmp-aligned.S b/sysdeps/loongarch/lp64/multiarch/strncmp-aligned.S
index 5de66e0..e95a39c 100644
--- a/sysdeps/loongarch/lp64/multiarch/strncmp-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strncmp-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strncmp-lsx.S b/sysdeps/loongarch/lp64/multiarch/strncmp-lsx.S
index f90d25f..96d8b06 100644
--- a/sysdeps/loongarch/lp64/multiarch/strncmp-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strncmp-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strncmp.c b/sysdeps/loongarch/lp64/multiarch/strncmp.c
index 7d1d643..2bb1e25 100644
--- a/sysdeps/loongarch/lp64/multiarch/strncmp.c
+++ b/sysdeps/loongarch/lp64/multiarch/strncmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strnlen-aligned.S b/sysdeps/loongarch/lp64/multiarch/strnlen-aligned.S
index 3606225..edb5e62 100644
--- a/sysdeps/loongarch/lp64/multiarch/strnlen-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strnlen-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strnlen-lasx.S b/sysdeps/loongarch/lp64/multiarch/strnlen-lasx.S
index e31f753..7aeb27e 100644
--- a/sysdeps/loongarch/lp64/multiarch/strnlen-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strnlen-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation using LoongArch LASX instructions
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strnlen-lsx.S b/sysdeps/loongarch/lp64/multiarch/strnlen-lsx.S
index f2bff60..84361cc 100644
--- a/sysdeps/loongarch/lp64/multiarch/strnlen-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strnlen-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation using LoongArch LSX instructions
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/lp64/multiarch/strnlen.c b/sysdeps/loongarch/lp64/multiarch/strnlen.c
index b2c0491..23d2721 100644
--- a/sysdeps/loongarch/lp64/multiarch/strnlen.c
+++ b/sysdeps/loongarch/lp64/multiarch/strnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strrchr-aligned.S b/sysdeps/loongarch/lp64/multiarch/strrchr-aligned.S
index f26b9f4..f430b35 100644
--- a/sysdeps/loongarch/lp64/multiarch/strrchr-aligned.S
+++ b/sysdeps/loongarch/lp64/multiarch/strrchr-aligned.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation using basic LoongArch instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strrchr-lasx.S b/sysdeps/loongarch/lp64/multiarch/strrchr-lasx.S
index 16b8ef4..56d773f 100644
--- a/sysdeps/loongarch/lp64/multiarch/strrchr-lasx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strrchr-lasx.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation using LoongArch LASX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strrchr-lsx.S b/sysdeps/loongarch/lp64/multiarch/strrchr-lsx.S
index 6873106..9ae16a4 100644
--- a/sysdeps/loongarch/lp64/multiarch/strrchr-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/strrchr-lsx.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation using LoongArch LSX instructions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/lp64/multiarch/strrchr.c b/sysdeps/loongarch/lp64/multiarch/strrchr.c
index c468e11..165f37a 100644
--- a/sysdeps/loongarch/lp64/multiarch/strrchr.c
+++ b/sysdeps/loongarch/lp64/multiarch/strrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/machine-gmon.h b/sysdeps/loongarch/machine-gmon.h
index d3af3df..e5d32ef 100644
--- a/sysdeps/loongarch/machine-gmon.h
+++ b/sysdeps/loongarch/machine-gmon.h
@@ -1,5 +1,5 @@
/* LoongArch definitions for profiling support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/nofpu/math-tests-exceptions.h b/sysdeps/loongarch/nofpu/math-tests-exceptions.h
index f5736af..1a4c725 100644
--- a/sysdeps/loongarch/nofpu/math-tests-exceptions.h
+++ b/sysdeps/loongarch/nofpu/math-tests-exceptions.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: support for exceptions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/nofpu/math-tests-rounding.h b/sysdeps/loongarch/nofpu/math-tests-rounding.h
index 72c8f99..65bb0f6 100644
--- a/sysdeps/loongarch/nofpu/math-tests-rounding.h
+++ b/sysdeps/loongarch/nofpu/math-tests-rounding.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: rounding mode support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/nptl/pthreaddef.h b/sysdeps/loongarch/nptl/pthreaddef.h
index 704e049..c066b7c 100644
--- a/sysdeps/loongarch/nptl/pthreaddef.h
+++ b/sysdeps/loongarch/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/nptl/tls.h b/sysdeps/loongarch/nptl/tls.h
index ac1a92e..61acb61 100644
--- a/sysdeps/loongarch/nptl/tls.h
+++ b/sysdeps/loongarch/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,8 +26,8 @@
#include <stddef.h>
#include <stdint.h>
#include <dl-dtv.h>
+#include "thread_pointer.h"
-register void *__thread_self asm ("$tp");
#define READ_THREAD_POINTER() ({ __thread_self; })
/* Get system call information. */
diff --git a/sysdeps/loongarch/preconfigure b/sysdeps/loongarch/preconfigure
index 0d1e9ed..6726ab8 100644
--- a/sysdeps/loongarch/preconfigure
+++ b/sysdeps/loongarch/preconfigure
@@ -44,6 +44,7 @@ loongarch*)
base_machine=loongarch
mtls_descriptor=desc
+ mtls_traditional=trad
;;
esac
diff --git a/sysdeps/loongarch/preconfigure.ac b/sysdeps/loongarch/preconfigure.ac
index 67e4357..5640226 100644
--- a/sysdeps/loongarch/preconfigure.ac
+++ b/sysdeps/loongarch/preconfigure.ac
@@ -41,6 +41,8 @@ loongarch*)
AC_DEFINE_UNQUOTED([LOONGARCH_ABI_FRLEN], [$abi_flen])
base_machine=loongarch
+ mtls_descriptor=desc
+ mtls_traditional=trad
;;
esac
diff --git a/sysdeps/loongarch/setjmp.S b/sysdeps/loongarch/setjmp.S
index 37a14a0..0d069b2 100644
--- a/sysdeps/loongarch/setjmp.S
+++ b/sysdeps/loongarch/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/sfp-machine.h b/sysdeps/loongarch/sfp-machine.h
index cbf6650..497b550 100644
--- a/sysdeps/loongarch/sfp-machine.h
+++ b/sysdeps/loongarch/sfp-machine.h
@@ -1,5 +1,5 @@
/* LoongArch softfloat definitions
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/sotruss-lib.c b/sysdeps/loongarch/sotruss-lib.c
index bcf4085..400f811 100644
--- a/sysdeps/loongarch/sotruss-lib.c
+++ b/sysdeps/loongarch/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/stackinfo.h b/sysdeps/loongarch/stackinfo.h
deleted file mode 100644
index 6ee5055..0000000
--- a/sysdeps/loongarch/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On LoongArch the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R | PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/loongarch/start.S b/sysdeps/loongarch/start.S
index de7f964..754c08d 100644
--- a/sysdeps/loongarch/start.S
+++ b/sysdeps/loongarch/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF LoongArch ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/sys/asm.h b/sysdeps/loongarch/sys/asm.h
index 51521a7..7ca98bf 100644
--- a/sysdeps/loongarch/sys/asm.h
+++ b/sysdeps/loongarch/sys/asm.h
@@ -1,5 +1,5 @@
/* Miscellaneous macros.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/sys/ifunc.h b/sysdeps/loongarch/sys/ifunc.h
index d7efd60..ab090ec 100644
--- a/sysdeps/loongarch/sys/ifunc.h
+++ b/sysdeps/loongarch/sys/ifunc.h
@@ -1,5 +1,5 @@
/* Definitions used by LoongArch indirect function resolvers.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/sys/regdef.h b/sysdeps/loongarch/sys/regdef.h
index 80ce3e9..c65a2c4 100644
--- a/sysdeps/loongarch/sys/regdef.h
+++ b/sysdeps/loongarch/sys/regdef.h
@@ -1,5 +1,5 @@
/* Register Macro definitions
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/thread_pointer.h b/sysdeps/loongarch/thread_pointer.h
new file mode 100644
index 0000000..8aa8538
--- /dev/null
+++ b/sysdeps/loongarch/thread_pointer.h
@@ -0,0 +1,30 @@
+/* __thread_pointer definition. loongarch version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+register void *__thread_self asm ("$tp");
+
+static inline void *
+__thread_pointer (void)
+{
+ return __thread_self;
+}
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/loongarch/tlsdesc.c b/sysdeps/loongarch/tlsdesc.c
index 76708f7..7321d45 100644
--- a/sysdeps/loongarch/tlsdesc.c
+++ b/sysdeps/loongarch/tlsdesc.c
@@ -1,6 +1,6 @@
/* Manage TLS descriptors. LoongArch64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/loongarch/tlsdesc.sym b/sysdeps/loongarch/tlsdesc.sym
index 213d0b3..9f80fce 100644
--- a/sysdeps/loongarch/tlsdesc.sym
+++ b/sysdeps/loongarch/tlsdesc.sym
@@ -4,12 +4,6 @@
#include <link.h>
#include <dl-tlsdesc.h>
-#define SHARED 1
-
-#include <ldsodefs.h>
-
-#define GLRO_offsetof(name) offsetof (struct rtld_global_ro, _##name)
-
--
-- Abuse tls.h macros to derive offsets relative to the thread register.
@@ -23,6 +17,3 @@ DTV_COUNTER offsetof(dtv_t, counter)
TLS_DTV_UNALLOCATED TLS_DTV_UNALLOCATED
TLS_DTV_OFFSET TLS_DTV_OFFSET
SIZE_OF_TCB sizeof(tcbhead_t)
-GLRO_DL_HWCAP_OFFSET GLRO_offsetof (dl_hwcap)
-HWCAP_LOONGARCH_LSX HWCAP_LOONGARCH_LSX
-HWCAP_LOONGARCH_LASX HWCAP_LOONGARCH_LASX
diff --git a/sysdeps/loongarch/tst-audit.h b/sysdeps/loongarch/tst-audit.h
index 6e04b4f..9c3b2bc 100644
--- a/sysdeps/loongarch/tst-audit.h
+++ b/sysdeps/loongarch/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/tst-gnu2-tls2.h b/sysdeps/loongarch/tst-gnu2-tls2.h
index 863abe5..007a4d6 100644
--- a/sysdeps/loongarch/tst-gnu2-tls2.h
+++ b/sysdeps/loongarch/tst-gnu2-tls2.h
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation. LoongArch64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/tst-hwcap-tunables.c b/sysdeps/loongarch/tst-hwcap-tunables.c
index fe1b95a..95e2fc0 100644
--- a/sysdeps/loongarch/tst-hwcap-tunables.c
+++ b/sysdeps/loongarch/tst-hwcap-tunables.c
@@ -1,5 +1,5 @@
/* Tests for LoongArch GLIBC_TUNABLES=glibc.cpu.hwcaps filter.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/Makefile b/sysdeps/m68k/Makefile
index 6515a8b..9e97e95 100644
--- a/sysdeps/m68k/Makefile
+++ b/sysdeps/m68k/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/__longjmp.c b/sysdeps/m68k/__longjmp.c
index 775fb99..20dc921 100644
--- a/sysdeps/m68k/__longjmp.c
+++ b/sysdeps/m68k/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/asm-syntax.h b/sysdeps/m68k/asm-syntax.h
index 4d989b3..63d15c3 100644
--- a/sysdeps/m68k/asm-syntax.h
+++ b/sysdeps/m68k/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for 68k syntax variations.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
diff --git a/sysdeps/m68k/backtrace.c b/sysdeps/m68k/backtrace.c
index 5cd0fc7..f4bf626 100644
--- a/sysdeps/m68k/backtrace.c
+++ b/sysdeps/m68k/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bits/fenv.h b/sysdeps/m68k/bits/fenv.h
index 4dad131..3650c68 100644
--- a/sysdeps/m68k/bits/fenv.h
+++ b/sysdeps/m68k/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bits/link.h b/sysdeps/m68k/bits/link.h
index cf9e8f0..4cceebc 100644
--- a/sysdeps/m68k/bits/link.h
+++ b/sysdeps/m68k/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bits/setjmp.h b/sysdeps/m68k/bits/setjmp.h
index 6996be5..c46a36d 100644
--- a/sysdeps/m68k/bits/setjmp.h
+++ b/sysdeps/m68k/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bits/wordsize.h b/sysdeps/m68k/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/m68k/bits/wordsize.h
+++ b/sysdeps/m68k/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bsd-_setjmp.c b/sysdeps/m68k/bsd-_setjmp.c
index 43d6e65..4cb3308 100644
--- a/sysdeps/m68k/bsd-_setjmp.c
+++ b/sysdeps/m68k/bsd-_setjmp.c
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. m68k version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/bsd-setjmp.c b/sysdeps/m68k/bsd-setjmp.c
index fff3178..6b1fc8c 100644
--- a/sysdeps/m68k/bsd-setjmp.c
+++ b/sysdeps/m68k/bsd-setjmp.c
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. m68k version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/atomic-machine.h b/sysdeps/m68k/coldfire/atomic-machine.h
index f156af0..bf90dfd 100644
--- a/sysdeps/m68k/coldfire/atomic-machine.h
+++ b/sysdeps/m68k/coldfire/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
index ec9d949..7181bc1 100644
--- a/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
+++ b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
deleted file mode 100644
index 1b25a70..0000000
--- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+++ /dev/null
@@ -1,163 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "atan2":
-float: 1
-
-Function: "atanh":
-float: 1
-
-Function: Imaginary part of "cacosh":
-float: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catanh":
-double: 4
-
-Function: "cbrt":
-double: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-float: 1
-
-Function: Real part of "cexp":
-float: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-
-Function: Real part of "clog":
-float: 1
-
-Function: Real part of "clog10":
-float: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-
-Function: "cos":
-double: 2
-float: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csqrt":
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-
-Function: Real part of "ctanh":
-double: 1
-float: 2
-
-Function: Imaginary part of "ctanh":
-float: 1
-
-Function: "erf":
-double: 1
-
-Function: "erfc":
-double: 1
-
-Function: "exp10":
-double: 6
-float: 2
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "hypot":
-float: 1
-
-Function: "j0":
-double: 2
-float: 2
-
-Function: "j1":
-double: 1
-float: 2
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "lgamma":
-double: 1
-float: 2
-
-Function: "log10":
-double: 1
-float: 2
-
-Function: "log1p":
-float: 1
-
-Function: "logp1":
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "tan":
-double: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-
-Function: "y0":
-double: 2
-float: 1
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "yn":
-double: 3
-float: 2
-
-# end of automatic generation
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name b/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name
deleted file mode 100644
index d0b67ea..0000000
--- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-ColdFire
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabs.c b/sysdeps/m68k/coldfire/fpu/s_fabs.c
index dbf9fe3..7ad6306 100644
--- a/sysdeps/m68k/coldfire/fpu/s_fabs.c
+++ b/sysdeps/m68k/coldfire/fpu/s_fabs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabsf.c b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
index 4c83db3..292a013 100644
--- a/sysdeps/m68k/coldfire/fpu/s_fabsf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrint.c b/sysdeps/m68k/coldfire/fpu/s_lrint.c
index aaa8f30..1eab6c7 100644
--- a/sysdeps/m68k/coldfire/fpu/s_lrint.c
+++ b/sysdeps/m68k/coldfire/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrintf.c b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
index 191c593..79dc50f 100644
--- a/sysdeps/m68k/coldfire/fpu/s_lrintf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/s_rint.c b/sysdeps/m68k/coldfire/fpu/s_rint.c
index e72ed54..f75401f 100644
--- a/sysdeps/m68k/coldfire/fpu/s_rint.c
+++ b/sysdeps/m68k/coldfire/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/fpu/s_rintf.c b/sysdeps/m68k/coldfire/fpu/s_rintf.c
index 9e9c447..c58c995 100644
--- a/sysdeps/m68k/coldfire/fpu/s_rintf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/coldfire/nofpu/sfp-machine.h b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
index e4ad79e..95eefc1 100644
--- a/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
+++ b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
@@ -1 +1,51 @@
-#include <sysdeps/nios2/sfp-machine.h>
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* This is arbitrarily taken from the PowerPC version. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/m68k/coldfire/sysdep.h b/sysdeps/m68k/coldfire/sysdep.h
index 0d7b21e..563a672 100644
--- a/sysdeps/m68k/coldfire/sysdep.h
+++ b/sysdeps/m68k/coldfire/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for Coldfire.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/crti.S b/sysdeps/m68k/crti.S
index e520887..16d2991 100644
--- a/sysdeps/m68k/crti.S
+++ b/sysdeps/m68k/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/crtn.S b/sysdeps/m68k/crtn.S
index 58e640e..492a2a3 100644
--- a/sysdeps/m68k/crtn.S
+++ b/sysdeps/m68k/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index 4bbf1ba..2aca0bc 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/dl-tls.h b/sysdeps/m68k/dl-tls.h
index 967c84f..85817fc 100644
--- a/sysdeps/m68k/dl-tls.h
+++ b/sysdeps/m68k/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. M68K version.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
/* Type used for the representation of TLS information in the GOT. */
typedef struct
@@ -42,5 +44,6 @@ typedef struct
extern void *__tls_get_addr (tls_index *ti);
-#define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/m68k/dl-trampoline.S b/sysdeps/m68k/dl-trampoline.S
index ca52ea0..02cd4e8 100644
--- a/sysdeps/m68k/dl-trampoline.S
+++ b/sysdeps/m68k/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. m68k version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/elf-initfini.h b/sysdeps/m68k/elf-initfini.h
index eaf05b5..a9b408c 100644
--- a/sysdeps/m68k/elf-initfini.h
+++ b/sysdeps/m68k/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. m68k version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fclrexcpt.c b/sysdeps/m68k/fpu/fclrexcpt.c
index d8335fd..0df111f 100644
--- a/sysdeps/m68k/fpu/fclrexcpt.c
+++ b/sysdeps/m68k/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fedisblxcpt.c b/sysdeps/m68k/fpu/fedisblxcpt.c
index feb61d9..684a398 100644
--- a/sysdeps/m68k/fpu/fedisblxcpt.c
+++ b/sysdeps/m68k/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/feenablxcpt.c b/sysdeps/m68k/fpu/feenablxcpt.c
index 17918e4..b6c9943 100644
--- a/sysdeps/m68k/fpu/feenablxcpt.c
+++ b/sysdeps/m68k/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fegetenv.c b/sysdeps/m68k/fpu/fegetenv.c
index 516efcd..e02e2e9 100644
--- a/sysdeps/m68k/fpu/fegetenv.c
+++ b/sysdeps/m68k/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fegetexcept.c b/sysdeps/m68k/fpu/fegetexcept.c
index 92a1322..e172677 100644
--- a/sysdeps/m68k/fpu/fegetexcept.c
+++ b/sysdeps/m68k/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fegetmode.c b/sysdeps/m68k/fpu/fegetmode.c
index 9f994d6..850c757 100644
--- a/sysdeps/m68k/fpu/fegetmode.c
+++ b/sysdeps/m68k/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. M68K version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fegetround.c b/sysdeps/m68k/fpu/fegetround.c
index 820c608..c92daa0 100644
--- a/sysdeps/m68k/fpu/fegetround.c
+++ b/sysdeps/m68k/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/feholdexcpt.c b/sysdeps/m68k/fpu/feholdexcpt.c
index ac23c70..48c0a8f 100644
--- a/sysdeps/m68k/fpu/feholdexcpt.c
+++ b/sysdeps/m68k/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fesetenv.c b/sysdeps/m68k/fpu/fesetenv.c
index c2b2ce0..3ea2cc6 100644
--- a/sysdeps/m68k/fpu/fesetenv.c
+++ b/sysdeps/m68k/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fesetexcept.c b/sysdeps/m68k/fpu/fesetexcept.c
index df9b9b5..3be40a9 100644
--- a/sysdeps/m68k/fpu/fesetexcept.c
+++ b/sysdeps/m68k/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. M68K version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fesetmode.c b/sysdeps/m68k/fpu/fesetmode.c
index 6359ff6..4040e8e 100644
--- a/sysdeps/m68k/fpu/fesetmode.c
+++ b/sysdeps/m68k/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. M68K version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fesetround.c b/sysdeps/m68k/fpu/fesetround.c
index 88bd463..f07b6d3 100644
--- a/sysdeps/m68k/fpu/fesetround.c
+++ b/sysdeps/m68k/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/feupdateenv.c b/sysdeps/m68k/fpu/feupdateenv.c
index 78e8ea3..05ff332 100644
--- a/sysdeps/m68k/fpu/feupdateenv.c
+++ b/sysdeps/m68k/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fgetexcptflg.c b/sysdeps/m68k/fpu/fgetexcptflg.c
index 5661bd5..200b0a2 100644
--- a/sysdeps/m68k/fpu/fgetexcptflg.c
+++ b/sysdeps/m68k/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/fsetexcptflg.c b/sysdeps/m68k/fpu/fsetexcptflg.c
index df9f8be..732f6e2 100644
--- a/sysdeps/m68k/fpu/fsetexcptflg.c
+++ b/sysdeps/m68k/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu/ftestexcept.c b/sysdeps/m68k/fpu/ftestexcept.c
index d37e62a..cbe0205 100644
--- a/sysdeps/m68k/fpu/ftestexcept.c
+++ b/sysdeps/m68k/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/fpu_control.h b/sysdeps/m68k/fpu_control.h
index 2fa7921..b2f4ba2 100644
--- a/sysdeps/m68k/fpu_control.h
+++ b/sysdeps/m68k/fpu_control.h
@@ -1,5 +1,5 @@
/* 68k FPU control word definitions.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/gccframe.h b/sysdeps/m68k/gccframe.h
index f76486f..99f6d4b 100644
--- a/sysdeps/m68k/gccframe.h
+++ b/sysdeps/m68k/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. m68k version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/jmpbuf-unwind.h b/sysdeps/m68k/jmpbuf-unwind.h
index 935d132..1d0d970 100644
--- a/sysdeps/m68k/jmpbuf-unwind.h
+++ b/sysdeps/m68k/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. m68k version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/ldsodefs.h b/sysdeps/m68k/ldsodefs.h
index a604b03..e75901a 100644
--- a/sysdeps/m68k/ldsodefs.h
+++ b/sysdeps/m68k/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/libc-tls.c b/sysdeps/m68k/libc-tls.c
index 10f5618..5d83e27 100644
--- a/sysdeps/m68k/libc-tls.c
+++ b/sysdeps/m68k/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. m68k version.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,5 +28,5 @@ void *
__tls_get_addr (tls_index *ti)
{
dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
+ return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
}
diff --git a/sysdeps/m68k/m680x0/add_n.S b/sysdeps/m68k/m680x0/add_n.S
index 00e82e0..0eef29b 100644
--- a/sysdeps/m68k/m680x0/add_n.S
+++ b/sysdeps/m68k/m680x0/add_n.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
-Copyright (C) 1992-2024 Free Software Foundation, Inc.
+Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/bits/flt-eval-method.h b/sysdeps/m68k/m680x0/bits/flt-eval-method.h
index 41992ca..823e8e5 100644
--- a/sysdeps/m68k/m680x0/bits/flt-eval-method.h
+++ b/sysdeps/m68k/m680x0/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
/* Define __GLIBC_FLT_EVAL_METHOD. M68K version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/bits/fp-logb.h b/sysdeps/m68k/m680x0/bits/fp-logb.h
index 2e3973b..5e87a05 100644
--- a/sysdeps/m68k/m680x0/bits/fp-logb.h
+++ b/sysdeps/m68k/m680x0/bits/fp-logb.h
@@ -1,5 +1,5 @@
/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. M68K version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_acos.c b/sysdeps/m68k/m680x0/fpu/e_acos.c
index 6c4ca05..862bc2d 100644
--- a/sysdeps/m68k/m680x0/fpu/e_acos.c
+++ b/sysdeps/m68k/m680x0/fpu/e_acos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_atan2.c b/sysdeps/m68k/m680x0/fpu/e_atan2.c
index 78cfbc1..19211c4 100644
--- a/sysdeps/m68k/m680x0/fpu/e_atan2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atan2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c
index 940c078..422ab72 100644
--- a/sysdeps/m68k/m680x0/fpu/e_fmod.c
+++ b/sysdeps/m68k/m680x0/fpu/e_fmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_ilogb.c b/sysdeps/m68k/m680x0/fpu/e_ilogb.c
index 8fee283..32a408e 100644
--- a/sysdeps/m68k/m680x0/fpu/e_ilogb.c
+++ b/sysdeps/m68k/m680x0/fpu/e_ilogb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_pow.c b/sysdeps/m68k/m680x0/fpu/e_pow.c
index 2549fed..7af07d7 100644
--- a/sysdeps/m68k/m680x0/fpu/e_pow.c
+++ b/sysdeps/m68k/m680x0/fpu/e_pow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/e_scalb.c b/sysdeps/m68k/m680x0/fpu/e_scalb.c
index d8dbcf2..7900f2c 100644
--- a/sysdeps/m68k/m680x0/fpu/e_scalb.c
+++ b/sysdeps/m68k/m680x0/fpu/e_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
index f300d83..fc77562 100644
--- a/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+++ b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/libm-test-ulps b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
deleted file mode 100644
index 6eacfb6..0000000
--- a/sysdeps/m68k/m680x0/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1289 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh_downward":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "acosh_towardzero":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "acosh_upward":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "asin":
-double: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asinh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "atan2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atanh":
-double: 1
-
-Function: "atanh_downward":
-double: 1
-float: 1
-
-Function: "atanh_upward":
-double: 1
-float: 1
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Real part of "cacos_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 4
-float: 5
-ldouble: 4
-
-Function: Real part of "cacosh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "cacosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "carg":
-float: 1
-ldouble: 1
-
-Function: "carg_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "carg_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "carg_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Real part of "casin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Real part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 2
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 2
-ldouble: 2
-
-Function: Real part of "casinh_upward":
-double: 4
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "casinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_upward":
-double: 2
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cbrt":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-float: 1
-
-Function: Imaginary part of "ccosh":
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cexp_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Real part of "cexp_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cexp_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 2
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 6
-float: 4
-ldouble: 7
-
-Function: Imaginary part of "clog10_downward":
-double: 1
-float: 3
-ldouble: 4
-
-Function: Real part of "clog10_towardzero":
-double: 6
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "clog10_towardzero":
-double: 1
-float: 3
-ldouble: 4
-
-Function: Real part of "clog10_upward":
-double: 7
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "clog10_upward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 7
-float: 5
-ldouble: 8
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 7
-float: 5
-ldouble: 9
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 8
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 6
-
-Function: "cos_downward":
-float: 5
-
-Function: "cos_towardzero":
-float: 5
-
-Function: "cos_upward":
-float: 5
-
-Function: "cosh":
-double: 1
-
-Function: "cosh_upward":
-double: 1
-float: 1
-
-Function: Real part of "cpow":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "cpow":
-float: 5
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 7
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-float: 1
-
-Function: Real part of "csin_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csin_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csin_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 1
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 1
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "csqrt_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ctan_downward":
-double: 9
-float: 2
-ldouble: 2
-
-Function: Real part of "ctan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ctan_towardzero":
-double: 9
-float: 2
-ldouble: 4
-
-Function: Real part of "ctan_upward":
-double: 1
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 9
-float: 2
-ldouble: 7
-
-Function: Real part of "ctanh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ctanh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ctanh_downward":
-double: 9
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ctanh_towardzero":
-double: 9
-float: 2
-ldouble: 4
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "ctanh_upward":
-double: 9
-float: 2
-ldouble: 7
-
-Function: Imaginary part of "ctanh_upward":
-double: 1
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erfc":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "erfc_downward":
-double: 1
-float: 4
-ldouble: 4
-
-Function: "erfc_towardzero":
-double: 1
-float: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: "exp10m1":
-double: 1
-float: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "exp2_downward":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp2m1":
-double: 1
-float: 1
-
-Function: "exp2m1_downward":
-double: 2
-float: 1
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-
-Function: "expm1":
-double: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 1
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 3
-float: 7
-ldouble: 2
-
-Function: "gamma_downward":
-double: 3
-float: 7
-ldouble: 3
-
-Function: "gamma_towardzero":
-double: 4
-float: 6
-ldouble: 3
-
-Function: "gamma_upward":
-double: 4
-float: 6
-ldouble: 2
-
-Function: "hypot":
-double: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 8
-float: 8
-ldouble: 2
-
-Function: "j0_downward":
-double: 7
-float: 8
-ldouble: 4
-
-Function: "j0_towardzero":
-double: 1
-float: 8
-ldouble: 5
-
-Function: "j0_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "j1":
-double: 3
-float: 7
-ldouble: 1
-
-Function: "j1_downward":
-double: 3
-float: 7
-ldouble: 5
-
-Function: "j1_towardzero":
-double: 9
-float: 7
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 6
-ldouble: 3
-
-Function: "jn":
-double: 2
-float: 5
-ldouble: 4
-
-Function: "jn_downward":
-double: 2
-float: 6
-ldouble: 5
-
-Function: "jn_towardzero":
-double: 2
-float: 6
-ldouble: 5
-
-Function: "jn_upward":
-double: 2
-float: 5
-ldouble: 5
-
-Function: "lgamma":
-double: 3
-float: 7
-ldouble: 2
-
-Function: "lgamma_downward":
-double: 3
-float: 7
-ldouble: 3
-
-Function: "lgamma_towardzero":
-double: 4
-float: 6
-ldouble: 3
-
-Function: "lgamma_upward":
-double: 4
-float: 6
-ldouble: 2
-
-Function: "log10_downward":
-double: 1
-float: 1
-
-Function: "log10_towardzero":
-double: 1
-float: 1
-
-Function: "log10p1":
-double: 1
-float: 2
-
-Function: "log10p1_downward":
-double: 1
-float: 1
-
-Function: "log10p1_towardzero":
-double: 1
-float: 1
-
-Function: "log10p1_upward":
-double: 1
-float: 1
-
-Function: "log1p":
-double: 1
-
-Function: "log1p_downward":
-double: 1
-float: 1
-
-Function: "log1p_towardzero":
-double: 1
-float: 1
-
-Function: "log1p_upward":
-double: 1
-float: 1
-
-Function: "log2":
-double: 1
-
-Function: "log2p1":
-double: 1
-float: 2
-
-Function: "log2p1_downward":
-double: 1
-float: 2
-
-Function: "log2p1_towardzero":
-double: 1
-float: 2
-
-Function: "log2p1_upward":
-double: 1
-float: 2
-
-Function: "logp1":
-double: 1
-
-Function: "logp1_downward":
-double: 1
-float: 1
-
-Function: "logp1_towardzero":
-double: 1
-float: 1
-
-Function: "logp1_upward":
-double: 1
-float: 1
-
-Function: "pow":
-double: 1
-float: 7
-ldouble: 9
-
-Function: "pow_downward":
-double: 1
-float: 9
-ldouble: 9
-
-Function: "pow_towardzero":
-double: 1
-float: 4
-ldouble: 4
-
-Function: "pow_upward":
-double: 1
-float: 7
-ldouble: 8
-
-Function: "sin":
-double: 1
-
-Function: "sin_downward":
-double: 1
-float: 1
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 1
-
-Function: "sinh_downward":
-double: 1
-float: 1
-
-Function: "sinh_upward":
-double: 1
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 1
-
-Function: "tanh_downward":
-double: 1
-float: 1
-
-Function: "tanh_towardzero":
-double: 1
-float: 1
-
-Function: "tanh_upward":
-double: 1
-float: 1
-
-Function: "tgamma":
-double: 3
-float: 9
-ldouble: 9
-
-Function: "tgamma_downward":
-double: 3
-float: 9
-ldouble: 9
-
-Function: "tgamma_towardzero":
-double: 3
-float: 9
-ldouble: 9
-
-Function: "tgamma_upward":
-double: 2
-float: 9
-ldouble: 9
-
-Function: "y0":
-double: 1
-float: 4
-ldouble: 1
-
-Function: "y0_downward":
-double: 1
-float: 4
-ldouble: 6
-
-Function: "y0_towardzero":
-double: 1
-float: 4
-ldouble: 5
-
-Function: "y0_upward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: "y1":
-double: 1
-float: 4
-ldouble: 2
-
-Function: "y1_downward":
-double: 4
-float: 6
-ldouble: 6
-
-Function: "y1_towardzero":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "y1_upward":
-double: 2
-float: 4
-ldouble: 7
-
-Function: "yn":
-double: 2
-float: 3
-ldouble: 4
-
-Function: "yn_downward":
-double: 2
-float: 3
-ldouble: 6
-
-Function: "yn_towardzero":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_upward":
-double: 3
-float: 4
-ldouble: 4
-
-# end of automatic generation
diff --git a/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name b/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name
deleted file mode 100644
index 35c8a9e..0000000
--- a/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-M68k
diff --git a/sysdeps/m68k/m680x0/fpu/math-barriers.h b/sysdeps/m68k/m680x0/fpu/math-barriers.h
index 8a697c7..24e00ca 100644
--- a/sysdeps/m68k/m680x0/fpu/math-barriers.h
+++ b/sysdeps/m68k/m680x0/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. M68k version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/math_err.c b/sysdeps/m68k/m680x0/fpu/math_err.c
deleted file mode 100644
index 1cc8931..0000000
--- a/sysdeps/m68k/m680x0/fpu/math_err.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/math_errf.c b/sysdeps/m68k/m680x0/fpu/math_errf.c
deleted file mode 100644
index 1cc8931..0000000
--- a/sysdeps/m68k/m680x0/fpu/math_errf.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/mathimpl.h b/sysdeps/m68k/m680x0/fpu/mathimpl.h
index 491bb79..dfe457d 100644
--- a/sysdeps/m68k/m680x0/fpu/mathimpl.h
+++ b/sysdeps/m68k/m680x0/fpu/mathimpl.h
@@ -1,6 +1,6 @@
/* Definitions of libc internal inline math functions implemented
by the m68881/2.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_atan_template.c b/sysdeps/m68k/m680x0/fpu/s_atan_template.c
index 2be15a3..a37ac93 100644
--- a/sysdeps/m68k/m680x0/fpu/s_atan_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_atan_template.c
@@ -1,5 +1,5 @@
/* Implement atan for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c b/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
index 3fb864d..e353185 100644
--- a/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
@@ -1,5 +1,5 @@
/* Complex cosine hyperbole function. m68k fpu version
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_ceil_template.c b/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
index f7c0c0d..0e20702 100644
--- a/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
@@ -1,5 +1,5 @@
/* Implement ceil for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_cexp_template.c b/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
index 5002104..ce5cedb 100644
--- a/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
@@ -1,5 +1,5 @@
/* Complex exponential function. m68k fpu version
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_cos_template.c b/sysdeps/m68k/m680x0/fpu/s_cos_template.c
index 3cc84f4..591af8c 100644
--- a/sysdeps/m68k/m680x0/fpu/s_cos_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cos_template.c
@@ -1,5 +1,5 @@
/* Implement cos for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_csin_template.c b/sysdeps/m68k/m680x0/fpu/s_csin_template.c
index 06fbb7e..9890aee 100644
--- a/sysdeps/m68k/m680x0/fpu/s_csin_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csin_template.c
@@ -1,5 +1,5 @@
/* Complex sine function. m68k fpu version
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_csinh_template.c b/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
index a3bf811..c16b2d4 100644
--- a/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
@@ -1,5 +1,5 @@
/* Complex sine hyperbole function. m68k fpu version
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_expm1.c b/sysdeps/m68k/m680x0/fpu/s_expm1.c
index 19645a2..b983bbe 100644
--- a/sysdeps/m68k/m680x0/fpu/s_expm1.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_expm1_template.c b/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
index 8a51aa1..61e083f 100644
--- a/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
@@ -1,5 +1,5 @@
/* Implement expm1 for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_fabs_template.c b/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
index 49997ba..2469691 100644
--- a/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
@@ -1,5 +1,5 @@
/* Implement fabs for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_floor_template.c b/sysdeps/m68k/m680x0/fpu/s_floor_template.c
index 33c24eb..5bb917f 100644
--- a/sysdeps/m68k/m680x0/fpu/s_floor_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_floor_template.c
@@ -1,5 +1,5 @@
/* Implement floor for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
index 74c0583..e8cc4ab 100644
--- a/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument. m68k version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_frexp_template.c b/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
index 59f2b19..87c5500 100644
--- a/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
@@ -1,5 +1,5 @@
/* Implement frexp for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_frexpl.c b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
index 7f3a452..d0318e6 100644
--- a/sysdeps/m68k/m680x0/fpu/s_frexpl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_isinf.c b/sysdeps/m68k/m680x0/fpu/s_isinf.c
index eab7dc1..5941152 100644
--- a/sysdeps/m68k/m680x0/fpu/s_isinf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isinf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrint.c b/sysdeps/m68k/m680x0/fpu/s_llrint.c
index 1370116..1ddce83 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrintf.c b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
index 4088049..e941917 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrintl.c b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
index fda7d12..5d6b48b 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_log1p.c b/sysdeps/m68k/m680x0/fpu/s_log1p.c
index 55ec48a..a33c68b 100644
--- a/sysdeps/m68k/m680x0/fpu/s_log1p.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1p.c
@@ -1,5 +1,5 @@
/* Implement logp1 for m68k.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_lrint_template.c b/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
index 27c2e12..1d8d1bf 100644
--- a/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_modf_template.c b/sysdeps/m68k/m680x0/fpu/s_modf_template.c
index 87cf186..b7e5247 100644
--- a/sysdeps/m68k/m680x0/fpu/s_modf_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_modf_template.c
@@ -1,5 +1,5 @@
/* Implement modf for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c b/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
index 451a5dd..8679e10 100644
--- a/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
@@ -1,5 +1,5 @@
/* Implement nearbyint for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_remquo_template.c b/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
index 9af471e..5f7c1da 100644
--- a/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient. m68k fpu version
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_rint_template.c b/sysdeps/m68k/m680x0/fpu/s_rint_template.c
index 680b111..3aed743 100644
--- a/sysdeps/m68k/m680x0/fpu/s_rint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rint_template.c
@@ -1,5 +1,5 @@
/* Implement rint for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_scalbn.c b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
index 72bdab2..ddcd7d5 100644
--- a/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_significand.c b/sysdeps/m68k/m680x0/fpu/s_significand.c
index 38875e2..06b7790 100644
--- a/sysdeps/m68k/m680x0/fpu/s_significand.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significand.c
@@ -1,5 +1,5 @@
/* Implement significand for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_sin_template.c b/sysdeps/m68k/m680x0/fpu/s_sin_template.c
index 5c8e951..a6f2442 100644
--- a/sysdeps/m68k/m680x0/fpu/s_sin_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sin_template.c
@@ -1,5 +1,5 @@
/* Implement sin for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_sincos_template.c b/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
index 3805510..5bbe1eb 100644
--- a/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
@@ -1,5 +1,5 @@
/* Implement sincos for m68k.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_tan_template.c b/sysdeps/m68k/m680x0/fpu/s_tan_template.c
index 622ffd4..d2174c7 100644
--- a/sysdeps/m68k/m680x0/fpu/s_tan_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tan_template.c
@@ -1,5 +1,5 @@
/* Implement tan for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_tanh_template.c b/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
index f8aa212..1c58a07 100644
--- a/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
@@ -1,5 +1,5 @@
/* Implement tanh for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/fpu/s_trunc_template.c b/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
index 01dcaf8..0c646bd 100644
--- a/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
@@ -1,5 +1,5 @@
/* Implement trunc for m68k.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nios2/bits/wordsize.h b/sysdeps/m68k/m680x0/fpu/w_log1pf.c
index 6ecbfe7..877fa4a 100644
--- a/sysdeps/nios2/bits/wordsize.h
+++ b/sysdeps/m68k/m680x0/fpu/w_log1pf.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Wrapper for __log1p that handles setting errno.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +16,5 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define __WORDSIZE 32
-#define __WORDSIZE_TIME64_COMPAT32 1
-#define __WORDSIZE32_SIZE_ULONG 0
-#define __WORDSIZE32_PTRDIFF_LONG 0
+#include <math-type-macros-float.h>
+#include <w_log1p_template.c>
diff --git a/sysdeps/m68k/m680x0/lshift.S b/sysdeps/m68k/m680x0/lshift.S
index 124f5ff..33b5ada 100644
--- a/sysdeps/m68k/m680x0/lshift.S
+++ b/sysdeps/m68k/m680x0/lshift.S
@@ -1,6 +1,6 @@
/* mc68020 __mpn_lshift -- Shift left a low-level natural-number integer.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/m68020/addmul_1.S b/sysdeps/m68k/m680x0/m68020/addmul_1.S
index 314804f..2d23127 100644
--- a/sysdeps/m68k/m680x0/m68020/addmul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/addmul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
-Copyright (C) 1992-2024 Free Software Foundation, Inc.
+Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/m68020/atomic-machine.h b/sysdeps/m68k/m680x0/m68020/atomic-machine.h
index a992075..9d25fbc 100644
--- a/sysdeps/m68k/m680x0/m68020/atomic-machine.h
+++ b/sysdeps/m68k/m680x0/m68020/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/m68020/mul_1.S b/sysdeps/m68k/m680x0/m68020/mul_1.S
index e01efdb..9fa9ffa 100644
--- a/sysdeps/m68k/m680x0/m68020/mul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/mul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
-Copyright (C) 1992-2024 Free Software Foundation, Inc.
+Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/m68020/submul_1.S b/sysdeps/m68k/m680x0/m68020/submul_1.S
index 7baf4af..29def33 100644
--- a/sysdeps/m68k/m680x0/m68020/submul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/submul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
-Copyright (C) 1992-2024 Free Software Foundation, Inc.
+Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/rshift.S b/sysdeps/m68k/m680x0/rshift.S
index 236317f..af6152b 100644
--- a/sysdeps/m68k/m680x0/rshift.S
+++ b/sysdeps/m68k/m680x0/rshift.S
@@ -1,6 +1,6 @@
/* mc68020 __mpn_rshift -- Shift right a low-level natural-number integer.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/sub_n.S b/sysdeps/m68k/m680x0/sub_n.S
index 007cd5f..57befd0 100644
--- a/sysdeps/m68k/m680x0/sub_n.S
+++ b/sysdeps/m68k/m680x0/sub_n.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
store difference in a third limb vector.
-Copyright (C) 1992-2024 Free Software Foundation, Inc.
+Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/m68k/m680x0/sysdep.h b/sysdeps/m68k/m680x0/sysdep.h
index 3c521ae..7faceb3 100644
--- a/sysdeps/m68k/m680x0/sysdep.h
+++ b/sysdeps/m68k/m680x0/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for m680x0.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/unwind-arch.h b/sysdeps/m68k/m680x0/unwind-arch.h
index e4d9fcd..6b9841f 100644
--- a/sysdeps/m68k/m680x0/unwind-arch.h
+++ b/sysdeps/m68k/m680x0/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. Baseline m68k customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/m680x0/w_ilogb.c b/sysdeps/m68k/m680x0/w_ilogb.c
new file mode 100644
index 0000000..9c26217
--- /dev/null
+++ b/sysdeps/m68k/m680x0/w_ilogb.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-double.h>
+#include <w_ilogb_template.c>
diff --git a/sysdeps/m68k/m680x0/w_ilogbf.c b/sysdeps/m68k/m680x0/w_ilogbf.c
new file mode 100644
index 0000000..047ad4b
--- /dev/null
+++ b/sysdeps/m68k/m680x0/w_ilogbf.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-float.h>
+#include <w_ilogb_template.c>
diff --git a/sysdeps/m68k/m680x0/w_llogb.c b/sysdeps/m68k/m680x0/w_llogb.c
new file mode 100644
index 0000000..5e8891a
--- /dev/null
+++ b/sysdeps/m68k/m680x0/w_llogb.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-double.h>
+#include <w_llogb_template.c>
diff --git a/sysdeps/m68k/m680x0/w_llogbf.c b/sysdeps/m68k/m680x0/w_llogbf.c
new file mode 100644
index 0000000..edb7e9a
--- /dev/null
+++ b/sysdeps/m68k/m680x0/w_llogbf.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-float.h>
+#include <w_llogb_template.c>
diff --git a/sysdeps/m68k/memchr.S b/sysdeps/m68k/memchr.S
index 525418f..ef4a1a1 100644
--- a/sysdeps/m68k/memchr.S
+++ b/sysdeps/m68k/memchr.S
@@ -1,7 +1,7 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in the
first N bytes of STR.
For Motorola 68000.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/memcopy.h b/sysdeps/m68k/memcopy.h
index bc0ba17..b3aca56 100644
--- a/sysdeps/m68k/memcopy.h
+++ b/sysdeps/m68k/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Motorola 68020 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h b/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
index f286b76..56beb0e 100644
--- a/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/nptl/bits/semaphore.h b/sysdeps/m68k/nptl/bits/semaphore.h
index d2fe196..d2f9b89 100644
--- a/sysdeps/m68k/nptl/bits/semaphore.h
+++ b/sysdeps/m68k/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/nptl/pthreaddef.h b/sysdeps/m68k/nptl/pthreaddef.h
index 5a9b738..e660c08 100644
--- a/sysdeps/m68k/nptl/pthreaddef.h
+++ b/sysdeps/m68k/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h
index eeb040b..cdf5582 100644
--- a/sysdeps/m68k/nptl/tls.h
+++ b/sysdeps/m68k/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/m68k version.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/rawmemchr.S b/sysdeps/m68k/rawmemchr.S
index 3be2ea6..f5fbbac 100644
--- a/sysdeps/m68k/rawmemchr.S
+++ b/sysdeps/m68k/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Motorola 68000.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c
index cbaf8f4..7422776 100644
--- a/sysdeps/m68k/setjmp.c
+++ b/sysdeps/m68k/setjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/sotruss-lib.c b/sysdeps/m68k/sotruss-lib.c
index 3fe5ead..27e740c 100644
--- a/sysdeps/m68k/sotruss-lib.c
+++ b/sysdeps/m68k/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for m68k.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/stackinfo.h b/sysdeps/m68k/stackinfo.h
index 7fdb7c0..7a757df 100644
--- a/sysdeps/m68k/stackinfo.h
+++ b/sysdeps/m68k/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/start.S b/sysdeps/m68k/start.S
index d1af04a..9b2ea12 100644
--- a/sysdeps/m68k/start.S
+++ b/sysdeps/m68k/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF m68k ABI.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/strchr.S b/sysdeps/m68k/strchr.S
index ccd0d6c..d7e3629 100644
--- a/sysdeps/m68k/strchr.S
+++ b/sysdeps/m68k/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Motorola 68000.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/strchrnul.S b/sysdeps/m68k/strchrnul.S
index ccfaa34..8f6eccb 100644
--- a/sysdeps/m68k/strchrnul.S
+++ b/sysdeps/m68k/strchrnul.S
@@ -1,7 +1,7 @@
/* strchrnul (str, ch) -- Return pointer to first occurrence of CH in STR
or the final NUL byte.
For Motorola 68000.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/symbol-hacks.h b/sysdeps/m68k/symbol-hacks.h
index e8a2cc6..d9c1f96 100644
--- a/sysdeps/m68k/symbol-hacks.h
+++ b/sysdeps/m68k/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. m68k version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h
index da35b48..f6a079b 100644
--- a/sysdeps/m68k/sys/ucontext.h
+++ b/sysdeps/m68k/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/sysdep.h b/sysdeps/m68k/sysdep.h
index f0ecc8f..26448d2 100644
--- a/sysdeps/m68k/sysdep.h
+++ b/sysdeps/m68k/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for m68k.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_copysignf.c b/sysdeps/m68k/thread_pointer.h
index f34d37b..637475c 100644
--- a/sysdeps/riscv/rvf/s_copysignf.c
+++ b/sysdeps/m68k/thread_pointer.h
@@ -1,5 +1,5 @@
-/* copysignf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* __thread_pointer definition. m68k version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,14 +16,15 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
-float
-__copysignf (float x, float y)
+extern void * __m68k_read_tp (void);
+
+static inline void *
+__thread_pointer (void)
{
- asm ("fsgnj.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
+ return __m68k_read_tp ();
}
-libm_alias_float (__copysign, copysign)
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/m68k/tst-audit.h b/sysdeps/m68k/tst-audit.h
index 8051bb9..fbbad93 100644
--- a/sysdeps/m68k/tst-audit.h
+++ b/sysdeps/m68k/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. m68k version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/m68k/unwind-arch.h b/sysdeps/m68k/unwind-arch.h
index e00ccf2..821d978 100644
--- a/sysdeps/m68k/unwind-arch.h
+++ b/sysdeps/m68k/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. m68k customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/wcpcpy_chk.c b/sysdeps/m68k/wcpcpy_chk.c
index 3736938..c404c8b 100644
--- a/sysdeps/m68k/wcpcpy_chk.c
+++ b/sysdeps/m68k/wcpcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/m68k/wordcopy.c b/sysdeps/m68k/wordcopy.c
index c521513..e7646b3 100644
--- a/sysdeps/m68k/wordcopy.c
+++ b/sysdeps/m68k/wordcopy.c
@@ -1,5 +1,5 @@
/* Definitions for memory copy functions. Motorola 680X0 version
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/Makefile b/sysdeps/mach/Makefile
index 7ee71af..5cc64ec 100644
--- a/sysdeps/mach/Makefile
+++ b/sysdeps/mach/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/_strerror.c b/sysdeps/mach/_strerror.c
index c732434..59b18a3 100644
--- a/sysdeps/mach/_strerror.c
+++ b/sysdeps/mach/_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/adjtime.c b/sysdeps/mach/adjtime.c
index 84096e7..fb3a40e 100644
--- a/sysdeps/mach/adjtime.c
+++ b/sysdeps/mach/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c
index 6fffad3..8d0143c 100644
--- a/sysdeps/mach/clock_gettime.c
+++ b/sysdeps/mach/clock_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <mach.h>
#include <assert.h>
#include <shlib-compat.h>
+#include <mach/mig_errors.h>
/* Get the current time of day, putting it into *TS.
Returns 0 on success, -1 on errors. */
@@ -31,8 +32,51 @@ __clock_gettime (clockid_t clock_id, struct timespec *ts)
switch (clock_id) {
+ case CLOCK_MONOTONIC:
+ /* If HAVE_HOST_GET_UPTIME64 is not defined or not available,
+ CLOCK_MONOTONIC will be equivalent to CLOCK_REALTIME. */
+#ifdef HAVE_HOST_GET_UPTIME64
+ {
+ time_value64_t tv;
+ err = __host_get_uptime64 (__mach_host_self (), &tv);
+
+ if (err != MIG_BAD_ID)
+ {
+ if (err)
+ {
+ __set_errno (err);
+ return -1;
+ }
+
+ TIME_VALUE64_TO_TIMESPEC (&tv, ts);
+ return 0;
+ }
+ }
+#endif
+ /* FALLTHROUGH */
+
case CLOCK_REALTIME:
{
+#ifdef HAVE_HOST_GET_TIME64
+ time_value64_t tv_64;
+ err = __host_get_time64 (__mach_host_self (), &tv_64);
+
+ /* If err is MIG_BAD_ID, it means an old gnumach which does not
+ support __host_get_time64 is running against the new gnumach
+ headers which has the signature of __host_get_time64. In that
+ case, we fall back to __host_get_time. */
+ if (err != MIG_BAD_ID)
+ {
+ if (err)
+ {
+ __set_errno (err);
+ return -1;
+ }
+
+ TIME_VALUE64_TO_TIMESPEC (&tv_64, ts);
+ return 0;
+ }
+#endif
/* __host_get_time can only fail if passed an invalid host_t.
__mach_host_self could theoretically fail (producing an
invalid host_t) due to resource exhaustion, but we assume
diff --git a/sysdeps/mach/clock_nanosleep.c b/sysdeps/mach/clock_nanosleep.c
index 6c6b4d8..c9373ed 100644
--- a/sysdeps/mach/clock_nanosleep.c
+++ b/sysdeps/mach/clock_nanosleep.c
@@ -1,5 +1,5 @@
/* clock_nanosleep - high-resolution sleep with specifiable clock.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
#include <sysdep-cancel.h>
static int
-nanosleep_call (const struct timespec *req, struct timespec *rem)
+nanosleep_call (clockid_t clock_id, const struct timespec *req, struct timespec *rem)
{
mach_port_t recv;
struct timespec before;
@@ -38,7 +38,7 @@ nanosleep_call (const struct timespec *req, struct timespec *rem)
recv = __mach_reply_port ();
if (rem != NULL)
- __clock_gettime (CLOCK_REALTIME, &before);
+ __clock_gettime (clock_id, &before);
int cancel_oldtype = LIBC_CANCEL_ASYNC();
err = __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
@@ -52,7 +52,7 @@ nanosleep_call (const struct timespec *req, struct timespec *rem)
if (rem != NULL)
{
struct timespec after, elapsed;
- __clock_gettime (CLOCK_REALTIME, &after);
+ __clock_gettime (clock_id, &after);
timespec_sub (&elapsed, &after, &before);
timespec_sub (rem, req, &elapsed);
}
@@ -67,7 +67,8 @@ int
__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
struct timespec *rem)
{
- if (clock_id != CLOCK_REALTIME
+ if ((clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC)
+ || req->tv_sec < 0
|| !valid_nanoseconds (req->tv_nsec)
|| (flags != 0 && flags != TIMER_ABSTIME))
return EINVAL;
@@ -104,7 +105,7 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
rem = NULL;
}
- return nanosleep_call (req, rem);
+ return nanosleep_call (clock_id, req, rem);
}
libc_hidden_def (__clock_nanosleep)
versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17);
diff --git a/sysdeps/mach/configure b/sysdeps/mach/configure
index cd21b26..311b2dd 100644
--- a/sysdeps/mach/configure
+++ b/sysdeps/mach/configure
@@ -279,7 +279,8 @@ mach_interface_list=
for ifc in mach mach4 gnumach \
clock clock_priv host_priv host_security ledger lock_set \
processor processor_set task task_notify thread_act vm_map \
- memory_object memory_object_default i386/mach_i386 x86_64/mach_i386 \
+ memory_object memory_object_default default_pager \
+ i386/mach_i386 x86_64/mach_i386 \
; do
as_ac_Header=`printf "%s\n" "ac_cv_header_mach/${ifc}.defs" | sed "$as_sed_sh"`
ac_fn_c_check_header_preproc "$LINENO" "mach/${ifc}.defs" "$as_ac_Header"
@@ -460,6 +461,66 @@ if test $libc_cv_mach_rpc_host_page_size = yes; then
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for host_get_uptime64 in mach_host.defs" >&5
+printf %s "checking for host_get_uptime64 in mach_host.defs... " >&6; }
+if test ${libc_cv_mach_rpc_host_get_uptime64+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <mach/mach_host.defs>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP_TRADITIONAL "host_get_uptime64" >/dev/null 2>&1
+then :
+ libc_cv_mach_rpc_host_get_uptime64=yes
+else case e in #(
+ e) libc_cv_mach_rpc_host_get_uptime64=no ;;
+esac
+fi
+rm -rf conftest*
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mach_rpc_host_get_uptime64" >&5
+printf "%s\n" "$libc_cv_mach_rpc_host_get_uptime64" >&6; }
+if test $libc_cv_mach_rpc_host_get_uptime64 = yes; then
+ printf "%s\n" "#define HAVE_HOST_GET_UPTIME64 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for host_get_time64 in mach_host.defs" >&5
+printf %s "checking for host_get_time64 in mach_host.defs... " >&6; }
+if test ${libc_cv_mach_rpc_host_get_time64+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <mach/mach_host.defs>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP_TRADITIONAL "host_get_time64" >/dev/null 2>&1
+then :
+ libc_cv_mach_rpc_host_get_time64=yes
+else case e in #(
+ e) libc_cv_mach_rpc_host_get_time64=no ;;
+esac
+fi
+rm -rf conftest*
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mach_rpc_host_get_time64" >&5
+printf "%s\n" "$libc_cv_mach_rpc_host_get_time64" >&6; }
+if test $libc_cv_mach_rpc_host_get_time64 = yes; then
+ printf "%s\n" "#define HAVE_HOST_GET_TIME64 1" >>confdefs.h
+
+fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thread_set_name in gnumach.defs" >&5
printf %s "checking for thread_set_name in gnumach.defs... " >&6; }
if test ${libc_cv_mach_rpc_thread_set_name+y}
diff --git a/sysdeps/mach/configure.ac b/sysdeps/mach/configure.ac
index 648035e..3a6f244 100644
--- a/sysdeps/mach/configure.ac
+++ b/sysdeps/mach/configure.ac
@@ -63,7 +63,8 @@ mach_interface_list=
for ifc in mach mach4 gnumach \
clock clock_priv host_priv host_security ledger lock_set \
processor processor_set task task_notify thread_act vm_map \
- memory_object memory_object_default i386/mach_i386 x86_64/mach_i386 \
+ memory_object memory_object_default default_pager \
+ i386/mach_i386 x86_64/mach_i386 \
; do
AC_CHECK_HEADER(mach/${ifc}.defs, [dnl
mach_interface_list="$mach_interface_list $ifc"],, -)
@@ -91,6 +92,10 @@ fi
mach_RPC_CHECK(mach_host.defs, host_page_size,
HAVE_HOST_PAGE_SIZE)
+mach_RPC_CHECK(mach_host.defs, host_get_uptime64,
+ HAVE_HOST_GET_UPTIME64)
+mach_RPC_CHECK(mach_host.defs, host_get_time64,
+ HAVE_HOST_GET_TIME64)
mach_RPC_CHECK(gnumach.defs, thread_set_name,
HAVE_MACH_THREAD_SET_NAME)
mach_RPC_CHECK(gnumach.defs, thread_get_name,
diff --git a/sysdeps/mach/getloadavg.c b/sysdeps/mach/getloadavg.c
index 49ea6a9..b08c2d1 100644
--- a/sysdeps/mach/getloadavg.c
+++ b/sysdeps/mach/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Mach version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/getpagesize.c b/sysdeps/mach/getpagesize.c
index 49d8fc1..5403020 100644
--- a/sysdeps/mach/getpagesize.c
+++ b/sysdeps/mach/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/getsysstats.c b/sysdeps/mach/getsysstats.c
index 80a91f8..35ed826 100644
--- a/sysdeps/mach/getsysstats.c
+++ b/sysdeps/mach/getsysstats.c
@@ -1,5 +1,5 @@
/* System dependent pieces of sysconf; Mach version
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/bits/spin-lock-inline.h b/sysdeps/mach/htl/bits/spin-lock-inline.h
index e110dde..12722ab 100644
--- a/sysdeps/mach/htl/bits/spin-lock-inline.h
+++ b/sysdeps/mach/htl/bits/spin-lock-inline.h
@@ -1,5 +1,5 @@
/* Definitions of user-visible names for spin locks.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h b/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
index 80b1b0d..48539e7 100644
--- a/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
+++ b/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
@@ -1,5 +1,5 @@
/* Definitions of user-visible names for spin locks.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-block.c b/sysdeps/mach/htl/pt-block.c
index 7eb2bf0..72dc66b 100644
--- a/sysdeps/mach/htl/pt-block.c
+++ b/sysdeps/mach/htl/pt-block.c
@@ -1,5 +1,5 @@
/* Block a thread. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -51,3 +51,4 @@ __pthread_block (struct __pthread *thread)
assert_perror (err);
RETURN(0);
}
+libc_hidden_def (__pthread_block)
diff --git a/sysdeps/mach/htl/pt-getname-np.c b/sysdeps/mach/htl/pt-getname-np.c
index 8943474..7b836b6 100644
--- a/sysdeps/mach/htl/pt-getname-np.c
+++ b/sysdeps/mach/htl/pt-getname-np.c
@@ -1,5 +1,5 @@
/* pthread_getname_np.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-setname-np.c b/sysdeps/mach/htl/pt-setname-np.c
index 2fd6673..58400c1 100644
--- a/sysdeps/mach/htl/pt-setname-np.c
+++ b/sysdeps/mach/htl/pt-setname-np.c
@@ -1,5 +1,5 @@
/* pthread_setname_np. Mach version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-spin.c b/sysdeps/mach/htl/pt-spin.c
index d746be1..ff7db55 100644
--- a/sysdeps/mach/htl/pt-spin.c
+++ b/sysdeps/mach/htl/pt-spin.c
@@ -1,5 +1,5 @@
/* Spin locks. Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-stack-alloc.c b/sysdeps/mach/htl/pt-stack-alloc.c
index 0597770..3e196f8 100644
--- a/sysdeps/mach/htl/pt-stack-alloc.c
+++ b/sysdeps/mach/htl/pt-stack-alloc.c
@@ -1,5 +1,5 @@
/* Allocate a new stack. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-thread-alloc.c b/sysdeps/mach/htl/pt-thread-alloc.c
index da351d7..3f840e4 100644
--- a/sysdeps/mach/htl/pt-thread-alloc.c
+++ b/sysdeps/mach/htl/pt-thread-alloc.c
@@ -1,5 +1,5 @@
/* Start thread. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-thread-start.c b/sysdeps/mach/htl/pt-thread-start.c
index c73ba6d..65bc8d4 100644
--- a/sysdeps/mach/htl/pt-thread-start.c
+++ b/sysdeps/mach/htl/pt-thread-start.c
@@ -1,5 +1,5 @@
/* Start thread. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-thread-terminate.c b/sysdeps/mach/htl/pt-thread-terminate.c
index f42fdde..58f265d 100644
--- a/sysdeps/mach/htl/pt-thread-terminate.c
+++ b/sysdeps/mach/htl/pt-thread-terminate.c
@@ -1,5 +1,5 @@
/* Deallocate the kernel thread resources. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/htl/pt-timedblock.c b/sysdeps/mach/htl/pt-timedblock.c
index da1d47e..fa0ff29 100644
--- a/sysdeps/mach/htl/pt-timedblock.c
+++ b/sysdeps/mach/htl/pt-timedblock.c
@@ -1,5 +1,5 @@
/* Block a thread with a timeout. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -69,3 +69,4 @@ __pthread_timedblock (struct __pthread *thread,
assert_perror (err);
return 0;
}
+libc_hidden_def (__pthread_timedblock)
diff --git a/sysdeps/mach/htl/pt-wakeup.c b/sysdeps/mach/htl/pt-wakeup.c
index c7c0c3b..41de076 100644
--- a/sysdeps/mach/htl/pt-wakeup.c
+++ b/sysdeps/mach/htl/pt-wakeup.c
@@ -1,5 +1,5 @@
/* Wakeup a thread. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -35,3 +35,4 @@ __pthread_wakeup (struct __pthread *thread)
0, MACH_PORT_NULL);
assert_perror (err);
}
+libc_hidden_def (__pthread_wakeup)
diff --git a/sysdeps/mach/htl/thrd_yield.c b/sysdeps/mach/htl/thrd_yield.c
index 8e8f623..b18cc4f 100644
--- a/sysdeps/mach/htl/thrd_yield.c
+++ b/sysdeps/mach/htl/thrd_yield.c
@@ -1,5 +1,5 @@
/* sched_yield -- yield the processor. Mach version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 698729a..32bba61 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -300,18 +300,49 @@ ifeq ($(subdir),elf)
check-execstack-xfail += ld.so libc.so libpthread.so
# We always create a thread for signals
test-xfail-tst-single_threaded-pthread-static = yes
+# Bug 25263
+test-xfail-tst-origin = yes
+
+CFLAGS-tst-execstack.c += -DDEFAULT_RWX_STACK=1
endif
# For bug 30166
# (missing RLIMIT_AS support)
+ifeq ($(subdir),htl)
+tests-unsupported += tst-basic7
+endif
+ifeq ($(subdir),libio)
+tests-unsupported += tst-asprintf-null
+endif
ifeq ($(subdir),malloc)
tests-unsupported += tst-malloc-thread-fail
tests-unsupported += tst-malloc-thread-fail-malloc-check
tests-unsupported += tst-malloc-thread-fail-mcheck
tests-unsupported += tst-malloc-thread-fail-malloc-hugetlb1
tests-unsupported += tst-malloc-thread-fail-malloc-hugetlb2
+tests-unsupported += tst-malloc-thread-fail-malloc-largetcache
tests-unsupported += tst-dynarray-fail
endif
+ifeq ($(subdir),misc)
+tests-unsupported += bug18240
+endif
+ifeq ($(subdir),stdio-common)
+tests-unsupported += tst-getline-enomem
+tests-unsupported += tst-getline-enomem-mem
+tests-unsupported += tst-vfprintf-width-prec
+tests-unsupported += tst-vfprintf-width-prec-mem
+tests-unsupported += tst-vfprintf-width-prec-alloc
+endif
+ifeq ($(subdir),stdlib)
+tests-unsupported += test-bz22786 tst-strtod-overflow
+# pthread_cleanup_combined_push/pthread_cleanup_combined_pop requires cleanup
+# support (BZ 32058).
+test-xfail-tst-qsort7-mem = yes
+test-xfail-tst-qsortx7-mem = yes
+endif
+ifeq ($(subdir),timezone)
+tests-unsupported += tst-tzset
+endif
# For bug 30167
# (select requests overflow)
diff --git a/sysdeps/mach/hurd/_Fork.c b/sysdeps/mach/hurd/_Fork.c
index b1cc26b..1e47b70 100644
--- a/sysdeps/mach/hurd/_Fork.c
+++ b/sysdeps/mach/hurd/_Fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/_exit.c b/sysdeps/mach/hurd/_exit.c
index 3cc10f4..a482927 100644
--- a/sysdeps/mach/hurd/_exit.c
+++ b/sysdeps/mach/hurd/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/accept.c b/sysdeps/mach/hurd/accept.c
index 1a43dc0..ea1af0d 100644
--- a/sysdeps/mach/hurd/accept.c
+++ b/sysdeps/mach/hurd/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/accept4.c b/sysdeps/mach/hurd/accept4.c
index c26b943..20070e0 100644
--- a/sysdeps/mach/hurd/accept4.c
+++ b/sysdeps/mach/hurd/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/access.c b/sysdeps/mach/hurd/access.c
index a3c0945..5aabda4 100644
--- a/sysdeps/mach/hurd/access.c
+++ b/sysdeps/mach/hurd/access.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/adjtime.c b/sysdeps/mach/hurd/adjtime.c
index 38e0197..63849bf 100644
--- a/sysdeps/mach/hurd/adjtime.c
+++ b/sysdeps/mach/hurd/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/arch-fd_to_filename.h b/sysdeps/mach/hurd/arch-fd_to_filename.h
index c8a7cc7..436b527 100644
--- a/sysdeps/mach/hurd/arch-fd_to_filename.h
+++ b/sysdeps/mach/hurd/arch-fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Hurd version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bind.c b/sysdeps/mach/hurd/bind.c
index c492c7c..cdcdd30 100644
--- a/sysdeps/mach/hurd/bind.c
+++ b/sysdeps/mach/hurd/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -47,8 +47,12 @@ __bind (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
if (dir == MACH_PORT_NULL)
return -1;
- /* Create a new, unlinked node in the target directory. */
- err = __dir_mkfile (dir, O_CREAT, 0666 & ~_hurd_umask, &node);
+ if (! *n)
+ /* Can't bind on the existing directory itself. */
+ err = ENOTDIR;
+ else
+ /* Create a new, unlinked node in the target directory. */
+ err = __dir_mkfile (dir, O_CREAT, 0666 & ~_hurd_umask, &node);
if (! err)
{
@@ -62,7 +66,7 @@ __bind (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
if (! err)
{
enum retry_type doretry;
- char retryname[1024];
+ string_t retryname;
/* Get a port to the ifsock translator. */
err = __dir_lookup (node, "", 0, 0, &doretry, retryname, &ifsock);
if (! err && (doretry != FS_RETRY_NORMAL || retryname[0] != '\0'))
diff --git a/sysdeps/mach/hurd/bits/fcntl.h b/sysdeps/mach/hurd/bits/fcntl.h
index 0098036..c51bdf4 100644
--- a/sysdeps/mach/hurd/bits/fcntl.h
+++ b/sysdeps/mach/hurd/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for GNU.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/ioctls.h b/sysdeps/mach/hurd/bits/ioctls.h
index a5716f1..faf1373 100644
--- a/sysdeps/mach/hurd/bits/ioctls.h
+++ b/sysdeps/mach/hurd/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -324,15 +324,8 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
From 4.4 <sys/ioctl_compat.h>. */
#ifdef __USE_MISC
-#ifdef USE_OLD_TTY
-# undef TIOCGETD
-# define TIOCGETD _IOR('t', 0, int) /* get line discipline */
-# undef TIOCSETD
-# define TIOCSETD _IOW('t', 1, int) /* set line discipline */
-#else
-# define OTIOCGETD _IOR('t', 0, int) /* get line discipline */
-# define OTIOCSETD _IOW('t', 1, int) /* set line discipline */
-#endif
+#define OTIOCGETD _IOR('t', 0, int) /* get line discipline */
+#define OTIOCSETD _IOW('t', 1, int) /* set line discipline */
#define TIOCHPCL _IO('t', 2) /* hang up on last close */
#define TIOCGETP _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
#define TIOCSETP _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
@@ -411,26 +404,6 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
#define OTTYDISC 0
#define NETLDISC 1
#define NTTYDISC 2
-
-/* From 4.4 <sys/ttydev.h>. */
-#ifdef USE_OLD_TTY
-# define B0 0
-# define B50 1
-# define B75 2
-# define B110 3
-# define B134 4
-# define B150 5
-# define B200 6
-# define B300 7
-# define B600 8
-# define B1200 9
-# define B1800 10
-# define B2400 11
-# define B4800 12
-# define B9600 13
-# define EXTA 14
-# define EXTB 15
-#endif /* USE_OLD_TTY */
#endif
#endif /* bits/ioctls.h */
diff --git a/sysdeps/mach/hurd/bits/local_lim.h b/sysdeps/mach/hurd/bits/local_lim.h
index 32921d2..009f40e 100644
--- a/sysdeps/mach/hurd/bits/local_lim.h
+++ b/sysdeps/mach/hurd/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Hurd version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/mman_ext.h b/sysdeps/mach/hurd/bits/mman_ext.h
index d5a371e..5004960 100644
--- a/sysdeps/mach/hurd/bits/mman_ext.h
+++ b/sysdeps/mach/hurd/bits/mman_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <sys/mman.h>, Hurd version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,7 @@
# define SHM_ANON ((const char *) 1)
# define MAP_32BIT 0x1000 /* Map in the lower 2 GB. */
+# define MAP_NORESERVE 0x2000 /* Don't check for reservations. */
# define MAP_EXCL 0x4000 /* With MAP_FIXED, don't replace existing mappings. */
# define MAP_TRYFIXED (MAP_FIXED | MAP_EXCL) /* BSD name. */
diff --git a/sysdeps/mach/hurd/bits/param.h b/sysdeps/mach/hurd/bits/param.h
index 48eeb7d..8c71461 100644
--- a/sysdeps/mach/hurd/bits/param.h
+++ b/sysdeps/mach/hurd/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Hurd version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/posix_opt.h b/sysdeps/mach/hurd/bits/posix_opt.h
index b31d006..b7f80e3 100644
--- a/sysdeps/mach/hurd/bits/posix_opt.h
+++ b/sysdeps/mach/hurd/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for GNU/Hurd.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -163,7 +163,7 @@
#define _POSIX_THREAD_PROCESS_SHARED -1
/* The monotonic clock might be available. */
-#define _POSIX_MONOTONIC_CLOCK 0
+#define _POSIX_MONOTONIC_CLOCK 200809L
/* The clock selection interfaces are available. */
#define _POSIX_CLOCK_SELECTION 200809L
diff --git a/sysdeps/mach/hurd/bits/signum-arch.h b/sysdeps/mach/hurd/bits/signum-arch.h
index 47edb0c..036b5af 100644
--- a/sysdeps/mach/hurd/bits/signum-arch.h
+++ b/sysdeps/mach/hurd/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number constants. Specific architecture definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/socket.h b/sysdeps/mach/hurd/bits/socket.h
index b5eeac3..8c18cef 100644
--- a/sysdeps/mach/hurd/bits/socket.h
+++ b/sysdeps/mach/hurd/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -228,17 +228,13 @@ struct cmsghdr
of cmsghdr structure. */
int cmsg_level; /* Originating protocol. */
int cmsg_type; /* Protocol specific type. */
-#if __glibc_c99_flexarr_available
- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
-#endif
+ /* This field is to be aligned with CMSG_ALIGN */
+ /* __extension__ unsigned char __cmsg_data __flexarr; */ /* Ancillary data. */
};
/* Ancillary data object manipulation macros. */
-#if __glibc_c99_flexarr_available
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
+#define CMSG_DATA(cmsg) \
+ ((unsigned char *) (cmsg) + CMSG_ALIGN (sizeof (struct cmsghdr)))
#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h
index e449274..fcaa123 100644
--- a/sysdeps/mach/hurd/bits/stat.h
+++ b/sysdeps/mach/hurd/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/statfs.h b/sysdeps/mach/hurd/bits/statfs.h
index ad8bd76..49ddaa6 100644
--- a/sysdeps/mach/hurd/bits/statfs.h
+++ b/sysdeps/mach/hurd/bits/statfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statfs', information about a filesystem.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/statvfs.h b/sysdeps/mach/hurd/bits/statvfs.h
index ddc3550..0a8e33b 100644
--- a/sysdeps/mach/hurd/bits/statvfs.h
+++ b/sysdeps/mach/hurd/bits/statvfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statvfs', information about a filesystem.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/stdio_lim.h b/sysdeps/mach/hurd/bits/stdio_lim.h
index 2f71de7..c776c0e 100644
--- a/sysdeps/mach/hurd/bits/stdio_lim.h
+++ b/sysdeps/mach/hurd/bits/stdio_lim.h
@@ -1,5 +1,5 @@
/* System specific stdio.h definitions. Hurd version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/sysmacros.h b/sysdeps/mach/hurd/bits/sysmacros.h
index 04ab5ad..94465bd 100644
--- a/sysdeps/mach/hurd/bits/sysmacros.h
+++ b/sysdeps/mach/hurd/bits/sysmacros.h
@@ -1,5 +1,5 @@
/* Definitions of macros to access `dev_t' values. Hurd version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/timesize.h b/sysdeps/mach/hurd/bits/timesize.h
index 2e1ef5c..f3a30f3 100644
--- a/sysdeps/mach/hurd/bits/timesize.h
+++ b/sysdeps/mach/hurd/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Hurd.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/types/error_t.h b/sysdeps/mach/hurd/bits/types/error_t.h
index da6a91b..c030c2d 100644
--- a/sysdeps/mach/hurd/bits/types/error_t.h
+++ b/sysdeps/mach/hurd/bits/types/error_t.h
@@ -1,5 +1,5 @@
/* Define error_t.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/types/struct_flock.h b/sysdeps/mach/hurd/bits/types/struct_flock.h
index 79dab45..2619575 100644
--- a/sysdeps/mach/hurd/bits/types/struct_flock.h
+++ b/sysdeps/mach/hurd/bits/types/struct_flock.h
@@ -1,5 +1,5 @@
/* flock structure. Generic version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index a37b8bd..6192bb1 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/bits/unistd_ext.h b/sysdeps/mach/hurd/bits/unistd_ext.h
index 3319878..1a42aa6 100644
--- a/sysdeps/mach/hurd/bits/unistd_ext.h
+++ b/sysdeps/mach/hurd/bits/unistd_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <unistd.h>, Hurd version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/brk.c b/sysdeps/mach/hurd/brk.c
index ff28c57..6ee2fd7 100644
--- a/sysdeps/mach/hurd/brk.c
+++ b/sysdeps/mach/hurd/brk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/chdir.c b/sysdeps/mach/hurd/chdir.c
index e817e4f..1bfdea9 100644
--- a/sysdeps/mach/hurd/chdir.c
+++ b/sysdeps/mach/hurd/chdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/check_fds.c b/sysdeps/mach/hurd/check_fds.c
index e29b4d6..29e3972 100644
--- a/sysdeps/mach/hurd/check_fds.c
+++ b/sysdeps/mach/hurd/check_fds.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/chflags.c b/sysdeps/mach/hurd/chflags.c
index 3830faa..1c64c82 100644
--- a/sysdeps/mach/hurd/chflags.c
+++ b/sysdeps/mach/hurd/chflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/chmod.c b/sysdeps/mach/hurd/chmod.c
index 7d76ad7..079c934 100644
--- a/sysdeps/mach/hurd/chmod.c
+++ b/sysdeps/mach/hurd/chmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/chown.c b/sysdeps/mach/hurd/chown.c
index cbc7e34..3c92452 100644
--- a/sysdeps/mach/hurd/chown.c
+++ b/sysdeps/mach/hurd/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/chroot.c b/sysdeps/mach/hurd/chroot.c
index f40baab..066c903 100644
--- a/sysdeps/mach/hurd/chroot.c
+++ b/sysdeps/mach/hurd/chroot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/clock.c b/sysdeps/mach/hurd/clock.c
index 5532c9e..75c759f 100644
--- a/sysdeps/mach/hurd/clock.c
+++ b/sysdeps/mach/hurd/clock.c
@@ -1,5 +1,5 @@
/* Return the CPU time used by the program so far. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/clock_settime.c b/sysdeps/mach/hurd/clock_settime.c
index b6cb14c..c013736 100644
--- a/sysdeps/mach/hurd/clock_settime.c
+++ b/sysdeps/mach/hurd/clock_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/close.c b/sysdeps/mach/hurd/close.c
index 415b7be..067420b 100644
--- a/sysdeps/mach/hurd/close.c
+++ b/sysdeps/mach/hurd/close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/close_nocancel.c b/sysdeps/mach/hurd/close_nocancel.c
index ba9c094..5da0436 100644
--- a/sysdeps/mach/hurd/close_nocancel.c
+++ b/sysdeps/mach/hurd/close_nocancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/close_nocancel_nostatus.c b/sysdeps/mach/hurd/close_nocancel_nostatus.c
index a7dd223..19db7fe 100644
--- a/sysdeps/mach/hurd/close_nocancel_nostatus.c
+++ b/sysdeps/mach/hurd/close_nocancel_nostatus.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/close_range.c b/sysdeps/mach/hurd/close_range.c
index 3e9ec64..0d1497e 100644
--- a/sysdeps/mach/hurd/close_range.c
+++ b/sysdeps/mach/hurd/close_range.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/closedir.c b/sysdeps/mach/hurd/closedir.c
index dcc8dfd..4dc0f39 100644
--- a/sysdeps/mach/hurd/closedir.c
+++ b/sysdeps/mach/hurd/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/connect.c b/sysdeps/mach/hurd/connect.c
index cfcfd71..8cc7747 100644
--- a/sysdeps/mach/hurd/connect.c
+++ b/sysdeps/mach/hurd/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c
index 566031f..70af797 100644
--- a/sysdeps/mach/hurd/cthreads.c
+++ b/sysdeps/mach/hurd/cthreads.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/device-nrs.h b/sysdeps/mach/hurd/device-nrs.h
index 75dbe7b..82915a6 100644
--- a/sysdeps/mach/hurd/device-nrs.h
+++ b/sysdeps/mach/hurd/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dirfd.c b/sysdeps/mach/hurd/dirfd.c
index be68e9e..ef12aec 100644
--- a/sysdeps/mach/hurd/dirfd.c
+++ b/sysdeps/mach/hurd/dirfd.c
@@ -1,5 +1,5 @@
/* dirfd -- Return the file descriptor used by a DIR stream. Hurd version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dirstream.h b/sysdeps/mach/hurd/dirstream.h
index 87163d5..3309c45 100644
--- a/sysdeps/mach/hurd/dirstream.h
+++ b/sysdeps/mach/hurd/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dl-execstack.c b/sysdeps/mach/hurd/dl-execstack.c
index 31371bc..dc4719b 100644
--- a/sysdeps/mach/hurd/dl-execstack.c
+++ b/sysdeps/mach/hurd/dl-execstack.c
@@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Hurd version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,12 +26,11 @@ extern struct hurd_startup_data *_dl_hurd_data attribute_hidden;
so as to mprotect it. */
int
-_dl_make_stack_executable (void **stack_endp)
+_dl_make_stack_executable (const void *stack_endp)
{
/* Challenge the caller. */
- if (__builtin_expect (*stack_endp != __libc_stack_end, 0))
+ if (__glibc_unlikely (stack_endp != __libc_stack_end))
return EPERM;
- *stack_endp = NULL;
#if IS_IN (rtld)
if (__mprotect ((void *)_dl_hurd_data->stack_base, _dl_hurd_data->stack_size,
@@ -47,4 +46,3 @@ _dl_make_stack_executable (void **stack_endp)
return ENOSYS;
#endif
}
-rtld_hidden_def (_dl_make_stack_executable)
diff --git a/sysdeps/mach/hurd/dl-execve.h b/sysdeps/mach/hurd/dl-execve.h
index b502b88..bcfa26d 100644
--- a/sysdeps/mach/hurd/dl-execve.h
+++ b/sysdeps/mach/hurd/dl-execve.h
@@ -1,5 +1,5 @@
/* execve for the dynamic linker. Hurd version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dl-fcntl.h b/sysdeps/mach/hurd/dl-fcntl.h
index b3dd007..a285b04 100644
--- a/sysdeps/mach/hurd/dl-fcntl.h
+++ b/sysdeps/mach/hurd/dl-fcntl.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/fcntl.h. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dl-mman.h b/sysdeps/mach/hurd/dl-mman.h
index 1ec0ee1..7758a9c 100644
--- a/sysdeps/mach/hurd/dl-mman.h
+++ b/sysdeps/mach/hurd/dl-mman.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/sys/mman.h. Hurd version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 6ba00e4..e629492 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Hurd version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,7 +43,6 @@
#include <entry.h>
#include <dl-machine.h>
-#include <dl-procinfo.h>
#include <dl-tunables.h>
#include <not-errno.h>
@@ -231,6 +230,8 @@ _dl_sysdep_start (void **start_argptr,
abort ();
}
+RETURN_TO_TRAMPOLINE();
+
void
_dl_sysdep_start_cleanup (void)
{
@@ -265,7 +266,7 @@ open_file (const char *file_name, int flags,
mach_port_t *port, struct stat64 *stat)
{
enum retry_type doretry;
- char retryname[1024]; /* XXX string_t LOSES! */
+ string_t retryname;
file_t startdir;
error_t err;
diff --git a/sysdeps/mach/hurd/dl-sysdep.h b/sysdeps/mach/hurd/dl-sysdep.h
index 28e679d..cde66f5 100644
--- a/sysdeps/mach/hurd/dl-sysdep.h
+++ b/sysdeps/mach/hurd/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dl-unistd.h b/sysdeps/mach/hurd/dl-unistd.h
index e1a4731..1607eb3 100644
--- a/sysdeps/mach/hurd/dl-unistd.h
+++ b/sysdeps/mach/hurd/dl-unistd.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/unistd.h. Hurd version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/dup2.c b/sysdeps/mach/hurd/dup2.c
index f91a432..83dfbe2 100644
--- a/sysdeps/mach/hurd/dup2.c
+++ b/sysdeps/mach/hurd/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/dup3.c b/sysdeps/mach/hurd/dup3.c
index 401a656..49545ae 100644
--- a/sysdeps/mach/hurd/dup3.c
+++ b/sysdeps/mach/hurd/dup3.c
@@ -1,5 +1,5 @@
/* Duplicate a file descriptor to a given number, with flags. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -69,6 +69,7 @@ __dup3 (int fd, int fd2, int flags)
{
/* Get a hold of the destination descriptor. */
struct hurd_fd *d2;
+ error_t err;
__mutex_lock (&_hurd_dtable_lock);
@@ -107,22 +108,51 @@ __dup3 (int fd, int fd2, int flags)
}
else
{
- /* Give the ports each a user ref for the new descriptor. */
- __mach_port_mod_refs (__mach_task_self (), port,
- MACH_PORT_RIGHT_SEND, 1);
- if (ctty != MACH_PORT_NULL)
- __mach_port_mod_refs (__mach_task_self (), ctty,
- MACH_PORT_RIGHT_SEND, 1);
-
- /* Install the ports and flags in the new descriptor slot. */
- __spin_lock (&d2->port.lock);
- if (flags & O_CLOEXEC)
- d2->flags = d_flags | FD_CLOEXEC;
- else
- /* dup clears FD_CLOEXEC. */
- d2->flags = d_flags & ~FD_CLOEXEC;
- _hurd_port_set (&d2->ctty, ctty);
- _hurd_port_locked_set (&d2->port, port); /* Unlocks D2. */
+ /* Give the io server port a user ref for the new descriptor. */
+ err = __mach_port_mod_refs (__mach_task_self (), port,
+ MACH_PORT_RIGHT_SEND, 1);
+
+ if (err == KERN_UREFS_OVERFLOW)
+ fd2 = __hurd_fail (EMFILE);
+ else if (err)
+ fd2 = __hurd_fail (EINVAL);
+ else if (ctty != MACH_PORT_NULL)
+ {
+ /* We have confirmed the io server port has got a user ref
+ count, now give ctty port a user ref for the new
+ descriptor. */
+ err = __mach_port_mod_refs (__mach_task_self (), ctty,
+ MACH_PORT_RIGHT_SEND, 1);
+
+ if (err)
+ {
+ /* In this case the io server port has got a ref count
+ but the ctty port failed to get one, so we need to
+ clean the ref count we just assigned. */
+ __mach_port_mod_refs (__mach_task_self (), port,
+ MACH_PORT_RIGHT_SEND, -1);
+
+ if (err == KERN_UREFS_OVERFLOW)
+ fd2 = __hurd_fail (EMFILE);
+ else
+ fd2 = __hurd_fail (EINVAL);
+ }
+ }
+
+ if (!err)
+ {
+ /* The ref counts of the ports are incremented
+ successfully. */
+ /* Install the ports and flags in the new descriptor slot. */
+ __spin_lock (&d2->port.lock);
+ if (flags & O_CLOEXEC)
+ d2->flags = d_flags | FD_CLOEXEC;
+ else
+ /* dup clears FD_CLOEXEC. */
+ d2->flags = d_flags & ~FD_CLOEXEC;
+ _hurd_port_set (&d2->ctty, ctty);
+ _hurd_port_locked_set (&d2->port, port); /* Unlocks D2. */
+ }
}
}
diff --git a/sysdeps/mach/hurd/err_map.h b/sysdeps/mach/hurd/err_map.h
index 60a7625..46337c2 100644
--- a/sysdeps/mach/hurd/err_map.h
+++ b/sysdeps/mach/hurd/err_map.h
@@ -1,5 +1,5 @@
/* Internal errno names mapping definition. Hurd version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/errname.c b/sysdeps/mach/hurd/errname.c
index aacfdc5..8bd4501 100644
--- a/sysdeps/mach/hurd/errname.c
+++ b/sysdeps/mach/hurd/errname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/errno-loc.c b/sysdeps/mach/hurd/errno-loc.c
index 841b1ad..f40b208 100644
--- a/sysdeps/mach/hurd/errno-loc.c
+++ b/sysdeps/mach/hurd/errno-loc.c
@@ -1,5 +1,5 @@
/* __errno_location -- helper function for locating per-thread errno value
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/errnos.awk b/sysdeps/mach/hurd/errnos.awk
index 120efec..9cbc7e8 100644
--- a/sysdeps/mach/hurd/errnos.awk
+++ b/sysdeps/mach/hurd/errnos.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2024 Free Software Foundation, Inc.
+# Copyright (C) 1991-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/euidaccess.c b/sysdeps/mach/hurd/euidaccess.c
index 96456df..889d45d 100644
--- a/sysdeps/mach/hurd/euidaccess.c
+++ b/sysdeps/mach/hurd/euidaccess.c
@@ -1,5 +1,5 @@
/* Test for access to FILE using effective UID and GID. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/execve.c b/sysdeps/mach/hurd/execve.c
index 11e3f34..5ba3a54 100644
--- a/sysdeps/mach/hurd/execve.c
+++ b/sysdeps/mach/hurd/execve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/execveat.c b/sysdeps/mach/hurd/execveat.c
index f24dd7b..e29a876 100644
--- a/sysdeps/mach/hurd/execveat.c
+++ b/sysdeps/mach/hurd/execveat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/f_setlk.c b/sysdeps/mach/hurd/f_setlk.c
index b44fe88..95194c8 100644
--- a/sysdeps/mach/hurd/f_setlk.c
+++ b/sysdeps/mach/hurd/f_setlk.c
@@ -1,5 +1,5 @@
/* f_setlk -- locking part of fcntl
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/f_setlk.h b/sysdeps/mach/hurd/f_setlk.h
index cd8fb0e..a49505f 100644
--- a/sysdeps/mach/hurd/f_setlk.h
+++ b/sysdeps/mach/hurd/f_setlk.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/faccessat.c b/sysdeps/mach/hurd/faccessat.c
index 998e319..e5304a6 100644
--- a/sysdeps/mach/hurd/faccessat.c
+++ b/sysdeps/mach/hurd/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -185,6 +185,15 @@ __faccessat_common (int fd, const char *file, int type, int at_flags,
return errfunc (err);
}
+ /* If all we wanted was to check for a file existing at the path,
+ then we already got our answer, and we don't need to call
+ file_check_access (). */
+ if (type == F_OK)
+ {
+ __mach_port_deallocate (__mach_task_self (), io);
+ return 0;
+ }
+
/* Find out what types of access we are allowed to this file. */
err = __file_check_access (io, &allowed);
__mach_port_deallocate (__mach_task_self (), io);
diff --git a/sysdeps/mach/hurd/fchdir.c b/sysdeps/mach/hurd/fchdir.c
index 019d8cc..535a469 100644
--- a/sysdeps/mach/hurd/fchdir.c
+++ b/sysdeps/mach/hurd/fchdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fchflags.c b/sysdeps/mach/hurd/fchflags.c
index 042ed2d..5cee007 100644
--- a/sysdeps/mach/hurd/fchflags.c
+++ b/sysdeps/mach/hurd/fchflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fchmod.c b/sysdeps/mach/hurd/fchmod.c
index dda316f..5962a6d 100644
--- a/sysdeps/mach/hurd/fchmod.c
+++ b/sysdeps/mach/hurd/fchmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fchmodat.c b/sysdeps/mach/hurd/fchmodat.c
index 8f0cc0a..952b356 100644
--- a/sysdeps/mach/hurd/fchmodat.c
+++ b/sysdeps/mach/hurd/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fchown.c b/sysdeps/mach/hurd/fchown.c
index 3135d43..cd36d93 100644
--- a/sysdeps/mach/hurd/fchown.c
+++ b/sysdeps/mach/hurd/fchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fchownat.c b/sysdeps/mach/hurd/fchownat.c
index 8abd1773..5488649 100644
--- a/sysdeps/mach/hurd/fchownat.c
+++ b/sysdeps/mach/hurd/fchownat.c
@@ -1,5 +1,5 @@
/* Change owner and group of a file relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c
index 9451ed5..de576af 100644
--- a/sysdeps/mach/hurd/fcntl.c
+++ b/sysdeps/mach/hurd/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -83,18 +83,47 @@ __libc_fcntl (int fd, int cmd, ...)
result = -1;
else
{
- /* Give the ports each a user ref for the new descriptor. */
- __mach_port_mod_refs (__mach_task_self (), port,
- MACH_PORT_RIGHT_SEND, 1);
- if (ctty != MACH_PORT_NULL)
- __mach_port_mod_refs (__mach_task_self (), ctty,
- MACH_PORT_RIGHT_SEND, 1);
-
- /* Install the ports and flags in the new descriptor. */
- if (ctty != MACH_PORT_NULL)
- _hurd_port_set (&new->ctty, ctty);
- new->flags = flags;
- _hurd_port_locked_set (&new->port, port); /* Unlocks NEW. */
+ /* Give the io server port a user ref for the new descriptor. */
+ err = __mach_port_mod_refs (__mach_task_self (), port,
+ MACH_PORT_RIGHT_SEND, 1);
+
+ if (err == KERN_UREFS_OVERFLOW)
+ result = __hurd_fail (EMFILE);
+ else if (err)
+ result = __hurd_fail (EINVAL);
+ else if (ctty != MACH_PORT_NULL)
+ {
+ /* We have confirmed the io server port has got a user ref
+ count, now give ctty port a user ref for the new
+ descriptor. */
+ err = __mach_port_mod_refs (__mach_task_self (), ctty,
+ MACH_PORT_RIGHT_SEND, 1);
+
+ if (err)
+ {
+ /* In this case the io server port has got a ref count
+ but the ctty port fails to get one, so we need to clean
+ the ref count we just assigned. */
+ __mach_port_mod_refs (__mach_task_self (), port,
+ MACH_PORT_RIGHT_SEND, -1);
+
+ if (err == KERN_UREFS_OVERFLOW)
+ result = __hurd_fail (EMFILE);
+ else
+ result = __hurd_fail (EINVAL);
+ }
+ }
+
+ if (!err)
+ {
+ /* The ref counts of the ports are incremented successfully. */
+ /* Install the ports and flags in the new descriptor. */
+ if (ctty != MACH_PORT_NULL)
+ _hurd_port_set (&new->ctty, ctty);
+ new->flags = flags;
+ /* Unlocks NEW. */
+ _hurd_port_locked_set (&new->port, port);
+ }
}
HURD_CRITICAL_END;
@@ -148,6 +177,7 @@ __libc_fcntl (int fd, int cmd, ...)
cmd = F_SETLKW64;
break;
default:
+ va_end (ap);
return __hurd_fail (EINVAL);
}
@@ -204,7 +234,10 @@ __libc_fcntl (int fd, int cmd, ...)
&& fl->l_start != fl64.l_start)
|| (sizeof fl->l_len != sizeof fl64.l_len
&& fl->l_len != fl64.l_len))
- return __hurd_fail (EOVERFLOW);
+ {
+ va_end (ap);
+ return __hurd_fail (EOVERFLOW);
+ }
}
result = err ? __hurd_dfail (fd, err) : 0;
diff --git a/sysdeps/mach/hurd/fdatasync.c b/sysdeps/mach/hurd/fdatasync.c
index c868f62..7c55542 100644
--- a/sysdeps/mach/hurd/fdatasync.c
+++ b/sysdeps/mach/hurd/fdatasync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fdopendir.c b/sysdeps/mach/hurd/fdopendir.c
index ce27064..439dde3 100644
--- a/sysdeps/mach/hurd/fdopendir.c
+++ b/sysdeps/mach/hurd/fdopendir.c
@@ -1,5 +1,5 @@
/* Open a directory stream from a file descriptor. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fexecve.c b/sysdeps/mach/hurd/fexecve.c
index 50472d5..cd3bd2b 100644
--- a/sysdeps/mach/hurd/fexecve.c
+++ b/sysdeps/mach/hurd/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@ fexecve (int fd, char *const argv[], char *const envp[])
file_t file;
error_t err;
enum retry_type doretry;
- char retryname[1024];
+ string_t retryname;
err = HURD_DPORT_USE (fd,
__dir_lookup (port, "", O_EXEC, 0, &doretry, retryname, &file));
diff --git a/sysdeps/mach/hurd/fgetxattr.c b/sysdeps/mach/hurd/fgetxattr.c
index 551d507..a892859 100644
--- a/sysdeps/mach/hurd/fgetxattr.c
+++ b/sysdeps/mach/hurd/fgetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/flistxattr.c b/sysdeps/mach/hurd/flistxattr.c
index efbb52e..089459e 100644
--- a/sysdeps/mach/hurd/flistxattr.c
+++ b/sysdeps/mach/hurd/flistxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/flock.c b/sysdeps/mach/hurd/flock.c
index 8054f58..e058517 100644
--- a/sysdeps/mach/hurd/flock.c
+++ b/sysdeps/mach/hurd/flock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fpathconf.c b/sysdeps/mach/hurd/fpathconf.c
index dc45f37..aa26c6b 100644
--- a/sysdeps/mach/hurd/fpathconf.c
+++ b/sysdeps/mach/hurd/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fremovexattr.c b/sysdeps/mach/hurd/fremovexattr.c
index 746ca93..cbf24c0 100644
--- a/sysdeps/mach/hurd/fremovexattr.c
+++ b/sysdeps/mach/hurd/fremovexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fsetxattr.c b/sysdeps/mach/hurd/fsetxattr.c
index 58334e1..3723c76 100644
--- a/sysdeps/mach/hurd/fsetxattr.c
+++ b/sysdeps/mach/hurd/fsetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstat.c b/sysdeps/mach/hurd/fstat.c
index 888eac9..28f9392 100644
--- a/sysdeps/mach/hurd/fstat.c
+++ b/sysdeps/mach/hurd/fstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstat64.c b/sysdeps/mach/hurd/fstat64.c
index ada0c02..fbbad1e 100644
--- a/sysdeps/mach/hurd/fstat64.c
+++ b/sysdeps/mach/hurd/fstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatat.c b/sysdeps/mach/hurd/fstatat.c
index cf7fee0..5092e19 100644
--- a/sysdeps/mach/hurd/fstatat.c
+++ b/sysdeps/mach/hurd/fstatat.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatat64.c b/sysdeps/mach/hurd/fstatat64.c
index 61b6593..4e6d016 100644
--- a/sysdeps/mach/hurd/fstatat64.c
+++ b/sysdeps/mach/hurd/fstatat64.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatat_common.h b/sysdeps/mach/hurd/fstatat_common.h
index e3abdea..13e0c7d 100644
--- a/sysdeps/mach/hurd/fstatat_common.h
+++ b/sysdeps/mach/hurd/fstatat_common.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatfs.c b/sysdeps/mach/hurd/fstatfs.c
index 10cc0e2..fa0c520 100644
--- a/sysdeps/mach/hurd/fstatfs.c
+++ b/sysdeps/mach/hurd/fstatfs.c
@@ -1,5 +1,5 @@
/* fstatfs -- Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatfs64.c b/sysdeps/mach/hurd/fstatfs64.c
index e66a189..5611d2c 100644
--- a/sysdeps/mach/hurd/fstatfs64.c
+++ b/sysdeps/mach/hurd/fstatfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatvfs.c b/sysdeps/mach/hurd/fstatvfs.c
index b1bac7c..b40265b 100644
--- a/sysdeps/mach/hurd/fstatvfs.c
+++ b/sysdeps/mach/hurd/fstatvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fstatvfs64.c b/sysdeps/mach/hurd/fstatvfs64.c
index eee60d3..fc58eeb 100644
--- a/sysdeps/mach/hurd/fstatvfs64.c
+++ b/sysdeps/mach/hurd/fstatvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fsync.c b/sysdeps/mach/hurd/fsync.c
index 092f5da..eeddb10 100644
--- a/sysdeps/mach/hurd/fsync.c
+++ b/sysdeps/mach/hurd/fsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ftruncate.c b/sysdeps/mach/hurd/ftruncate.c
index 300b9f7..ab725d4 100644
--- a/sysdeps/mach/hurd/ftruncate.c
+++ b/sysdeps/mach/hurd/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ftruncate64.c b/sysdeps/mach/hurd/ftruncate64.c
index f148bb4..80e2ac4 100644
--- a/sysdeps/mach/hurd/ftruncate64.c
+++ b/sysdeps/mach/hurd/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/futimens.c b/sysdeps/mach/hurd/futimens.c
index 7f74570..1212529 100644
--- a/sysdeps/mach/hurd/futimens.c
+++ b/sysdeps/mach/hurd/futimens.c
@@ -1,5 +1,5 @@
/* futimens -- change access and modification times of open file. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,9 @@ __futimens (int fd, const struct timespec tsp[2])
struct timespec atime, mtime;
error_t err;
- utime_ts_from_tspec (tsp, &atime, &mtime);
+ err = utime_ts_from_tspec (tsp, &atime, &mtime);
+ if (err)
+ return err;
err = HURD_DPORT_USE (fd, __file_utimens (port, atime, mtime));
@@ -40,7 +42,9 @@ __futimens (int fd, const struct timespec tsp[2])
{
time_value_t atim, mtim;
- utime_tvalue_from_tspec (tsp, &atim, &mtim);
+ err = utime_tvalue_from_tspec (tsp, &atim, &mtim);
+ if (err)
+ return err;
err = HURD_DPORT_USE (fd, __file_utimes (port, atim, mtim));
}
diff --git a/sysdeps/mach/hurd/futimes.c b/sysdeps/mach/hurd/futimes.c
index 9b635b2..97385d7 100644
--- a/sysdeps/mach/hurd/futimes.c
+++ b/sysdeps/mach/hurd/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,9 @@ __futimes (int fd, const struct timeval tvp[2])
struct timespec atime, mtime;
error_t err;
- utime_ts_from_tval (tvp, &atime, &mtime);
+ err = utime_ts_from_tval (tvp, &atime, &mtime);
+ if (err)
+ return err;
err = HURD_DPORT_USE (fd, __file_utimens (port, atime, mtime));
@@ -40,7 +42,9 @@ __futimes (int fd, const struct timeval tvp[2])
{
time_value_t atim, mtim;
- utime_tvalue_from_tval (tvp, &atim, &mtim);
+ err = utime_tvalue_from_tval (tvp, &atim, &mtim);
+ if (err)
+ return err;
err = HURD_DPORT_USE (fd, __file_utimes (port, atim, mtim));
}
diff --git a/sysdeps/mach/hurd/futimesat.c b/sysdeps/mach/hurd/futimesat.c
index 16dd3b6..5afe46b 100644
--- a/sysdeps/mach/hurd/futimesat.c
+++ b/sysdeps/mach/hurd/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- change access and modification times of file. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fxstat.c b/sysdeps/mach/hurd/fxstat.c
index ac3754c..90e503a 100644
--- a/sysdeps/mach/hurd/fxstat.c
+++ b/sysdeps/mach/hurd/fxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fxstat64.c b/sysdeps/mach/hurd/fxstat64.c
index 0fd64dd..444dfd2 100644
--- a/sysdeps/mach/hurd/fxstat64.c
+++ b/sysdeps/mach/hurd/fxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fxstatat.c b/sysdeps/mach/hurd/fxstatat.c
index f8a71b3..a25dc26 100644
--- a/sysdeps/mach/hurd/fxstatat.c
+++ b/sysdeps/mach/hurd/fxstatat.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/fxstatat64.c b/sysdeps/mach/hurd/fxstatat64.c
index adf2eb5..44489fc 100644
--- a/sysdeps/mach/hurd/fxstatat64.c
+++ b/sysdeps/mach/hurd/fxstatat64.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/gai_misc.h b/sysdeps/mach/hurd/gai_misc.h
index bd26ec3..59c7b7b 100644
--- a/sysdeps/mach/hurd/gai_misc.h
+++ b/sysdeps/mach/hurd/gai_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
#include <assert.h>
#include <signal.h>
-#include <pthread.h>
+#include <pthreadP.h>
#define gai_start_notify_thread __gai_start_notify_thread
#define gai_create_helper_thread __gai_create_helper_thread
@@ -28,7 +28,7 @@ __gai_start_notify_thread (void)
sigset_t ss;
sigemptyset (&ss);
int sigerr __attribute__ ((unused));
- sigerr = pthread_sigmask (SIG_SETMASK, &ss, NULL);
+ sigerr = __pthread_sigmask (SIG_SETMASK, &ss, NULL);
assert_perror (sigerr);
}
@@ -51,13 +51,13 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
sigset_t oss;
sigfillset (&ss);
int sigerr __attribute__ ((unused));
- sigerr = pthread_sigmask (SIG_SETMASK, &ss, &oss);
+ sigerr = __pthread_sigmask (SIG_SETMASK, &ss, &oss);
assert_perror (sigerr);
int ret = pthread_create (threadp, &attr, tf, arg);
/* Restore the signal mask. */
- sigerr = pthread_sigmask (SIG_SETMASK, &oss, NULL);
+ sigerr = __pthread_sigmask (SIG_SETMASK, &oss, NULL);
assert_perror (sigerr);
(void) pthread_attr_destroy (&attr);
diff --git a/sysdeps/mach/hurd/getclktck.c b/sysdeps/mach/hurd/getclktck.c
index ecafac8..10f6993 100644
--- a/sysdeps/mach/hurd/getclktck.c
+++ b/sysdeps/mach/hurd/getclktck.c
@@ -1,5 +1,5 @@
/* Return run-time value of CLK_TCK for Hurd.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index c994335..b3e2419 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getcwd.h b/sysdeps/mach/hurd/getcwd.h
index b50bc96..f40ee93 100644
--- a/sysdeps/mach/hurd/getcwd.h
+++ b/sysdeps/mach/hurd/getcwd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getdomain.c b/sysdeps/mach/hurd/getdomain.c
index 137ce9a..1f6e77c 100644
--- a/sysdeps/mach/hurd/getdomain.c
+++ b/sysdeps/mach/hurd/getdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getdtsz.c b/sysdeps/mach/hurd/getdtsz.c
index 6bf3b44..0507011 100644
--- a/sysdeps/mach/hurd/getdtsz.c
+++ b/sysdeps/mach/hurd/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getegid.c b/sysdeps/mach/hurd/getegid.c
index c707a31..0a2343b 100644
--- a/sysdeps/mach/hurd/getegid.c
+++ b/sysdeps/mach/hurd/getegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getentropy.c b/sysdeps/mach/hurd/getentropy.c
index 803b3a4..6ad8acc 100644
--- a/sysdeps/mach/hurd/getentropy.c
+++ b/sysdeps/mach/hurd/getentropy.c
@@ -1,5 +1,5 @@
/* Implementation of getentropy based on getrandom.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/geteuid.c b/sysdeps/mach/hurd/geteuid.c
index c8847ec..006397b 100644
--- a/sysdeps/mach/hurd/geteuid.c
+++ b/sysdeps/mach/hurd/geteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getgid.c b/sysdeps/mach/hurd/getgid.c
index 7244c86..280af05 100644
--- a/sysdeps/mach/hurd/getgid.c
+++ b/sysdeps/mach/hurd/getgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getgroups.c b/sysdeps/mach/hurd/getgroups.c
index 5c19c01..d9d75d7 100644
--- a/sysdeps/mach/hurd/getgroups.c
+++ b/sysdeps/mach/hurd/getgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/gethostid.c b/sysdeps/mach/hurd/gethostid.c
index cd41c1d..6d18a4c 100644
--- a/sysdeps/mach/hurd/gethostid.c
+++ b/sysdeps/mach/hurd/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/gethostname.c b/sysdeps/mach/hurd/gethostname.c
index 91d7f45..8de1b8a 100644
--- a/sysdeps/mach/hurd/gethostname.c
+++ b/sysdeps/mach/hurd/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getitimer.c b/sysdeps/mach/hurd/getitimer.c
index 8828839..b393e29 100644
--- a/sysdeps/mach/hurd/getitimer.c
+++ b/sysdeps/mach/hurd/getitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getlogin.c b/sysdeps/mach/hurd/getlogin.c
index 05b287e..d73c034 100644
--- a/sysdeps/mach/hurd/getlogin.c
+++ b/sysdeps/mach/hurd/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
char *
getlogin (void)
{
- static char login[1024]; /* XXX */
+ static string_t login;
error_t err;
if (err = __USEPORT (PROC, __proc_getlogin (port, login)))
diff --git a/sysdeps/mach/hurd/getlogin_r.c b/sysdeps/mach/hurd/getlogin_r.c
index 651c9c7..31c2d17 100644
--- a/sysdeps/mach/hurd/getlogin_r.c
+++ b/sysdeps/mach/hurd/getlogin_r.c
@@ -1,5 +1,5 @@
/* Reentrant function to return the current login name. Hurd version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getpeername.c b/sysdeps/mach/hurd/getpeername.c
index 1694e73..325f21e 100644
--- a/sysdeps/mach/hurd/getpeername.c
+++ b/sysdeps/mach/hurd/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getpgid.c b/sysdeps/mach/hurd/getpgid.c
index 140bed8..314e8b8 100644
--- a/sysdeps/mach/hurd/getpgid.c
+++ b/sysdeps/mach/hurd/getpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getpid.c b/sysdeps/mach/hurd/getpid.c
index f01e1a2..c7cb4d1 100644
--- a/sysdeps/mach/hurd/getpid.c
+++ b/sysdeps/mach/hurd/getpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getppid.c b/sysdeps/mach/hurd/getppid.c
index d4459c1..5324925 100644
--- a/sysdeps/mach/hurd/getppid.c
+++ b/sysdeps/mach/hurd/getppid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getpriority.c b/sysdeps/mach/hurd/getpriority.c
index 5cb3851..ca46fe8 100644
--- a/sysdeps/mach/hurd/getpriority.c
+++ b/sysdeps/mach/hurd/getpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S b/sysdeps/mach/hurd/getrandom-internal.h
index d7026c1..8bd718b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S
+++ b/sysdeps/mach/hurd/getrandom-internal.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Internal definitions for Hurd getrandom implementation.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,11 +16,15 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#if defined __LITTLE_ENDIAN__ && IS_IN (libc)
-#define STRNCMP __strncmp_power10
+#ifndef _GETRANDOM_INTERNAL_H
+#define _GETRANDOM_INTERNAL_H
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name)
+extern void __mach_init (void);
+
+static inline void __getrandom_early_init (_Bool initial)
+{
+ /* getrandom needs RPCs for time etc. */
+ __mach_init ();
+}
-#include <sysdeps/powerpc/powerpc64/le/power10/strncmp.S>
#endif
diff --git a/sysdeps/mach/hurd/getrandom.c b/sysdeps/mach/hurd/getrandom.c
index 20c804d..d539caa 100644
--- a/sysdeps/mach/hurd/getrandom.c
+++ b/sysdeps/mach/hurd/getrandom.c
@@ -1,5 +1,5 @@
/* Hurdish implementation of getrandom
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getresgid.c b/sysdeps/mach/hurd/getresgid.c
index 633add5..55400cc 100644
--- a/sysdeps/mach/hurd/getresgid.c
+++ b/sysdeps/mach/hurd/getresgid.c
@@ -1,5 +1,5 @@
/* getresgid -- fetch real group ID, effective group ID, and saved-set group ID
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getresuid.c b/sysdeps/mach/hurd/getresuid.c
index 94e56b6..3ddbc50 100644
--- a/sysdeps/mach/hurd/getresuid.c
+++ b/sysdeps/mach/hurd/getresuid.c
@@ -1,5 +1,5 @@
/* getresuid -- fetch real user ID, effective user ID, and saved-set user ID
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c
index c45e93f..2b2cc67 100644
--- a/sysdeps/mach/hurd/getrlimit.c
+++ b/sysdeps/mach/hurd/getrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getrusage.c b/sysdeps/mach/hurd/getrusage.c
index 8151c29..f30fbf5 100644
--- a/sysdeps/mach/hurd/getrusage.c
+++ b/sysdeps/mach/hurd/getrusage.c
@@ -1,5 +1,5 @@
/* getrusage -- Get resource usage information about processes. Hurd version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getsid.c b/sysdeps/mach/hurd/getsid.c
index e713126..3d5cfc5 100644
--- a/sysdeps/mach/hurd/getsid.c
+++ b/sysdeps/mach/hurd/getsid.c
@@ -1,5 +1,5 @@
/* getsid -- Return session ID of a process. Hurd version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getsockname.c b/sysdeps/mach/hurd/getsockname.c
index e775769..484a421 100644
--- a/sysdeps/mach/hurd/getsockname.c
+++ b/sysdeps/mach/hurd/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getsockopt.c b/sysdeps/mach/hurd/getsockopt.c
index d367ee7..f7e53ba 100644
--- a/sysdeps/mach/hurd/getsockopt.c
+++ b/sysdeps/mach/hurd/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getuid.c b/sysdeps/mach/hurd/getuid.c
index ccda9a2..1ba7218 100644
--- a/sysdeps/mach/hurd/getuid.c
+++ b/sysdeps/mach/hurd/getuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/getxattr.c b/sysdeps/mach/hurd/getxattr.c
index 979dd02..286b509 100644
--- a/sysdeps/mach/hurd/getxattr.c
+++ b/sysdeps/mach/hurd/getxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/group_member.c b/sysdeps/mach/hurd/group_member.c
index 6bf0d08..3acb976 100644
--- a/sysdeps/mach/hurd/group_member.c
+++ b/sysdeps/mach/hurd/group_member.c
@@ -1,5 +1,5 @@
/* `group_member' -- test if process is in a given group. Hurd version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/hp-timing.h b/sysdeps/mach/hurd/hp-timing.h
index ed40564..3a9a3cd 100644
--- a/sysdeps/mach/hurd/hp-timing.h
+++ b/sysdeps/mach/hurd/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/bits/pthread-np.h b/sysdeps/mach/hurd/htl/bits/pthread-np.h
index a7f80d2..7c0aaa1 100644
--- a/sysdeps/mach/hurd/htl/bits/pthread-np.h
+++ b/sysdeps/mach/hurd/htl/bits/pthread-np.h
@@ -1,5 +1,5 @@
/* Non-portable functions. Hurd on Mach version.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
index 0f72865..2a4378b 100644
--- a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
+++ b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
@@ -1,5 +1,5 @@
/* Mutex type. Generic version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-docancel.c b/sysdeps/mach/hurd/htl/pt-docancel.c
index 07c867b..3e356e0 100644
--- a/sysdeps/mach/hurd/htl/pt-docancel.c
+++ b/sysdeps/mach/hurd/htl/pt-docancel.c
@@ -1,5 +1,5 @@
/* Cancel a thread.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
index 7d47585..a6c5597 100644
--- a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
+++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
@@ -1,5 +1,5 @@
/* pthread_hurd_cond_timedwait_np. Hurd-specific wait on a condition.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
index faffda5..d6f541a 100644
--- a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
+++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
@@ -1,5 +1,5 @@
/* pthread_hurd_cond_wait. Hurd-specific wait on a condition.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c b/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c
index c6afa0d..7cf4beb 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c
@@ -1,5 +1,5 @@
/* __pthread_mutex_checklocked. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,7 @@
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
int
__pthread_mutex_checklocked (pthread_mutex_t *mtxp)
@@ -49,3 +50,4 @@ __pthread_mutex_checklocked (pthread_mutex_t *mtxp)
return ret;
}
+libc_hidden_def (__pthread_mutex_checklocked)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-consistent.c b/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
index bd41eb2..5aa75d1 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
@@ -1,5 +1,5 @@
/* pthread_mutex_consistent. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,15 +16,17 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
+#include <shlib-compat.h>
int
-pthread_mutex_consistent (pthread_mutex_t *mtxp)
+__pthread_mutex_consistent (pthread_mutex_t *mtxp)
{
int ret = EINVAL;
unsigned int val = mtxp->__lock;
@@ -43,5 +45,11 @@ pthread_mutex_consistent (pthread_mutex_t *mtxp)
return ret;
}
-
-weak_alias (pthread_mutex_consistent, pthread_mutex_consistent_np)
+libc_hidden_def (__pthread_mutex_consistent)
+versioned_symbol (libc, __pthread_mutex_consistent, pthread_mutex_consistent, GLIBC_2_42);
+versioned_symbol (libc, __pthread_mutex_consistent, pthread_mutex_consistent_np, GLIBC_2_42);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_mutex_consistent,pthread_mutex_consistent, GLIBC_2_32);
+compat_symbol (libpthread, __pthread_mutex_consistent,pthread_mutex_consistent_np, GLIBC_2_32);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-destroy.c b/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
index 1b98a11..c0624ec 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutex_destroy. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,7 @@
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
__pthread_mutex_destroy (pthread_mutex_t *mtxp)
@@ -33,6 +34,9 @@ __pthread_mutex_destroy (pthread_mutex_t *mtxp)
mtxp->__type = -1;
return 0;
}
+libc_hidden_def (__pthread_mutex_destroy)
+versioned_symbol (libc, __pthread_mutex_destroy, pthread_mutex_destroy, GLIBC_2_21);
-weak_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
-hidden_def (__pthread_mutex_destroy)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_mutex_destroy, pthread_mutex_destroy, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
index 1c16775..27ea03e 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutex_getprioceiling. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,19 +16,25 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutex_getprioceiling (const pthread_mutex_t *mtxp, int *clp)
+__pthread_mutex_getprioceiling (const pthread_mutex_t *mtxp, int *clp)
{
(void) mtxp;
(void) clp;
return ENOSYS;
}
+libc_hidden_def (__pthread_mutex_getprioceiling)
+versioned_symbol (libc, __pthread_mutex_getprioceiling, pthread_mutex_getprioceiling, GLIBC_2_42);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_mutex_getprioceiling,pthread_mutex_getprioceiling, GLIBC_2_12);
+#endif
stub_warning (pthread_mutex_getprioceiling)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-init.c b/sysdeps/mach/hurd/htl/pt-mutex-init.c
index 8d71b54..6fb5d36 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-init.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-init.c
@@ -1,5 +1,5 @@
/* pthread_mutex_init. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@
#include <pthreadP.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
static const pthread_mutexattr_t dfl_attr = {
.__prioceiling = 0,
@@ -54,6 +55,9 @@ __pthread_mutex_init (pthread_mutex_t *mtxp, const pthread_mutexattr_t *attrp)
return 0;
}
+libc_hidden_def (__pthread_mutex_init)
+versioned_symbol (libc, __pthread_mutex_init, pthread_mutex_init, GLIBC_2_21);
-weak_alias (__pthread_mutex_init, pthread_mutex_init)
-hidden_def (__pthread_mutex_init)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_mutex_init, pthread_mutex_init, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-lock.c b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
index 3df26f4..7d93ddd 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-lock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_lock. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,14 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
+#include <shlib-compat.h>
int
__pthread_mutex_lock (pthread_mutex_t *mtxp)
@@ -75,7 +77,9 @@ __pthread_mutex_lock (pthread_mutex_t *mtxp)
return ret;
}
+libc_hidden_def (__pthread_mutex_lock)
+versioned_symbol (libc, __pthread_mutex_lock, pthread_mutex_lock, GLIBC_2_21);
-hidden_def (__pthread_mutex_lock)
-strong_alias (__pthread_mutex_lock, _pthread_mutex_lock)
-weak_alias (__pthread_mutex_lock, pthread_mutex_lock)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_mutex_lock, pthread_mutex_lock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
index d4cfc1d..5064e2f 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutex_setprioceiling. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,20 +16,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutex_setprioceiling (pthread_mutex_t *mtxp, int cl, int *prp)
+__pthread_mutex_setprioceiling (pthread_mutex_t *mtxp, int cl, int *prp)
{
(void) mtxp;
(void) cl;
(void) prp;
return ENOSYS;
}
+libc_hidden_def (__pthread_mutex_setprioceiling)
+versioned_symbol (libc, __pthread_mutex_setprioceiling, pthread_mutex_setprioceiling, GLIBC_2_42);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libpthread, __pthread_mutex_setprioceiling,pthread_mutex_setprioceiling, GLIBC_2_12);
+#endif
stub_warning (pthread_mutex_setprioceiling)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c b/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
index 30aff2c..90fa407 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_timedlock. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
int
__pthread_mutex_clocklock (pthread_mutex_t *mtxp,
@@ -78,6 +79,7 @@ __pthread_mutex_clocklock (pthread_mutex_t *mtxp,
return ret;
}
+libc_hidden_def (__pthread_mutex_clocklock)
weak_alias (__pthread_mutex_clocklock, pthread_mutex_clocklock)
int
@@ -86,5 +88,5 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
{
return __pthread_mutex_clocklock (mutex, CLOCK_REALTIME, tsp);
}
+libc_hidden_def (__pthread_mutex_timedlock)
weak_alias (__pthread_mutex_timedlock, pthread_mutex_timedlock)
-hidden_def (__pthread_mutex_timedlock)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c b/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
index d3aaaad..72f83ee 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
@@ -1,6 +1,6 @@
/* pthread_mutex_transfer_np. Transfer mutex ownership to another thread.
Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
int
__pthread_mutex_transfer_np (pthread_mutex_t *mtxp, pthread_t th)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
index c232dc7..f1b451e 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_trylock. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,14 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
+#include <shlib-compat.h>
int
__pthread_mutex_trylock (pthread_mutex_t *mtxp)
@@ -79,7 +81,9 @@ __pthread_mutex_trylock (pthread_mutex_t *mtxp)
return ret;
}
+libc_hidden_def (__pthread_mutex_trylock)
+versioned_symbol (libc, __pthread_mutex_trylock, pthread_mutex_trylock, GLIBC_2_42);
-hidden_def (__pthread_mutex_trylock)
-strong_alias (__pthread_mutex_trylock, _pthread_mutex_trylock)
-weak_alias (__pthread_mutex_trylock, pthread_mutex_trylock)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42)
+compat_symbol (libc, __pthread_mutex_trylock, pthread_mutex_trylock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
index e85ba2c..1732c34 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_unlock. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,14 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <unistd.h>
+#include <shlib-compat.h>
int
__pthread_mutex_unlock (pthread_mutex_t *mtxp)
@@ -86,7 +88,9 @@ __pthread_mutex_unlock (pthread_mutex_t *mtxp)
return ret;
}
+libc_hidden_def (__pthread_mutex_unlock)
+versioned_symbol (libc, __pthread_mutex_unlock, pthread_mutex_unlock, GLIBC_2_21);
-hidden_def (__pthread_mutex_unlock)
-strong_alias (__pthread_mutex_unlock, _pthread_mutex_unlock)
-weak_alias (__pthread_mutex_unlock, pthread_mutex_unlock)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libc, __pthread_mutex_unlock, pthread_mutex_unlock, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutex.h b/sysdeps/mach/hurd/htl/pt-mutex.h
index d9b7eec..1e5e00b 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex.h
+++ b/sysdeps/mach/hurd/htl/pt-mutex.h
@@ -1,5 +1,5 @@
/* Internal definitions for pthreads library.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -85,6 +85,4 @@
#define MTX_TYPE(mtxp) \
((mtxp)->__type | ((mtxp)->__flags & PTHREAD_MUTEX_ROBUST))
-extern int __getpid (void) __attribute__ ((const));
-
#endif /* pt-mutex.h */
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c b/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
index 767d13e..9d92a06 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_destroy. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,5 +29,5 @@ __pthread_mutexattr_destroy (pthread_mutexattr_t *attrp)
(void) attrp;
return 0;
}
-
+hidden_def (__pthread_mutexattr_destroy)
weak_alias (__pthread_mutexattr_destroy, pthread_mutexattr_destroy)
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
index 375b85a..cb46251 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprioceiling. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,19 +16,25 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *ap, int *clp)
+__pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *ap, int *clp)
{
(void) ap;
(void) clp;
return ENOSYS;
}
+libc_hidden_def (__pthread_mutexattr_getprioceiling)
+versioned_symbol (libc, __pthread_mutexattr_getprioceiling, pthread_mutexattr_getprioceiling, GLIBC_2_41);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_getprioceiling,pthread_mutexattr_getprioceiling, GLIBC_2_12);
+#endif
stub_warning (pthread_mutexattr_getprioceiling)
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
index 075db47..79aac54 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprotocol. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,16 +16,23 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_getprotocol (const pthread_mutexattr_t *attrp, int *ptp)
+__pthread_mutexattr_getprotocol (const pthread_mutexattr_t *attrp, int *ptp)
{
*ptp = attrp->__protocol;
return 0;
}
+libc_hidden_def (__pthread_mutexattr_getprotocol)
+versioned_symbol (libc, __pthread_mutexattr_getprotocol, pthread_mutexattr_getprotocol, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_getprotocol,pthread_mutexattr_getprotocol, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
index a470f5a..bf35888 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getpshared. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,16 +16,23 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_getpshared (const pthread_mutexattr_t *attrp, int *outp)
+__pthread_mutexattr_getpshared (const pthread_mutexattr_t *attrp, int *outp)
{
*outp = attrp->__pshared;
return 0;
}
+libc_hidden_def (__pthread_mutexattr_getpshared)
+versioned_symbol (libc, __pthread_mutexattr_getpshared, pthread_mutexattr_getpshared, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_getpshared,pthread_mutexattr_getpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
index b07da8b..6915ac7 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getrobust. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,19 +16,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_getrobust (const pthread_mutexattr_t *attrp, int *outp)
+__pthread_mutexattr_getrobust (const pthread_mutexattr_t *attrp, int *outp)
{
*outp = ((attrp->__prioceiling & PTHREAD_MUTEX_ROBUST)
? PTHREAD_MUTEX_ROBUST : PTHREAD_MUTEX_STALLED);
return 0;
}
+libc_hidden_def (__pthread_mutexattr_getrobust)
+versioned_symbol (libc, __pthread_mutexattr_getrobust, pthread_mutexattr_getrobust, GLIBC_2_41);
+versioned_symbol (libc, __pthread_mutexattr_getrobust, pthread_mutexattr_getrobust_np, GLIBC_2_41);
-weak_alias (pthread_mutexattr_getrobust, pthread_mutexattr_getrobust_np)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_getrobust,pthread_mutexattr_getrobust, GLIBC_2_32);
+compat_symbol (libpthread, __pthread_mutexattr_getrobust,pthread_mutexattr_getrobust_np, GLIBC_2_32);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c b/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
index a2e80c0..b554bc4 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_gettype. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,16 +16,23 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_gettype (const pthread_mutexattr_t *attrp, int *outp)
+__pthread_mutexattr_gettype (const pthread_mutexattr_t *attrp, int *outp)
{
*outp = attrp->__mutex_type;
return 0;
}
+libc_hidden_def (__pthread_mutexattr_gettype)
+versioned_symbol (libc, __pthread_mutexattr_gettype, pthread_mutexattr_gettype, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_gettype,pthread_mutexattr_gettype, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-init.c b/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
index d51df27..0464dcd 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_init. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,4 +38,5 @@ __pthread_mutexattr_init (pthread_mutexattr_t *attrp)
*attrp = dfl_attr;
return 0;
}
+hidden_def (__pthread_mutexattr_init)
weak_alias (__pthread_mutexattr_init, pthread_mutexattr_init)
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
index ce0c7c0..8515235 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprioceiling. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,19 +16,25 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_setprioceiling (pthread_mutexattr_t *attrp, int cl)
+__pthread_mutexattr_setprioceiling (pthread_mutexattr_t *attrp, int cl)
{
(void) attrp;
(void) cl;
return ENOSYS;
}
+libc_hidden_def (__pthread_mutexattr_setprioceiling)
+versioned_symbol (libc, __pthread_mutexattr_setprioceiling, pthread_mutexattr_setprioceiling, GLIBC_2_41);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_setprioceiling,pthread_mutexattr_setprioceiling, GLIBC_2_12);
+#endif
stub_warning (pthread_mutexattr_setprioceiling)
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
index 96baeee..875ea22 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprotocol. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,15 +16,16 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_setprotocol (pthread_mutexattr_t *attrp, int proto)
+__pthread_mutexattr_setprotocol (pthread_mutexattr_t *attrp, int proto)
{
(void) attrp;
return (proto == PTHREAD_PRIO_NONE
@@ -32,3 +33,9 @@ pthread_mutexattr_setprotocol (pthread_mutexattr_t *attrp, int proto)
: (proto != PTHREAD_PRIO_INHERIT
&& proto != PTHREAD_PRIO_PROTECT) ? EINVAL : ENOTSUP);
}
+libc_hidden_def (__pthread_mutexattr_setprotocol)
+versioned_symbol (libc, __pthread_mutexattr_setprotocol, pthread_mutexattr_setprotocol, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_setprotocol,pthread_mutexattr_setprotocol, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
index 5cead75..16b1099 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setpshared. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,15 +16,16 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_setpshared (pthread_mutexattr_t *attrp, int pshared)
+__pthread_mutexattr_setpshared (pthread_mutexattr_t *attrp, int pshared)
{
if (pshared != PTHREAD_PROCESS_PRIVATE && pshared != PTHREAD_PROCESS_SHARED)
return EINVAL;
@@ -32,3 +33,10 @@ pthread_mutexattr_setpshared (pthread_mutexattr_t *attrp, int pshared)
attrp->__pshared = pshared;
return 0;
}
+
+libc_hidden_def (__pthread_mutexattr_setpshared)
+versioned_symbol (libc, __pthread_mutexattr_setpshared, pthread_mutexattr_setpshared, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_setpshared,pthread_mutexattr_setpshared, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
index cb92366..8d90814 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setrobust. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,15 +16,16 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <assert.h>
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
-pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust)
+__pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust)
{
if (robust != PTHREAD_MUTEX_ROBUST && robust != PTHREAD_MUTEX_STALLED)
return EINVAL;
@@ -32,5 +33,11 @@ pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust)
attrp->__prioceiling |= robust;
return 0;
}
+libc_hidden_def (__pthread_mutexattr_setrobust)
+versioned_symbol (libc, __pthread_mutexattr_setrobust, pthread_mutexattr_setrobust, GLIBC_2_41);
+versioned_symbol (libc, __pthread_mutexattr_setrobust, pthread_mutexattr_setrobust_np, GLIBC_2_41);
-weak_alias (pthread_mutexattr_setrobust, pthread_mutexattr_setrobust_np)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_setrobust,pthread_mutexattr_setrobust, GLIBC_2_32);
+compat_symbol (libpthread, __pthread_mutexattr_setrobust,pthread_mutexattr_setrobust_np, GLIBC_2_32);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c b/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
index c643227..84aeaee 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_settype. Hurd version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,7 @@
#include <pt-internal.h>
#include "pt-mutex.h"
#include <hurdlock.h>
+#include <shlib-compat.h>
int
__pthread_mutexattr_settype (pthread_mutexattr_t *attrp, int type)
@@ -32,4 +33,9 @@ __pthread_mutexattr_settype (pthread_mutexattr_t *attrp, int type)
attrp->__mutex_type = type;
return 0;
}
-weak_alias (__pthread_mutexattr_settype, pthread_mutexattr_settype)
+libc_hidden_def (__pthread_mutexattr_settype)
+versioned_symbol (libc, __pthread_mutexattr_settype, pthread_mutexattr_settype, GLIBC_2_41);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
+compat_symbol (libpthread, __pthread_mutexattr_settype,pthread_mutexattr_settype, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/htl/pt-pthread_self.c b/sysdeps/mach/hurd/htl/pt-pthread_self.c
index d11d0ec..7357433 100644
--- a/sysdeps/mach/hurd/htl/pt-pthread_self.c
+++ b/sysdeps/mach/hurd/htl/pt-pthread_self.c
@@ -1,5 +1,5 @@
/* ___pthread_self variable.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
index 3e97e9d..ed5eb96 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
@@ -1,5 +1,5 @@
/* Destroy the signal state. Hurd on Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,3 +26,4 @@ __pthread_sigstate_destroy (struct __pthread *thread)
{
_hurd_sigstate_delete (thread->kernel_thread);
}
+libc_hidden_def (__pthread_sigstate_destroy)
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-init.c b/sysdeps/mach/hurd/htl/pt-sigstate-init.c
index d256825..5a17dd5 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate-init.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate-init.c
@@ -1,5 +1,5 @@
/* Initialize the signal state. Hurd on Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate.c b/sysdeps/mach/hurd/htl/pt-sigstate.c
index 2b0c493..3f5bae9 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate.c
@@ -1,5 +1,5 @@
/* Set a thread's signal state. Hurd on Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,57 +28,7 @@ error_t
__pthread_sigstate (struct __pthread *thread, int how,
const sigset_t *set, sigset_t *oset, int clear_pending)
{
- error_t err = 0;
- struct hurd_sigstate *ss;
- sigset_t old, new;
- sigset_t pending;
-
- if (set != NULL)
- new = *set;
-
- ss = _hurd_thread_sigstate (thread->kernel_thread);
- assert (ss);
-
- _hurd_sigstate_lock (ss);
-
- old = ss->blocked;
-
- if (set != NULL)
- {
- switch (how)
- {
- case SIG_BLOCK:
- ss->blocked |= new;
- break;
-
- case SIG_SETMASK:
- ss->blocked = new;
- break;
-
- case SIG_UNBLOCK:
- ss->blocked &= ~new;
- break;
-
- default:
- err = EINVAL;
- break;
- }
- ss->blocked &= ~_SIG_CANT_MASK;
- }
-
- if (!err && clear_pending)
- __sigemptyset (&ss->pending);
-
- pending = _hurd_sigstate_pending (ss) & ~ss->blocked;
- _hurd_sigstate_unlock (ss);
-
- if (!err && oset != NULL)
- *oset = old;
-
- if (!err && pending)
- /* Send a message to the signal thread so it
- will wake up and check for pending signals. */
- __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());
-
- return err;
+ return __sigthreadmask (_hurd_thread_sigstate (thread->kernel_thread),
+ how, set, oset, clear_pending);
}
+libc_hidden_def (__pthread_sigstate)
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c
index f5c1c24..3505d31 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.c
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.c
@@ -1,5 +1,5 @@
/* System dependent pthreads code. Hurd version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.h b/sysdeps/mach/hurd/htl/pt-sysdep.h
index 8e94395..fb451e0 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.h
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.h
@@ -1,5 +1,5 @@
/* Internal definitions for pthreads library.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/____longjmp_chk.S b/sysdeps/mach/hurd/i386/____longjmp_chk.S
index e40b485..705113e 100644
--- a/sysdeps/mach/hurd/i386/____longjmp_chk.S
+++ b/sysdeps/mach/hurd/i386/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/__longjmp.S b/sysdeps/mach/hurd/i386/__longjmp.S
index d13c3ee..1cd44ef 100644
--- a/sysdeps/mach/hurd/i386/__longjmp.S
+++ b/sysdeps/mach/hurd/i386/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/bits/ipc-perm.h b/sysdeps/mach/hurd/i386/bits/ipc-perm.h
index 75c9a7e6..27474e8 100644
--- a/sysdeps/mach/hurd/i386/bits/ipc-perm.h
+++ b/sysdeps/mach/hurd/i386/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/bits/sigcontext.h b/sysdeps/mach/hurd/i386/bits/sigcontext.h
index 8911746..c44e4de 100644
--- a/sysdeps/mach/hurd/i386/bits/sigcontext.h
+++ b/sysdeps/mach/hurd/i386/bits/sigcontext.h
@@ -1,5 +1,5 @@
/* Machine-dependent signal context structure for GNU Hurd. i386 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -88,6 +88,8 @@ struct sigcontext
struct i386_fp_save sc_fpsave;
struct i386_fp_regs sc_fpregs;
int sc_fpexcsr; /* FPSR including exception bits. */
+
+ struct i386_xfloat_state *xstate;
};
/* Traditional BSD names for some members. */
diff --git a/sysdeps/mach/hurd/i386/bits/types/struct_flock.h b/sysdeps/mach/hurd/i386/bits/types/struct_flock.h
index 61f5eed..b61aa08 100644
--- a/sysdeps/mach/hurd/i386/bits/types/struct_flock.h
+++ b/sysdeps/mach/hurd/i386/bits/types/struct_flock.h
@@ -1,5 +1,5 @@
/* flock structure. i386 version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/bits/types/struct_msqid_ds.h b/sysdeps/mach/hurd/i386/bits/types/struct_msqid_ds.h
index 1d9c81c..0484235 100644
--- a/sysdeps/mach/hurd/i386/bits/types/struct_msqid_ds.h
+++ b/sysdeps/mach/hurd/i386/bits/types/struct_msqid_ds.h
@@ -1,6 +1,6 @@
/* Machine-dependent of the SysV message struct msqid_ds for GNU Hurd.
i386 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/bits/types/struct_shmid_ds.h b/sysdeps/mach/hurd/i386/bits/types/struct_shmid_ds.h
index 8b8f268..0e31ddd 100644
--- a/sysdeps/mach/hurd/i386/bits/types/struct_shmid_ds.h
+++ b/sysdeps/mach/hurd/i386/bits/types/struct_shmid_ds.h
@@ -1,6 +1,6 @@
/* Generic implementation of the shared memory struct shmid_ds for GNU Hurd.
i386 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/dl-tls-initialized.c b/sysdeps/mach/hurd/i386/dl-tls-initialized.c
index 01aad47..dbd9c3d 100644
--- a/sysdeps/mach/hurd/i386/dl-tls-initialized.c
+++ b/sysdeps/mach/hurd/i386/dl-tls-initialized.c
@@ -1,5 +1,5 @@
/* Determine whether TLS is initialized, for i386/Hurd.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/getcontext.S b/sysdeps/mach/hurd/i386/getcontext.S
index 1b85ad4..cf1d8ad 100644
--- a/sysdeps/mach/hurd/i386/getcontext.S
+++ b/sysdeps/mach/hurd/i386/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/htl/bits/types/__pthread_t.h b/sysdeps/mach/hurd/i386/htl/bits/types/__pthread_t.h
index fc0c2b2..4efa7e6 100644
--- a/sysdeps/mach/hurd/i386/htl/bits/types/__pthread_t.h
+++ b/sysdeps/mach/hurd/i386/htl/bits/types/__pthread_t.h
@@ -1,5 +1,5 @@
/* Thread type. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/htl/bits/types/__thrd_t.h b/sysdeps/mach/hurd/i386/htl/bits/types/__thrd_t.h
index 8e1e0ff..57b3250 100644
--- a/sysdeps/mach/hurd/i386/htl/bits/types/__thrd_t.h
+++ b/sysdeps/mach/hurd/i386/htl/bits/types/__thrd_t.h
@@ -1,5 +1,5 @@
/* Thread type. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/htl/pt-machdep.c b/sysdeps/mach/hurd/i386/htl/pt-machdep.c
index e6d234f..fd3eb86 100644
--- a/sysdeps/mach/hurd/i386/htl/pt-machdep.c
+++ b/sysdeps/mach/hurd/i386/htl/pt-machdep.c
@@ -1,5 +1,5 @@
/* Machine dependent pthreads code. Hurd/i386 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/htl/pt-setup.c b/sysdeps/mach/hurd/i386/htl/pt-setup.c
index 8696e4c..c6df010 100644
--- a/sysdeps/mach/hurd/i386/htl/pt-setup.c
+++ b/sysdeps/mach/hurd/i386/htl/pt-setup.c
@@ -1,5 +1,5 @@
/* Setup thread stack. Hurd/i386 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/intr-msg.h b/sysdeps/mach/hurd/i386/intr-msg.h
index a6ccbb5..68435e5 100644
--- a/sysdeps/mach/hurd/i386/intr-msg.h
+++ b/sysdeps/mach/hurd/i386/intr-msg.h
@@ -1,5 +1,5 @@
/* Machine-dependent details of interruptible RPC messaging. i386 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index dc2c6b5..aac3cb3 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -28,18 +28,91 @@ GLIBC_2.11 mkostemps F
GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 __pthread_get_cleanup_stack F
+GLIBC_2.12 __pthread_key_create F
GLIBC_2.12 __pthread_self F
+GLIBC_2.12 pthread_attr_destroy F
GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getguardsize F
GLIBC_2.12 pthread_attr_getinheritsched F
GLIBC_2.12 pthread_attr_getschedparam F
GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_getstack F
+GLIBC_2.12 pthread_attr_getstackaddr F
+GLIBC_2.12 pthread_attr_getstacksize F
+GLIBC_2.12 pthread_attr_init F
GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setguardsize F
GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_attr_setstack F
+GLIBC_2.12 pthread_attr_setstackaddr F
+GLIBC_2.12 pthread_attr_setstacksize F
+GLIBC_2.12 pthread_barrier_destroy F
+GLIBC_2.12 pthread_barrier_init F
+GLIBC_2.12 pthread_barrier_wait F
+GLIBC_2.12 pthread_barrierattr_destroy F
+GLIBC_2.12 pthread_barrierattr_getpshared F
+GLIBC_2.12 pthread_barrierattr_init F
+GLIBC_2.12 pthread_barrierattr_setpshared F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_getclock F
+GLIBC_2.12 pthread_condattr_getpshared F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_condattr_setclock F
+GLIBC_2.12 pthread_condattr_setpshared F
GLIBC_2.12 pthread_equal F
GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_getspecific F
+GLIBC_2.12 pthread_key_create F
+GLIBC_2.12 pthread_key_delete F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_getprioceiling F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_setprioceiling F
+GLIBC_2.12 pthread_mutex_timedlock F
+GLIBC_2.12 pthread_mutex_trylock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_mutexattr_destroy F
+GLIBC_2.12 pthread_mutexattr_getprioceiling F
+GLIBC_2.12 pthread_mutexattr_getprotocol F
+GLIBC_2.12 pthread_mutexattr_getpshared F
+GLIBC_2.12 pthread_mutexattr_gettype F
+GLIBC_2.12 pthread_mutexattr_init F
+GLIBC_2.12 pthread_mutexattr_setprioceiling F
+GLIBC_2.12 pthread_mutexattr_setprotocol F
+GLIBC_2.12 pthread_mutexattr_setpshared F
+GLIBC_2.12 pthread_mutexattr_settype F
+GLIBC_2.12 pthread_once F
+GLIBC_2.12 pthread_rwlock_destroy F
+GLIBC_2.12 pthread_rwlock_init F
+GLIBC_2.12 pthread_rwlock_rdlock F
+GLIBC_2.12 pthread_rwlock_timedrdlock F
+GLIBC_2.12 pthread_rwlock_timedwrlock F
+GLIBC_2.12 pthread_rwlock_tryrdlock F
+GLIBC_2.12 pthread_rwlock_trywrlock F
+GLIBC_2.12 pthread_rwlock_unlock F
+GLIBC_2.12 pthread_rwlock_wrlock F
+GLIBC_2.12 pthread_rwlockattr_destroy F
+GLIBC_2.12 pthread_rwlockattr_getpshared F
+GLIBC_2.12 pthread_rwlockattr_init F
+GLIBC_2.12 pthread_rwlockattr_setpshared F
GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 pthread_setspecific F
+GLIBC_2.12 pthread_sigmask F
GLIBC_2.13 __fentry__ F
GLIBC_2.14 syncfs F
GLIBC_2.15 __fdelt_chk F
@@ -2226,6 +2299,16 @@ GLIBC_2.30 twalk_r F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 mach_print F
GLIBC_2.32 mremap F
+GLIBC_2.32 pthread_cond_clockwait F
+GLIBC_2.32 pthread_mutex_clocklock F
+GLIBC_2.32 pthread_mutex_consistent F
+GLIBC_2.32 pthread_mutex_consistent_np F
+GLIBC_2.32 pthread_mutexattr_getrobust F
+GLIBC_2.32 pthread_mutexattr_getrobust_np F
+GLIBC_2.32 pthread_mutexattr_setrobust F
+GLIBC_2.32 pthread_mutexattr_setrobust_np F
+GLIBC_2.32 pthread_rwlock_clockrdlock F
+GLIBC_2.32 pthread_rwlock_clockwrlock F
GLIBC_2.32 sigabbrev_np F
GLIBC_2.32 sigdescr_np F
GLIBC_2.32 strerrordesc_np F
@@ -2482,6 +2565,74 @@ GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
+GLIBC_2.41 pthread_attr_getguardsize F
+GLIBC_2.41 pthread_attr_getstack F
+GLIBC_2.41 pthread_attr_getstackaddr F
+GLIBC_2.41 pthread_attr_getstacksize F
+GLIBC_2.41 pthread_attr_setguardsize F
+GLIBC_2.41 pthread_attr_setstack F
+GLIBC_2.41 pthread_attr_setstackaddr F
+GLIBC_2.41 pthread_attr_setstacksize F
+GLIBC_2.41 pthread_condattr_getclock F
+GLIBC_2.41 pthread_condattr_getpshared F
+GLIBC_2.41 pthread_condattr_setclock F
+GLIBC_2.41 pthread_condattr_setpshared F
+GLIBC_2.41 pthread_mutexattr_getprioceiling F
+GLIBC_2.41 pthread_mutexattr_getprotocol F
+GLIBC_2.41 pthread_mutexattr_getpshared F
+GLIBC_2.41 pthread_mutexattr_getrobust F
+GLIBC_2.41 pthread_mutexattr_getrobust_np F
+GLIBC_2.41 pthread_mutexattr_gettype F
+GLIBC_2.41 pthread_mutexattr_setprioceiling F
+GLIBC_2.41 pthread_mutexattr_setprotocol F
+GLIBC_2.41 pthread_mutexattr_setpshared F
+GLIBC_2.41 pthread_mutexattr_setrobust F
+GLIBC_2.41 pthread_mutexattr_setrobust_np F
+GLIBC_2.41 pthread_mutexattr_settype F
+GLIBC_2.41 pthread_sigmask F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 pthread_barrier_destroy F
+GLIBC_2.42 pthread_barrier_init F
+GLIBC_2.42 pthread_barrier_wait F
+GLIBC_2.42 pthread_barrierattr_destroy F
+GLIBC_2.42 pthread_barrierattr_getpshared F
+GLIBC_2.42 pthread_barrierattr_init F
+GLIBC_2.42 pthread_barrierattr_setpshared F
+GLIBC_2.42 pthread_getspecific F
+GLIBC_2.42 pthread_key_create F
+GLIBC_2.42 pthread_key_delete F
+GLIBC_2.42 pthread_mutex_consistent F
+GLIBC_2.42 pthread_mutex_consistent_np F
+GLIBC_2.42 pthread_mutex_getprioceiling F
+GLIBC_2.42 pthread_mutex_setprioceiling F
+GLIBC_2.42 pthread_mutex_trylock F
+GLIBC_2.42 pthread_once F
+GLIBC_2.42 pthread_rwlock_clockrdlock F
+GLIBC_2.42 pthread_rwlock_clockwrlock F
+GLIBC_2.42 pthread_rwlock_destroy F
+GLIBC_2.42 pthread_rwlock_init F
+GLIBC_2.42 pthread_rwlock_rdlock F
+GLIBC_2.42 pthread_rwlock_timedrdlock F
+GLIBC_2.42 pthread_rwlock_timedwrlock F
+GLIBC_2.42 pthread_rwlock_tryrdlock F
+GLIBC_2.42 pthread_rwlock_trywrlock F
+GLIBC_2.42 pthread_rwlock_unlock F
+GLIBC_2.42 pthread_rwlock_wrlock F
+GLIBC_2.42 pthread_rwlockattr_destroy F
+GLIBC_2.42 pthread_rwlockattr_getpshared F
+GLIBC_2.42 pthread_rwlockattr_init F
+GLIBC_2.42 pthread_rwlockattr_setpshared F
+GLIBC_2.42 pthread_setspecific F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 1811377..47d215f 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1221,3 +1221,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist
index 3ea7cb4..9d2c4cd 100644
--- a/sysdeps/mach/hurd/i386/libpthread.abilist
+++ b/sysdeps/mach/hurd/i386/libpthread.abilist
@@ -1,7 +1,5 @@
GLIBC_2.12 __mutex_lock_solid F
GLIBC_2.12 __mutex_unlock_solid F
-GLIBC_2.12 __pthread_get_cleanup_stack F
-GLIBC_2.12 __pthread_key_create F
GLIBC_2.12 __pthread_kill F
GLIBC_2.12 __pthread_mutex_transfer_np F
GLIBC_2.12 __pthread_spin_destroy F
@@ -22,89 +20,18 @@ GLIBC_2.12 flockfile F
GLIBC_2.12 ftrylockfile F
GLIBC_2.12 funlockfile F
GLIBC_2.12 pthread_atfork F
-GLIBC_2.12 pthread_attr_destroy F
-GLIBC_2.12 pthread_attr_getguardsize F
-GLIBC_2.12 pthread_attr_getscope F
-GLIBC_2.12 pthread_attr_getstack F
-GLIBC_2.12 pthread_attr_getstackaddr F
-GLIBC_2.12 pthread_attr_getstacksize F
-GLIBC_2.12 pthread_attr_init F
-GLIBC_2.12 pthread_attr_setguardsize F
-GLIBC_2.12 pthread_attr_setschedparam F
-GLIBC_2.12 pthread_attr_setscope F
-GLIBC_2.12 pthread_attr_setstack F
-GLIBC_2.12 pthread_attr_setstackaddr F
-GLIBC_2.12 pthread_attr_setstacksize F
-GLIBC_2.12 pthread_barrier_destroy F
-GLIBC_2.12 pthread_barrier_init F
-GLIBC_2.12 pthread_barrier_wait F
-GLIBC_2.12 pthread_barrierattr_destroy F
-GLIBC_2.12 pthread_barrierattr_getpshared F
-GLIBC_2.12 pthread_barrierattr_init F
-GLIBC_2.12 pthread_barrierattr_setpshared F
GLIBC_2.12 pthread_cancel F
-GLIBC_2.12 pthread_cond_broadcast F
-GLIBC_2.12 pthread_cond_destroy F
-GLIBC_2.12 pthread_cond_init F
-GLIBC_2.12 pthread_cond_signal F
-GLIBC_2.12 pthread_cond_timedwait F
-GLIBC_2.12 pthread_cond_wait F
-GLIBC_2.12 pthread_condattr_destroy F
-GLIBC_2.12 pthread_condattr_getclock F
-GLIBC_2.12 pthread_condattr_getpshared F
-GLIBC_2.12 pthread_condattr_init F
-GLIBC_2.12 pthread_condattr_setclock F
-GLIBC_2.12 pthread_condattr_setpshared F
GLIBC_2.12 pthread_create F
GLIBC_2.12 pthread_detach F
GLIBC_2.12 pthread_exit F
GLIBC_2.12 pthread_getattr_np F
GLIBC_2.12 pthread_getconcurrency F
GLIBC_2.12 pthread_getcpuclockid F
-GLIBC_2.12 pthread_getspecific F
GLIBC_2.12 pthread_join F
-GLIBC_2.12 pthread_key_create F
-GLIBC_2.12 pthread_key_delete F
GLIBC_2.12 pthread_kill F
-GLIBC_2.12 pthread_mutex_destroy F
-GLIBC_2.12 pthread_mutex_getprioceiling F
-GLIBC_2.12 pthread_mutex_init F
-GLIBC_2.12 pthread_mutex_lock F
-GLIBC_2.12 pthread_mutex_setprioceiling F
-GLIBC_2.12 pthread_mutex_timedlock F
GLIBC_2.12 pthread_mutex_transfer_np F
-GLIBC_2.12 pthread_mutex_trylock F
-GLIBC_2.12 pthread_mutex_unlock F
-GLIBC_2.12 pthread_mutexattr_destroy F
-GLIBC_2.12 pthread_mutexattr_getprioceiling F
-GLIBC_2.12 pthread_mutexattr_getprotocol F
-GLIBC_2.12 pthread_mutexattr_getpshared F
-GLIBC_2.12 pthread_mutexattr_gettype F
-GLIBC_2.12 pthread_mutexattr_init F
-GLIBC_2.12 pthread_mutexattr_setprioceiling F
-GLIBC_2.12 pthread_mutexattr_setprotocol F
-GLIBC_2.12 pthread_mutexattr_setpshared F
-GLIBC_2.12 pthread_mutexattr_settype F
-GLIBC_2.12 pthread_once F
-GLIBC_2.12 pthread_rwlock_destroy F
-GLIBC_2.12 pthread_rwlock_init F
-GLIBC_2.12 pthread_rwlock_rdlock F
-GLIBC_2.12 pthread_rwlock_timedrdlock F
-GLIBC_2.12 pthread_rwlock_timedwrlock F
-GLIBC_2.12 pthread_rwlock_tryrdlock F
-GLIBC_2.12 pthread_rwlock_trywrlock F
-GLIBC_2.12 pthread_rwlock_unlock F
-GLIBC_2.12 pthread_rwlock_wrlock F
-GLIBC_2.12 pthread_rwlockattr_destroy F
-GLIBC_2.12 pthread_rwlockattr_getpshared F
-GLIBC_2.12 pthread_rwlockattr_init F
-GLIBC_2.12 pthread_rwlockattr_setpshared F
-GLIBC_2.12 pthread_setcancelstate F
-GLIBC_2.12 pthread_setcanceltype F
GLIBC_2.12 pthread_setconcurrency F
GLIBC_2.12 pthread_setschedprio F
-GLIBC_2.12 pthread_setspecific F
-GLIBC_2.12 pthread_sigmask F
GLIBC_2.12 pthread_spin_destroy F
GLIBC_2.12 pthread_spin_init F
GLIBC_2.12 pthread_spin_lock F
@@ -143,16 +70,6 @@ GLIBC_2.32 mtx_timedlock F
GLIBC_2.32 mtx_trylock F
GLIBC_2.32 mtx_unlock F
GLIBC_2.32 pthread_clockjoin_np F
-GLIBC_2.32 pthread_cond_clockwait F
-GLIBC_2.32 pthread_mutex_clocklock F
-GLIBC_2.32 pthread_mutex_consistent F
-GLIBC_2.32 pthread_mutex_consistent_np F
-GLIBC_2.32 pthread_mutexattr_getrobust F
-GLIBC_2.32 pthread_mutexattr_getrobust_np F
-GLIBC_2.32 pthread_mutexattr_setrobust F
-GLIBC_2.32 pthread_mutexattr_setrobust_np F
-GLIBC_2.32 pthread_rwlock_clockrdlock F
-GLIBC_2.32 pthread_rwlock_clockwrlock F
GLIBC_2.32 pthread_timedjoin_np F
GLIBC_2.32 pthread_tryjoin_np F
GLIBC_2.32 sem_clockwait F
diff --git a/sysdeps/mach/hurd/i386/longjmp-ts.c b/sysdeps/mach/hurd/i386/longjmp-ts.c
index 962dda6..c95eb0a 100644
--- a/sysdeps/mach/hurd/i386/longjmp-ts.c
+++ b/sysdeps/mach/hurd/i386/longjmp-ts.c
@@ -1,5 +1,5 @@
/* Perform a `longjmp' on a Mach thread_state. i386 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/makecontext.S b/sysdeps/mach/hurd/i386/makecontext.S
index 7ee5630..1ccd10c 100644
--- a/sysdeps/mach/hurd/i386/makecontext.S
+++ b/sysdeps/mach/hurd/i386/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/setcontext.S b/sysdeps/mach/hurd/i386/setcontext.S
index a5f6f80..3d204c8 100644
--- a/sysdeps/mach/hurd/i386/setcontext.S
+++ b/sysdeps/mach/hurd/i386/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/sigcontextinfo.h b/sysdeps/mach/hurd/i386/sigcontextinfo.h
index 885dcc1..acbcdb3 100644
--- a/sysdeps/mach/hurd/i386/sigcontextinfo.h
+++ b/sysdeps/mach/hurd/i386/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/sigreturn.c b/sysdeps/mach/hurd/i386/sigreturn.c
index 1333ca5..dc57d61 100644
--- a/sysdeps/mach/hurd/i386/sigreturn.c
+++ b/sysdeps/mach/hurd/i386/sigreturn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,14 +15,14 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-register int *sp asm ("%esp");
-
#include <hurd.h>
#include <hurd/signal.h>
#include <hurd/msg.h>
#include <stdlib.h>
#include <string.h>
+#include <cpuid.h>
+
/* This is run on the thread stack after restoring it, to be able to
unlock SS off sigstack. */
static void
@@ -54,29 +54,36 @@ __sigreturn2 (int *usp, struct sigcontext *scp)
MACH_PORT_RIGHT_RECEIVE, -1);
THREAD_SETMEM (THREAD_SELF, reply_port, scp->sc_reply_port);
- sp = usp;
-#define A(line) asm volatile (#line)
- /* The members in the sigcontext are arranged in this order
- so we can pop them easily. */
-
- /* Pop the segment registers (except %cs and %ss, done last). */
- A (popl %gs);
- A (popl %fs);
- A (popl %es);
- A (popl %ds);
- /* Pop the general registers. */
- A (popa);
- /* Pop the processor flags. */
- A (popf);
- /* Return to the saved PC. */
- A (ret);
-
- /* Firewall. */
- A (hlt);
-#undef A
- __builtin_unreachable ();
+ void sigreturn2_trampoline (int *usp) __attribute__ ((__noreturn__));
+ sigreturn2_trampoline (usp);
}
+asm("sigreturn2_trampoline:\n"
+
+ /* Restore thread stack */
+ "movl 4(%esp),%esp\n"
+
+ /* The members in the sigcontext are arranged in this order
+ so we can pop them easily. */
+
+ /* Pop the segment registers (except %cs and %ss, done last). */
+ "popl %gs\n"
+ "popl %fs\n"
+ "popl %es\n"
+ "popl %ds\n"
+
+ /* Pop the general registers. */
+ "popa\n"
+
+ /* Pop the processor flags. */
+ "popf\n"
+
+ /* Return to the saved PC. */
+ "ret\n"
+
+ /* Firewall. */
+ "hlt\n");
+
int
__sigreturn (struct sigcontext *scp)
{
@@ -118,10 +125,35 @@ __sigreturn (struct sigcontext *scp)
if (scp->sc_onstack)
ss->sigaltstack.ss_flags &= ~SS_ONSTACK;
- if (scp->sc_fpused)
- /* Restore the FPU state. Mach conveniently stores the state
- in the format the i387 `frstor' instruction uses to restore it. */
- asm volatile ("frstor %0" : : "m" (scp->sc_fpsave));
+#ifdef i386_XFLOAT_STATE
+ if (scp->xstate)
+ {
+ if (scp->xstate->initialized)
+ {
+ unsigned eax, ebx, ecx, edx;
+ __cpuid_count(0xd, 0, eax, ebx, ecx, edx);
+ switch (scp->xstate->fp_save_kind)
+ {
+ case 0: // FNSAVE
+ asm volatile("frstor %0" : : "m" (scp->xstate->hw_state));
+ break;
+ case 1: // FXSAVE
+ asm volatile("fxrstor %0" : : "m" (scp->xstate->hw_state), \
+ "a" (eax), "d" (edx));
+ break;
+ default: // XSAVE, XSAVEOPT, XSAVEC, XSAVES
+ asm volatile("xrstor %0" : : "m" (scp->xstate->hw_state), \
+ "a" (eax), "d" (edx));
+ break;
+ }
+ }
+ }
+ else
+#endif
+ if (scp->sc_fpused)
+ /* Restore the FPU state. Mach conveniently stores the state
+ in the format the i387 `frstor' instruction uses to restore it. */
+ asm volatile ("frstor %0" : : "m" (scp->sc_fpsave));
{
/* There are convenient instructions to pop state off the stack, so we
@@ -142,16 +174,21 @@ __sigreturn (struct sigcontext *scp)
*--usp = 0;
*--usp = (int) __sigreturn2;
+
+ void sigreturn_trampoline (int *usp) __attribute__ ((__noreturn__));
+ sigreturn_trampoline (usp);
+ }
+}
+
+asm("sigreturn_trampoline:\n"
+
/* Restore thread stack */
- sp = usp;
+ "movl 4(%esp),%esp\n"
+
/* Return into __sigreturn2. */
- asm volatile ("ret");
- /* Firewall. */
- asm volatile ("hlt");
- }
+ "ret\n"
- /* NOTREACHED */
- return -1;
-}
+ /* Firewall. */
+ "hlt\n");
weak_alias (__sigreturn, sigreturn)
diff --git a/sysdeps/mach/hurd/i386/static-start.S b/sysdeps/mach/hurd/i386/static-start.S
index 3ffcb47..9cc092a 100644
--- a/sysdeps/mach/hurd/i386/static-start.S
+++ b/sysdeps/mach/hurd/i386/static-start.S
@@ -1,5 +1,5 @@
/* Startup code for statically linked Hurd/i386 binaries.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/swapcontext.S b/sysdeps/mach/hurd/i386/swapcontext.S
index ee25193..bf5520b 100644
--- a/sysdeps/mach/hurd/i386/swapcontext.S
+++ b/sysdeps/mach/hurd/i386/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
index 08b600a..dc35792 100644
--- a/sysdeps/mach/hurd/i386/tls.h
+++ b/sysdeps/mach/hurd/i386/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. Hurd/i386 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/i386/vm_param.h b/sysdeps/mach/hurd/i386/vm_param.h
index 7537ced..ad88808 100644
--- a/sysdeps/mach/hurd/i386/vm_param.h
+++ b/sysdeps/mach/hurd/i386/vm_param.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/if_index.c b/sysdeps/mach/hurd/if_index.c
index 38170b1..13d9cbc 100644
--- a/sysdeps/mach/hurd/if_index.c
+++ b/sysdeps/mach/hurd/if_index.c
@@ -1,5 +1,5 @@
/* Find network interface names and index numbers. Hurd version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ifreq.c b/sysdeps/mach/hurd/ifreq.c
index c3440dc..607243c 100644
--- a/sysdeps/mach/hurd/ifreq.c
+++ b/sysdeps/mach/hurd/ifreq.c
@@ -1,5 +1,5 @@
/* Fetch the host's network interface list. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ifreq.h b/sysdeps/mach/hurd/ifreq.h
index 5148f3c..67b9584 100644
--- a/sysdeps/mach/hurd/ifreq.h
+++ b/sysdeps/mach/hurd/ifreq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/init-first.c b/sysdeps/mach/hurd/init-first.c
index 5777c44..a0b0618 100644
--- a/sysdeps/mach/hurd/init-first.c
+++ b/sysdeps/mach/hurd/init-first.c
@@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. For Hurd.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -249,6 +249,8 @@ _hurd_stack_setup (void **argptr)
_hurd_startup (argptr, &doinit);
__builtin_unreachable ();
}
+
+RETURN_TO_TRAMPOLINE();
#endif
diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c
index 424423c..28cfb2e 100644
--- a/sysdeps/mach/hurd/ioctl.c
+++ b/sysdeps/mach/hurd/ioctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/isatty.c b/sysdeps/mach/hurd/isatty.c
index 395e6bb..a40989a 100644
--- a/sysdeps/mach/hurd/isatty.c
+++ b/sysdeps/mach/hurd/isatty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/jmp-unwind.c b/sysdeps/mach/hurd/jmp-unwind.c
index 35b4961..6812254 100644
--- a/sysdeps/mach/hurd/jmp-unwind.c
+++ b/sysdeps/mach/hurd/jmp-unwind.c
@@ -1,5 +1,5 @@
/* _longjmp_unwind -- Clean up stack frames unwound by longjmp. Hurd version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/kernel-features.h b/sysdeps/mach/hurd/kernel-features.h
index ecc4052..3a5b531 100644
--- a/sysdeps/mach/hurd/kernel-features.h
+++ b/sysdeps/mach/hurd/kernel-features.h
@@ -1,5 +1,5 @@
/* Set flags signalling availability of certain operating system features.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/kill.c b/sysdeps/mach/hurd/kill.c
index 83f586a..8cba3cc 100644
--- a/sysdeps/mach/hurd/kill.c
+++ b/sysdeps/mach/hurd/kill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,9 @@
#include <errno.h>
#include <sys/types.h>
+#include <sys/wait.h>
#include <signal.h>
+#include <unistd.h>
#include <hurd.h>
#include <hurd/port.h>
#include <hurd/signal.h>
@@ -34,6 +36,14 @@ __kill (pid_t pid, int sig)
mach_port_t proc;
struct hurd_userlink ulink;
+ if (pid == __getpid () && _hurd_msgport == MACH_PORT_NULL)
+ {
+ /* We are trying to kill ourself but we have not even initialized our own
+ msgport yet. Abort by hand. */
+ _exit (127);
+ /* NOTREACHED */
+ }
+
void kill_pid (pid_t pid) /* Kill one PID. */
{
/* SIGKILL is not delivered as a normal signal.
diff --git a/sysdeps/mach/hurd/lchmod.c b/sysdeps/mach/hurd/lchmod.c
index e31d8dd..71f051f 100644
--- a/sysdeps/mach/hurd/lchmod.c
+++ b/sysdeps/mach/hurd/lchmod.c
@@ -1,5 +1,5 @@
/* lchmod -- Change the protections of a file or symbolic link. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lchown.c b/sysdeps/mach/hurd/lchown.c
index 26b4ad9..7daac03 100644
--- a/sysdeps/mach/hurd/lchown.c
+++ b/sysdeps/mach/hurd/lchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lgetxattr.c b/sysdeps/mach/hurd/lgetxattr.c
index e227ab8..1dbbbc4 100644
--- a/sysdeps/mach/hurd/lgetxattr.c
+++ b/sysdeps/mach/hurd/lgetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/libc_sigaction.c b/sysdeps/mach/hurd/libc_sigaction.c
index f966027..14e683d 100644
--- a/sysdeps/mach/hurd/libc_sigaction.c
+++ b/sysdeps/mach/hurd/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/link.c b/sysdeps/mach/hurd/link.c
index 5f596e6..034d9e2 100644
--- a/sysdeps/mach/hurd/link.c
+++ b/sysdeps/mach/hurd/link.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/linkat.c b/sysdeps/mach/hurd/linkat.c
index e7c87ea..8f8e6c3 100644
--- a/sysdeps/mach/hurd/linkat.c
+++ b/sysdeps/mach/hurd/linkat.c
@@ -1,5 +1,5 @@
/* Make a link between file names relative to open directories. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -48,7 +48,11 @@ __linkat_common (int fromfd, const char *from, int tofd, const char *to, int at_
todir = __file_name_split_at (tofd, to, &toname);
if (todir != MACH_PORT_NULL)
{
- err = __dir_link (todir, linknode, toname, 1);
+ if (! *toname)
+ /* Can't link to the existing directory itself. */
+ err = ENOTDIR;
+ else
+ err = __dir_link (todir, linknode, toname, 1);
__mach_port_deallocate (__mach_task_self (), todir);
}
__mach_port_deallocate (__mach_task_self (), linknode);
diff --git a/sysdeps/mach/hurd/linkat_common.h b/sysdeps/mach/hurd/linkat_common.h
index 601b3d2..ab1f75c 100644
--- a/sysdeps/mach/hurd/linkat_common.h
+++ b/sysdeps/mach/hurd/linkat_common.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/listen.c b/sysdeps/mach/hurd/listen.c
index a55683b..455d6d5 100644
--- a/sysdeps/mach/hurd/listen.c
+++ b/sysdeps/mach/hurd/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/listxattr.c b/sysdeps/mach/hurd/listxattr.c
index d40f632..8bbc2a1 100644
--- a/sysdeps/mach/hurd/listxattr.c
+++ b/sysdeps/mach/hurd/listxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/llistxattr.c b/sysdeps/mach/hurd/llistxattr.c
index 9e36a0a..9e0ea7e 100644
--- a/sysdeps/mach/hurd/llistxattr.c
+++ b/sysdeps/mach/hurd/llistxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lremovexattr.c b/sysdeps/mach/hurd/lremovexattr.c
index 9068396..4933a8b 100644
--- a/sysdeps/mach/hurd/lremovexattr.c
+++ b/sysdeps/mach/hurd/lremovexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lseek.c b/sysdeps/mach/hurd/lseek.c
index 663bdd6..edc3a46 100644
--- a/sysdeps/mach/hurd/lseek.c
+++ b/sysdeps/mach/hurd/lseek.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lseek64.c b/sysdeps/mach/hurd/lseek64.c
index f27b5e0..eafbc31 100644
--- a/sysdeps/mach/hurd/lseek64.c
+++ b/sysdeps/mach/hurd/lseek64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lsetxattr.c b/sysdeps/mach/hurd/lsetxattr.c
index 49487f7..3558cc6 100644
--- a/sysdeps/mach/hurd/lsetxattr.c
+++ b/sysdeps/mach/hurd/lsetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lstat.c b/sysdeps/mach/hurd/lstat.c
index b8005ee..282c986 100644
--- a/sysdeps/mach/hurd/lstat.c
+++ b/sysdeps/mach/hurd/lstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lstat64.c b/sysdeps/mach/hurd/lstat64.c
index ae7c9f4..fde90c2 100644
--- a/sysdeps/mach/hurd/lstat64.c
+++ b/sysdeps/mach/hurd/lstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lutimes.c b/sysdeps/mach/hurd/lutimes.c
index 251a709..6fc4d29 100644
--- a/sysdeps/mach/hurd/lutimes.c
+++ b/sysdeps/mach/hurd/lutimes.c
@@ -1,5 +1,5 @@
/* lutimes -- change access and modification times of a symlink. Hurd version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lxstat.c b/sysdeps/mach/hurd/lxstat.c
index cbf866b..ef24fbc 100644
--- a/sysdeps/mach/hurd/lxstat.c
+++ b/sysdeps/mach/hurd/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/lxstat64.c b/sysdeps/mach/hurd/lxstat64.c
index 230176a..d783333 100644
--- a/sysdeps/mach/hurd/lxstat64.c
+++ b/sysdeps/mach/hurd/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h
index 48453b8..57e672f 100644
--- a/sysdeps/mach/hurd/malloc-machine.h
+++ b/sysdeps/mach/hurd/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mig-reply.c b/sysdeps/mach/hurd/mig-reply.c
index 85c3af1..16e8dee 100644
--- a/sysdeps/mach/hurd/mig-reply.c
+++ b/sysdeps/mach/hurd/mig-reply.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/eloop-threshold.h b/sysdeps/mach/hurd/min-eloop-threshold.h
index 92c398b..98ecf49 100644
--- a/sysdeps/mach/hurd/eloop-threshold.h
+++ b/sysdeps/mach/hurd/min-eloop-threshold.h
@@ -1,5 +1,5 @@
-/* Threshold at which to diagnose ELOOP. Hurd version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Minimum threshold at which to diagnose ELOOP. Hurd version.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,8 +16,8 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _ELOOP_THRESHOLD_H
-#define _ELOOP_THRESHOLD_H 1
+#ifndef _MIN_ELOOP_THRESHOLD_H
+#define _MIN_ELOOP_THRESHOLD_H 1
/* Return the maximum number of symlink traversals to permit
before diagnosing ELOOP.
@@ -28,10 +28,6 @@
but instead use sysconf and the number can be changed here to
affect sysconf's result. */
-static inline unsigned int __attribute__ ((const))
-__eloop_threshold (void)
-{
- return 32;
-}
+#define MIN_ELOOP_THRESHOLD 32
-#endif /* eloop-threshold.h */
+#endif
diff --git a/sysdeps/mach/hurd/mkdir.c b/sysdeps/mach/hurd/mkdir.c
index 975d4fb..1ab04e0 100644
--- a/sysdeps/mach/hurd/mkdir.c
+++ b/sysdeps/mach/hurd/mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mkdirat.c b/sysdeps/mach/hurd/mkdirat.c
index edcc48c..0ae9f04 100644
--- a/sysdeps/mach/hurd/mkdirat.c
+++ b/sysdeps/mach/hurd/mkdirat.c
@@ -1,5 +1,5 @@
/* Create a directory named relative to another open directory. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mknodat.c b/sysdeps/mach/hurd/mknodat.c
index fec43dc..c1fe343 100644
--- a/sysdeps/mach/hurd/mknodat.c
+++ b/sysdeps/mach/hurd/mknodat.c
@@ -1,5 +1,5 @@
/* Create a device file relative to an open directory. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -88,8 +88,12 @@ __mknodat (int fd, const char *path, mode_t mode, dev_t dev)
if (dir == MACH_PORT_NULL)
return -1;
- /* Create a new, unlinked node in the target directory. */
- errnode = err = __dir_mkfile (dir, O_WRITE, (mode & ~S_IFMT) & ~_hurd_umask, &node);
+ if (! *name)
+ /* Can't link to the existing directory itself. */
+ errnode = err = ENOTDIR;
+ else
+ /* Create a new, unlinked node in the target directory. */
+ errnode = err = __dir_mkfile (dir, O_WRITE, (mode & ~S_IFMT) & ~_hurd_umask, &node);
if (! err && translator != NULL)
/* Set the node's translator to make it a device. */
diff --git a/sysdeps/mach/hurd/mlock.c b/sysdeps/mach/hurd/mlock.c
index 933e91c..0ef4415 100644
--- a/sysdeps/mach/hurd/mlock.c
+++ b/sysdeps/mach/hurd/mlock.c
@@ -1,5 +1,5 @@
/* mlock -- guarantee pages are resident in memory. Mach/Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mlockall.c b/sysdeps/mach/hurd/mlockall.c
index a4c6efb..eeda9dd 100644
--- a/sysdeps/mach/hurd/mlockall.c
+++ b/sysdeps/mach/hurd/mlockall.c
@@ -1,5 +1,5 @@
/* mlockall -- lock in core all the pages in this process. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
index 30e369f..6686fe3 100644
--- a/sysdeps/mach/hurd/mmap.c
+++ b/sysdeps/mach/hurd/mmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mmap64.c b/sysdeps/mach/hurd/mmap64.c
index 495692b..0d23347 100644
--- a/sysdeps/mach/hurd/mmap64.c
+++ b/sysdeps/mach/hurd/mmap64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/mremap.c b/sysdeps/mach/hurd/mremap.c
index da1c8a5..35ccc9e 100644
--- a/sysdeps/mach/hurd/mremap.c
+++ b/sysdeps/mach/hurd/mremap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/msync.c b/sysdeps/mach/hurd/msync.c
index 9b43539..63818fe 100644
--- a/sysdeps/mach/hurd/msync.c
+++ b/sysdeps/mach/hurd/msync.c
@@ -1,5 +1,5 @@
/* msync -- Synchronize mapped memory to external storage. Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/munlock.c b/sysdeps/mach/hurd/munlock.c
index fba73ff..45f813f 100644
--- a/sysdeps/mach/hurd/munlock.c
+++ b/sysdeps/mach/hurd/munlock.c
@@ -1,5 +1,5 @@
/* munlock -- undo the effects of prior mlock calls. Mach/Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/munlockall.c b/sysdeps/mach/hurd/munlockall.c
index c291a1e..ad23eda 100644
--- a/sysdeps/mach/hurd/munlockall.c
+++ b/sysdeps/mach/hurd/munlockall.c
@@ -1,5 +1,5 @@
/* munlockall -- undo the effects of all prior mlock calls. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/net/ethernet.h b/sysdeps/mach/hurd/net/ethernet.h
index c630e7c..ed458a9 100644
--- a/sysdeps/mach/hurd/net/ethernet.h
+++ b/sysdeps/mach/hurd/net/ethernet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/net/if_arp.h b/sysdeps/mach/hurd/net/if_arp.h
index f5da712..df52178 100644
--- a/sysdeps/mach/hurd/net/if_arp.h
+++ b/sysdeps/mach/hurd/net/if_arp.h
@@ -1,5 +1,5 @@
/* Definitions for Address Resolution Protocol.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/net/if_ether.h b/sysdeps/mach/hurd/net/if_ether.h
index 1464eb7..9c0ff04 100644
--- a/sysdeps/mach/hurd/net/if_ether.h
+++ b/sysdeps/mach/hurd/net/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/net/route.h b/sysdeps/mach/hurd/net/route.h
index cb3967a..2656079 100644
--- a/sysdeps/mach/hurd/net/route.h
+++ b/sysdeps/mach/hurd/net/route.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc..
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc..
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/not-cancel.h b/sysdeps/mach/hurd/not-cancel.h
index 69fb3c0..123cd37 100644
--- a/sysdeps/mach/hurd/not-cancel.h
+++ b/sysdeps/mach/hurd/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Hurd version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -79,7 +79,7 @@ __typeof (__fcntl) __fcntl_nocancel;
/* Non cancellable getrandom syscall that does not also set errno in case of
failure. */
static inline ssize_t
-__getrandom_nocancel_nostatus (void *buf, size_t buflen, unsigned int flags)
+__getrandom_nocancel_nostatus_direct (void *buf, size_t buflen, unsigned int flags)
{
int save_errno = errno;
ssize_t r = __getrandom (buf, buflen, flags);
@@ -90,6 +90,8 @@ __getrandom_nocancel_nostatus (void *buf, size_t buflen, unsigned int flags)
#define __getrandom_nocancel(buf, size, flags) \
__getrandom (buf, size, flags)
+#define __getrandom_nocancel_direct(buf, size, flags) \
+ __getrandom (buf, size, flags)
#define __poll_infinity_nocancel(fds, nfds) \
__poll (fds, nfds, -1)
diff --git a/sysdeps/mach/hurd/open.c b/sysdeps/mach/hurd/open.c
index e81b5c3..5629b68 100644
--- a/sysdeps/mach/hurd/open.c
+++ b/sysdeps/mach/hurd/open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/open_nocancel.c b/sysdeps/mach/hurd/open_nocancel.c
index 1eb3ced..48857a0 100644
--- a/sysdeps/mach/hurd/open_nocancel.c
+++ b/sysdeps/mach/hurd/open_nocancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/openat.c b/sysdeps/mach/hurd/openat.c
index 56ecbb3..aa0c23b 100644
--- a/sysdeps/mach/hurd/openat.c
+++ b/sysdeps/mach/hurd/openat.c
@@ -1,5 +1,5 @@
/* openat -- Open a file named relative to an open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/openat_nocancel.c b/sysdeps/mach/hurd/openat_nocancel.c
index 58400c2..ee6cd3f 100644
--- a/sysdeps/mach/hurd/openat_nocancel.c
+++ b/sysdeps/mach/hurd/openat_nocancel.c
@@ -1,5 +1,5 @@
/* openat -- Open a file named relative to an open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/opendir.c b/sysdeps/mach/hurd/opendir.c
index 478752a..150536d 100644
--- a/sysdeps/mach/hurd/opendir.c
+++ b/sysdeps/mach/hurd/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pathconf.c b/sysdeps/mach/hurd/pathconf.c
index 4058790..c85bf2e 100644
--- a/sysdeps/mach/hurd/pathconf.c
+++ b/sysdeps/mach/hurd/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pipe.c b/sysdeps/mach/hurd/pipe.c
index 293ff74..42413f4 100644
--- a/sysdeps/mach/hurd/pipe.c
+++ b/sysdeps/mach/hurd/pipe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pipe2.c b/sysdeps/mach/hurd/pipe2.c
index 40381c1..3497529 100644
--- a/sysdeps/mach/hurd/pipe2.c
+++ b/sysdeps/mach/hurd/pipe2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/poll.c b/sysdeps/mach/hurd/poll.c
index 0fb2bb7..dc94f6e 100644
--- a/sysdeps/mach/hurd/poll.c
+++ b/sysdeps/mach/hurd/poll.c
@@ -1,5 +1,5 @@
/* poll file descriptors. Hurd version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ppoll.c b/sysdeps/mach/hurd/ppoll.c
index 03c7b0f..a73c141 100644
--- a/sysdeps/mach/hurd/ppoll.c
+++ b/sysdeps/mach/hurd/ppoll.c
@@ -1,5 +1,5 @@
/* poll file descriptors. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pread.c b/sysdeps/mach/hurd/pread.c
index 7672f92..27706cd 100644
--- a/sysdeps/mach/hurd/pread.c
+++ b/sysdeps/mach/hurd/pread.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
Hurd version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pread64.c b/sysdeps/mach/hurd/pread64.c
index b64887f..b7cbd51 100644
--- a/sysdeps/mach/hurd/pread64.c
+++ b/sysdeps/mach/hurd/pread64.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pread64_nocancel.c b/sysdeps/mach/hurd/pread64_nocancel.c
index a2ecff6..766ef86 100644
--- a/sysdeps/mach/hurd/pread64_nocancel.c
+++ b/sysdeps/mach/hurd/pread64_nocancel.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/profil.c b/sysdeps/mach/hurd/profil.c
index 8b89d9b..f4388a4 100644
--- a/sysdeps/mach/hurd/profil.c
+++ b/sysdeps/mach/hurd/profil.c
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Mach/Hurd version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pselect.c b/sysdeps/mach/hurd/pselect.c
index cc9e230..165afdb 100644
--- a/sysdeps/mach/hurd/pselect.c
+++ b/sysdeps/mach/hurd/pselect.c
@@ -1,5 +1,5 @@
/* pselect for Hurd.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ptrace.c b/sysdeps/mach/hurd/ptrace.c
index 45f3e29..b83d4fa 100644
--- a/sysdeps/mach/hurd/ptrace.c
+++ b/sysdeps/mach/hurd/ptrace.c
@@ -1,5 +1,5 @@
/* Process tracing interface `ptrace' for GNU Hurd.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c
index 8e24574..2631913 100644
--- a/sysdeps/mach/hurd/ptsname.c
+++ b/sysdeps/mach/hurd/ptsname.c
@@ -1,5 +1,5 @@
/* ptsname -- return the name of a pty slave given an FD to the pty master
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pwrite.c b/sysdeps/mach/hurd/pwrite.c
index c08537c..3a58f60 100644
--- a/sysdeps/mach/hurd/pwrite.c
+++ b/sysdeps/mach/hurd/pwrite.c
@@ -1,6 +1,6 @@
/* Write block at given position in file without changing file pointer.
Hurd version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pwrite64.c b/sysdeps/mach/hurd/pwrite64.c
index 858c645..f9b6793 100644
--- a/sysdeps/mach/hurd/pwrite64.c
+++ b/sysdeps/mach/hurd/pwrite64.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/pwrite64_nocancel.c b/sysdeps/mach/hurd/pwrite64_nocancel.c
index 74c6ed8..c0bab3d 100644
--- a/sysdeps/mach/hurd/pwrite64_nocancel.c
+++ b/sysdeps/mach/hurd/pwrite64_nocancel.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/read.c b/sysdeps/mach/hurd/read.c
index 6396e51..7c05bcf 100644
--- a/sysdeps/mach/hurd/read.c
+++ b/sysdeps/mach/hurd/read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/read_nocancel.c b/sysdeps/mach/hurd/read_nocancel.c
index 14b30f7..1e2e5d7 100644
--- a/sysdeps/mach/hurd/read_nocancel.c
+++ b/sysdeps/mach/hurd/read_nocancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readdir.c b/sysdeps/mach/hurd/readdir.c
index 5b50ab9..240cfb4 100644
--- a/sysdeps/mach/hurd/readdir.c
+++ b/sysdeps/mach/hurd/readdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readdir64.c b/sysdeps/mach/hurd/readdir64.c
index 2d039d2..47077ee 100644
--- a/sysdeps/mach/hurd/readdir64.c
+++ b/sysdeps/mach/hurd/readdir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readdir64_r.c b/sysdeps/mach/hurd/readdir64_r.c
index 475fd03..bb1af9a 100644
--- a/sysdeps/mach/hurd/readdir64_r.c
+++ b/sysdeps/mach/hurd/readdir64_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readdir_r.c b/sysdeps/mach/hurd/readdir_r.c
index 050bfab..06a4e46 100644
--- a/sysdeps/mach/hurd/readdir_r.c
+++ b/sysdeps/mach/hurd/readdir_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readlink.c b/sysdeps/mach/hurd/readlink.c
index abc22f5..5c4152a 100644
--- a/sysdeps/mach/hurd/readlink.c
+++ b/sysdeps/mach/hurd/readlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/readlinkat.c b/sysdeps/mach/hurd/readlinkat.c
index 6e18f3f..dbbc528 100644
--- a/sysdeps/mach/hurd/readlinkat.c
+++ b/sysdeps/mach/hurd/readlinkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@ __readlinkat (int fd, const char *file_name, char *buf, size_t len)
file_t file_stat;
struct stat64 st;
enum retry_type doretry;
- char retryname[1024];
+ string_t retryname;
file_t file;
char *rbuf = buf;
mach_msg_type_number_t nread = len;
diff --git a/sysdeps/mach/hurd/reboot.c b/sysdeps/mach/hurd/reboot.c
index d2bafc5..f439995 100644
--- a/sysdeps/mach/hurd/reboot.c
+++ b/sysdeps/mach/hurd/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/recv.c b/sysdeps/mach/hurd/recv.c
index 0e77bd3..7278b2d 100644
--- a/sysdeps/mach/hurd/recv.c
+++ b/sysdeps/mach/hurd/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/recvfrom.c b/sysdeps/mach/hurd/recvfrom.c
index 6190fa2..683e1ce 100644
--- a/sysdeps/mach/hurd/recvfrom.c
+++ b/sysdeps/mach/hurd/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c
index 3e875f8..b77e0c8 100644
--- a/sysdeps/mach/hurd/recvmsg.c
+++ b/sysdeps/mach/hurd/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/removexattr.c b/sysdeps/mach/hurd/removexattr.c
index 0efee70..82534a5 100644
--- a/sysdeps/mach/hurd/removexattr.c
+++ b/sysdeps/mach/hurd/removexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/rename.c b/sysdeps/mach/hurd/rename.c
index b3d9afa..0d011a5 100644
--- a/sysdeps/mach/hurd/rename.c
+++ b/sysdeps/mach/hurd/rename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/renameat.c b/sysdeps/mach/hurd/renameat.c
index 5b32a7d..b47c9ff 100644
--- a/sysdeps/mach/hurd/renameat.c
+++ b/sysdeps/mach/hurd/renameat.c
@@ -1,5 +1,5 @@
/* Rename a file using relative source and destination names. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/renameat2.c b/sysdeps/mach/hurd/renameat2.c
index e847a96..5b09fed 100644
--- a/sysdeps/mach/hurd/renameat2.c
+++ b/sysdeps/mach/hurd/renameat2.c
@@ -1,5 +1,5 @@
/* Rename a file using relative source and destination names. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,15 +37,28 @@ __renameat2 (int oldfd, const char *old, int newfd, const char *new,
if (flags & RENAME_NOREPLACE)
excl = 1;
- olddir = __directory_name_split_at (oldfd, old, (char **) &oldname);
+ olddir = __file_name_split_at (oldfd, old, (char **) &oldname);
if (olddir == MACH_PORT_NULL)
return -1;
- newdir = __directory_name_split_at (newfd, new, (char **) &newname);
+ if (!*oldname)
+ {
+ /* Trailing slash. */
+ __mach_port_deallocate (__mach_task_self (), olddir);
+ return __hurd_fail (ENOTDIR);
+ }
+ newdir = __file_name_split_at (newfd, new, (char **) &newname);
if (newdir == MACH_PORT_NULL)
{
- __mach_port_deallocate (__mach_task_self (), olddir);
+ __mach_port_deallocate (__mach_task_self (), olddir);
return -1;
}
+ if (!*newname)
+ {
+ /* Trailing slash. */
+ __mach_port_deallocate (__mach_task_self (), olddir);
+ __mach_port_deallocate (__mach_task_self (), newdir);
+ return __hurd_fail (ENOTDIR);
+ }
err = __dir_rename (olddir, oldname, newdir, newname, excl);
__mach_port_deallocate (__mach_task_self (), olddir);
diff --git a/sysdeps/mach/hurd/res_enable_icmp.c b/sysdeps/mach/hurd/res_enable_icmp.c
index 6a3e433..aa1a2cd 100644
--- a/sysdeps/mach/hurd/res_enable_icmp.c
+++ b/sysdeps/mach/hurd/res_enable_icmp.c
@@ -1,5 +1,5 @@
/* Enable full ICMP errors on a socket. No-op version for Hurd.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/revoke.c b/sysdeps/mach/hurd/revoke.c
index 070aa02..5577fd5 100644
--- a/sysdeps/mach/hurd/revoke.c
+++ b/sysdeps/mach/hurd/revoke.c
@@ -1,5 +1,5 @@
/* Revoke the access of all descriptors currently open on a file. Hurd version
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/rewinddir.c b/sysdeps/mach/hurd/rewinddir.c
index 3044f9b..2156d237 100644
--- a/sysdeps/mach/hurd/rewinddir.c
+++ b/sysdeps/mach/hurd/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/rmdir.c b/sysdeps/mach/hurd/rmdir.c
index f1e720a..6aec69f 100644
--- a/sysdeps/mach/hurd/rmdir.c
+++ b/sysdeps/mach/hurd/rmdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sbrk.c b/sysdeps/mach/hurd/sbrk.c
index f19fdbc..75c5a05 100644
--- a/sysdeps/mach/hurd/sbrk.c
+++ b/sysdeps/mach/hurd/sbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sched_gets.c b/sysdeps/mach/hurd/sched_gets.c
index 7e1eb34..13e9249 100644
--- a/sysdeps/mach/hurd/sched_gets.c
+++ b/sysdeps/mach/hurd/sched_gets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sched_sets.c b/sysdeps/mach/hurd/sched_sets.c
index 4cc9210..22d9026 100644
--- a/sysdeps/mach/hurd/sched_sets.c
+++ b/sysdeps/mach/hurd/sched_sets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/seekdir.c b/sysdeps/mach/hurd/seekdir.c
index 9103bc8..d5d8787 100644
--- a/sysdeps/mach/hurd/seekdir.c
+++ b/sysdeps/mach/hurd/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/select.c b/sysdeps/mach/hurd/select.c
index 89587df..f892b9c 100644
--- a/sysdeps/mach/hurd/select.c
+++ b/sysdeps/mach/hurd/select.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/send.c b/sysdeps/mach/hurd/send.c
index db8b40d..13be1e1 100644
--- a/sysdeps/mach/hurd/send.c
+++ b/sysdeps/mach/hurd/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sendfile.c b/sysdeps/mach/hurd/sendfile.c
index c39b08d..8842903 100644
--- a/sysdeps/mach/hurd/sendfile.c
+++ b/sysdeps/mach/hurd/sendfile.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sendfile64.c b/sysdeps/mach/hurd/sendfile64.c
index 108b77d..fb74bd7 100644
--- a/sysdeps/mach/hurd/sendfile64.c
+++ b/sysdeps/mach/hurd/sendfile64.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c
index 434815e..4aca09f 100644
--- a/sysdeps/mach/hurd/sendmsg.c
+++ b/sysdeps/mach/hurd/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sendto.c b/sysdeps/mach/hurd/sendto.c
index 9183994..9ed4142 100644
--- a/sysdeps/mach/hurd/sendto.c
+++ b/sysdeps/mach/hurd/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setdomain.c b/sysdeps/mach/hurd/setdomain.c
index 148b295..e512ece 100644
--- a/sysdeps/mach/hurd/setdomain.c
+++ b/sysdeps/mach/hurd/setdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setegid.c b/sysdeps/mach/hurd/setegid.c
index fd1c8f1..0ff9c31 100644
--- a/sysdeps/mach/hurd/setegid.c
+++ b/sysdeps/mach/hurd/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/seteuid.c b/sysdeps/mach/hurd/seteuid.c
index 4cfbf7f..136c830 100644
--- a/sysdeps/mach/hurd/seteuid.c
+++ b/sysdeps/mach/hurd/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setgid.c b/sysdeps/mach/hurd/setgid.c
index c72c216..82dee34 100644
--- a/sysdeps/mach/hurd/setgid.c
+++ b/sysdeps/mach/hurd/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setgroups.c b/sysdeps/mach/hurd/setgroups.c
index 9a277e1..e5a5d59 100644
--- a/sysdeps/mach/hurd/setgroups.c
+++ b/sysdeps/mach/hurd/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sethostid.c b/sysdeps/mach/hurd/sethostid.c
index b8ff365..7c2e9c2 100644
--- a/sysdeps/mach/hurd/sethostid.c
+++ b/sysdeps/mach/hurd/sethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sethostname.c b/sysdeps/mach/hurd/sethostname.c
index fb3a606..6e8b610 100644
--- a/sysdeps/mach/hurd/sethostname.c
+++ b/sysdeps/mach/hurd/sethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
index 2b60d9f..95a21cb 100644
--- a/sysdeps/mach/hurd/setitimer.c
+++ b/sysdeps/mach/hurd/setitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setlogin.c b/sysdeps/mach/hurd/setlogin.c
index c693351..ec46100 100644
--- a/sysdeps/mach/hurd/setlogin.c
+++ b/sysdeps/mach/hurd/setlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setpgid.c b/sysdeps/mach/hurd/setpgid.c
index 5c555b8..aa49738 100644
--- a/sysdeps/mach/hurd/setpgid.c
+++ b/sysdeps/mach/hurd/setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setpriority.c b/sysdeps/mach/hurd/setpriority.c
index f3df2f9..f1ef46c 100644
--- a/sysdeps/mach/hurd/setpriority.c
+++ b/sysdeps/mach/hurd/setpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setregid.c b/sysdeps/mach/hurd/setregid.c
index 6f9667f..71e2bbb 100644
--- a/sysdeps/mach/hurd/setregid.c
+++ b/sysdeps/mach/hurd/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setresgid.c b/sysdeps/mach/hurd/setresgid.c
index 29c8641..dc00803 100644
--- a/sysdeps/mach/hurd/setresgid.c
+++ b/sysdeps/mach/hurd/setresgid.c
@@ -1,5 +1,5 @@
/* setresgid -- set real group ID, effective group ID, and saved-set group ID
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setresuid.c b/sysdeps/mach/hurd/setresuid.c
index c93944f..8f10aca 100644
--- a/sysdeps/mach/hurd/setresuid.c
+++ b/sysdeps/mach/hurd/setresuid.c
@@ -1,5 +1,5 @@
/* setresuid -- set real user ID, effective user ID, and saved-set user ID
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setreuid.c b/sysdeps/mach/hurd/setreuid.c
index 035d0e4..69e7f61 100644
--- a/sysdeps/mach/hurd/setreuid.c
+++ b/sysdeps/mach/hurd/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setrlimit.c b/sysdeps/mach/hurd/setrlimit.c
index 568b25d..cbc172e 100644
--- a/sysdeps/mach/hurd/setrlimit.c
+++ b/sysdeps/mach/hurd/setrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setsid.c b/sysdeps/mach/hurd/setsid.c
index ea12aa6..fd4e71f 100644
--- a/sysdeps/mach/hurd/setsid.c
+++ b/sysdeps/mach/hurd/setsid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setsockopt.c b/sysdeps/mach/hurd/setsockopt.c
index d406991..4072daf 100644
--- a/sysdeps/mach/hurd/setsockopt.c
+++ b/sysdeps/mach/hurd/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setuid.c b/sysdeps/mach/hurd/setuid.c
index 9d9ac96..5889b73 100644
--- a/sysdeps/mach/hurd/setuid.c
+++ b/sysdeps/mach/hurd/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/setxattr.c b/sysdeps/mach/hurd/setxattr.c
index d0c4ed9..a7381e7 100644
--- a/sysdeps/mach/hurd/setxattr.c
+++ b/sysdeps/mach/hurd/setxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/shutdown.c b/sysdeps/mach/hurd/shutdown.c
index d4e81fc..bf09c0f 100644
--- a/sysdeps/mach/hurd/shutdown.c
+++ b/sysdeps/mach/hurd/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,12 @@ int
shutdown (int fd, int how)
{
error_t err = HURD_DPORT_USE (fd, __socket_shutdown (port, how));
+
+ if (err == MIG_BAD_ID || err == EOPNOTSUPP)
+ /* The file did not grok the ifsock protocol. */
+ err = ENOTSOCK;
if (err)
return __hurd_dfail (fd, err);
+
return 0;
}
diff --git a/sysdeps/mach/hurd/sigaltstack.c b/sysdeps/mach/hurd/sigaltstack.c
index c55aa12..4cd1dc2 100644
--- a/sysdeps/mach/hurd/sigaltstack.c
+++ b/sysdeps/mach/hurd/sigaltstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/siglist-compat.h b/sysdeps/mach/hurd/siglist-compat.h
index ff3401b..23ea7c5 100644
--- a/sysdeps/mach/hurd/siglist-compat.h
+++ b/sysdeps/mach/hurd/siglist-compat.h
@@ -1,5 +1,5 @@
/* Compatibility signal numbers and their names symbols. Hurd version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sigpending.c b/sysdeps/mach/hurd/sigpending.c
index e0e8de0..dfd96b3 100644
--- a/sysdeps/mach/hurd/sigpending.c
+++ b/sysdeps/mach/hurd/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sigprocmask.c b/sysdeps/mach/hurd/sigprocmask.c
index 4e5cc36..1979fc1 100644
--- a/sysdeps/mach/hurd/sigprocmask.c
+++ b/sysdeps/mach/hurd/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,56 +27,7 @@
int
__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
{
- struct hurd_sigstate *ss;
- sigset_t old, new;
- sigset_t pending;
-
- if (set != NULL)
- new = *set;
-
- ss = _hurd_self_sigstate ();
-
- _hurd_sigstate_lock (ss);
-
- old = ss->blocked;
-
- if (set != NULL)
- {
- switch (how)
- {
- case SIG_BLOCK:
- __sigorset (&ss->blocked, &ss->blocked, &new);
- break;
-
- case SIG_UNBLOCK:
- ss->blocked &= ~new;
- break;
-
- case SIG_SETMASK:
- ss->blocked = new;
- break;
-
- default:
- _hurd_sigstate_unlock (ss);
- return __hurd_fail (EINVAL);
- }
-
- ss->blocked &= ~_SIG_CANT_MASK;
- }
-
- pending = _hurd_sigstate_pending (ss) & ~ss->blocked;
-
- _hurd_sigstate_unlock (ss);
-
- if (oset != NULL)
- *oset = old;
-
- if (pending)
- /* Send a message to the signal thread so it
- will wake up and check for pending signals. */
- __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());
-
- return 0;
+ return __hurd_fail (__sigthreadmask (_hurd_self_sigstate (), how, set, oset, 0));
}
libc_hidden_def (__sigprocmask)
diff --git a/sysdeps/mach/hurd/sigstack.c b/sysdeps/mach/hurd/sigstack.c
index 499db29..466d112 100644
--- a/sysdeps/mach/hurd/sigstack.c
+++ b/sysdeps/mach/hurd/sigstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sigsuspend.c b/sysdeps/mach/hurd/sigsuspend.c
index ae1e49b..5a4ca45 100644
--- a/sysdeps/mach/hurd/sigsuspend.c
+++ b/sysdeps/mach/hurd/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mach/hurd/sigthreadmask.c b/sysdeps/mach/hurd/sigthreadmask.c
new file mode 100644
index 0000000..9b4f530
--- /dev/null
+++ b/sysdeps/mach/hurd/sigthreadmask.c
@@ -0,0 +1,86 @@
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <hurd.h>
+#include <hurd/signal.h>
+#include <hurd/msg.h>
+
+/* If SET is not NULL, modify the current set of blocked signals in SS
+ according to HOW, which may be SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK.
+ If OSET is not NULL, store the old set of blocked signals in *OSET.
+ If CLEAR_PENDING is non-zero, the pending set is cleared. */
+error_t
+__sigthreadmask (struct hurd_sigstate *ss, int how,
+ const sigset_t *set, sigset_t *oset, int clear_pending)
+{
+ sigset_t old, new;
+ sigset_t pending;
+
+ if (set != NULL)
+ new = *set;
+
+ assert (ss);
+ /* We are not supposed to change the global blocked state */
+ assert (ss != _hurd_global_sigstate);
+
+ _hurd_sigstate_lock (ss);
+
+ old = ss->blocked;
+
+ if (set != NULL)
+ {
+ switch (how)
+ {
+ case SIG_BLOCK:
+ __sigorset (&ss->blocked, &ss->blocked, &new);
+ break;
+
+ case SIG_UNBLOCK:
+ ss->blocked &= ~new;
+ break;
+
+ case SIG_SETMASK:
+ ss->blocked = new;
+ break;
+
+ default:
+ _hurd_sigstate_unlock (ss);
+ return EINVAL;
+ }
+
+ ss->blocked &= ~_SIG_CANT_MASK;
+ }
+
+ if (clear_pending)
+ __sigemptyset (&ss->pending);
+
+ pending = _hurd_sigstate_pending (ss) & ~ss->blocked;
+
+ _hurd_sigstate_unlock (ss);
+
+ if (oset != NULL)
+ *oset = old;
+
+ if (pending)
+ /* Send a message to the signal thread so it
+ will wake up and check for pending signals. */
+ __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());
+
+ return 0;
+}
diff --git a/sysdeps/mach/hurd/sigtimedwait.c b/sysdeps/mach/hurd/sigtimedwait.c
index ff95288..1f14ddb 100644
--- a/sysdeps/mach/hurd/sigtimedwait.c
+++ b/sysdeps/mach/hurd/sigtimedwait.c
@@ -1,5 +1,5 @@
/* Implementation of sigtimedwait function from POSIX.1b.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sigwait.c b/sysdeps/mach/hurd/sigwait.c
index 2138eaa..e9479b5 100644
--- a/sysdeps/mach/hurd/sigwait.c
+++ b/sysdeps/mach/hurd/sigwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sigwaitinfo.c b/sysdeps/mach/hurd/sigwaitinfo.c
index a7ade44..aa640ec 100644
--- a/sysdeps/mach/hurd/sigwaitinfo.c
+++ b/sysdeps/mach/hurd/sigwaitinfo.c
@@ -1,5 +1,5 @@
/* Implementation of sigwaitinfo function from POSIX.1b.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/socket.c b/sysdeps/mach/hurd/socket.c
index 0badd79..470d046 100644
--- a/sysdeps/mach/hurd/socket.c
+++ b/sysdeps/mach/hurd/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/socketpair.c b/sysdeps/mach/hurd/socketpair.c
index b4256c7..5d0d2d7 100644
--- a/sysdeps/mach/hurd/socketpair.c
+++ b/sysdeps/mach/hurd/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/spawn_int_def.h b/sysdeps/mach/hurd/spawn_int_def.h
index c708eaf..f4a7ba8 100644
--- a/sysdeps/mach/hurd/spawn_int_def.h
+++ b/sysdeps/mach/hurd/spawn_int_def.h
@@ -1,5 +1,5 @@
/* Internal definitions for posix_spawn functionality. Hurd version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
index a0d2e28..7eaf0ad 100644
--- a/sysdeps/mach/hurd/spawni.c
+++ b/sysdeps/mach/hurd/spawni.c
@@ -1,5 +1,5 @@
/* spawn a new process running an executable. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -679,11 +679,29 @@ retry:
ref, MACH_MSG_TYPE_MAKE_SEND,
&newproc);
__mach_port_destroy (__mach_task_self (), ref);
- if (!err)
- {
- __mach_port_deallocate (__mach_task_self (), proc);
- proc = newproc;
- }
+ if (err)
+ goto out;
+ if (newproc == MACH_PORT_NULL)
+ {
+ /* Old versions of the proc server did not recreate the process
+ port when reauthenticating, and passed MACH_PORT_NULL through
+ the auth server. That must be what we're dealing with. Just
+ keep the existing proc port in this case. */
+ }
+ else
+ {
+ err = __proc_reauthenticate_complete (newproc);
+ if (err)
+ {
+ __mach_port_deallocate (__mach_task_self (), newproc);
+ goto out;
+ }
+ else
+ {
+ __mach_port_deallocate (__mach_task_self (), proc);
+ proc = newproc;
+ }
+ }
if (!err)
err = reauthenticate (INIT_PORT_CRDIR, &rcrdir);
diff --git a/sysdeps/mach/hurd/stat.c b/sysdeps/mach/hurd/stat.c
index 0fa64eb..a85dec9 100644
--- a/sysdeps/mach/hurd/stat.c
+++ b/sysdeps/mach/hurd/stat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/stat64.c b/sysdeps/mach/hurd/stat64.c
index 3eca865..e0c4598 100644
--- a/sysdeps/mach/hurd/stat64.c
+++ b/sysdeps/mach/hurd/stat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statconv.c b/sysdeps/mach/hurd/statconv.c
index 98fb13e..f3653eb 100644
--- a/sysdeps/mach/hurd/statconv.c
+++ b/sysdeps/mach/hurd/statconv.c
@@ -1,5 +1,5 @@
/* Convert between `struct stat' format, and `struct stat64' format.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statfs.c b/sysdeps/mach/hurd/statfs.c
index 8a2a0d6..196fd3f 100644
--- a/sysdeps/mach/hurd/statfs.c
+++ b/sysdeps/mach/hurd/statfs.c
@@ -1,5 +1,5 @@
/* statfs -- Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statfs64.c b/sysdeps/mach/hurd/statfs64.c
index e944bec..650cdf8 100644
--- a/sysdeps/mach/hurd/statfs64.c
+++ b/sysdeps/mach/hurd/statfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statfsconv.c b/sysdeps/mach/hurd/statfsconv.c
index ed65d1a..4b54d76 100644
--- a/sysdeps/mach/hurd/statfsconv.c
+++ b/sysdeps/mach/hurd/statfsconv.c
@@ -1,5 +1,5 @@
/* Convert between `struct statfs' format, and `struct statfs64' format.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statvfs.c b/sysdeps/mach/hurd/statvfs.c
index 032236c..c559687 100644
--- a/sysdeps/mach/hurd/statvfs.c
+++ b/sysdeps/mach/hurd/statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/statvfs64.c b/sysdeps/mach/hurd/statvfs64.c
index 52510d1..59c1fc7 100644
--- a/sysdeps/mach/hurd/statvfs64.c
+++ b/sysdeps/mach/hurd/statvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/symlink.c b/sysdeps/mach/hurd/symlink.c
index 483f603..cb94e2e 100644
--- a/sysdeps/mach/hurd/symlink.c
+++ b/sysdeps/mach/hurd/symlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/symlinkat.c b/sysdeps/mach/hurd/symlinkat.c
index 041c085..cb6250e 100644
--- a/sysdeps/mach/hurd/symlinkat.c
+++ b/sysdeps/mach/hurd/symlinkat.c
@@ -1,5 +1,5 @@
/* Create a symbolic link named relative to an open directory. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,8 +45,12 @@ __symlinkat (const char *from, int fd, const char *to)
if (dir == MACH_PORT_NULL)
return -1;
- /* Create a new, unlinked node in the target directory. */
- err = __dir_mkfile (dir, O_WRITE, 0777 & ~_hurd_umask, &node);
+ if (! *name)
+ /* Can't link to the existing directory itself. */
+ err = EEXIST;
+ else
+ /* Create a new, unlinked node in the target directory. */
+ err = __dir_mkfile (dir, O_WRITE, 0777 & ~_hurd_umask, &node);
if (! err)
{
diff --git a/sysdeps/mach/hurd/sync.c b/sysdeps/mach/hurd/sync.c
index 035375d..fe454c0 100644
--- a/sysdeps/mach/hurd/sync.c
+++ b/sysdeps/mach/hurd/sync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/syncfs.c b/sysdeps/mach/hurd/syncfs.c
index d8dd6f2..1e09587 100644
--- a/sysdeps/mach/hurd/syncfs.c
+++ b/sysdeps/mach/hurd/syncfs.c
@@ -1,6 +1,6 @@
/* Make all changes done to all files on the file system associated
with FD actually appear on disk.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/sysconf.c b/sysdeps/mach/hurd/sysconf.c
index acc3d63..bf61090 100644
--- a/sysdeps/mach/hurd/sysconf.c
+++ b/sysdeps/mach/hurd/sysconf.c
@@ -1,5 +1,5 @@
/* Return values of system parameters. Hurd version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,8 +19,8 @@
#include <limits.h>
#include <unistd.h>
-#include <eloop-threshold.h>
+#include <min-eloop-threshold.h>
-#define SYMLOOP_MAX (__eloop_threshold ())
+#define SYMLOOP_MAX MIN_ELOOP_THRESHOLD
#include <sysdeps/posix/sysconf.c>
diff --git a/sysdeps/mach/hurd/telldir.c b/sysdeps/mach/hurd/telldir.c
index 0472060..aabcddd 100644
--- a/sysdeps/mach/hurd/telldir.c
+++ b/sysdeps/mach/hurd/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/times.c b/sysdeps/mach/hurd/times.c
index 3e384dd6a..4bdfe44 100644
--- a/sysdeps/mach/hurd/times.c
+++ b/sysdeps/mach/hurd/times.c
@@ -1,5 +1,5 @@
/* Return CPU and real time used by process and its children. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h
index a32efb0..41157a1 100644
--- a/sysdeps/mach/hurd/tls.h
+++ b/sysdeps/mach/hurd/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. Hurd version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/tmpfile.c b/sysdeps/mach/hurd/tmpfile.c
index 4be8b3c..b53df12 100644
--- a/sysdeps/mach/hurd/tmpfile.c
+++ b/sysdeps/mach/hurd/tmpfile.c
@@ -1,5 +1,5 @@
/* Open a stdio stream on an anonymous temporary file. Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/truncate.c b/sysdeps/mach/hurd/truncate.c
index 78dcb0d..efb5c8e 100644
--- a/sysdeps/mach/hurd/truncate.c
+++ b/sysdeps/mach/hurd/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/truncate64.c b/sysdeps/mach/hurd/truncate64.c
index 0572e31..d8fbceb 100644
--- a/sysdeps/mach/hurd/truncate64.c
+++ b/sysdeps/mach/hurd/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/ttyname.c b/sysdeps/mach/hurd/ttyname.c
index f44e66f..1353fe8 100644
--- a/sysdeps/mach/hurd/ttyname.c
+++ b/sysdeps/mach/hurd/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,9 +27,8 @@ char *
ttyname (int fd)
{
error_t err;
- static char nodename[1024]; /* XXX */
+ static string_t nodename;
- nodename[0] = '\0';
if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename)))
{
if (err == MIG_BAD_ID || err == EOPNOTSUPP)
diff --git a/sysdeps/mach/hurd/ttyname_r.c b/sysdeps/mach/hurd/ttyname_r.c
index 10f134a..836ec6a 100644
--- a/sysdeps/mach/hurd/ttyname_r.c
+++ b/sysdeps/mach/hurd/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,10 +28,9 @@ int
__ttyname_r (int fd, char *buf, size_t buflen)
{
error_t err;
- char nodename[1024]; /* XXX */
+ string_t nodename;
size_t len;
- nodename[0] = '\0';
if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename)))
{
if (err == MIG_BAD_ID || err == EOPNOTSUPP)
diff --git a/sysdeps/mach/hurd/umask.c b/sysdeps/mach/hurd/umask.c
index c4136f3..ec5e322 100644
--- a/sysdeps/mach/hurd/umask.c
+++ b/sysdeps/mach/hurd/umask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/uname.c b/sysdeps/mach/hurd/uname.c
index 842d37e..55c1186 100644
--- a/sysdeps/mach/hurd/uname.c
+++ b/sysdeps/mach/hurd/uname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/unlink.c b/sysdeps/mach/hurd/unlink.c
index bb42635..65105da 100644
--- a/sysdeps/mach/hurd/unlink.c
+++ b/sysdeps/mach/hurd/unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/unlinkat.c b/sysdeps/mach/hurd/unlinkat.c
index 7a7d618..30e36e2 100644
--- a/sysdeps/mach/hurd/unlinkat.c
+++ b/sysdeps/mach/hurd/unlinkat.c
@@ -1,5 +1,5 @@
/* unlinkat -- Remove a name relative to an open directory. Hurd version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/utime-helper.c b/sysdeps/mach/hurd/utime-helper.c
index 3e6f2ab..6afa871 100644
--- a/sysdeps/mach/hurd/utime-helper.c
+++ b/sysdeps/mach/hurd/utime-helper.c
@@ -1,5 +1,5 @@
/* Helpers for utimes/utimens conversions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,14 @@
#include <stddef.h>
#include <sys/time.h>
+static inline bool
+check_tval (const struct timeval *tvp)
+{
+ return tvp->tv_usec >= 0 && tvp->tv_usec < USEC_PER_SEC;
+}
+
/* Initializes atime/mtime timespec structures from an array of timeval. */
-static inline void
+static inline error_t
utime_ts_from_tval (const struct timeval tvp[2],
struct timespec *atime, struct timespec *mtime)
{
@@ -37,13 +43,19 @@ utime_ts_from_tval (const struct timeval tvp[2],
}
else
{
+ if (!check_tval (&tvp[0]))
+ return EINVAL;
+ if (!check_tval (&tvp[1]))
+ return EINVAL;
+
TIMEVAL_TO_TIMESPEC (&tvp[0], atime);
TIMEVAL_TO_TIMESPEC (&tvp[1], mtime);
}
+ return 0;
}
/* Initializes atime/mtime time_value_t structures from an array of timeval. */
-static inline void
+static inline error_t
utime_tvalue_from_tval (const struct timeval tvp[2],
time_value_t *atime, time_value_t *mtime)
{
@@ -53,11 +65,17 @@ utime_tvalue_from_tval (const struct timeval tvp[2],
atime->microseconds = mtime->microseconds = -1;
else
{
+ if (!check_tval (&tvp[0]))
+ return EINVAL;
+ if (!check_tval (&tvp[1]))
+ return EINVAL;
+
atime->seconds = tvp[0].tv_sec;
atime->microseconds = tvp[0].tv_usec;
mtime->seconds = tvp[1].tv_sec;
mtime->microseconds = tvp[1].tv_usec;
}
+ return 0;
}
/* Changes the access time of the file behind PORT using a timeval array. */
@@ -67,7 +85,9 @@ hurd_futimes (const file_t port, const struct timeval tvp[2])
error_t err;
struct timespec atime, mtime;
- utime_ts_from_tval (tvp, &atime, &mtime);
+ err = utime_ts_from_tval (tvp, &atime, &mtime);
+ if (err)
+ return err;
err = __file_utimens (port, atime, mtime);
@@ -75,7 +95,9 @@ hurd_futimes (const file_t port, const struct timeval tvp[2])
{
time_value_t atim, mtim;
- utime_tvalue_from_tval (tvp, &atim, &mtim);
+ err = utime_tvalue_from_tval (tvp, &atim, &mtim);
+ if (err)
+ return err;
err = __file_utimes (port, atim, mtim);
}
@@ -83,8 +105,16 @@ hurd_futimes (const file_t port, const struct timeval tvp[2])
return err;
}
+static inline bool
+check_tspec (const struct timespec *tsp)
+{
+ return tsp->tv_nsec == UTIME_NOW
+ || tsp->tv_nsec == UTIME_OMIT
+ || tsp->tv_nsec >= 0 && tsp->tv_nsec < NSEC_PER_SEC;
+}
+
/* Initializes atime/mtime timespec structures from an array of timespec. */
-static inline void
+static inline error_t
utime_ts_from_tspec (const struct timespec tsp[2],
struct timespec *atime, struct timespec *mtime)
{
@@ -99,13 +129,19 @@ utime_ts_from_tspec (const struct timespec tsp[2],
}
else
{
+ if (!check_tspec (&tsp[0]))
+ return EINVAL;
+ if (!check_tspec (&tsp[1]))
+ return EINVAL;
+
*atime = tsp[0];
*mtime = tsp[1];
}
+ return 0;
}
/* Initializes atime/mtime time_value_t structures from an array of timespec. */
-static inline void
+static inline error_t
utime_tvalue_from_tspec (const struct timespec tsp[2],
time_value_t *atime, time_value_t *mtime)
{
@@ -115,6 +151,11 @@ utime_tvalue_from_tspec (const struct timespec tsp[2],
atime->microseconds = mtime->microseconds = -1;
else
{
+ if (!check_tspec (&tsp[0]))
+ return EINVAL;
+ if (!check_tspec (&tsp[1]))
+ return EINVAL;
+
if (tsp[0].tv_nsec == UTIME_NOW)
atime->microseconds = -1;
else if (tsp[0].tv_nsec == UTIME_OMIT)
@@ -128,6 +169,7 @@ utime_tvalue_from_tspec (const struct timespec tsp[2],
else
TIMESPEC_TO_TIME_VALUE (mtime, &(tsp[1]));
}
+ return 0;
}
/* Changes the access time of the file behind PORT using a timespec array. */
@@ -137,7 +179,9 @@ hurd_futimens (const file_t port, const struct timespec tsp[2])
error_t err;
struct timespec atime, mtime;
- utime_ts_from_tspec (tsp, &atime, &mtime);
+ err = utime_ts_from_tspec (tsp, &atime, &mtime);
+ if (err)
+ return err;
err = __file_utimens (port, atime, mtime);
@@ -145,7 +189,9 @@ hurd_futimens (const file_t port, const struct timespec tsp[2])
{
time_value_t atim, mtim;
- utime_tvalue_from_tspec (tsp, &atim, &mtim);
+ err = utime_tvalue_from_tspec (tsp, &atim, &mtim);
+ if (err)
+ return err;
err = __file_utimes (port, atim, mtim);
}
diff --git a/sysdeps/mach/hurd/utimensat.c b/sysdeps/mach/hurd/utimensat.c
index b88abc2..4d0edc0 100644
--- a/sysdeps/mach/hurd/utimensat.c
+++ b/sysdeps/mach/hurd/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,13 +33,19 @@ utimensat (int fd, const char *file, const struct timespec tsp[2],
error_t err;
file_t port;
- port = __file_name_lookup_at (fd, flags, file, 0, 0);
- if (port == MACH_PORT_NULL)
- return -1;
+ if (file)
+ {
+ port = __file_name_lookup_at (fd, flags, file, 0, 0);
+ if (port == MACH_PORT_NULL)
+ return -1;
- err = hurd_futimens (port, tsp);
+ err = hurd_futimens (port, tsp);
+
+ __mach_port_deallocate (__mach_task_self (), port);
+ }
+ else
+ err = HURD_DPORT_USE (fd, hurd_futimens (port, tsp));
- __mach_port_deallocate (__mach_task_self (), port);
if (err)
return __hurd_fail (err);
return 0;
diff --git a/sysdeps/mach/hurd/utimes.c b/sysdeps/mach/hurd/utimes.c
index a73593f..ac2f06a 100644
--- a/sysdeps/mach/hurd/utimes.c
+++ b/sysdeps/mach/hurd/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- change access and modification times of file. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/wait4.c b/sysdeps/mach/hurd/wait4.c
index 6512801..97e561d 100644
--- a/sysdeps/mach/hurd/wait4.c
+++ b/sysdeps/mach/hurd/wait4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/wait4_nocancel.c b/sysdeps/mach/hurd/wait4_nocancel.c
index eb35fb6..4f0338c 100644
--- a/sysdeps/mach/hurd/wait4_nocancel.c
+++ b/sysdeps/mach/hurd/wait4_nocancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/waitid.c b/sysdeps/mach/hurd/waitid.c
index 4c9c4d2..0e6da3e 100644
--- a/sysdeps/mach/hurd/waitid.c
+++ b/sysdeps/mach/hurd/waitid.c
@@ -1,5 +1,5 @@
/* Implementation of waitid. Hurd version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/write.c b/sysdeps/mach/hurd/write.c
index 7b7414d..e8c98e5 100644
--- a/sysdeps/mach/hurd/write.c
+++ b/sysdeps/mach/hurd/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/write_nocancel.c b/sysdeps/mach/hurd/write_nocancel.c
index 9c0f556..337a098 100644
--- a/sysdeps/mach/hurd/write_nocancel.c
+++ b/sysdeps/mach/hurd/write_nocancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/writev_nocancel_nostatus.c b/sysdeps/mach/hurd/writev_nocancel_nostatus.c
index 3ddabd7..a5ae3dc 100644
--- a/sysdeps/mach/hurd/writev_nocancel_nostatus.c
+++ b/sysdeps/mach/hurd/writev_nocancel_nostatus.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/dl-sysdep.c b/sysdeps/mach/hurd/x86/dl-sysdep.c
index ec73ede..9c1457d 100644
--- a/sysdeps/mach/hurd/x86/dl-sysdep.c
+++ b/sysdeps/mach/hurd/x86/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. X86 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/exc2signal.c b/sysdeps/mach/hurd/x86/exc2signal.c
index ae1d5ee..cad0c93 100644
--- a/sysdeps/mach/hurd/x86/exc2signal.c
+++ b/sysdeps/mach/hurd/x86/exc2signal.c
@@ -1,5 +1,5 @@
/* Translate Mach exception codes into signal numbers. i386 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/ioperm.c b/sysdeps/mach/hurd/x86/ioperm.c
index 14cf97e..a214222 100644
--- a/sysdeps/mach/hurd/x86/ioperm.c
+++ b/sysdeps/mach/hurd/x86/ioperm.c
@@ -1,5 +1,5 @@
/* Access to hardware i/o ports. Hurd/x86 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/set-hooks-arch.h b/sysdeps/mach/hurd/x86/set-hooks-arch.h
index fd80f72..81eb4da 100644
--- a/sysdeps/mach/hurd/x86/set-hooks-arch.h
+++ b/sysdeps/mach/hurd/x86/set-hooks-arch.h
@@ -1,6 +1,6 @@
/* Machine-dependent macros for using symbol sets for running lists of
functions. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/sys/io.h b/sysdeps/mach/hurd/x86/sys/io.h
index ed256c6..d250fb4 100644
--- a/sysdeps/mach/hurd/x86/sys/io.h
+++ b/sysdeps/mach/hurd/x86/sys/io.h
@@ -1,5 +1,5 @@
/* Access to hardware i/o ports. GNU/x86 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86/trampoline.c b/sysdeps/mach/hurd/x86/trampoline.c
index 3792224..6f23c56 100644
--- a/sysdeps/mach/hurd/x86/trampoline.c
+++ b/sysdeps/mach/hurd/x86/trampoline.c
@@ -1,5 +1,5 @@
/* Set thread_state for sighandler, and sigcontext to recover. x86 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,11 @@
#include "hurdfault.h"
#include <intr-msg.h>
#include <sys/ucontext.h>
-
+#ifdef __x86_64__
+#include <mach/x86_64/mach_i386.h>
+#else
+#include <mach/i386/mach_i386.h>
+#endif
/* Fill in a siginfo_t structure for SA_SIGINFO-enabled handlers. */
static void fill_siginfo (siginfo_t *si, int signo,
@@ -106,6 +110,7 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
void firewall (void);
void *sigsp;
struct sigcontext *scp;
+ vm_size_t xstate_size;
struct
{
union
@@ -145,6 +150,14 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
struct hurd_userlink link;
ucontext_t ucontext;
siginfo_t siginfo;
+#ifdef __x86_64__
+ char _pad2[56];
+#else
+ char _pad2[20];
+#endif
+ char xstate[];
+ /* Don't add anything after xstate, as it's dynamically
+ sized. */
} *stackframe;
#ifdef __x86_64__
@@ -170,6 +183,17 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
if (! machine_get_basic_state (ss->thread, state))
return NULL;
+ /* Initialize the size of the CPU extended state, to be saved during
+ * signal handling */
+#ifdef i386_XFLOAT_STATE
+ _Static_assert ((sizeof(*stackframe) + sizeof(struct i386_xfloat_state)) % 64 == 0,
+ "stackframe size must be multiple of 64-byte minus "
+ "sizeof(struct i386_xfloat_state), please adjust _pad2");
+
+ if (__i386_get_xstate_size(__mach_host_self(), &xstate_size))
+#endif
+ xstate_size = 0;
+
/* Save the original SP in the gratuitous `esp' slot.
We may need to reset the SP (the `uesp' slot) to avoid clobbering an
interrupted RPC frame. */
@@ -196,14 +220,21 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
#endif
}
- /* Push the arguments to call `trampoline' on the stack. */
- sigsp -= sizeof (*stackframe);
-#ifdef __x86_64__
- /* Align SP at 16 bytes. Coupled with the fact that sigreturn_addr is
- 16-byte aligned within the stackframe struct, this ensures that it ends
- up on a 16-byte aligned address, as required by the ABI. */
- sigsp = (void *) ((uintptr_t) sigsp & ~15UL);
-#endif
+ /* Push the arguments to call `trampoline' on the stack.
+ * The extended state might have a variable size depending on the platform,
+ * so we dynamically allocate it on the stack frame.*/
+ sigsp -= sizeof (*stackframe) + xstate_size;
+
+ /* Align SP at 64 bytes. This is needed for two reasons:
+ * - sigreturn_addr is 16-byte aligned within the stackframe
+ * struct, and this ensures that it ends up on a 16-byte aligned
+ * address, as required by the ABI.
+ * - the XSAVE state needs to be aligned at 64 bytes (on both i386 and
+ * x86_64), so we align the stackframe also at 64 bytes and add the
+ * required padding at the end, see the _pad2 field.
+ */
+ sigsp = (void *) ((uintptr_t) sigsp & ~63UL);
+
stackframe = sigsp;
if (_hurdsig_catch_memory_fault (stackframe))
@@ -248,14 +279,40 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
memcpy (&scp->sc_i386_thread_state,
&state->basic, sizeof (state->basic));
- /* struct sigcontext is laid out so that starting at sc_fpkind mimics
- a struct i386_float_state. */
- _Static_assert (offsetof (struct sigcontext, sc_i386_float_state)
- % __alignof__ (struct i386_float_state) == 0,
- "sc_i386_float_state layout mismatch");
- ok = machine_get_state (ss->thread, state, i386_FLOAT_STATE,
- &state->fpu, &scp->sc_i386_float_state,
- sizeof (state->fpu));
+ scp->xstate = NULL;
+#ifdef i386_XFLOAT_STATE
+ if (xstate_size > 0)
+ {
+ mach_msg_type_number_t got = (xstate_size / sizeof (int));
+
+ ok = (! __thread_get_state (ss->thread, i386_XFLOAT_STATE,
+ (thread_state_t) stackframe->xstate, &got)
+ && got == (xstate_size / sizeof (int)));
+
+ if (ok && ((struct i386_xfloat_state*) stackframe->xstate)->fp_save_kind > 5)
+ /* We support up to XSAVES */
+ ok = 0;
+
+ if (ok)
+ {
+ scp->xstate = (struct i386_xfloat_state*) stackframe->xstate;
+ assert((uintptr_t)scp->xstate->hw_state % 64 == 0);
+ }
+ }
+ else
+#endif
+ ok = 0;
+ if (!ok)
+ {
+ /* struct sigcontext is laid out so that starting at sc_fpkind mimics
+ a struct i386_float_state. */
+ _Static_assert (offsetof (struct sigcontext, sc_i386_float_state)
+ % __alignof__ (struct i386_float_state) == 0,
+ "sc_i386_float_state layout mismatch");
+ ok = machine_get_state (ss->thread, state, i386_FLOAT_STATE,
+ &state->fpu, &scp->sc_i386_float_state,
+ sizeof (state->fpu));
+ }
/* Set up the arguments for the signal handler. */
stackframe->signo = signo;
@@ -404,7 +461,10 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action
- in gdb: gdb/i386-gnu-tdep.c gnu_sigtramp_code. */
#ifdef __x86_64__
-asm ("rpc_wait_trampoline:\n"
+asm ("trampoline:\n"
+ "fnclex\n" /* Clear any pending exception. */
+ "jmp _trampoline\n"
+ "rpc_wait_trampoline:\n"
/* This is the entry point when we have an RPC reply message to receive
before running the handler. The MACH_MSG_SEND bit has already been
cleared in the OPTION argument in our %rsi. The interrupted user
@@ -423,7 +483,7 @@ asm ("rpc_wait_trampoline:\n"
/* Switch to the signal stack. */
"movq %rbx, %rsp\n"
- "trampoline:\n"
+ "_trampoline:\n"
/* Entry point for running the handler normally. The arguments to the
handler function are on the top of the stack, same as in the i386
version:
@@ -449,7 +509,10 @@ asm ("rpc_wait_trampoline:\n"
"movq 16(%rsp), %rdi\n"
"ret");
#else
-asm ("rpc_wait_trampoline:\n");
+asm ("trampoline:\n"
+ "fnclex\n" /* Clear any pending exception. */
+ "jmp _trampoline\n"
+ "rpc_wait_trampoline:\n");
/* This is the entry point when we have an RPC reply message to receive
before running the handler. The MACH_MSG_SEND bit has already been
cleared in the OPTION argument on our stack. The interrupted user
@@ -469,7 +532,7 @@ asm (/* Retry the interrupted mach_msg system call. */
/* Switch to the signal stack. */
"movl %ebx, %esp\n");
- asm ("trampoline:\n");
+asm ("_trampoline:\n");
/* Entry point for running the handler normally. The arguments to the
handler function are already on the top of the stack:
diff --git a/sysdeps/mach/hurd/x86_64/____longjmp_chk.S b/sysdeps/mach/hurd/x86_64/____longjmp_chk.S
index e4eb576..1b1c9a4 100644
--- a/sysdeps/mach/hurd/x86_64/____longjmp_chk.S
+++ b/sysdeps/mach/hurd/x86_64/____longjmp_chk.S
@@ -1,5 +1,5 @@
/* Checked longjmp support. x86_64 Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/__longjmp.S b/sysdeps/mach/hurd/x86_64/__longjmp.S
index 1f93961..84e9696 100644
--- a/sysdeps/mach/hurd/x86_64/__longjmp.S
+++ b/sysdeps/mach/hurd/x86_64/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp support. x86_64/Hurd version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/__start_context.S b/sysdeps/mach/hurd/x86_64/__start_context.S
index 3cb4c6b..beda294 100644
--- a/sysdeps/mach/hurd/x86_64/__start_context.S
+++ b/sysdeps/mach/hurd/x86_64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/bits/sigcontext.h b/sysdeps/mach/hurd/x86_64/bits/sigcontext.h
index f028965..d83795f 100644
--- a/sysdeps/mach/hurd/x86_64/bits/sigcontext.h
+++ b/sysdeps/mach/hurd/x86_64/bits/sigcontext.h
@@ -1,5 +1,5 @@
/* Machine-dependent signal context structure for GNU Hurd. x86_64 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -96,6 +96,8 @@ struct sigcontext
struct i386_fp_save sc_fpsave;
struct i386_fp_regs sc_fpregs;
int sc_fpexcsr; /* FPSR including exception bits. */
+
+ struct i386_xfloat_state *xstate;
};
/* Traditional BSD names for some members. */
diff --git a/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c b/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c
index 900d373..25966b1 100644
--- a/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c
+++ b/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c
@@ -1,5 +1,5 @@
/* Determine whether TLS is initialized, for x86_64/Hurd.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/getcontext.S b/sysdeps/mach/hurd/x86_64/getcontext.S
index ef431be..af56db3 100644
--- a/sysdeps/mach/hurd/x86_64/getcontext.S
+++ b/sysdeps/mach/hurd/x86_64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c b/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c
index 83d0f67..9281545 100644
--- a/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c
+++ b/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c
@@ -1,5 +1,5 @@
/* Machine dependent pthreads code. Hurd/x86_64 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/htl/pt-setup.c b/sysdeps/mach/hurd/x86_64/htl/pt-setup.c
index 7321307..76a4394 100644
--- a/sysdeps/mach/hurd/x86_64/htl/pt-setup.c
+++ b/sysdeps/mach/hurd/x86_64/htl/pt-setup.c
@@ -1,5 +1,5 @@
/* Setup thread stack. Hurd/x86_64 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/intr-msg.h b/sysdeps/mach/hurd/x86_64/intr-msg.h
index 5410887..a307f0d 100644
--- a/sysdeps/mach/hurd/x86_64/intr-msg.h
+++ b/sysdeps/mach/hurd/x86_64/intr-msg.h
@@ -1,5 +1,5 @@
/* Machine-dependent details of interruptible RPC messaging. x86_64 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 7c68564..8f9d6aa 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -392,6 +392,7 @@ GLIBC_2.38 __profile_frequency F
GLIBC_2.38 __progname D 0x8
GLIBC_2.38 __progname_full D 0x8
GLIBC_2.38 __pthread_get_cleanup_stack F
+GLIBC_2.38 __pthread_key_create F
GLIBC_2.38 __pthread_self F
GLIBC_2.38 __ptsname_r_chk F
GLIBC_2.38 __pwrite64 F
@@ -1513,35 +1514,97 @@ GLIBC_2.38 psiginfo F
GLIBC_2.38 psignal F
GLIBC_2.38 pthread_attr_destroy F
GLIBC_2.38 pthread_attr_getdetachstate F
+GLIBC_2.38 pthread_attr_getguardsize F
GLIBC_2.38 pthread_attr_getinheritsched F
GLIBC_2.38 pthread_attr_getschedparam F
GLIBC_2.38 pthread_attr_getschedpolicy F
GLIBC_2.38 pthread_attr_getscope F
+GLIBC_2.38 pthread_attr_getstack F
+GLIBC_2.38 pthread_attr_getstackaddr F
+GLIBC_2.38 pthread_attr_getstacksize F
GLIBC_2.38 pthread_attr_init F
GLIBC_2.38 pthread_attr_setdetachstate F
+GLIBC_2.38 pthread_attr_setguardsize F
GLIBC_2.38 pthread_attr_setinheritsched F
GLIBC_2.38 pthread_attr_setschedparam F
GLIBC_2.38 pthread_attr_setschedpolicy F
GLIBC_2.38 pthread_attr_setscope F
+GLIBC_2.38 pthread_attr_setstack F
+GLIBC_2.38 pthread_attr_setstackaddr F
+GLIBC_2.38 pthread_attr_setstacksize F
+GLIBC_2.38 pthread_barrier_destroy F
+GLIBC_2.38 pthread_barrier_init F
+GLIBC_2.38 pthread_barrier_wait F
+GLIBC_2.38 pthread_barrierattr_destroy F
+GLIBC_2.38 pthread_barrierattr_getpshared F
+GLIBC_2.38 pthread_barrierattr_init F
+GLIBC_2.38 pthread_barrierattr_setpshared F
GLIBC_2.38 pthread_cond_broadcast F
+GLIBC_2.38 pthread_cond_clockwait F
GLIBC_2.38 pthread_cond_destroy F
GLIBC_2.38 pthread_cond_init F
GLIBC_2.38 pthread_cond_signal F
GLIBC_2.38 pthread_cond_timedwait F
GLIBC_2.38 pthread_cond_wait F
GLIBC_2.38 pthread_condattr_destroy F
+GLIBC_2.38 pthread_condattr_getclock F
+GLIBC_2.38 pthread_condattr_getpshared F
GLIBC_2.38 pthread_condattr_init F
+GLIBC_2.38 pthread_condattr_setclock F
+GLIBC_2.38 pthread_condattr_setpshared F
GLIBC_2.38 pthread_equal F
GLIBC_2.38 pthread_exit F
GLIBC_2.38 pthread_getschedparam F
+GLIBC_2.38 pthread_getspecific F
+GLIBC_2.38 pthread_key_create F
+GLIBC_2.38 pthread_key_delete F
+GLIBC_2.38 pthread_mutex_clocklock F
+GLIBC_2.38 pthread_mutex_consistent F
+GLIBC_2.38 pthread_mutex_consistent_np F
GLIBC_2.38 pthread_mutex_destroy F
+GLIBC_2.38 pthread_mutex_getprioceiling F
GLIBC_2.38 pthread_mutex_init F
GLIBC_2.38 pthread_mutex_lock F
+GLIBC_2.38 pthread_mutex_setprioceiling F
+GLIBC_2.38 pthread_mutex_timedlock F
+GLIBC_2.38 pthread_mutex_trylock F
GLIBC_2.38 pthread_mutex_unlock F
+GLIBC_2.38 pthread_mutexattr_destroy F
+GLIBC_2.38 pthread_mutexattr_getprioceiling F
+GLIBC_2.38 pthread_mutexattr_getprotocol F
+GLIBC_2.38 pthread_mutexattr_getpshared F
+GLIBC_2.38 pthread_mutexattr_getrobust F
+GLIBC_2.38 pthread_mutexattr_getrobust_np F
+GLIBC_2.38 pthread_mutexattr_gettype F
+GLIBC_2.38 pthread_mutexattr_init F
+GLIBC_2.38 pthread_mutexattr_setprioceiling F
+GLIBC_2.38 pthread_mutexattr_setprotocol F
+GLIBC_2.38 pthread_mutexattr_setpshared F
+GLIBC_2.38 pthread_mutexattr_setrobust F
+GLIBC_2.38 pthread_mutexattr_setrobust_np F
+GLIBC_2.38 pthread_mutexattr_settype F
+GLIBC_2.38 pthread_once F
+GLIBC_2.38 pthread_rwlock_clockrdlock F
+GLIBC_2.38 pthread_rwlock_clockwrlock F
+GLIBC_2.38 pthread_rwlock_destroy F
+GLIBC_2.38 pthread_rwlock_init F
+GLIBC_2.38 pthread_rwlock_rdlock F
+GLIBC_2.38 pthread_rwlock_timedrdlock F
+GLIBC_2.38 pthread_rwlock_timedwrlock F
+GLIBC_2.38 pthread_rwlock_tryrdlock F
+GLIBC_2.38 pthread_rwlock_trywrlock F
+GLIBC_2.38 pthread_rwlock_unlock F
+GLIBC_2.38 pthread_rwlock_wrlock F
+GLIBC_2.38 pthread_rwlockattr_destroy F
+GLIBC_2.38 pthread_rwlockattr_getpshared F
+GLIBC_2.38 pthread_rwlockattr_init F
+GLIBC_2.38 pthread_rwlockattr_setpshared F
GLIBC_2.38 pthread_self F
GLIBC_2.38 pthread_setcancelstate F
GLIBC_2.38 pthread_setcanceltype F
GLIBC_2.38 pthread_setschedparam F
+GLIBC_2.38 pthread_setspecific F
+GLIBC_2.38 pthread_sigmask F
GLIBC_2.38 ptrace F
GLIBC_2.38 ptsname F
GLIBC_2.38 ptsname_r F
@@ -2184,6 +2247,74 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 pthread_attr_getguardsize F
+GLIBC_2.41 pthread_attr_getstack F
+GLIBC_2.41 pthread_attr_getstackaddr F
+GLIBC_2.41 pthread_attr_getstacksize F
+GLIBC_2.41 pthread_attr_setguardsize F
+GLIBC_2.41 pthread_attr_setstack F
+GLIBC_2.41 pthread_attr_setstackaddr F
+GLIBC_2.41 pthread_attr_setstacksize F
+GLIBC_2.41 pthread_condattr_getclock F
+GLIBC_2.41 pthread_condattr_getpshared F
+GLIBC_2.41 pthread_condattr_setclock F
+GLIBC_2.41 pthread_condattr_setpshared F
+GLIBC_2.41 pthread_mutexattr_getprioceiling F
+GLIBC_2.41 pthread_mutexattr_getprotocol F
+GLIBC_2.41 pthread_mutexattr_getpshared F
+GLIBC_2.41 pthread_mutexattr_getrobust F
+GLIBC_2.41 pthread_mutexattr_getrobust_np F
+GLIBC_2.41 pthread_mutexattr_gettype F
+GLIBC_2.41 pthread_mutexattr_setprioceiling F
+GLIBC_2.41 pthread_mutexattr_setprotocol F
+GLIBC_2.41 pthread_mutexattr_setpshared F
+GLIBC_2.41 pthread_mutexattr_setrobust F
+GLIBC_2.41 pthread_mutexattr_setrobust_np F
+GLIBC_2.41 pthread_mutexattr_settype F
+GLIBC_2.41 pthread_sigmask F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 pthread_barrier_destroy F
+GLIBC_2.42 pthread_barrier_init F
+GLIBC_2.42 pthread_barrier_wait F
+GLIBC_2.42 pthread_barrierattr_destroy F
+GLIBC_2.42 pthread_barrierattr_getpshared F
+GLIBC_2.42 pthread_barrierattr_init F
+GLIBC_2.42 pthread_barrierattr_setpshared F
+GLIBC_2.42 pthread_getspecific F
+GLIBC_2.42 pthread_key_create F
+GLIBC_2.42 pthread_key_delete F
+GLIBC_2.42 pthread_mutex_consistent F
+GLIBC_2.42 pthread_mutex_consistent_np F
+GLIBC_2.42 pthread_mutex_getprioceiling F
+GLIBC_2.42 pthread_mutex_setprioceiling F
+GLIBC_2.42 pthread_mutex_trylock F
+GLIBC_2.42 pthread_once F
+GLIBC_2.42 pthread_rwlock_clockrdlock F
+GLIBC_2.42 pthread_rwlock_clockwrlock F
+GLIBC_2.42 pthread_rwlock_destroy F
+GLIBC_2.42 pthread_rwlock_init F
+GLIBC_2.42 pthread_rwlock_rdlock F
+GLIBC_2.42 pthread_rwlock_timedrdlock F
+GLIBC_2.42 pthread_rwlock_timedwrlock F
+GLIBC_2.42 pthread_rwlock_tryrdlock F
+GLIBC_2.42 pthread_rwlock_trywrlock F
+GLIBC_2.42 pthread_rwlock_unlock F
+GLIBC_2.42 pthread_rwlock_wrlock F
+GLIBC_2.42 pthread_rwlockattr_destroy F
+GLIBC_2.42 pthread_rwlockattr_getpshared F
+GLIBC_2.42 pthread_rwlockattr_init F
+GLIBC_2.42 pthread_rwlockattr_setpshared F
+GLIBC_2.42 pthread_setspecific F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
HURD_CTHREADS_0.3 __cthread_getspecific F
HURD_CTHREADS_0.3 __cthread_keycreate F
HURD_CTHREADS_0.3 __cthread_setspecific F
diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist
index d4c087a..52c9d56 100644
--- a/sysdeps/mach/hurd/x86_64/libm.abilist
+++ b/sysdeps/mach/hurd/x86_64/libm.abilist
@@ -1078,3 +1078,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist
index 69999df..81d355a 100644
--- a/sysdeps/mach/hurd/x86_64/libpthread.abilist
+++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist
@@ -5,8 +5,6 @@ GLIBC_2.38 __errno_location F
GLIBC_2.38 __h_errno_location F
GLIBC_2.38 __mutex_lock_solid F
GLIBC_2.38 __mutex_unlock_solid F
-GLIBC_2.38 __pthread_get_cleanup_stack F
-GLIBC_2.38 __pthread_key_create F
GLIBC_2.38 __pthread_kill F
GLIBC_2.38 __pthread_mutex_transfer_np F
GLIBC_2.38 __pthread_spin_destroy F
@@ -39,102 +37,21 @@ GLIBC_2.38 mtx_lock F
GLIBC_2.38 mtx_timedlock F
GLIBC_2.38 mtx_trylock F
GLIBC_2.38 mtx_unlock F
-GLIBC_2.38 pthread_attr_destroy F
-GLIBC_2.38 pthread_attr_getguardsize F
-GLIBC_2.38 pthread_attr_getscope F
-GLIBC_2.38 pthread_attr_getstack F
-GLIBC_2.38 pthread_attr_getstackaddr F
-GLIBC_2.38 pthread_attr_getstacksize F
-GLIBC_2.38 pthread_attr_init F
-GLIBC_2.38 pthread_attr_setguardsize F
-GLIBC_2.38 pthread_attr_setschedparam F
-GLIBC_2.38 pthread_attr_setscope F
-GLIBC_2.38 pthread_attr_setstack F
-GLIBC_2.38 pthread_attr_setstackaddr F
-GLIBC_2.38 pthread_attr_setstacksize F
-GLIBC_2.38 pthread_barrier_destroy F
-GLIBC_2.38 pthread_barrier_init F
-GLIBC_2.38 pthread_barrier_wait F
-GLIBC_2.38 pthread_barrierattr_destroy F
-GLIBC_2.38 pthread_barrierattr_getpshared F
-GLIBC_2.38 pthread_barrierattr_init F
-GLIBC_2.38 pthread_barrierattr_setpshared F
GLIBC_2.38 pthread_cancel F
GLIBC_2.38 pthread_clockjoin_np F
-GLIBC_2.38 pthread_cond_broadcast F
-GLIBC_2.38 pthread_cond_clockwait F
-GLIBC_2.38 pthread_cond_destroy F
-GLIBC_2.38 pthread_cond_init F
-GLIBC_2.38 pthread_cond_signal F
-GLIBC_2.38 pthread_cond_timedwait F
-GLIBC_2.38 pthread_cond_wait F
-GLIBC_2.38 pthread_condattr_destroy F
-GLIBC_2.38 pthread_condattr_getclock F
-GLIBC_2.38 pthread_condattr_getpshared F
-GLIBC_2.38 pthread_condattr_init F
-GLIBC_2.38 pthread_condattr_setclock F
-GLIBC_2.38 pthread_condattr_setpshared F
GLIBC_2.38 pthread_create F
GLIBC_2.38 pthread_detach F
GLIBC_2.38 pthread_exit F
GLIBC_2.38 pthread_getattr_np F
GLIBC_2.38 pthread_getconcurrency F
GLIBC_2.38 pthread_getcpuclockid F
-GLIBC_2.38 pthread_getspecific F
GLIBC_2.38 pthread_hurd_cond_timedwait_np F
GLIBC_2.38 pthread_hurd_cond_wait_np F
GLIBC_2.38 pthread_join F
-GLIBC_2.38 pthread_key_create F
-GLIBC_2.38 pthread_key_delete F
GLIBC_2.38 pthread_kill F
-GLIBC_2.38 pthread_mutex_clocklock F
-GLIBC_2.38 pthread_mutex_consistent F
-GLIBC_2.38 pthread_mutex_consistent_np F
-GLIBC_2.38 pthread_mutex_destroy F
-GLIBC_2.38 pthread_mutex_getprioceiling F
-GLIBC_2.38 pthread_mutex_init F
-GLIBC_2.38 pthread_mutex_lock F
-GLIBC_2.38 pthread_mutex_setprioceiling F
-GLIBC_2.38 pthread_mutex_timedlock F
GLIBC_2.38 pthread_mutex_transfer_np F
-GLIBC_2.38 pthread_mutex_trylock F
-GLIBC_2.38 pthread_mutex_unlock F
-GLIBC_2.38 pthread_mutexattr_destroy F
-GLIBC_2.38 pthread_mutexattr_getprioceiling F
-GLIBC_2.38 pthread_mutexattr_getprotocol F
-GLIBC_2.38 pthread_mutexattr_getpshared F
-GLIBC_2.38 pthread_mutexattr_getrobust F
-GLIBC_2.38 pthread_mutexattr_getrobust_np F
-GLIBC_2.38 pthread_mutexattr_gettype F
-GLIBC_2.38 pthread_mutexattr_init F
-GLIBC_2.38 pthread_mutexattr_setprioceiling F
-GLIBC_2.38 pthread_mutexattr_setprotocol F
-GLIBC_2.38 pthread_mutexattr_setpshared F
-GLIBC_2.38 pthread_mutexattr_setrobust F
-GLIBC_2.38 pthread_mutexattr_setrobust_np F
-GLIBC_2.38 pthread_mutexattr_settype F
-GLIBC_2.38 pthread_once F
-GLIBC_2.38 pthread_rwlock_clockrdlock F
-GLIBC_2.38 pthread_rwlock_clockwrlock F
-GLIBC_2.38 pthread_rwlock_destroy F
-GLIBC_2.38 pthread_rwlock_init F
-GLIBC_2.38 pthread_rwlock_rdlock F
-GLIBC_2.38 pthread_rwlock_timedrdlock F
-GLIBC_2.38 pthread_rwlock_timedwrlock F
-GLIBC_2.38 pthread_rwlock_tryrdlock F
-GLIBC_2.38 pthread_rwlock_trywrlock F
-GLIBC_2.38 pthread_rwlock_unlock F
-GLIBC_2.38 pthread_rwlock_wrlock F
-GLIBC_2.38 pthread_rwlockattr_destroy F
-GLIBC_2.38 pthread_rwlockattr_getpshared F
-GLIBC_2.38 pthread_rwlockattr_init F
-GLIBC_2.38 pthread_rwlockattr_setpshared F
-GLIBC_2.38 pthread_setcancelstate F
-GLIBC_2.38 pthread_setcanceltype F
GLIBC_2.38 pthread_setconcurrency F
GLIBC_2.38 pthread_setschedprio F
-GLIBC_2.38 pthread_setspecific F
-GLIBC_2.38 pthread_sigmask F
GLIBC_2.38 pthread_spin_destroy F
GLIBC_2.38 pthread_spin_init F
GLIBC_2.38 pthread_spin_lock F
diff --git a/sysdeps/mach/hurd/x86_64/longjmp-ts.c b/sysdeps/mach/hurd/x86_64/longjmp-ts.c
index 1b0d663..81c8c5a 100644
--- a/sysdeps/mach/hurd/x86_64/longjmp-ts.c
+++ b/sysdeps/mach/hurd/x86_64/longjmp-ts.c
@@ -1,5 +1,5 @@
/* Perform a `longjmp' on a Mach thread_state. x86_64 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/makecontext.c b/sysdeps/mach/hurd/x86_64/makecontext.c
index 6990a77..4f32c14 100644
--- a/sysdeps/mach/hurd/x86_64/makecontext.c
+++ b/sysdeps/mach/hurd/x86_64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/setcontext.S b/sysdeps/mach/hurd/x86_64/setcontext.S
index 99919ee..f5284ff 100644
--- a/sysdeps/mach/hurd/x86_64/setcontext.S
+++ b/sysdeps/mach/hurd/x86_64/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/sigreturn.c b/sysdeps/mach/hurd/x86_64/sigreturn.c
index 7a01934..773c00f 100644
--- a/sysdeps/mach/hurd/x86_64/sigreturn.c
+++ b/sysdeps/mach/hurd/x86_64/sigreturn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,8 @@
#include <hurd/msg.h>
#include <stdlib.h>
+#include <cpuid.h>
+
/* This is run on the thread stack after restoring it, to be able to
unlock SS off sigstack. */
void
@@ -46,31 +48,32 @@ __sigreturn2 (struct hurd_sigstate *ss, uintptr_t *usp,
MACH_PORT_RIGHT_RECEIVE, -1);
THREAD_SETMEM (THREAD_SELF, reply_port, sc_reply_port);
- asm volatile (
+ void sigreturn2_trampoline (uintptr_t *usp) __attribute__ ((__noreturn__));
+ sigreturn2_trampoline (usp);
+}
+
+asm("sigreturn2_trampoline:\n"
/* Point the stack to the register dump. */
- "movq %0, %%rsp\n"
+ "movq %rdi, %rsp\n"
/* Pop off the registers. */
- "popq %%r8\n"
- "popq %%r9\n"
- "popq %%r10\n"
- "popq %%r11\n"
- "popq %%r12\n"
- "popq %%r13\n"
- "popq %%r14\n"
- "popq %%r15\n"
- "popq %%rdi\n"
- "popq %%rsi\n"
- "popq %%rbp\n"
- "popq %%rbx\n"
- "popq %%rdx\n"
- "popq %%rcx\n"
- "popq %%rax\n"
+ "popq %r8\n"
+ "popq %r9\n"
+ "popq %r10\n"
+ "popq %r11\n"
+ "popq %r12\n"
+ "popq %r13\n"
+ "popq %r14\n"
+ "popq %r15\n"
+ "popq %rdi\n"
+ "popq %rsi\n"
+ "popq %rbp\n"
+ "popq %rbx\n"
+ "popq %rdx\n"
+ "popq %rcx\n"
+ "popq %rax\n"
"popfq\n"
/* Restore %rip and %rsp with a single instruction. */
- "retq $128" :
- : "rm" (usp));
- __builtin_unreachable ();
-}
+ "retq $128" );
int
__sigreturn (struct sigcontext *scp)
@@ -115,10 +118,35 @@ __sigreturn (struct sigcontext *scp)
if (scp->sc_onstack)
ss->sigaltstack.ss_flags &= ~SS_ONSTACK;
- if (scp->sc_fpused)
- /* Restore the FPU state. Mach conveniently stores the state
- in the format the i387 `frstor' instruction uses to restore it. */
- asm volatile ("frstor %0" : : "m" (scp->sc_fpsave));
+#ifdef i386_XFLOAT_STATE
+ if (scp->xstate)
+ {
+ if (scp->xstate->initialized)
+ {
+ unsigned eax, ebx, ecx, edx;
+ __cpuid_count(0xd, 0, eax, ebx, ecx, edx);
+ switch (scp->xstate->fp_save_kind)
+ {
+ case 0: // FNSAVE
+ asm volatile("frstor %0" : : "m" (scp->xstate->hw_state));
+ break;
+ case 1: // FXSAVE
+ asm volatile("fxrstor %0" : : "m" (scp->xstate->hw_state), \
+ "a" (eax), "d" (edx));
+ break;
+ default: // XSAVE, XSAVEOPT, XSAVEC, XSAVES
+ asm volatile("xrstor %0" : : "m" (scp->xstate->hw_state), \
+ "a" (eax), "d" (edx));
+ break;
+ }
+ }
+ }
+ else
+#endif
+ if (scp->sc_fpused)
+ /* Restore the FPU state. Mach conveniently stores the state
+ in the format the i387 `frstor' instruction uses to restore it. */
+ asm volatile ("frstor %0" : : "m" (scp->sc_fpsave));
/* Copy the registers onto the user's stack, to be able to release the
altstack (by unlocking sigstate). Note that unless an altstack is used,
@@ -152,16 +180,18 @@ __sigreturn (struct sigcontext *scp)
*--usp = scp->sc_r9;
*--usp = scp->sc_r8;
+ void sigreturn_trampoline (struct hurd_sigstate *ss, uintptr_t *usp,
+ mach_port_t sc_reply_port)
+ __attribute__ ((__noreturn__));
+ sigreturn_trampoline (ss, usp, sc_reply_port);
+}
+
+asm("sigreturn_trampoline:\n"
/* Switch to the user's stack that we have just prepared, and call
- __sigreturn2. Clobber "memory" to make sure GCC flushes the stack
- setup to actual memory. We align the stack as per the ABI, but pass
+ __sigreturn2. We align the stack as per the ABI, but pass
the original usp to __sigreturn2 as an argument. */
- asm volatile ("movq %1, %%rsp\n"
- "andq $-16, %%rsp\n"
- "call __sigreturn2" :
- : "D" (ss), "S" (usp), "d" (sc_reply_port)
- : "memory");
- __builtin_unreachable ();
-}
+ "movq %rsi, %rsp\n"
+ "andq $-16, %rsp\n"
+ "call __sigreturn2");
weak_alias (__sigreturn, sigreturn)
diff --git a/sysdeps/mach/hurd/x86_64/static-start.S b/sysdeps/mach/hurd/x86_64/static-start.S
index 0ec0090..a3b9f2d 100644
--- a/sysdeps/mach/hurd/x86_64/static-start.S
+++ b/sysdeps/mach/hurd/x86_64/static-start.S
@@ -1,5 +1,5 @@
/* Startup code for statically linked Hurd/x86_64 binaries.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/swapcontext.S b/sysdeps/mach/hurd/x86_64/swapcontext.S
index 79718a1..9e4760c 100644
--- a/sysdeps/mach/hurd/x86_64/swapcontext.S
+++ b/sysdeps/mach/hurd/x86_64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/tls.h b/sysdeps/mach/hurd/x86_64/tls.h
index 3d32539..7fc232b 100644
--- a/sysdeps/mach/hurd/x86_64/tls.h
+++ b/sysdeps/mach/hurd/x86_64/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. Hurd/x86_64 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/x86_64/vm_param.h b/sysdeps/mach/hurd/x86_64/vm_param.h
index 460445f..883bb79 100644
--- a/sysdeps/mach/hurd/x86_64/vm_param.h
+++ b/sysdeps/mach/hurd/x86_64/vm_param.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +15,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _X86_86_VM_PARAM_H
+#ifndef _X86_64_VM_PARAM_H
#define _X86_64_VM_PARAM_H
/* Arbitrary start of the brk. This is after usual binary and library mappings. */
diff --git a/sysdeps/mach/hurd/xmknod.c b/sysdeps/mach/hurd/xmknod.c
index 7771e77..97d372e 100644
--- a/sysdeps/mach/hurd/xmknod.c
+++ b/sysdeps/mach/hurd/xmknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/xmknodat.c b/sysdeps/mach/hurd/xmknodat.c
index 416c852..254eaf7 100644
--- a/sysdeps/mach/hurd/xmknodat.c
+++ b/sysdeps/mach/hurd/xmknodat.c
@@ -1,5 +1,5 @@
/* Create a device file relative to an open directory. Hurd version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/xstat.c b/sysdeps/mach/hurd/xstat.c
index 5bc7aed..b4c0c41 100644
--- a/sysdeps/mach/hurd/xstat.c
+++ b/sysdeps/mach/hurd/xstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/hurd/xstat64.c b/sysdeps/mach/hurd/xstat64.c
index 2dbdf33..2d604d6 100644
--- a/sysdeps/mach/hurd/xstat64.c
+++ b/sysdeps/mach/hurd/xstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/i386/syscall.S b/sysdeps/mach/i386/syscall.S
index 5ca55fa..cd795c7 100644
--- a/sysdeps/mach/i386/syscall.S
+++ b/sysdeps/mach/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/libc-lock.h b/sysdeps/mach/libc-lock.h
index 63427f7..41fd1c6 100644
--- a/sysdeps/mach/libc-lock.h
+++ b/sysdeps/mach/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Mach cthreads version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/mach_rpc.h b/sysdeps/mach/mach_rpc.h
index 5dfbf28..98412d1 100644
--- a/sysdeps/mach/mach_rpc.h
+++ b/sysdeps/mach/mach_rpc.h
@@ -1,5 +1,5 @@
/* Macros for handling Mach RPC messages.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/mprotect.c b/sysdeps/mach/mprotect.c
index d73d01a..93aa326 100644
--- a/sysdeps/mach/mprotect.c
+++ b/sysdeps/mach/mprotect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,6 +42,9 @@ __mprotect (void *addr, size_t len, int prot)
(vm_address_t) addr, (vm_size_t) len,
0, vmprot))
{
+ if (err == KERN_PROTECTION_FAILURE)
+ err = EACCES;
+
errno = err;
return -1;
}
diff --git a/sysdeps/mach/msync.c b/sysdeps/mach/msync.c
index d54e496..b32cf73 100644
--- a/sysdeps/mach/msync.c
+++ b/sysdeps/mach/msync.c
@@ -1,5 +1,5 @@
/* msync -- Synchronize mapped memory to external storage. Mach version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/munmap.c b/sysdeps/mach/munmap.c
index 10badf2..d7cb43c 100644
--- a/sysdeps/mach/munmap.c
+++ b/sysdeps/mach/munmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h
index 144ccec..f5842d9 100644
--- a/sysdeps/mach/pagecopy.h
+++ b/sysdeps/mach/pagecopy.h
@@ -1,5 +1,5 @@
/* Macros for copying by pages; used in memcpy, memmove. Mach version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/readonly-area.c b/sysdeps/mach/readonly-area-fallback.c
index c517989..3fb8732 100644
--- a/sysdeps/mach/readonly-area.c
+++ b/sysdeps/mach/readonly-area-fallback.c
@@ -1,5 +1,5 @@
/* Test if a memory region is wholly unwritable. Mach version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,11 +20,8 @@
#include <stdint.h>
#include <mach.h>
-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
- Return -1 if it is writable. */
-
-int
-__readonly_area (const char *ptr, size_t size)
+enum readonly_error_type
+__readonly_area_fallback (const void *ptr, size_t size)
{
vm_address_t region_address = (uintptr_t) ptr;
vm_size_t region_length = size;
@@ -46,11 +43,11 @@ __readonly_area (const char *ptr, size_t size)
continue;
if (protection & VM_PROT_WRITE)
- return -1;
+ return readonly_area_writable;
if (region_address - (uintptr_t) ptr >= size)
break;
}
- return 1;
+ return readonly_noerror;
}
diff --git a/sysdeps/mach/sched_yield.c b/sysdeps/mach/sched_yield.c
index 534f71d..1b7d99e 100644
--- a/sysdeps/mach/sched_yield.c
+++ b/sysdeps/mach/sched_yield.c
@@ -1,5 +1,5 @@
/* sched_yield -- yield the processor. Mach version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/sleep.c b/sysdeps/mach/sleep.c
index 572be15..5c001e5 100644
--- a/sysdeps/mach/sleep.c
+++ b/sysdeps/mach/sleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,6 +43,9 @@ __sleep (unsigned int seconds)
after = time_now ();
__mach_port_destroy (__mach_task_self (), recv);
+ if (after - before > seconds)
+ return 0;
+
return seconds - (after - before);
}
weak_alias (__sleep, sleep)
diff --git a/sysdeps/mach/strerror_l.c b/sysdeps/mach/strerror_l.c
index 46820e9..2d2e35e 100644
--- a/sysdeps/mach/strerror_l.c
+++ b/sysdeps/mach/strerror_l.c
@@ -1,5 +1,5 @@
/* strerror_l - Get errno description string in given locale. Mach version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/sysdep.h b/sysdeps/mach/sysdep.h
index 3e0553d..581bdcd 100644
--- a/sysdeps/mach/sysdep.h
+++ b/sysdeps/mach/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,11 @@
/* Get the Mach definitions of ENTRY and kernel_trap. */
#include <mach/machine/syscall_sw.h>
+/* This macro is defined in Mach system headers, but string functions use it
+ with different definitions depending on whether being compiled for
+ wide-characters or not. */
+#undef P2ALIGN
+
/* The Mach definitions assume underscores should be prepended to
symbol names. Redefine them to do so only when appropriate. */
#undef EXT
diff --git a/sysdeps/mach/thread_state.h b/sysdeps/mach/thread_state.h
index 4f35914..7dc8fa7 100644
--- a/sysdeps/mach/thread_state.h
+++ b/sysdeps/mach/thread_state.h
@@ -1,5 +1,5 @@
/* Generic definitions for dealing with Mach thread states.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/usleep.c b/sysdeps/mach/usleep.c
index fecdc6a..c691be6 100644
--- a/sysdeps/mach/usleep.c
+++ b/sysdeps/mach/usleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/x86/bits/mach/param.h b/sysdeps/mach/x86/bits/mach/param.h
index 9f2ea3d..15d215c 100644
--- a/sysdeps/mach/x86/bits/mach/param.h
+++ b/sysdeps/mach/x86/bits/mach/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. x86 Mach version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/x86/machine-lock.h b/sysdeps/mach/x86/machine-lock.h
index 2d760bb..f27fc2f 100644
--- a/sysdeps/mach/x86/machine-lock.h
+++ b/sysdeps/mach/x86/machine-lock.h
@@ -1,5 +1,5 @@
/* Machine-specific definition for spin locks. x86 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/x86/sysdep.h b/sysdeps/mach/x86/sysdep.h
index 63be563..5187f1b 100644
--- a/sysdeps/mach/x86/sysdep.h
+++ b/sysdeps/mach/x86/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -33,17 +33,29 @@
#undef ENTRY
#undef ALIGN
+#ifndef __ASSEMBLER__
+void return_to_trampoline(intptr_t *sp, void *pc, intptr_t retval)
+ __attribute__((__noreturn__));
+#endif
+
+#define RETURN_TO return_to_trampoline
+
#ifdef __x86_64__
-#define RETURN_TO(sp, pc, retval) \
- asm volatile ("movq %0, %%rsp; jmp %*%1 # %2" \
- : : "g" (sp), "r" (pc), "a" (retval))
+#define RETURN_TO_TRAMPOLINE() \
+ asm ("return_to_trampoline:\n" \
+ "movq %rdx, %rax\n" \
+ "movq %rdi, %rsp\n" \
+ "jmp *%rsi\n");
/* This should be rearranged, but at the moment this file provides
the most useful definitions for assembler syntax details. */
#include <sysdeps/unix/x86_64/sysdep.h>
#else
-#define RETURN_TO(sp, pc, retval) \
- asm volatile ("movl %0, %%esp; jmp %*%1 # %2" \
- : : "g" (sp), "r" (pc), "a" (retval))
+#define RETURN_TO_TRAMPOLINE() \
+ asm ("return_to_trampoline:\n" \
+ "movl 12(%esp), %eax\n" \
+ "movl 8(%esp), %edx\n" \
+ "movl 4(%esp), %esp\n" \
+ "jmp *%edx\n");
#include <sysdeps/unix/i386/sysdep.h>
#endif
diff --git a/sysdeps/mach/x86/thread_state.h b/sysdeps/mach/x86/thread_state.h
index 70cc08b..44a9960 100644
--- a/sysdeps/mach/x86/thread_state.h
+++ b/sysdeps/mach/x86/thread_state.h
@@ -1,5 +1,5 @@
/* Mach thread state definitions for machine-independent code. i386 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mach/xpg-strerror.c b/sysdeps/mach/xpg-strerror.c
index f8c65f8..f4ec6a5 100644
--- a/sysdeps/mach/xpg-strerror.c
+++ b/sysdeps/mach/xpg-strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -62,9 +62,19 @@ __xpg_strerror_r (int errnum, char *buf, size_t buflen)
if (sub >= es->max_sub)
estr = (const char *) es->bad_sub;
else if (code >= es->subsystem[sub].max_code)
- return EINVAL;
+ {
+ __snprintf (buf, buflen, "%s%d", _("Unknown error code: "), code);
+ return EINVAL;
+ }
else
- estr = (const char *) _(es->subsystem[sub].codes[code]);
+ {
+ estr = (const char *) _(es->subsystem[sub].codes[code]);
+ if (estr == NULL)
+ {
+ __snprintf (buf, buflen, "%s%d", _("Unknown error code: "), code);
+ return EINVAL;
+ }
+ }
size_t estrlen = strlen (estr);
diff --git a/sysdeps/microblaze/__longjmp.S b/sysdeps/microblaze/__longjmp.S
index f2ce18d..e8dd129 100644
--- a/sysdeps/microblaze/__longjmp.S
+++ b/sysdeps/microblaze/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/_mcount.S b/sysdeps/microblaze/_mcount.S
index 06b54fd..13f6440 100644
--- a/sysdeps/microblaze/_mcount.S
+++ b/sysdeps/microblaze/_mcount.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/asm-syntax.h b/sysdeps/microblaze/asm-syntax.h
index 0b865ec..cf8ade9 100644
--- a/sysdeps/microblaze/asm-syntax.h
+++ b/sysdeps/microblaze/asm-syntax.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/atomic-machine.h b/sysdeps/microblaze/atomic-machine.h
index abbc6a4..4f695c2 100644
--- a/sysdeps/microblaze/atomic-machine.h
+++ b/sysdeps/microblaze/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/backtrace.c b/sysdeps/microblaze/backtrace.c
index c9ecb11..860403a 100644
--- a/sysdeps/microblaze/backtrace.c
+++ b/sysdeps/microblaze/backtrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/backtrace_linux.c b/sysdeps/microblaze/backtrace_linux.c
index 75bd640..8d1f6f2 100644
--- a/sysdeps/microblaze/backtrace_linux.c
+++ b/sysdeps/microblaze/backtrace_linux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/bits/fenv.h b/sysdeps/microblaze/bits/fenv.h
index b44888e..d49f529 100644
--- a/sysdeps/microblaze/bits/fenv.h
+++ b/sysdeps/microblaze/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/bits/link.h b/sysdeps/microblaze/bits/link.h
index 9e771982..6ee3043 100644
--- a/sysdeps/microblaze/bits/link.h
+++ b/sysdeps/microblaze/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/bits/setjmp.h b/sysdeps/microblaze/bits/setjmp.h
index 09a2e73..8898331 100644
--- a/sysdeps/microblaze/bits/setjmp.h
+++ b/sysdeps/microblaze/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/bits/wordsize.h b/sysdeps/microblaze/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/microblaze/bits/wordsize.h
+++ b/sysdeps/microblaze/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/bsd-_setjmp.S b/sysdeps/microblaze/bsd-_setjmp.S
index 9e52b6d..72d755f 100644
--- a/sysdeps/microblaze/bsd-_setjmp.S
+++ b/sysdeps/microblaze/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/bsd-setjmp.S b/sysdeps/microblaze/bsd-setjmp.S
index 5152a57..e23b1a6 100644
--- a/sysdeps/microblaze/bsd-setjmp.S
+++ b/sysdeps/microblaze/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/crti.S b/sysdeps/microblaze/crti.S
index 58097a1..458e3a7 100644
--- a/sysdeps/microblaze/crti.S
+++ b/sysdeps/microblaze/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MicroBlaze.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/crtn.S b/sysdeps/microblaze/crtn.S
index 90b1aba..f5d3d18 100644
--- a/sysdeps/microblaze/crtn.S
+++ b/sysdeps/microblaze/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MicroBlaze.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/dl-machine.h b/sysdeps/microblaze/dl-machine.h
index cba2eaf..f1c4f7c 100644
--- a/sysdeps/microblaze/dl-machine.h
+++ b/sysdeps/microblaze/dl-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/dl-tls.h b/sysdeps/microblaze/dl-tls.h
deleted file mode 100644
index 8053a71..0000000
--- a/sysdeps/microblaze/dl-tls.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/microblaze/dl-trampoline.S b/sysdeps/microblaze/dl-trampoline.S
index 65aa876..0d91bd4 100644
--- a/sysdeps/microblaze/dl-trampoline.S
+++ b/sysdeps/microblaze/dl-trampoline.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/elf-initfini.h b/sysdeps/microblaze/elf-initfini.h
index 1eb3a9c..8c63d15 100644
--- a/sysdeps/microblaze/elf-initfini.h
+++ b/sysdeps/microblaze/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader, for Microblaze.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/gccframe.h b/sysdeps/microblaze/gccframe.h
index ac6b71e..3bc83b9 100644
--- a/sysdeps/microblaze/gccframe.h
+++ b/sysdeps/microblaze/gccframe.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/jmpbuf-unwind.h b/sysdeps/microblaze/jmpbuf-unwind.h
index 7ddae29..190d840 100644
--- a/sysdeps/microblaze/jmpbuf-unwind.h
+++ b/sysdeps/microblaze/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/ldsodefs.h b/sysdeps/microblaze/ldsodefs.h
index 465a35b..c317bb3 100644
--- a/sysdeps/microblaze/ldsodefs.h
+++ b/sysdeps/microblaze/ldsodefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/libc-tls.c b/sysdeps/microblaze/libc-tls.c
index b42d1f9..f68d32b 100644
--- a/sysdeps/microblaze/libc-tls.c
+++ b/sysdeps/microblaze/libc-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/libm-test-ulps b/sysdeps/microblaze/libm-test-ulps
deleted file mode 100644
index d3666eb..0000000
--- a/sysdeps/microblaze/libm-test-ulps
+++ /dev/null
@@ -1,274 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "asin":
-float: 1
-
-Function: "asinh":
-double: 1
-float: 1
-
-Function: "atan":
-float: 1
-
-Function: "atan2":
-float: 1
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "cabs":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 3
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: "cos":
-float: 1
-
-Function: "cosh":
-double: 1
-float: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 3
-float: 2
-
-Function: "exp":
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 4
-
-Function: "hypot":
-double: 1
-
-Function: "j0":
-double: 2
-float: 2
-
-Function: "j1":
-double: 1
-float: 2
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "lgamma":
-double: 4
-float: 4
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "pow":
-float: 1
-
-Function: "sin":
-float: 1
-
-Function: "sincos":
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "tan":
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tgamma":
-double: 5
-float: 4
-
-Function: "y0":
-double: 2
-float: 1
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "yn":
-double: 3
-float: 2
-
-# end of automatic generation
diff --git a/sysdeps/microblaze/libm-test-ulps-name b/sysdeps/microblaze/libm-test-ulps-name
deleted file mode 100644
index 1edbaa8..0000000
--- a/sysdeps/microblaze/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-MicroBlaze
diff --git a/sysdeps/microblaze/machine-gmon.h b/sysdeps/microblaze/machine-gmon.h
index 719bdfd..97e1ffd 100644
--- a/sysdeps/microblaze/machine-gmon.h
+++ b/sysdeps/microblaze/machine-gmon.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/nptl/pthreaddef.h b/sysdeps/microblaze/nptl/pthreaddef.h
index fa2ff32..2649ab6 100644
--- a/sysdeps/microblaze/nptl/pthreaddef.h
+++ b/sysdeps/microblaze/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/nptl/tls.h b/sysdeps/microblaze/nptl/tls.h
index c6ea2a1..3681884 100644
--- a/sysdeps/microblaze/nptl/tls.h
+++ b/sysdeps/microblaze/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/preconfigure b/sysdeps/microblaze/preconfigure
index ee6689e..c08d29d 100644
--- a/sysdeps/microblaze/preconfigure
+++ b/sysdeps/microblaze/preconfigure
@@ -3,14 +3,14 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
+printf %s "checking for egrep -e... " >&6; }
+if test ${ac_cv_path_EGREP_TRADITIONAL+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- if test -z "$GREP"; then
- ac_path_GREP_found=false
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -24,13 +24,14 @@ do
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -39,14 +40,14 @@ case `"$ac_path_GREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -54,35 +55,24 @@ case `"$ac_path_GREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_GREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
+ :
fi
else
- ac_cv_path_GREP=$GREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
+ if test "$ac_cv_path_EGREP_TRADITIONAL"
then :
- printf %s "(cached) " >&6
-else $as_nop
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
+ ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -96,13 +86,14 @@ do
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -111,14 +102,14 @@ case `"$ac_path_EGREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -126,24 +117,25 @@ case `"$ac_path_EGREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_EGREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
- ac_cv_path_EGREP=$EGREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-
- fi
+ ;;
+esac
+fi ;;
+esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
+printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
+ EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -153,11 +145,12 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+ $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
endianness=le
-else $as_nop
- endianness=be
+else case e in #(
+ e) endianness=be ;;
+esac
fi
rm -rf conftest*
diff --git a/sysdeps/microblaze/setjmp.S b/sysdeps/microblaze/setjmp.S
index b1bfe81..375f13e 100644
--- a/sysdeps/microblaze/setjmp.S
+++ b/sysdeps/microblaze/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/sfp-machine.h b/sysdeps/microblaze/sfp-machine.h
index e4ad79e..95eefc1 100644
--- a/sysdeps/microblaze/sfp-machine.h
+++ b/sysdeps/microblaze/sfp-machine.h
@@ -1 +1,51 @@
-#include <sysdeps/nios2/sfp-machine.h>
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* This is arbitrarily taken from the PowerPC version. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/microblaze/sotruss-lib.c b/sysdeps/microblaze/sotruss-lib.c
index d17bfe7..f391967 100644
--- a/sysdeps/microblaze/sotruss-lib.c
+++ b/sysdeps/microblaze/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for MicroBlaze.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/microblaze/stackinfo.h b/sysdeps/microblaze/stackinfo.h
index d0b3f16..8960bd3 100644
--- a/sysdeps/microblaze/stackinfo.h
+++ b/sysdeps/microblaze/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/start.S b/sysdeps/microblaze/start.S
index 50489ed..452fc88 100644
--- a/sysdeps/microblaze/start.S
+++ b/sysdeps/microblaze/start.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/sysdep.h b/sysdeps/microblaze/sysdep.h
index 3b42ee6..39317e3 100644
--- a/sysdeps/microblaze/sysdep.h
+++ b/sysdeps/microblaze/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/thread_pointer.h b/sysdeps/microblaze/thread_pointer.h
new file mode 100644
index 0000000..463e50c
--- /dev/null
+++ b/sysdeps/microblaze/thread_pointer.h
@@ -0,0 +1,30 @@
+/* __thread_pointer definition. microblaze version.
+ Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+static inline void *
+__thread_pointer (void)
+{
+ void *__thread_register;
+ __asm__ ("add %0, r21, r0" : "=r" (__thread_register));
+ return __thread_register;
+}
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/microblaze/tst-audit.h b/sysdeps/microblaze/tst-audit.h
index 7e91d39..c1f76f1 100644
--- a/sysdeps/microblaze/tst-audit.h
+++ b/sysdeps/microblaze/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. MicroBlaze version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/microblaze/tst-file-align.h b/sysdeps/microblaze/tst-file-align.h
index 25a482b..6adf6a2 100644
--- a/sysdeps/microblaze/tst-file-align.h
+++ b/sysdeps/microblaze/tst-file-align.h
@@ -1,5 +1,5 @@
/* Check file alignment. MicroBlaze version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c
index 264bc40..0d4523c 100644
--- a/sysdeps/mips/__longjmp.c
+++ b/sysdeps/mips/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/add_n.S b/sysdeps/mips/add_n.S
index 234e1e3..d903743 100644
--- a/sysdeps/mips/add_n.S
+++ b/sysdeps/mips/add_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_add_n -- Add two limb vectors of the same length > 0 and
store sum in a third limb vector.
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/addmul_1.S b/sysdeps/mips/addmul_1.S
index 523478d..d4743b7 100644
--- a/sysdeps/mips/addmul_1.S
+++ b/sysdeps/mips/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_addmul_1 -- Multiply a limb vector with a single limb and
add the product to a second limb vector.
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/atomic-machine.h b/sysdeps/mips/atomic-machine.h
index f818019..b88a687 100644
--- a/sysdeps/mips/atomic-machine.h
+++ b/sysdeps/mips/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. Mips version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/dlfcn.h b/sysdeps/mips/bits/dlfcn.h
index dcb03b8..b1407cd 100644
--- a/sysdeps/mips/bits/dlfcn.h
+++ b/sysdeps/mips/bits/dlfcn.h
@@ -1,5 +1,5 @@
/* System dependent definitions for run-time dynamic loading.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/fenv.h b/sysdeps/mips/bits/fenv.h
index 9c82239..ab79132 100644
--- a/sysdeps/mips/bits/fenv.h
+++ b/sysdeps/mips/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/ipctypes.h b/sysdeps/mips/bits/ipctypes.h
index e1186f6..4d082c1 100644
--- a/sysdeps/mips/bits/ipctypes.h
+++ b/sysdeps/mips/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. MIPS version
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/link.h b/sysdeps/mips/bits/link.h
index bcdcbc3..a6d58b8 100644
--- a/sysdeps/mips/bits/link.h
+++ b/sysdeps/mips/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/setjmp.h b/sysdeps/mips/bits/setjmp.h
index d947a5f..e542b6e 100644
--- a/sysdeps/mips/bits/setjmp.h
+++ b/sysdeps/mips/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. MIPS version.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/wordsize.h b/sysdeps/mips/bits/wordsize.h
index 30dd3fd..a40c38a 100644
--- a/sysdeps/mips/bits/wordsize.h
+++ b/sysdeps/mips/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bsd-_setjmp.S b/sysdeps/mips/bsd-_setjmp.S
index 0d35197..9d5276f 100644
--- a/sysdeps/mips/bsd-_setjmp.S
+++ b/sysdeps/mips/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bsd-setjmp.S b/sysdeps/mips/bsd-setjmp.S
index 7e4d7dc..b8f5ef6 100644
--- a/sysdeps/mips/bsd-setjmp.S
+++ b/sysdeps/mips/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-debug.h b/sysdeps/mips/dl-debug.h
index 284c2e8..3809f44 100644
--- a/sysdeps/mips/dl-debug.h
+++ b/sysdeps/mips/dl-debug.h
@@ -1,5 +1,5 @@
/* Debugging support. MIPS version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-dtprocnum.h b/sysdeps/mips/dl-dtprocnum.h
index c166e8a..801f8b7 100644
--- a/sysdeps/mips/dl-dtprocnum.h
+++ b/sysdeps/mips/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. MIPS version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-machine-reject-phdr.h b/sysdeps/mips/dl-machine-reject-phdr.h
index 67482ab..72bb908 100644
--- a/sysdeps/mips/dl-machine-reject-phdr.h
+++ b/sysdeps/mips/dl-machine-reject-phdr.h
@@ -1,5 +1,5 @@
/* Machine-dependent program header inspection for the ELF loader.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-machine-rel.h b/sysdeps/mips/dl-machine-rel.h
index e4aed82..7b7f386 100644
--- a/sysdeps/mips/dl-machine-rel.h
+++ b/sysdeps/mips/dl-machine-rel.h
@@ -1,5 +1,5 @@
/* ELF dynamic relocation type supported by the architecture. ARM version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index 10e30f1..560bf13 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -436,16 +436,6 @@ elf_machine_reloc (struct link_map *map, struct r_scope_elem *scope[],
const unsigned long int r_type = ELFW(R_TYPE) (r_info);
ElfW(Addr) *addr_field = (ElfW(Addr) *) reloc_addr;
-#if !defined RTLD_BOOTSTRAP && !defined SHARED
- /* This is defined in rtld.c, but nowhere in the static libc.a;
- make the reference weak so static programs can still link. This
- declaration cannot be done when compiling rtld.c (i.e. #ifdef
- RTLD_BOOTSTRAP) because rtld.c contains the common defn for
- _dl_rtld_map, which is incompatible with a weak decl in the same
- file. */
- weak_extern (GL(dl_rtld_map));
-#endif
-
switch (r_type)
{
#if !defined (RTLD_BOOTSTRAP)
@@ -534,7 +524,7 @@ elf_machine_reloc (struct link_map *map, struct r_scope_elem *scope[],
though it's not ABI compliant. Some day we should
bite the bullet and stop doing this. */
#ifndef RTLD_BOOTSTRAP
- if (map != &GL(dl_rtld_map))
+ if (!is_rtld_link_map (map))
#endif
reloc_value += SYMBOL_ADDRESS (map, sym, true);
}
@@ -553,7 +543,7 @@ elf_machine_reloc (struct link_map *map, struct r_scope_elem *scope[],
}
else
#ifndef RTLD_BOOTSTRAP
- if (map != &GL(dl_rtld_map))
+ if (!is_rtld_link_map (map))
#endif
reloc_value += map->l_addr;
@@ -749,7 +739,7 @@ elf_machine_got_rel (struct link_map *map, struct r_scope_elem *scope[], int laz
n = map->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val;
/* The dynamic linker's local got entries have already been relocated. */
- if (map != &GL(dl_rtld_map))
+ if (!is_rtld_link_map (map))
{
/* got[0] is reserved. got[1] is also reserved for the dynamic object
generated by gnu ld. Skip these reserved entries from relocation. */
diff --git a/sysdeps/mips/dl-procinfo.c b/sysdeps/mips/dl-procinfo.c
deleted file mode 100644
index 6a1aaef..0000000
--- a/sysdeps/mips/dl-procinfo.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Data for Mips version of processor capability information.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Note:
- When compiling elf/ldconfig.c, PROCINFO_CLASS is defined to static.
- This dl-procinfo.c is included in sysdeps/generic/ldsodefs.h.
- Afterwards, if not yet defined, PROCINFO_CLASS is defined to EXTERN
- just before dl-vdso-setup.c is included. A "static" _dl_vdso_xyz
- function prototype would lead to gcc warnings/errors: defined but
- not used. */
-#undef PROCINFO_DECL
-#undef PROCINFO_CLASS
diff --git a/sysdeps/mips/dl-procinfo.h b/sysdeps/mips/dl-procinfo.h
deleted file mode 100644
index af2616e..0000000
--- a/sysdeps/mips/dl-procinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Mips version of processor capability information handling macros.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
-
-/* There are no hardware capabilities defined. */
-#define _dl_hwcap_string(idx) ""
-
-/* We don't have any hardware capabilities. */
-#define _DL_HWCAP_COUNT 0
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/mips/dl-r_debug.h b/sysdeps/mips/dl-r_debug.h
index 492f9ca..8f364a3 100644
--- a/sysdeps/mips/dl-r_debug.h
+++ b/sysdeps/mips/dl-r_debug.h
@@ -1,5 +1,5 @@
/* Function to access r_debug structure. MIPS specific version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-relocate-ld.h b/sysdeps/mips/dl-relocate-ld.h
index 2f54671..f004bae 100644
--- a/sysdeps/mips/dl-relocate-ld.h
+++ b/sysdeps/mips/dl-relocate-ld.h
@@ -1,5 +1,5 @@
/* Check if dynamic section should be relocated. MIPS version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h
index 98bc596..c185971 100644
--- a/sysdeps/mips/dl-tls.h
+++ b/sysdeps/mips/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
/* Type used for the representation of TLS information in the GOT. */
typedef struct
@@ -41,5 +43,6 @@ typedef struct
extern void *__tls_get_addr (tls_index *ti);
-# define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
-# define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
+#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/mips/dl-trampoline.c b/sysdeps/mips/dl-trampoline.c
index 603ee2d..333c4ba 100644
--- a/sysdeps/mips/dl-trampoline.c
+++ b/sysdeps/mips/dl-trampoline.c
@@ -1,5 +1,5 @@
/* PLT trampoline. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/elf-initfini.h b/sysdeps/mips/elf-initfini.h
index 55ffd5d..b7a8826 100644
--- a/sysdeps/mips/elf-initfini.h
+++ b/sysdeps/mips/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. MIPS version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/elf_machine_sym_no_match.h b/sysdeps/mips/elf_machine_sym_no_match.h
index 7b7ca8e..259f3df 100644
--- a/sysdeps/mips/elf_machine_sym_no_match.h
+++ b/sysdeps/mips/elf_machine_sym_no_match.h
@@ -1,5 +1,5 @@
/* MIPS-specific handling of undefined symbols.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpregdef.h b/sysdeps/mips/fpregdef.h
index fcdb6b6..550147a 100644
--- a/sysdeps/mips/fpregdef.h
+++ b/sysdeps/mips/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fclrexcpt.c b/sysdeps/mips/fpu/fclrexcpt.c
index 8001f70..a9ab82a 100644
--- a/sysdeps/mips/fpu/fclrexcpt.c
+++ b/sysdeps/mips/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fedisblxcpt.c b/sysdeps/mips/fpu/fedisblxcpt.c
index d788db5..318464a 100644
--- a/sysdeps/mips/fpu/fedisblxcpt.c
+++ b/sysdeps/mips/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/feenablxcpt.c b/sysdeps/mips/fpu/feenablxcpt.c
index a8603e4..84062ec 100644
--- a/sysdeps/mips/fpu/feenablxcpt.c
+++ b/sysdeps/mips/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fegetenv.c b/sysdeps/mips/fpu/fegetenv.c
index 8288fd2..5eea072 100644
--- a/sysdeps/mips/fpu/fegetenv.c
+++ b/sysdeps/mips/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fegetexcept.c b/sysdeps/mips/fpu/fegetexcept.c
index 5e47bdc..00c79c6 100644
--- a/sysdeps/mips/fpu/fegetexcept.c
+++ b/sysdeps/mips/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fegetmode.c b/sysdeps/mips/fpu/fegetmode.c
index 43f88a1..1d310c3 100644
--- a/sysdeps/mips/fpu/fegetmode.c
+++ b/sysdeps/mips/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fegetround.c b/sysdeps/mips/fpu/fegetround.c
index 96dc5cb..1cac5cc 100644
--- a/sysdeps/mips/fpu/fegetround.c
+++ b/sysdeps/mips/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/feholdexcpt.c b/sysdeps/mips/fpu/feholdexcpt.c
index 16a0840..79f45ec 100644
--- a/sysdeps/mips/fpu/feholdexcpt.c
+++ b/sysdeps/mips/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fenv_libc.h b/sysdeps/mips/fpu/fenv_libc.h
index 865581a..ed546aa 100644
--- a/sysdeps/mips/fpu/fenv_libc.h
+++ b/sysdeps/mips/fpu/fenv_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fenv_private.h b/sysdeps/mips/fpu/fenv_private.h
index 89f43ff..4f92217 100644
--- a/sysdeps/mips/fpu/fenv_private.h
+++ b/sysdeps/mips/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Internal math stuff. MIPS version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fesetenv.c b/sysdeps/mips/fpu/fesetenv.c
index cc0951d..dbf432f 100644
--- a/sysdeps/mips/fpu/fesetenv.c
+++ b/sysdeps/mips/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fesetexcept.c b/sysdeps/mips/fpu/fesetexcept.c
index 96cf818..19828e1 100644
--- a/sysdeps/mips/fpu/fesetexcept.c
+++ b/sysdeps/mips/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fesetmode.c b/sysdeps/mips/fpu/fesetmode.c
index b7a6e79..8f175b6 100644
--- a/sysdeps/mips/fpu/fesetmode.c
+++ b/sysdeps/mips/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fesetround.c b/sysdeps/mips/fpu/fesetround.c
index ce06e66..2aa66b0 100644
--- a/sysdeps/mips/fpu/fesetround.c
+++ b/sysdeps/mips/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/feupdateenv.c b/sysdeps/mips/fpu/feupdateenv.c
index 447dc27..a3e7805 100644
--- a/sysdeps/mips/fpu/feupdateenv.c
+++ b/sysdeps/mips/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fgetexcptflg.c b/sysdeps/mips/fpu/fgetexcptflg.c
index b93d79c..aec6725 100644
--- a/sysdeps/mips/fpu/fgetexcptflg.c
+++ b/sysdeps/mips/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fraiseexcpt.c b/sysdeps/mips/fpu/fraiseexcpt.c
index b323f32..1fa8599 100644
--- a/sysdeps/mips/fpu/fraiseexcpt.c
+++ b/sysdeps/mips/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/fsetexcptflg.c b/sysdeps/mips/fpu/fsetexcptflg.c
index 690ce4b..f27600e 100644
--- a/sysdeps/mips/fpu/fsetexcptflg.c
+++ b/sysdeps/mips/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/ftestexcept.c b/sysdeps/mips/fpu/ftestexcept.c
index 04f14bf..58e2c55 100644
--- a/sysdeps/mips/fpu/ftestexcept.c
+++ b/sysdeps/mips/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/math-use-builtins-fma.h b/sysdeps/mips/fpu/math-use-builtins-fma.h
index 57108f9..06e9792 100644
--- a/sysdeps/mips/fpu/math-use-builtins-fma.h
+++ b/sysdeps/mips/fpu/math-use-builtins-fma.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu_control.h b/sysdeps/mips/fpu_control.h
index 3ceb34f..8c5b8a6 100644
--- a/sysdeps/mips/fpu_control.h
+++ b/sysdeps/mips/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. Mips version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/gccframe.h b/sysdeps/mips/gccframe.h
index 83497e8..e3922f0 100644
--- a/sysdeps/mips/gccframe.h
+++ b/sysdeps/mips/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. mips version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ieee754/bits/floatn.h b/sysdeps/mips/ieee754/bits/floatn.h
index 3bf9f3e..cdb129f 100644
--- a/sysdeps/mips/ieee754/bits/floatn.h
+++ b/sysdeps/mips/ieee754/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on MIPS platforms.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ieee754/bits/long-double.h b/sysdeps/mips/ieee754/bits/long-double.h
index 1a2933a..a2f747f 100644
--- a/sysdeps/mips/ieee754/bits/long-double.h
+++ b/sysdeps/mips/ieee754/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ieee754/ieee754.h b/sysdeps/mips/ieee754/ieee754.h
index 02380bc..a06a371 100644
--- a/sysdeps/mips/ieee754/ieee754.h
+++ b/sysdeps/mips/ieee754/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/include/sys/asm.h b/sysdeps/mips/include/sys/asm.h
index 52792bf..99b7cd9 100644
--- a/sysdeps/mips/include/sys/asm.h
+++ b/sysdeps/mips/include/sys/asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/jmpbuf-unwind.h b/sysdeps/mips/jmpbuf-unwind.h
index d94b9fa..3c2b4b7 100644
--- a/sysdeps/mips/jmpbuf-unwind.h
+++ b/sysdeps/mips/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ldsodefs.h b/sysdeps/mips/ldsodefs.h
index d654fea..8ef15ba 100644
--- a/sysdeps/mips/ldsodefs.h
+++ b/sysdeps/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/libc-tls.c b/sysdeps/mips/libc-tls.c
index 895f9e7..5d8d21d 100644
--- a/sysdeps/mips/libc-tls.c
+++ b/sysdeps/mips/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,5 +28,5 @@ void *
__tls_get_addr (tls_index *ti)
{
dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
+ return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
}
diff --git a/sysdeps/mips/lshift.S b/sysdeps/mips/lshift.S
index 04caa76..d4a4e8e 100644
--- a/sysdeps/mips/lshift.S
+++ b/sysdeps/mips/lshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_lshift --
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/machine-gmon.h b/sysdeps/mips/machine-gmon.h
index e2e0756..1f9af72 100644
--- a/sysdeps/mips/machine-gmon.h
+++ b/sysdeps/mips/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. MIPS
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/math-tests-snan-payload.h b/sysdeps/mips/math-tests-snan-payload.h
index f8f27df..605dd19 100644
--- a/sysdeps/mips/math-tests-snan-payload.h
+++ b/sysdeps/mips/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index 5b277e0..1b376b6 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
index 466599b..96a1807 100644
--- a/sysdeps/mips/memset.S
+++ b/sysdeps/mips/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/crti.S b/sysdeps/mips/mips32/crti.S
index df1d91c..17868b0 100644
--- a/sysdeps/mips/mips32/crti.S
+++ b/sysdeps/mips/mips32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/crtn.S b/sysdeps/mips/mips32/crtn.S
index 89ecbd9..dcca552 100644
--- a/sysdeps/mips/mips32/crtn.S
+++ b/sysdeps/mips/mips32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
index b67cd98..ea4a959 100644
--- a/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
+++ b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. MIPS version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/fpu/fpucw-helpers.c b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
index 65a4e8f..13e0d6d 100644
--- a/sysdeps/mips/mips32/fpu/fpucw-helpers.c
+++ b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
@@ -1,5 +1,5 @@
/* FPU control word handling, MIPS version, needed by MIPS16 callers.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
deleted file mode 100644
index 83772d5..0000000
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ /dev/null
@@ -1,1221 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan2_upward":
-double: 1
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: "carg_upward":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 2
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-float: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp10m1":
-double: 2
-float: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp2m1":
-double: 1
-float: 1
-
-Function: "exp2m1_downward":
-double: 2
-float: 1
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 5
-float: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 9
-
-Function: "j0_downward":
-double: 5
-float: 9
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-
-Function: "j1":
-double: 4
-float: 9
-
-Function: "j1_downward":
-double: 5
-float: 8
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-
-Function: "j1_upward":
-double: 9
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log10p1":
-double: 1
-float: 1
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-
-Function: "log2_upward":
-double: 3
-float: 3
-
-Function: "log2p1":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log_downward":
-float: 2
-
-Function: "log_towardzero":
-float: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sin_upward":
-double: 1
-float: 2
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 2
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-
-Function: "y0_downward":
-double: 3
-float: 9
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-
-Function: "y0_upward":
-double: 3
-float: 9
-
-Function: "y1":
-double: 3
-float: 9
-
-Function: "y1_downward":
-double: 6
-float: 9
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-
-Function: "y1_upward":
-double: 7
-float: 9
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 3
-float: 4
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-Function: "yn_upward":
-double: 4
-float: 5
-
-# end of automatic generation
diff --git a/sysdeps/mips/mips32/libm-test-ulps-name b/sysdeps/mips/mips32/libm-test-ulps-name
deleted file mode 100644
index d062269..0000000
--- a/sysdeps/mips/mips32/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-MIPS 32-bit
diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c
index 4a93e88..358e666 100644
--- a/sysdeps/mips/mips64/__longjmp.c
+++ b/sysdeps/mips/mips64/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/add_n.S b/sysdeps/mips/mips64/add_n.S
index 345d62f..1c9994b 100644
--- a/sysdeps/mips/mips64/add_n.S
+++ b/sysdeps/mips/mips64/add_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
* store sum in a third limb vector.
*
- * Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/addmul_1.S b/sysdeps/mips/mips64/addmul_1.S
index d105938..4d065bc 100644
--- a/sysdeps/mips/mips64/addmul_1.S
+++ b/sysdeps/mips/mips64/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
* add the product to a second limb vector.
*
- * Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/bsd-_setjmp.S b/sysdeps/mips/mips64/bsd-_setjmp.S
index 26402ca..4a53a21 100644
--- a/sysdeps/mips/mips64/bsd-_setjmp.S
+++ b/sysdeps/mips/mips64/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/bsd-setjmp.S b/sysdeps/mips/mips64/bsd-setjmp.S
index f76bf8b..30dd3ce 100644
--- a/sysdeps/mips/mips64/bsd-setjmp.S
+++ b/sysdeps/mips/mips64/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/e_sqrtl.c b/sysdeps/mips/mips64/e_sqrtl.c
index 9dbbfb8..bc55e17 100644
--- a/sysdeps/mips/mips64/e_sqrtl.c
+++ b/sysdeps/mips/mips64/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/gmp-mparam.h b/sysdeps/mips/mips64/gmp-mparam.h
index 8b849b3..1814a69 100644
--- a/sysdeps/mips/mips64/gmp-mparam.h
+++ b/sysdeps/mips/mips64/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2024 Free Software Foundation, Inc.
+Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
deleted file mode 100644
index 0addfd6..0000000
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ /dev/null
@@ -1,1525 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 4
-
-Function: "erfc_downward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2m1_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 5
-float: 8
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "log":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-float: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_downward":
-float: 2
-ldouble: 1
-
-Function: "log_towardzero":
-float: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 9
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-ldouble: 3
-
-Function: "y0_upward":
-double: 3
-float: 9
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/mips/mips64/libm-test-ulps-name b/sysdeps/mips/mips64/libm-test-ulps-name
deleted file mode 100644
index 916e314..0000000
--- a/sysdeps/mips/mips64/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-MIPS 64-bit
diff --git a/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S
index 2ea2e58..988b765 100644
--- a/sysdeps/mips/mips64/lshift.S
+++ b/sysdeps/mips/mips64/lshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_lshift --
*
- * Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/mul_1.S b/sysdeps/mips/mips64/mul_1.S
index 321789b..f48415e 100644
--- a/sysdeps/mips/mips64/mul_1.S
+++ b/sysdeps/mips/mips64/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_mul_1 -- Multiply a limb vector with a single limb and
* store the product in a second limb vector.
*
- * Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S
index 351655d..edc130f 100644
--- a/sysdeps/mips/mips64/n32/crti.S
+++ b/sysdeps/mips/mips64/n32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S
index 633d79c..e353dbf 100644
--- a/sysdeps/mips/mips64/n32/crtn.S
+++ b/sysdeps/mips/mips64/n32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S
index 9726eb3..5682489 100644
--- a/sysdeps/mips/mips64/n64/crti.S
+++ b/sysdeps/mips/mips64/n64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S
index 99ed1e3..8abbf86 100644
--- a/sysdeps/mips/mips64/n64/crtn.S
+++ b/sysdeps/mips/mips64/n64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S
index 1f6e3a2..2b43aa2 100644
--- a/sysdeps/mips/mips64/rshift.S
+++ b/sysdeps/mips/mips64/rshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_rshift --
*
- * Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S
index ba7a5de..b052a47 100644
--- a/sysdeps/mips/mips64/setjmp.S
+++ b/sysdeps/mips/mips64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c
index a6a2484..f02535f 100644
--- a/sysdeps/mips/mips64/setjmp_aux.c
+++ b/sysdeps/mips/mips64/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S
index b83d5cc..230132c 100644
--- a/sysdeps/mips/mips64/sub_n.S
+++ b/sysdeps/mips/mips64/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
* store difference in a third limb vector.
*
- * Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/submul_1.S b/sysdeps/mips/mips64/submul_1.S
index 46f26e8..618c64a 100644
--- a/sysdeps/mips/mips64/submul_1.S
+++ b/sysdeps/mips/mips64/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_submul_1 -- Multiply a limb vector with a single limb and
* subtract the product from a second limb vector.
*
- * Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2025 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mul_1.S b/sysdeps/mips/mul_1.S
index cfd4cc7..6e1af16 100644
--- a/sysdeps/mips/mul_1.S
+++ b/sysdeps/mips/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/nan-high-order-bit.h b/sysdeps/mips/nan-high-order-bit.h
index 006804d..eeaeed6 100644
--- a/sysdeps/mips/nan-high-order-bit.h
+++ b/sysdeps/mips/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. MIPS version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/pthreadtypes-arch.h b/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
index 5ea0c79..ab3cdfb 100644
--- a/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. MIPS version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/semaphore.h b/sysdeps/mips/nptl/bits/semaphore.h
index ca6ae73..46a43fd 100644
--- a/sysdeps/mips/nptl/bits/semaphore.h
+++ b/sysdeps/mips/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/struct_mutex.h b/sysdeps/mips/nptl/bits/struct_mutex.h
index af79203..717cdeb 100644
--- a/sysdeps/mips/nptl/bits/struct_mutex.h
+++ b/sysdeps/mips/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* MIPS internal mutex struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/struct_rwlock.h b/sysdeps/mips/nptl/bits/struct_rwlock.h
index e0c94ee..cdb790e 100644
--- a/sysdeps/mips/nptl/bits/struct_rwlock.h
+++ b/sysdeps/mips/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* MIPS internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/pthreaddef.h b/sysdeps/mips/nptl/pthreaddef.h
index 5b1959a..3c25a2f 100644
--- a/sysdeps/mips/nptl/pthreaddef.h
+++ b/sysdeps/mips/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
index 83536c0..77d620e 100644
--- a/sysdeps/mips/nptl/tls.h
+++ b/sysdeps/mips/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/MIPS version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/regdef.h b/sysdeps/mips/regdef.h
index 8ee2080..d5ac100 100644
--- a/sysdeps/mips/regdef.h
+++ b/sysdeps/mips/regdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/rshift.S b/sysdeps/mips/rshift.S
index e19fa41..81db963 100644
--- a/sysdeps/mips/rshift.S
+++ b/sysdeps/mips/rshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_rshift --
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/setjmp.S b/sysdeps/mips/setjmp.S
index 579d687..a0d5732 100644
--- a/sysdeps/mips/setjmp.S
+++ b/sysdeps/mips/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/setjmp_aux.c b/sysdeps/mips/setjmp_aux.c
index f7c53b7..98f10cc 100644
--- a/sysdeps/mips/setjmp_aux.c
+++ b/sysdeps/mips/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sgidefs.h b/sysdeps/mips/sgidefs.h
index fe6c747..a8b3190 100644
--- a/sysdeps/mips/sgidefs.h
+++ b/sysdeps/mips/sgidefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sotruss-lib.c b/sysdeps/mips/sotruss-lib.c
index f7d2fc5..0c02516 100644
--- a/sysdeps/mips/sotruss-lib.c
+++ b/sysdeps/mips/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for MIPS.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/stackinfo.h b/sysdeps/mips/stackinfo.h
index 10f80bf..6cce938 100644
--- a/sysdeps/mips/stackinfo.h
+++ b/sysdeps/mips/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S
index 0b10d0e..c58915c 100644
--- a/sysdeps/mips/start.S
+++ b/sysdeps/mips/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF Mips ABI.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/strcmp.S b/sysdeps/mips/strcmp.S
index 36379be..b599d5d 100644
--- a/sysdeps/mips/strcmp.S
+++ b/sysdeps/mips/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sub_n.S b/sysdeps/mips/sub_n.S
index 3e988ec..39f1888 100644
--- a/sysdeps/mips/sub_n.S
+++ b/sysdeps/mips/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
store difference in a third limb vector.
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/submul_1.S b/sysdeps/mips/submul_1.S
index be8e284..c222366 100644
--- a/sysdeps/mips/submul_1.S
+++ b/sysdeps/mips/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_submul_1 -- Multiply a limb vector with a single limb and
subtract the product from a second limb vector.
-Copyright (C) 1995-2024 Free Software Foundation, Inc.
+Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/sys/asm.h b/sysdeps/mips/sys/asm.h
index e43eb39..d40ca75 100644
--- a/sysdeps/mips/sys/asm.h
+++ b/sysdeps/mips/sys/asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sys/fpregdef.h b/sysdeps/mips/sys/fpregdef.h
index 7578c04..2862c9c 100644
--- a/sysdeps/mips/sys/fpregdef.h
+++ b/sysdeps/mips/sys/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sys/regdef.h b/sysdeps/mips/sys/regdef.h
index acb449e..5f87e96 100644
--- a/sysdeps/mips/sys/regdef.h
+++ b/sysdeps/mips/sys/regdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sys/tas.h b/sysdeps/mips/sys/tas.h
index 89b2c34..dd698ec 100644
--- a/sysdeps/mips/sys/tas.h
+++ b/sysdeps/mips/sys/tas.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
index 04bfc3e..1bfd0c6 100644
--- a/sysdeps/mips/sys/ucontext.h
+++ b/sysdeps/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fp32mod.c b/sysdeps/mips/tst-abi-fp32mod.c
index c15dd88..535b731 100644
--- a/sysdeps/mips/tst-abi-fp32mod.c
+++ b/sysdeps/mips/tst-abi-fp32mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fp64amod.c b/sysdeps/mips/tst-abi-fp64amod.c
index 817afb4..017f4b7 100644
--- a/sysdeps/mips/tst-abi-fp64amod.c
+++ b/sysdeps/mips/tst-abi-fp64amod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fp64mod.c b/sysdeps/mips/tst-abi-fp64mod.c
index 106e558..012da55 100644
--- a/sysdeps/mips/tst-abi-fp64mod.c
+++ b/sysdeps/mips/tst-abi-fp64mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fpxxmod.c b/sysdeps/mips/tst-abi-fpxxmod.c
index 6c9fb3a..354c81c 100644
--- a/sysdeps/mips/tst-abi-fpxxmod.c
+++ b/sysdeps/mips/tst-abi-fpxxmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fpxxomod.c b/sysdeps/mips/tst-abi-fpxxomod.c
index 5d1ecc6..f6abe28 100644
--- a/sysdeps/mips/tst-abi-fpxxomod.c
+++ b/sysdeps/mips/tst-abi-fpxxomod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-interlink.c b/sysdeps/mips/tst-abi-interlink.c
index d487554..2172be8 100644
--- a/sysdeps/mips/tst-abi-interlink.c
+++ b/sysdeps/mips/tst-abi-interlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-audit.h b/sysdeps/mips/tst-audit.h
index 9d4f4d3..8072d5c 100644
--- a/sysdeps/mips/tst-audit.h
+++ b/sysdeps/mips/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. ARM version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mips/tst-mode-switch-1.c b/sysdeps/mips/tst-mode-switch-1.c
index 0a6bd65..9721d79 100644
--- a/sysdeps/mips/tst-mode-switch-1.c
+++ b/sysdeps/mips/tst-mode-switch-1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-mode-switch-2.c b/sysdeps/mips/tst-mode-switch-2.c
index 9fade47..7f4090c 100644
--- a/sysdeps/mips/tst-mode-switch-2.c
+++ b/sysdeps/mips/tst-mode-switch-2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-mode-switch-3.c b/sysdeps/mips/tst-mode-switch-3.c
index 19799fb..5b995df 100644
--- a/sysdeps/mips/tst-mode-switch-3.c
+++ b/sysdeps/mips/tst-mode-switch-3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-undefined-weak-lib.S b/sysdeps/mips/tst-undefined-weak-lib.S
index 1c97752..2d11ab0 100644
--- a/sysdeps/mips/tst-undefined-weak-lib.S
+++ b/sysdeps/mips/tst-undefined-weak-lib.S
@@ -1,5 +1,5 @@
/* Undefined weak symbol loading shared module.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-undefined-weak.c b/sysdeps/mips/tst-undefined-weak.c
index b2a6697..733c024 100644
--- a/sysdeps/mips/tst-undefined-weak.c
+++ b/sysdeps/mips/tst-undefined-weak.c
@@ -1,5 +1,5 @@
/* Undefined weak symbol loading main executable.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/unwind-arch.h b/sysdeps/mips/unwind-arch.h
index ba414c3..6c350f7 100644
--- a/sysdeps/mips/unwind-arch.h
+++ b/sysdeps/mips/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. MIPS customization.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nios2/Implies b/sysdeps/nios2/Implies
deleted file mode 100644
index 7d69983..0000000
--- a/sysdeps/nios2/Implies
+++ /dev/null
@@ -1,4 +0,0 @@
-wordsize-32
-ieee754/soft-fp
-ieee754/dbl-64
-ieee754/flt-32
diff --git a/sysdeps/nios2/Subdirs b/sysdeps/nios2/Subdirs
deleted file mode 100644
index 87eadf3..0000000
--- a/sysdeps/nios2/Subdirs
+++ /dev/null
@@ -1 +0,0 @@
-soft-fp
diff --git a/sysdeps/nios2/Versions b/sysdeps/nios2/Versions
deleted file mode 100644
index 48a2351..0000000
--- a/sysdeps/nios2/Versions
+++ /dev/null
@@ -1,12 +0,0 @@
-libc {
- GLIBC_2.21 {
- __adddf3; __addsf3; __divdf3; __divsf3; __eqdf2; __eqsf2; __extendsfdf2;
- __fixdfdi; __fixdfsi; __fixsfdi; __fixsfsi;
- __fixunsdfdi; __fixunsdfsi; __fixunssfdi; __fixunssfsi;
- __floatdidf; __floatdisf; __floatsidf; __floatsisf;
- __floatundidf; __floatundisf; __floatunsidf; __floatunsisf;
- __gedf2; __gesf2; __gtdf2; __gtsf2; __ledf2; __lesf2; __ltdf2; __ltsf2;
- __muldf3; __mulsf3; __nedf2; __nesf2; __negdf2; __negsf2;
- __subdf3; __subsf3; __truncdfsf2; __unorddf2; __unordsf2;
- }
-}
diff --git a/sysdeps/nios2/__longjmp.S b/sysdeps/nios2/__longjmp.S
deleted file mode 100644
index 66462cb..0000000
--- a/sysdeps/nios2/__longjmp.S
+++ /dev/null
@@ -1,81 +0,0 @@
-/* longjmp for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pointer_guard.h>
-#include <jmpbuf-offsets.h>
-
-/* __longjmp(jmpbuf, val) */
-
-ENTRY (__longjmp)
- mov r2, r5
- bne r5, zero, 1f
- movi r2, 1
-1:
-#ifdef PTR_DEMANGLE
- PTR_MANGLE_GUARD (r3)
- ldw r5, (JB_RA*4)(r4)
- ldw r6, (JB_SP*4)(r4)
- PTR_DEMANGLE (r5, r5, r3)
- PTR_DEMANGLE (r6, r6, r3)
-#endif
-
- cfi_def_cfa (r4, 0)
- cfi_offset (r16, JB_R16*4)
- cfi_offset (r17, JB_R17*4)
- cfi_offset (r18, JB_R18*4)
- cfi_offset (r19, JB_R19*4)
- cfi_offset (r20, JB_R20*4)
- cfi_offset (r21, JB_R21*4)
- cfi_offset (r22, JB_R22*4)
- cfi_offset (fp, JB_FP*4)
-#ifdef PTR_DEMANGLE
- cfi_register (ra, r5)
- cfi_register (sp, r7)
-#else
- cfi_offset (ra, JB_RA*4)
- cfi_offset (sp, JB_SP*4)
-#endif
- ldw r16, (JB_R16*4)(r4)
- ldw r17, (JB_R17*4)(r4)
- ldw r18, (JB_R18*4)(r4)
- ldw r19, (JB_R19*4)(r4)
- ldw r20, (JB_R20*4)(r4)
- ldw r21, (JB_R21*4)(r4)
- ldw r22, (JB_R22*4)(r4)
- ldw fp, (JB_FP*4)(r4)
-#ifdef PTR_DEMANGLE
- mov ra, r5
- mov sp, r6
-#else
- ldw ra, (JB_RA*4)(r4)
- ldw sp, (JB_SP*4)(r4)
-#endif
- cfi_same_value (r16)
- cfi_same_value (r17)
- cfi_same_value (r18)
- cfi_same_value (r19)
- cfi_same_value (r20)
- cfi_same_value (r21)
- cfi_same_value (r22)
- cfi_same_value (fp)
- cfi_same_value (ra)
- cfi_same_value (sp)
-
- ret
-END (__longjmp)
diff --git a/sysdeps/nios2/abort-instr.h b/sysdeps/nios2/abort-instr.h
deleted file mode 100644
index 17502e4..0000000
--- a/sysdeps/nios2/abort-instr.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* An instruction which should crash any program is an unused trap. */
-#define ABORT_INSTRUCTION asm ("trap 31")
diff --git a/sysdeps/nios2/bits/endianness.h b/sysdeps/nios2/bits/endianness.h
deleted file mode 100644
index 87e66eb..0000000
--- a/sysdeps/nios2/bits/endianness.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _BITS_ENDIANNESS_H
-#define _BITS_ENDIANNESS_H 1
-
-#ifndef _BITS_ENDIAN_H
-# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
-#endif
-
-/* Nios II has selectable endianness. */
-#ifdef __nios2_big_endian__
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
-#ifdef __nios2_little_endian__
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
-
-#endif /* bits/endianness.h */
diff --git a/sysdeps/nios2/bits/fenv.h b/sysdeps/nios2/bits/fenv.h
deleted file mode 100644
index a8ec0cd..0000000
--- a/sysdeps/nios2/bits/fenv.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-/* The Altera specified Nios II hardware FPU does not support exceptions,
- nor does the software floating-point support. */
-#define FE_ALL_EXCEPT 0
-
-/* Nios II supports only round-to-nearest. The software
- floating-point support also acts this way. */
-enum
- {
- __FE_UNDEFINED = 0,
-
- FE_TONEAREST =
-#define FE_TONEAREST 1
- FE_TONEAREST,
- };
-
-/* Type representing exception flags. */
-typedef unsigned int fexcept_t;
-
-/* Type representing floating-point environment. */
-typedef unsigned int fenv_t;
-
-/* If the default argument is used we use this value. */
-#define FE_DFL_ENV ((const fenv_t *) -1)
-
-#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
-/* Type representing floating-point control modes. */
-typedef unsigned int femode_t;
-
-/* Default floating-point control modes. */
-# define FE_DFL_MODE ((const femode_t *) -1L)
-#endif
diff --git a/sysdeps/nios2/bits/link.h b/sysdeps/nios2/bits/link.h
deleted file mode 100644
index a911639..0000000
--- a/sysdeps/nios2/bits/link.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Machine-specific declarations for dynamic linker interface, Nios II version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _LINK_H
-# error "Never include <bits/link.h> directly; use <link.h> instead."
-#endif
-
-/* Registers for entry into PLT on Nios II. */
-typedef struct La_nios2_regs
-{
- uint32_t lr_reg[4]; /* r4 through r7 */
- uint32_t lr_ra;
- uint32_t lr_sp;
-} La_nios2_regs;
-
-/* Return values for calls from PLT on Nios II. */
-typedef struct La_nios2_retval
-{
- uint32_t lrv_r2;
- uint32_t lrv_r3;
-} La_nios2_retval;
-
-__BEGIN_DECLS
-
-extern Elf32_Addr la_nios2_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_nios2_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_nios2_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_nios2_regs *__inregs,
- La_nios2_retval *__outregs,
- const char *symname);
-
-__END_DECLS
diff --git a/sysdeps/nios2/bits/setjmp.h b/sysdeps/nios2/bits/setjmp.h
deleted file mode 100644
index 7c2b7fd..0000000
--- a/sysdeps/nios2/bits/setjmp.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Define the machine-dependent type `jmp_buf'. Nios II version.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_BITS_SETJMP_H
-#define _NIOS2_BITS_SETJMP_H 1
-
-#if !defined(_SETJMP_H) && !defined(_PTHREAD_H)
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-/* Saves r16-r22 (callee-saved, including GOT pointer), fp (frame pointer),
- ra (return address), and sp (stack pointer). */
-typedef int __jmp_buf[10];
-
-#endif /* _NIOS2_BITS_SETJMP_H */
diff --git a/sysdeps/nios2/bsd-_setjmp.S b/sysdeps/nios2/bsd-_setjmp.S
deleted file mode 100644
index 4e6a2da..0000000
--- a/sysdeps/nios2/bsd-_setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* _setjmp is in setjmp.S */
diff --git a/sysdeps/nios2/bsd-setjmp.S b/sysdeps/nios2/bsd-setjmp.S
deleted file mode 100644
index 1da848d..0000000
--- a/sysdeps/nios2/bsd-setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* setjmp is in setjmp.S */
diff --git a/sysdeps/nios2/configure b/sysdeps/nios2/configure
deleted file mode 100644
index d25684d..0000000
--- a/sysdeps/nios2/configure
+++ /dev/null
@@ -1,174 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/nios2.
-
-# Nios II big endian is not yet supported.
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
-printf %s "checking for egrep -e... " >&6; }
-if test ${ac_cv_path_EGREP_TRADITIONAL+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in grep ggrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- :
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
-
- if test "$ac_cv_path_EGREP_TRADITIONAL"
-then :
- ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in egrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
- ;;
-esac
-fi ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
-printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
- EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for big endian" >&5
-printf %s "checking for big endian... " >&6; }
-if test ${libc_cv_nios2_be+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __nios2_big_endian__
- yes
- #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
-then :
- libc_cv_nios2_be=yes
-else case e in #(
- e) libc_cv_nios2_be=no ;;
-esac
-fi
-rm -rf conftest*
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_nios2_be" >&5
-printf "%s\n" "$libc_cv_nios2_be" >&6; }
-if test $libc_cv_nios2_be = yes; then
- as_fn_error $? "Big endian not supported for Nios II" "$LINENO" 5
-fi
-
-printf "%s\n" "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
-
-
diff --git a/sysdeps/nios2/configure.ac b/sysdeps/nios2/configure.ac
deleted file mode 100644
index f738e9a..0000000
--- a/sysdeps/nios2/configure.ac
+++ /dev/null
@@ -1,15 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/nios2.
-
-# Nios II big endian is not yet supported.
-AC_CACHE_CHECK([for big endian],
- [libc_cv_nios2_be],
- [AC_EGREP_CPP(yes,[#ifdef __nios2_big_endian__
- yes
- #endif
- ], libc_cv_nios2_be=yes, libc_cv_nios2_be=no)])
-if test $libc_cv_nios2_be = yes; then
- AC_MSG_ERROR([Big endian not supported for Nios II])
-fi
-
-AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
diff --git a/sysdeps/nios2/crti.S b/sysdeps/nios2/crti.S
deleted file mode 100644
index 85b5545..0000000
--- a/sysdeps/nios2/crti.S
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* crti.S puts a function prologue at the beginning of the .init and
- .fini sections and defines global symbols for those addresses, so
- they can be called as functions. The symbols _init and _fini are
- magic and cause the linker to emit DT_INIT and DT_FINI. */
-
-#include <libc-symbols.h>
-
-#ifndef PREINIT_FUNCTION
-# define PREINIT_FUNCTION __gmon_start__
-#endif
-
-#ifndef PREINIT_FUNCTION_WEAK
-# define PREINIT_FUNCTION_WEAK 1
-#endif
-
-#if PREINIT_FUNCTION_WEAK
- weak_extern (PREINIT_FUNCTION)
-#else
- .hidden PREINIT_FUNCTION
-#endif
-
- .section .init,"ax",@progbits
- .align 2
- .global _init
- .hidden _init
- .type _init, @function
-_init:
- addi sp, sp, -8
- stw r22, 0(sp)
- nextpc r22
- 1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r22, r22, r8
- stw ra, 4(sp)
-#if PREINIT_FUNCTION_WEAK
- movhi r2, %got_hiadj(PREINIT_FUNCTION)
- addi r2, r2, %got_lo(PREINIT_FUNCTION)
- add r2, r2, r22
- ldw r2, 0(r2)
- beq r2, zero, .L5
-#endif
- movhi r2, %call_hiadj(PREINIT_FUNCTION)
- addi r2, r2, %call_lo(PREINIT_FUNCTION)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-.L5:
-
- .section .fini,"ax",@progbits
- .align 2
- .global _fini
- .hidden _fini
- .type _fini, @function
-_fini:
- addi sp, sp, -8
- stw r22, 0(sp)
- nextpc r22
- 1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- stw ra, 4(sp)
- add r22, r22, r8
diff --git a/sysdeps/nios2/crtn.S b/sysdeps/nios2/crtn.S
deleted file mode 100644
index 6f0521a..0000000
--- a/sysdeps/nios2/crtn.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* crtn.S puts function epilogues in the .init and .fini sections
- corresponding to the prologues in crti.S. */
-
- .section .init,"ax",@progbits
- ldw ra, 4(sp)
- ldw r22, 0(sp)
- addi sp, sp, 8
- ret
-
- .section .fini,"ax",@progbits
- ldw ra, 4(sp)
- ldw r22, 0(sp)
- addi sp, sp, 8
- ret
diff --git a/sysdeps/nios2/dl-init.c b/sysdeps/nios2/dl-init.c
deleted file mode 100644
index 1af2d4b..0000000
--- a/sysdeps/nios2/dl-init.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Nios II specific procedures for initializing code.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <elf/dl-init.c>
-
-unsigned int
-_dl_nios2_get_gp_value (struct link_map *main_map)
-{
- ElfW(Dyn) *dyn = main_map->l_ld;
- for (dyn = main_map->l_ld; dyn->d_tag != DT_NULL; ++dyn)
- if (dyn->d_tag == DT_NIOS2_GP)
- return (unsigned int)(dyn->d_un.d_ptr);
- return 0;
-}
diff --git a/sysdeps/nios2/dl-machine.h b/sysdeps/nios2/dl-machine.h
deleted file mode 100644
index 5ebc9a9..0000000
--- a/sysdeps/nios2/dl-machine.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. Nios II version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "nios2"
-
-#include <string.h>
-#include <link.h>
-#include <dl-tls.h>
-#include <dl-static-tls.h>
-#include <dl-machine-rel.h>
-
-/* Return nonzero iff ELF header is compatible with the running host. */
-static inline int
-elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-{
- return ehdr->e_machine == EM_ALTERA_NIOS2;
-}
-
-
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. */
-static inline Elf32_Addr
-elf_machine_dynamic (void)
-{
- Elf32_Addr *dynamic;
- int tmp;
- asm ("nextpc\t%0\n\t"
- "1: movhi\t%1, %%hiadj(_GLOBAL_OFFSET_TABLE_ - 1b)\n\t"
- "addi\t%1, %1, %%lo(_GLOBAL_OFFSET_TABLE_ - 1b)\n\t"
- "add\t%0, %0, %1\n"
- : "=r" (dynamic), "=r" (tmp));
- return *dynamic;
-}
-
-
-/* Return the run-time load address of the shared object. */
-static inline Elf32_Addr
-elf_machine_load_address (void)
-{
- Elf32_Addr result;
- int tmp;
- asm ("nextpc\t%0\n\t"
- "1: movhi\t%1, %%hiadj(1b)\n\t"
- "addi\t%1, %1, %%lo(1b)\n\t"
- "sub\t%0, %0, %1\n"
- : "=r" (result), "=r" (tmp));
- return result;
-}
-
-/* Set up the loaded object described by L so its unrelocated PLT
- entries will jump to the on-demand fixup code in dl-runtime.c. */
-
-static inline int __attribute__ ((always_inline))
-elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
- int lazy, int profile)
-{
- extern void _dl_runtime_resolve (Elf32_Word);
-
- if (l->l_info[DT_JMPREL] && lazy)
- {
- /* The GOT entries for functions in the PLT have not yet been filled
- in. Their initial contents will arrange when called to load r15 with
- an offset into the .got section, load r14 with
- _GLOBAL_OFFSET_TABLE_[1], and then jump to _GLOBAL_OFFSET_TABLE[2].
- */
- Elf32_Addr *got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- got[1] = (Elf32_Addr) l; /* Identify this shared object. */
-
- /* This function will get called to fix up the GOT entry indicated by
- the offset on the stack, and then jump to the resolved address. */
- got[2] = (Elf32_Addr) &_dl_runtime_resolve;
- }
-
- return lazy;
-}
-
-/* Initial entry point code for the dynamic linker.
- The C function `_dl_start' is the real entry point;
- its return value is the user program's entry point. */
-
-#define RTLD_START asm ("\
-.text\n\
-.globl _start\n\
-.type _start, %function\n\
-_start:\n\
- /* At start time, all the args are on the stack. */\n\
- mov r4, sp\n\
-\n\
- /* Start the calculation of the GOT pointer. */\n\
- nextpc r22\n\
-1: movhi r8, %hiadj(_gp_got - 1b)\n\
- addi r8, r8, %lo(_gp_got - 1b)\n\
-\n\
- /* Figure out where _dl_start will need to return to. */\n\
- movhi ra, %hiadj(2f - 1b)\n\
- addi ra, ra, %lo(2f - 1b)\n\
- add ra, ra, r22\n\
-\n\
- /* Finish the calculation of the GOT pointer. */\n\
- add r22, r22, r8\n\
-\n\
- br _dl_start\n\
-\n\
- /* Save the returned user entry point. */\n\
-2: mov r16, r2\n\
-\n\
- /* Initialize gp. */\n\
- ldw r4, %got(_rtld_local)(r22)\n\
- ldw r4, 0(r4)\n\
- ldw r8, %call(_dl_nios2_get_gp_value)(r22)\n\
- callr r8\n\
- mov gp, r2\n\
-\n\
- /* Find the main_map from the GOT. */\n\
- ldw r4, %got(_rtld_local)(r22)\n\
- ldw r4, 0(r4)\n\
-\n\
- /* Load adjusted argc. */\n\
- ldw r2, %got(_dl_argc)(r22)\n\
- ldw r5, 0(r2)\n\
-\n\
- /* Load adjusted argv. */\n\
- ldw r2, %got(_dl_argv)(r22)\n\
- ldw r6, 0(r2)\n\
-\n\
- /* envp = argv + argc + 1 */\n\
- addi r7, r5, 1\n\
- slli r7, r7, 2\n\
- add r7, r7, r6\n\
-\n\
- /* Call _dl_init through the PLT. */\n\
- ldw r8, %call(_dl_init)(r22)\n\
- callr r8\n\
-\n\
- /* Find the finalization function. */\n\
- ldw r4, %got(_dl_fini)(r22)\n\
-\n\
- /* Jump to the user's entry point. */\n\
- jmp r16\n\
-");
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
- PLT entries should not be allowed to define the value.
- ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
- of the main executable's symbols, as for a COPY reloc. */
-#define elf_machine_type_class(type) \
- ((((type) == R_NIOS2_JUMP_SLOT \
- || (type) == R_NIOS2_TLS_DTPMOD \
- || (type) == R_NIOS2_TLS_DTPREL \
- || (type) == R_NIOS2_TLS_TPREL) * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_NIOS2_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
-#define ELF_MACHINE_JMP_SLOT R_NIOS2_JUMP_SLOT
-
-/* Fixup a PLT entry to bounce directly to the function at VALUE. */
-
-static inline Elf32_Addr
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
- const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
- const Elf32_Rela *reloc,
- Elf32_Addr *reloc_addr, Elf32_Addr value)
-{
- return *reloc_addr = value;
-}
-
-/* Return the final value of a plt relocation. */
-static inline Elf32_Addr
-elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
- Elf32_Addr value)
-{
- return value;
-}
-
-/* Names of the architecture-specific auditing callback functions. */
-#define ARCH_LA_PLTENTER nios2_gnu_pltenter
-#define ARCH_LA_PLTEXIT nios2_gnu_pltexit
-
-#endif /* dl_machine_h */
-
-#ifdef RESOLVE_MAP
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- LOADADDR is the load address of the object; INFO is an array indexed
- by DT_* of the .dynamic section info. */
-
-static inline void __attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
- const ElfW(Rela) *reloc, const ElfW(Sym) *sym,
- const struct r_found_version *version,
- void *const reloc_addr_arg, int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
-
- if (__glibc_unlikely (r_type == R_NIOS2_RELATIVE))
- *reloc_addr = map->l_addr + reloc->r_addend;
- else if (__glibc_unlikely (r_type == R_NIOS2_NONE))
- return;
- else
- {
- const Elf32_Sym *const refsym = sym;
- struct link_map *sym_map = RESOLVE_MAP (map, scope, &sym, version,
- r_type);
- Elf32_Addr value = SYMBOL_ADDRESS (sym_map, sym, true);
-
- switch (r_type)
- {
- case R_NIOS2_COPY:
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be
- found. */
- break;
- if (sym->st_size > refsym->st_size
- || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
- {
- const char *strtab;
-
- strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
- rtld_progname ?: "<program name unknown>",
- strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
- case R_NIOS2_GLOB_DAT:
- case R_NIOS2_JUMP_SLOT:
-# ifdef RTLD_BOOTSTRAP
- /* Fix weak undefined references. */
- if (sym != NULL && sym->st_value == 0)
- *reloc_addr = 0;
- else
-# endif
- *reloc_addr = value;
- break;
-#ifndef RTLD_BOOTSTRAP
- case R_NIOS2_TLS_DTPMOD:
- /* Get the information from the link map returned by the
- resolv function. */
- if (sym_map != NULL)
- *reloc_addr = sym_map->l_tls_modid;
- break;
-
- case R_NIOS2_TLS_DTPREL:
- *reloc_addr = reloc->r_addend + TLS_DTPREL_VALUE(sym);
- break;
-
- case R_NIOS2_TLS_TPREL:
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- *reloc_addr = reloc->r_addend + TLS_TPREL_VALUE(sym_map, sym);
- }
- break;
-#endif
- case R_NIOS2_BFD_RELOC_32:
- *reloc_addr = value + reloc->r_addend;
- break;
-
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
- }
- }
-}
-
-static inline void __attribute__((always_inline))
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- void *const reloc_addr_arg)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- *reloc_addr = l_addr + reloc->r_addend;
-}
-
-static inline void __attribute__((always_inline))
-elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[],
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
- int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
- if (ELF32_R_TYPE (reloc->r_info) == R_NIOS2_JUMP_SLOT)
- *reloc_addr += l_addr;
- else
- _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1);
-}
-
-#endif /* RESOLVE_MAP */
diff --git a/sysdeps/nios2/dl-tls.h b/sysdeps/nios2/dl-tls.h
deleted file mode 100644
index 18e3197..0000000
--- a/sysdeps/nios2/dl-tls.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-/* The thread pointer points 0x7000 past the first static TLS block. */
-#define TLS_TP_OFFSET 0x7000
-
-/* Dynamic thread vector pointers point 0x8000 past the start of each
- TLS block. */
-#define TLS_DTV_OFFSET 0x8000
-
-/* Compute the value for a GOTTPREL reloc. */
-#define TLS_TPREL_VALUE(sym_map, sym) \
- ((sym_map)->l_tls_offset + (sym)->st_value - TLS_TP_OFFSET)
-
-/* Compute the value for a DTPREL reloc. */
-#define TLS_DTPREL_VALUE(sym) \
- ((sym)->st_value - TLS_DTV_OFFSET)
-
-extern void *__tls_get_addr (tls_index *ti);
-
-# define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
-# define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
diff --git a/sysdeps/nios2/dl-trampoline.S b/sysdeps/nios2/dl-trampoline.S
deleted file mode 100644
index c4bc27a..0000000
--- a/sysdeps/nios2/dl-trampoline.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/* PLT trampolines. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libc-symbols.h>
-
- .text
- .globl _dl_runtime_resolve
- cfi_startproc
-_dl_runtime_resolve:
-/* The runtime resolver receives the original function arguments in r4
- through r7, the shared library identifier from GOT[1]? in r14, and the
- relocation index times four in r15. It updates the corresponding PLT GOT
- entry so that the PLT entry will transfer control directly to the target
- in the future, and then transfers control to the target. */
- /* Save arguments and return address. */
- subi sp, sp, 28
- cfi_adjust_cfa_offset (28)
- stw r22, 24(sp)
- cfi_rel_offset (r22, 24)
- stw r8, 20(sp) /* save r8, because this might be a call to mcount */
- cfi_rel_offset (r8, 20)
- stw r7, 16(sp)
- cfi_rel_offset (r7, 16)
- stw r6, 12(sp)
- cfi_rel_offset (r6, 12)
- stw r5, 8(sp)
- cfi_rel_offset (r5, 8)
- stw r4, 4(sp)
- cfi_rel_offset (r4, 4)
- stw ra, 0(sp)
- cfi_rel_offset (ra, 0)
-
- /* Get pointer to linker struct. */
- mov r4, r14
-
- /* Get the relocation offset. We're given a multiple of 4 and
- need a multiple of 12, so multiply by 3. */
- slli r5, r15, 1
- add r5, r5, r15
-
- /* Call the fixup routine. */
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
- ldw r2, %call(_dl_fixup)(r22)
- callr r2
-
- /* Restore the arguments and return address. */
- ldw ra, 0(sp)
- ldw r4, 4(sp)
- ldw r5, 8(sp)
- ldw r6, 12(sp)
- ldw r7, 16(sp)
- ldw r8, 20(sp)
- ldw r22, 24(sp)
- addi sp, sp, 28
- cfi_adjust_cfa_offset (-28)
-
- /* Jump to the newly found address. */
- jmp r2
-
- cfi_endproc
diff --git a/sysdeps/nios2/gccframe.h b/sysdeps/nios2/gccframe.h
deleted file mode 100644
index 4c4eb0b..0000000
--- a/sysdeps/nios2/gccframe.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Definition of object in frame unwind info. Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define FIRST_PSEUDO_REGISTER 40
-
-#include <sysdeps/generic/gccframe.h>
diff --git a/sysdeps/nios2/jmpbuf-offsets.h b/sysdeps/nios2/jmpbuf-offsets.h
deleted file mode 100644
index 01bf0a9..0000000
--- a/sysdeps/nios2/jmpbuf-offsets.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Private macros for accessing __jmp_buf contents. Nios II version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Save offsets within __jmp_buf. */
-#define JB_R16 0
-#define JB_R17 1
-#define JB_R18 2
-#define JB_R19 3
-#define JB_R20 4
-#define JB_R21 5
-#define JB_R22 6
-#define JB_FP 7
-#define JB_RA 8
-#define JB_SP 9
-
-#ifndef __ASSEMBLER__
-#include <setjmp.h>
-#include <stdint.h>
-#include <sysdep.h>
-#include <pointer_guard.h>
-
-static inline uintptr_t __attribute__ ((unused))
-_jmpbuf_sp (__jmp_buf jmpbuf)
-{
- uintptr_t sp = jmpbuf[JB_SP];
- PTR_DEMANGLE (sp);
- return sp;
-}
-#endif
-
-/* Helper for generic ____longjmp_chk(). */
-#define JB_FRAME_ADDRESS(buf) ((void *) _jmpbuf_sp (buf))
diff --git a/sysdeps/nios2/jmpbuf-unwind.h b/sysdeps/nios2/jmpbuf-unwind.h
deleted file mode 100644
index a194e2a..0000000
--- a/sysdeps/nios2/jmpbuf-unwind.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Examine __jmp_buf for unwinding frames. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-#include <jmpbuf-offsets.h>
-#include <stdint.h>
-#include <unwind.h>
-
-/* Test if longjmp to JMPBUF would unwind the frame
- containing a local variable at ADDRESS. */
-
-#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
- ((void *) (address) < (void *) demangle (jmpbuf[JB_SP]))
-
-#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
- _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-
-#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf_sp (_jmpbuf) - (_adj)))
-
-/* We use the normal longjmp for unwinding. */
-#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/sysdeps/nios2/ldbl-classify-compat.h b/sysdeps/nios2/ldbl-classify-compat.h
deleted file mode 100644
index a9614de..0000000
--- a/sysdeps/nios2/ldbl-classify-compat.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef NIOS2_LDBL_CLASSIFY_COMPAT_H
-#define NIOS2_LDBL_CLASSIFY_COMPAT_H 1
-
-/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
- when built without long double support. */
-#define LDBL_CLASSIFY_COMPAT 1
-
-#endif
diff --git a/sysdeps/nios2/ldsodefs.h b/sysdeps/nios2/ldsodefs.h
deleted file mode 100644
index 2db2a44..0000000
--- a/sysdeps/nios2/ldsodefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_LDSODEFS_H
-#define _NIOS2_LDSODEFS_H 1
-
-#include <elf.h>
-
-struct La_nios2_regs;
-struct La_nios2_retval;
-
-#define ARCH_PLTENTER_MEMBERS \
- ElfW(Addr) (*nios2_gnu_pltenter) (ElfW(Sym) *, unsigned int, \
- uintptr_t *, uintptr_t *, \
- const struct La_nios2_regs *, \
- unsigned int *, const char *, \
- long int *);
-
-#define ARCH_PLTEXIT_MEMBERS \
- unsigned int (*nios2_gnu_pltexit) (ElfW(Sym) *, unsigned int, \
- uintptr_t *, uintptr_t *, \
- const struct La_nios2_regs *, \
- struct La_nios2_retval *, \
- const char *);
-
-#include_next <ldsodefs.h>
-
-#endif
diff --git a/sysdeps/nios2/libc-tls.c b/sysdeps/nios2/libc-tls.c
deleted file mode 100644
index 184878d..0000000
--- a/sysdeps/nios2/libc-tls.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <csu/libc-tls.c>
-#include <dl-tls.h>
-
-/* On Nios II, linker optimizations are not required, so __tls_get_addr
- can be called even in statically linked binaries. In this case module
- must be always 1 and PT_TLS segment exist in the binary, otherwise it
- would not link. */
-
-void *
-__tls_get_addr (tls_index *ti)
-{
- dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
-}
diff --git a/sysdeps/nios2/libm-test-ulps b/sysdeps/nios2/libm-test-ulps
deleted file mode 100644
index c8d1a72..0000000
--- a/sysdeps/nios2/libm-test-ulps
+++ /dev/null
@@ -1,283 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "cabs":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp2":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "hypot":
-double: 1
-
-Function: "j0":
-double: 2
-float: 8
-
-Function: "j1":
-double: 2
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "pow":
-double: 1
-float: 3
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "tan":
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 8
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "yn":
-double: 3
-float: 3
-
-# end of automatic generation
diff --git a/sysdeps/nios2/libm-test-ulps-name b/sysdeps/nios2/libm-test-ulps-name
deleted file mode 100644
index 4ee7692..0000000
--- a/sysdeps/nios2/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Nios II
diff --git a/sysdeps/nios2/machine-gmon.h b/sysdeps/nios2/machine-gmon.h
deleted file mode 100644
index 5674af2..0000000
--- a/sysdeps/nios2/machine-gmon.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Machine-dependent definitions for profiling support. Nios II version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-static void __attribute_used__ __mcount_internal (u_long frompc, u_long selfpc)
-
-/* This macro/func MUST save r4, r5, r6, r7 and r8 because the compiler inserts
- blind calls to mcount(), ignoring the fact that mcount may clobber
- registers; therefore, mcount may NOT clobber registers. */
-
-#if defined(__PIC__) || defined(PIC)
-#define NIOS2_MCOUNT_CALL \
- "nextpc r3\n\t" \
- "1: movhi r2, %hiadj(_gp_got - 1b)\n\t" \
- "addi r2, r2, %lo(_gp_got - 1b)\n\t" \
- "add r2, r2, r3\n\t" \
- "ldw r2, %call(__mcount_internal)(r2)\n\t" \
- "callr r2\n\t"
-#else
-#define NIOS2_MCOUNT_CALL \
- "call\t__mcount_internal\n\t"
-#endif
-
-#define MCOUNT \
- asm (".globl _mcount\n\t" \
- ".type _mcount,@function\n\t" \
- "_mcount:\n\t" \
- "subi sp, sp, 24\n\t" \
- "stw ra, 20(sp)\n\t" \
- "stw r8, 16(sp)\n\t" \
- "stw r7, 12(sp)\n\t" \
- "stw r6, 8(sp)\n\t" \
- "stw r5, 4(sp)\n\t" \
- "stw r4, 0(sp)\n\t" \
- "mov r4, r8\n\t" \
- "mov r5, ra\n\t" \
- NIOS2_MCOUNT_CALL \
- "ldw ra, 20(sp)\n\t" \
- "ldw r8, 16(sp)\n\t" \
- "ldw r7, 12(sp)\n\t" \
- "ldw r6, 8(sp)\n\t" \
- "ldw r5, 4(sp)\n\t" \
- "ldw r4, 0(sp)\n\t" \
- "addi sp, sp, 24\n\t" \
- "ret\n\t" \
- ".size _mcount, . - _mcount\n\t" \
- );
diff --git a/sysdeps/nios2/nptl/Makefile b/sysdeps/nios2/nptl/Makefile
deleted file mode 100644
index d2be17f..0000000
--- a/sysdeps/nios2/nptl/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# NPTL makefile fragment for Nios II.
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
-#
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library. If not, see
-# <https://www.gnu.org/licenses/>.
-
-ifeq ($(subdir),csu)
-gen-as-const-headers += tcb-offsets.sym
-endif
diff --git a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h b/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index bd16aca..0000000
--- a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Machine-specific pthread type layouts. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/endian.h>
-
-#define __SIZEOF_PTHREAD_ATTR_T 36
-#define __SIZEOF_PTHREAD_MUTEX_T 24
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 32
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 20
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/nios2/nptl/pthreaddef.h b/sysdeps/nios2/nptl/pthreaddef.h
deleted file mode 100644
index 9a716a9..0000000
--- a/sysdeps/nios2/nptl/pthreaddef.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* pthread machine parameter definitions, Nios II version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Default stack size. */
-#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-
-/* Minimum guard size. */
-#define ARCH_MIN_GUARD_SIZE 0
-
-/* Required stack pointer alignment at beginning. */
-#define STACK_ALIGN 4
-
-/* Minimal stack size after allocating thread descriptor and guard size. */
-#define MINIMAL_REST_STACK 2048
-
-/* Location of current stack frame. */
-#define CURRENT_STACK_FRAME __builtin_frame_address (0)
diff --git a/sysdeps/nios2/nptl/tcb-offsets.sym b/sysdeps/nios2/nptl/tcb-offsets.sym
deleted file mode 100644
index 3cd8d98..0000000
--- a/sysdeps/nios2/nptl/tcb-offsets.sym
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <sysdep.h>
-#include <tls.h>
-
---
-
--- Abuse tls.h macros to derive offsets relative to the thread register.
-# undef __thread_self
-# define __thread_self ((void *) 0)
-# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct pthread, mem))
-
-MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
-TID_OFFSET thread_offsetof (tid)
-POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h
deleted file mode 100644
index 4c6489a..0000000
--- a/sysdeps/nios2/nptl/tls.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Definition for thread-local data handling. NPTL/Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TLS_H
-#define _TLS_H 1
-
-#include <dl-sysdep.h>
-
-#ifndef __ASSEMBLER__
-# include <stdbool.h>
-# include <stddef.h>
-# include <stdint.h>
-# include <dl-dtv.h>
-
-#else /* __ASSEMBLER__ */
-# include <tcb-offsets.h>
-#endif /* __ASSEMBLER__ */
-
-
-#ifndef __ASSEMBLER__
-
-/* Get system call information. */
-# include <sysdep.h>
-
-/* The TP points to the start of the thread blocks. */
-# define TLS_DTV_AT_TP 1
-# define TLS_TCB_AT_TP 0
-
-/* Get the thread descriptor definition. */
-# include <nptl/descr.h>
-
-typedef struct
-{
- dtv_t *dtv;
- uintptr_t pointer_guard;
- unsigned spare[6];
-} tcbhead_t;
-
-register struct pthread *__thread_self __asm__("r23");
-
-#define READ_THREAD_POINTER() ((void *) __thread_self)
-
-/* This is the size of the initial TCB. Because our TCB is before the thread
- pointer, we don't need this. */
-# define TLS_INIT_TCB_SIZE 0
-
-/* This is the size of the TCB. Because our TCB is before the thread
- pointer, we don't need this. */
-# define TLS_TCB_SIZE 0
-
-/* This is the size we need before TCB - actually, it includes the TCB. */
-# define TLS_PRE_TCB_SIZE \
- (sizeof (struct pthread) \
- + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1) \
- & ~(__alignof (struct pthread) - 1)))
-
-/* The thread pointer (in hardware register r23) points to the end of
- the TCB + 0x7000, as for PowerPC and MIPS. */
-# define TLS_TCB_OFFSET 0x7000
-
-/* Install the dtv pointer. The pointer passed is to the element with
- index -1 which contain the length. */
-# define INSTALL_DTV(tcbp, dtvp) \
- (((tcbhead_t *) (tcbp))[-1].dtv = (dtvp) + 1)
-
-/* Install new dtv for current thread. */
-# define INSTALL_NEW_DTV(dtv) \
- (THREAD_DTV() = (dtv))
-
-/* Return dtv of given thread descriptor. */
-# define GET_DTV(tcbp) \
- (((tcbhead_t *) (tcbp))[-1].dtv)
-
-/* Code to initially initialize the thread pointer. */
-# define TLS_INIT_TP(tcbp) \
- (__thread_self = (struct pthread *) ((char *) tcbp + TLS_TCB_OFFSET), true)
-
-/* Value passed to 'clone' for initialization of the thread register. */
-# define TLS_DEFINE_INIT_TP(tp, pd) \
- void *tp = (void *) (pd) + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE
-
-/* Return the address of the dtv for the current thread. */
-# define THREAD_DTV() \
- (((tcbhead_t *) (READ_THREAD_POINTER () - TLS_TCB_OFFSET))[-1].dtv)
-
-/* Return the thread descriptor for the current thread. */
-# define THREAD_SELF \
- ((struct pthread *) (READ_THREAD_POINTER () \
- - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE))
-
-/* Magic for libthread_db to know how to do THREAD_SELF. */
-# define DB_THREAD_SELF \
- REGISTER (32, 32, 23 * 4, -TLS_PRE_TCB_SIZE - TLS_TCB_OFFSET)
-
-# include <tcb-access.h>
-
-# define THREAD_GET_POINTER_GUARD() \
- (((tcbhead_t *) (READ_THREAD_POINTER () \
- - TLS_TCB_OFFSET))[-1].pointer_guard)
-# define THREAD_SET_POINTER_GUARD(value) \
- (THREAD_GET_POINTER_GUARD () = (value))
-# define THREAD_COPY_POINTER_GUARD(descr) \
- (((tcbhead_t *) ((void *) (descr) \
- + TLS_PRE_TCB_SIZE))[-1].pointer_guard \
- = THREAD_GET_POINTER_GUARD())
-
-/* l_tls_offset == 0 is perfectly valid on Nios II, so we have to use some
- different value to mean unset l_tls_offset. */
-# define NO_TLS_OFFSET -1
-
-/* Get and set the global scope generation counter in struct pthread. */
-#define THREAD_GSCOPE_FLAG_UNUSED 0
-#define THREAD_GSCOPE_FLAG_USED 1
-#define THREAD_GSCOPE_FLAG_WAIT 2
-#define THREAD_GSCOPE_RESET_FLAG() \
- do \
- { int __res \
- = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \
- THREAD_GSCOPE_FLAG_UNUSED); \
- if (__res == THREAD_GSCOPE_FLAG_WAIT) \
- lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
- } \
- while (0)
-#define THREAD_GSCOPE_SET_FLAG() \
- do \
- { \
- THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
- atomic_write_barrier (); \
- } \
- while (0)
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* tls.h */
diff --git a/sysdeps/nios2/preconfigure b/sysdeps/nios2/preconfigure
deleted file mode 100644
index 4b5bd49..0000000
--- a/sysdeps/nios2/preconfigure
+++ /dev/null
@@ -1,6 +0,0 @@
-case "$machine" in
-nios2*)
- base_machine=nios2
- machine=nios2
- ;;
-esac
diff --git a/sysdeps/nios2/setjmp.S b/sysdeps/nios2/setjmp.S
deleted file mode 100644
index 71624b2..0000000
--- a/sysdeps/nios2/setjmp.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/* setjmp for Nios II.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pointer_guard.h>
-#include <jmpbuf-offsets.h>
-
- .text
-ENTRY(setjmp)
- movi r5, 1
- br __sigsetjmp
-END(setjmp)
-
-ENTRY(_setjmp)
- mov r5, zero
- br __sigsetjmp
-END(_setjmp)
-libc_hidden_def (_setjmp)
-
-/* Save the current program position in ENV and return 0. */
-ENTRY(__sigsetjmp)
-#ifdef PTR_MANGLE
- PTR_MANGLE_GUARD (r9)
-#endif
- stw r16, (JB_R16*4)(r4)
- stw r17, (JB_R17*4)(r4)
- stw r18, (JB_R18*4)(r4)
- stw r19, (JB_R19*4)(r4)
- stw r20, (JB_R20*4)(r4)
- stw r21, (JB_R21*4)(r4)
- stw r22, (JB_R22*4)(r4)
- stw fp, (JB_FP*4)(r4)
-#ifdef PTR_MANGLE
- PTR_MANGLE (r6, ra, r9)
- PTR_MANGLE (r7, sp, r9)
- stw r6, (JB_RA*4)(r4)
- stw r7, (JB_SP*4)(r4)
-#else
- stw ra, (JB_RA*4)(r4)
- stw sp, (JB_SP*4)(r4)
-#endif
-#if IS_IN (rtld)
- /* In ld.so we never save the signal mask. */
- mov r2, zero
- ret
-#else
- /* Save the signal mask if requested. */
-#if defined(__PIC__) || defined(PIC)
- nextpc r2
-1: movhi r3, %hiadj(__sigjmp_save - 1b)
- addi r3, r3, %lo(__sigjmp_save - 1b)
- add r2, r2, r3
- jmp r2
-#else
- jmpi __sigjmp_save
-#endif
-#endif
-END (__sigsetjmp)
-libc_hidden_def (__sigsetjmp)
diff --git a/sysdeps/nios2/sfp-machine.h b/sysdeps/nios2/sfp-machine.h
deleted file mode 100644
index 95eefc1..0000000
--- a/sysdeps/nios2/sfp-machine.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define _FP_MUL_MEAT_S(R,X,Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_D(R,X,Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R,X,Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_D(R,X,Y) \
- _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
- _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-/* This is arbitrarily taken from the PowerPC version. */
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
- do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
- { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R,Y); \
- } \
- else \
- { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R,X); \
- } \
- R##_c = FP_CLS_NAN; \
- } while (0)
-
-#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/nios2/sotruss-lib.c b/sysdeps/nios2/sotruss-lib.c
deleted file mode 100644
index c3a5808..0000000
--- a/sysdeps/nios2/sotruss-lib.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Override generic sotruss-lib.c to define actual functions for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define HAVE_ARCH_PLTENTER
-#define HAVE_ARCH_PLTEXIT
-
-#include <elf/sotruss-lib.c>
-
-ElfW(Addr)
-la_nios2_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
- unsigned int ndx __attribute__ ((unused)),
- uintptr_t *refcook, uintptr_t *defcook,
- La_nios2_regs *regs, unsigned int *flags,
- const char *symname, long int *framesizep)
-{
- print_enter (refcook, defcook, symname,
- regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
- *flags);
-
- /* No need to copy anything, we will not need the parameters in any case. */
- *framesizep = 0;
-
- return sym->st_value;
-}
-
-unsigned int
-la_nios2_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
- uintptr_t *defcook,
- const struct La_nios2_regs *inregs,
- struct La_nios2_retval *outregs, const char *symname)
-{
- print_exit (refcook, defcook, symname, outregs->lrv_r2);
-
- return 0;
-}
diff --git a/sysdeps/nios2/stackguard-macros.h b/sysdeps/nios2/stackguard-macros.h
deleted file mode 100644
index 55a5771..0000000
--- a/sysdeps/nios2/stackguard-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdint.h>
-
-extern uintptr_t __stack_chk_guard;
-#define STACK_CHK_GUARD __stack_chk_guard
-
-#define POINTER_CHK_GUARD THREAD_GET_POINTER_GUARD()
diff --git a/sysdeps/nios2/stackinfo.h b/sysdeps/nios2/stackinfo.h
deleted file mode 100644
index e67d53e..0000000
--- a/sysdeps/nios2/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for Nios II.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On Nios II the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/nios2/start.S b/sysdeps/nios2/start.S
deleted file mode 100644
index 528046d..0000000
--- a/sysdeps/nios2/start.S
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Startup code for Nios II
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This is the canonical entry point, usually the first thing in the text
- segment.
-
- Note that the code in the .init section has already been run.
- This includes _init and _libc_init
-
- The stack pointer, sp, will point to the argument count on the stack.
- The initial state of the stack when a userspace process is started is:
-
- Purpose Start Address Length
- Unspecified High Addresses
- Referenced strings, etc. Varies
- Unspecified
- Null auxiliary vector entry 4bytes
- Auxiliary vector entries 8bytes each
- NULL terminator for envp 4bytes
- Environment pointers sp+8+4*argc 4bytes each
- NULL terminator for argv sp+4+4*argc 4bytes
- Argument pointers sp+4 4bytes each
- Argument count sp 4bytes
- Unspecified Low Addresses
-
- If the application should register a destructor function with atexit,
- the pointer will be placed in r4. Otherwise r4 will be zero.
-
- The contents of all other registers are unspecified. User code should
- set fp to zero to mark the end of the frame chain.
-
- The auxiliary vector is a series of pairs of 32-bit tag and 32-bit
- value, terminated by an AT_NULL tag.
-*/
-
- .text
- .globl _start
- .type _start,%function
-_start:
- /* Set up the global pointer. */
- movhi gp, %hiadj(_gp)
- addi gp, gp, %lo(_gp)
-
- /* Save the stack pointer. */
- mov r2, sp
-
- /* Create room on the stack for the fini, rtld_fini and stack_end args
- to __libc_start_main. */
- subi sp, sp, 12
-
- /* Push stack_end */
- stw r2, 8(sp)
-
- /* Push rtld_fini */
- stw r4, 4(sp)
-
- /* Set up the GOT pointer. */
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
-
- /* Used to be fini. */
- stw zero, 0(sp)
-
- /* Used to be init. */
- mov r7, zero
-
- /* r6 == argv */
- addi r6, sp, 16
-
- /* r5 == argc */
- ldw r5, 12(sp)
-
- /* r4 == main */
- movhi r4, %call_hiadj(main)
- addi r4, r4, %call_lo(main)
- add r4, r4, r22
- ldw r4, 0(r4)
-
- /* fp == 0 */
- mov fp, zero
-
- /* __libc_start_main (main, argc, argv, init, fini, rtld_fini,
- stack_end) */
-
- /* Let the libc call main and exit with its return code. */
- movhi r2, %call_hiadj(__libc_start_main)
- addi r2, r2, %call_lo(__libc_start_main)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-
- /* should never get here....*/
- movhi r2, %call_hiadj(abort)
- addi r2, r2, %call_lo(abort)
- add r2, r2, r22
- ldw r2, 0(r2)
- callr r2
-
-/* Define a symbol for the first piece of initialized data. */
- .data
- .globl __data_start
-__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
diff --git a/sysdeps/nios2/sysdep.h b/sysdeps/nios2/sysdep.h
deleted file mode 100644
index 67c6219..0000000
--- a/sysdeps/nios2/sysdep.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Assembler macros for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-/* Syntactic details of assembler. */
-
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-#define ENTRY(name) \
- .globl C_SYMBOL_NAME(name); \
- .type C_SYMBOL_NAME(name),%function; \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT;
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(name)
-
-#ifdef PROF
-
-# ifdef __PIC__
-# define CALL_MCOUNT \
- mov r8, ra; \
- nextpc r2; \
-1: \
- movhi r3, %hiadj(_gp_got - 1b); \
- addi r3, r3, %lo(_gp_got - 1b); \
- add r2, r2, r3; \
- ldw r2, %call(_mcount)(r2); \
- callr r2; \
- mov ra, r8; \
- ret;
-# else
-# define CALL_MCOUNT \
- mov r8, ra; \
- call _mount; \
- mov ra, r8; \
- ret;
-# endif
-
-#else
-# define CALL_MCOUNT /* Do nothing. */
-#endif
-
-#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/nios2/tst-audit.h b/sysdeps/nios2/tst-audit.h
deleted file mode 100644
index 8449387..0000000
--- a/sysdeps/nios2/tst-audit.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Definitions for testing PLT entry/exit auditing. Nios II version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define pltenter la_nios2_gnu_pltenter
-#define pltexit la_nios2_gnu_pltexit
-#define La_regs La_nios2_regs
-#define La_retval La_nios2_retval
-#define int_retval lrv_r2
diff --git a/sysdeps/nios2/utmp-size.h b/sysdeps/nios2/utmp-size.h
deleted file mode 100644
index 8f21ebe..0000000
--- a/sysdeps/nios2/utmp-size.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define UTMP_SIZE 384
-#define LASTLOG_SIZE 292
diff --git a/sysdeps/nptl/Makeconfig b/sysdeps/nptl/Makeconfig
index 9b960e4..b5f546b 100644
--- a/sysdeps/nptl/Makeconfig
+++ b/sysdeps/nptl/Makeconfig
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/Makefile b/sysdeps/nptl/Makefile
index e08fd77..c6e15d2 100644
--- a/sysdeps/nptl/Makefile
+++ b/sysdeps/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/_Fork.c b/sysdeps/nptl/_Fork.c
index ef199dd..891ed8f 100644
--- a/sysdeps/nptl/_Fork.c
+++ b/sysdeps/nptl/_Fork.c
@@ -1,5 +1,5 @@
/* _Fork implementation. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,11 +17,19 @@
<https://www.gnu.org/licenses/>. */
#include <arch-fork.h>
+#include <libc-lock.h>
#include <pthreadP.h>
+#include <getrandom-internal.h>
pid_t
_Fork (void)
{
+ /* Block all signals to avoid revealing the inconsistent TCB state
+ to a signal handler after fork. The abort lock should AS-safe
+ to avoid deadlock if _Fork is called from a signal handler. */
+ internal_sigset_t original_sigmask;
+ __abort_lock_rdlock (&original_sigmask);
+
pid_t pid = arch_fork (&THREAD_SELF->tid);
if (pid == 0)
{
@@ -43,7 +51,10 @@ _Fork (void)
self->robust_head.list = &self->robust_head;
INTERNAL_SYSCALL_CALL (set_robust_list, &self->robust_head,
sizeof (struct robust_list_head));
+ call_function_static_weak (__getrandom_fork_subprocess);
}
+
+ __abort_lock_unlock (&original_sigmask);
return pid;
}
libc_hidden_def (_Fork)
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index 4fd0e38..87fd759 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,7 +50,7 @@
FUTEX_PRIVATE); \
else \
status = __futex_abstimed_wait64 ((unsigned int *) futexaddr, \
- oldval, CLOCK_REALTIME, timeout, FUTEX_PRIVATE); \
+ oldval, CLOCK_MONOTONIC, timeout, FUTEX_PRIVATE); \
if (status != EAGAIN) \
break; \
\
diff --git a/sysdeps/nptl/bits/pthreadtypes-arch.h b/sysdeps/nptl/bits/pthreadtypes-arch.h
index bac46f1..8c273eb 100644
--- a/sysdeps/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. Generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/nptl/bits/pthreadtypes.h b/sysdeps/nptl/bits/pthreadtypes.h
index bace817..1afb017 100644
--- a/sysdeps/nptl/bits/pthreadtypes.h
+++ b/sysdeps/nptl/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
/* Declaration of common pthread types for all architectures.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/bits/struct_mutex.h b/sysdeps/nptl/bits/struct_mutex.h
index f2b9b7e..60d7e74 100644
--- a/sysdeps/nptl/bits/struct_mutex.h
+++ b/sysdeps/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* Default mutex implementation struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/bits/struct_rwlock.h b/sysdeps/nptl/bits/struct_rwlock.h
index 7889df8..005c599 100644
--- a/sysdeps/nptl/bits/struct_rwlock.h
+++ b/sysdeps/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* Default read-write lock implementation struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
index df54eef..e614c7f 100644
--- a/sysdeps/nptl/bits/thread-shared-types.h
+++ b/sysdeps/nptl/bits/thread-shared-types.h
@@ -1,5 +1,5 @@
/* Common threading primitives definitions for both POSIX and C11.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -95,11 +95,12 @@ struct __pthread_cond_s
{
__atomic_wide_counter __wseq;
__atomic_wide_counter __g1_start;
- unsigned int __g_refs[2] __LOCK_ALIGNMENT;
- unsigned int __g_size[2];
+ unsigned int __g_size[2] __LOCK_ALIGNMENT;
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
+ unsigned int __unused_initialized_1;
+ unsigned int __unused_initialized_2;
};
typedef unsigned int __tss_t;
diff --git a/sysdeps/nptl/cancellation-pc-check.h b/sysdeps/nptl/cancellation-pc-check.h
new file mode 100644
index 0000000..f62d3bc
--- /dev/null
+++ b/sysdeps/nptl/cancellation-pc-check.h
@@ -0,0 +1,54 @@
+/* Architecture specific code for pthread cancellation handling.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NPTL_CANCELLATION_PC_CHECK
+#define _NPTL_CANCELLATION_PC_CHECK
+
+#include <sigcontextinfo.h>
+
+/* For syscalls with side-effects (e.g read that might return partial read),
+ the kernel cannot restart the syscall when interrupted by a signal, it must
+ return from the call with whatever partial result. In this case, the saved
+ program counter is set just after the syscall instruction, so the SIGCANCEL
+ handler should not act on cancellation.
+
+ The __syscall_cancel_arch function, used for all cancellable syscalls,
+ contains two extra markers, __syscall_cancel_arch_start and
+ __syscall_cancel_arch_end. The former points to just before the initial
+ conditional branch that checks if the thread has received a cancellation
+ request, while former points to the instruction after the one responsible
+ to issue the syscall.
+
+ The function check if the program counter (PC) from ucontext_t CTX is
+ within the start and then end boundary from the __syscall_cancel_arch
+ bridge. Return TRUE if the PC is within the boundary, meaning the
+ syscall does not have any side effects; or FALSE otherwise. */
+
+static __always_inline bool
+cancellation_pc_check (void *ctx)
+{
+ /* Both are defined in syscall_cancel.S. */
+ extern const char __syscall_cancel_arch_start[1];
+ extern const char __syscall_cancel_arch_end[1];
+
+ uintptr_t pc = sigcontext_get_pc (ctx);
+ return pc >= (uintptr_t) __syscall_cancel_arch_start
+ && pc < (uintptr_t) __syscall_cancel_arch_end;
+}
+
+#endif
diff --git a/sysdeps/nptl/dl-mutex.c b/sysdeps/nptl/dl-mutex.c
index 8d123cb..1e324e1 100644
--- a/sysdeps/nptl/dl-mutex.c
+++ b/sysdeps/nptl/dl-mutex.c
@@ -1,5 +1,5 @@
/* Recursive locking implementation for the dynamic loader. NPTL version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/dl-thread_gscope_wait.c b/sysdeps/nptl/dl-thread_gscope_wait.c
index 9ec74f3..2ed3fcf 100644
--- a/sysdeps/nptl/dl-thread_gscope_wait.c
+++ b/sysdeps/nptl/dl-thread_gscope_wait.c
@@ -1,5 +1,5 @@
/* Out-of-line notification function for the GSCOPE locking mechanism.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c
index 7803e19..47566dc 100644
--- a/sysdeps/nptl/dl-tls_init_tp.c
+++ b/sysdeps/nptl/dl-tls_init_tp.c
@@ -1,5 +1,5 @@
/* Completion of TCB initialization after TLS_INIT_TP. NPTL version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@
#include <tls.h>
#include <rseq-internal.h>
#include <thread_pointer.h>
+#include <dl-symbol-redir-ifunc.h>
#define TUNABLE_NAMESPACE pthread
#include <dl-tunables.h>
@@ -46,6 +47,8 @@ rtld_mutex_dummy (pthread_mutex_t *lock)
const unsigned int __rseq_flags;
+size_t _rseq_align attribute_hidden;
+
void
__tls_pre_init_tp (void)
{
@@ -72,7 +75,7 @@ __tls_init_tp (void)
/* Early initialization of the TCB. */
pd->tid = INTERNAL_SYSCALL_CALL (set_tid_address, &pd->tid);
THREAD_SETMEM (pd, specific[0], &pd->specific_1stblock[0]);
- THREAD_SETMEM (pd, user_stack, true);
+ THREAD_SETMEM (pd, stack_mode, ALLOCATE_GUARD_USER);
/* Before initializing GL (dl_stack_user), the debugger could not
find us and had to set __nptl_initial_report_events. Propagate
@@ -99,19 +102,14 @@ __tls_init_tp (void)
}
{
- bool do_rseq = true;
- do_rseq = TUNABLE_GET (rseq, int, NULL);
- if (rseq_register_current_thread (pd, do_rseq))
- _rseq_size = RSEQ_AREA_SIZE_INITIAL_USED;
-
-#ifdef RSEQ_SIG
- /* This should be a compile-time constant, but the current
- infrastructure makes it difficult to determine its value. Not
- all targets support __thread_pointer, so set __rseq_offset only
- if the rseq registration may have happened because RSEQ_SIG is
- defined. */
- _rseq_offset = (char *) &pd->rseq_area - (char *) __thread_pointer ();
-#endif
+ /* If the registration fails or is disabled by tunable, the public
+ '__rseq_size' will be set to '0' regardless of the feature size of the
+ allocated rseq area. An rseq area of at least 32 bytes is always
+ allocated since application code is allowed to check the status of the
+ rseq registration by reading the content of the 'cpu_id' field. */
+ bool do_rseq = TUNABLE_GET (rseq, int, NULL);
+ if (!rseq_register_current_thread (pd, do_rseq))
+ _rseq_size = 0;
}
/* Set initial thread's stack block from 0 up to __libc_stack_end.
diff --git a/sysdeps/nptl/dl-tunables.list b/sysdeps/nptl/dl-tunables.list
index 2037435..2625776 100644
--- a/sysdeps/nptl/dl-tunables.list
+++ b/sysdeps/nptl/dl-tunables.list
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/fork.h b/sysdeps/nptl/fork.h
index 7643926..c7b4a19 100644
--- a/sysdeps/nptl/fork.h
+++ b/sysdeps/nptl/fork.h
@@ -1,5 +1,5 @@
/* System specific fork hooks. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,7 @@
#include <mqueue.h>
#include <pthreadP.h>
#include <sysdep.h>
+#include <getrandom-internal.h>
static inline void
fork_system_setup (void)
@@ -46,6 +47,7 @@ fork_system_setup_after_fork (void)
call_function_static_weak (__mq_notify_fork_subprocess);
call_function_static_weak (__timer_fork_subprocess);
+ call_function_static_weak (__getrandom_fork_subprocess);
}
/* In case of a fork() call the memory allocation in the child will be
@@ -128,9 +130,19 @@ reclaim_stacks (void)
curp->specific_used = true;
}
}
+
+ call_function_static_weak (__getrandom_reset_state, curp);
}
}
+ /* Also reset stale getrandom states for user stack threads. */
+ list_for_each (runp, &GL (dl_stack_user))
+ {
+ struct pthread *curp = list_entry (runp, struct pthread, list);
+ if (curp != self)
+ call_function_static_weak (__getrandom_reset_state, curp);
+ }
+
/* Add the stack of all running threads to the cache. */
list_splice (&GL (dl_stack_used), &GL (dl_stack_cache));
@@ -143,7 +155,8 @@ reclaim_stacks (void)
INIT_LIST_HEAD (&GL (dl_stack_used));
INIT_LIST_HEAD (&GL (dl_stack_user));
- if (__glibc_unlikely (THREAD_GETMEM (self, user_stack)))
+ if (__glibc_unlikely (THREAD_GETMEM (self, stack_mode)
+ == ALLOCATE_GUARD_USER))
list_add (&self->list, &GL (dl_stack_user));
else
list_add (&self->list, &GL (dl_stack_used));
diff --git a/sysdeps/nptl/futex-internal.h b/sysdeps/nptl/futex-internal.h
index 0e87e92..301dacc 100644
--- a/sysdeps/nptl/futex-internal.h
+++ b/sysdeps/nptl/futex-internal.h
@@ -1,6 +1,6 @@
/* futex operations for glibc-internal use. Stub version; do not include
this file directly.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
index 8983d28..bf12c7e 100644
--- a/sysdeps/nptl/gai_misc.h
+++ b/sysdeps/nptl/gai_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/internaltypes.h b/sysdeps/nptl/internaltypes.h
index 844e475..efda6ea 100644
--- a/sysdeps/nptl/internaltypes.h
+++ b/sysdeps/nptl/internaltypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
index d098bdf..6ac5bf8 100644
--- a/sysdeps/nptl/jmp-unwind.c
+++ b/sysdeps/nptl/jmp-unwind.c
@@ -1,5 +1,5 @@
/* Clean up stack frames unwound by longjmp. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/libc-lock.h b/sysdeps/nptl/libc-lock.h
index 84aa961..3775547 100644
--- a/sysdeps/nptl/libc-lock.h
+++ b/sysdeps/nptl/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. NPTL version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 348999c..1be3dd1 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -1,5 +1,5 @@
/* Private libc-internal interface for mutex locks. NPTL version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/libc_start_call_main.h b/sysdeps/nptl/libc_start_call_main.h
index 26ac8dd..ca0436d 100644
--- a/sysdeps/nptl/libc_start_call_main.h
+++ b/sysdeps/nptl/libc_start_call_main.h
@@ -1,5 +1,5 @@
/* Invoking main from __libc_start_main. nptl version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/lowlevellock-futex.h b/sysdeps/nptl/lowlevellock-futex.h
index 278213a..8acb538 100644
--- a/sysdeps/nptl/lowlevellock-futex.h
+++ b/sysdeps/nptl/lowlevellock-futex.h
@@ -1,5 +1,5 @@
/* Low-level locking access to futex facilities. Stub version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#ifndef __ASSEMBLER__
# include <sysdep.h>
-# include <sysdep-cancel.h>
# include <kernel-features.h>
#endif
@@ -120,21 +119,10 @@
nr_wake, nr_move, mutex, val)
/* Like lll_futex_wait, but acting as a cancellable entrypoint. */
-# define lll_futex_wait_cancel(futexp, val, private) \
- ({ \
- int __oldtype = LIBC_CANCEL_ASYNC (); \
- long int __err = lll_futex_wait (futexp, val, LLL_SHARED); \
- LIBC_CANCEL_RESET (__oldtype); \
- __err; \
- })
-
-/* Like lll_futex_timed_wait, but acting as a cancellable entrypoint. */
-# define lll_futex_timed_wait_cancel(futexp, val, timeout, private) \
- ({ \
- int __oldtype = LIBC_CANCEL_ASYNC (); \
- long int __err = lll_futex_timed_wait (futexp, val, timeout, private); \
- LIBC_CANCEL_RESET (__oldtype); \
- __err; \
+# define lll_futex_wait_cancel(futexp, val, private) \
+ ({ \
+ int __op = __lll_private_flag (FUTEX_WAIT, private); \
+ INTERNAL_SYSCALL_CANCEL (futex, futexp, __op, val, NULL); \
})
#endif /* !__ASSEMBLER__ */
diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h
index 1fc4936..393763f 100644
--- a/sysdeps/nptl/lowlevellock.h
+++ b/sysdeps/nptl/lowlevellock.h
@@ -1,5 +1,5 @@
/* Low-level lock implementation. Generic futex-based version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/malloc-machine.h b/sysdeps/nptl/malloc-machine.h
index d8570c5..2b05644 100644
--- a/sysdeps/nptl/malloc-machine.h
+++ b/sysdeps/nptl/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/proc_service.h b/sysdeps/nptl/proc_service.h
index ffb5734..687affa 100644
--- a/sysdeps/nptl/proc_service.h
+++ b/sysdeps/nptl/proc_service.h
@@ -1,5 +1,5 @@
/* Callback interface for libthread_db, functions users must define.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index 3d4f4a7..92957a6 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -152,7 +152,7 @@ enum
/* Conditional variable handling. */
-#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }
+#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }
/* Cleanup buffers */
@@ -1317,6 +1317,11 @@ extern int pthread_getcpuclockid (pthread_t __thread_id,
__THROW __nonnull ((2));
#endif
+#ifdef __USE_GNU
+/* Return the Linux TID for THREAD_ID. Returns -1 on failure. */
+extern pid_t pthread_gettid_np (pthread_t __thread_id);
+#endif
+
/* Install handlers to be called when a new process is created with FORK.
The PREPARE handler is called in the parent process just before performing
diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
index 30e8a2d..8f25696 100644
--- a/sysdeps/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -261,10 +261,12 @@ libc_hidden_proto (__pthread_unregister_cancel)
/* Called when a thread reacts on a cancellation request. */
static inline void
__attribute ((noreturn, always_inline))
-__do_cancel (void)
+__do_cancel (void *result)
{
struct pthread *self = THREAD_SELF;
+ self->result = result;
+
/* Make sure we get no more cancellations. */
atomic_fetch_or_relaxed (&self->cancelhandling, EXITING_BITMASK);
@@ -272,6 +274,13 @@ __do_cancel (void)
THREAD_GETMEM (self, cleanup_jmp_buf));
}
+extern long int __syscall_cancel_arch (volatile int *, __syscall_arg_t nr,
+ __syscall_arg_t arg1, __syscall_arg_t arg2, __syscall_arg_t arg3,
+ __syscall_arg_t arg4, __syscall_arg_t arg5, __syscall_arg_t arg6
+ __SYSCALL_CANCEL7_ARCH_ARG_DEF) attribute_hidden;
+
+extern _Noreturn void __syscall_do_cancel (void) attribute_hidden;
+
/* Internal prototypes. */
@@ -280,12 +289,6 @@ __do_cancel (void)
extern void __nptl_free_tcb (struct pthread *pd);
libc_hidden_proto (__nptl_free_tcb)
-/* Change the permissions of a thread stack. Called from
- _dl_make_stacks_executable and pthread_create. */
-int
-__nptl_change_stack_perm (struct pthread *pd);
-rtld_hidden_proto (__nptl_change_stack_perm)
-
/* longjmp handling. */
extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe);
libc_hidden_proto (__pthread_cleanup_upto)
@@ -508,6 +511,7 @@ libc_hidden_proto (__pthread_kill)
extern int __pthread_cancel (pthread_t th);
extern int __pthread_kill_internal (pthread_t threadid, int signo)
attribute_hidden;
+extern int __pthread_raise_internal (int signo) attribute_hidden;
extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
libc_hidden_proto (__pthread_exit)
extern int __pthread_join (pthread_t threadid, void **thread_return);
@@ -584,10 +588,10 @@ struct __pthread_cleanup_combined_frame
/* Special cleanup macros which register cleanup both using
__pthread_cleanup_{push,pop} and using cleanup attribute. This is needed
- for pthread_once, so that it supports both throwing exceptions from the
- pthread_once callback (only cleanup attribute works there) and cancellation
- of the thread running the callback if the callback or some routines it
- calls don't have unwind information. */
+ for pthread_once and qsort, so that it supports both throwing exceptions
+ from the pthread_once or caller sort function callback (only cleanup
+ attribute works there) and cancellation of the thread running the callback
+ if the callback or some routines it calls don't have unwind information. */
static __always_inline void
__pthread_cleanup_combined_routine (struct __pthread_cleanup_combined_frame
diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
index 73ba2ae..c977e14 100644
--- a/sysdeps/nptl/pthread_early_init.h
+++ b/sysdeps/nptl/pthread_early_init.h
@@ -1,5 +1,5 @@
/* pthread initialization called from __libc_early_init. NPTL version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/pthread_mutex_backoff.h b/sysdeps/nptl/pthread_mutex_backoff.h
index 0291850..02733d0 100644
--- a/sysdeps/nptl/pthread_mutex_backoff.h
+++ b/sysdeps/nptl/pthread_mutex_backoff.h
@@ -1,5 +1,5 @@
/* Pthread mutex backoff configuration.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/pthread_mutex_conf.h b/sysdeps/nptl/pthread_mutex_conf.h
index 787a79b..76ec0db 100644
--- a/sysdeps/nptl/pthread_mutex_conf.h
+++ b/sysdeps/nptl/pthread_mutex_conf.h
@@ -1,5 +1,5 @@
/* Pthread mutex tunable parameters.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/rseq-access.h b/sysdeps/nptl/rseq-access.h
new file mode 100644
index 0000000..450f2dc
--- /dev/null
+++ b/sysdeps/nptl/rseq-access.h
@@ -0,0 +1,56 @@
+/* RSEQ_* accessors. Generic version.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <atomic.h>
+
+/* Read member of the RSEQ area directly. */
+#define RSEQ_GETMEM(member) \
+ RSEQ_SELF()->member
+
+/* Set member of the RSEQ area directly. */
+#define RSEQ_SETMEM(member, value) \
+ RSEQ_SELF()->member = (value)
+
+/* Static assert for types that can't be loaded/stored atomically on the
+ current architecture. */
+#if __HAVE_64B_ATOMICS
+#define __RSEQ_ASSERT_ATOMIC(member) \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4 \
+ || sizeof (RSEQ_SELF()->member) == 8, \
+ "size of rseq data")
+#else
+#define __RSEQ_ASSERT_ATOMIC(member) \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4, \
+ "size of rseq data")
+#endif
+
+/* Read member of the RSEQ area directly, with single-copy atomicity semantics. */
+#define RSEQ_GETMEM_ONCE(member) \
+ ({ \
+ __RSEQ_ASSERT_ATOMIC(member); \
+ (*(volatile __typeof (RSEQ_SELF()->member) *)&RSEQ_SELF()->member); \
+ })
+
+/* Set member of the RSEQ area directly, with single-copy atomicity semantics. */
+#define RSEQ_SETMEM_ONCE(member, value) \
+ ({ \
+ __RSEQ_ASSERT_ATOMIC(member); \
+ (*(volatile __typeof (RSEQ_SELF()->member) *)&RSEQ_SELF()->member = (value)); \
+ })
diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
index 1f5e771..b1ef6ba 100644
--- a/sysdeps/nptl/setxid.h
+++ b/sysdeps/nptl/setxid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/stdio-lock.h b/sysdeps/nptl/stdio-lock.h
index 7121870..d9d7dab 100644
--- a/sysdeps/nptl/stdio-lock.h
+++ b/sysdeps/nptl/stdio-lock.h
@@ -1,5 +1,5 @@
/* Thread package specific definitions of stream lock type. NPTL version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/sys/procfs.h b/sysdeps/nptl/sys/procfs.h
index d3210da..aa23483 100644
--- a/sysdeps/nptl/sys/procfs.h
+++ b/sysdeps/nptl/sys/procfs.h
@@ -1,5 +1,5 @@
/* Types used by thread_db callback interface. Stub version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/tcb-access.h b/sysdeps/nptl/tcb-access.h
index 6004337..bfecb6c 100644
--- a/sysdeps/nptl/tcb-access.h
+++ b/sysdeps/nptl/tcb-access.h
@@ -1,5 +1,5 @@
/* THREAD_* accessors. Generic version based on struct pthread pointers.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/thread_db.h b/sysdeps/nptl/thread_db.h
index 785921b..44eb307 100644
--- a/sysdeps/nptl/thread_db.h
+++ b/sysdeps/nptl/thread_db.h
@@ -1,5 +1,5 @@
/* thread_db.h -- interface to libthread_db.so library for debugging -lpthread
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nptl/timer_routines.h b/sysdeps/nptl/timer_routines.h
index 94ab5ac..2731c8f 100644
--- a/sysdeps/nptl/timer_routines.h
+++ b/sysdeps/nptl/timer_routines.h
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on NPTL.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/__longjmp.S b/sysdeps/or1k/__longjmp.S
index 526987a..504c065 100644
--- a/sysdeps/or1k/__longjmp.S
+++ b/sysdeps/or1k/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/atomic-machine.h b/sysdeps/or1k/atomic-machine.h
index 6154904..42932f4 100644
--- a/sysdeps/or1k/atomic-machine.h
+++ b/sysdeps/or1k/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/bits/fenv.h b/sysdeps/or1k/bits/fenv.h
index 0126780..2760ecc 100644
--- a/sysdeps/or1k/bits/fenv.h
+++ b/sysdeps/or1k/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -79,7 +79,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1l)
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */
typedef unsigned int femode_t;
diff --git a/sysdeps/or1k/bits/link.h b/sysdeps/or1k/bits/link.h
index e35e14e..485fa01 100644
--- a/sysdeps/or1k/bits/link.h
+++ b/sysdeps/or1k/bits/link.h
@@ -1,5 +1,5 @@
/* Declarations for dynamic linker interface. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/bits/setjmp.h b/sysdeps/or1k/bits/setjmp.h
index 2ad5705..511f1be 100644
--- a/sysdeps/or1k/bits/setjmp.h
+++ b/sysdeps/or1k/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/dl-machine.h b/sysdeps/or1k/dl-machine.h
index 779011e..c91f555 100644
--- a/sysdeps/or1k/dl-machine.h
+++ b/sysdeps/or1k/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/dl-start.S b/sysdeps/or1k/dl-start.S
index d0c847d..2dacb4e 100644
--- a/sysdeps/or1k/dl-start.S
+++ b/sysdeps/or1k/dl-start.S
@@ -1,5 +1,5 @@
/* Machine-dependent ELF startup code. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/dl-tls.h b/sysdeps/or1k/dl-tls.h
deleted file mode 100644
index 780ecad..0000000
--- a/sysdeps/or1k/dl-tls.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* TLS definitions for the ELF dynamic linker. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/or1k/dl-trampoline.S b/sysdeps/or1k/dl-trampoline.S
index d66a036..ad87403 100644
--- a/sysdeps/or1k/dl-trampoline.S
+++ b/sysdeps/or1k/dl-trampoline.S
@@ -1,5 +1,5 @@
/* Machine-dependent ELF runtime symbol resolution, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fclrexcpt.c b/sysdeps/or1k/fpu/fclrexcpt.c
index 44224f9..57aa9e5 100644
--- a/sysdeps/or1k/fpu/fclrexcpt.c
+++ b/sysdeps/or1k/fpu/fclrexcpt.c
@@ -1,6 +1,6 @@
/* Clear given exceptions in current floating-point environment.
OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fegetenv.c b/sysdeps/or1k/fpu/fegetenv.c
index 70c75aa..3154346 100644
--- a/sysdeps/or1k/fpu/fegetenv.c
+++ b/sysdeps/or1k/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fegetmode.c b/sysdeps/or1k/fpu/fegetmode.c
index 7fffd2e..904a6b0 100644
--- a/sysdeps/or1k/fpu/fegetmode.c
+++ b/sysdeps/or1k/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fegetround.c b/sysdeps/or1k/fpu/fegetround.c
index 7e993b9..4b5c9df 100644
--- a/sysdeps/or1k/fpu/fegetround.c
+++ b/sysdeps/or1k/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/feholdexcpt.c b/sysdeps/or1k/fpu/feholdexcpt.c
index 0036e41..6445c8e 100644
--- a/sysdeps/or1k/fpu/feholdexcpt.c
+++ b/sysdeps/or1k/fpu/feholdexcpt.c
@@ -1,6 +1,6 @@
/* Store current floating-point environment and clear exceptions.
OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fenv_private.h b/sysdeps/or1k/fpu/fenv_private.h
index 4f401e7..0677ba8 100644
--- a/sysdeps/or1k/fpu/fenv_private.h
+++ b/sysdeps/or1k/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fesetenv.c b/sysdeps/or1k/fpu/fesetenv.c
index 742ca71..60a2e1c 100644
--- a/sysdeps/or1k/fpu/fesetenv.c
+++ b/sysdeps/or1k/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fesetexcept.c b/sysdeps/or1k/fpu/fesetexcept.c
index 43734ea..ab8edb3 100644
--- a/sysdeps/or1k/fpu/fesetexcept.c
+++ b/sysdeps/or1k/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fesetmode.c b/sysdeps/or1k/fpu/fesetmode.c
index d455692..7afacfe 100644
--- a/sysdeps/or1k/fpu/fesetmode.c
+++ b/sysdeps/or1k/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fesetround.c b/sysdeps/or1k/fpu/fesetround.c
index c2ada98..3d91ec4 100644
--- a/sysdeps/or1k/fpu/fesetround.c
+++ b/sysdeps/or1k/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/feupdateenv.c b/sysdeps/or1k/fpu/feupdateenv.c
index 3355bf6..437f463 100644
--- a/sysdeps/or1k/fpu/feupdateenv.c
+++ b/sysdeps/or1k/fpu/feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions.
OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fgetexcptflg.c b/sysdeps/or1k/fpu/fgetexcptflg.c
index a954f6a..168eec4 100644
--- a/sysdeps/or1k/fpu/fgetexcptflg.c
+++ b/sysdeps/or1k/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current state of exceptions. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h b/sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h
index 7810428..920a32a 100644
--- a/sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h
+++ b/sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fraiseexcpt.c b/sysdeps/or1k/fpu/fraiseexcpt.c
index bbacfd5..3a2fa5c 100644
--- a/sysdeps/or1k/fpu/fraiseexcpt.c
+++ b/sysdeps/or1k/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/fsetexcptflg.c b/sysdeps/or1k/fpu/fsetexcptflg.c
index c327e4c..8989b43 100644
--- a/sysdeps/or1k/fpu/fsetexcptflg.c
+++ b/sysdeps/or1k/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/ftestexcept.c b/sysdeps/or1k/fpu/ftestexcept.c
index 59f06af..e199bcd 100644
--- a/sysdeps/or1k/fpu/ftestexcept.c
+++ b/sysdeps/or1k/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/fpu/get-rounding-mode.h b/sysdeps/or1k/fpu/get-rounding-mode.h
index a66d553..eb0bf43 100644
--- a/sysdeps/or1k/fpu/get-rounding-mode.h
+++ b/sysdeps/or1k/fpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/or1k/fpu/libm-test-ulps b/sysdeps/or1k/fpu/libm-test-ulps
deleted file mode 100644
index 59b9f07..0000000
--- a/sysdeps/or1k/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1131 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atan2_downward":
-double: 5
-float: 2
-
-Function: "atan2_towardzero":
-double: 5
-float: 2
-
-Function: "atan2_upward":
-double: 8
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 5
-float: 2
-
-Function: "carg_towardzero":
-double: 5
-float: 2
-
-Function: "carg_upward":
-double: 8
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 2
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 2
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 2
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 7
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 8
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 8
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 5
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 5
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 8
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "clog_upward":
-double: 8
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 8
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 4
-float: 1
-
-Function: "cos_upward":
-double: 4
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 2
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 3
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 3
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-float: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "exp2_downward":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 7
-float: 7
-
-Function: "gamma_towardzero":
-double: 7
-float: 7
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 9
-
-Function: "j0_downward":
-double: 5
-float: 9
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-
-Function: "j1":
-double: 4
-float: 9
-
-Function: "j1_downward":
-double: 5
-float: 8
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-
-Function: "j1_upward":
-double: 9
-float: 9
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 7
-float: 9
-
-Function: "jn_towardzero":
-double: 7
-float: 9
-
-Function: "jn_upward":
-double: 7
-float: 9
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 7
-float: 7
-
-Function: "lgamma_towardzero":
-double: 7
-float: 7
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-float: 1
-
-Function: "log2_downward":
-double: 1
-
-Function: "log2_towardzero":
-double: 1
-
-Function: "log2_upward":
-double: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 4
-float: 1
-
-Function: "sin_towardzero":
-double: 3
-float: 1
-
-Function: "sin_upward":
-double: 7
-float: 1
-
-Function: "sincos":
-double: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 4
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 9
-float: 9
-
-Function: "tgamma_towardzero":
-double: 9
-float: 8
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-
-Function: "y0_downward":
-double: 3
-float: 9
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-
-Function: "y0_upward":
-double: 3
-float: 9
-
-Function: "y1":
-double: 3
-float: 9
-
-Function: "y1_downward":
-double: 6
-float: 9
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-
-Function: "y1_upward":
-double: 7
-float: 9
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 6
-float: 8
-
-Function: "yn_towardzero":
-double: 8
-float: 8
-
-Function: "yn_upward":
-double: 8
-float: 8
-
-# end of automatic generation
diff --git a/sysdeps/or1k/fpu/libm-test-ulps-name b/sysdeps/or1k/fpu/libm-test-ulps-name
deleted file mode 100644
index 7f72f7a..0000000
--- a/sysdeps/or1k/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-OpenRISC hard-float
diff --git a/sysdeps/or1k/fpu_control.h b/sysdeps/or1k/fpu_control.h
index f89364a..852668c 100644
--- a/sysdeps/or1k/fpu_control.h
+++ b/sysdeps/or1k/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/jmpbuf-offsets.h b/sysdeps/or1k/jmpbuf-offsets.h
index 5a1c168..43a69a1 100644
--- a/sysdeps/or1k/jmpbuf-offsets.h
+++ b/sysdeps/or1k/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/jmpbuf-unwind.h b/sysdeps/or1k/jmpbuf-unwind.h
index a790638..81355f4 100644
--- a/sysdeps/or1k/jmpbuf-unwind.h
+++ b/sysdeps/or1k/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Macros to help frame unwinding using jmpbuf. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/ldsodefs.h b/sysdeps/or1k/ldsodefs.h
index 698e786..80cfc0c 100644
--- a/sysdeps/or1k/ldsodefs.h
+++ b/sysdeps/or1k/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/libc-tls.c b/sysdeps/or1k/libc-tls.c
index 45964a0..7b62aaa 100644
--- a/sysdeps/or1k/libc-tls.c
+++ b/sysdeps/or1k/libc-tls.c
@@ -1,6 +1,6 @@
/* Thread-local storage handling in the ELF dynamic linker.
OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/or1k/machine-gmon.h b/sysdeps/or1k/machine-gmon.h
index 27fe8d1..8928e05 100644
--- a/sysdeps/or1k/machine-gmon.h
+++ b/sysdeps/or1k/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/math-tests-snan-payload.h b/sysdeps/or1k/math-tests-snan-payload.h
index 62467a3..857fcc6 100644
--- a/sysdeps/or1k/math-tests-snan-payload.h
+++ b/sysdeps/or1k/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/math-tests-trap.h b/sysdeps/or1k/math-tests-trap.h
index a95b42d..423cb74 100644
--- a/sysdeps/or1k/math-tests-trap.h
+++ b/sysdeps/or1k/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/memusage.h b/sysdeps/or1k/memusage.h
index 49db9a8..8fd77bd 100644
--- a/sysdeps/or1k/memusage.h
+++ b/sysdeps/or1k/memusage.h
@@ -1,5 +1,5 @@
/* Definitions for memory usage profiling. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps
deleted file mode 100644
index 726855f..0000000
--- a/sysdeps/or1k/nofpu/libm-test-ulps
+++ /dev/null
@@ -1,1129 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-
-Function: "atan":
-double: 1
-float: 1
-
-Function: "atan2":
-float: 2
-
-Function: "atan2_downward":
-double: 5
-float: 2
-
-Function: "atan2_towardzero":
-double: 5
-float: 2
-
-Function: "atan2_upward":
-double: 8
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_downward":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: "cabs_upward":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_downward":
-double: 5
-float: 2
-
-Function: "carg_towardzero":
-double: 5
-float: 2
-
-Function: "carg_upward":
-double: 8
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catan_upward":
-double: 2
-float: 1
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 2
-float: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-
-Function: Real part of "ccosh":
-double: 2
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_downward":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-
-Function: Real part of "cexp_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_downward":
-double: 7
-float: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 8
-float: 4
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 8
-float: 4
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 5
-float: 4
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-
-Function: Imaginary part of "clog_downward":
-double: 5
-float: 2
-
-Function: Real part of "clog_towardzero":
-double: 8
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "clog_upward":
-double: 8
-float: 3
-
-Function: Imaginary part of "clog_upward":
-double: 8
-float: 2
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 4
-float: 1
-
-Function: "cos_upward":
-double: 4
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_downward":
-double: 2
-float: 1
-
-Function: "cosh_towardzero":
-double: 2
-float: 1
-
-Function: "cosh_upward":
-double: 2
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_downward":
-double: 2
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-
-Function: Imaginary part of "cpow_upward":
-double: 2
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_downward":
-double: 3
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_downward":
-double: 3
-float: 1
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-
-Function: Real part of "csinh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 3
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 3
-float: 2
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 1
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_downward":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-
-Function: Real part of "ctanh_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-float: 1
-
-Function: "exp10_downward":
-double: 3
-
-Function: "exp10_towardzero":
-double: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "exp2_downward":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "expm1_upward":
-double: 1
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-
-Function: "gamma_downward":
-double: 7
-float: 7
-
-Function: "gamma_towardzero":
-double: 7
-float: 7
-
-Function: "gamma_upward":
-double: 5
-float: 6
-
-Function: "hypot":
-double: 1
-float: 1
-
-Function: "hypot_downward":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "hypot_upward":
-double: 1
-
-Function: "j0":
-double: 2
-float: 9
-
-Function: "j0_downward":
-double: 2
-float: 4
-
-Function: "j0_towardzero":
-double: 4
-float: 5
-
-Function: "j0_upward":
-double: 4
-float: 5
-
-Function: "j1":
-double: 4
-float: 9
-
-Function: "j1_downward":
-double: 4
-float: 5
-
-Function: "j1_towardzero":
-double: 4
-float: 2
-
-Function: "j1_upward":
-double: 3
-float: 5
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_downward":
-double: 7
-float: 9
-
-Function: "jn_towardzero":
-double: 7
-float: 9
-
-Function: "jn_upward":
-double: 7
-float: 9
-
-Function: "lgamma":
-double: 4
-float: 7
-
-Function: "lgamma_downward":
-double: 7
-float: 7
-
-Function: "lgamma_towardzero":
-double: 7
-float: 7
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_downward":
-double: 2
-float: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-
-Function: "log2":
-float: 1
-
-Function: "log2_downward":
-double: 1
-
-Function: "log2_towardzero":
-double: 1
-
-Function: "log2_upward":
-double: 1
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_downward":
-double: 2
-float: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_downward":
-double: 4
-float: 1
-
-Function: "sin_towardzero":
-double: 3
-float: 1
-
-Function: "sin_upward":
-double: 7
-float: 1
-
-Function: "sincos":
-double: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 4
-float: 1
-
-Function: "sincos_upward":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-
-Function: "sinh_towardzero":
-double: 2
-float: 2
-
-Function: "sinh_upward":
-double: 3
-float: 3
-
-Function: "tan":
-float: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tanh_upward":
-double: 3
-float: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_downward":
-double: 9
-float: 9
-
-Function: "tgamma_towardzero":
-double: 9
-float: 8
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-
-Function: "y0":
-double: 3
-float: 9
-
-Function: "y0_downward":
-double: 3
-float: 6
-
-Function: "y0_towardzero":
-double: 3
-float: 3
-
-Function: "y0_upward":
-double: 3
-float: 6
-
-Function: "y1":
-double: 3
-float: 9
-
-Function: "y1_downward":
-double: 6
-float: 7
-
-Function: "y1_towardzero":
-double: 3
-float: 3
-
-Function: "y1_upward":
-double: 7
-float: 5
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_downward":
-double: 6
-float: 8
-
-Function: "yn_towardzero":
-double: 8
-float: 8
-
-Function: "yn_upward":
-double: 8
-float: 8
-
-# end of automatic generation
diff --git a/sysdeps/or1k/nofpu/libm-test-ulps-name b/sysdeps/or1k/nofpu/libm-test-ulps-name
deleted file mode 100644
index 76c66a0..0000000
--- a/sysdeps/or1k/nofpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-OpenRISC soft-float
diff --git a/sysdeps/or1k/nofpu/math-tests-exceptions.h b/sysdeps/or1k/nofpu/math-tests-exceptions.h
index d3c3d4c..50fc73e 100644
--- a/sysdeps/or1k/nofpu/math-tests-exceptions.h
+++ b/sysdeps/or1k/nofpu/math-tests-exceptions.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for exceptions. OpenRISC no-FPU
version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/nofpu/math-tests-rounding.h b/sysdeps/or1k/nofpu/math-tests-rounding.h
index ebbd051..73b2f2c 100644
--- a/sysdeps/or1k/nofpu/math-tests-rounding.h
+++ b/sysdeps/or1k/nofpu/math-tests-rounding.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: rounding mode support. OpenRISC no-FPU
version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/nptl/pthreaddef.h b/sysdeps/or1k/nptl/pthreaddef.h
index d95ff27..1cb53e8 100644
--- a/sysdeps/or1k/nptl/pthreaddef.h
+++ b/sysdeps/or1k/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/or1k/nptl/tls.h b/sysdeps/or1k/nptl/tls.h
index 21c7d3e..f93fcb8 100644
--- a/sysdeps/or1k/nptl/tls.h
+++ b/sysdeps/or1k/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/setjmp.S b/sysdeps/or1k/setjmp.S
index 098cb8e..f84bb8a 100644
--- a/sysdeps/or1k/setjmp.S
+++ b/sysdeps/or1k/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/sfp-machine.h b/sysdeps/or1k/sfp-machine.h
index 70aa421..26fb36a 100644
--- a/sysdeps/or1k/sfp-machine.h
+++ b/sysdeps/or1k/sfp-machine.h
@@ -1,5 +1,5 @@
/* OpenRISC softfloat definitions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/or1k/sotruss-lib.c b/sysdeps/or1k/sotruss-lib.c
index 7336848..72ad208 100644
--- a/sysdeps/or1k/sotruss-lib.c
+++ b/sysdeps/or1k/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for OpenRISC.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/stackinfo.h b/sysdeps/or1k/stackinfo.h
index 6d37e0e..39cf5c2 100644
--- a/sysdeps/or1k/stackinfo.h
+++ b/sysdeps/or1k/stackinfo.h
@@ -1,5 +1,5 @@
/* Stack definitions for OpenRISC.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/start.S b/sysdeps/or1k/start.S
index 827f16a..d580c33 100644
--- a/sysdeps/or1k/start.S
+++ b/sysdeps/or1k/start.S
@@ -1,5 +1,5 @@
/* start, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/sysdep.h b/sysdeps/or1k/sysdep.h
index 5015d36..e60ffed 100644
--- a/sysdeps/or1k/sysdep.h
+++ b/sysdeps/or1k/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macro definitions. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/or1k/thread_pointer.h b/sysdeps/or1k/thread_pointer.h
new file mode 100644
index 0000000..ab5737c
--- /dev/null
+++ b/sysdeps/or1k/thread_pointer.h
@@ -0,0 +1,30 @@
+/* __thread_pointer definition. or1k version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+static inline void *
+__thread_pointer (void)
+{
+ void *__thread_register;
+ __asm__ ("l.or %0, r10, r0" : "=r" (__thread_register));
+ return __thread_register;
+}
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/or1k/tst-audit.h b/sysdeps/or1k/tst-audit.h
index 4cb19ad..8e6203b 100644
--- a/sysdeps/or1k/tst-audit.h
+++ b/sysdeps/or1k/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/posix/alarm.c b/sysdeps/posix/alarm.c
index f61dd15..137c6720 100644
--- a/sysdeps/posix/alarm.c
+++ b/sysdeps/posix/alarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/clock.c b/sysdeps/posix/clock.c
index f03a2ca..149aaa5 100644
--- a/sysdeps/posix/clock.c
+++ b/sysdeps/posix/clock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c
index 8f892f4..b5b7b9e 100644
--- a/sysdeps/posix/clock_getres.c
+++ b/sysdeps/posix/clock_getres.c
@@ -1,5 +1,5 @@
/* clock_getres -- Get the resolution of a POSIX clockid_t.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/ctermid.c b/sysdeps/posix/ctermid.c
index 982acf8..0d986b8 100644
--- a/sysdeps/posix/ctermid.c
+++ b/sysdeps/posix/ctermid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
index d7047c9..e3b0d55 100644
--- a/sysdeps/posix/cuserid.c
+++ b/sysdeps/posix/cuserid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/dl-fileid.h b/sysdeps/posix/dl-fileid.h
index df5ee93..3c3a066 100644
--- a/sysdeps/posix/dl-fileid.h
+++ b/sysdeps/posix/dl-fileid.h
@@ -1,5 +1,5 @@
/* File identity for the dynamic linker. Generic POSIX.1 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/dup.c b/sysdeps/posix/dup.c
index 5c85a2b..849f2a3 100644
--- a/sysdeps/posix/dup.c
+++ b/sysdeps/posix/dup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/dup2.c b/sysdeps/posix/dup2.c
index 864b1f6..6bf6323 100644
--- a/sysdeps/posix/dup2.c
+++ b/sysdeps/posix/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c
index 4c5c222..531b400 100644
--- a/sysdeps/posix/euidaccess.c
+++ b/sysdeps/posix/euidaccess.c
@@ -1,5 +1,5 @@
/* Check if effective user id can access file
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/flock.c b/sysdeps/posix/flock.c
index bacfd3e..becb923 100644
--- a/sysdeps/posix/flock.c
+++ b/sysdeps/posix/flock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c
index 3284e88..edd52fd 100644
--- a/sysdeps/posix/fpathconf.c
+++ b/sysdeps/posix/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/gai_strerror.c b/sysdeps/posix/gai_strerror.c
index de5f871..e2cc632 100644
--- a/sysdeps/posix/gai_strerror.c
+++ b/sysdeps/posix/gai_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
index f7d2bc6..c80103c 100644
--- a/sysdeps/posix/getcwd.c
+++ b/sysdeps/posix/getcwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/getdtsz.c b/sysdeps/posix/getdtsz.c
index fa55beb..d439e11 100644
--- a/sysdeps/posix/getdtsz.c
+++ b/sysdeps/posix/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/gethostname.c b/sysdeps/posix/gethostname.c
index 3c50706..5e9ea51 100644
--- a/sysdeps/posix/gethostname.c
+++ b/sysdeps/posix/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/getpagesize.c b/sysdeps/posix/getpagesize.c
index e65949c..ec507ab 100644
--- a/sysdeps/posix/getpagesize.c
+++ b/sysdeps/posix/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/isatty.c b/sysdeps/posix/isatty.c
index d5e6caa..50c3fd7 100644
--- a/sysdeps/posix/isatty.c
+++ b/sysdeps/posix/isatty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/isfdtype.c b/sysdeps/posix/isfdtype.c
index b943e0d..55bcaf8 100644
--- a/sysdeps/posix/isfdtype.c
+++ b/sysdeps/posix/isfdtype.c
@@ -1,5 +1,5 @@
/* Determine whether descriptor has given property.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/killpg.c b/sysdeps/posix/killpg.c
index 15cc0c2..41d55c0 100644
--- a/sysdeps/posix/killpg.c
+++ b/sysdeps/posix/killpg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index f9e3425..6f75197 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -1,5 +1,5 @@
/* Catastrophic failure reports. Generic POSIX.1 version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,22 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <atomic.h>
-#include <errno.h>
-#include <fcntl.h>
+#include <assert.h>
#include <ldsodefs.h>
-#include <paths.h>
+#include <setvmaname.h>
#include <stdarg.h>
-#include <stdbool.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <sys/mman.h>
#include <sys/uio.h>
-#include <not-cancel.h>
-#include <setvmaname.h>
+#include <unistd.h>
#ifdef FATAL_PREPARE_INCLUDE
#include FATAL_PREPARE_INCLUDE
@@ -46,6 +37,10 @@ writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
}
#endif
+/* At most a substring before each conversion specification and the
+ trailing substring (the plus one). */
+#define IOVEC_MAX (LIBC_MESSAGE_MAX_ARGS * 2 + 1)
+
/* Abort with an error message. */
void
__libc_message_impl (const char *fmt, ...)
@@ -60,7 +55,7 @@ __libc_message_impl (const char *fmt, ...)
if (fd == -1)
fd = STDERR_FILENO;
- struct iovec iov[LIBC_MESSAGE_MAX_ARGS * 2 - 1];
+ struct iovec iov[IOVEC_MAX];
int iovcnt = 0;
ssize_t total = 0;
@@ -98,6 +93,16 @@ __libc_message_impl (const char *fmt, ...)
iov[iovcnt].iov_len = len;
total += len;
iovcnt++;
+
+ if (__glibc_unlikely (iovcnt > IOVEC_MAX))
+ {
+ len = IOVEC_MAX_ERR_MSG_LEN;
+ iov[0].iov_base = (char *) IOVEC_MAX_ERR_MSG;
+ iov[0].iov_len = len;
+ total = len;
+ iovcnt = 1;
+ break;
+ }
}
va_end (ap);
@@ -105,7 +110,8 @@ __libc_message_impl (const char *fmt, ...)
{
WRITEV_FOR_FATAL (fd, iov, iovcnt, total);
- total = (total + 1 + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1);
+ total = ALIGN_UP (total + sizeof (struct abort_msg_s) + 1,
+ GLRO(dl_pagesize));
struct abort_msg_s *buf = __mmap (NULL, total,
PROT_READ | PROT_WRITE,
MAP_ANON | MAP_PRIVATE, -1, 0);
diff --git a/sysdeps/posix/mkfifo.c b/sysdeps/posix/mkfifo.c
index 4b362e3..c3f9681 100644
--- a/sysdeps/posix/mkfifo.c
+++ b/sysdeps/posix/mkfifo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/mkfifoat.c b/sysdeps/posix/mkfifoat.c
index 1739165..856440e 100644
--- a/sysdeps/posix/mkfifoat.c
+++ b/sysdeps/posix/mkfifoat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/nice.c b/sysdeps/posix/nice.c
index da75441..890e933 100644
--- a/sysdeps/posix/nice.c
+++ b/sysdeps/posix/nice.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/open64.c b/sysdeps/posix/open64.c
index ca4951f..d281c49 100644
--- a/sysdeps/posix/open64.c
+++ b/sysdeps/posix/open64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pathconf.c b/sysdeps/posix/pathconf.c
index 2a17082..6586ede 100644
--- a/sysdeps/posix/pathconf.c
+++ b/sysdeps/posix/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pause.c b/sysdeps/posix/pause.c
index f056395..7992313 100644
--- a/sysdeps/posix/pause.c
+++ b/sysdeps/posix/pause.c
@@ -1,5 +1,5 @@
/* pause -- suspend the process until a signal arrives. POSIX.1 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/posix_fallocate.c b/sysdeps/posix/posix_fallocate.c
index dc74980..da03620 100644
--- a/sysdeps/posix/posix_fallocate.c
+++ b/sysdeps/posix/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/posix_fallocate64.c b/sysdeps/posix/posix_fallocate64.c
index 0231b29..d62a716 100644
--- a/sysdeps/posix/posix_fallocate64.c
+++ b/sysdeps/posix/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pread.c b/sysdeps/posix/pread.c
index f145237..66074c1 100644
--- a/sysdeps/posix/pread.c
+++ b/sysdeps/posix/pread.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pread64.c b/sysdeps/posix/pread64.c
index bc3cc4a..c46cbc3 100644
--- a/sysdeps/posix/pread64.c
+++ b/sysdeps/posix/pread64.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/preadv.c b/sysdeps/posix/preadv.c
index 182626d..2c54fe1 100644
--- a/sysdeps/posix/preadv.c
+++ b/sysdeps/posix/preadv.c
@@ -1,5 +1,5 @@
/* Read data into multiple buffers. Generic version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/preadv2.c b/sysdeps/posix/preadv2.c
index c254024..f556171 100644
--- a/sysdeps/posix/preadv2.c
+++ b/sysdeps/posix/preadv2.c
@@ -1,5 +1,5 @@
/* Generic version of preadv2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/preadv64.c b/sysdeps/posix/preadv64.c
index 46d1823..0958ef8 100644
--- a/sysdeps/posix/preadv64.c
+++ b/sysdeps/posix/preadv64.c
@@ -1,5 +1,5 @@
/* Read data into multiple buffers. Generic LFS version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/preadv64v2.c b/sysdeps/posix/preadv64v2.c
index 10a46ed..73f1e03 100644
--- a/sysdeps/posix/preadv64v2.c
+++ b/sysdeps/posix/preadv64v2.c
@@ -1,5 +1,5 @@
/* Generic version of preadv2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/preadv_common.c b/sysdeps/posix/preadv_common.c
index cb220ca..1a432ba 100644
--- a/sysdeps/posix/preadv_common.c
+++ b/sysdeps/posix/preadv_common.c
@@ -1,6 +1,6 @@
/* Read data into multiple buffers. Base implementation for preadv
and preadv64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/profil.c b/sysdeps/posix/profil.c
index 3b3c87e..73c53e4 100644
--- a/sysdeps/posix/profil.c
+++ b/sysdeps/posix/profil.c
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Mostly POSIX.1 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -82,7 +82,7 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
if (__setitimer (ITIMER_PROF, &otimer, NULL) < 0)
return -1;
samples = NULL;
- return __sigaction (SIGPROF, &oact, NULL);
+ return __libc_sigaction (SIGPROF, &oact, NULL);
}
if (samples)
@@ -90,7 +90,7 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
/* Was already turned on. Restore old timer and signal handler
first. */
if (__setitimer (ITIMER_PROF, &otimer, NULL) < 0
- || __sigaction (SIGPROF, &oact, NULL) < 0)
+ || __libc_sigaction (SIGPROF, &oact, NULL) < 0)
return -1;
}
#else
@@ -114,7 +114,7 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
#endif
act.sa_flags |= SA_RESTART;
__sigfillset (&act.sa_mask);
- if (__sigaction (SIGPROF, &act, oact_ptr) < 0)
+ if (__libc_sigaction (SIGPROF, &act, oact_ptr) < 0)
return -1;
timer.it_value.tv_sec = 0;
diff --git a/sysdeps/posix/pwrite.c b/sysdeps/posix/pwrite.c
index 69c7125..c718f6f 100644
--- a/sysdeps/posix/pwrite.c
+++ b/sysdeps/posix/pwrite.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
diff --git a/sysdeps/posix/pwrite64.c b/sysdeps/posix/pwrite64.c
index 5859f23..50333fa 100644
--- a/sysdeps/posix/pwrite64.c
+++ b/sysdeps/posix/pwrite64.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pwritev.c b/sysdeps/posix/pwritev.c
index b58fb95..52e2786 100644
--- a/sysdeps/posix/pwritev.c
+++ b/sysdeps/posix/pwritev.c
@@ -1,5 +1,5 @@
/* Write data into multiple buffers. Generic version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pwritev2.c b/sysdeps/posix/pwritev2.c
index 1e2ac10..8a6f123 100644
--- a/sysdeps/posix/pwritev2.c
+++ b/sysdeps/posix/pwritev2.c
@@ -1,5 +1,5 @@
/* Generic version of pwritev2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pwritev64.c b/sysdeps/posix/pwritev64.c
index 4e41656..7600e28 100644
--- a/sysdeps/posix/pwritev64.c
+++ b/sysdeps/posix/pwritev64.c
@@ -1,5 +1,5 @@
/* Write data into multiple buffers. Generic LFS version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pwritev64v2.c b/sysdeps/posix/pwritev64v2.c
index 988f78b..ee1c7e5 100644
--- a/sysdeps/posix/pwritev64v2.c
+++ b/sysdeps/posix/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Generic version of pwritev2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/pwritev_common.c b/sysdeps/posix/pwritev_common.c
index 633dd4e..898366e 100644
--- a/sysdeps/posix/pwritev_common.c
+++ b/sysdeps/posix/pwritev_common.c
@@ -1,6 +1,6 @@
/* Write data into multiple buffers. Base implementation for pwritev
and pwritev64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/raise.c b/sysdeps/posix/raise.c
index 822d344..da3f11c 100644
--- a/sysdeps/posix/raise.c
+++ b/sysdeps/posix/raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c
index 847c7b2..09224d4 100644
--- a/sysdeps/posix/readv.c
+++ b/sysdeps/posix/readv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/remove.c b/sysdeps/posix/remove.c
index 674b493..07fd972 100644
--- a/sysdeps/posix/remove.c
+++ b/sysdeps/posix/remove.c
@@ -1,5 +1,5 @@
/* ANSI C `remove' function to delete a file or directory. POSIX.1 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/rename.c b/sysdeps/posix/rename.c
index caa2bc2..24d689b 100644
--- a/sysdeps/posix/rename.c
+++ b/sysdeps/posix/rename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigblock.c b/sysdeps/posix/sigblock.c
index 3948f38..f660e94 100644
--- a/sysdeps/posix/sigblock.c
+++ b/sysdeps/posix/sigblock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigignore.c b/sysdeps/posix/sigignore.c
index b3006ae..10a71e3 100644
--- a/sysdeps/posix/sigignore.c
+++ b/sysdeps/posix/sigignore.c
@@ -1,5 +1,5 @@
/* Set the disposition of SIG to SIG_IGN.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigintr.c b/sysdeps/posix/sigintr.c
index 80ff753..14bd0db 100644
--- a/sysdeps/posix/sigintr.c
+++ b/sysdeps/posix/sigintr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/signal.c b/sysdeps/posix/signal.c
index 4fab4cb..59a497e 100644
--- a/sysdeps/posix/signal.c
+++ b/sysdeps/posix/signal.c
@@ -1,5 +1,5 @@
/* BSD-like signal function.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigpause.c b/sysdeps/posix/sigpause.c
index 230a033..7297ef0 100644
--- a/sysdeps/posix/sigpause.c
+++ b/sysdeps/posix/sigpause.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigset.c b/sysdeps/posix/sigset.c
index c507e57..9137557 100644
--- a/sysdeps/posix/sigset.c
+++ b/sysdeps/posix/sigset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigsetmask.c b/sysdeps/posix/sigsetmask.c
index 93ba3f3..caeec92 100644
--- a/sysdeps/posix/sigsetmask.c
+++ b/sysdeps/posix/sigsetmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigsuspend.c b/sysdeps/posix/sigsuspend.c
index 03bf9a5..7cd164a 100644
--- a/sysdeps/posix/sigsuspend.c
+++ b/sysdeps/posix/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sigwait.c b/sysdeps/posix/sigwait.c
index 28d1ddf..9e93fd6 100644
--- a/sysdeps/posix/sigwait.c
+++ b/sysdeps/posix/sigwait.c
@@ -1,5 +1,5 @@
/* Implementation of sigwait function from POSIX.1c.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sleep.c b/sysdeps/posix/sleep.c
index 3df7909..dc3f757 100644
--- a/sysdeps/posix/sleep.c
+++ b/sysdeps/posix/sleep.c
@@ -1,5 +1,5 @@
/* Sleep for a given number of seconds. POSIX.1 version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sprofil.c b/sysdeps/posix/sprofil.c
index d4a208e..0af671d 100644
--- a/sysdeps/posix/sprofil.c
+++ b/sysdeps/posix/sprofil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sysconf-pthread_stack_min.h b/sysdeps/posix/sysconf-pthread_stack_min.h
index aaf622e..d512103 100644
--- a/sysdeps/posix/sysconf-pthread_stack_min.h
+++ b/sysdeps/posix/sysconf-pthread_stack_min.h
@@ -1,5 +1,5 @@
/* __get_pthread_stack_min (). POSIX version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
index 981ce4e..8f9a0ad 100644
--- a/sysdeps/posix/sysconf.c
+++ b/sysdeps/posix/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
index 01e8bc4..2c33569 100644
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -144,7 +144,7 @@ do_system (const char *line)
__posix_spawnattr_setflags (&spawn_attr,
POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
- ret = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr,
+ ret = __posix_spawn (&pid, SHELL_PATH, NULL, &spawn_attr,
(char *const[]){ (char *) SHELL_NAME,
(char *) "-c",
(char *) "--",
@@ -175,10 +175,14 @@ do_system (const char *line)
__libc_cleanup_region_end (0);
#endif
}
+ else if (ret == EAGAIN || ret == ENOMEM)
+ /* POSIX states that failure to create a child process should
+ return -1. */
+ status = -1;
else
- /* POSIX states that failure to execute the shell should return
- as if the shell had terminated using _exit(127). */
- status = W_EXITCODE (127, 0);
+ /* POSIX states that failure to execute the shell should return
+ as if the shell had terminated using _exit(127). */
+ status = W_EXITCODE (127, 0);
/* sigaction can not fail with SIGINT/SIGQUIT used with old
disposition. Same applies for sigprocmask. */
diff --git a/sysdeps/posix/sysv_signal.c b/sysdeps/posix/sysv_signal.c
index 4546f39..428481f 100644
--- a/sysdeps/posix/sysv_signal.c
+++ b/sysdeps/posix/sysv_signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c
index c00fe0c..f0b5ee6 100644
--- a/sysdeps/posix/tempname.c
+++ b/sysdeps/posix/tempname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -117,6 +117,8 @@ random_bits (random_value *r, random_value s)
succeed. */
#if !_LIBC
*r = mix_random_values (v, clock ());
+#else
+ *r = v;
#endif
return false;
}
diff --git a/sysdeps/posix/truncate.c b/sysdeps/posix/truncate.c
index 242b9b0..66eb8da 100644
--- a/sysdeps/posix/truncate.c
+++ b/sysdeps/posix/truncate.c
@@ -1,5 +1,5 @@
/* Truncate a file given by name. Generic POSIX.1 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/ttyname.c b/sysdeps/posix/ttyname.c
index cd247c5..b17b823 100644
--- a/sysdeps/posix/ttyname.c
+++ b/sysdeps/posix/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
index 4e6f07c..7b9a65f 100644
--- a/sysdeps/posix/ttyname_r.c
+++ b/sysdeps/posix/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/ulimit.c b/sysdeps/posix/ulimit.c
index 4ae8354..50dc42a 100644
--- a/sysdeps/posix/ulimit.c
+++ b/sysdeps/posix/ulimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/usleep.c b/sysdeps/posix/usleep.c
index bfc8aca..cd8fef5 100644
--- a/sysdeps/posix/usleep.c
+++ b/sysdeps/posix/usleep.c
@@ -1,5 +1,5 @@
/* Implementation of the BSD usleep function using nanosleep.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/utime.c b/sysdeps/posix/utime.c
index f5274ff..dff3746 100644
--- a/sysdeps/posix/utime.c
+++ b/sysdeps/posix/utime.c
@@ -1,5 +1,5 @@
/* utime -- Change access and modification times of file. Posix version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/utimes.c b/sysdeps/posix/utimes.c
index b696576..d12cb43 100644
--- a/sysdeps/posix/utimes.c
+++ b/sysdeps/posix/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Posix version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/posix/writev.c b/sysdeps/posix/writev.c
index 30f7e72..f20ddae 100644
--- a/sysdeps/posix/writev.c
+++ b/sysdeps/posix/writev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile
index 5e6cb07..5cdb64f 100644
--- a/sysdeps/powerpc/Makefile
+++ b/sysdeps/powerpc/Makefile
@@ -28,6 +28,11 @@ tst-cache-ppc-static-dlopen-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(c
$(objpfx)tst-cache-ppc-static-dlopen.out: $(objpfx)mod-cache-ppc.so
$(objpfx)tst-cache-ppc: $(objpfx)mod-cache-ppc.so
+
+# The test checks if the __tls_get_addr does not clobber caller-saved
+# register, so disable the powerpc specific optimization to force a
+# __tls_get_addr call.
+LDFLAGS-tst-tls23-mod.so = -Wl,--no-tls-get-addr-optimize
endif
ifneq (no,$(multi-arch))
diff --git a/sysdeps/powerpc/atomic-machine.h b/sysdeps/powerpc/atomic-machine.h
index b21f26c..f562457 100644
--- a/sysdeps/powerpc/atomic-machine.h
+++ b/sysdeps/powerpc/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC Common version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/fenv.h b/sysdeps/powerpc/bits/fenv.h
index fee7a56..419b9f1 100644
--- a/sysdeps/powerpc/bits/fenv.h
+++ b/sysdeps/powerpc/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/floatn.h b/sysdeps/powerpc/bits/floatn.h
index 3eb0b55..9422ec5 100644
--- a/sysdeps/powerpc/bits/floatn.h
+++ b/sysdeps/powerpc/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on powerpc.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/fp-fast.h b/sysdeps/powerpc/bits/fp-fast.h
index 50594d0..8d77c2d 100644
--- a/sysdeps/powerpc/bits/fp-fast.h
+++ b/sysdeps/powerpc/bits/fp-fast.h
@@ -1,5 +1,5 @@
/* Define FP_FAST_* macros. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/hwcap.h b/sysdeps/powerpc/bits/hwcap.h
index 1b322c8..3c8e763 100644
--- a/sysdeps/powerpc/bits/hwcap.h
+++ b/sysdeps/powerpc/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP and AT_HWCAP2.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/link.h b/sysdeps/powerpc/bits/link.h
index ec406b5..63c387e 100644
--- a/sysdeps/powerpc/bits/link.h
+++ b/sysdeps/powerpc/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface. PowerPC version
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h
index 4167a2a..ae4c362 100644
--- a/sysdeps/powerpc/bits/setjmp.h
+++ b/sysdeps/powerpc/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/dl-diagnostics-cpu.c b/sysdeps/powerpc/dl-diagnostics-cpu.c
new file mode 100644
index 0000000..6e7a530
--- /dev/null
+++ b/sysdeps/powerpc/dl-diagnostics-cpu.c
@@ -0,0 +1,97 @@
+/* Print CPU diagnostics data in ld.so. PowerPC version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dl-diagnostics.h>
+#include <dl-hwcap-info.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
+
+static void
+print_hwcap_value (const char *label, int hwcap, unsigned long int value)
+{
+ _dl_printf ("powerpc.cpu_features.%s=\"", label);
+ size_t offset = 0;
+ for (int i = 0; i < __dl_hwcap_info_size; ++i)
+ {
+ const char *hwcap_name = __dl_hwcap_names + offset;
+ size_t hwcap_name_len = strlen (hwcap_name);
+ if (hwcap == __dl_hwcap_info[i].hwcap
+ && value & __dl_hwcap_info[i].value)
+ _dl_printf ("%s ", hwcap_name);
+ offset += hwcap_name_len + 1;
+ }
+ _dl_printf ("\"\n");
+}
+
+static void
+print_cache_geometry_value (const char *label, unsigned long int geometry)
+{
+ unsigned long int assocty, line;
+
+ _dl_printf ("powerpc.cpu_features.%s=\"", label);
+
+ line = geometry & 0xffff;
+ assocty = (geometry >> 16) & 0xffff;
+
+ if (line == 0)
+ _dl_printf ("Unknown line size, ");
+ else
+ _dl_printf ("%luB line size, ", line);
+
+ switch (assocty)
+ {
+ case 0:
+ _dl_printf ("Unknown associativity");
+ break;
+ case 1:
+ _dl_printf ("Directly mapped");
+ break;
+ case 0xffff:
+ _dl_printf ("Fully associative");
+ break;
+ default:
+ _dl_printf ("%lu-way set associative", assocty);
+ }
+ _dl_printf ("\"\n");
+}
+
+void
+_dl_diagnostics_cpu (void)
+{
+ print_hwcap_value ("hwcap", AT_HWCAP, GLRO(dl_hwcap));
+ print_hwcap_value ("hwcap2", AT_HWCAP2, GLRO(dl_hwcap2));
+ print_hwcap_value ("hwcap3", AT_HWCAP3, GLRO(dl_hwcap3));
+ print_hwcap_value ("hwcap4", AT_HWCAP4, GLRO(dl_hwcap4));
+
+ for (ElfW(auxv_t) *av = GLRO(dl_auxv); av->a_type != AT_NULL; ++av)
+ switch (av->a_type)
+ {
+ case AT_L1I_CACHEGEOMETRY:
+ print_cache_geometry_value ("l1i_cachegeometry", av->a_un.a_val);
+ break;
+ case AT_L1D_CACHEGEOMETRY:
+ print_cache_geometry_value ("l1d_cachegeometry", av->a_un.a_val);
+ break;
+ case AT_L2_CACHEGEOMETRY:
+ print_cache_geometry_value ("l2_cachegeometry", av->a_un.a_val);
+ break;
+ case AT_L3_CACHEGEOMETRY:
+ print_cache_geometry_value ("l3_cachegeometry", av->a_un.a_val);
+ break;
+ }
+}
diff --git a/sysdeps/powerpc/dl-lookupcfg.h b/sysdeps/powerpc/dl-lookupcfg.h
index 641e0ea..2a0685a 100644
--- a/sysdeps/powerpc/dl-lookupcfg.h
+++ b/sysdeps/powerpc/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. PowerPC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
index 8cf00aa..0db1e65 100644
--- a/sysdeps/powerpc/dl-procinfo.c
+++ b/sysdeps/powerpc/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for processor capability information. PowerPC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -62,37 +62,6 @@ PROCINFO_CLASS struct cpu_features _dl_powerpc_cpu_features
# endif
#endif
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_powerpc_cap_flags
-#else
-PROCINFO_CLASS const char _dl_powerpc_cap_flags[_DL_HWCAP_COUNT][15]
-#endif
-#ifndef PROCINFO_DECL
-= {
- "ppcle", "true_le", "", "",
- "", "", "archpmu", "vsx",
- "arch_2_06", "power6x", "dfp", "pa6t",
- "arch_2_05", "ic_snoop", "smt", "booke",
- "cellbe", "power5+", "power5", "power4",
- "notb", "efpdouble", "efpsingle", "spe",
- "ucache", "4xxmac", "mmu", "fpu",
- "altivec", "ppc601", "ppc64", "ppc32",
- "", "", "", "",
- "", "", "", "",
- "", "", "", "",
- "", "", "", "",
- "", "mma", "arch_3_1", "htm-no-suspend",
- "scv", "darn", "ieee128", "arch_3_00",
- "htm-nosc", "vcrypto", "tar", "isel",
- "ebb", "dscr", "htm", "arch_2_07",
- }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
#if !IS_IN (ldconfig)
# if !defined PROCINFO_DECL && defined SHARED
._dl_cache_line_size
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
deleted file mode 100644
index 1e746a7..0000000
--- a/sysdeps/powerpc/dl-procinfo.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/* Processor capability information handling macros. PowerPC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-#include <sysdep.h> /* This defines the PPC_FEATURE[2]_* macros. */
-
-/* Feature masks are all 32-bits in size. */
-#define _DL_HWCAP_SIZE 32
-
-/* AT_HWCAP2 feature strings follow the AT_HWCAP feature strings. */
-#define _DL_HWCAP2_OFFSET _DL_HWCAP_SIZE
-
-/* AT_HWCAP3 feature strings follow the AT_HWCAP2 feature strings. */
-#define _DL_HWCAP3_OFFSET (_DL_HWCAP2_OFFSET + _DL_HWCAP_SIZE)
-
-/* AT_HWCAP4 feature strings follow the AT_HWCAP3 feature strings. */
-#define _DL_HWCAP4_OFFSET (_DL_HWCAP3_OFFSET + _DL_HWCAP_SIZE)
-
-
-#define _DL_FIRST_PLATFORM 32
-
-/* Platform bits (relative to _DL_FIRST_PLATFORM). */
-#define PPC_PLATFORM_POWER4 0
-#define PPC_PLATFORM_PPC970 1
-#define PPC_PLATFORM_POWER5 2
-#define PPC_PLATFORM_POWER5_PLUS 3
-#define PPC_PLATFORM_POWER6 4
-#define PPC_PLATFORM_CELL_BE 5
-#define PPC_PLATFORM_POWER6X 6
-#define PPC_PLATFORM_POWER7 7
-#define PPC_PLATFORM_PPCA2 8
-#define PPC_PLATFORM_PPC405 9
-#define PPC_PLATFORM_PPC440 10
-#define PPC_PLATFORM_PPC464 11
-#define PPC_PLATFORM_PPC476 12
-#define PPC_PLATFORM_POWER8 13
-#define PPC_PLATFORM_POWER9 14
-#define PPC_PLATFORM_POWER10 15
-#define PPC_PLATFORM_POWER11 16
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return GLRO(dl_powerpc_cap_flags)[idx];
-}
-
-static inline int
-__attribute__ ((unused, always_inline))
-_dl_string_platform (const char *str)
-{
- if (str == NULL)
- return -1;
-
- if (strncmp (str, "power", 5) == 0)
- {
- int ret;
- str += 5;
- switch (*str)
- {
- case '1':
- if (str[1] == '0')
- {
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
- str++;
- }
- else if (str[1] == '1')
- {
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11;
- str++;
- }
- else
- return -1;
- break;
- case '4':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
- break;
- case '5':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
- if (str[1] == '+')
- {
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
- ++str;
- }
- break;
- case '6':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
- if (str[1] == 'x')
- {
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
- ++str;
- }
- break;
- case '7':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
- break;
- case '8':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8;
- break;
- case '9':
- ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9;
- break;
- default:
- return -1;
- }
- if (str[1] == '\0')
- return ret;
- }
- else if (strncmp (str, "ppc", 3) == 0)
- {
- if (strcmp (str + 3, "970") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
- else if (strcmp (str + 3, "-cell-be") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
- else if (strcmp (str + 3, "a2") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
- else if (strcmp (str + 3, "405") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
- else if (strcmp (str + 3, "440") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
- else if (strcmp (str + 3, "464") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
- else if (strcmp (str + 3, "476") == 0)
- return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
- }
-
- return -1;
-}
-
-#if IS_IN (rtld)
-static inline void
-cache_geometry (const char * name, unsigned long int geometry)
-{
- unsigned long int assocty, line;
-
- _dl_printf ("%s", name);
-
- line = geometry & 0xffff;
- assocty = (geometry >> 16) & 0xffff;
-
- if (line == 0)
- _dl_printf ("Unknown line size, ");
- else
- _dl_printf ("%luB line size, ", line);
-
- switch (assocty)
- {
- case 0:
- _dl_printf ("Unknown associativity");
- break;
- case 1:
- _dl_printf ("Directly mapped");
- break;
- case 0xffff:
- _dl_printf ("Fully associative");
- break;
- default:
- _dl_printf ("%lu-way set associative", assocty);
- }
-}
-
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- switch(type)
- {
- case AT_HWCAP:
- _dl_printf ("AT_HWCAP: ");
-
- for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (i));
- break;
- case AT_HWCAP2:
- {
-
- _dl_printf ("AT_HWCAP2: ");
-
- /* We have to go through them all because the kernel added the
- AT_HWCAP2 features starting with the high bits. */
- for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP2_OFFSET + i));
- break;
- }
- case AT_HWCAP3:
- {
- _dl_printf ("AT_HWCAP3: ");
-
- /* We have to go through them all because the kernel added the
- AT_HWCAP3 features starting with the high bits. */
- for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP3_OFFSET + i));
- break;
- }
- case AT_HWCAP4:
- {
- _dl_printf ("AT_HWCAP4: ");
-
- /* We have to go through them all because the kernel added the
- AT_HWCAP4 features starting with the high bits. */
- for (int i = 0; i <= _DL_HWCAP_SIZE; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP4_OFFSET + i));
- break;
- }
- case AT_L1I_CACHEGEOMETRY:
- {
- cache_geometry ("AT_L1I_CACHEGEOMETRY: ", word);
- break;
- }
- case AT_L1D_CACHEGEOMETRY:
- {
- cache_geometry ("AT_L1D_CACHEGEOMETRY: ", word);
- break;
- }
- case AT_L2_CACHEGEOMETRY:
- {
- cache_geometry ("AT_L2_CACHEGEOMETRY: ", word);
- break;
- }
- case AT_L3_CACHEGEOMETRY:
- {
- cache_geometry ("AT_L3_CACHEGEOMETRY: ", word);
- break;
- }
- default:
- /* Fallback to generic output mechanism. */
- return -1;
- }
- _dl_printf ("\n");
- return 0;
-}
-#endif
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/powerpc/dl-tls.c b/sysdeps/powerpc/dl-tls.c
index 06a19c5..3666bf1 100644
--- a/sysdeps/powerpc/dl-tls.c
+++ b/sysdeps/powerpc/dl-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/dl-tls.h b/sysdeps/powerpc/dl-tls.h
index 8ed2a41..52d67a1 100644
--- a/sysdeps/powerpc/dl-tls.h
+++ b/sysdeps/powerpc/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,7 +45,6 @@ typedef struct
#ifdef SHARED
extern void *__tls_get_addr (tls_index *ti);
-# define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
# define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
#endif
diff --git a/sysdeps/powerpc/dl-tunables.list b/sysdeps/powerpc/dl-tunables.list
index 8259b6e..7fa0a07 100644
--- a/sysdeps/powerpc/dl-tunables.list
+++ b/sysdeps/powerpc/dl-tunables.list
@@ -1,5 +1,5 @@
# powerpc specific tunables.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/elf-initfini.h b/sysdeps/powerpc/elf-initfini.h
index 5e9b6d2..c8b3e33 100644
--- a/sysdeps/powerpc/elf-initfini.h
+++ b/sysdeps/powerpc/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader, for powerpc.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c
index 0f6f1d5..9bac5c2 100644
--- a/sysdeps/powerpc/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/fpu/e_sqrt.c
@@ -1,5 +1,5 @@
/* Double-precision floating point square root.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c
index 6e1d09c..7c33904 100644
--- a/sysdeps/powerpc/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/fpu/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Single-precision floating point square root.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fclrexcpt.c b/sysdeps/powerpc/fpu/fclrexcpt.c
index a416e9d..d9bab95 100644
--- a/sysdeps/powerpc/fpu/fclrexcpt.c
+++ b/sysdeps/powerpc/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fe_mask.c b/sysdeps/powerpc/fpu/fe_mask.c
index d32f040..d8fb8f7 100644
--- a/sysdeps/powerpc/fpu/fe_mask.c
+++ b/sysdeps/powerpc/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fe_nomask.c b/sysdeps/powerpc/fpu/fe_nomask.c
index 6e7a14d..e95f03f 100644
--- a/sysdeps/powerpc/fpu/fe_nomask.c
+++ b/sysdeps/powerpc/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fedisblxcpt.c b/sysdeps/powerpc/fpu/fedisblxcpt.c
index 6f6c913..9364d11 100644
--- a/sysdeps/powerpc/fpu/fedisblxcpt.c
+++ b/sysdeps/powerpc/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/feenablxcpt.c b/sysdeps/powerpc/fpu/feenablxcpt.c
index 4df2a8c..a1afdd5 100644
--- a/sysdeps/powerpc/fpu/feenablxcpt.c
+++ b/sysdeps/powerpc/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fegetenv.c b/sysdeps/powerpc/fpu/fegetenv.c
index 5fa4a38..2734ad6 100644
--- a/sysdeps/powerpc/fpu/fegetenv.c
+++ b/sysdeps/powerpc/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fegetexcept.c b/sysdeps/powerpc/fpu/fegetexcept.c
index b5bfc04..9650a9d 100644
--- a/sysdeps/powerpc/fpu/fegetexcept.c
+++ b/sysdeps/powerpc/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fegetmode.c b/sysdeps/powerpc/fpu/fegetmode.c
index aa66042..4940f10 100644
--- a/sysdeps/powerpc/fpu/fegetmode.c
+++ b/sysdeps/powerpc/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fegetround.c b/sysdeps/powerpc/fpu/fegetround.c
index 640c26e..fb5f3b1 100644
--- a/sysdeps/powerpc/fpu/fegetround.c
+++ b/sysdeps/powerpc/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/feholdexcpt.c b/sysdeps/powerpc/fpu/feholdexcpt.c
index 9b4843b..3ea69d9 100644
--- a/sysdeps/powerpc/fpu/feholdexcpt.c
+++ b/sysdeps/powerpc/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fenv_const.c b/sysdeps/powerpc/fpu/fenv_const.c
index ab1b09e..1d5780d 100644
--- a/sysdeps/powerpc/fpu/fenv_const.c
+++ b/sysdeps/powerpc/fpu/fenv_const.c
@@ -1,5 +1,5 @@
/* Constants for fenv_bits.h.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fenv_libc.h b/sysdeps/powerpc/fpu/fenv_libc.h
index 0a06e44..c6cb1fd 100644
--- a/sysdeps/powerpc/fpu/fenv_libc.h
+++ b/sysdeps/powerpc/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fenv_private.h b/sysdeps/powerpc/fpu/fenv_private.h
index 1beb809..03e0840 100644
--- a/sysdeps/powerpc/fpu/fenv_private.h
+++ b/sysdeps/powerpc/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. PowerPC version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fesetenv.c b/sysdeps/powerpc/fpu/fesetenv.c
index d10da70..78ad0b4 100644
--- a/sysdeps/powerpc/fpu/fesetenv.c
+++ b/sysdeps/powerpc/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fesetexcept.c b/sysdeps/powerpc/fpu/fesetexcept.c
index f20ce69..bb478c2 100644
--- a/sysdeps/powerpc/fpu/fesetexcept.c
+++ b/sysdeps/powerpc/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fesetmode.c b/sysdeps/powerpc/fpu/fesetmode.c
index bea598b..7a65c6b 100644
--- a/sysdeps/powerpc/fpu/fesetmode.c
+++ b/sysdeps/powerpc/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fesetround.c b/sysdeps/powerpc/fpu/fesetround.c
index 74d6143..f548584 100644
--- a/sysdeps/powerpc/fpu/fesetround.c
+++ b/sysdeps/powerpc/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/feupdateenv.c b/sysdeps/powerpc/fpu/feupdateenv.c
index 4813a77..aff2582 100644
--- a/sysdeps/powerpc/fpu/feupdateenv.c
+++ b/sysdeps/powerpc/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fgetexcptflg.c b/sysdeps/powerpc/fpu/fgetexcptflg.c
index c998ae3..6fc84be 100644
--- a/sysdeps/powerpc/fpu/fgetexcptflg.c
+++ b/sysdeps/powerpc/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h b/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
index 5ea7b0d..fddb21d 100644
--- a/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fraiseexcpt.c b/sysdeps/powerpc/fpu/fraiseexcpt.c
index 3da7d70..b927f7c 100644
--- a/sysdeps/powerpc/fpu/fraiseexcpt.c
+++ b/sysdeps/powerpc/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/fsetexcptflg.c b/sysdeps/powerpc/fpu/fsetexcptflg.c
index 060d030..95b204e 100644
--- a/sysdeps/powerpc/fpu/fsetexcptflg.c
+++ b/sysdeps/powerpc/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/ftestexcept.c b/sysdeps/powerpc/fpu/ftestexcept.c
index 1870c03..c295156 100644
--- a/sysdeps/powerpc/fpu/ftestexcept.c
+++ b/sysdeps/powerpc/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/get-rounding-mode.h b/sysdeps/powerpc/fpu/get-rounding-mode.h
index 602bd15..d36e886 100644
--- a/sysdeps/powerpc/fpu/get-rounding-mode.h
+++ b/sysdeps/powerpc/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. powerpc64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
deleted file mode 100644
index 70b0720..0000000
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1925 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "acos_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "acosh":
-double: 2
-float: 2
-float128: 4
-ldouble: 2
-
-Function: "acosh_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 5
-
-Function: "acosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "add_ldouble":
-double: 1
-float: 1
-
-Function: "asin":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "asin_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-float128: 4
-ldouble: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 5
-
-Function: "asinh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 7
-
-Function: "atan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 5
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-float128: 3
-ldouble: 6
-
-Function: "atan2_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "atan_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-float128: 4
-ldouble: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "atanh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 4
-
-Function: "cabs":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 6
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 8
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 7
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 8
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 7
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 13
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-float128: 5
-ldouble: 8
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 6
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 8
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 7
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-float128: 6
-ldouble: 12
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-float128: 4
-ldouble: 8
-
-Function: "carg":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 5
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-float128: 3
-ldouble: 6
-
-Function: "carg_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Real part of "casin":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 4
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 8
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 8
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 6
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 13
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 8
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 4
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 8
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 5
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 13
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 6
-
-Function: Real part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 7
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 7
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 8
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 5
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 6
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 7
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 6
-
-Function: "cbrt":
-double: 4
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-float128: 1
-ldouble: 5
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-float128: 2
-ldouble: 2
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-float128: 1
-ldouble: 2
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 11
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 11
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 11
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 11
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-float128: 2
-ldouble: 5
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 6
-float: 6
-float128: 3
-ldouble: 10
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-float128: 3
-ldouble: 7
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-float128: 4
-ldouble: 9
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-float128: 3
-ldouble: 8
-
-Function: Real part of "clog10_upward":
-double: 8
-float: 5
-float128: 4
-ldouble: 10
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-float128: 3
-ldouble: 7
-
-Function: Real part of "clog_downward":
-double: 7
-float: 5
-float128: 3
-ldouble: 11
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 5
-
-Function: Real part of "clog_towardzero":
-double: 7
-float: 5
-float128: 3
-ldouble: 10
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-float128: 2
-ldouble: 7
-
-Function: Real part of "clog_upward":
-double: 8
-float: 5
-float128: 4
-ldouble: 10
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "cos":
-double: 1
-float: 3
-float128: 2
-ldouble: 4
-
-Function: "cos_downward":
-double: 1
-float: 4
-float128: 3
-ldouble: 5
-
-Function: "cos_towardzero":
-double: 1
-float: 3
-float128: 1
-ldouble: 4
-
-Function: "cos_upward":
-double: 1
-float: 3
-float128: 2
-ldouble: 5
-
-Function: "cosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 6
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 6
-
-Function: "cosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-float128: 1
-ldouble: 2
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-float128: 6
-ldouble: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Imaginary part of "csin":
-float128: 1
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 6
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 6
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 6
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 6
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-float128: 4
-ldouble: 12
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 8
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 6
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 9
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-float128: 4
-ldouble: 6
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 13
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-float128: 5
-ldouble: 7
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-float128: 5
-ldouble: 10
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-float128: 5
-ldouble: 9
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 6
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 13
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 2
-float128: 3
-ldouble: 10
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-float128: 5
-ldouble: 10
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-float128: 5
-ldouble: 10
-
-Function: "div_ldouble":
-float: 1
-
-Function: "div_towardzero_ldouble":
-double: 1
-
-Function: "erf":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "erf_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "erfc":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "erfc_downward":
-double: 4
-float: 4
-float128: 5
-ldouble: 10
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-float128: 4
-ldouble: 11
-
-Function: "erfc_upward":
-double: 4
-float: 4
-float128: 5
-ldouble: 7
-
-Function: "exp":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 9
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 9
-
-Function: "exp10_upward":
-double: 2
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "exp10m1":
-double: 4
-float: 2
-float128: 1
-ldouble: 4
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 9
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 3
-float128: 3
-ldouble: 9
-
-Function: "exp10m1_upward":
-double: 5
-float: 3
-float128: 3
-ldouble: 7
-
-Function: "exp2":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "exp2_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float128: 1
-ldouble: 2
-
-Function: "exp2_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "exp2m1":
-double: 2
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 7
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-float128: 2
-ldouble: 8
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-float128: 2
-ldouble: 9
-
-Function: "exp_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 7
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-float128: 4
-ldouble: 6
-
-Function: "expm1_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 6
-
-Function: "fma":
-ldouble: 1
-
-Function: "fma_downward":
-ldouble: 1
-
-Function: "fma_downward_ldouble":
-double: 1
-float: 1
-
-Function: "fma_ldouble":
-double: 1
-float: 1
-
-Function: "fma_towardzero":
-ldouble: 2
-
-Function: "fma_towardzero_ldouble":
-double: 1
-float: 1
-
-Function: "fma_upward":
-ldouble: 3
-
-Function: "fma_upward_ldouble":
-double: 1
-float: 1
-
-Function: "fmod":
-ldouble: 1
-
-Function: "fmod_downward":
-ldouble: 1
-
-Function: "fmod_towardzero":
-ldouble: 1
-
-Function: "fmod_upward":
-ldouble: 1
-
-Function: "gamma":
-double: 3
-float: 4
-float128: 5
-ldouble: 3
-
-Function: "gamma_downward":
-double: 4
-float: 4
-float128: 8
-ldouble: 15
-
-Function: "gamma_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 16
-
-Function: "gamma_upward":
-double: 4
-float: 5
-float128: 8
-ldouble: 11
-
-Function: "hypot":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "hypot_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "hypot_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "j0":
-double: 3
-float: 9
-float128: 7
-ldouble: 5
-
-Function: "j0_downward":
-double: 6
-float: 9
-float128: 9
-ldouble: 12
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-float128: 9
-ldouble: 16
-
-Function: "j0_upward":
-double: 9
-float: 9
-float128: 7
-ldouble: 14
-
-Function: "j1":
-double: 4
-float: 9
-float128: 4
-ldouble: 6
-
-Function: "j1_downward":
-double: 3
-float: 8
-float128: 4
-ldouble: 7
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-float128: 4
-ldouble: 7
-
-Function: "j1_upward":
-double: 9
-float: 9
-float128: 3
-ldouble: 6
-
-Function: "jn":
-double: 4
-float: 4
-float128: 7
-ldouble: 4
-
-Function: "jn_downward":
-double: 4
-float: 5
-float128: 8
-ldouble: 7
-
-Function: "jn_towardzero":
-double: 4
-float: 5
-float128: 8
-ldouble: 7
-
-Function: "jn_upward":
-double: 5
-float: 4
-float128: 7
-ldouble: 5
-
-Function: "lgamma":
-double: 3
-float: 4
-float128: 5
-ldouble: 3
-
-Function: "lgamma_downward":
-double: 4
-float: 4
-float128: 8
-ldouble: 15
-
-Function: "lgamma_towardzero":
-double: 4
-float: 3
-float128: 5
-ldouble: 16
-
-Function: "lgamma_upward":
-double: 4
-float: 5
-float128: 8
-ldouble: 11
-
-Function: "log":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 2
-float: 3
-float128: 1
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "log10p1":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 3
-float128: 2
-ldouble: 6
-
-Function: "log10p1_towardzero":
-double: 3
-float: 2
-float128: 2
-ldouble: 6
-
-Function: "log10p1_upward":
-double: 2
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "log1p":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "log1p_downward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "log2":
-double: 1
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 2
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-float128: 1
-ldouble: 5
-
-Function: "log2_upward":
-double: 3
-float: 3
-float128: 1
-ldouble: 4
-
-Function: "log2p1":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 5
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 6
-
-Function: "log_downward":
-float: 2
-float128: 1
-ldouble: 1
-
-Function: "log_towardzero":
-float: 2
-float128: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-float128: 1
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "logp1_downward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "mul_downward_ldouble":
-double: 1
-float: 1
-
-Function: "mul_ldouble":
-double: 1
-float: 1
-
-Function: "mul_towardzero_ldouble":
-double: 1
-float: 1
-
-Function: "mul_upward_ldouble":
-double: 1
-float: 1
-
-Function: "nextafter_downward":
-ldouble: 1
-
-Function: "nextafter_upward":
-ldouble: 1
-
-Function: "pow":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "sin":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 5
-
-Function: "sin_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 5
-
-Function: "sincos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 7
-
-Function: "sincos_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 7
-
-Function: "sinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 6
-
-Function: "sinh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 6
-
-Function: "sqrt":
-ldouble: 1
-
-Function: "sqrt_downward":
-ldouble: 1
-
-Function: "sqrt_ldouble":
-double: 1
-
-Function: "sqrt_towardzero":
-ldouble: 1
-
-Function: "sqrt_upward":
-ldouble: 1
-
-Function: "sub_ldouble":
-double: 1
-float: 1
-
-Function: "tan":
-float: 3
-float128: 1
-ldouble: 2
-
-Function: "tan_downward":
-double: 1
-float: 3
-float128: 1
-ldouble: 3
-
-Function: "tan_towardzero":
-double: 1
-float: 3
-float128: 1
-ldouble: 2
-
-Function: "tan_upward":
-double: 1
-float: 3
-float128: 1
-ldouble: 3
-
-Function: "tanh":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "tanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "tanh_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "tgamma":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-float128: 5
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "y0":
-double: 2
-float: 8
-float128: 3
-ldouble: 10
-
-Function: "y0_downward":
-double: 3
-float: 8
-float128: 7
-ldouble: 10
-
-Function: "y0_towardzero":
-double: 3
-float: 8
-float128: 3
-ldouble: 9
-
-Function: "y0_upward":
-double: 2
-float: 8
-float128: 4
-ldouble: 9
-
-Function: "y1":
-double: 3
-float: 9
-float128: 5
-ldouble: 2
-
-Function: "y1_downward":
-double: 6
-float: 8
-float128: 5
-ldouble: 11
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-float128: 3
-ldouble: 9
-
-Function: "y1_upward":
-double: 6
-float: 9
-float128: 5
-ldouble: 9
-
-Function: "yn":
-double: 3
-float: 3
-float128: 5
-ldouble: 2
-
-Function: "yn_downward":
-double: 3
-float: 4
-float128: 5
-ldouble: 10
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-float128: 5
-ldouble: 8
-
-Function: "yn_upward":
-double: 4
-float: 5
-float128: 5
-ldouble: 9
-
-# end of automatic generation
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps-name b/sysdeps/powerpc/fpu/libm-test-ulps-name
deleted file mode 100644
index 8c5f7fa..0000000
--- a/sysdeps/powerpc/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-PowerPC
diff --git a/sysdeps/powerpc/fpu/math-barriers.h b/sysdeps/powerpc/fpu/math-barriers.h
index dbda87d..ffcd989 100644
--- a/sysdeps/powerpc/fpu/math-barriers.h
+++ b/sysdeps/powerpc/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. PowerPC version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/math-tests-trap-force.h b/sysdeps/powerpc/fpu/math-tests-trap-force.h
index e08f56e..49c27e1 100644
--- a/sysdeps/powerpc/fpu/math-tests-trap-force.h
+++ b/sysdeps/powerpc/fpu/math-tests-trap-force.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for setting exception flags
without causing enabled traps. PowerPC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/math-use-builtins-trunc.h b/sysdeps/powerpc/fpu/math-use-builtins-trunc.h
new file mode 100644
index 0000000..3e6a55d
--- /dev/null
+++ b/sysdeps/powerpc/fpu/math-use-builtins-trunc.h
@@ -0,0 +1,9 @@
+#ifdef _ARCH_PWR5X
+# define USE_TRUNCF_BUILTIN 1
+# define USE_TRUNC_BUILTIN 1
+#else
+# define USE_TRUNCF_BUILTIN 0
+# define USE_TRUNC_BUILTIN 0
+#endif
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
diff --git a/sysdeps/powerpc/fpu/math_ldbl.h b/sysdeps/powerpc/fpu/math_ldbl.h
index 97a496f..6185149 100644
--- a/sysdeps/powerpc/fpu/math_ldbl.h
+++ b/sysdeps/powerpc/fpu/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index 9ef35b2..a87ed62 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Private inline math functions for powerpc.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <sysdep.h>
#include <ldsodefs.h>
-#include <dl-procinfo.h>
#include_next <math_private.h>
@@ -59,4 +58,10 @@ __ieee754_sqrtf128 (_Float128 __x)
#define _GL_HAS_BUILTIN_ILOGB 0
#endif
+#ifdef _ARCH_PWR6
+/* ISA 2.03 provides frin/round() and cntlzw/ctznll(). */
+# define ROUNDEVEN_INTRINSICS 0
+# define ROUNDEVENF_INTRINSICS 0
+#endif
+
#endif /* _PPC_MATH_PRIVATE_H_ */
diff --git a/sysdeps/powerpc/fpu/round_to_integer.h b/sysdeps/powerpc/fpu/round_to_integer.h
index 6996519..09ece09 100644
--- a/sysdeps/powerpc/fpu/round_to_integer.h
+++ b/sysdeps/powerpc/fpu/round_to_integer.h
@@ -1,5 +1,5 @@
/* Round to integer generic implementation.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_ceil.c b/sysdeps/powerpc/fpu/s_ceil.c
index d2a45a3..10d48d5 100644
--- a/sysdeps/powerpc/fpu/s_ceil.c
+++ b/sysdeps/powerpc/fpu/s_ceil.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_ceilf.c b/sysdeps/powerpc/fpu/s_ceilf.c
index 607abb2..7c97337 100644
--- a/sysdeps/powerpc/fpu/s_ceilf.c
+++ b/sysdeps/powerpc/fpu/s_ceilf.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_floor.c b/sysdeps/powerpc/fpu/s_floor.c
index 5261957..5e1dfec 100644
--- a/sysdeps/powerpc/fpu/s_floor.c
+++ b/sysdeps/powerpc/fpu/s_floor.c
@@ -1,5 +1,5 @@
/* Largest integral value not greater than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_floorf.c b/sysdeps/powerpc/fpu/s_floorf.c
index 9180099..4c8fa85 100644
--- a/sysdeps/powerpc/fpu/s_floorf.c
+++ b/sysdeps/powerpc/fpu/s_floorf.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_logb.c b/sysdeps/powerpc/fpu/s_logb.c
index 1c8956a..ccb1f87 100644
--- a/sysdeps/powerpc/fpu/s_logb.c
+++ b/sysdeps/powerpc/fpu/s_logb.c
@@ -1,5 +1,5 @@
/* Get exponent of a floating-point value. PowerPC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_logbf.c b/sysdeps/powerpc/fpu/s_logbf.c
index 1096caf..a595ebe 100644
--- a/sysdeps/powerpc/fpu/s_logbf.c
+++ b/sysdeps/powerpc/fpu/s_logbf.c
@@ -1,5 +1,5 @@
/* Get exponent of a floating-point value. PowerPC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_logbl.c b/sysdeps/powerpc/fpu/s_logbl.c
index c0ba8dd..51ee741 100644
--- a/sysdeps/powerpc/fpu/s_logbl.c
+++ b/sysdeps/powerpc/fpu/s_logbl.c
@@ -1,5 +1,5 @@
/* Get exponent of a floating-point value. PowerPC version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_modf.c b/sysdeps/powerpc/fpu/s_modf.c
deleted file mode 100644
index fbfc18b..0000000
--- a/sysdeps/powerpc/fpu/s_modf.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
- generic implementation faster. Also disables for old ISAs that do not
- have ceil/floor instructions. */
-#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
-# include <sysdeps/ieee754/ldbl-opt/s_modf.c>
-#else
-# include <math.h>
-# include <math_ldbl_opt.h>
-# include <libm-alias-double.h>
-
-double
-__modf (double x, double *iptr)
-{
- if (__builtin_isinf (x))
- {
- *iptr = x;
- return copysign (0.0, x);
- }
- else if (__builtin_isnan (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = floor (x);
- return copysign (x - *iptr, x);
- }
- else
- {
- *iptr = ceil (x);
- return copysign (x - *iptr, x);
- }
-}
-# ifndef __modf
-libm_alias_double (__modf, modf)
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __modf, modfl, GLIBC_2_0);
-# endif
-# endif
-#endif
diff --git a/sysdeps/powerpc/fpu/s_modff.c b/sysdeps/powerpc/fpu/s_modff.c
deleted file mode 100644
index deb9cf2..0000000
--- a/sysdeps/powerpc/fpu/s_modff.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
- generic implementation faster. Also disables for old ISAs that do not
- have ceil/floor instructions. */
-#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
-# include <sysdeps/ieee754/flt-32/s_modff.c>
-#else
-# include <math.h>
-# include <libm-alias-float.h>
-
-float
-__modff (float x, float *iptr)
-{
- if (__builtin_isinff (x))
- {
- *iptr = x;
- return copysignf (0.0, x);
- }
- else if (__builtin_isnanf (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = floorf (x);
- return copysignf (x - *iptr, x);
- }
- else
- {
- *iptr = ceilf (x);
- return copysignf (x - *iptr, x);
- }
-}
-# ifndef __modff
-libm_alias_float (__modf, modf)
-# endif
-#endif
diff --git a/sysdeps/powerpc/fpu/s_nearbyint.c b/sysdeps/powerpc/fpu/s_nearbyint.c
index e828a01..eb71f8c 100644
--- a/sysdeps/powerpc/fpu/s_nearbyint.c
+++ b/sysdeps/powerpc/fpu/s_nearbyint.c
@@ -1,5 +1,5 @@
/* Largest integral value not greater than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_nearbyintf.c b/sysdeps/powerpc/fpu/s_nearbyintf.c
index db064a9..6f8a489 100644
--- a/sysdeps/powerpc/fpu/s_nearbyintf.c
+++ b/sysdeps/powerpc/fpu/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_rint.c b/sysdeps/powerpc/fpu/s_rint.c
index c0c3571..93016ec 100644
--- a/sysdeps/powerpc/fpu/s_rint.c
+++ b/sysdeps/powerpc/fpu/s_rint.c
@@ -1,5 +1,5 @@
/* Round a 64-bit floating point value to the nearest integer.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_rintf.c b/sysdeps/powerpc/fpu/s_rintf.c
index d58b749..d0cf9a0 100644
--- a/sysdeps/powerpc/fpu/s_rintf.c
+++ b/sysdeps/powerpc/fpu/s_rintf.c
@@ -1,5 +1,5 @@
/* Round a 32-bit floating point value to the nearest integer.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_round.c b/sysdeps/powerpc/fpu/s_round.c
index c647075..2395a63 100644
--- a/sysdeps/powerpc/fpu/s_round.c
+++ b/sysdeps/powerpc/fpu/s_round.c
@@ -1,5 +1,5 @@
/* Largest integral value not greater than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_roundf.c b/sysdeps/powerpc/fpu/s_roundf.c
index 11104e7..aac82dc 100644
--- a/sysdeps/powerpc/fpu/s_roundf.c
+++ b/sysdeps/powerpc/fpu/s_roundf.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_trunc.c b/sysdeps/powerpc/fpu/s_trunc.c
index e42bb97..dc19be0 100644
--- a/sysdeps/powerpc/fpu/s_trunc.c
+++ b/sysdeps/powerpc/fpu/s_trunc.c
@@ -1,5 +1,5 @@
/* Largest integral value not greater than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/s_truncf.c b/sysdeps/powerpc/fpu/s_truncf.c
index 4ad4cec..01c64fe 100644
--- a/sysdeps/powerpc/fpu/s_truncf.c
+++ b/sysdeps/powerpc/fpu/s_truncf.c
@@ -1,5 +1,5 @@
/* Smallest integral value not less than argument. PowerPC version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
index 103688e..8b488b4 100644
--- a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
+++ b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/fpu_control.h b/sysdeps/powerpc/fpu_control.h
index e53ffb4..f73d780 100644
--- a/sysdeps/powerpc/fpu_control.h
+++ b/sysdeps/powerpc/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. PowerPC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/gccframe.h b/sysdeps/powerpc/gccframe.h
index 453a405..e5c4fc4 100644
--- a/sysdeps/powerpc/gccframe.h
+++ b/sysdeps/powerpc/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. powerpc version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/hwcapinfo.c b/sysdeps/powerpc/hwcapinfo.c
index f6fede15..72e65ac 100644
--- a/sysdeps/powerpc/hwcapinfo.c
+++ b/sysdeps/powerpc/hwcapinfo.c
@@ -1,5 +1,5 @@
/* powerpc HWCAP/HWCAP2 and AT_PLATFORM data pre-processing.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,6 @@
#include <unistd.h>
#include <shlib-compat.h>
-#include <dl-procinfo.h>
#include <cpu-features.c>
tcbhead_t __tcb __attribute__ ((visibility ("hidden")));
diff --git a/sysdeps/powerpc/hwcapinfo.h b/sysdeps/powerpc/hwcapinfo.h
index dc2641c..3737731 100644
--- a/sysdeps/powerpc/hwcapinfo.h
+++ b/sysdeps/powerpc/hwcapinfo.h
@@ -1,5 +1,5 @@
/* powerpc HWCAP/HWCAP2 and AT_PLATFORM data pre-processing.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,114 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <string.h>
#include <stdint.h>
#ifndef HWCAPINFO_H
# define HWCAPINFO_H
-extern tcbhead_t __tcb attribute_hidden;
+#define _DL_FIRST_PLATFORM 32
+
+/* Platform bits (relative to _DL_FIRST_PLATFORM). */
+#define PPC_PLATFORM_POWER4 0
+#define PPC_PLATFORM_PPC970 1
+#define PPC_PLATFORM_POWER5 2
+#define PPC_PLATFORM_POWER5_PLUS 3
+#define PPC_PLATFORM_POWER6 4
+#define PPC_PLATFORM_CELL_BE 5
+#define PPC_PLATFORM_POWER6X 6
+#define PPC_PLATFORM_POWER7 7
+#define PPC_PLATFORM_PPCA2 8
+#define PPC_PLATFORM_PPC405 9
+#define PPC_PLATFORM_PPC440 10
+#define PPC_PLATFORM_PPC464 11
+#define PPC_PLATFORM_PPC476 12
+#define PPC_PLATFORM_POWER8 13
+#define PPC_PLATFORM_POWER9 14
+#define PPC_PLATFORM_POWER10 15
+#define PPC_PLATFORM_POWER11 16
+
+static inline int
+__attribute__ ((unused, always_inline))
+_dl_string_platform (const char *str)
+{
+ if (str == NULL)
+ return -1;
+
+ if (strncmp (str, "power", 5) == 0)
+ {
+ int ret;
+ str += 5;
+ switch (*str)
+ {
+ case '1':
+ if (str[1] == '0')
+ {
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
+ str++;
+ }
+ else if (str[1] == '1')
+ {
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11;
+ str++;
+ }
+ else
+ return -1;
+ break;
+ case '4':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
+ break;
+ case '5':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
+ if (str[1] == '+')
+ {
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
+ ++str;
+ }
+ break;
+ case '6':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
+ if (str[1] == 'x')
+ {
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
+ ++str;
+ }
+ break;
+ case '7':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
+ break;
+ case '8':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8;
+ break;
+ case '9':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9;
+ break;
+ default:
+ return -1;
+ }
+ if (str[1] == '\0')
+ return ret;
+ }
+ else if (strncmp (str, "ppc", 3) == 0)
+ {
+ if (strcmp (str + 3, "970") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
+ else if (strcmp (str + 3, "-cell-be") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
+ else if (strcmp (str + 3, "a2") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
+ else if (strcmp (str + 3, "405") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
+ else if (strcmp (str + 3, "440") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
+ else if (strcmp (str + 3, "464") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
+ else if (strcmp (str + 3, "476") == 0)
+ return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
+ }
+
+ return -1;
+}
extern void __tcb_parse_hwcap_and_convert_at_platform (void);
diff --git a/sysdeps/powerpc/jmpbuf-offsets.h b/sysdeps/powerpc/jmpbuf-offsets.h
index 92ebf6f..b4e814d 100644
--- a/sysdeps/powerpc/jmpbuf-offsets.h
+++ b/sysdeps/powerpc/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. PowerPC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/jmpbuf-unwind.h b/sysdeps/powerpc/jmpbuf-unwind.h
index d421dd6..7a4aa46 100644
--- a/sysdeps/powerpc/jmpbuf-unwind.h
+++ b/sysdeps/powerpc/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/ldsodefs.h b/sysdeps/powerpc/ldsodefs.h
index 6cc2b9c..c58901b 100644
--- a/sysdeps/powerpc/ldsodefs.h
+++ b/sysdeps/powerpc/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/libc-tls.c b/sysdeps/powerpc/libc-tls.c
index 561477e..3342f16 100644
--- a/sysdeps/powerpc/libc-tls.c
+++ b/sysdeps/powerpc/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/longjmp.c b/sysdeps/powerpc/longjmp.c
index abd9501..9b6d53c 100644
--- a/sysdeps/powerpc/longjmp.c
+++ b/sysdeps/powerpc/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/machine-gmon.h b/sysdeps/powerpc/machine-gmon.h
index b450be4..e1b2cd3 100644
--- a/sysdeps/powerpc/machine-gmon.h
+++ b/sysdeps/powerpc/machine-gmon.h
@@ -1,5 +1,5 @@
/* PowerPC-specific implementation of profiling support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/math-tests-snan-cast.h b/sysdeps/powerpc/math-tests-snan-cast.h
index 02c08eb..aaa9ea5 100644
--- a/sysdeps/powerpc/math-tests-snan-cast.h
+++ b/sysdeps/powerpc/math-tests-snan-cast.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: casts of sNaN values. PowerPC version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/mod-cache-ppc.c b/sysdeps/powerpc/mod-cache-ppc.c
index 370a634..b2552de 100644
--- a/sysdeps/powerpc/mod-cache-ppc.c
+++ b/sysdeps/powerpc/mod-cache-ppc.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from rtld_global_ro._dl_cache_line_size.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 71ee2b6..61ccf56 100644
--- a/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
@@ -37,11 +37,16 @@ CFLAGS-s_cexpl.c += $(config-cflags-signaling-nans)
CFLAGS-s_csinhl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_clogl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_clog10l.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
+CFLAGS-s_cospil.c += -fno-builtin-fabsl
CFLAGS-s_csinl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_csqrtl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-w_acosl_compat.c += -fno-builtin-fabsl
+CFLAGS-s_acospil.c += -fno-builtin-fabsl
CFLAGS-w_asinl_compat.c += -fno-builtin-fabsl
+CFLAGS-s_asinpil.c += -fno-builtin-fabsl
+CFLAGS-s_atan2pil.c += -fno-builtin-fabsl
CFLAGS-w_atanhl_compat.c += -fno-builtin-fabsl
+CFLAGS-s_atanpil.c += -fno-builtin-fabsl
CFLAGS-w_j0l_compat.c += -fno-builtin-fabsl
CFLAGS-w_j1l_compat.c += -fno-builtin-fabsl
CFLAGS-e_lgammal_r.c += -fno-builtin-fabsl
@@ -56,4 +61,6 @@ CFLAGS-s_fminimum_magl.c += -fno-builtin-fabsl
CFLAGS-s_fminimum_mag_numl.c += -fno-builtin-fabsl
CFLAGS-s_log10p1l.c += -fno-builtin-fabsl
CFLAGS-s_log2p1l.c += -fno-builtin-fabsl
+CFLAGS-s_sinpil.c += -fno-builtin-fabsl
+CFLAGS-s_tanpil.c += -fno-builtin-fabsl
endif
diff --git a/sysdeps/powerpc/nofpu/atomic-feclearexcept.c b/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
index 0d32342..7bed334 100644
--- a/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
+++ b/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
@@ -1,5 +1,5 @@
/* Clear floating-point exceptions for atomic compound assignment.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/atomic-feholdexcept.c b/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
index 3a62f08..8d4388f 100644
--- a/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
+++ b/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
@@ -1,6 +1,6 @@
/* Store current floating-point environment and clear exceptions for
atomic compound assignment.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/atomic-feupdateenv.c b/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
index 022e285..b356bbb 100644
--- a/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
+++ b/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions for
atomic compound assignment.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fclrexcpt.c b/sysdeps/powerpc/nofpu/fclrexcpt.c
index 88a7aed..baea127 100644
--- a/sysdeps/powerpc/nofpu/fclrexcpt.c
+++ b/sysdeps/powerpc/nofpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fedisblxcpt.c b/sysdeps/powerpc/nofpu/fedisblxcpt.c
index 18c0530..0bd8a76 100644
--- a/sysdeps/powerpc/nofpu/fedisblxcpt.c
+++ b/sysdeps/powerpc/nofpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/feenablxcpt.c b/sysdeps/powerpc/nofpu/feenablxcpt.c
index 38e2d11..a61932a 100644
--- a/sysdeps/powerpc/nofpu/feenablxcpt.c
+++ b/sysdeps/powerpc/nofpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fegetenv.c b/sysdeps/powerpc/nofpu/fegetenv.c
index e07c4cc..48914dd 100644
--- a/sysdeps/powerpc/nofpu/fegetenv.c
+++ b/sysdeps/powerpc/nofpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fegetexcept.c b/sysdeps/powerpc/nofpu/fegetexcept.c
index 925ae89..a94cb01 100644
--- a/sysdeps/powerpc/nofpu/fegetexcept.c
+++ b/sysdeps/powerpc/nofpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fegetmode.c b/sysdeps/powerpc/nofpu/fegetmode.c
index 3030033..176c600 100644
--- a/sysdeps/powerpc/nofpu/fegetmode.c
+++ b/sysdeps/powerpc/nofpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. PowerPC soft-float version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fegetround.c b/sysdeps/powerpc/nofpu/fegetround.c
index d84fbc3..efa0845 100644
--- a/sysdeps/powerpc/nofpu/fegetround.c
+++ b/sysdeps/powerpc/nofpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding mode (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/feholdexcpt.c b/sysdeps/powerpc/nofpu/feholdexcpt.c
index 7afe553..551201e 100644
--- a/sysdeps/powerpc/nofpu/feholdexcpt.c
+++ b/sysdeps/powerpc/nofpu/feholdexcpt.c
@@ -1,6 +1,6 @@
/* Store current floating-point environment and clear exceptions
(soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fenv_const.c b/sysdeps/powerpc/nofpu/fenv_const.c
index 293acf1..45ebfd5 100644
--- a/sysdeps/powerpc/nofpu/fenv_const.c
+++ b/sysdeps/powerpc/nofpu/fenv_const.c
@@ -1,5 +1,5 @@
/* Constants for fenv_bits.h (soft float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fesetenv.c b/sysdeps/powerpc/nofpu/fesetenv.c
index 39442e3..2bc0a78 100644
--- a/sysdeps/powerpc/nofpu/fesetenv.c
+++ b/sysdeps/powerpc/nofpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Set floating point environment (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fesetexcept.c b/sysdeps/powerpc/nofpu/fesetexcept.c
index e8b011d..06fa856 100644
--- a/sysdeps/powerpc/nofpu/fesetexcept.c
+++ b/sysdeps/powerpc/nofpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. PowerPC soft-float version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fesetmode.c b/sysdeps/powerpc/nofpu/fesetmode.c
index c2fe524..3dd678d 100644
--- a/sysdeps/powerpc/nofpu/fesetmode.c
+++ b/sysdeps/powerpc/nofpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. PowerPC soft-float version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fesetround.c b/sysdeps/powerpc/nofpu/fesetround.c
index 6ea4dd0..2d025af5 100644
--- a/sysdeps/powerpc/nofpu/fesetround.c
+++ b/sysdeps/powerpc/nofpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set rounding mode (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/feupdateenv.c b/sysdeps/powerpc/nofpu/feupdateenv.c
index c92b2b2..5384b64 100644
--- a/sysdeps/powerpc/nofpu/feupdateenv.c
+++ b/sysdeps/powerpc/nofpu/feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions
(soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fgetexcptflg.c b/sysdeps/powerpc/nofpu/fgetexcptflg.c
index 92ef910..bee6ca1 100644
--- a/sysdeps/powerpc/nofpu/fgetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/flt-rounds.c b/sysdeps/powerpc/nofpu/flt-rounds.c
index c84bde0..57e4817 100644
--- a/sysdeps/powerpc/nofpu/flt-rounds.c
+++ b/sysdeps/powerpc/nofpu/flt-rounds.c
@@ -1,5 +1,5 @@
/* Return current rounding mode as correct value for FLT_ROUNDS.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fraiseexcpt.c b/sysdeps/powerpc/nofpu/fraiseexcpt.c
index 3c3a295..ba8190a 100644
--- a/sysdeps/powerpc/nofpu/fraiseexcpt.c
+++ b/sysdeps/powerpc/nofpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/fsetexcptflg.c b/sysdeps/powerpc/nofpu/fsetexcptflg.c
index 99a03b7..33779ae 100644
--- a/sysdeps/powerpc/nofpu/fsetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/ftestexcept.c b/sysdeps/powerpc/nofpu/ftestexcept.c
index 2c59d46..b042c0f 100644
--- a/sysdeps/powerpc/nofpu/ftestexcept.c
+++ b/sysdeps/powerpc/nofpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/get-rounding-mode.h b/sysdeps/powerpc/nofpu/get-rounding-mode.h
index b742012..a11f13d 100644
--- a/sysdeps/powerpc/nofpu/get-rounding-mode.h
+++ b/sysdeps/powerpc/nofpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. PowerPC
soft-float version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
deleted file mode 100644
index dc9b499..0000000
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ /dev/null
@@ -1,1641 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "add_ldouble":
-double: 1
-float: 1
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 7
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 6
-
-Function: "atan2_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 7
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 4
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-ldouble: 13
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 7
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-ldouble: 12
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 5
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 6
-
-Function: "carg_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 5
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-ldouble: 13
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 8
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 5
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-ldouble: 13
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 6
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 7
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 7
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 6
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-ldouble: 8
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 6
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 7
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 6
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 5
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 2
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 6
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 4
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 10
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 4
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 11
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 11
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 11
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 11
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 8
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 7
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 8
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 8
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 8
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 7
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 7
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 4
-
-Function: "cos_downward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 4
-
-Function: "cos_upward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 6
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 6
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 4
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 6
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 6
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 6
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 6
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 1
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 5
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 12
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 8
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 9
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 13
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 7
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-ldouble: 10
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 9
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 6
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 13
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-ldouble: 10
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 10
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 10
-
-Function: "div_ldouble":
-float: 1
-
-Function: "div_towardzero_ldouble":
-double: 1
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 3
-
-Function: "erfc_downward":
-double: 5
-float: 6
-ldouble: 10
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-ldouble: 11
-
-Function: "erfc_upward":
-double: 5
-float: 6
-ldouble: 7
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-ldouble: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 9
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 9
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 4
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-ldouble: 9
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-ldouble: 9
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-ldouble: 4
-
-Function: "exp2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1_downward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 5
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 6
-
-Function: "fma":
-ldouble: 1
-
-Function: "fma_downward":
-ldouble: 1
-
-Function: "fma_downward_ldouble":
-double: 1
-float: 1
-
-Function: "fma_ldouble":
-double: 1
-float: 1
-
-Function: "fma_towardzero":
-ldouble: 2
-
-Function: "fma_towardzero_ldouble":
-double: 1
-float: 1
-
-Function: "fma_upward":
-ldouble: 3
-
-Function: "fma_upward_ldouble":
-double: 1
-float: 1
-
-Function: "fmod":
-ldouble: 1
-
-Function: "fmod_downward":
-ldouble: 1
-
-Function: "fmod_towardzero":
-ldouble: 1
-
-Function: "fmod_upward":
-ldouble: 1
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 3
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 15
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 16
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 11
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 2
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 2
-
-Function: "hypot_upward":
-double: 1
-ldouble: 3
-
-Function: "j0":
-double: 2
-float: 9
-ldouble: 4
-
-Function: "j0_downward":
-double: 5
-float: 9
-ldouble: 12
-
-Function: "j0_towardzero":
-double: 6
-float: 9
-ldouble: 14
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 13
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 10
-
-Function: "j1_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 6
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 6
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-ldouble: 6
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-ldouble: 6
-
-Function: "jn_upward":
-double: 5
-float: 5
-ldouble: 5
-
-Function: "ldexp_downward":
-ldouble: 1
-
-Function: "ldexp_upward":
-ldouble: 1
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 3
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-ldouble: 15
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-ldouble: 16
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-ldouble: 11
-
-Function: "log":
-float: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-ldouble: 4
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "log1p_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: "log2_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "log2p1":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 6
-
-Function: "log_downward":
-float: 2
-ldouble: 1
-
-Function: "log_towardzero":
-float: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "logp1_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "mul_downward_ldouble":
-double: 1
-float: 1
-
-Function: "mul_ldouble":
-double: 1
-float: 1
-
-Function: "mul_towardzero_ldouble":
-double: 1
-float: 1
-
-Function: "mul_upward_ldouble":
-double: 1
-float: 1
-
-Function: "nextafter_downward":
-ldouble: 1
-
-Function: "nextafter_upward":
-ldouble: 1
-
-Function: "pow":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "scalb_downward":
-ldouble: 1
-
-Function: "scalb_upward":
-ldouble: 1
-
-Function: "scalbln_downward":
-ldouble: 1
-
-Function: "scalbln_upward":
-ldouble: 1
-
-Function: "scalbn_downward":
-ldouble: 1
-
-Function: "scalbn_upward":
-ldouble: 1
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sin_downward":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 5
-
-Function: "sin_upward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 7
-
-Function: "sincos_upward":
-double: 1
-float: 2
-ldouble: 7
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 6
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: "sqrt":
-ldouble: 1
-
-Function: "sqrt_downward":
-ldouble: 1
-
-Function: "sqrt_ldouble":
-double: 1
-
-Function: "sqrt_towardzero":
-ldouble: 1
-
-Function: "sqrt_upward":
-ldouble: 1
-
-Function: "sub_ldouble":
-double: 1
-float: 1
-
-Function: "tan":
-float: 1
-ldouble: 2
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 5
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 10
-
-Function: "y0_downward":
-double: 3
-float: 9
-ldouble: 10
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-ldouble: 8
-
-Function: "y0_upward":
-double: 3
-float: 9
-ldouble: 8
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_downward":
-double: 6
-float: 9
-ldouble: 7
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 7
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 2
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 10
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 8
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps-name b/sysdeps/powerpc/nofpu/libm-test-ulps-name
deleted file mode 100644
index 3ed2c6e..0000000
--- a/sysdeps/powerpc/nofpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-PowerPC soft-float
diff --git a/sysdeps/powerpc/nofpu/sim-full.c b/sysdeps/powerpc/nofpu/sim-full.c
index 1e4d063..cdde415 100644
--- a/sysdeps/powerpc/nofpu/sim-full.c
+++ b/sysdeps/powerpc/nofpu/sim-full.c
@@ -1,5 +1,5 @@
/* Software floating-point exception handling emulation.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/soft-supp.h b/sysdeps/powerpc/nofpu/soft-supp.h
index 18aa418..ec271ee 100644
--- a/sysdeps/powerpc/nofpu/soft-supp.h
+++ b/sysdeps/powerpc/nofpu/soft-supp.h
@@ -1,5 +1,5 @@
/* Internal support stuff for complete soft float.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/sqrtdf2.c b/sysdeps/powerpc/nofpu/sqrtdf2.c
index 38ebba9..ef909a3 100644
--- a/sysdeps/powerpc/nofpu/sqrtdf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrt(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nofpu/sqrtsf2.c b/sysdeps/powerpc/nofpu/sqrtsf2.c
index fcb549d..009c81e 100644
--- a/sysdeps/powerpc/nofpu/sqrtsf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrt(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/novmx-longjmp.c b/sysdeps/powerpc/novmx-longjmp.c
index b157fec..cfecab5 100644
--- a/sysdeps/powerpc/novmx-longjmp.c
+++ b/sysdeps/powerpc/novmx-longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/novmx-sigjmp.c b/sysdeps/powerpc/novmx-sigjmp.c
index 43b243e..79f8193 100644
--- a/sysdeps/powerpc/novmx-sigjmp.c
+++ b/sysdeps/powerpc/novmx-sigjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/novmxsetjmp.h b/sysdeps/powerpc/novmxsetjmp.h
index 8d264e0..f270879 100644
--- a/sysdeps/powerpc/novmxsetjmp.h
+++ b/sysdeps/powerpc/novmxsetjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/Makefile b/sysdeps/powerpc/nptl/Makefile
index 5127464..3405114 100644
--- a/sysdeps/powerpc/nptl/Makefile
+++ b/sysdeps/powerpc/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/bits/struct_mutex.h b/sysdeps/powerpc/nptl/bits/struct_mutex.h
index 4726257..b61f49e 100644
--- a/sysdeps/powerpc/nptl/bits/struct_mutex.h
+++ b/sysdeps/powerpc/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* PowerPC internal mutex struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/bits/struct_rwlock.h b/sysdeps/powerpc/nptl/bits/struct_rwlock.h
index a4aa318..f4ffb96 100644
--- a/sysdeps/powerpc/nptl/bits/struct_rwlock.h
+++ b/sysdeps/powerpc/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* PowerPC internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/powerpc/nptl/elide.h b/sysdeps/powerpc/nptl/elide.h
index f98604a..3b42fd0 100644
--- a/sysdeps/powerpc/nptl/elide.h
+++ b/sysdeps/powerpc/nptl/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Generic lock elision support for powerpc.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/pthread_spin_lock.c b/sysdeps/powerpc/nptl/pthread_spin_lock.c
index e6fed0a..b4be60f 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_lock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/pthread_spin_trylock.c b/sysdeps/powerpc/nptl/pthread_spin_trylock.c
index ff40fb7..457e613 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_trylock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_trylock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/pthread_spin_unlock.c b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
index d5e5fbc..c0715f8 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_unlock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
@@ -1,5 +1,5 @@
/* pthread_spin_unlock -- unlock a spin lock. PowerPC version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/pthreaddef.h b/sysdeps/powerpc/nptl/pthreaddef.h
index 397210d..d72b996 100644
--- a/sysdeps/powerpc/nptl/pthreaddef.h
+++ b/sysdeps/powerpc/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h
index 7600e58..683d5b3 100644
--- a/sysdeps/powerpc/nptl/tls.h
+++ b/sysdeps/powerpc/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/PowerPC version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -101,6 +101,8 @@ typedef struct
dtv_t *dtv;
} tcbhead_t;
+extern tcbhead_t __tcb attribute_hidden;
+
# include <hwcapinfo.h>
/* This is the size of the initial TCB. */
diff --git a/sysdeps/powerpc/power4/wordcopy.c b/sysdeps/powerpc/power4/wordcopy.c
index d92a0e7..6c6374d 100644
--- a/sysdeps/powerpc/power4/wordcopy.c
+++ b/sysdeps/powerpc/power4/wordcopy.c
@@ -1,5 +1,5 @@
/* _memcopy.c -- subroutines for memory copy functions.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/power6/wordcopy.c b/sysdeps/powerpc/power6/wordcopy.c
index 035680c..9624ba1 100644
--- a/sysdeps/powerpc/power6/wordcopy.c
+++ b/sysdeps/powerpc/power6/wordcopy.c
@@ -1,5 +1,5 @@
/* _memcopy.c -- subroutines for memory copy functions.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/memcmp.S b/sysdeps/powerpc/powerpc32/405/memcmp.S
index b5c1be4..c07d6c0 100644
--- a/sysdeps/powerpc/powerpc32/405/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/memcpy.S b/sysdeps/powerpc/powerpc32/405/memcpy.S
index 03c8506..b16851a 100644
--- a/sysdeps/powerpc/powerpc32/405/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/memset.S b/sysdeps/powerpc/powerpc32/405/memset.S
index 1f8cee2..ea460d0 100644
--- a/sysdeps/powerpc/powerpc32/405/memset.S
+++ b/sysdeps/powerpc/powerpc32/405/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset for PowerPC405,440,464 (32-byte cacheline).
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/strcmp.S b/sysdeps/powerpc/powerpc32/405/strcmp.S
index 9f9f311..0aaf867 100644
--- a/sysdeps/powerpc/powerpc32/405/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/strcpy.S b/sysdeps/powerpc/powerpc32/405/strcpy.S
index 913b8d0..fed6e40 100644
--- a/sysdeps/powerpc/powerpc32/405/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/strlen.S b/sysdeps/powerpc/powerpc32/405/strlen.S
index 095fdda..a46140b 100644
--- a/sysdeps/powerpc/powerpc32/405/strlen.S
+++ b/sysdeps/powerpc/powerpc32/405/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/405/strncmp.S b/sysdeps/powerpc/powerpc32/405/strncmp.S
index bfe6207..91685fc 100644
--- a/sysdeps/powerpc/powerpc32/405/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC476.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/476/memset.S b/sysdeps/powerpc/powerpc32/476/memset.S
index 7dc3dbf..fa7e009 100644
--- a/sysdeps/powerpc/powerpc32/476/memset.S
+++ b/sysdeps/powerpc/powerpc32/476/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset for PowerPC476 (128-byte cacheline).
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S
index 7da9dc0..1ad83b5 100644
--- a/sysdeps/powerpc/powerpc32/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/__longjmp.S b/sysdeps/powerpc/powerpc32/__longjmp.S
index 34b415b..81b50d4 100644
--- a/sysdeps/powerpc/powerpc32/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/a2/memcpy.S b/sysdeps/powerpc/powerpc32/a2/memcpy.S
index 63ac1e6..1430c97 100644
--- a/sysdeps/powerpc/powerpc32/a2/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/a2/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/add_n.S b/sysdeps/powerpc/powerpc32/add_n.S
index ab6afe4..3882730 100644
--- a/sysdeps/powerpc/powerpc32/add_n.S
+++ b/sysdeps/powerpc/powerpc32/add_n.S
@@ -1,5 +1,5 @@
/* Add two limb vectors of equal, non-zero length for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/addmul_1.S b/sysdeps/powerpc/powerpc32/addmul_1.S
index ed1f494..ee16293 100644
--- a/sysdeps/powerpc/powerpc32/addmul_1.S
+++ b/sysdeps/powerpc/powerpc32/addmul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a single limb, for PowerPC.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/atomic-machine.h b/sysdeps/powerpc/powerpc32/atomic-machine.h
index 8f05367..4534f30 100644
--- a/sysdeps/powerpc/powerpc32/atomic-machine.h
+++ b/sysdeps/powerpc/powerpc32/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC32 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
index beb6cbf..08f57e0 100644
--- a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. PowerPC32/64 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/bsd-setjmp.S b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
index bf93d81..a9a401d 100644
--- a/sysdeps/powerpc/powerpc32/bsd-setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. PowerPC32/64 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/cell/memcpy.S b/sysdeps/powerpc/powerpc32/cell/memcpy.S
index 8370b6a..b2b32d3 100644
--- a/sysdeps/powerpc/powerpc32/cell/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/cell/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/crti.S b/sysdeps/powerpc/powerpc32/crti.S
index 6d0e17a..32a4fd4 100644
--- a/sysdeps/powerpc/powerpc32/crti.S
+++ b/sysdeps/powerpc/powerpc32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/crtn.S b/sysdeps/powerpc/powerpc32/crtn.S
index 2a59a6c..5cfe6c5 100644
--- a/sysdeps/powerpc/powerpc32/crtn.S
+++ b/sysdeps/powerpc/powerpc32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/dl-irel.h b/sysdeps/powerpc/powerpc32/dl-irel.h
index 15cb536..69e2372 100644
--- a/sysdeps/powerpc/powerpc32/dl-irel.h
+++ b/sysdeps/powerpc/powerpc32/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
PowerPC version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index faee657..7a25fb7 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
index fb7ac9e..9f95b23 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.h
+++ b/sysdeps/powerpc/powerpc32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. PowerPC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S
index 2946b8c..73b649b 100644
--- a/sysdeps/powerpc/powerpc32/dl-start.S
+++ b/sysdeps/powerpc/powerpc32/dl-start.S
@@ -1,5 +1,5 @@
/* Machine-dependent ELF startup code. PowerPC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/dl-trampoline.S b/sysdeps/powerpc/powerpc32/dl-trampoline.S
index cbbd9ce..eebb0c6 100644
--- a/sysdeps/powerpc/powerpc32/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. PPC32 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
index d8455e2..f065730 100644
--- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
index 8d63644..67f9394 100644
--- a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h b/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
index be63180..3b34e21 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
+++ b/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
@@ -1,5 +1,5 @@
/* Fix for conversion of integer 0 to floating point. PowerPC version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/fprrest.S b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
index 5c2fdf9..f077cf5 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fprrest.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/fprsave.S b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
index 170cd2c..718fd31 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fprsave.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llrint.c b/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
index f8d45b5..3f2c7f8 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
@@ -1,5 +1,5 @@
/* Round a double value to a long long in the current rounding mode.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
index 4b8f112..71fea4d 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
@@ -1,5 +1,5 @@
/* Round a float value to a long long in the current rounding mode.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llround.c b/sysdeps/powerpc/powerpc32/fpu/s_llround.c
index 143b400..e9b89c8 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llround.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llround.c
@@ -1,5 +1,5 @@
/* Round double value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
index ddf48df..31ab5f3 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lrint.c b/sysdeps/powerpc/powerpc32/fpu/s_lrint.c
index 46681c7..9073afc 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_lrint.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_lrint.c
@@ -1,5 +1,5 @@
/* Round to nearest integer. PowerPC32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lround.c b/sysdeps/powerpc/powerpc32/fpu/s_lround.c
index 9033c8d..cd602ea 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_lround.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_lround.c
@@ -1,5 +1,5 @@
/* lround function. PowerPC32 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
index 472c5d1..e890b93 100644
--- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp.S b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
index 1a09a6e..d7a949e 100644
--- a/sysdeps/powerpc/powerpc32/fpu/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
@@ -1,5 +1,5 @@
/* non altivec (old) version of setjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/gprrest0.S b/sysdeps/powerpc/powerpc32/gprrest0.S
index 19f7b81..16c8be9 100644
--- a/sysdeps/powerpc/powerpc32/gprrest0.S
+++ b/sysdeps/powerpc/powerpc32/gprrest0.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/gprrest1.S b/sysdeps/powerpc/powerpc32/gprrest1.S
index 10c7757..250ef6a 100644
--- a/sysdeps/powerpc/powerpc32/gprrest1.S
+++ b/sysdeps/powerpc/powerpc32/gprrest1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/gprsave0.S b/sysdeps/powerpc/powerpc32/gprsave0.S
index 6a392b2..fa17d70 100644
--- a/sysdeps/powerpc/powerpc32/gprsave0.S
+++ b/sysdeps/powerpc/powerpc32/gprsave0.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/gprsave1.S b/sysdeps/powerpc/powerpc32/gprsave1.S
index 984eee5..3266ffb 100644
--- a/sysdeps/powerpc/powerpc32/gprsave1.S
+++ b/sysdeps/powerpc/powerpc32/gprsave1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/libgcc-compat.S b/sysdeps/powerpc/powerpc32/libgcc-compat.S
index a491ff0..98390f8 100644
--- a/sysdeps/powerpc/powerpc32/libgcc-compat.S
+++ b/sysdeps/powerpc/powerpc32/libgcc-compat.S
@@ -1,5 +1,5 @@
/* pre-.hidden libgcc compatibility
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/lshift.S b/sysdeps/powerpc/powerpc32/lshift.S
index 4410933..8c6f7d3 100644
--- a/sysdeps/powerpc/powerpc32/lshift.S
+++ b/sysdeps/powerpc/powerpc32/lshift.S
@@ -1,5 +1,5 @@
/* Shift a limb left, low level routine.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/memset.S b/sysdeps/powerpc/powerpc32/memset.S
index fe14718..22511cf 100644
--- a/sysdeps/powerpc/powerpc32/memset.S
+++ b/sysdeps/powerpc/powerpc32/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/mul_1.S b/sysdeps/powerpc/powerpc32/mul_1.S
index 3ef42c5..6c4e20c 100644
--- a/sysdeps/powerpc/powerpc32/mul_1.S
+++ b/sysdeps/powerpc/powerpc32/mul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a limb, for PowerPC.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
index 4c96278..aea251f 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceil.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
index 406f6b4..533b777 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceilf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
index a9cd785..9de985d 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* Multiple versions of floor.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
index b5e2424..aff3884 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Multiple versions of floorf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
index 9571722..387bba0 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrint.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
index 711af77..9f8d37b 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrintf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
index a2e77f3..09ab846 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
@@ -1,5 +1,5 @@
/* Multiple versions of llround.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
index 4f3710a..c8ed2e4 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llroundf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
index 899d573..4bb5c8d 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
index 264c837..32d662b 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
index 56d9677..61f7a3c 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
@@ -1,5 +1,5 @@
/* Multiple versions of logb.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
index 2c7ddbb..4e2fde5 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
index c26159f..bbfba19 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC32 default implementation.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
index 2a8a91d..a872085 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
index 176d8fe..8dff91b 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
index ca6fdb3..b5ee255 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
index b7ce0e3..12be629 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbl.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
index aa442d7..681b4ca 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
@@ -1,5 +1,5 @@
/* Round double to long int. POWER6x PowerPC32 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
index b5f9554..744e341 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
@@ -1,5 +1,5 @@
/* Multiple versions of lrint.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
index c8ab339..a787373 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of lrintf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
index db8803d..cd86662 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
@@ -1,5 +1,5 @@
/* lround function. POWER6x, PowerPC32 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
index d02365d..b142284 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
@@ -1,5 +1,5 @@
/* Multiple versions of lround.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
index 2deff40..88e63be 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of lroundf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
index f77ea80..48f3a19 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modf __modf_power5plus
-#include <sysdeps/powerpc/fpu/s_modf.c>
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
index b6d789b..41f50fb 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation for modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
index 7ded48c..8e05762 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
@@ -1,5 +1,5 @@
/* Multiple versions of modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
index 0998ac4..15bfa0b 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modff __modff_power5plus
-#include <sysdeps/powerpc/fpu/s_modff.c>
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
index 9c87134..16e4eb3 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation for modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
index b22e2de8..0091141 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
@@ -1,5 +1,5 @@
/* Multiple versions of modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
index 0b3f215..c94e6f1 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
@@ -1,5 +1,5 @@
/* Multiple versions of round.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
index bf46a93..0d28178 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of roundf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
index 6b6bbe3..430306c 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* Multiple versions of trunc.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
index cc9e246..8e2bc2d 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Multiple versions of truncf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/hp-timing.h b/sysdeps/powerpc/powerpc32/power4/hp-timing.h
index ace8932..a2cfe0d 100644
--- a/sysdeps/powerpc/powerpc32/power4/hp-timing.h
+++ b/sysdeps/powerpc/powerpc32/power4/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. powerpc64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/memcmp.S b/sysdeps/powerpc/powerpc32/power4/memcmp.S
index 8f30a77..59638e2 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power4/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC32.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/memcopy.h b/sysdeps/powerpc/powerpc32/power4/memcopy.h
index 6301f2a..02df80b 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcopy.h
+++ b/sysdeps/powerpc/powerpc32/power4/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Generic C version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/memcpy.S b/sysdeps/powerpc/powerpc32/power4/memcpy.S
index f9f7047..54ecdaa 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power4/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on PowerPC64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/memset.S b/sysdeps/powerpc/powerpc32/power4/memset.S
index c1831ad..51f6b1f 100644
--- a/sysdeps/powerpc/powerpc32/power4/memset.S
+++ b/sysdeps/powerpc/powerpc32/power4/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
index 0a4e828..3a49b85 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
@@ -6,12 +6,9 @@ sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \
memchr-ppc32 memrchr-power7 memrchr-ppc32 rawmemchr-power7 \
rawmemchr-ppc32 strlen-power7 strlen-ppc32 strnlen-power7 \
strnlen-ppc32 \
- strcasecmp-power7 strcasecmp_l-power7 strncase-power7 \
- strncase_l-power7 strchrnul-power7 strchrnul-ppc32 \
+ strcasecmp-power7 strcasecmp_l-power7 \
+ strchrnul-power7 strchrnul-ppc32 \
strchr-power7 strchr-ppc32 \
wordcopy-power7 wordcopy-ppc32 \
memmove-power7 memmove-ppc
-
-CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
-CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
index 989f17e..7537f3a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. PowerPC32 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -138,21 +138,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, strcasecmp_l, 1,
__strcasecmp_l_ppc))
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c. */
- IFUNC_IMPL (i, name, strncasecmp,
- IFUNC_IMPL_ADD (array, i, strncasecmp,
- hwcap & PPC_FEATURE_HAS_VSX,
- __strncasecmp_power7)
- IFUNC_IMPL_ADD (array, i, strncasecmp, 1, __strncasecmp_ppc))
-
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c. */
- IFUNC_IMPL (i, name, strncasecmp_l,
- IFUNC_IMPL_ADD (array, i, strncasecmp_l,
- hwcap & PPC_FEATURE_HAS_VSX,
- __strncasecmp_l_power7)
- IFUNC_IMPL_ADD (array, i, strncasecmp_l, 1,
- __strncasecmp_l_ppc))
-
/* Support sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c. */
IFUNC_IMPL (i, name, strchrnul,
IFUNC_IMPL_ADD (array, i, strchrnul,
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h b/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
index 7afbd0a..f8ec66f 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
index b5c50a4..8fe8247 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
index 7e51feb..1bbb0ce 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of memchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
index db71c59..6559637 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
index d6a991f..2fc7fb0 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
index 5185268..d09b47e 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
@@ -1,5 +1,5 @@
/* Default memcmp implementation for PowerPC32.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
index e2e6990..0f8dfa1 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcmp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
index aaad91d..276f7a7 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
index 0e549db..b978619 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
index a87dcd4..2c3dfd6 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on POWER6.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
index ea5a951..f4de390 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
index fd9dd69..765f2d9 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
@@ -1,5 +1,5 @@
/* Default memcpy implementation for PowerPC32.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
index 0c9c0a1..54ebe9a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
index c8566bc..3cc1c87 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
@@ -1,5 +1,5 @@
/* Power7 multiarch memmove.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
index 93009ca..3c63941 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
@@ -1,5 +1,5 @@
/* Power7 multiarch memmove.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
index 50ca9a0..dc87835 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. PowerPC32 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
index 94a93f3..cda28c4 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
index 99c82fa..d0bfe0d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of mempcpy.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
index a560b5d..432812a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of mempcpy.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
index 66a177f..1e643f6 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
index b582fee..58bbcf3 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of memrchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
index 3e1b0cf..97447c1 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memrchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
index b501957..9acae11 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
@@ -1,5 +1,5 @@
/* Optimized 32-bit memset implementation for POWER6.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
index d8c8fdd..157759f 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC32/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
index e8a80a4..0c28076 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
@@ -1,5 +1,5 @@
/* Default memset implementation for PowerPC32.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
index 1601b08..a8be722 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
index 8f54d90..1270bc6 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized rawrawmemchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
index a70e6ae..1420e2c 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of rawmemchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
index e6d5848..73f2540 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of rawmemchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
index d31b426..d719709 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
@@ -1,5 +1,5 @@
/* Loader memcmp implementation for PowerPC32.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
index 3b69e08..ac1db05 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
index 878373e..82b47fc 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
index cfdd3bd..1b235df 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
index 09af5c5..0fc5fac 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC32.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
index 0e2dac0..f49642d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
index 86c26f0..c025388 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
@@ -1,5 +1,5 @@
/* Default strcasecmp implementation for PowerPC32.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
index 574b9e2..c57344d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
index b197257..fa76a5a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
index 099971e..616f7cd 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of strchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
index 14127e6..d515a51 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
index 5ab5b21..56de278 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
index 131a54f..ce2b93d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of strchrnul.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
index 0e9f44b..5d8a31b 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchrnul.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
index 66749bb..f7d5df5 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
index 150b642..542a881 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
@@ -1,5 +1,5 @@
/* Default strlen implementation for PowerPC32.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
index 1209549..166cf30 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
deleted file mode 100644
index 8a65ab9..0000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Multiple versions of strncasecmp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <string.h>
-# define strncasecmp __strncasecmp_ppc
-extern __typeof (__strncasecmp) __strncasecmp_ppc attribute_hidden;
-extern __typeof (__strncasecmp) __strncasecmp_power7 attribute_hidden;
-#endif
-
-#include <string/strncase.c>
-#undef strncasecmp
-
-#if IS_IN (libc)
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
- ifunc symbol properly. */
-extern __typeof (__strncasecmp) __libc_strncasecmp;
-libc_ifunc (__libc_strncasecmp,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __strncasecmp_power7
- : __strncasecmp_ppc);
-weak_alias (__libc_strncasecmp, strncasecmp)
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
deleted file mode 100644
index 0b624f5..0000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Multiple versions of strncasecmp_l.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <string.h>
-# define strncasecmp_l __strncasecmp_l_ppc
-extern __typeof (__strncasecmp_l) __strncasecmp_l_ppc attribute_hidden;
-extern __typeof (__strncasecmp_l) __strncasecmp_l_power7 attribute_hidden;
-#endif
-
-#include <string/strncase_l.c>
-#undef strncasecmp_l
-
-#if IS_IN (libc)
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
- ifunc symbol properly. */
-extern __typeof (__strncasecmp_l) __libc_strncasecmp_l;
-libc_ifunc (__libc_strncasecmp_l,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __strncasecmp_l_power7
- : __strncasecmp_l_ppc);
-
-weak_alias (__libc_strncasecmp_l, strncasecmp_l)
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
index 38ed2ce..47346e2 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
index ce353b9..16d37f0 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
@@ -1,5 +1,5 @@
/* Default strnlen implementation for PowerPC32.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
index ba5c2ef..c22b760 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strnlen.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
index 85d7766..90e9792 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
index f8accdb..4827d8d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power6/memcpy.S b/sysdeps/powerpc/powerpc32/power6/memcpy.S
index a7158f4..110ecd8 100644
--- a/sysdeps/powerpc/powerpc32/power6/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power6/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on POWER6.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
index eae37eb..5730250 100644
--- a/sysdeps/powerpc/powerpc32/power6/memset.S
+++ b/sysdeps/powerpc/powerpc32/power6/memset.S
@@ -1,5 +1,5 @@
/* Optimized 32-bit memset implementation for POWER6.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
index b03ed01..2698d02 100644
--- a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
+++ b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
@@ -1,5 +1,5 @@
/* Round double to long int. POWER6x PowerPC32 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
index cdea617..47207b5 100644
--- a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
+++ b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
@@ -1,5 +1,5 @@
/* lround function. POWER6x, PowerPC32 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/memchr.S b/sysdeps/powerpc/powerpc32/power7/memchr.S
index 2602017..616a899 100644
--- a/sysdeps/powerpc/powerpc32/power7/memchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S
index ac46d18..290c2a6 100644
--- a/sysdeps/powerpc/powerpc32/power7/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/memcpy.S b/sysdeps/powerpc/powerpc32/power7/memcpy.S
index 57fba01..cc32fe0 100644
--- a/sysdeps/powerpc/powerpc32/power7/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power7/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32/POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/mempcpy.S b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
index d5e78bf..4ac3773 100644
--- a/sysdeps/powerpc/powerpc32/power7/mempcpy.S
+++ b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/memrchr.S b/sysdeps/powerpc/powerpc32/power7/memrchr.S
index a8b0d1d..9f64a6b 100644
--- a/sysdeps/powerpc/powerpc32/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/memset.S b/sysdeps/powerpc/powerpc32/power7/memset.S
index 7545142..9f27fdb 100644
--- a/sysdeps/powerpc/powerpc32/power7/memset.S
+++ b/sysdeps/powerpc/powerpc32/power7/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC32/POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
index 132944b..e46c323 100644
--- a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
index 1130bfd..13d7402 100644
--- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC32.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/strchr.S b/sysdeps/powerpc/powerpc32/power7/strchr.S
index 345d86d..3f6364a 100644
--- a/sysdeps/powerpc/powerpc32/power7/strchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/strchrnul.S b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
index cccc020..a5af28d 100644
--- a/sysdeps/powerpc/powerpc32/power7/strchrnul.S
+++ b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/strlen.S b/sysdeps/powerpc/powerpc32/power7/strlen.S
index 8c2e82a..c256c46 100644
--- a/sysdeps/powerpc/powerpc32/power7/strlen.S
+++ b/sysdeps/powerpc/powerpc32/power7/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power7/strnlen.S b/sysdeps/powerpc/powerpc32/power7/strnlen.S
index e8e9db8..c145b95 100644
--- a/sysdeps/powerpc/powerpc32/power7/strnlen.S
+++ b/sysdeps/powerpc/powerpc32/power7/strnlen.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S
index 317e466..66f981f 100644
--- a/sysdeps/powerpc/powerpc32/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S
@@ -1,5 +1,5 @@
/* PowerPC-specific implementation of profiling support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/rshift.S b/sysdeps/powerpc/powerpc32/rshift.S
index 9e520b2..fe689d8 100644
--- a/sysdeps/powerpc/powerpc32/rshift.S
+++ b/sysdeps/powerpc/powerpc32/rshift.S
@@ -1,5 +1,5 @@
/* Shift a limb right, low level routine.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S
index ce2e70d..389346f 100644
--- a/sysdeps/powerpc/powerpc32/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/setjmp.S b/sysdeps/powerpc/powerpc32/setjmp.S
index 7f3596e..c7db288 100644
--- a/sysdeps/powerpc/powerpc32/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/setjmp.S
@@ -1,5 +1,5 @@
/* non altivec (old) version of setjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/stackinfo.h b/sysdeps/powerpc/powerpc32/stackinfo.h
index 410689b..31cba55 100644
--- a/sysdeps/powerpc/stackinfo.h
+++ b/sysdeps/powerpc/powerpc32/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,13 +26,7 @@
/* On PPC the stack grows down. */
#define _STACK_GROWS_DOWN 1
-#if __WORDSIZE == 64
-/* PPC64 doesn't need an executable stack and doesn't need PT_GNU_STACK
- * to make the stack nonexecutable. */
-# define DEFAULT_STACK_PERMS (PF_R|PF_W)
-#else
/* PF_X can be overridden if PT_GNU_STACK is present but is presumed absent. */
-# define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
-#endif
+#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
#endif /* stackinfo.h */
diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
index 9f7ee4b..d1a7c54 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -1,5 +1,5 @@
/* Startup code for programs linked with GNU libc.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S
index e4c7fe7..de7130f 100644
--- a/sysdeps/powerpc/powerpc32/stpcpy.S
+++ b/sysdeps/powerpc/powerpc32/stpcpy.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/strchr.S b/sysdeps/powerpc/powerpc32/strchr.S
index 88594d7..cf147d8 100644
--- a/sysdeps/powerpc/powerpc32/strchr.S
+++ b/sysdeps/powerpc/powerpc32/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/strcmp.S b/sysdeps/powerpc/powerpc32/strcmp.S
index 9351d18..5f43ba4 100644
--- a/sysdeps/powerpc/powerpc32/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/strcpy.S b/sysdeps/powerpc/powerpc32/strcpy.S
index cecb0ac..712e4b5 100644
--- a/sysdeps/powerpc/powerpc32/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/strlen.S b/sysdeps/powerpc/powerpc32/strlen.S
index 4aff88e..b227859 100644
--- a/sysdeps/powerpc/powerpc32/strlen.S
+++ b/sysdeps/powerpc/powerpc32/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/sub_n.S b/sysdeps/powerpc/powerpc32/sub_n.S
index afc5d89..7e71d17 100644
--- a/sysdeps/powerpc/powerpc32/sub_n.S
+++ b/sysdeps/powerpc/powerpc32/sub_n.S
@@ -1,5 +1,5 @@
/* Subtract two limb vectors of equal, non-zero length for PowerPC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/submul_1.S b/sysdeps/powerpc/powerpc32/submul_1.S
index 8b3d067..69ccd08 100644
--- a/sysdeps/powerpc/powerpc32/submul_1.S
+++ b/sysdeps/powerpc/powerpc32/submul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a single limb, for PowerPC.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/symbol-hacks.h b/sysdeps/powerpc/powerpc32/symbol-hacks.h
index b554c85..898495a 100644
--- a/sysdeps/powerpc/powerpc32/symbol-hacks.h
+++ b/sysdeps/powerpc/powerpc32/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. powerpc version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h
index 62de4ca..863b011 100644
--- a/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/powerpc/powerpc32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for 32-bit PowerPC.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -104,6 +104,9 @@ GOT_LABEL: ; \
# define JUMPTARGET(name) name
#endif
+#define TAIL_CALL_NO_RETURN(__func) \
+ b __func@local
+
#if defined SHARED && defined PIC && !defined NO_HIDDEN
# undef HIDDEN_JUMPTARGET
# define HIDDEN_JUMPTARGET(name) __GI_##name##@local
diff --git a/sysdeps/powerpc/powerpc32/tst-audit.h b/sysdeps/powerpc/powerpc32/tst-audit.h
index 87d063b..654b343 100644
--- a/sysdeps/powerpc/powerpc32/tst-audit.h
+++ b/sysdeps/powerpc/powerpc32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. PowerPC32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/powerpc/powerpc32/unwind-arch.h b/sysdeps/powerpc/powerpc32/unwind-arch.h
index d019a17..78aa00c 100644
--- a/sysdeps/powerpc/powerpc32/unwind-arch.h
+++ b/sysdeps/powerpc/powerpc32/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. powerpc customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S
index 8a74836..9a6e3f5 100644
--- a/sysdeps/powerpc/powerpc64/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC64.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/__longjmp.S b/sysdeps/powerpc/powerpc64/__longjmp.S
index 6b0c930..4d2136e 100644
--- a/sysdeps/powerpc/powerpc64/__longjmp.S
+++ b/sysdeps/powerpc/powerpc64/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC64.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/a2/memcpy.S b/sysdeps/powerpc/powerpc64/a2/memcpy.S
index 86b5ef3..3eb7b66 100644
--- a/sysdeps/powerpc/powerpc64/a2/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/a2/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/addmul_1.S b/sysdeps/powerpc/powerpc64/addmul_1.S
index 216cb21..f889c47 100644
--- a/sysdeps/powerpc/powerpc64/addmul_1.S
+++ b/sysdeps/powerpc/powerpc64/addmul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/atomic-machine.h b/sysdeps/powerpc/powerpc64/atomic-machine.h
index ed286f7..3754b55 100644
--- a/sysdeps/powerpc/powerpc64/atomic-machine.h
+++ b/sysdeps/powerpc/powerpc64/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC64 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c
index 59ca6ea..ea848a4 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceil.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c
index c53d280..def4d5b 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceilf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c
index a33b451..6e46f96 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* Multiple versions of floor.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c
index 99beb23..e8c5937 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Multiple versions of floorf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c
index 0944539..eb35efe 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrint.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c
index 721b841..e6c0305 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrintf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c
index 244a4b4..13444ba 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c
@@ -1,5 +1,5 @@
/* Multiple versions of llround.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c
index 5c9b60e..1706c43 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llroundf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c
index d32422b..ad9b522 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c
index 5abbe23..cdec77c 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c
index 5f5e525..d5e90d5 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c
@@ -1,5 +1,5 @@
/* Multiple versions of logb.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c
index 5755a01..fd1a098 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c
index 7ce8a30..519531a 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC64 default implementation.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c
index 5d7c0ab..6276928 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c
index 186a41f..821f467 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c
index b7fe98a..8d7b522 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC64/POWER7 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c
index af60d06..56bb8d7 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbl.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
index f77ea80..48f3a19 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modf __modf_power5plus
-#include <sysdeps/powerpc/fpu/s_modf.c>
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c
index fb7d0ba..eed9a05 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation for modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c
index a777efb..36c9e5c 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c
@@ -1,5 +1,5 @@
/* Multiple versions of modf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
index 0998ac4..15bfa0b 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,4 +17,4 @@
<https://www.gnu.org/licenses/>. */
#define __modff __modff_power5plus
-#include <sysdeps/powerpc/fpu/s_modff.c>
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c
index c6200c2..f523f82 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation for modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c
index 0a9438c..7f72f2c 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c
@@ -1,5 +1,5 @@
/* Multiple versions of modff.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c
index 8c01400..e85a0d6 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c
@@ -1,5 +1,5 @@
/* Multiple versions of round.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c
index b7edb2b..cce9e4a 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of roundf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c
index c528506..cf44c31 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* Multiple versions of trunc.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c
index c3e7d95..ac5e169 100644
--- a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Multiple versions of truncf.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/cell/memcpy.S b/sysdeps/powerpc/powerpc64/cell/memcpy.S
index ff78ae2..8e1a9e8 100644
--- a/sysdeps/powerpc/powerpc64/cell/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/cell/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/crti.S b/sysdeps/powerpc/powerpc64/crti.S
index 71bdddf..762bcbe 100644
--- a/sysdeps/powerpc/powerpc64/crti.S
+++ b/sysdeps/powerpc/powerpc64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -68,6 +68,9 @@ BODY_LABEL (_init):
LOCALENTRY(_init)
mflr 0
std 0, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0, FRAME_ROP_SAVE(r1)
+#endif
stdu r1, -FRAME_MIN_SIZE_PARM(r1)
#if PREINIT_FUNCTION_WEAK
addis r9, r2, .LC0@toc@ha
@@ -87,4 +90,7 @@ BODY_LABEL (_fini):
LOCALENTRY(_fini)
mflr 0
std 0, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0, FRAME_ROP_SAVE(r1)
+#endif
stdu r1, -FRAME_MIN_SIZE_PARM(r1)
diff --git a/sysdeps/powerpc/powerpc64/crtn.S b/sysdeps/powerpc/powerpc64/crtn.S
index 4e91231..876254c 100644
--- a/sysdeps/powerpc/powerpc64/crtn.S
+++ b/sysdeps/powerpc/powerpc64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,10 +42,16 @@
addi r1, r1, FRAME_MIN_SIZE_PARM
ld r0, FRAME_LR_SAVE(r1)
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
.section .fini,"ax",@progbits
addi r1, r1, FRAME_MIN_SIZE_PARM
ld r0, FRAME_LR_SAVE(r1)
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
diff --git a/sysdeps/powerpc/powerpc64/dl-dtprocnum.h b/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
index 1bca0f7..452e3b8 100644
--- a/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
+++ b/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. PowerPC64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/dl-funcdesc.h b/sysdeps/powerpc/powerpc64/dl-funcdesc.h
index 19963ca..421e4a6 100644
--- a/sysdeps/powerpc/powerpc64/dl-funcdesc.h
+++ b/sysdeps/powerpc/powerpc64/dl-funcdesc.h
@@ -1,5 +1,5 @@
/* PowerPC ELFv1 function descriptor definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/dl-irel.h b/sysdeps/powerpc/powerpc64/dl-irel.h
index c62ea5a..28afa5e 100644
--- a/sysdeps/powerpc/powerpc64/dl-irel.h
+++ b/sysdeps/powerpc/powerpc64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
PowerPC64 version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.c b/sysdeps/powerpc/powerpc64/dl-machine.c
index b99efcc..fc5167f 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.c
+++ b/sysdeps/powerpc/powerpc64/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC64 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 2b6f5d2..89e26bb 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
PowerPC64 version.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -363,7 +363,6 @@ elf_machine_runtime_setup (struct link_map *map, struct r_scope_elem *scope[],
/ sizeof (Elf64_Rela));
Elf64_Addr l_addr = map->l_addr;
Elf64_Dyn **info = map->l_info;
- char *p;
extern void _dl_runtime_resolve (void);
extern void _dl_profile_resolve (void);
@@ -435,20 +434,6 @@ elf_machine_runtime_setup (struct link_map *map, struct r_scope_elem *scope[],
offset += PLT_ENTRY_WORDS;
glink_offset += GLINK_ENTRY_WORDS (i);
}
-
- /* Now, we've modified data. We need to write the changes from
- the data cache to a second-level unified cache, then make
- sure that stale data in the instruction cache is removed.
- (In a multiprocessor system, the effect is more complex.)
- Most of the PLT shouldn't be in the instruction cache, but
- there may be a little overlap at the start and the end.
-
- Assumes that dcbst and icbi apply to lines of 16 bytes or
- more. Current known line sizes are 16, 32, and 128 bytes. */
-
- for (p = (char *) plt; p < (char *) &plt[offset]; p += 16)
- PPC_DCBST (p);
- PPC_SYNC;
}
}
return lazy;
@@ -537,7 +522,7 @@ elf_machine_fixup_plt (struct link_map *map, lookup_t sym_map,
if (finaladdr != 0 && map != sym_map && !sym_map->l_relocated
#if !defined RTLD_BOOTSTRAP && defined SHARED
/* Bootstrap map doesn't have l_relocated set for it. */
- && sym_map != &GL(dl_rtld_map)
+ && !is_rtld_link_map (sym_map)
#endif
)
offset = sym_map->l_addr;
@@ -662,7 +647,7 @@ resolve_ifunc (Elf64_Addr value,
if (map != sym_map
# if !defined RTLD_BOOTSTRAP && defined SHARED
/* Bootstrap map doesn't have l_relocated set for it. */
- && sym_map != &GL(dl_rtld_map)
+ && !is_rtld_link_map (map)
# endif
&& !sym_map->l_relocated)
{
diff --git a/sysdeps/powerpc/powerpc64/dl-trampoline.S b/sysdeps/powerpc/powerpc64/dl-trampoline.S
index 087ef5b..92ac6d6 100644
--- a/sysdeps/powerpc/powerpc64/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. PPC64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,10 +33,12 @@
a function that makes no calls except for __tls_get_addr and we
might be here resolving the __tls_get_addr call. */
.hidden _dl_runtime_resolve
-#define INT_PARMS FRAME_MIN_SIZE
+#ifdef FRAME_ROP_SAVE
+# define INT_PARMS FRAME_ROP_SAVE-64
+#else
+# define INT_PARMS -64
+#endif
ENTRY (_dl_runtime_resolve, 4)
- stdu r1,-FRAME_SIZE(r1)
- cfi_adjust_cfa_offset (FRAME_SIZE)
std r3,INT_PARMS+0(r1)
mr r3,r11
std r4,INT_PARMS+8(r1)
@@ -49,16 +51,23 @@ ENTRY (_dl_runtime_resolve, 4)
mflr r0
std r8,INT_PARMS+40(r1)
/* Store the LR in the LR Save area. */
- std r0,FRAME_SIZE+FRAME_LR_SAVE(r1)
+ std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
std r9,INT_PARMS+48(r1)
std r10,INT_PARMS+56(r1)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
+ stdu r1,-FRAME_SIZE(r1)
+ cfi_adjust_cfa_offset (FRAME_SIZE)
bl JUMPTARGET(_dl_fixup)
#ifndef SHARED
nop
#endif
+/* Unwind the stack frame, and jump. */
+ addi r1,r1,FRAME_SIZE
/* Put the registers back. */
- ld r0,FRAME_SIZE+FRAME_LR_SAVE(r1)
+ ld r0,FRAME_LR_SAVE(r1)
ld r10,INT_PARMS+56(r1)
ld r9,INT_PARMS+48(r1)
ld r8,INT_PARMS+40(r1)
@@ -72,10 +81,11 @@ ENTRY (_dl_runtime_resolve, 4)
ld r3,INT_PARMS+0(r1)
#if _CALL_ELF == 2
/* Restore the caller's TOC in case we jump to a local entry point. */
- ld r2,FRAME_SIZE+FRAME_TOC_SAVE(r1)
+ ld r2,FRAME_TOC_SAVE(r1)
+#endif
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
#endif
-/* Unwind the stack frame, and jump. */
- addi r1,r1,FRAME_SIZE
bctr
END(_dl_runtime_resolve)
#undef FRAME_SIZE
@@ -106,7 +116,7 @@ END(_dl_runtime_resolve)
+520 r4 +520 r4
+512 r3 +512 r3
return values
- +504 free
+ +504 ROP save slot
+496 stackframe
+488 lr
+480 r1
@@ -168,6 +178,8 @@ END(_dl_runtime_resolve)
#if _CALL_ELF == 2
# define FRAME_SIZE 752
# define VR_RTN 608
+# undef FRAME_ROP_SAVE
+# define FRAME_ROP_SAVE 504-FRAME_SIZE /* Override the default value. */
#else
# define FRAME_SIZE 592
# define VR_RTN 560
@@ -217,6 +229,10 @@ ENTRY (_dl_profile_resolve, 4)
std r6,INT_PARMS+24(r1)
sldi r4,r4,3 /* index * 24 == PLT offset */
mflr r5
+#ifdef __ROP_PROTECT__
+ addi r31,r1,FRAME_SIZE
+ hashst r5,FRAME_ROP_SAVE(r31)
+#endif
std r7,INT_PARMS+32(r1)
std r8,INT_PARMS+40(r1)
/* Store the LR in the LR Save area. */
@@ -359,6 +375,9 @@ L(restoreFXR):
ld r31,FRAME_SIZE-8(r1)
ld r30,FRAME_SIZE-16(r1)
addi r1,r1,FRAME_SIZE
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
bctr
L(do_pltexit):
@@ -389,6 +408,10 @@ L(do_pltexit):
lvx v13,r11,r9
L(restoreFXR2):
ld r0,FRAME_SIZE+FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ addi r4,r1,FRAME_SIZE
+ hashchk r0,FRAME_ROP_SAVE(r4)
+#endif
ld r10,INT_PARMS+56(r1)
ld r9,INT_PARMS+48(r1)
ld r8,INT_PARMS+40(r1)
@@ -499,6 +522,9 @@ L(pltexitreturn):
ld r30,FRAME_SIZE-16(r1)
mtlr r0
ld r1,0(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
END(_dl_profile_resolve)
#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llrint.c b/sysdeps/powerpc/powerpc64/fpu/s_llrint.c
index e68e7dd..1349ab1 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_llrint.c
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llrint.c
@@ -1,5 +1,5 @@
/* Round to nearest integer. PowerPC64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llround.c b/sysdeps/powerpc/powerpc64/fpu/s_llround.c
index 3b76dbe..51aebf7 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_llround.c
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llround.c
@@ -1,5 +1,5 @@
/* Round to nearest integer. PowerPC64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c b/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c
index c857f1b..1652c7a 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round to nearest integer. PowerPC64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/hp-timing.h b/sysdeps/powerpc/powerpc64/hp-timing.h
index eab4db3..87cac66 100644
--- a/sysdeps/powerpc/powerpc64/hp-timing.h
+++ b/sysdeps/powerpc/powerpc64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. powerpc64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
index 9d568d4..b77775c 100644
--- a/sysdeps/powerpc/powerpc64/le/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/Makefile
@@ -129,6 +129,10 @@ CFLAGS-tst-strtod-round.c += $(type-float128-CFLAGS)
CFLAGS-tst-wcstod-round.c += $(type-float128-CFLAGS)
CFLAGS-tst-strtod-nan-locale.c += $(type-float128-CFLAGS)
CFLAGS-tst-wcstod-nan-locale.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod1i.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod3.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod4.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod5i.c += $(type-float128-CFLAGS)
CFLAGS-tst-strtod6.c += $(type-float128-CFLAGS)
CFLAGS-tst-strfrom.c += $(type-float128-CFLAGS)
CFLAGS-tst-strfrom-locale.c += $(type-float128-CFLAGS)
diff --git a/sysdeps/powerpc/powerpc64/le/configure b/sysdeps/powerpc/powerpc64/le/configure
index 7092f61..ef17f24 100644
--- a/sysdeps/powerpc/powerpc64/le/configure
+++ b/sysdeps/powerpc/powerpc64/le/configure
@@ -137,75 +137,5 @@ then :
critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlong-double-128 simultaneously."
fi
-for ac_prog in $OBJCOPY
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OBJCOPY+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$OBJCOPY"; then
- ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJCOPY="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi ;;
-esac
-fi
-OBJCOPY=$ac_cv_prog_OBJCOPY
-if test -n "$OBJCOPY"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
-printf "%s\n" "$OBJCOPY" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$OBJCOPY" && break
-done
-
-if test -z "$OBJCOPY"; then
- ac_verc_fail=yes
-else
- # Found it, now check the version.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $OBJCOPY" >&5
-printf %s "checking version of $OBJCOPY... " >&6; }
- ac_prog_version=`$OBJCOPY --version 2>&1 | sed -n 's/^.*GNU objcopy.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 2.1[0-9][0-9]*|2.2[6-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
- esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-printf "%s\n" "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
- AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le"
-fi
-
-
test -n "$critic_missing" && as_fn_error $? "*** $critic_missing" "$LINENO" 5
diff --git a/sysdeps/powerpc/powerpc64/le/configure.ac b/sysdeps/powerpc/powerpc64/le/configure.ac
index 48d7089..79b3d43 100644
--- a/sysdeps/powerpc/powerpc64/le/configure.ac
+++ b/sysdeps/powerpc/powerpc64/le/configure.ac
@@ -66,11 +66,4 @@ CFLAGS="$save_CFLAGS"])
AS_IF([test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" = "no"],
[critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlong-double-128 simultaneously."])
-dnl objcopy (binutils) 2.26 or newer required to support the --update-section
-dnl feature for fixing up .gnu.attribute section with IEEE ldbl.
-AC_CHECK_PROG_VER(OBJCOPY, $OBJCOPY, --version,
- [GNU objcopy.* \([0-9]*\.[0-9.]*\)],
- [2.1[0-9][0-9]*|2.2[6-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
- AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le")
-
test -n "$critic_missing" && AC_MSG_ERROR([*** $critic_missing])
diff --git a/sysdeps/powerpc/powerpc64/le/dl-hwcap-check.h b/sysdeps/powerpc/powerpc64/le/dl-hwcap-check.h
index 6d463f0..90013ab 100644
--- a/sysdeps/powerpc/powerpc64/le/dl-hwcap-check.h
+++ b/sysdeps/powerpc/powerpc64/le/dl-hwcap-check.h
@@ -1,5 +1,5 @@
/* Check for hardware capabilities after HWCAP parsing. powerpc64le version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/dl-hwcaps-subdirs.c b/sysdeps/powerpc/powerpc64/le/dl-hwcaps-subdirs.c
index 502a90f..f81f9f0 100644
--- a/sysdeps/powerpc/powerpc64/le/dl-hwcaps-subdirs.c
+++ b/sysdeps/powerpc/powerpc64/le/dl-hwcaps-subdirs.c
@@ -1,5 +1,5 @@
/* Architecture-specific glibc-hwcaps subdirectories. powerpc64le version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/loongarch/fpu/s_fmaximum_mag.c b/sysdeps/powerpc/powerpc64/le/fpu/e_ilogb.c
index 5418cbe..89e7498 100644
--- a/sysdeps/loongarch/fpu/s_fmaximum_mag.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/e_ilogb.c
@@ -1,5 +1,5 @@
-/* fmaximum_mag(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
+#include <limits.h>
#include <math.h>
-#include <libm-alias-double.h>
-#include <fpu_control.h>
+#include <stdbit.h>
+#include "math_config.h"
-double
-__fmaximum_mag (double x, double y)
+int
+__ieee754_ilogb (double x)
{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.d \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.d \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
+ uint64_t ux = asuint64 (x);
+ int ex = (ux & ~SIGN_MASK) >> MANTISSA_WIDTH;
+ if (ex == 0) /* zero or subnormal */
{
- asm volatile ("fmaxa.d \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
+ /* Clear sign and exponent */
+ ux <<= 12;
+ if (ux == 0)
+ return FP_ILOGB0;
+ /* subnormal */
+ return -1023 - stdc_leading_zeros (ux);
}
+ if (ex == EXPONENT_MASK >> MANTISSA_WIDTH) /* NaN or Inf */
+ return ux << 12 ? FP_ILOGBNAN : INT_MAX;
+ return ex - 1023;
}
-libm_alias_double (__fmaximum_mag, fmaximum_mag)
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/e_ilogbf.c b/sysdeps/powerpc/powerpc64/le/fpu/e_ilogbf.c
new file mode 100644
index 0000000..1c2a8a5
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/fpu/e_ilogbf.c
@@ -0,0 +1,41 @@
+/* Get integer exponent of a floating-point value.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <limits.h>
+#include <math.h>
+#include <stdbit.h>
+#include "sysdeps/ieee754/flt-32/math_config.h"
+
+int
+__ieee754_ilogbf (float x)
+{
+ uint32_t ux = asuint (x);
+ int ex = (ux & ~SIGN_MASK) >> MANTISSA_WIDTH;
+ if (ex == 0) /* zero or subnormal */
+ {
+ /* Clear sign and exponent. */
+ ux <<= 1 + EXPONENT_WIDTH;
+ if (ux == 0)
+ return FP_ILOGB0;
+ /* sbunormal */
+ return -127 - stdc_leading_zeros (ux);
+ }
+ if (ex == EXPONENT_MASK >> MANTISSA_WIDTH) /* NaN or Inf */
+ return ux << (1 + EXPONENT_WIDTH) ? FP_ILOGBNAN : INT_MAX;
+ return ex - 127;
+}
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c b/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
index 5b120c5..6f4552d 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
@@ -1,6 +1,6 @@
/* soft-fp sqrt for _Float128
Return sqrt(a)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
index 6d74f09..1a0e496 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
@@ -91,8 +91,8 @@ gen-libm-f128-ifunc-routines = \
e_expf128 e_fmodf128 e_hypotf128 e_j0f128 e_j1f128 e_jnf128 \
e_lgammaf128_r e_logf128 e_log10f128 e_powf128 e_remainderf128 \
e_sinhf128 e_sqrtf128 e_gammaf128_r e_ilogbf128 k_tanf128 s_asinhf128 \
- s_atanf128 s_cbrtf128 s_ceilf128 s_cosf128 s_erff128 s_exp10m1f128 \
- s_exp2m1f128 s_expm1f128 \
+ s_atanf128 s_cbrtf128 s_ceilf128 s_compoundnf128 s_cosf128 s_erff128 \
+ s_exp10m1f128 s_exp2m1f128 s_expm1f128 \
s_fabsf128 s_floorf128 s_log1pf128 s_logbf128 \
s_rintf128 s_scalblnf128 s_sinf128 s_tanf128 \
s_tanhf128 s_truncf128 s_remquof128 e_log2f128 \
@@ -232,6 +232,7 @@ CFLAGS-s_cexpf128-ifunc.c += -fno-builtin-cexpf64x
CFLAGS-s_cimagf128-ifunc.c += -fno-builtin-cimagf64x
CFLAGS-s_clogf128-ifunc.c += -fno-builtin-clogf64x
CFLAGS-s_clog10f128-ifunc.c += -fno-builtin-clog10f64x
+CFLAGS-s_compoundnf128-ifunc.c += -fno-builtin-compoundnf64x
CFLAGS-s_conjf128-ifunc.c += -fno-builtin-conjf64x
CFLAGS-s_copysignf128-ifunc.c += -fno-builtin-copysignf64x
CFLAGS-s_cosf128-ifunc.c += -fno-builtin-cosf64x
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/e_log.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/e_log.c
index 3682bd4..b5d405d 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/e_log.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/e_log.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 log.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h
index e44acdb..34c0f50 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h
@@ -1,5 +1,5 @@
/* _Float128 aliasing macro support for ifunc generation on PPC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirect-macros.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirect-macros.h
index 37af613..9a8f1fc 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirect-macros.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirect-macros.h
@@ -1,5 +1,5 @@
/* _Float128 aliasing macro support for ifunc generation on PPC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects-mp.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects-mp.h
index cff3e3d..865b67f 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects-mp.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects-mp.h
@@ -1,5 +1,5 @@
/* _Float128 multiarch redirects shared with math_private.h
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
index 155aabc..b0cc6fc 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
@@ -1,5 +1,5 @@
/* _Float128 redirects for ppc64le multiarch env.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,7 @@ F128_REDIR_PFX_R (floorf128, __,);
F128_REDIR_PFX_R (truncf128, __,);
F128_REDIR_PFX_R (roundf128, __,);
F128_REDIR_PFX_R (fabsf128, __,);
+F128_REDIR_PFX_R (fmaf128, __,);
extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128);
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
index f235f82..e3e43ff 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
@@ -1,5 +1,5 @@
/* _Float128 ifunc ABI/ifunc generation macros.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128_private.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128_private.h
index 173cfca..1e3d8dc 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128_private.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128_private.h
@@ -1,5 +1,5 @@
/* _Float128 overrides for float128 in ppc64le multiarch env.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -55,6 +55,7 @@ F128_REDIR (__asinhf128)
F128_REDIR (__atanf128)
F128_REDIR (__cbrtf128)
F128_REDIR (__ceilf128)
+F128_REDIR (__compoundnf128)
F128_REDIR (__cosf128)
F128_REDIR (__erfcf128)
F128_REDIR (__erff128)
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
index 39241dc..56d1bb7 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
@@ -1,5 +1,5 @@
/* _Float128 overrides for float128 in ppc64le multiarch env.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -78,6 +78,7 @@ F128_REDIR (__ldexpf128);
F128_REDIR (__cargf128);
F128_REDIR (__cimagf128);
F128_REDIR (__crealf128);
+F128_REDIR (__compoundnf128);
F128_REDIR (__conjf128);
F128_REDIR (__cprojf128);
F128_REDIR (__cabsf128);
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/w_ilogb.c b/sysdeps/powerpc/powerpc64/le/fpu/w_ilogb.c
new file mode 100644
index 0000000..9c26217
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/fpu/w_ilogb.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-double.h>
+#include <w_ilogb_template.c>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/w_ilogbf.c b/sysdeps/powerpc/powerpc64/le/fpu/w_ilogbf.c
new file mode 100644
index 0000000..047ad4b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/fpu/w_ilogbf.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-float.h>
+#include <w_ilogb_template.c>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/w_llogb.c b/sysdeps/powerpc/powerpc64/le/fpu/w_llogb.c
new file mode 100644
index 0000000..5e8891a
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/fpu/w_llogb.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-double.h>
+#include <w_llogb_template.c>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/w_llogbf.c b/sysdeps/powerpc/powerpc64/le/fpu/w_llogbf.c
new file mode 100644
index 0000000..edb7e9a
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/fpu/w_llogbf.c
@@ -0,0 +1,2 @@
+#include <math-type-macros-float.h>
+#include <w_llogb_template.c>
diff --git a/sysdeps/powerpc/powerpc64/le/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/powerpc/powerpc64/le/multiarch/dl-symbol-redir-ifunc.h
index 489b6e3..93276e1 100644
--- a/sysdeps/powerpc/powerpc64/le/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/powerpc/powerpc64/le/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,5 +20,6 @@
#define _DL_IFUNC_GENERIC_H
asm ("memset = __memset_power8");
+asm ("__mempcpy = __mempcpy_power7");
#endif
diff --git a/sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c b/sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c
index 120a168..9d3c8e9 100644
--- a/sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c
+++ b/sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c
@@ -1,5 +1,5 @@
/* File to generate desired .gnu.attribute section
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memchr.S b/sysdeps/powerpc/powerpc64/le/power10/memchr.S
deleted file mode 100644
index 53e5716..0000000
--- a/sysdeps/powerpc/powerpc64/le/power10/memchr.S
+++ /dev/null
@@ -1,315 +0,0 @@
-/* Optimized memchr implementation for POWER10 LE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-# ifndef MEMCHR
-# define MEMCHR __memchr
-# endif
-# define M_VREG_ZERO v20
-# define M_OFF_START_LOOP 256
-# define MEMCHR_SUBTRACT_VECTORS \
- vsububm v4,v4,v18; \
- vsububm v5,v5,v18; \
- vsububm v6,v6,v18; \
- vsububm v7,v7,v18;
-# define M_TAIL(vreg,increment) \
- vctzlsbb r4,vreg; \
- cmpld r5,r4; \
- ble L(null); \
- addi r4,r4,increment; \
- add r3,r6,r4; \
- blr
-
-/* TODO: Replace macros by the actual instructions when minimum binutils becomes
- >= 2.35. This is used to keep compatibility with older versions. */
-#define M_VEXTRACTBM(rt,vrb) \
- .long(((4)<<(32-6)) \
- | ((rt)<<(32-11)) \
- | ((8)<<(32-16)) \
- | ((vrb)<<(32-21)) \
- | 1602)
-
-#define M_LXVP(xtp,dq,ra) \
- .long(((6)<<(32-6)) \
- | ((((xtp)-32)>>1)<<(32-10)) \
- | ((1)<<(32-11)) \
- | ((ra)<<(32-16)) \
- | dq)
-
-#define CHECK16B(vreg,offset,addr,label) \
- lxv vreg+32,offset(addr); \
- vcmpequb. vreg,vreg,v18; \
- bne cr6,L(label); \
- cmpldi r5,16; \
- ble L(null); \
- addi r5,r5,-16;
-
-/* Load 4 quadwords, merge into one VR for speed and check for NULLs. r6 has #
- of bytes already checked. */
-#define CHECK64B(offset,addr,label) \
- M_LXVP(v4+32,offset,addr); \
- M_LXVP(v6+32,offset+32,addr); \
- MEMCHR_SUBTRACT_VECTORS; \
- vminub v14,v4,v5; \
- vminub v15,v6,v7; \
- vminub v16,v14,v15; \
- vcmpequb. v0,v16,M_VREG_ZERO; \
- beq cr6,$+12; \
- li r7,offset; \
- b L(label); \
- cmpldi r5,64; \
- ble L(null); \
- addi r5,r5,-64
-
-/* Implements the function
- void *[r3] memchr (const void *s [r3], int c [r4], size_t n [r5]). */
-
- .machine power9
-
-ENTRY_TOCLESS (MEMCHR)
- CALL_MCOUNT 3
-
- cmpldi r5,0
- beq L(null)
- mr r0,r5
- xori r6,r4,0xff
-
- mtvsrd v18+32,r4 /* matching char in v18 */
- mtvsrd v19+32,r6 /* non matching char in v19 */
-
- vspltb v18,v18,7 /* replicate */
- vspltb v19,v19,7 /* replicate */
- vspltisb M_VREG_ZERO,0
-
- /* Next 16B-aligned address. Prepare address for L(aligned). */
- addi r6,r3,16
- clrrdi r6,r6,4
-
- /* Align data and fill bytes not loaded with non matching char. */
- lvx v0,0,r3
- lvsr v1,0,r3
- vperm v0,v19,v0,v1
-
- vcmpequb. v6,v0,v18
- bne cr6,L(found)
- sub r4,r6,r3
- cmpld r5,r4
- ble L(null)
- sub r5,r5,r4
-
- /* Test up to OFF_START_LOOP-16 bytes in 16B chunks. The main loop is
- optimized for longer strings, so checking the first bytes in 16B
- chunks benefits a lot small strings. */
- .p2align 5
-L(aligned):
- cmpldi r5,0
- beq L(null)
-
- CHECK16B(v0,0,r6,tail1)
- CHECK16B(v1,16,r6,tail2)
- CHECK16B(v2,32,r6,tail3)
- CHECK16B(v3,48,r6,tail4)
- CHECK16B(v4,64,r6,tail5)
- CHECK16B(v5,80,r6,tail6)
- CHECK16B(v6,96,r6,tail7)
- CHECK16B(v7,112,r6,tail8)
- CHECK16B(v8,128,r6,tail9)
- CHECK16B(v9,144,r6,tail10)
- CHECK16B(v10,160,r6,tail11)
- CHECK16B(v0,176,r6,tail12)
- CHECK16B(v1,192,r6,tail13)
- CHECK16B(v2,208,r6,tail14)
- CHECK16B(v3,224,r6,tail15)
-
- cmpdi cr5,r4,0 /* Check if c == 0. This will be useful to
- choose how we will perform the main loop. */
-
- /* Prepare address for the loop. */
- addi r4,r3,M_OFF_START_LOOP
- clrrdi r4,r4,6
- sub r6,r4,r3
- sub r5,r0,r6
- addi r6,r4,128
-
- /* If c == 0, use the loop without the vsububm. */
- beq cr5,L(loop)
-
- /* This is very similar to the block after L(loop), the difference is
- that here MEMCHR_SUBTRACT_VECTORS is not empty, and we subtract
- each byte loaded by the char we are looking for, this way we can keep
- using vminub to merge the results and checking for nulls. */
- .p2align 5
-L(memchr_loop):
- CHECK64B(0,r4,pre_tail_64b)
- CHECK64B(64,r4,pre_tail_64b)
- addi r4,r4,256
-
- CHECK64B(0,r6,tail_64b)
- CHECK64B(64,r6,tail_64b)
- addi r6,r6,256
-
- CHECK64B(0,r4,pre_tail_64b)
- CHECK64B(64,r4,pre_tail_64b)
- addi r4,r4,256
-
- CHECK64B(0,r6,tail_64b)
- CHECK64B(64,r6,tail_64b)
- addi r6,r6,256
-
- b L(memchr_loop)
- /* Switch to a more aggressive approach checking 64B each time. Use 2
- pointers 128B apart and unroll the loop once to make the pointer
- updates and usages separated enough to avoid stalls waiting for
- address calculation. */
- .p2align 5
-L(loop):
-#undef MEMCHR_SUBTRACT_VECTORS
-#define MEMCHR_SUBTRACT_VECTORS /* nothing */
- CHECK64B(0,r4,pre_tail_64b)
- CHECK64B(64,r4,pre_tail_64b)
- addi r4,r4,256
-
- CHECK64B(0,r6,tail_64b)
- CHECK64B(64,r6,tail_64b)
- addi r6,r6,256
-
- CHECK64B(0,r4,pre_tail_64b)
- CHECK64B(64,r4,pre_tail_64b)
- addi r4,r4,256
-
- CHECK64B(0,r6,tail_64b)
- CHECK64B(64,r6,tail_64b)
- addi r6,r6,256
-
- b L(loop)
-
- .p2align 5
-L(pre_tail_64b):
- mr r6,r4
-L(tail_64b):
- /* OK, we found a null byte. Let's look for it in the current 64-byte
- block and mark it in its corresponding VR. lxvp vx,0(ry) puts the
- low 16B bytes into vx+1, and the high into vx, so the order here is
- v5, v4, v7, v6. */
- vcmpequb v1,v5,M_VREG_ZERO
- vcmpequb v2,v4,M_VREG_ZERO
- vcmpequb v3,v7,M_VREG_ZERO
- vcmpequb v4,v6,M_VREG_ZERO
-
- /* Take into account the other 64B blocks we had already checked. */
- add r6,r6,r7
- /* Extract first bit of each byte. */
- M_VEXTRACTBM(r8,v1)
- M_VEXTRACTBM(r9,v2)
- M_VEXTRACTBM(r10,v3)
- M_VEXTRACTBM(r11,v4)
-
- /* Shift each value into their corresponding position. */
- sldi r9,r9,16
- sldi r10,r10,32
- sldi r11,r11,48
-
- /* Merge the results. */
- or r8,r8,r9
- or r9,r10,r11
- or r11,r9,r8
-
- cnttzd r0,r11 /* Count trailing zeros before the match. */
- cmpld r5,r0
- ble L(null)
- add r3,r6,r0 /* Compute final address. */
- blr
-
- .p2align 5
-L(tail1):
- M_TAIL(v0,0)
-
- .p2align 5
-L(tail2):
- M_TAIL(v1,16)
-
- .p2align 5
-L(tail3):
- M_TAIL(v2,32)
-
- .p2align 5
-L(tail4):
- M_TAIL(v3,48)
-
- .p2align 5
-L(tail5):
- M_TAIL(v4,64)
-
- .p2align 5
-L(tail6):
- M_TAIL(v5,80)
-
- .p2align 5
-L(tail7):
- M_TAIL(v6,96)
-
- .p2align 5
-L(tail8):
- M_TAIL(v7,112)
-
- .p2align 5
-L(tail9):
- M_TAIL(v8,128)
-
- .p2align 5
-L(tail10):
- M_TAIL(v9,144)
-
- .p2align 5
-L(tail11):
- M_TAIL(v10,160)
-
- .p2align 5
-L(tail12):
- M_TAIL(v0,176)
-
- .p2align 5
-L(tail13):
- M_TAIL(v1,192)
-
- .p2align 5
-L(tail14):
- M_TAIL(v2,208)
-
- .p2align 5
-L(tail15):
- M_TAIL(v3,224)
-
- .p2align 5
-L(found):
- vctzlsbb r7,v6
- cmpld r5,r7
- ble L(null)
- add r3,r3,r7
- blr
-
- .p2align 5
-L(null):
- li r3,0
- blr
-
-END (MEMCHR)
-
-weak_alias (__memchr, memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
index 9512d51..734bf5f 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,26 +18,10 @@
#include <sysdep.h>
-/* TODO: Replace macros by the actual instructions when minimum binutils becomes
- >= 2.35. This is used to keep compatibility with older versions. */
-#define VEXTRACTBM(rt,vrb) \
- .long(((4)<<(32-6)) \
- | ((rt)<<(32-11)) \
- | ((8)<<(32-16)) \
- | ((vrb)<<(32-21)) \
- | 1602)
-
-#define LXVP(xtp,dq,ra) \
- .long(((6)<<(32-6)) \
- | ((((xtp)-32)>>1)<<(32-10)) \
- | ((1)<<(32-11)) \
- | ((ra)<<(32-16)) \
- | dq)
-
/* Compare 32 bytes. */
#define COMPARE_32(vr1,vr2,offset,tail_1,tail_2)\
- LXVP(32+vr1,offset,r3); \
- LXVP(32+vr2,offset,r4); \
+ lxvp 32+vr1,offset(r3); \
+ lxvp 32+vr2,offset(r4); \
vcmpneb. v5,vr1+1,vr2+1; \
bne cr6,L(tail_2); \
vcmpneb. v4,vr1,vr2; \
@@ -56,7 +40,7 @@
#ifndef MEMCMP
# define MEMCMP memcmp
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMCMP, 4)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memcpy.S b/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
index a00d55c..f2a503e 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@
/* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
Returns 'dst'. */
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMCPY, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memmove.S b/sysdeps/powerpc/powerpc64/le/power10/memmove.S
index 2689ea8..4aaa1ef 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memmove.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memmove.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@
#ifndef MEMMOVE
# define MEMMOVE memmove
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMMOVE, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/memset.S b/sysdeps/powerpc/powerpc64/le/power10/memset.S
index e79ea3c..f9442e7 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/memset.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for POWER10 LE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
# define MEMSET memset
#endif
- .machine power9
+ .machine power10
ENTRY_TOCLESS (MEMSET, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/le/power10/rawmemchr.S b/sysdeps/powerpc/powerpc64/le/power10/rawmemchr.S
index fc90ebd..cf03a69 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for POWER10 LE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S
deleted file mode 100644
index f0d6732..0000000
--- a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Optimized strcmp implementation for PowerPC64/POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-#include <sysdep.h>
-
-#ifndef STRCMP
-# define STRCMP strcmp
-#endif
-
-/* Implements the function
- int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]). */
-
-/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-
-#define LXVP(xtp,dq,ra) \
- .long(((6)<<(32-6)) \
- | ((((xtp)-32)>>1)<<(32-10)) \
- | ((1)<<(32-11)) \
- | ((ra)<<(32-16)) \
- | dq)
-
-#define COMPARE_16(vreg1,vreg2,offset) \
- lxv vreg1+32,offset(r3); \
- lxv vreg2+32,offset(r4); \
- vcmpnezb. v7,vreg1,vreg2; \
- bne cr6,L(different); \
-
-#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \
- LXVP(vreg1+32,offset,r3); \
- LXVP(vreg2+32,offset,r4); \
- vcmpnezb. v7,vreg1+1,vreg2+1; \
- bne cr6,L(label1); \
- vcmpnezb. v7,vreg1,vreg2; \
- bne cr6,L(label2); \
-
-#define TAIL(vreg1,vreg2) \
- vctzlsbb r6,v7; \
- vextubrx r5,r6,vreg1; \
- vextubrx r4,r6,vreg2; \
- subf r3,r4,r5; \
- blr; \
-
-#define CHECK_N_BYTES(reg1,reg2,len_reg) \
- sldi r0,len_reg,56; \
- lxvl 32+v4,reg1,r0; \
- lxvl 32+v5,reg2,r0; \
- add reg1,reg1,len_reg; \
- add reg2,reg2,len_reg; \
- vcmpnezb v7,v4,v5; \
- vctzlsbb r6,v7; \
- cmpld cr7,r6,len_reg; \
- blt cr7,L(different); \
-
- /* TODO: change this to .machine power10 when the minimum required
- binutils allows it. */
-
- .machine power9
-ENTRY_TOCLESS (STRCMP, 4)
- andi. r7,r3,4095
- andi. r8,r4,4095
- cmpldi cr0,r7,4096-16
- cmpldi cr1,r8,4096-16
- bgt cr0,L(crosses)
- bgt cr1,L(crosses)
- COMPARE_16(v4,v5,0)
-
-L(crosses):
- andi. r7,r3,15
- subfic r7,r7,16 /* r7(nalign1) = 16 - (str1 & 15). */
- andi. r9,r4,15
- subfic r5,r9,16 /* r5(nalign2) = 16 - (str2 & 15). */
- cmpld cr7,r7,r5
- beq cr7,L(same_aligned)
- blt cr7,L(nalign1_min)
-
- /* nalign2 is minimum and s2 pointer is aligned. */
- CHECK_N_BYTES(r3,r4,r5)
- /* Are we on the 64B hunk which crosses a page? */
- andi. r10,r3,63 /* Determine offset into 64B hunk. */
- andi. r8,r3,15 /* The offset into the 16B hunk. */
- neg r7,r3
- andi. r9,r7,15 /* Number of bytes after a 16B cross. */
- rlwinm. r7,r7,26,0x3F /* ((r3-4096))>>6&63. */
- beq L(compare_64_pagecross)
- mtctr r7
- b L(compare_64B_unaligned)
-
- /* nalign1 is minimum and s1 pointer is aligned. */
-L(nalign1_min):
- CHECK_N_BYTES(r3,r4,r7)
- /* Are we on the 64B hunk which crosses a page? */
- andi. r10,r4,63 /* Determine offset into 64B hunk. */
- andi. r8,r4,15 /* The offset into the 16B hunk. */
- neg r7,r4
- andi. r9,r7,15 /* Number of bytes after a 16B cross. */
- rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */
- beq L(compare_64_pagecross)
- mtctr r7
-
- .p2align 5
-L(compare_64B_unaligned):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- bdnz L(compare_64B_unaligned)
-
- /* Cross the page boundary of s2, carefully. Only for first
- iteration we have to get the count of 64B blocks to be checked.
- From second iteration and beyond, loop counter is always 63. */
-L(compare_64_pagecross):
- li r11, 63
- mtctr r11
- cmpldi r10,16
- ble L(cross_4)
- cmpldi r10,32
- ble L(cross_3)
- cmpldi r10,48
- ble L(cross_2)
-L(cross_1):
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- addi r3,r3,48
- addi r4,r4,48
- b L(compare_64B_unaligned)
-L(cross_2):
- COMPARE_16(v4,v5,0)
- addi r3,r3,16
- addi r4,r4,16
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- addi r3,r3,32
- addi r4,r4,32
- b L(compare_64B_unaligned)
-L(cross_3):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- addi r3,r3,32
- addi r4,r4,32
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- addi r3,r3,16
- addi r4,r4,16
- b L(compare_64B_unaligned)
-L(cross_4):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- addi r3,r3,48
- addi r4,r4,48
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- b L(compare_64B_unaligned)
-
-L(same_aligned):
- CHECK_N_BYTES(r3,r4,r7)
- /* Align s1 to 32B and adjust s2 address.
- Use lxvp only if both s1 and s2 are 32B aligned. */
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
-
- clrldi r6,r3,59
- subfic r5,r6,32
- add r3,r3,r5
- add r4,r4,r5
- andi. r5,r4,0x1F
- beq cr0,L(32B_aligned_loop)
-
- .p2align 5
-L(16B_aligned_loop):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- b L(16B_aligned_loop)
-
- /* Calculate and return the difference. */
-L(different):
- TAIL(v4,v5)
-
- .p2align 5
-L(32B_aligned_loop):
- COMPARE_32(v14,v16,0,tail1,tail2)
- COMPARE_32(v18,v20,32,tail3,tail4)
- COMPARE_32(v22,v24,64,tail5,tail6)
- COMPARE_32(v26,v28,96,tail7,tail8)
- addi r3,r3,128
- addi r4,r4,128
- b L(32B_aligned_loop)
-
-L(tail1): TAIL(v15,v17)
-L(tail2): TAIL(v14,v16)
-L(tail3): TAIL(v19,v21)
-L(tail4): TAIL(v18,v20)
-L(tail5): TAIL(v23,v25)
-L(tail6): TAIL(v22,v24)
-L(tail7): TAIL(v27,v29)
-L(tail8): TAIL(v26,v28)
-
-END (STRCMP)
-libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/powerpc/powerpc64/le/power10/strlen.S b/sysdeps/powerpc/powerpc64/le/power10/strlen.S
index 0bd7945..ec644d5 100644
--- a/sysdeps/powerpc/powerpc64/le/power10/strlen.S
+++ b/sysdeps/powerpc/powerpc64/le/power10/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for POWER10 LE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -63,22 +63,6 @@
blr
#endif /* USE_AS_RAWMEMCHR */
-/* TODO: Replace macros by the actual instructions when minimum binutils becomes
- >= 2.35. This is used to keep compatibility with older versions. */
-#define VEXTRACTBM(rt,vrb) \
- .long(((4)<<(32-6)) \
- | ((rt)<<(32-11)) \
- | ((8)<<(32-16)) \
- | ((vrb)<<(32-21)) \
- | 1602)
-
-#define LXVP(xtp,dq,ra) \
- .long(((6)<<(32-6)) \
- | ((((xtp)-32)>>1)<<(32-10)) \
- | ((1)<<(32-11)) \
- | ((ra)<<(32-16)) \
- | dq)
-
#define CHECK16(vreg,offset,addr,label) \
lxv vreg+32,offset(addr); \
vcmpequb. vreg,vreg,v18; \
@@ -88,8 +72,8 @@
of bytes already checked. */
#define CHECK64(offset,addr,label) \
li r6,offset; \
- LXVP(v4+32,offset,addr); \
- LXVP(v6+32,offset+32,addr); \
+ lxvp v4+32,offset(addr); \
+ lxvp v6+32,offset+32(addr); \
RAWMEMCHR_SUBTRACT_VECTORS; \
vminub v14,v4,v5; \
vminub v15,v6,v7; \
@@ -108,7 +92,7 @@
The implementation can load bytes past a matching byte, but only
up to the next 64B boundary, so it never crosses a page. */
-.machine power9
+.machine power10
ENTRY_TOCLESS (FUNCNAME, 4)
CALL_MCOUNT MCOUNT_NARGS
@@ -234,10 +218,10 @@ L(tail_64b):
add r5,r5,r6
/* Extract first bit of each byte. */
- VEXTRACTBM(r7,v1)
- VEXTRACTBM(r8,v2)
- VEXTRACTBM(r9,v3)
- VEXTRACTBM(r10,v4)
+ vextractbm r7,v1
+ vextractbm r8,v2
+ vextractbm r9,v3
+ vextractbm r10,v4
/* Shift each value into their corresponding position. */
sldi r8,r8,16
diff --git a/sysdeps/powerpc/powerpc64/le/power10/strncmp.S b/sysdeps/powerpc/powerpc64/le/power10/strncmp.S
deleted file mode 100644
index d4ba76a..0000000
--- a/sysdeps/powerpc/powerpc64/le/power10/strncmp.S
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Optimized strncmp implementation for PowerPC64/POWER10.
- Copyright (C) 2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* Implements the function
-
- int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t [r5] n)
-
- The implementation uses unaligned doubleword access to avoid specialized
- code paths depending of data alignment for first 32 bytes and uses
- vectorised loops after that. */
-
-#ifndef STRNCMP
-# define STRNCMP strncmp
-#endif
-
-/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-
-#define LXVP(xtp,dq,ra) \
- .long(((6)<<(32-6)) \
- | ((((xtp)-32)>>1)<<(32-10)) \
- | ((1)<<(32-11)) \
- | ((ra)<<(32-16)) \
- | dq)
-
-#define COMPARE_16(vreg1,vreg2,offset) \
- lxv vreg1+32,offset(r3); \
- lxv vreg2+32,offset(r4); \
- vcmpnezb. v7,vreg1,vreg2; \
- bne cr6,L(different); \
- cmpldi cr7,r5,16; \
- ble cr7,L(ret0); \
- addi r5,r5,-16;
-
-#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \
- LXVP(vreg1+32,offset,r3); \
- LXVP(vreg2+32,offset,r4); \
- vcmpnezb. v7,vreg1+1,vreg2+1; \
- bne cr6,L(label1); \
- vcmpnezb. v7,vreg1,vreg2; \
- bne cr6,L(label2); \
- cmpldi cr7,r5,32; \
- ble cr7,L(ret0); \
- addi r5,r5,-32;
-
-#define TAIL_FIRST_16B(vreg1,vreg2) \
- vctzlsbb r6,v7; \
- cmpld cr7,r5,r6; \
- ble cr7,L(ret0); \
- vextubrx r5,r6,vreg1; \
- vextubrx r4,r6,vreg2; \
- subf r3,r4,r5; \
- blr;
-
-#define TAIL_SECOND_16B(vreg1,vreg2) \
- vctzlsbb r6,v7; \
- addi r0,r6,16; \
- cmpld cr7,r5,r0; \
- ble cr7,L(ret0); \
- vextubrx r5,r6,vreg1; \
- vextubrx r4,r6,vreg2; \
- subf r3,r4,r5; \
- blr;
-
-#define CHECK_N_BYTES(reg1,reg2,len_reg) \
- sldi r6,len_reg,56; \
- lxvl 32+v4,reg1,r6; \
- lxvl 32+v5,reg2,r6; \
- add reg1,reg1,len_reg; \
- add reg2,reg2,len_reg; \
- vcmpnezb v7,v4,v5; \
- vctzlsbb r6,v7; \
- cmpld cr7,r6,len_reg; \
- blt cr7,L(different); \
- cmpld cr7,r5,len_reg; \
- ble cr7,L(ret0); \
- sub r5,r5,len_reg; \
-
- /* TODO: change this to .machine power10 when the minimum required
- binutils allows it. */
- .machine power9
-ENTRY_TOCLESS (STRNCMP, 4)
- /* Check if size is 0. */
- cmpdi cr0,r5,0
- beq cr0,L(ret0)
- andi. r7,r3,4095
- andi. r8,r4,4095
- cmpldi cr0,r7,4096-16
- cmpldi cr1,r8,4096-16
- bgt cr0,L(crosses)
- bgt cr1,L(crosses)
- COMPARE_16(v4,v5,0)
- addi r3,r3,16
- addi r4,r4,16
-
-L(crosses):
- andi. r7,r3,15
- subfic r7,r7,16 /* r7(nalign1) = 16 - (str1 & 15). */
- andi. r9,r4,15
- subfic r8,r9,16 /* r8(nalign2) = 16 - (str2 & 15). */
- cmpld cr7,r7,r8
- beq cr7,L(same_aligned)
- blt cr7,L(nalign1_min)
-
- /* nalign2 is minimum and s2 pointer is aligned. */
- CHECK_N_BYTES(r3,r4,r8)
- /* Are we on the 64B hunk which crosses a page? */
- andi. r10,r3,63 /* Determine offset into 64B hunk. */
- andi. r8,r3,15 /* The offset into the 16B hunk. */
- neg r7,r3
- andi. r9,r7,15 /* Number of bytes after a 16B cross. */
- rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */
- beq L(compare_64_pagecross)
- mtctr r7
- b L(compare_64B_unaligned)
-
- /* nalign1 is minimum and s1 pointer is aligned. */
-L(nalign1_min):
- CHECK_N_BYTES(r3,r4,r7)
- /* Are we on the 64B hunk which crosses a page? */
- andi. r10,r4,63 /* Determine offset into 64B hunk. */
- andi. r8,r4,15 /* The offset into the 16B hunk. */
- neg r7,r4
- andi. r9,r7,15 /* Number of bytes after a 16B cross. */
- rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */
- beq L(compare_64_pagecross)
- mtctr r7
-
- .p2align 5
-L(compare_64B_unaligned):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- bdnz L(compare_64B_unaligned)
-
- /* Cross the page boundary of s2, carefully. Only for first
- iteration we have to get the count of 64B blocks to be checked.
- From second iteration and beyond, loop counter is always 63. */
-L(compare_64_pagecross):
- li r11, 63
- mtctr r11
- cmpldi r10,16
- ble L(cross_4)
- cmpldi r10,32
- ble L(cross_3)
- cmpldi r10,48
- ble L(cross_2)
-L(cross_1):
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- addi r3,r3,48
- addi r4,r4,48
- b L(compare_64B_unaligned)
-L(cross_2):
- COMPARE_16(v4,v5,0)
- addi r3,r3,16
- addi r4,r4,16
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- addi r3,r3,32
- addi r4,r4,32
- b L(compare_64B_unaligned)
-L(cross_3):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- addi r3,r3,32
- addi r4,r4,32
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- COMPARE_16(v4,v5,0)
- addi r3,r3,16
- addi r4,r4,16
- b L(compare_64B_unaligned)
-L(cross_4):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- addi r3,r3,48
- addi r4,r4,48
- CHECK_N_BYTES(r3,r4,r9)
- CHECK_N_BYTES(r3,r4,r8)
- b L(compare_64B_unaligned)
-
-L(same_aligned):
- CHECK_N_BYTES(r3,r4,r7)
- /* Align s1 to 32B and adjust s2 address.
- Use lxvp only if both s1 and s2 are 32B aligned. */
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- addi r5,r5,32
-
- clrldi r6,r3,59
- subfic r7,r6,32
- add r3,r3,r7
- add r4,r4,r7
- subf r5,r7,r5
- andi. r7,r4,0x1F
- beq cr0,L(32B_aligned_loop)
-
- .p2align 5
-L(16B_aligned_loop):
- COMPARE_16(v4,v5,0)
- COMPARE_16(v4,v5,16)
- COMPARE_16(v4,v5,32)
- COMPARE_16(v4,v5,48)
- addi r3,r3,64
- addi r4,r4,64
- b L(16B_aligned_loop)
-
- /* Calculate and return the difference. */
-L(different):
- TAIL_FIRST_16B(v4,v5)
-
- .p2align 5
-L(32B_aligned_loop):
- COMPARE_32(v14,v16,0,tail1,tail2)
- COMPARE_32(v18,v20,32,tail3,tail4)
- COMPARE_32(v22,v24,64,tail5,tail6)
- COMPARE_32(v26,v28,96,tail7,tail8)
- addi r3,r3,128
- addi r4,r4,128
- b L(32B_aligned_loop)
-
-L(tail1): TAIL_FIRST_16B(v15,v17)
-L(tail2): TAIL_SECOND_16B(v14,v16)
-L(tail3): TAIL_FIRST_16B(v19,v21)
-L(tail4): TAIL_SECOND_16B(v18,v20)
-L(tail5): TAIL_FIRST_16B(v23,v25)
-L(tail6): TAIL_SECOND_16B(v22,v24)
-L(tail7): TAIL_FIRST_16B(v27,v29)
-L(tail8): TAIL_SECOND_16B(v26,v28)
-
- .p2align 5
-L(ret0):
- li r3,0
- blr
-
-END(STRNCMP)
-libc_hidden_builtin_def(strncmp)
diff --git a/sysdeps/powerpc/powerpc64/le/power9/rawmemchr.S b/sysdeps/powerpc/powerpc64/le/power9/rawmemchr.S
index 0f8f67d..4d3dc44 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER9.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power9/stpcpy.S b/sysdeps/powerpc/powerpc64/le/power9/stpcpy.S
index 5967166..a2955f0 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/stpcpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/stpcpy.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for PowerPC64/POWER9.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power9/stpncpy.S b/sysdeps/powerpc/powerpc64/le/power9/stpncpy.S
index 7466ba7..04b3e73 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/stpncpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/stpncpy.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER9 LE.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strcmp.S b/sysdeps/powerpc/powerpc64/le/power9/strcmp.S
index b416be5..f0cde81 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64/POWER9.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,21 +28,6 @@
The implementation uses unaligned doubleword access for first 32 bytes
as in POWER8 patch and uses vectorised loops after that. */
-/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-#define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
-
-#define VEXTUBRX(t,a,b) .long (0x1000070d \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
-#define VCMPNEZB(t,a,b) .long (0x10000507 \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
/* Get 16 bytes for unaligned case.
reg1: Vector to hold next 16 bytes.
reg2: Address to read from.
@@ -61,10 +46,7 @@
2: \
vperm reg1, v9, reg1, reg3;
-/* TODO: change this to .machine power9 when the minimum required binutils
- allows it. */
-
- .machine power7
+ .machine power9
ENTRY_TOCLESS (STRCMP, 4)
li r0, 0
@@ -116,7 +98,7 @@ L(align):
/* Both s1 and s2 are unaligned. */
GET16BYTES(v4, r7, v10)
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
beq cr6, L(match)
b L(different)
@@ -136,28 +118,28 @@ L(match):
L(s1_align):
lvx v4, r7, r0
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, r7, r0
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, r7, r0
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, r7, r0
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
beq cr6, L(s1_align)
@@ -167,37 +149,37 @@ L(s1_align):
L(aligned):
lvx v4, 0, r7
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, 0, r7
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, 0, r7
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
bne cr6, L(different)
lvx v4, 0, r7
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
addi r7, r7, 16
addi r4, r4, 16
beq cr6, L(aligned)
/* Calculate and return the difference. */
L(different):
- VCTZLSBB(r6, v7)
- VEXTUBRX(r5, r6, v4)
- VEXTUBRX(r4, r6, v5)
+ vctzlsbb r6, v7
+ vextubrx r5, r6, v4
+ vextubrx r4, r6, v5
subf r3, r4, r5
extsw r3, r3
blr
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strcpy.S b/sysdeps/powerpc/powerpc64/le/power9/strcpy.S
index 603bde1..953a96c 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strcpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for PowerPC64/POWER9.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,22 +42,48 @@
if USE_AS_STPCPY is defined.
- The implementation can load bytes past a null terminator, but only
- up to the next 16B boundary, so it never crosses a page. */
+ This implementation never reads across a page boundary, but may
+ read beyond the NUL terminator. */
-/* Load quadword at addr+offset to vreg, check for null bytes,
+/* Load 4 quadwords, merge into one VR for speed and check for NUL
+ and branch to label if NUL is found. */
+#define CHECK_64B(offset,addr,label) \
+ lxv 32+v4,(offset+0)(addr); \
+ lxv 32+v5,(offset+16)(addr); \
+ lxv 32+v6,(offset+32)(addr); \
+ lxv 32+v7,(offset+48)(addr); \
+ vminub v14,v4,v5; \
+ vminub v15,v6,v7; \
+ vminub v16,v14,v15; \
+ vcmpequb. v0,v16,v18; \
+ beq cr6,$+12; \
+ li r7,offset; \
+ b L(label); \
+ stxv 32+v4,(offset+0)(r11); \
+ stxv 32+v5,(offset+16)(r11); \
+ stxv 32+v6,(offset+32)(r11); \
+ stxv 32+v7,(offset+48)(r11)
+
+/* Load quadword at addr+offset to vreg, check for NUL bytes,
and branch to label if any are found. */
-#define CHECK16(vreg,offset,addr,label) \
- lxv vreg+32,offset(addr); \
- vcmpequb. v6,vreg,v18; \
+#define CHECK_16B(vreg,offset,addr,label) \
+ lxv vreg+32,offset(addr); \
+ vcmpequb. v15,vreg,v18; \
bne cr6,L(label);
-.machine power9
+/* Store vreg2 with length if NUL is found. */
+#define STORE_WITH_LEN(vreg1,vreg2,reg) \
+ vctzlsbb r8,vreg1; \
+ addi r9,r8,1; \
+ sldi r9,r9,56; \
+ stxvl 32+vreg2,reg,r9;
+
+.machine power9
ENTRY_TOCLESS (FUNC_NAME, 4)
CALL_MCOUNT 2
- vspltisb v18,0 /* Zeroes in v18 */
- vspltisb v19,-1 /* 0xFF bytes in v19 */
+ vspltisb v18,0 /* Zeroes in v18. */
+ vspltisb v19,-1 /* 0xFF bytes in v19. */
/* Next 16B-aligned address. Prepare address for L(loop). */
addi r5,r4,16
@@ -70,14 +96,11 @@ ENTRY_TOCLESS (FUNC_NAME, 4)
lvsr v1,0,r4
vperm v0,v19,v0,v1
- vcmpequb. v6,v0,v18 /* 0xff if byte is NULL, 0x00 otherwise */
+ vcmpequb. v6,v0,v18 /* 0xff if byte is NUL, 0x00 otherwise. */
beq cr6,L(no_null)
- /* There's a null byte. */
- vctzlsbb r8,v6 /* Number of trailing zeroes */
- addi r9,r8,1 /* Add null byte. */
- sldi r10,r9,56 /* stxvl wants size in top 8 bits. */
- stxvl 32+v0,r3,r10 /* Partial store */
+ /* There's a NUL byte. */
+ STORE_WITH_LEN(v6,v0,r3)
#ifdef USE_AS_STPCPY
/* stpcpy returns the dest address plus the size not counting the
@@ -87,17 +110,22 @@ ENTRY_TOCLESS (FUNC_NAME, 4)
blr
L(no_null):
- sldi r10,r8,56 /* stxvl wants size in top 8 bits */
- stxvl 32+v0,r3,r10 /* Partial store */
+ sldi r10,r8,56 /* stxvl wants size in top 8 bits. */
+ stxvl 32+v0,r3,r10 /* Partial store. */
+/* The main loop is optimized for longer strings(> 512 bytes),
+ so checking the first bytes in 16B chunks benefits shorter
+ strings a lot. */
.p2align 4
-L(loop):
- CHECK16(v0,0,r5,tail1)
- CHECK16(v1,16,r5,tail2)
- CHECK16(v2,32,r5,tail3)
- CHECK16(v3,48,r5,tail4)
- CHECK16(v4,64,r5,tail5)
- CHECK16(v5,80,r5,tail6)
+L(aligned):
+ CHECK_16B(v0,0,r5,tail1)
+ CHECK_16B(v1,16,r5,tail2)
+ CHECK_16B(v2,32,r5,tail3)
+ CHECK_16B(v3,48,r5,tail4)
+ CHECK_16B(v4,64,r5,tail5)
+ CHECK_16B(v5,80,r5,tail6)
+ CHECK_16B(v6,96,r5,tail7)
+ CHECK_16B(v7,112,r5,tail8)
stxv 32+v0,0(r11)
stxv 32+v1,16(r11)
@@ -105,21 +133,146 @@ L(loop):
stxv 32+v3,48(r11)
stxv 32+v4,64(r11)
stxv 32+v5,80(r11)
+ stxv 32+v6,96(r11)
+ stxv 32+v7,112(r11)
- addi r5,r5,96
- addi r11,r11,96
+ addi r11,r11,128
+
+ CHECK_16B(v0,128,r5,tail1)
+ CHECK_16B(v1,128+16,r5,tail2)
+ CHECK_16B(v2,128+32,r5,tail3)
+ CHECK_16B(v3,128+48,r5,tail4)
+ CHECK_16B(v4,128+64,r5,tail5)
+ CHECK_16B(v5,128+80,r5,tail6)
+ CHECK_16B(v6,128+96,r5,tail7)
+ CHECK_16B(v7,128+112,r5,tail8)
+
+ stxv 32+v0,0(r11)
+ stxv 32+v1,16(r11)
+ stxv 32+v2,32(r11)
+ stxv 32+v3,48(r11)
+ stxv 32+v4,64(r11)
+ stxv 32+v5,80(r11)
+ stxv 32+v6,96(r11)
+ stxv 32+v7,112(r11)
+
+ addi r11,r11,128
+
+ CHECK_16B(v0,256,r5,tail1)
+ CHECK_16B(v1,256+16,r5,tail2)
+ CHECK_16B(v2,256+32,r5,tail3)
+ CHECK_16B(v3,256+48,r5,tail4)
+ CHECK_16B(v4,256+64,r5,tail5)
+ CHECK_16B(v5,256+80,r5,tail6)
+ CHECK_16B(v6,256+96,r5,tail7)
+ CHECK_16B(v7,256+112,r5,tail8)
+
+ stxv 32+v0,0(r11)
+ stxv 32+v1,16(r11)
+ stxv 32+v2,32(r11)
+ stxv 32+v3,48(r11)
+ stxv 32+v4,64(r11)
+ stxv 32+v5,80(r11)
+ stxv 32+v6,96(r11)
+ stxv 32+v7,112(r11)
+
+ addi r11,r11,128
+
+ CHECK_16B(v0,384,r5,tail1)
+ CHECK_16B(v1,384+16,r5,tail2)
+ CHECK_16B(v2,384+32,r5,tail3)
+ CHECK_16B(v3,384+48,r5,tail4)
+ CHECK_16B(v4,384+64,r5,tail5)
+ CHECK_16B(v5,384+80,r5,tail6)
+ CHECK_16B(v6,384+96,r5,tail7)
+ CHECK_16B(v7,384+112,r5,tail8)
+
+ stxv 32+v0,0(r11)
+ stxv 32+v1,16(r11)
+ stxv 32+v2,32(r11)
+ stxv 32+v3,48(r11)
+ stxv 32+v4,64(r11)
+ stxv 32+v5,80(r11)
+ stxv 32+v6,96(r11)
+ stxv 32+v7,112(r11)
+
+ /* Align src pointer down to a 64B boundary. */
+ addi r5,r4,512
+ clrrdi r5,r5,6
+ subf r7,r4,r5
+ add r11,r3,r7
+
+/* Switch to a more aggressive approach checking 64B each time. */
+ .p2align 5
+L(strcpy_loop):
+ CHECK_64B(0,r5,tail_64b)
+ CHECK_64B(64,r5,tail_64b)
+ CHECK_64B(128,r5,tail_64b)
+ CHECK_64B(192,r5,tail_64b)
+
+ CHECK_64B(256,r5,tail_64b)
+ CHECK_64B(256+64,r5,tail_64b)
+ CHECK_64B(256+128,r5,tail_64b)
+ CHECK_64B(256+192,r5,tail_64b)
+ addi r5,r5,512
+ addi r11,r11,512
+
+ b L(strcpy_loop)
+
+ .p2align 5
+L(tail_64b):
+ /* OK, we found a NUL byte. Let's look for it in the current 64-byte
+ block and mark it in its corresponding VR. */
+ add r11,r11,r7
+ vcmpequb. v8,v4,v18
+ beq cr6,L(no_null_16B)
+ /* There's a NUL byte. */
+ STORE_WITH_LEN(v8,v4,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
+
+L(no_null_16B):
+ stxv 32+v4,0(r11)
+ vcmpequb. v8,v5,v18
+ beq cr6,L(no_null_32B)
+ /* There's a NUL byte. */
+ addi r11,r11,16
+ STORE_WITH_LEN(v8,v5,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
- b L(loop)
+L(no_null_32B):
+ stxv 32+v5,16(r11)
+ vcmpequb. v8,v6,v18
+ beq cr6,L(no_null_48B)
+ /* There's a NUL byte. */
+ addi r11,r11,32
+ STORE_WITH_LEN(v8,v6,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
+
+L(no_null_48B):
+ stxv 32+v6,32(r11)
+ vcmpequb. v8,v7,v18;
+ /* There's a NUL byte. */
+ addi r11,r11,48
+ STORE_WITH_LEN(v8,v7,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
.p2align 4
L(tail1):
- vctzlsbb r8,v6 /* Number of trailing zeroes */
- addi r9,r8,1 /* Add null terminator */
- sldi r9,r9,56 /* stxvl wants size in top 8 bits */
- stxvl 32+v0,r11,r9 /* Partial store */
+ /* There's a NUL byte. */
+ STORE_WITH_LEN(v15,v0,r11)
#ifdef USE_AS_STPCPY
- /* stpcpy returns the dest address plus the size not counting the
- final '\0'. */
add r3,r11,r8
#endif
blr
@@ -127,11 +280,9 @@ L(tail1):
.p2align 4
L(tail2):
stxv 32+v0,0(r11)
- vctzlsbb r8,v6
- addi r9,r8,1
- sldi r9,r9,56
+ /* There's a NUL byte. */
addi r11,r11,16
- stxvl 32+v1,r11,r9
+ STORE_WITH_LEN(v15,v1,r11)
#ifdef USE_AS_STPCPY
add r3,r11,r8
#endif
@@ -141,11 +292,8 @@ L(tail2):
L(tail3):
stxv 32+v0,0(r11)
stxv 32+v1,16(r11)
- vctzlsbb r8,v6
- addi r9,r8,1
- sldi r9,r9,56
addi r11,r11,32
- stxvl 32+v2,r11,r9
+ STORE_WITH_LEN(v15,v2,r11)
#ifdef USE_AS_STPCPY
add r3,r11,r8
#endif
@@ -156,11 +304,8 @@ L(tail4):
stxv 32+v0,0(r11)
stxv 32+v1,16(r11)
stxv 32+v2,32(r11)
- vctzlsbb r8,v6
- addi r9,r8,1
- sldi r9,r9,56
addi r11,r11,48
- stxvl 32+v3,r11,r9
+ STORE_WITH_LEN(v15,v3,r11)
#ifdef USE_AS_STPCPY
add r3,r11,r8
#endif
@@ -172,11 +317,8 @@ L(tail5):
stxv 32+v1,16(r11)
stxv 32+v2,32(r11)
stxv 32+v3,48(r11)
- vctzlsbb r8,v6
- addi r9,r8,1
- sldi r9,r9,56
addi r11,r11,64
- stxvl 32+v4,r11,r9
+ STORE_WITH_LEN(v15,v4,r11)
#ifdef USE_AS_STPCPY
add r3,r11,r8
#endif
@@ -189,11 +331,39 @@ L(tail6):
stxv 32+v2,32(r11)
stxv 32+v3,48(r11)
stxv 32+v4,64(r11)
- vctzlsbb r8,v6
- addi r9,r8,1
- sldi r9,r9,56
addi r11,r11,80
- stxvl 32+v5,r11,r9
+ STORE_WITH_LEN(v15,v5,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
+
+ .p2align 4
+L(tail7):
+ stxv 32+v0,0(r11)
+ stxv 32+v1,16(r11)
+ stxv 32+v2,32(r11)
+ stxv 32+v3,48(r11)
+ stxv 32+v4,64(r11)
+ stxv 32+v5,80(r11)
+ addi r11,r11,96
+ STORE_WITH_LEN(v15,v6,r11)
+#ifdef USE_AS_STPCPY
+ add r3,r11,r8
+#endif
+ blr
+
+ .p2align 4
+L(tail8):
+ stxv 32+v0,0(r11)
+ stxv 32+v1,16(r11)
+ stxv 32+v2,32(r11)
+ stxv 32+v3,48(r11)
+ stxv 32+v4,64(r11)
+ stxv 32+v5,80(r11)
+ stxv 32+v6,96(r11)
+ addi r11,r11,112
+ STORE_WITH_LEN(v15,v7,r11)
#ifdef USE_AS_STPCPY
add r3,r11,r8
#endif
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strlen.S b/sysdeps/powerpc/powerpc64/le/power9/strlen.S
index b84c7d7..f91e601 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strlen.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC64/POWER9.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strncmp.S b/sysdeps/powerpc/powerpc64/le/power9/strncmp.S
index 9dcd7da..5a25f94 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC64/POWER9.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,21 +29,6 @@
# define STRNCMP strncmp
#endif
-/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-#define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
-
-#define VEXTUBRX(t,a,b) .long (0x1000070d \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
-#define VCMPNEZB(t,a,b) .long (0x10000507 \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
/* Get 16 bytes for unaligned case.
reg1: Vector to hold next 16 bytes.
reg2: Address to read from.
@@ -64,9 +49,7 @@
2: \
vperm reg1, v9, reg1, reg3;
-/* TODO: change this to .machine power9 when minimum binutils
- is upgraded to 2.27. */
- .machine power7
+ .machine power9
ENTRY_TOCLESS (STRNCMP, 4)
/* Check if size is 0. */
cmpdi cr0, r5, 0
@@ -163,7 +146,7 @@ L(align):
clrldi r6, r3, 60
subfic r11, r6, 16
GET16BYTES(v4, r3, v10)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
beq cr6, L(match)
b L(different)
@@ -186,7 +169,7 @@ L(match):
L(s1_align):
lvx v4, 0, r3
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -196,7 +179,7 @@ L(s1_align):
lvx v4, 0, r3
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -206,7 +189,7 @@ L(s1_align):
lvx v4, 0, r3
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -216,7 +199,7 @@ L(s1_align):
lvx v4, 0, r3
GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -228,7 +211,7 @@ L(s1_align):
L(aligned):
lvx v4, 0, r3
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -238,7 +221,7 @@ L(aligned):
lvx v4, 0, r3
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -248,7 +231,7 @@ L(aligned):
lvx v4, 0, r3
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -258,7 +241,7 @@ L(aligned):
lvx v4, 0, r3
lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
+ vcmpnezb. v7, v5, v4
bne cr6, L(different)
cmpldi cr7, r5, 16
ble cr7, L(ret0)
@@ -268,11 +251,11 @@ L(aligned):
b L(aligned)
/* Calculate and return the difference. */
L(different):
- VCTZLSBB(r6, v7)
+ vctzlsbb r6, v7
cmplw cr7, r5, r6
ble cr7, L(ret0)
- VEXTUBRX(r5, r6, v4)
- VEXTUBRX(r4, r6, v5)
+ vextubrx r5, r6, v4
+ vextubrx r4, r6, v5
subf r3, r4, r5
extsw r3, r3
blr
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
index eccb2ff..19a2ed2 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER9 LE.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,7 +43,7 @@
# endif
#endif
-#define FRAMESIZE (FRAME_MIN_SIZE+8)
+#define FRAMESIZE (FRAME_MIN_SIZE+16)
/* Implements the function
@@ -365,8 +365,8 @@ L(zero_padding_end):
.align 4
L(zero_padding_memset):
- std r30,-8(r1) /* Save r30 on the stack. */
- cfi_offset(r30, -8)
+ std r30,-16(r1) /* Save r30 on the stack. */
+ cfi_offset(r30, -16)
mr r30,r3 /* Save the return value of strncpy. */
/* Prepare the call to memset. */
mr r3,r11 /* Pointer to the area to be zero-filled. */
@@ -380,6 +380,9 @@ L(zero_padding_memset):
mflr r0
std r0,16(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0,FRAME_ROP_SAVE(r1)
+#endif
/* Create the stack frame. */
stdu r1,-FRAMESIZE(r1)
cfi_adjust_cfa_offset(FRAMESIZE)
@@ -395,13 +398,16 @@ L(zero_padding_memset):
mr r3,r30 /* Restore the return value of strncpy, i.e.:
dest. For stpncpy, the return value is the
same as return value of memset. */
- ld r30,FRAMESIZE-8(r1) /* Restore r30. */
+ ld r30,FRAMESIZE-16(r1) /* Restore r30. */
/* Restore the stack frame. */
addi r1,r1,FRAMESIZE
cfi_adjust_cfa_offset(-FRAMESIZE)
/* Restore the link register. */
mtlr r0
cfi_restore(lr)
+#ifdef __ROP_PROTECT__
+ hashchk 0,FRAME_ROP_SAVE(r1)
+#endif
blr
END (FUNC_NAME)
diff --git a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
index 65d3e69..de3385c 100644
--- a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
+++ b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
@@ -1,5 +1,5 @@
/* glibc-hwcaps subdirectory test. powerpc64le version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/lshift.S b/sysdeps/powerpc/powerpc64/lshift.S
index 84ebb90..6ebfa6b 100644
--- a/sysdeps/powerpc/powerpc64/lshift.S
+++ b/sysdeps/powerpc/powerpc64/lshift.S
@@ -1,5 +1,5 @@
/* PowerPC64 mpn_lshift -- rp[] = up[] << cnt
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/memcpy.S b/sysdeps/powerpc/powerpc64/memcpy.S
index c82e230..4483b70 100644
--- a/sysdeps/powerpc/powerpc64/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/memset.S b/sysdeps/powerpc/powerpc64/memset.S
index 4a290c4..a335406 100644
--- a/sysdeps/powerpc/powerpc64/memset.S
+++ b/sysdeps/powerpc/powerpc64/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/mul_1.S b/sysdeps/powerpc/powerpc64/mul_1.S
index e453358..56ad0ad 100644
--- a/sysdeps/powerpc/powerpc64/mul_1.S
+++ b/sysdeps/powerpc/powerpc64/mul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile
index b847c19..e321ce5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile
@@ -11,7 +11,6 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
strlen-power7 strlen-ppc64 \
strnlen-power8 strnlen-power7 strnlen-ppc64 \
strcasecmp-power7 strcasecmp_l-power7 \
- strncase-power7 strncase_l-power7 \
strncmp-power8 strncmp-ppc64 \
strchr-power8 strchr-power7 strchr-ppc64 \
strchrnul-power8 strchrnul-power7 strchrnul-ppc64 \
@@ -31,14 +30,12 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
strncase-power8
ifneq (,$(filter %le,$(config-machine)))
-sysdep_routines += memchr-power10 memcmp-power10 memcpy-power10 \
- memmove-power10 memset-power10 rawmemchr-power9 \
- rawmemchr-power10 strcmp-power9 strcmp-power10 \
- strncmp-power9 strncmp-power10 strcpy-power9 stpcpy-power9 \
+sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \
+ rawmemchr-power9 rawmemchr-power10 \
+ strcmp-power9 strncmp-power9 \
+ strcpy-power9 strcat-power10 stpcpy-power9 \
strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10
endif
-CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
-CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
endif
# Called during static initialization
diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
index 2bb47d3..016d05f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -164,9 +164,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/powerpc/powerpc64/multiarch/strncmp.c. */
IFUNC_IMPL (i, name, strncmp,
#ifdef __LITTLE_ENDIAN__
- IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_1
- && hwcap & PPC_FEATURE_HAS_VSX,
- __strncmp_power10)
IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_00
&& hwcap & PPC_FEATURE_HAS_ALTIVEC,
__strncmp_power9)
@@ -229,12 +226,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/powerpc/powerpc64/multiarch/memchr.c. */
IFUNC_IMPL (i, name, memchr,
-#ifdef __LITTLE_ENDIAN__
- IFUNC_IMPL_ADD (array, i, memchr,
- hwcap2 & PPC_FEATURE2_ARCH_3_1
- && hwcap & PPC_FEATURE_HAS_VSX,
- __memchr_power10)
-#endif
IFUNC_IMPL_ADD (array, i, memchr,
hwcap2 & PPC_FEATURE2_ARCH_2_07
&& hwcap & PPC_FEATURE_HAS_ALTIVEC,
@@ -311,19 +302,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
hwcap2 & PPC_FEATURE2_ARCH_2_07
&& hwcap & PPC_FEATURE_HAS_ALTIVEC,
__strncasecmp_power8)
- IFUNC_IMPL_ADD (array, i, strncasecmp,
- hwcap & PPC_FEATURE_ARCH_2_06,
- __strncasecmp_power7)
IFUNC_IMPL_ADD (array, i, strncasecmp, 1, __strncasecmp_ppc))
- /* Support sysdeps/powerpc/powerpc64/multiarch/strncase_l.c. */
- IFUNC_IMPL (i, name, strncasecmp_l,
- IFUNC_IMPL_ADD (array, i, strncasecmp_l,
- hwcap & PPC_FEATURE_ARCH_2_06,
- __strncasecmp_l_power7)
- IFUNC_IMPL_ADD (array, i, strncasecmp_l, 1,
- __strncasecmp_l_ppc))
-
/* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */
IFUNC_IMPL (i, name, strrchr,
IFUNC_IMPL_ADD (array, i, strrchr,
@@ -387,10 +367,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL (i, name, strcmp,
#ifdef __LITTLE_ENDIAN__
IFUNC_IMPL_ADD (array, i, strcmp,
- (hwcap2 & PPC_FEATURE2_ARCH_3_1)
- && (hwcap & PPC_FEATURE_HAS_VSX),
- __strcmp_power10)
- IFUNC_IMPL_ADD (array, i, strcmp,
hwcap2 & PPC_FEATURE2_ARCH_3_00
&& hwcap & PPC_FEATURE_HAS_ALTIVEC,
__strcmp_power9)
@@ -406,6 +382,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/powerpc/powerpc64/multiarch/strcat.c. */
IFUNC_IMPL (i, name, strcat,
+#ifdef __LITTLE_ENDIAN__
+ IFUNC_IMPL_ADD (array, i, strcat, hwcap2 & PPC_FEATURE2_ARCH_3_1
+ && hwcap & PPC_FEATURE_HAS_VSX,
+ __strcat_power10)
+#endif
IFUNC_IMPL_ADD (array, i, strcat,
hwcap2 & PPC_FEATURE2_ARCH_2_07
&& hwcap & PPC_FEATURE_HAS_VSX,
diff --git a/sysdeps/powerpc/powerpc64/multiarch/init-arch.h b/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
index adbcf3b..bdbe874 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
+++ b/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
index 78089b1..2a8e416 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
index c58c898..0747159 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
index 51dcddb..d813116 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of memchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c
index 57d23e7..3abd64a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,23 +25,15 @@ extern __typeof (__memchr) __memchr_ppc attribute_hidden;
extern __typeof (__memchr) __memchr_power7 attribute_hidden;
extern __typeof (__memchr) __memchr_power8 attribute_hidden;
-# ifdef __LITTLE_ENDIAN__
-extern __typeof (__memchr) __memchr_power10 attribute_hidden;
-# endif
/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
ifunc symbol properly. */
libc_ifunc (__memchr,
-# ifdef __LITTLE_ENDIAN__
- (hwcap2 & PPC_FEATURE2_ARCH_3_1
- && hwcap & PPC_FEATURE_HAS_VSX)
- ? __memchr_power10 :
-# endif
- (hwcap2 & PPC_FEATURE2_ARCH_2_07
- && hwcap & PPC_FEATURE_HAS_ALTIVEC)
- ? __memchr_power8 :
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __memchr_power7
- : __memchr_ppc);
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07
+ && hwcap & PPC_FEATURE_HAS_ALTIVEC)
+ ? __memchr_power8 :
+ (hwcap & PPC_FEATURE_ARCH_2_06)
+ ? __memchr_power7
+ : __memchr_ppc);
weak_alias (__memchr, memchr)
libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S
index 32c0e8e..8a95552 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER10.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
index 38bbd66..a1d2552 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
index 7b1b1df..29ab04e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
index 0495062..4782e65 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
index 2b463cc..99de540 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
index 1e1c0e9..ecb2f87 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcmp. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
index 0d8c76b..76681db 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
index c09ab0b..bb49a6d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/CELL.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power10.S
index fe1a8c0..ac4cdd3 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power10.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power10.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
index d08606e..fffdf98 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
index 19b527c..429f1b5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/POWER6.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
index 3cd0415..ed3e26f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
index 9b6d97f..f9c8613 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for cached memory on PowerPC64/POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
index a1f32a0..0929622 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
@@ -1,5 +1,5 @@
/* Default memcpy implementation for PowerPC64.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
index 2efd88e..4d0d1f5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memmove-power10.S
index 1ecf1f7..5fea20a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-power10.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-power10.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
index 1c91170..97665e4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
index 3e67853..bb530ca 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove.c b/sysdeps/powerpc/powerpc64/multiarch/memmove.c
index 1ddf927..2605f91 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
index 90a9751..f67202b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for PowerPC/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
index b8f129d..2ee823e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of mempcpy.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
index 6fb0000..fc1818d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of mempcpy.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
index 558a5b5..436f762 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
index ef46124..a54e755 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
index 5e55fa3..aee4443 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of memrchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
index aa6d19e..3611ea2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memrchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power10.S
index 768a529..c7e3c84 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power10.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power10.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for POWER10 LE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
index 632efd2..146f66b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
index 9757960..3b00537 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER6.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
index caa17f4..f66967b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
index e8b4122..c9c5848 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER8.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
index 67e510f..cfe4dd4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
@@ -1,5 +1,5 @@
/* Default memset implementation for PowerPC64.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset.c b/sysdeps/powerpc/powerpc64/multiarch/memset.c
index 1e091e2..8a8c51a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power10.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power10.S
index 1c92395..130fb43 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power10.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power10.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER10.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
index adb462c..4ccff75 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power9.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power9.S
index 535f1bf..191a322 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power9.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER9.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
index 95e130e..d3deb8e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of rawmemchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
index 0763f3f..4439088 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of rawmemchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c b/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
index 4d3d390..7f6044a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S b/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
index 3df0ec8..7af423b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
index c053e0c..e96209b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
index 796a2b2..e7da56b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
@@ -1,5 +1,5 @@
/* Multiarch stpcpy for POWER7/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
index 8e2f46e..53fb4d9 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for POWER8/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power9.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power9.S
index 3466a63..d6e2b13 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power9.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for POWER9/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
index f15da1d..6ede1cb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch stpcpy for PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
index 33c4a1f..f810931 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpcpy. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
index 6b7409e..b14e3b6 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
index e49e8ad..ff88ec6 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power9.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power9.S
index a5569b0..c8963cd 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power9.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER9 LE.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
index 7b4b116..e0a8747 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
@@ -1,5 +1,5 @@
/* Default stpncpy implementation for PowerPC64.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
index c767c23..5228fb4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpncpy. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
index 1828146..9325895 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
index 55ff362..d112336 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
index 2e844c9..31fec81 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strcasecmp for PPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
index e48a994..6f4248a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
index 4250974..e713807 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp_l implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
index e0d2270..05bcb43 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp_l.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power10.c
index 664ce44..afa3032 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,23 +8,26 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/ >. */
+#ifdef __LITTLE_ENDIAN__
#include <string.h>
-#define __strncasecmp_l __strncasecmp_l_power7
-
-#undef weak_alias
-#define weak_alias(a,b)
+#define STRCAT __strcat_power10
#undef libc_hidden_def
#define libc_hidden_def(name)
-extern __typeof (strncasecmp_l) __strncasecmp_l_power7 attribute_hidden;
+extern typeof (strcpy) __strcpy_power9;
+extern typeof (strlen) __strlen_power10;
+
+#define strcpy __strcpy_power9
+#define strlen __strlen_power10
-#include <string/strncase_l.c>
+#include <string/strcat.c>
+#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
index d453b65..c8ff66b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,12 +8,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
index 0a77812..dbbf517 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,12 +8,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
index fd3b08d..0304b1f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,12 +8,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat.c b/sysdeps/powerpc/powerpc64/multiarch/strcat.c
index 27e636e..57330d2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcat. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,14 +25,22 @@
extern __typeof (strcat) __strcat_ppc attribute_hidden;
extern __typeof (strcat) __strcat_power7 attribute_hidden;
extern __typeof (strcat) __strcat_power8 attribute_hidden;
+#ifdef __LITTLE_ENDIAN__
+extern __typeof (strcat) __strcat_power10 attribute_hidden;
+#endif
# undef strcat
libc_ifunc_redirected (__redirect_strcat, strcat,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07
- && hwcap & PPC_FEATURE_HAS_VSX)
- ? __strcat_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06
- && hwcap & PPC_FEATURE_HAS_VSX)
- ? __strcat_power7
- : __strcat_ppc);
+#ifdef __LITTLE_ENDIAN__
+ (hwcap2 & PPC_FEATURE2_ARCH_3_1
+ && hwcap & PPC_FEATURE_HAS_VSX)
+ ? __strcat_power10 :
+#endif
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07
+ && hwcap & PPC_FEATURE_HAS_VSX)
+ ? __strcat_power8
+ : (hwcap & PPC_FEATURE_ARCH_2_06
+ && hwcap & PPC_FEATURE_HAS_VSX)
+ ? __strcat_power7
+ : __strcat_ppc);
#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
index 2a21bce..3a1e056 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
index e058c72..5afb615 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
index b05628b..5111eaa 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of strchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr.c b/sysdeps/powerpc/powerpc64/multiarch/strchr.c
index 8ea44f9..1a64388 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchr.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
index fc784c2..fda3aa5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
index 59799f6..eb1467a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
index 7127972..5e4f4de 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of strchrnul.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
index 8deee5a..445a74f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchrnul.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S
deleted file mode 100644
index 1a9f606..0000000
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Optimized strcmp implementation for POWER10/PPC64.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if defined __LITTLE_ENDIAN__ && IS_IN (libc)
-#define STRCMP __strcmp_power10
-
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name)
-
-#include <sysdeps/powerpc/powerpc64/le/power10/strcmp.S>
-#endif /* __LITTLE_ENDIAN__ && IS_IN (libc) */
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
index 8b8cac9..cc6936c 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
index d9abc7b..8b81bb6 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER8/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
index b1e18b2..b399084 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER9/PPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
index fd2e971..c2cb671 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
@@ -1,5 +1,5 @@
/* Default strcmp implementation for PowerPC64.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
index ff32496..7c77c08 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcmp. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,16 +29,12 @@ extern __typeof (strcmp) __strcmp_power7 attribute_hidden;
extern __typeof (strcmp) __strcmp_power8 attribute_hidden;
# ifdef __LITTLE_ENDIAN__
extern __typeof (strcmp) __strcmp_power9 attribute_hidden;
-extern __typeof (strcmp) __strcmp_power10 attribute_hidden;
# endif
# undef strcmp
libc_ifunc_redirected (__redirect_strcmp, strcmp,
# ifdef __LITTLE_ENDIAN__
- (hwcap2 & PPC_FEATURE2_ARCH_3_1
- && hwcap & PPC_FEATURE_HAS_VSX)
- ? __strcmp_power10 :
(hwcap2 & PPC_FEATURE2_ARCH_3_00
&& hwcap & PPC_FEATURE_HAS_ALTIVEC)
? __strcmp_power9 :
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
index c357c05..235d44c 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
@@ -1,5 +1,5 @@
/* Multiarch strcpy for POWER7/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
index 34db37f..7d742e4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for POWER8/PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power9.S
index 2a6e364..dc7a28d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power9.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for POWER9/PPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
index 06c9fdf..5b7b0442 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strcpy for PPC64.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
index 37189e6..fcb31de 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcpy. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
index 5930584..f13ae13 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcspn implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
index 1b76e75..9e6f276 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
@@ -1,5 +1,5 @@
/* Default strcspn implementation for PowerPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
index 8d2ca82..fe96cd4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcspn. PowerPC64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
index 68b3be4..5084f34 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
index 4b13cd6..e717cee 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
index 92aa513..4639120 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
@@ -1,5 +1,5 @@
/* Default strlen implementation for PowerPC64.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen.c b/sysdeps/powerpc/powerpc64/multiarch/strlen.c
index 081495a..7b7478a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen. PowerPC64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
index a41b97b..a72f3bb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
@@ -1,5 +1,5 @@
/* Optimized strncasecmp implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
index ef81f19..08513df 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strncasecmp for PPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase.c b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
index 4f16825..807b0af 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncasecmp
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,15 +23,12 @@
extern __typeof (__strncasecmp) __libc_strncasecmp;
extern __typeof (__strncasecmp) __strncasecmp_ppc attribute_hidden;
-extern __typeof (__strncasecmp) __strncasecmp_power7 attribute_hidden;
extern __typeof (__strncasecmp) __strncasecmp_power8 attribute_hidden;
libc_ifunc (__libc_strncasecmp,
(hwcap2 & PPC_FEATURE2_ARCH_2_07
&& hwcap & PPC_FEATURE_HAS_ALTIVEC)
- ? __strncasecmp_power8:
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __strncasecmp_power7
- : __strncasecmp_ppc);
+ ? __strncasecmp_power8
+ : __strncasecmp_ppc);
weak_alias (__libc_strncasecmp, strncasecmp)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c
deleted file mode 100644
index dbca785..0000000
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Multiple versions of strncasecmp_l
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <string.h>
-# define strncasecmp_l __strncasecmp_l_ppc
-extern __typeof (__strncasecmp_l) __strncasecmp_l_ppc attribute_hidden;
-extern __typeof (__strncasecmp_l) __strncasecmp_l_power7 attribute_hidden;
-#endif
-
-#include <string/strncase_l.c>
-#undef strncasecmp_l
-
-#if IS_IN (libc)
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
- ifunc symbol properly. */
-extern __typeof (__strncasecmp_l) __libc_strncasecmp_l;
-libc_ifunc (__libc_strncasecmp_l,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __strncasecmp_l_power7
- : __strncasecmp_l_ppc);
-
-weak_alias (__libc_strncasecmp_l, strncasecmp_l)
-#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
index a848fcd..78f6e5b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,12 +8,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
index a31b918..665dc50 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
index 7f4c9f1..4b2cf9e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -8,12 +8,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat.c b/sysdeps/powerpc/powerpc64/multiarch/strncat.c
index b453c1d..a8acd18 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncat. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
index 1725034..b31d867 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
index 3b139b6..35a98ca 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
index a5ed67f..4cfe27f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncmp.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,6 @@ extern __typeof (strncmp) __strncmp_ppc attribute_hidden;
extern __typeof (strncmp) __strncmp_power8 attribute_hidden;
# ifdef __LITTLE_ENDIAN__
extern __typeof (strncmp) __strncmp_power9 attribute_hidden;
-extern __typeof (strncmp) __strncmp_power10 attribute_hidden;
# endif
# undef strncmp
@@ -37,9 +36,6 @@ extern __typeof (strncmp) __strncmp_power10 attribute_hidden;
ifunc symbol properly. */
libc_ifunc_redirected (__redirect_strncmp, strncmp,
# ifdef __LITTLE_ENDIAN__
- (hwcap2 & PPC_FEATURE2_ARCH_3_1
- && hwcap & PPC_FEATURE_HAS_VSX)
- ? __strncmp_power10 :
(hwcap2 & PPC_FEATURE2_ARCH_3_00
&& hwcap & PPC_FEATURE_HAS_ALTIVEC)
? __strncmp_power9 :
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
index 77438de..a357645 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
index 08af222..1d65557 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power9.S
index 1c39e96..914d64f4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power9.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER9 LE.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
index 764ee30..5972d72 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
index af855e6..8a1e859 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncpy.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,12 +9,12 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
index d639afc..5b18afb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strnlen version for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
index bad27aa..bf2e713 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
@@ -1,5 +1,5 @@
/* Optimized strnlen version for POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
index 47ca065..5d6c7e0 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
index 79110d8..9b0dcda 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strnlen.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
index be938f7..e8e5a4a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
index 79429ab..b1e8e2f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
index 5cb1bd7..be53dea 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
index 1737775..c89ee94 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strrchr. PowerPC64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
index 72f0ec8..429dcef 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
@@ -1,5 +1,5 @@
/* Optimized strspn implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
index f8f3dee..ba8ae19 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
@@ -1,5 +1,5 @@
/* Default strspn implementation for PowerPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn.c b/sysdeps/powerpc/powerpc64/multiarch/strspn.c
index 59b7f0d..bf3f7ff 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strspn. PowerPC64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
index 987ac8a..6eb5673 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power4/memcmp.S b/sysdeps/powerpc/powerpc64/power4/memcmp.S
index f551e29..de0d1ac 100644
--- a/sysdeps/powerpc/powerpc64/power4/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power4/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power4/memcpy.S b/sysdeps/powerpc/powerpc64/power4/memcpy.S
index 0bf9840..1c38579 100644
--- a/sysdeps/powerpc/powerpc64/power4/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power4/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power4/memset.S b/sysdeps/powerpc/powerpc64/power4/memset.S
index 5e6071b..c0d8545 100644
--- a/sysdeps/powerpc/powerpc64/power4/memset.S
+++ b/sysdeps/powerpc/powerpc64/power4/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power6/memcpy.S b/sysdeps/powerpc/powerpc64/power6/memcpy.S
index 87b0217..5e54412 100644
--- a/sysdeps/powerpc/powerpc64/power6/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power6/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
index 3ec5f4b..0733227 100644
--- a/sysdeps/powerpc/powerpc64/power6/memset.S
+++ b/sysdeps/powerpc/powerpc64/power6/memset.S
@@ -1,5 +1,5 @@
/* Optimized 64-bit memset implementation for POWER6.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/add_n.S b/sysdeps/powerpc/powerpc64/power7/add_n.S
index 023ee9e..5d29237 100644
--- a/sysdeps/powerpc/powerpc64/power7/add_n.S
+++ b/sysdeps/powerpc/powerpc64/power7/add_n.S
@@ -1,6 +1,6 @@
/* PowerPC64 mpn_lshift -- mpn_add_n/mpn_sub_n -- mpn addition and
subtraction.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memchr.S b/sysdeps/powerpc/powerpc64/power7/memchr.S
index fad66dc..1736c95 100644
--- a/sysdeps/powerpc/powerpc64/power7/memchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memcmp.S b/sysdeps/powerpc/powerpc64/power7/memcmp.S
index 01349f1..e66a284 100644
--- a/sysdeps/powerpc/powerpc64/power7/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC64.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memcpy.S b/sysdeps/powerpc/powerpc64/power7/memcpy.S
index 2bfa932..305d432 100644
--- a/sysdeps/powerpc/powerpc64/power7/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64/POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memmove.S b/sysdeps/powerpc/powerpc64/power7/memmove.S
index beb1b7f..81d21e5 100644
--- a/sysdeps/powerpc/powerpc64/power7/memmove.S
+++ b/sysdeps/powerpc/powerpc64/power7/memmove.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/mempcpy.S b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
index 7c0f2b8..14787a1 100644
--- a/sysdeps/powerpc/powerpc64/power7/mempcpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memrchr.S b/sysdeps/powerpc/powerpc64/power7/memrchr.S
index b66b468..0e5fe56 100644
--- a/sysdeps/powerpc/powerpc64/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/memset.S b/sysdeps/powerpc/powerpc64/power7/memset.S
index 01900c6..b7a1508 100644
--- a/sysdeps/powerpc/powerpc64/power7/memset.S
+++ b/sysdeps/powerpc/powerpc64/power7/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER7.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
index 16298cf..c10e6d0 100644
--- a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/stpncpy.S b/sysdeps/powerpc/powerpc64/power7/stpncpy.S
index 3436276..2975e7a 100644
--- a/sysdeps/powerpc/powerpc64/power7/stpncpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/stpncpy.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
index 133f127..d71fa90 100644
--- a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC64.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strchr.S b/sysdeps/powerpc/powerpc64/power7/strchr.S
index 13332f5..dad4e5f 100644
--- a/sysdeps/powerpc/powerpc64/power7/strchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strchrnul.S b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
index 65c97b7..1db7060 100644
--- a/sysdeps/powerpc/powerpc64/power7/strchrnul.S
+++ b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strcmp.S b/sysdeps/powerpc/powerpc64/power7/strcmp.S
index bef56f1..db4cb76 100644
--- a/sysdeps/powerpc/powerpc64/power7/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for Power7 using 'cmpb' instruction
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strlen.S b/sysdeps/powerpc/powerpc64/power7/strlen.S
index 25983ae..2156093 100644
--- a/sysdeps/powerpc/powerpc64/power7/strlen.S
+++ b/sysdeps/powerpc/powerpc64/power7/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strncpy.S b/sysdeps/powerpc/powerpc64/power7/strncpy.S
index c653e2c..99d6e18 100644
--- a/sysdeps/powerpc/powerpc64/power7/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/strncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strnlen.S b/sysdeps/powerpc/powerpc64/power7/strnlen.S
index 4b079c8..f175311 100644
--- a/sysdeps/powerpc/powerpc64/power7/strnlen.S
+++ b/sysdeps/powerpc/powerpc64/power7/strnlen.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/strrchr.S b/sysdeps/powerpc/powerpc64/power7/strrchr.S
index b8b389a..9b01f19 100644
--- a/sysdeps/powerpc/powerpc64/power7/strrchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/strrchr.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power7/sub_n.S b/sysdeps/powerpc/powerpc64/power7/sub_n.S
index c9aca3d..d1084a7 100644
--- a/sysdeps/powerpc/powerpc64/power7/sub_n.S
+++ b/sysdeps/powerpc/powerpc64/power7/sub_n.S
@@ -1,6 +1,6 @@
/* PowerPC64 mpn_lshift -- mpn_add_n/mpn_sub_n -- mpn addition and
subtraction.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/memchr.S b/sysdeps/powerpc/powerpc64/power8/memchr.S
index bd4090f..831271b 100644
--- a/sysdeps/powerpc/powerpc64/power8/memchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/memcmp.S b/sysdeps/powerpc/powerpc64/power8/memcmp.S
index 5990008..6c4e9ef 100644
--- a/sysdeps/powerpc/powerpc64/power8/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC64.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/memrchr.S b/sysdeps/powerpc/powerpc64/power8/memrchr.S
index f342dd8..d2da10e 100644
--- a/sysdeps/powerpc/powerpc64/power8/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/memset.S b/sysdeps/powerpc/powerpc64/power8/memset.S
index 2742ec8..7ebe182 100644
--- a/sysdeps/powerpc/powerpc64/power8/memset.S
+++ b/sysdeps/powerpc/powerpc64/power8/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER8.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/stpcpy.S b/sysdeps/powerpc/powerpc64/power8/stpcpy.S
index b82232b..c8ca025 100644
--- a/sysdeps/powerpc/powerpc64/power8/stpcpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/stpcpy.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/stpncpy.S b/sysdeps/powerpc/powerpc64/power8/stpncpy.S
index f2b2454..6b7b32e 100644
--- a/sysdeps/powerpc/powerpc64/power8/stpncpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/stpncpy.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strcasecmp.S b/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
index 11ea186..7ce5340 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strchr.S b/sysdeps/powerpc/powerpc64/power8/strchr.S
index 70184f9..2017d79 100644
--- a/sysdeps/powerpc/powerpc64/power8/strchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strchrnul.S b/sysdeps/powerpc/powerpc64/power8/strchrnul.S
index bd8aab9..0930244 100644
--- a/sysdeps/powerpc/powerpc64/power8/strchrnul.S
+++ b/sysdeps/powerpc/powerpc64/power8/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strcmp.S b/sysdeps/powerpc/powerpc64/power8/strcmp.S
index 8e2735f..da1977b 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strcpy.S b/sysdeps/powerpc/powerpc64/power8/strcpy.S
index 771438e..0d9ee9d 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy/stpcpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strcspn.S b/sysdeps/powerpc/powerpc64/power8/strcspn.S
index bccca23..f409fa2 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcspn.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcspn.S
@@ -1,5 +1,5 @@
/* Optimized strcspn implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strlen.S b/sysdeps/powerpc/powerpc64/power8/strlen.S
index 4b408e4..ae64d79 100644
--- a/sysdeps/powerpc/powerpc64/power8/strlen.S
+++ b/sysdeps/powerpc/powerpc64/power8/strlen.S
@@ -1,6 +1,6 @@
/* Optimized strlen implementation for PowerPC64/POWER8 using a vectorized
loop.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strncase.S b/sysdeps/powerpc/powerpc64/power8/strncase.S
index 261f090..7ad7c28 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncase.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncase.S
@@ -1,5 +1,5 @@
/* Optimized strncasecmp implementation for POWER8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strncmp.S b/sysdeps/powerpc/powerpc64/power8/strncmp.S
index e1fe34c..d53ca2b 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strncpy.S b/sysdeps/powerpc/powerpc64/power8/strncpy.S
index e68453b..a60ab0c 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncpy.S
@@ -1,5 +1,5 @@
/* Optimized strncpy/stpncpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -81,26 +81,26 @@ ENTRY (FUNC_NAME, 4)
rlwinm r9,r4,0,19,19
/* Save some non-volatile registers on the stack. */
- std r26,-48(r1)
- std r27,-40(r1)
+ std r26,-56(r1)
+ std r27,-48(r1)
rlwinm r8,r10,0,19,19
- std r28,-32(r1)
- std r29,-24(r1)
+ std r28,-40(r1)
+ std r29,-32(r1)
cmpld cr7,r9,r8
- std r30,-16(r1)
- std r31,-8(r1)
+ std r30,-24(r1)
+ std r31,-16(r1)
/* Update CFI. */
- cfi_offset(r26, -48)
- cfi_offset(r27, -40)
- cfi_offset(r28, -32)
- cfi_offset(r29, -24)
- cfi_offset(r30, -16)
- cfi_offset(r31, -8)
+ cfi_offset(r26, -56)
+ cfi_offset(r27, -48)
+ cfi_offset(r28, -40)
+ cfi_offset(r29, -32)
+ cfi_offset(r30, -24)
+ cfi_offset(r31, -16)
beq cr7,L(unaligned_lt_16)
rldicl r9,r4,0,61
@@ -205,12 +205,12 @@ L(short_path_loop_end_1):
#endif
L(short_path_loop_end):
/* Restore non-volatile registers. */
- ld r26,-48(r1)
- ld r27,-40(r1)
- ld r28,-32(r1)
- ld r29,-24(r1)
- ld r30,-16(r1)
- ld r31,-8(r1)
+ ld r26,-56(r1)
+ ld r27,-48(r1)
+ ld r28,-40(r1)
+ ld r29,-32(r1)
+ ld r30,-24(r1)
+ ld r31,-16(r1)
blr
/* This code pads the remainder of dest with NULL bytes. The algorithm
@@ -242,6 +242,9 @@ L(zero_pad_start_1):
mflr r0
std r0,16(r1)
+#ifdef __ROP_PROTECT__
+ hashst 0,FRAME_ROP_SAVE(r1)
+#endif
/* Create the stack frame. */
stdu r1,-FRAMESIZE(r1)
cfi_adjust_cfa_offset(FRAMESIZE)
@@ -261,18 +264,21 @@ L(zero_pad_start_1):
#endif
/* Restore non-volatile registers and return. */
- ld r26,FRAMESIZE-48(r1)
- ld r27,FRAMESIZE-40(r1)
- ld r28,FRAMESIZE-32(r1)
- ld r29,FRAMESIZE-24(r1)
- ld r30,FRAMESIZE-16(r1)
- ld r31,FRAMESIZE-8(r1)
+ ld r26,FRAMESIZE-56(r1)
+ ld r27,FRAMESIZE-48(r1)
+ ld r28,FRAMESIZE-40(r1)
+ ld r29,FRAMESIZE-32(r1)
+ ld r30,FRAMESIZE-24(r1)
+ ld r31,FRAMESIZE-16(r1)
/* Restore the stack frame. */
addi r1,r1,FRAMESIZE
cfi_adjust_cfa_offset(-FRAMESIZE)
/* Restore the link register. */
mtlr r0
cfi_restore(lr)
+#ifdef __ROP_PROTECT__
+ hashchk 0,FRAME_ROP_SAVE(r1)
+#endif
blr
/* The common case where [src]+16 will not cross a 4K page boundary.
diff --git a/sysdeps/powerpc/powerpc64/power8/strnlen.S b/sysdeps/powerpc/powerpc64/power8/strnlen.S
index d24fd35..5d5b799 100644
--- a/sysdeps/powerpc/powerpc64/power8/strnlen.S
+++ b/sysdeps/powerpc/powerpc64/power8/strnlen.S
@@ -1,6 +1,6 @@
/* Optimized strnlen implementation for POWER8 using a vmx loop.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/powerpc/powerpc64/power8/strrchr.S b/sysdeps/powerpc/powerpc64/power8/strrchr.S
index 14d420d..f436436 100644
--- a/sysdeps/powerpc/powerpc64/power8/strrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strrchr.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/power8/strspn.S b/sysdeps/powerpc/powerpc64/power8/strspn.S
index e6ee365..d96f0d6 100644
--- a/sysdeps/powerpc/powerpc64/power8/strspn.S
+++ b/sysdeps/powerpc/powerpc64/power8/strspn.S
@@ -1,6 +1,6 @@
/* Optimized strspn implementation for Power8.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/ppc-mcount.S b/sysdeps/powerpc/powerpc64/ppc-mcount.S
index 7296d6a..be288b0 100644
--- a/sysdeps/powerpc/powerpc64/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc64/ppc-mcount.S
@@ -1,5 +1,5 @@
/* PowerPC64-specific implementation of profiling support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,6 +25,9 @@ ENTRY(_mcount)
mflr r4
ld r11, 0(r1)
std r4, FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst r4, FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-FRAME_MIN_SIZE(r1)
cfi_adjust_cfa_offset (FRAME_MIN_SIZE)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -36,5 +39,8 @@ ENTRY(_mcount)
ld r0, FRAME_MIN_SIZE+FRAME_LR_SAVE(r1)
mtlr r0
addi r1,r1,FRAME_MIN_SIZE
+#ifdef __ROP_PROTECT__
+ hashchk 0, FRAME_ROP_SAVE(r1)
+#endif
blr
END(_mcount)
diff --git a/sysdeps/powerpc/powerpc64/setjmp-bug21895.c b/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
index 01728d5..6112a73 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
+++ b/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
@@ -1,6 +1,6 @@
/* Shared object part of test for setjmp interoperability with static
dlopen BZ #21895.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
index d677741..1aa5ed9 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC64.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -224,6 +224,9 @@ L(no_vmx):
#else
mflr r0
std r0,FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-FRAME_MIN_SIZE(r1)
cfi_adjust_cfa_offset(FRAME_MIN_SIZE)
cfi_offset(lr,FRAME_LR_SAVE)
@@ -232,6 +235,9 @@ L(no_vmx):
ld r0,FRAME_MIN_SIZE+FRAME_LR_SAVE(r1)
addi r1,r1,FRAME_MIN_SIZE
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
#endif
END (__sigsetjmp_symbol)
diff --git a/sysdeps/powerpc/powerpc64/setjmp.S b/sysdeps/powerpc/powerpc64/setjmp.S
index d53d552..e735a66 100644
--- a/sysdeps/powerpc/powerpc64/setjmp.S
+++ b/sysdeps/powerpc/powerpc64/setjmp.S
@@ -1,5 +1,5 @@
/* AltiVec (new) version of setjmp for PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S
index 564374b..b9a5205 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -1,5 +1,5 @@
/* Startup code for programs linked with GNU libc. PowerPC64 version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/strchr.S b/sysdeps/powerpc/powerpc64/strchr.S
index 47efce4..e3ef5cc 100644
--- a/sysdeps/powerpc/powerpc64/strchr.S
+++ b/sysdeps/powerpc/powerpc64/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/strcmp.S b/sysdeps/powerpc/powerpc64/strcmp.S
index 88b0a66..e3f6d7c 100644
--- a/sysdeps/powerpc/powerpc64/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/strlen.S b/sysdeps/powerpc/powerpc64/strlen.S
index 0ea356b..f4272a0 100644
--- a/sysdeps/powerpc/powerpc64/strlen.S
+++ b/sysdeps/powerpc/powerpc64/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/submul_1.S b/sysdeps/powerpc/powerpc64/submul_1.S
index f695b63..3fb45c9 100644
--- a/sysdeps/powerpc/powerpc64/submul_1.S
+++ b/sysdeps/powerpc/powerpc64/submul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_addmul_1 -- Multiply a limb vector with a limb and subtract
the result to a second limb vector.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index c363939..f05dae7 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for 64-bit PowerPC.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,8 +31,9 @@
#define FRAME_TOC_SAVE 40
#define FRAME_PARM_SAVE 48
#else
-#define FRAME_MIN_SIZE 32
-#define FRAME_MIN_SIZE_PARM 96
+#define FRAME_ROP_SAVE -8
+#define FRAME_MIN_SIZE 48 /* Includes space for the ROP save slot */
+#define FRAME_MIN_SIZE_PARM 112 /* Includes space for the ROP save slot */
#define FRAME_TOC_SAVE 24
#define FRAME_PARM_SAVE 32
#endif
@@ -353,6 +354,25 @@ LT_LABELSUFFIX(name,_name_end): ; \
DO_CALL (SYS_ify (syscall_name))
#ifdef SHARED
+# define TAIL_CALL_NO_RETURN(__func) \
+ b JUMPTARGET (NOTOC (__func))
+#else
+# define TAIL_CALL_NO_RETURN(__func) \
+ .ifdef .Local ## __func; \
+ b .Local ## __func; \
+ .else; \
+.Local ## __func: \
+ mflr 0; \
+ std 0,FRAME_LR_SAVE(1); \
+ stdu 1,-FRAME_MIN_SIZE(1); \
+ cfi_adjust_cfa_offset(FRAME_MIN_SIZE); \
+ cfi_offset(lr,FRAME_LR_SAVE); \
+ bl JUMPTARGET(__func); \
+ nop; \
+ .endif
+#endif
+
+#ifdef SHARED
#define TAIL_CALL_SYSCALL_ERROR \
b JUMPTARGET (NOTOC (__syscall_error))
#else
diff --git a/sysdeps/powerpc/powerpc64/tst-audit.h b/sysdeps/powerpc/powerpc64/tst-audit.h
index e18d3b0..0f09429 100644
--- a/sysdeps/powerpc/powerpc64/tst-audit.h
+++ b/sysdeps/powerpc/powerpc64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. PowerPC64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c b/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
index 5dc7674..23c870b 100644
--- a/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
+++ b/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
@@ -1,5 +1,5 @@
/* Test setjmp interoperability with static dlopen BZ #21895.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
index bc90d95..72d8105 100644
--- a/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
+++ b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
@@ -1,5 +1,5 @@
/* Test if POWER vscr read by ucontext.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
index 9e5a07a..48b9c9b 100644
--- a/sysdeps/powerpc/preconfigure
+++ b/sysdeps/powerpc/preconfigure
@@ -42,8 +42,9 @@ case "${machine}:${submachine}" in
if test ${libc_cv_cc_submachine+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- libc_cv_cc_submachine=""
+else case e in #(
+ e) libc_cv_cc_submachine="" ;;
+esac
fi
;;
@@ -52,8 +53,9 @@ fi
if test ${libc_cv_cc_submachine+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- libc_cv_cc_submachine=""
+else case e in #(
+ e) libc_cv_cc_submachine="" ;;
+esac
fi
;;
@@ -63,8 +65,9 @@ fi
if test ${libc_cv_cc_submachine+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- libc_cv_cc_submachine=""
+else case e in #(
+ e) libc_cv_cc_submachine="" ;;
+esac
fi
;;
diff --git a/sysdeps/powerpc/sigjmp.c b/sysdeps/powerpc/sigjmp.c
index b90e626..cda78c3 100644
--- a/sysdeps/powerpc/sigjmp.c
+++ b/sysdeps/powerpc/sigjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/sotruss-lib.c b/sysdeps/powerpc/sotruss-lib.c
index 2bb696b..7ef1d30 100644
--- a/sysdeps/powerpc/sotruss-lib.c
+++ b/sysdeps/powerpc/sotruss-lib.c
@@ -1,5 +1,5 @@
/* PowerPC specific sotruss-lib functions.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/powerpc/string-fza.h b/sysdeps/powerpc/string-fza.h
index 410b09a..99172c0 100644
--- a/sysdeps/powerpc/string-fza.h
+++ b/sysdeps/powerpc/string-fza.h
@@ -1,5 +1,5 @@
/* Zero byte detection; basics. PowerPC version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/sys/platform/ppc.h b/sysdeps/powerpc/sys/platform/ppc.h
index e5cf632..b0e7b0a 100644
--- a/sysdeps/powerpc/sys/platform/ppc.h
+++ b/sysdeps/powerpc/sys/platform/ppc.h
@@ -1,5 +1,5 @@
/* Facilities specific to the PowerPC architecture
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h
index 1e48657..8ce7156 100644
--- a/sysdeps/powerpc/sysdep.h
+++ b/sysdeps/powerpc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/test-arith.c b/sysdeps/powerpc/test-arith.c
index fd3fd02..a0ae5bf 100644
--- a/sysdeps/powerpc/test-arith.c
+++ b/sysdeps/powerpc/test-arith.c
@@ -1,5 +1,5 @@
/* Test floating-point arithmetic operations.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/test-get_hwcap-static.c b/sysdeps/powerpc/test-get_hwcap-static.c
index 6ca06dc..5c2b968 100644
--- a/sysdeps/powerpc/test-get_hwcap-static.c
+++ b/sysdeps/powerpc/test-get_hwcap-static.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_hwcap() and __ppc_get_at_plaftorm() functionality.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/test-get_hwcap.c b/sysdeps/powerpc/test-get_hwcap.c
index 2230b64..9d64118 100644
--- a/sysdeps/powerpc/test-get_hwcap.c
+++ b/sysdeps/powerpc/test-get_hwcap.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_hwcap() and __ppc_get_at_plaftorm() functionality.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,9 +28,10 @@
#include <sys/auxv.h>
-#include <dl-procinfo.h>
+#include <hwcapinfo.h>
#ifndef STATIC_TST_HWCAP
+#include <cpu-features.h>
#undef PROCINFO_DECL
#include <dl-procinfo.c>
#endif
diff --git a/sysdeps/powerpc/test-gettimebase.c b/sysdeps/powerpc/test-gettimebase.c
index f3fc066..5ee5798 100644
--- a/sysdeps/powerpc/test-gettimebase.c
+++ b/sysdeps/powerpc/test-gettimebase.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase() for architecture changes
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/nptl/thread_pointer.h b/sysdeps/powerpc/thread_pointer.h
index 95e0c77..b1362a3 100644
--- a/sysdeps/powerpc/nptl/thread_pointer.h
+++ b/sysdeps/powerpc/thread_pointer.h
@@ -1,5 +1,5 @@
/* __thread_pointer definition. powerpc version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-cache-ppc-static-dlopen.c b/sysdeps/powerpc/tst-cache-ppc-static-dlopen.c
index 700b1a1..584b402 100644
--- a/sysdeps/powerpc/tst-cache-ppc-static-dlopen.c
+++ b/sysdeps/powerpc/tst-cache-ppc-static-dlopen.c
@@ -1,5 +1,5 @@
/* Test dl_cache_line_size from a dlopen'ed DSO from a static executable.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-cache-ppc-static.c b/sysdeps/powerpc/tst-cache-ppc-static.c
index 0e974e0..4a262e7 100644
--- a/sysdeps/powerpc/tst-cache-ppc-static.c
+++ b/sysdeps/powerpc/tst-cache-ppc-static.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from _dl_cache_line_size.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-cache-ppc.c b/sysdeps/powerpc/tst-cache-ppc.c
index 2adca73..a308e11 100644
--- a/sysdeps/powerpc/tst-cache-ppc.c
+++ b/sysdeps/powerpc/tst-cache-ppc.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from rtld_global_ro._dl_cache_line_size.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-set_ppr.c b/sysdeps/powerpc/tst-set_ppr.c
index 88d22ae..c45fbc6 100644
--- a/sysdeps/powerpc/tst-set_ppr.c
+++ b/sysdeps/powerpc/tst-set_ppr.c
@@ -1,5 +1,5 @@
/* Test the implementation of __ppc_set_ppr_* functions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-stack-align.h b/sysdeps/powerpc/tst-stack-align.h
index c410455..117d17e 100644
--- a/sysdeps/powerpc/tst-stack-align.h
+++ b/sysdeps/powerpc/tst-stack-align.h
@@ -1,5 +1,5 @@
/* Check stack alignment. PowerPC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-tlsifunc-static.c b/sysdeps/powerpc/tst-tlsifunc-static.c
index a8fd10b..ff29264 100644
--- a/sysdeps/powerpc/tst-tlsifunc-static.c
+++ b/sysdeps/powerpc/tst-tlsifunc-static.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from the TLS from an STT_GNU_IFUNC resolver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/tst-tlsifunc.c b/sysdeps/powerpc/tst-tlsifunc.c
index f320447..3e942a5 100644
--- a/sysdeps/powerpc/tst-tlsifunc.c
+++ b/sysdeps/powerpc/tst-tlsifunc.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from the TLS from an STT_GNU_IFUNC resolver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 04ea565..de146dd 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -1,5 +1,5 @@
# sysdeps makefile fragment for all pthread-supporting configurations.
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -106,6 +106,7 @@ tests += \
tst-cancel28 \
tst-cancel29 \
tst-cancel30 \
+ tst-cancel32 \
tst-cleanup0 \
tst-cleanup1 \
tst-cleanup2 \
@@ -154,6 +155,7 @@ tests += \
tst-exit3 \
tst-flock1 \
tst-flock2 \
+ tst-fopen-threaded \
tst-fork1 \
tst-fork2 \
tst-fork3 \
@@ -174,6 +176,7 @@ tests += \
tst-join13 \
tst-join14 \
tst-join15 \
+ tst-join16 \
tst-key1 \
tst-key2 \
tst-key3 \
@@ -215,6 +218,7 @@ tests += \
tst-pt-vfork2 \
tst-pthread-exit-signal \
tst-pthread-mutexattr \
+ tst-pthread-mutexattr-2 \
tst-pthread-raise-blocked-self \
tst-pthread-setuid-loop \
tst-pthread_cancel-exited \
@@ -254,6 +258,8 @@ tests += \
tst-sem14 \
tst-sem15 \
tst-sem16 \
+ tst-sem18 \
+ tst-sem19 \
tst-setuid3 \
tst-signal1 \
tst-signal2 \
@@ -265,7 +271,9 @@ tests += \
tst-spin2 \
tst-spin3 \
tst-spin4 \
+ tst-spin5 \
tst-stack1 \
+ tst-stack2 \
tst-stdio1 \
tst-stdio2 \
tst-thrd-detach \
@@ -291,13 +299,14 @@ tests-time64 += \
tst-cnd-timedwait-time64 \
tst-cond11-time64 \
tst-join14-time64 \
+ tst-join16-time64 \
tst-mtx-timedlock-time64 \
tst-rwlock14-time64 \
tst-sem5-time64 \
tst-thrd-sleep-time64 \
# tests-time64
-static-only-routines = pthread_atfork
+static-only-routines += pthread_atfork
# Files which must not be linked with libpthread.
tests-nolibpthread += \
@@ -360,6 +369,7 @@ modules-names += \
tst-atfork4mod \
tst-create1mod \
tst-fini1mod \
+ tst-stack2-mod \
tst-tls4moda \
tst-tls4modb \
# modules-names
@@ -533,4 +543,12 @@ LDFLAGS-tst-create1 = -Wl,-export-dynamic
$(objpfx)tst-create1: $(shared-thread-library)
$(objpfx)tst-create1.out: $(objpfx)tst-create1mod.so
+$(objpfx)tst-stack2.out: $(objpfx)tst-stack2-mod.so
+$(objpfx)tst-stack2-mod.so: $(shared-thread-library)
+LDFLAGS-tst-stack2-mod.so = -Wl,-z,execstack
+ifeq ($(have-no-error-execstack),yes)
+LDFLAGS-tst-stack2-mod.so += -Wl,--no-error-execstack
+endif
+tst-stack2-ENV = GLIBC_TUNABLES=glibc.rtld.execstack=2
+
endif
diff --git a/sysdeps/pthread/allocalim.h b/sysdeps/pthread/allocalim.h
index 38fcdda..c5f1a7a 100644
--- a/sysdeps/pthread/allocalim.h
+++ b/sysdeps/pthread/allocalim.h
@@ -1,5 +1,5 @@
/* Determine whether block of given size can be allocated on the stack or not.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/bits/sigthread.h b/sysdeps/pthread/bits/sigthread.h
index 700b31d..66cba33 100644
--- a/sysdeps/pthread/bits/sigthread.h
+++ b/sysdeps/pthread/bits/sigthread.h
@@ -1,5 +1,5 @@
/* Signal handling function for threaded programs.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/call_once.c b/sysdeps/pthread/call_once.c
index f4f5700..9c0eb39 100644
--- a/sysdeps/pthread/call_once.c
+++ b/sysdeps/pthread/call_once.c
@@ -1,5 +1,5 @@
/* C11 threads call once implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_broadcast.c b/sysdeps/pthread/cnd_broadcast.c
index 299fefd..4bef01a 100644
--- a/sysdeps/pthread/cnd_broadcast.c
+++ b/sysdeps/pthread/cnd_broadcast.c
@@ -1,5 +1,5 @@
/* C11 thread conditional broadcast implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_destroy.c b/sysdeps/pthread/cnd_destroy.c
index bdb7ddc..ed5e433 100644
--- a/sysdeps/pthread/cnd_destroy.c
+++ b/sysdeps/pthread/cnd_destroy.c
@@ -1,5 +1,5 @@
/* C11 threads conditional destroy implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_init.c b/sysdeps/pthread/cnd_init.c
index 33da3d8..fce84de 100644
--- a/sysdeps/pthread/cnd_init.c
+++ b/sysdeps/pthread/cnd_init.c
@@ -1,5 +1,5 @@
/* C11 thread conditional initialization implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_signal.c b/sysdeps/pthread/cnd_signal.c
index acf58cf..2737ae1 100644
--- a/sysdeps/pthread/cnd_signal.c
+++ b/sysdeps/pthread/cnd_signal.c
@@ -1,5 +1,5 @@
/* C11 threads conditional signal implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_timedwait.c b/sysdeps/pthread/cnd_timedwait.c
index 48948ea..f0529d8 100644
--- a/sysdeps/pthread/cnd_timedwait.c
+++ b/sysdeps/pthread/cnd_timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional timed wait implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/cnd_wait.c b/sysdeps/pthread/cnd_wait.c
index 85f6f28..706466e 100644
--- a/sysdeps/pthread/cnd_wait.c
+++ b/sysdeps/pthread/cnd_wait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional wait implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/eintr.c b/sysdeps/pthread/eintr.c
index 3fe0f28..b06cc1c 100644
--- a/sysdeps/pthread/eintr.c
+++ b/sysdeps/pthread/eintr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/elision-conf.h b/sysdeps/pthread/elision-conf.h
index 6233f78..a6b4b9a 100644
--- a/sysdeps/pthread/elision-conf.h
+++ b/sysdeps/pthread/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision configuration. Stub version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_destroy.c b/sysdeps/pthread/mtx_destroy.c
index b2f43df..f468666 100644
--- a/sysdeps/pthread/mtx_destroy.c
+++ b/sysdeps/pthread/mtx_destroy.c
@@ -1,5 +1,5 @@
/* C11 threads mutex destroy implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_init.c b/sysdeps/pthread/mtx_init.c
index 729b179..a807eca 100644
--- a/sysdeps/pthread/mtx_init.c
+++ b/sysdeps/pthread/mtx_init.c
@@ -1,5 +1,5 @@
/* C11 threads mutex initialization implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_lock.c b/sysdeps/pthread/mtx_lock.c
index bce7959..7318d42 100644
--- a/sysdeps/pthread/mtx_lock.c
+++ b/sysdeps/pthread/mtx_lock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex lock implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_timedlock.c b/sysdeps/pthread/mtx_timedlock.c
index c4cd62b..8e7e0af 100644
--- a/sysdeps/pthread/mtx_timedlock.c
+++ b/sysdeps/pthread/mtx_timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex timed lock implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_trylock.c b/sysdeps/pthread/mtx_trylock.c
index a7c6554..57b3e6d 100644
--- a/sysdeps/pthread/mtx_trylock.c
+++ b/sysdeps/pthread/mtx_trylock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex try lock implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/mtx_unlock.c b/sysdeps/pthread/mtx_unlock.c
index 331c304..978a9ee 100644
--- a/sysdeps/pthread/mtx_unlock.c
+++ b/sysdeps/pthread/mtx_unlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex unlock implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/posix-timer.h b/sysdeps/pthread/posix-timer.h
index d53e094..d621701 100644
--- a/sysdeps/pthread/posix-timer.h
+++ b/sysdeps/pthread/posix-timer.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX timer implementation on top of NPTL.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/pthread_atfork.c b/sysdeps/pthread/pthread_atfork.c
index 5d937d4..171ab34 100644
--- a/sysdeps/pthread/pthread_atfork.c
+++ b/sysdeps/pthread/pthread_atfork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/pthread_atfork_compat.c b/sysdeps/pthread/pthread_atfork_compat.c
index ac06174..c4b5ea0 100644
--- a/sysdeps/pthread/pthread_atfork_compat.c
+++ b/sysdeps/pthread/pthread_atfork_compat.c
@@ -1,5 +1,5 @@
/* Compat pthread_atfork implementation.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/pthread_early_init.h b/sysdeps/pthread/pthread_early_init.h
index 2f214db..3f1de38 100644
--- a/sysdeps/pthread/pthread_early_init.h
+++ b/sysdeps/pthread/pthread_early_init.h
@@ -1,5 +1,5 @@
/* pthread initialization called from __libc_early_init. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/pthread_mutex_conf.h b/sysdeps/pthread/pthread_mutex_conf.h
index 89f3806..070df25 100644
--- a/sysdeps/pthread/pthread_mutex_conf.h
+++ b/sysdeps/pthread/pthread_mutex_conf.h
@@ -1,5 +1,5 @@
/* Pthread mutex tunable parameters. Generic version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/sem_close.c b/sysdeps/pthread/sem_close.c
index 3652531..e989ed8 100644
--- a/sysdeps/pthread/sem_close.c
+++ b/sysdeps/pthread/sem_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c
index e412361..e5eacb5 100644
--- a/sysdeps/pthread/sem_open.c
+++ b/sysdeps/pthread/sem_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,7 @@
#include <futex-internal.h>
#include <libc-lock.h>
+
#if !PTHREAD_IN_LIBC
/* The private names are not exported from libc. */
# define __link link
@@ -57,11 +58,7 @@ __sem_open (const char *name, int oflag, ...)
}
/* Disable asynchronous cancellation. */
-#ifdef __libc_ptf_call
- int state;
- __libc_ptf_call (__pthread_setcancelstate,
- (PTHREAD_CANCEL_DISABLE, &state), 0);
-#endif
+ int state = __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
/* If the semaphore object has to exist simply open it. */
if ((oflag & O_CREAT) == 0 || (oflag & O_EXCL) == 0)
@@ -76,6 +73,7 @@ __sem_open (const char *name, int oflag, ...)
goto try_create;
/* Return. errno is already set. */
+ result = SEM_FAILED;
}
else
/* Check whether we already have this semaphore mapped and
@@ -213,9 +211,7 @@ __sem_open (const char *name, int oflag, ...)
}
out:
-#ifdef __libc_ptf_call
- __libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0);
-#endif
+ __pthread_setcancelstate (state, NULL);
return result;
}
diff --git a/sysdeps/pthread/sem_routines.c b/sysdeps/pthread/sem_routines.c
index a309249..6208935 100644
--- a/sysdeps/pthread/sem_routines.c
+++ b/sysdeps/pthread/sem_routines.c
@@ -1,5 +1,5 @@
/* Helper code for POSIX semaphore implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/sem_routines.h b/sysdeps/pthread/sem_routines.h
index 4715650..9d0a837 100644
--- a/sysdeps/pthread/sem_routines.h
+++ b/sysdeps/pthread/sem_routines.h
@@ -1,5 +1,5 @@
/* Helper code for POSIX semaphore implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/sem_unlink.c b/sysdeps/pthread/sem_unlink.c
index 67e95b4..428a93a 100644
--- a/sysdeps/pthread/sem_unlink.c
+++ b/sysdeps/pthread/sem_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/semaphore.h b/sysdeps/pthread/semaphore.h
index 8a09633..41e3a37 100644
--- a/sysdeps/pthread/semaphore.h
+++ b/sysdeps/pthread/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_create.c b/sysdeps/pthread/thrd_create.c
index 1b01ace..788eb62 100644
--- a/sysdeps/pthread/thrd_create.c
+++ b/sysdeps/pthread/thrd_create.c
@@ -1,5 +1,5 @@
/* C11 threads thread creation implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_detach.c b/sysdeps/pthread/thrd_detach.c
index ac0c52d..d1a0598 100644
--- a/sysdeps/pthread/thrd_detach.c
+++ b/sysdeps/pthread/thrd_detach.c
@@ -1,5 +1,5 @@
/* C11 threads thread detach implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_equal.c b/sysdeps/pthread/thrd_equal.c
index 5a23e6a..4f0c548 100644
--- a/sysdeps/pthread/thrd_equal.c
+++ b/sysdeps/pthread/thrd_equal.c
@@ -1,5 +1,5 @@
/* C11 threads thread equality check implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_exit.c b/sysdeps/pthread/thrd_exit.c
index b80580e..9207ac2 100644
--- a/sysdeps/pthread/thrd_exit.c
+++ b/sysdeps/pthread/thrd_exit.c
@@ -1,5 +1,5 @@
/* C11 threads thread exit implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_join.c b/sysdeps/pthread/thrd_join.c
index 0cdc4e6..ca9cf3b 100644
--- a/sysdeps/pthread/thrd_join.c
+++ b/sysdeps/pthread/thrd_join.c
@@ -1,5 +1,5 @@
/* C11 threads thread join implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_priv.h b/sysdeps/pthread/thrd_priv.h
index 875f9ea..5d2d260 100644
--- a/sysdeps/pthread/thrd_priv.h
+++ b/sysdeps/pthread/thrd_priv.h
@@ -1,5 +1,5 @@
/* Internal C11 threads definitions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/thrd_sleep.c b/sysdeps/pthread/thrd_sleep.c
index 023a834..1ea12d2 100644
--- a/sysdeps/pthread/thrd_sleep.c
+++ b/sysdeps/pthread/thrd_sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/threads.h b/sysdeps/pthread/threads.h
index 7cade24..44c9bc7 100644
--- a/sysdeps/pthread/threads.h
+++ b/sysdeps/pthread/threads.h
@@ -1,5 +1,5 @@
/* ISO C11 Standard: 7.26 - Thread support library <threads.h>.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tss_create.c b/sysdeps/pthread/tss_create.c
index d41bd5d..b99e80d 100644
--- a/sysdeps/pthread/tss_create.c
+++ b/sysdeps/pthread/tss_create.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific creation implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tss_delete.c b/sysdeps/pthread/tss_delete.c
index cc1feac..584f878 100644
--- a/sysdeps/pthread/tss_delete.c
+++ b/sysdeps/pthread/tss_delete.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific delete implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tss_get.c b/sysdeps/pthread/tss_get.c
index 97d72ad..bb31cb1 100644
--- a/sysdeps/pthread/tss_get.c
+++ b/sysdeps/pthread/tss_get.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific get implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tss_set.c b/sysdeps/pthread/tss_set.c
index 5b525f0..a751c37 100644
--- a/sysdeps/pthread/tss_set.c
+++ b/sysdeps/pthread/tss_set.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific set implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-_res1.c b/sysdeps/pthread/tst-_res1.c
index 5fbb5e4..372c846 100644
--- a/sysdeps/pthread/tst-_res1.c
+++ b/sysdeps/pthread/tst-_res1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-_res1mod1.c b/sysdeps/pthread/tst-_res1mod1.c
index cfeb8f3..56f0239 100644
--- a/sysdeps/pthread/tst-_res1mod1.c
+++ b/sysdeps/pthread/tst-_res1mod1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-abstime.c b/sysdeps/pthread/tst-abstime.c
index faeb04b..b111846 100644
--- a/sysdeps/pthread/tst-abstime.c
+++ b/sysdeps/pthread/tst-abstime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork1.c b/sysdeps/pthread/tst-atfork1.c
index 1c35366..84999b5 100644
--- a/sysdeps/pthread/tst-atfork1.c
+++ b/sysdeps/pthread/tst-atfork1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork2.c b/sysdeps/pthread/tst-atfork2.c
index 6255150..9f97baf 100644
--- a/sysdeps/pthread/tst-atfork2.c
+++ b/sysdeps/pthread/tst-atfork2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork2mod.c b/sysdeps/pthread/tst-atfork2mod.c
index 72af4ea..2c3e0a7 100644
--- a/sysdeps/pthread/tst-atfork2mod.c
+++ b/sysdeps/pthread/tst-atfork2mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork3.c b/sysdeps/pthread/tst-atfork3.c
index ad2477a..f6556ed 100644
--- a/sysdeps/pthread/tst-atfork3.c
+++ b/sysdeps/pthread/tst-atfork3.c
@@ -1,5 +1,5 @@
/* Check if pthread_atfork handler can call dlclose (BZ#24595).
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork3mod.c b/sysdeps/pthread/tst-atfork3mod.c
index 932f113..9b48f64 100644
--- a/sysdeps/pthread/tst-atfork3mod.c
+++ b/sysdeps/pthread/tst-atfork3mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork4.c b/sysdeps/pthread/tst-atfork4.c
index ea2f98f..9153314 100644
--- a/sysdeps/pthread/tst-atfork4.c
+++ b/sysdeps/pthread/tst-atfork4.c
@@ -1,5 +1,5 @@
/* pthread_atfork supports handlers that call pthread_atfork or dlclose.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-atfork4mod.c b/sysdeps/pthread/tst-atfork4mod.c
index b51621e..650d32a 100644
--- a/sysdeps/pthread/tst-atfork4mod.c
+++ b/sysdeps/pthread/tst-atfork4mod.c
@@ -1,5 +1,5 @@
/* pthread_atfork supports handlers that call pthread_atfork or dlclose.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-attr1.c b/sysdeps/pthread/tst-attr1.c
index f1d8809..187ac19 100644
--- a/sysdeps/pthread/tst-attr1.c
+++ b/sysdeps/pthread/tst-attr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-backtrace1.c b/sysdeps/pthread/tst-backtrace1.c
index 069eac4..01b8a0c 100644
--- a/sysdeps/pthread/tst-backtrace1.c
+++ b/sysdeps/pthread/tst-backtrace1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-bad-schedattr.c b/sysdeps/pthread/tst-bad-schedattr.c
index 2576bb8..2458fc3 100644
--- a/sysdeps/pthread/tst-bad-schedattr.c
+++ b/sysdeps/pthread/tst-bad-schedattr.c
@@ -1,5 +1,5 @@
/* Test that pthread_create diagnoses invalid scheduling parameters.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-barrier1.c b/sysdeps/pthread/tst-barrier1.c
index 705f01d..f93e565 100644
--- a/sysdeps/pthread/tst-barrier1.c
+++ b/sysdeps/pthread/tst-barrier1.c
@@ -1,5 +1,5 @@
/* Tests barrier initialization.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-barrier2.c b/sysdeps/pthread/tst-barrier2.c
index 77d367b..02e3b50 100644
--- a/sysdeps/pthread/tst-barrier2.c
+++ b/sysdeps/pthread/tst-barrier2.c
@@ -1,5 +1,5 @@
/* Tests process-shared barriers.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-barrier3.c b/sysdeps/pthread/tst-barrier3.c
index 544d96c..38d7183 100644
--- a/sysdeps/pthread/tst-barrier3.c
+++ b/sysdeps/pthread/tst-barrier3.c
@@ -1,5 +1,5 @@
/* Test of POSIX barriers.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-barrier4.c b/sysdeps/pthread/tst-barrier4.c
index 73deb6c..e5ccd87 100644
--- a/sysdeps/pthread/tst-barrier4.c
+++ b/sysdeps/pthread/tst-barrier4.c
@@ -1,5 +1,5 @@
/* This tests destruction of a barrier right after waiting on it.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic1.c b/sysdeps/pthread/tst-basic1.c
index bada378..23a0273 100644
--- a/sysdeps/pthread/tst-basic1.c
+++ b/sysdeps/pthread/tst-basic1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic2.c b/sysdeps/pthread/tst-basic2.c
index a273299..41e82a5 100644
--- a/sysdeps/pthread/tst-basic2.c
+++ b/sysdeps/pthread/tst-basic2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic3.c b/sysdeps/pthread/tst-basic3.c
index 860218c..b284996 100644
--- a/sysdeps/pthread/tst-basic3.c
+++ b/sysdeps/pthread/tst-basic3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic4.c b/sysdeps/pthread/tst-basic4.c
index d8f791b..aa7f0fd 100644
--- a/sysdeps/pthread/tst-basic4.c
+++ b/sysdeps/pthread/tst-basic4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic5.c b/sysdeps/pthread/tst-basic5.c
index 015ce5a..66ffd52 100644
--- a/sysdeps/pthread/tst-basic5.c
+++ b/sysdeps/pthread/tst-basic5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-basic6.c b/sysdeps/pthread/tst-basic6.c
index 0e8406f..d462b93 100644
--- a/sysdeps/pthread/tst-basic6.c
+++ b/sysdeps/pthread/tst-basic6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-call-once.c b/sysdeps/pthread/tst-call-once.c
index 2970a96..4f17af3 100644
--- a/sysdeps/pthread/tst-call-once.c
+++ b/sysdeps/pthread/tst-call-once.c
@@ -1,5 +1,5 @@
/* C11 threads call_once test.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel-self-cancelstate.c b/sysdeps/pthread/tst-cancel-self-cancelstate.c
index 7890fbd..8e0fc80 100644
--- a/sysdeps/pthread/tst-cancel-self-cancelstate.c
+++ b/sysdeps/pthread/tst-cancel-self-cancelstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel-self-canceltype.c b/sysdeps/pthread/tst-cancel-self-canceltype.c
index dd2c448..ced892c 100644
--- a/sysdeps/pthread/tst-cancel-self-canceltype.c
+++ b/sysdeps/pthread/tst-cancel-self-canceltype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel-self-cleanup.c b/sysdeps/pthread/tst-cancel-self-cleanup.c
index 2e23422..bd680bb 100644
--- a/sysdeps/pthread/tst-cancel-self-cleanup.c
+++ b/sysdeps/pthread/tst-cancel-self-cleanup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel-self-testcancel.c b/sysdeps/pthread/tst-cancel-self-testcancel.c
index 822ca23..253456a 100644
--- a/sysdeps/pthread/tst-cancel-self-testcancel.c
+++ b/sysdeps/pthread/tst-cancel-self-testcancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel-self.c b/sysdeps/pthread/tst-cancel-self.c
index f62e1c8..de11c66 100644
--- a/sysdeps/pthread/tst-cancel-self.c
+++ b/sysdeps/pthread/tst-cancel-self.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel1.c b/sysdeps/pthread/tst-cancel1.c
index 79ae095..f1d1550 100644
--- a/sysdeps/pthread/tst-cancel1.c
+++ b/sysdeps/pthread/tst-cancel1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel10.c b/sysdeps/pthread/tst-cancel10.c
index 313bde3..05edbe7 100644
--- a/sysdeps/pthread/tst-cancel10.c
+++ b/sysdeps/pthread/tst-cancel10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel11.c b/sysdeps/pthread/tst-cancel11.c
index 2c5e9ae..5591b85 100644
--- a/sysdeps/pthread/tst-cancel11.c
+++ b/sysdeps/pthread/tst-cancel11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel12.c b/sysdeps/pthread/tst-cancel12.c
index 3483acb..872c747 100644
--- a/sysdeps/pthread/tst-cancel12.c
+++ b/sysdeps/pthread/tst-cancel12.c
@@ -1,5 +1,5 @@
/* Test sem_wait cancellation for uncontended case.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel13.c b/sysdeps/pthread/tst-cancel13.c
index fc298e0..7df7186 100644
--- a/sysdeps/pthread/tst-cancel13.c
+++ b/sysdeps/pthread/tst-cancel13.c
@@ -1,5 +1,5 @@
/* Test sem_wait cancellation for contended case.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel14.c b/sysdeps/pthread/tst-cancel14.c
index 0254d62..e9d29bf 100644
--- a/sysdeps/pthread/tst-cancel14.c
+++ b/sysdeps/pthread/tst-cancel14.c
@@ -1,5 +1,5 @@
/* Test sem_timedwait cancellation for uncontended case.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel15.c b/sysdeps/pthread/tst-cancel15.c
index d509fb1..de04b52 100644
--- a/sysdeps/pthread/tst-cancel15.c
+++ b/sysdeps/pthread/tst-cancel15.c
@@ -1,5 +1,5 @@
/* Test sem_timedwait cancellation for contended case.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel16.c b/sysdeps/pthread/tst-cancel16.c
index 37732a4..4c02d69 100644
--- a/sysdeps/pthread/tst-cancel16.c
+++ b/sysdeps/pthread/tst-cancel16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel18.c b/sysdeps/pthread/tst-cancel18.c
index 7975bf3..75331f5 100644
--- a/sysdeps/pthread/tst-cancel18.c
+++ b/sysdeps/pthread/tst-cancel18.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel19.c b/sysdeps/pthread/tst-cancel19.c
index 07265f3..8c81c28 100644
--- a/sysdeps/pthread/tst-cancel19.c
+++ b/sysdeps/pthread/tst-cancel19.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel2.c b/sysdeps/pthread/tst-cancel2.c
index ac38b50..f714e2d 100644
--- a/sysdeps/pthread/tst-cancel2.c
+++ b/sysdeps/pthread/tst-cancel2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,10 @@ tf (void *arg)
char buf[100000];
while (write (fd[1], buf, sizeof (buf)) > 0);
+ /* The write can return -1/EPIPE if the pipe was closed before the
+ thread calls write, which signals a side-effect that must be
+ signaled to the thread. */
+ pthread_testcancel ();
return (void *) 42l;
}
diff --git a/sysdeps/pthread/tst-cancel20.c b/sysdeps/pthread/tst-cancel20.c
index e612fc1..0089ad3 100644
--- a/sysdeps/pthread/tst-cancel20.c
+++ b/sysdeps/pthread/tst-cancel20.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel21.c b/sysdeps/pthread/tst-cancel21.c
index 75064fc..018d9f4 100644
--- a/sysdeps/pthread/tst-cancel21.c
+++ b/sysdeps/pthread/tst-cancel21.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel22.c b/sysdeps/pthread/tst-cancel22.c
index 3ec6678..d5e0850 100644
--- a/sysdeps/pthread/tst-cancel22.c
+++ b/sysdeps/pthread/tst-cancel22.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel26.c b/sysdeps/pthread/tst-cancel26.c
index c36321e..cff75ed 100644
--- a/sysdeps/pthread/tst-cancel26.c
+++ b/sysdeps/pthread/tst-cancel26.c
@@ -1,5 +1,5 @@
/* Check for failure paths handling for cancellation points.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel27.c b/sysdeps/pthread/tst-cancel27.c
index 1566676..0814fd7 100644
--- a/sysdeps/pthread/tst-cancel27.c
+++ b/sysdeps/pthread/tst-cancel27.c
@@ -1,5 +1,5 @@
/* Check for failure paths handling for cancellation points.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel28.c b/sysdeps/pthread/tst-cancel28.c
index 2280d57..b66965a 100644
--- a/sysdeps/pthread/tst-cancel28.c
+++ b/sysdeps/pthread/tst-cancel28.c
@@ -1,6 +1,6 @@
/* Check if the thread created by POSIX timer using SIGEV_THREAD is
cancellable.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -52,7 +52,7 @@ thread_handler (union sigval sv)
static int
do_test (void)
{
- struct sigevent sev = { 0 };
+ struct sigevent sev = { };
sev.sigev_notify = SIGEV_THREAD;
sev.sigev_notify_function = &thread_handler;
@@ -61,7 +61,7 @@ do_test (void)
xpthread_barrier_init (&barrier, NULL, 2);
- struct itimerspec trigger = { 0 };
+ struct itimerspec trigger = { };
trigger.it_value.tv_nsec = 1000000;
TEST_COMPARE (timer_settime (timerid, 0, &trigger, NULL), 0);
diff --git a/sysdeps/pthread/tst-cancel29.c b/sysdeps/pthread/tst-cancel29.c
index 47a34c0..aff4ea6 100644
--- a/sysdeps/pthread/tst-cancel29.c
+++ b/sysdeps/pthread/tst-cancel29.c
@@ -1,7 +1,7 @@
/* Check if a thread that disables cancellation and which call functions
that might be interrupted by a signal do not see the internal SIGCANCEL.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel3.c b/sysdeps/pthread/tst-cancel3.c
index 368be82..4a58286 100644
--- a/sysdeps/pthread/tst-cancel3.c
+++ b/sysdeps/pthread/tst-cancel3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel30.c b/sysdeps/pthread/tst-cancel30.c
index 94ad628..2a854cb 100644
--- a/sysdeps/pthread/tst-cancel30.c
+++ b/sysdeps/pthread/tst-cancel30.c
@@ -1,7 +1,7 @@
/* Check if printf like functions does not disable asynchronous cancellation
mode (BZ#29214).
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel32.c b/sysdeps/pthread/tst-cancel32.c
new file mode 100644
index 0000000..ab550c1
--- /dev/null
+++ b/sysdeps/pthread/tst-cancel32.c
@@ -0,0 +1,73 @@
+/* Check if pthread_setcanceltype disables asynchronous cancellation
+ once cancellation happens (BZ 32782)
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The pthread_setcanceltype is a cancellation entrypoint, and if
+ asynchronous is enabled and the cancellation starts (on the second
+ pthread_setcanceltype call), the asynchronous should not restart
+ the process. */
+
+#include <support/xthread.h>
+
+#define NITER 1000
+#define NTHREADS 8
+
+static void
+tf_cleanup (void *arg)
+{
+}
+
+static void *
+tf (void *closure)
+{
+ pthread_cleanup_push (tf_cleanup, NULL);
+ for (;;)
+ {
+ /* The only possible failure for pthread_setcanceltype is an
+ invalid state type. */
+ pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
+ pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL);
+ }
+ pthread_cleanup_pop (1);
+
+ return NULL;
+}
+
+static void
+poll_threads (int nthreads)
+{
+ pthread_t thr[nthreads];
+ for (int i = 0; i < nthreads; i++)
+ thr[i] = xpthread_create (NULL, tf, NULL);
+ for (int i = 0; i < nthreads; i++)
+ xpthread_cancel (thr[i]);
+ for (int i = 0; i < nthreads; i++)
+ xpthread_join (thr[i]);
+}
+
+static int
+do_test (void)
+{
+ for (int k = 0; k < NITER; k++)
+ poll_threads (NTHREADS);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-cancel4-common.c b/sysdeps/pthread/tst-cancel4-common.c
index ee8e5fa..920bc68 100644
--- a/sysdeps/pthread/tst-cancel4-common.c
+++ b/sysdeps/pthread/tst-cancel4-common.c
@@ -1,6 +1,6 @@
/* Common file for all tst-cancel4_*
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel4-common.h b/sysdeps/pthread/tst-cancel4-common.h
index 890cc35..27fe74b 100644
--- a/sysdeps/pthread/tst-cancel4-common.h
+++ b/sysdeps/pthread/tst-cancel4-common.h
@@ -1,6 +1,6 @@
/* Common definition for tst-cancel4_* tests.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel4.c b/sysdeps/pthread/tst-cancel4.c
index f9c895d..7a95938 100644
--- a/sysdeps/pthread/tst-cancel4.c
+++ b/sysdeps/pthread/tst-cancel4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel6.c b/sysdeps/pthread/tst-cancel6.c
index bdd41ff..a95cddd 100644
--- a/sysdeps/pthread/tst-cancel6.c
+++ b/sysdeps/pthread/tst-cancel6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel8.c b/sysdeps/pthread/tst-cancel8.c
index 0d2f517..f82c1c9 100644
--- a/sysdeps/pthread/tst-cancel8.c
+++ b/sysdeps/pthread/tst-cancel8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cancel9.c b/sysdeps/pthread/tst-cancel9.c
index 900da5e..2f40163 100644
--- a/sysdeps/pthread/tst-cancel9.c
+++ b/sysdeps/pthread/tst-cancel9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cleanup0.c b/sysdeps/pthread/tst-cleanup0.c
index f018b49..42bd792 100644
--- a/sysdeps/pthread/tst-cleanup0.c
+++ b/sysdeps/pthread/tst-cleanup0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cleanup1.c b/sysdeps/pthread/tst-cleanup1.c
index 9f8f12e..6c3584c 100644
--- a/sysdeps/pthread/tst-cleanup1.c
+++ b/sysdeps/pthread/tst-cleanup1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cleanup2.c b/sysdeps/pthread/tst-cleanup2.c
index fd305a8..d2c5dde 100644
--- a/sysdeps/pthread/tst-cleanup2.c
+++ b/sysdeps/pthread/tst-cleanup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cleanup3.c b/sysdeps/pthread/tst-cleanup3.c
index 659ac2e..8e1b444 100644
--- a/sysdeps/pthread/tst-cleanup3.c
+++ b/sysdeps/pthread/tst-cleanup3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-clock1.c b/sysdeps/pthread/tst-clock1.c
index edc0114..7aacc85 100644
--- a/sysdeps/pthread/tst-clock1.c
+++ b/sysdeps/pthread/tst-clock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cnd-basic.c b/sysdeps/pthread/tst-cnd-basic.c
index 6e1aadf..ef67f81 100644
--- a/sysdeps/pthread/tst-cnd-basic.c
+++ b/sysdeps/pthread/tst-cnd-basic.c
@@ -1,5 +1,5 @@
/* C11 threads condition variable tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cnd-broadcast.c b/sysdeps/pthread/tst-cnd-broadcast.c
index 7bedd70..5a713c0 100644
--- a/sysdeps/pthread/tst-cnd-broadcast.c
+++ b/sysdeps/pthread/tst-cnd-broadcast.c
@@ -1,5 +1,5 @@
/* C11 threads condition broadcast variable tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cnd-timedwait.c b/sysdeps/pthread/tst-cnd-timedwait.c
index 9418ca9..a049916 100644
--- a/sysdeps/pthread/tst-cnd-timedwait.c
+++ b/sysdeps/pthread/tst-cnd-timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads condition timed wait variable tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond-except.c b/sysdeps/pthread/tst-cond-except.c
index aa1b4b6..1cdc237 100644
--- a/sysdeps/pthread/tst-cond-except.c
+++ b/sysdeps/pthread/tst-cond-except.c
@@ -1,5 +1,5 @@
/* Verify that exception table for pthread_cond_wait is correct.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond1.c b/sysdeps/pthread/tst-cond1.c
index 224bb9e..a7ec048 100644
--- a/sysdeps/pthread/tst-cond1.c
+++ b/sysdeps/pthread/tst-cond1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond10.c b/sysdeps/pthread/tst-cond10.c
index 14ff8f8..6984b28 100644
--- a/sysdeps/pthread/tst-cond10.c
+++ b/sysdeps/pthread/tst-cond10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond11.c b/sysdeps/pthread/tst-cond11.c
index 3582c44..02c5346 100644
--- a/sysdeps/pthread/tst-cond11.c
+++ b/sysdeps/pthread/tst-cond11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond12.c b/sysdeps/pthread/tst-cond12.c
index 046e4b1..73ce692 100644
--- a/sysdeps/pthread/tst-cond12.c
+++ b/sysdeps/pthread/tst-cond12.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond14.c b/sysdeps/pthread/tst-cond14.c
index e410a36..bdf6331 100644
--- a/sysdeps/pthread/tst-cond14.c
+++ b/sysdeps/pthread/tst-cond14.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond15.c b/sysdeps/pthread/tst-cond15.c
index 9c63454..c3f8bb9 100644
--- a/sysdeps/pthread/tst-cond15.c
+++ b/sysdeps/pthread/tst-cond15.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond16.c b/sysdeps/pthread/tst-cond16.c
index a06b8df..7aa45d9 100644
--- a/sysdeps/pthread/tst-cond16.c
+++ b/sysdeps/pthread/tst-cond16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond18.c b/sysdeps/pthread/tst-cond18.c
index 5df5e08..0d5fd9c 100644
--- a/sysdeps/pthread/tst-cond18.c
+++ b/sysdeps/pthread/tst-cond18.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond19.c b/sysdeps/pthread/tst-cond19.c
index 9b42f34..55735a5 100644
--- a/sysdeps/pthread/tst-cond19.c
+++ b/sysdeps/pthread/tst-cond19.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond2.c b/sysdeps/pthread/tst-cond2.c
index ccbf139..7d93f14 100644
--- a/sysdeps/pthread/tst-cond2.c
+++ b/sysdeps/pthread/tst-cond2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond20.c b/sysdeps/pthread/tst-cond20.c
index 1415874..5e6364d 100644
--- a/sysdeps/pthread/tst-cond20.c
+++ b/sysdeps/pthread/tst-cond20.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond23.c b/sysdeps/pthread/tst-cond23.c
index 4a86eff..0a68472 100644
--- a/sysdeps/pthread/tst-cond23.c
+++ b/sysdeps/pthread/tst-cond23.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond24.c b/sysdeps/pthread/tst-cond24.c
index 9fbf395..983ba52 100644
--- a/sysdeps/pthread/tst-cond24.c
+++ b/sysdeps/pthread/tst-cond24.c
@@ -1,5 +1,5 @@
/* Verify that condition variables synchronized by PI mutexes don't hang.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond25.c b/sysdeps/pthread/tst-cond25.c
index 28967ce..7f61d42 100644
--- a/sysdeps/pthread/tst-cond25.c
+++ b/sysdeps/pthread/tst-cond25.c
@@ -1,6 +1,6 @@
/* Verify that condition variables synchronized by PI mutexes don't hang on
on cancellation.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond27.c b/sysdeps/pthread/tst-cond27.c
index 71bfb6f..eb49c68 100644
--- a/sysdeps/pthread/tst-cond27.c
+++ b/sysdeps/pthread/tst-cond27.c
@@ -1,6 +1,6 @@
/* Test pthread_cond_clockwait timeout.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond3.c b/sysdeps/pthread/tst-cond3.c
index 7e52ade..7e9075a 100644
--- a/sysdeps/pthread/tst-cond3.c
+++ b/sysdeps/pthread/tst-cond3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond4.c b/sysdeps/pthread/tst-cond4.c
index d1734ad..c15fbcc 100644
--- a/sysdeps/pthread/tst-cond4.c
+++ b/sysdeps/pthread/tst-cond4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond5.c b/sysdeps/pthread/tst-cond5.c
index d0a9e01..bcac5c2 100644
--- a/sysdeps/pthread/tst-cond5.c
+++ b/sysdeps/pthread/tst-cond5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond6.c b/sysdeps/pthread/tst-cond6.c
index 1a0c5c3..ed140ac 100644
--- a/sysdeps/pthread/tst-cond6.c
+++ b/sysdeps/pthread/tst-cond6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond7.c b/sysdeps/pthread/tst-cond7.c
index b43695d..bd840cb 100644
--- a/sysdeps/pthread/tst-cond7.c
+++ b/sysdeps/pthread/tst-cond7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond8.c b/sysdeps/pthread/tst-cond8.c
index bb54df9..322a864 100644
--- a/sysdeps/pthread/tst-cond8.c
+++ b/sysdeps/pthread/tst-cond8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-cond9.c b/sysdeps/pthread/tst-cond9.c
index 564f1ed..d2024d4 100644
--- a/sysdeps/pthread/tst-cond9.c
+++ b/sysdeps/pthread/tst-cond9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-create-detached.c b/sysdeps/pthread/tst-create-detached.c
index 7b6a0c3..9fd5795 100644
--- a/sysdeps/pthread/tst-create-detached.c
+++ b/sysdeps/pthread/tst-create-detached.c
@@ -1,5 +1,5 @@
/* Bug 20116: Test rapid creation of detached threads.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-create1.c b/sysdeps/pthread/tst-create1.c
index d5a44d0..cd8c137 100644
--- a/sysdeps/pthread/tst-create1.c
+++ b/sysdeps/pthread/tst-create1.c
@@ -1,5 +1,5 @@
/* Verify that pthread_create does not deadlock when ctors take locks.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-create1mod.c b/sysdeps/pthread/tst-create1mod.c
index 9754409..ea08107 100644
--- a/sysdeps/pthread/tst-create1mod.c
+++ b/sysdeps/pthread/tst-create1mod.c
@@ -1,5 +1,5 @@
/* Verify that pthread_create does not deadlock when ctors take locks.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-detach1.c b/sysdeps/pthread/tst-detach1.c
index 08983db..1be3799 100644
--- a/sysdeps/pthread/tst-detach1.c
+++ b/sysdeps/pthread/tst-detach1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-eintr2.c b/sysdeps/pthread/tst-eintr2.c
index d3b8051..e27c04d 100644
--- a/sysdeps/pthread/tst-eintr2.c
+++ b/sysdeps/pthread/tst-eintr2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-eintr3.c b/sysdeps/pthread/tst-eintr3.c
index c57c848..dee94a4 100644
--- a/sysdeps/pthread/tst-eintr3.c
+++ b/sysdeps/pthread/tst-eintr3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-eintr4.c b/sysdeps/pthread/tst-eintr4.c
index ae9a18f..9df4a9f 100644
--- a/sysdeps/pthread/tst-eintr4.c
+++ b/sysdeps/pthread/tst-eintr4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-eintr5.c b/sysdeps/pthread/tst-eintr5.c
index 631626e..fdae541 100644
--- a/sysdeps/pthread/tst-eintr5.c
+++ b/sysdeps/pthread/tst-eintr5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-exec1.c b/sysdeps/pthread/tst-exec1.c
index 5f7fc9a..42d8ff7 100644
--- a/sysdeps/pthread/tst-exec1.c
+++ b/sysdeps/pthread/tst-exec1.c
@@ -1,5 +1,5 @@
/* Simple exec test, only a thread in the parent.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-exec2.c b/sysdeps/pthread/tst-exec2.c
index c86df18..befe1c6 100644
--- a/sysdeps/pthread/tst-exec2.c
+++ b/sysdeps/pthread/tst-exec2.c
@@ -1,5 +1,5 @@
/* Thread with running thread calls exec.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-exec3.c b/sysdeps/pthread/tst-exec3.c
index 6772df2..3b38249 100644
--- a/sysdeps/pthread/tst-exec3.c
+++ b/sysdeps/pthread/tst-exec3.c
@@ -1,5 +1,5 @@
/* Thread calls exec.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-exit1.c b/sysdeps/pthread/tst-exit1.c
index 9fe489f..449bdcd 100644
--- a/sysdeps/pthread/tst-exit1.c
+++ b/sysdeps/pthread/tst-exit1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fini1.c b/sysdeps/pthread/tst-fini1.c
index ad6951f..36b6fc5 100644
--- a/sysdeps/pthread/tst-fini1.c
+++ b/sysdeps/pthread/tst-fini1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fini1mod.c b/sysdeps/pthread/tst-fini1mod.c
index ae29455..1f71ac7 100644
--- a/sysdeps/pthread/tst-fini1mod.c
+++ b/sysdeps/pthread/tst-fini1mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-flock1.c b/sysdeps/pthread/tst-flock1.c
index 99ae837..ead86cd 100644
--- a/sysdeps/pthread/tst-flock1.c
+++ b/sysdeps/pthread/tst-flock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-flock2.c b/sysdeps/pthread/tst-flock2.c
index 49b9156..68d55fb 100644
--- a/sysdeps/pthread/tst-flock2.c
+++ b/sysdeps/pthread/tst-flock2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c
new file mode 100644
index 0000000..ade58ad
--- /dev/null
+++ b/sysdeps/pthread/tst-fopen-threaded.c
@@ -0,0 +1,258 @@
+/* Test for fread and fwrite with multiple threads.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Description of test intent.
+ The test creates NUM_THREADS threads for reading and writing to the
+ prepared file. The prepared file contains 'NUM_THREADS - 1' bytes
+ where each byte is unique number from 0 to 'NUM_THREADS - 2'. If all
+ operations are correctly multi-threaded safe then all concurent read
+ operations should succeed and read a unique 1 byte value. The last
+ thread to read should get an EOF. In concurrent write, all write
+ operations should succeed and the file should contain all unique 1
+ byte values from 0 to 'NUM_THREADS - 1'. Both concurrent read and
+ concurrent write tests are repeated ITERS times to increase
+ the probability of detecting concurrency issues. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <support/check.h>
+#include <support/temp_file.h>
+#include <support/xstdio.h>
+#include <support/xthread.h>
+
+#define NUM_THREADS 100
+#define ITERS 10
+
+char *temp_file;
+pthread_barrier_t barrier;
+
+struct thread_data
+{
+ FILE *fd;
+ /* Read value or value to be written. */
+ unsigned char value;
+ bool eof;
+};
+
+static void *
+threadReadRoutine (void *argv)
+{
+ struct thread_data *my_data;
+ unsigned char read_buffer;
+ int ret = 0;
+ my_data = (struct thread_data *) argv;
+ /* Wait for all threads to be ready to read. */
+ xpthread_barrier_wait (&barrier);
+
+ ret = fread (&read_buffer, 1, sizeof (read_buffer), my_data->fd);
+ /* If no data is returned (we read only 1 byte, so there's no short read
+ situation here), look for EOF flag and record it in MY_DATA. The EOF flag
+ is not cleared because that could result in a test failure being masked
+ when two threads fail to read and one of them clears error/EOF flags
+ before the second one has the chance to observe it.
+
+ Successful readers could still see the EOF if they fall behind the failing
+ read when calling feof(), which could result in a false test failure. To
+ avoid this race, we only make the failing reader check for EOF or
+ error. */
+ if (ret == 0)
+ {
+ if (feof (my_data->fd) != 0)
+ my_data->eof = true;
+ else
+ FAIL_EXIT1 ("fread failed (ferror: %d): %m", ferror (my_data->fd));
+ }
+ else
+ /* Save the read value. */
+ my_data->value = read_buffer;
+ TEST_COMPARE (ferror (my_data->fd), 0);
+ return NULL;
+}
+
+void *
+threadWriteRoutine (void *argv)
+{
+ struct thread_data *my_data;
+ int ret = 0;
+ my_data = (struct thread_data *) argv;
+ /* Wait for all threads to be ready to write. */
+ xpthread_barrier_wait (&barrier);
+
+ ret = fwrite (&my_data->value, sizeof (unsigned char), 1, my_data->fd);
+ TEST_COMPARE (ferror (my_data->fd), 0);
+ TEST_COMPARE (feof (my_data->fd), 0);
+ TEST_COMPARE (ret, 1);
+ return NULL;
+}
+
+void *
+threadOpenCloseRoutine (void *argv)
+{
+ /* Wait for all threads to be ready to call fopen and fclose. */
+ xpthread_barrier_wait (&barrier);
+
+ FILE *fd = xfopen ("/tmp/openclosetest", "w+");
+ xfclose (fd);
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ FILE *fd_file = NULL;
+ unsigned char buffer[NUM_THREADS] = "0";
+ size_t ret = 0;
+ pthread_t threads[NUM_THREADS];
+ struct thread_data thread_data_array[NUM_THREADS];
+ bool present_values[NUM_THREADS] = { false };
+
+ /* Prepare files. */
+ for (int i = 0; i < NUM_THREADS; i++)
+ buffer[i] = i;
+ int fd = create_temp_file ("tst-fopen.", &temp_file);
+ TEST_VERIFY_EXIT (fd != -1);
+ fd_file = fdopen (fd, "w");
+ /* NUM_THREADS - 1: last thread will read EOF */
+ ret = fwrite (buffer, sizeof (unsigned char), NUM_THREADS - 1, fd_file);
+ TEST_COMPARE (ret, NUM_THREADS - 1);
+ xfclose (fd_file);
+
+ /* Test 1: Concurrent read. */
+ for (int reps = 1; reps <= ITERS; reps++)
+ {
+ fd_file = xfopen (temp_file, "r");
+ xpthread_barrier_init (&barrier, NULL, NUM_THREADS);
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ thread_data_array[i].fd = fd_file;
+ /* Initialize with highest possible value so it's easier to debug if
+ anything goes wrong. */
+ thread_data_array[i].value = 255;
+ thread_data_array[i].eof = false;
+
+ threads[i] =
+ xpthread_create (support_small_stack_thread_attribute (),
+ threadReadRoutine,
+ (void *) &thread_data_array[i]);
+ }
+
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ xpthread_join (threads[i]);
+ }
+ xpthread_barrier_destroy (&barrier);
+ xfclose (fd_file);
+
+ /* Verify read values. */
+ int eof_cnt = 0;
+ for (int i = 0; i < NUM_THREADS; i++)
+ present_values[i] = false;
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ if (thread_data_array[i].eof)
+ {
+ /* EOF was read. */
+ present_values[NUM_THREADS - 1] = true;
+ eof_cnt++;
+ }
+ else
+ {
+ /* The same value shouldn't be read twice. */
+ TEST_VERIFY (!present_values[thread_data_array[i].value]);
+ present_values[thread_data_array[i].value] = true;
+ }
+ }
+ /* EOF is read exactly once. */
+ TEST_COMPARE (eof_cnt, 1);
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ /* All values should be read. */
+ TEST_VERIFY (present_values[i]);
+ }
+ }
+
+ /* Test 2: Concurrent write. */
+ for (int reps = 1; reps <= ITERS; reps++)
+ {
+ fd_file = xfopen (temp_file, "w");
+ xpthread_barrier_init (&barrier, NULL, NUM_THREADS);
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ thread_data_array[i].fd = fd_file;
+ thread_data_array[i].value = i;
+
+ threads[i] =
+ xpthread_create (support_small_stack_thread_attribute (),
+ threadWriteRoutine,
+ (void *) &thread_data_array[i]);
+ }
+
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ xpthread_join (threads[i]);
+ }
+ xpthread_barrier_destroy (&barrier);
+ xfclose (fd_file);
+
+ /* Verify written values. */
+ for (int i = 0; i < NUM_THREADS; i++)
+ present_values[i] = false;
+ memset (buffer, 0, NUM_THREADS);
+ fd_file = xfopen (temp_file, "r");
+ ret = fread (buffer, sizeof (unsigned char), NUM_THREADS, fd_file);
+ TEST_COMPARE (ret, NUM_THREADS);
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ /* The same value shouldn't be written twice. */
+ TEST_VERIFY (!present_values[buffer[i]]);
+ present_values[buffer[i]] = true;
+ }
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ /* All values should be written. */
+ TEST_VERIFY (present_values[i]);
+ }
+ xfclose (fd_file);
+ }
+
+ /* Test 3: Concurrent open/close. */
+ for (int reps = 1; reps <= ITERS; reps++)
+ {
+ xpthread_barrier_init (&barrier, NULL, NUM_THREADS);
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ threads[i] =
+ xpthread_create (support_small_stack_thread_attribute (),
+ threadOpenCloseRoutine, NULL);
+ }
+ for (int i = 0; i < NUM_THREADS; i++)
+ {
+ xpthread_join (threads[i]);
+ }
+ xpthread_barrier_destroy (&barrier);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-fork1.c b/sysdeps/pthread/tst-fork1.c
index 68340c9..4c83593 100644
--- a/sysdeps/pthread/tst-fork1.c
+++ b/sysdeps/pthread/tst-fork1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fork2.c b/sysdeps/pthread/tst-fork2.c
index e1eb3f9..55cc8ce 100644
--- a/sysdeps/pthread/tst-fork2.c
+++ b/sysdeps/pthread/tst-fork2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fork3.c b/sysdeps/pthread/tst-fork3.c
index 58a9e4b..e280f0c 100644
--- a/sysdeps/pthread/tst-fork3.c
+++ b/sysdeps/pthread/tst-fork3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-fork4.c b/sysdeps/pthread/tst-fork4.c
index f32e818..33eb943 100644
--- a/sysdeps/pthread/tst-fork4.c
+++ b/sysdeps/pthread/tst-fork4.c
@@ -1,5 +1,5 @@
/* Test of fork updating child universe's pthread structures.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join1.c b/sysdeps/pthread/tst-join1.c
index aa3967d..766c6d6 100644
--- a/sysdeps/pthread/tst-join1.c
+++ b/sysdeps/pthread/tst-join1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join10.c b/sysdeps/pthread/tst-join10.c
index ee6eb49..4deb0f8 100644
--- a/sysdeps/pthread/tst-join10.c
+++ b/sysdeps/pthread/tst-join10.c
@@ -1,5 +1,5 @@
/* Check if pthread_clockjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join11.c b/sysdeps/pthread/tst-join11.c
index f6d14a9..4912a10 100644
--- a/sysdeps/pthread/tst-join11.c
+++ b/sysdeps/pthread/tst-join11.c
@@ -1,5 +1,5 @@
/* Check if pthread_clockjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join12.c b/sysdeps/pthread/tst-join12.c
index 5ad5ea0..6f28d33 100644
--- a/sysdeps/pthread/tst-join12.c
+++ b/sysdeps/pthread/tst-join12.c
@@ -1,5 +1,5 @@
/* Check if pthread_clockjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join13.c b/sysdeps/pthread/tst-join13.c
index dbc7258..c142b19 100644
--- a/sysdeps/pthread/tst-join13.c
+++ b/sysdeps/pthread/tst-join13.c
@@ -1,5 +1,5 @@
/* Check if pthread_clockjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join14.c b/sysdeps/pthread/tst-join14.c
index 1aa7fde..0831e6e 100644
--- a/sysdeps/pthread/tst-join14.c
+++ b/sysdeps/pthread/tst-join14.c
@@ -1,5 +1,5 @@
/* pthread_timedjoin_np, pthread_clockjoin_np NULL timeout test.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join15.c b/sysdeps/pthread/tst-join15.c
index d1f57cd..cfb9cd4 100644
--- a/sysdeps/pthread/tst-join15.c
+++ b/sysdeps/pthread/tst-join15.c
@@ -1,5 +1,5 @@
/* Check pthread_clockjoin_np clock support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join16-time64.c b/sysdeps/pthread/tst-join16-time64.c
new file mode 100644
index 0000000..730cc56
--- /dev/null
+++ b/sysdeps/pthread/tst-join16-time64.c
@@ -0,0 +1 @@
+#include "tst-join16.c"
diff --git a/sysdeps/pthread/tst-join16.c b/sysdeps/pthread/tst-join16.c
new file mode 100644
index 0000000..f353897
--- /dev/null
+++ b/sysdeps/pthread/tst-join16.c
@@ -0,0 +1,87 @@
+/* Test pthread_timedjoin_np and pthread_clockjoin_np with an invalid timeout.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <time.h>
+#include <support/check.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+
+
+#define CLOCK_USE_TIMEDJOIN (-1)
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+
+static void *
+tf (void *arg)
+{
+ xpthread_mutex_lock (&lock);
+ xpthread_mutex_unlock (&lock);
+ return (void *) 42l;
+}
+
+static int
+do_test_clock (clockid_t clockid)
+{
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDJOIN) ? CLOCK_REALTIME : clockid;
+
+ xpthread_mutex_lock (&lock);
+ pthread_t th = xpthread_create (NULL, tf, NULL);
+
+ void *status;
+ int ret;
+ struct timespec timeout = xclock_now (clockid_for_get);
+ timeout.tv_sec += 2;
+ timeout.tv_nsec = -1;
+ if (clockid == CLOCK_USE_TIMEDJOIN)
+ ret = pthread_timedjoin_np (th, &status, &timeout);
+ else
+ ret = pthread_clockjoin_np (th, &status, clockid, &timeout);
+ TEST_COMPARE (ret, EINVAL);
+ timeout.tv_nsec = 1000000000;
+ if (clockid == CLOCK_USE_TIMEDJOIN)
+ ret = pthread_timedjoin_np (th, &status, &timeout);
+ else
+ ret = pthread_clockjoin_np (th, &status, clockid, &timeout);
+ TEST_COMPARE (ret, EINVAL);
+ xpthread_mutex_unlock (&lock);
+ timeout.tv_nsec = 0;
+ ret = pthread_join (th, &status);
+ TEST_COMPARE (ret, 0);
+ if (status != (void *) 42l)
+ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ puts ("testing pthread_timedjoin_np");
+ do_test_clock (CLOCK_USE_TIMEDJOIN);
+ puts ("testing CLOCK_REALTIME");
+ do_test_clock (CLOCK_REALTIME);
+ puts ("testing CLOCK_MONOTONIC");
+ do_test_clock (CLOCK_MONOTONIC);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-join2.c b/sysdeps/pthread/tst-join2.c
index 95fd8d0..c876c34 100644
--- a/sysdeps/pthread/tst-join2.c
+++ b/sysdeps/pthread/tst-join2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join3.c b/sysdeps/pthread/tst-join3.c
index ea5f37b..4f3060c 100644
--- a/sysdeps/pthread/tst-join3.c
+++ b/sysdeps/pthread/tst-join3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join4.c b/sysdeps/pthread/tst-join4.c
index fbe05a4..61ace70 100644
--- a/sysdeps/pthread/tst-join4.c
+++ b/sysdeps/pthread/tst-join4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join5.c b/sysdeps/pthread/tst-join5.c
index a4e4f55..7c8778f 100644
--- a/sysdeps/pthread/tst-join5.c
+++ b/sysdeps/pthread/tst-join5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join7.c b/sysdeps/pthread/tst-join7.c
index 75e25bc..95d3d29 100644
--- a/sysdeps/pthread/tst-join7.c
+++ b/sysdeps/pthread/tst-join7.c
@@ -1,6 +1,6 @@
/* Verify that TLS access in separate thread in a dlopened library does not
deadlock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join7mod.c b/sysdeps/pthread/tst-join7mod.c
index 6b1278f..77edaea 100644
--- a/sysdeps/pthread/tst-join7mod.c
+++ b/sysdeps/pthread/tst-join7mod.c
@@ -1,6 +1,6 @@
/* Verify that TLS access in separate thread in a dlopened library does not
deadlock - the module.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join8.c b/sysdeps/pthread/tst-join8.c
index fb0797f..b3cec81 100644
--- a/sysdeps/pthread/tst-join8.c
+++ b/sysdeps/pthread/tst-join8.c
@@ -1,5 +1,5 @@
/* Check if pthread_timedjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-join9.c b/sysdeps/pthread/tst-join9.c
index 85bc5ab..d87a404 100644
--- a/sysdeps/pthread/tst-join9.c
+++ b/sysdeps/pthread/tst-join9.c
@@ -1,5 +1,5 @@
/* Check if pthread_timedjoin_np is a cancellation entrypoint.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-key1.c b/sysdeps/pthread/tst-key1.c
index 2de536c..a0e52591 100644
--- a/sysdeps/pthread/tst-key1.c
+++ b/sysdeps/pthread/tst-key1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-key2.c b/sysdeps/pthread/tst-key2.c
index 10f41cf..4004b98 100644
--- a/sysdeps/pthread/tst-key2.c
+++ b/sysdeps/pthread/tst-key2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-key3.c b/sysdeps/pthread/tst-key3.c
index f6783fd..2e95b5e 100644
--- a/sysdeps/pthread/tst-key3.c
+++ b/sysdeps/pthread/tst-key3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-key4.c b/sysdeps/pthread/tst-key4.c
index c4d4725..b317fae 100644
--- a/sysdeps/pthread/tst-key4.c
+++ b/sysdeps/pthread/tst-key4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-kill1.c b/sysdeps/pthread/tst-kill1.c
index d320aae..ef32d19 100644
--- a/sysdeps/pthread/tst-kill1.c
+++ b/sysdeps/pthread/tst-kill1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-kill2.c b/sysdeps/pthread/tst-kill2.c
index 6e7c298..a84c188 100644
--- a/sysdeps/pthread/tst-kill2.c
+++ b/sysdeps/pthread/tst-kill2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-kill3.c b/sysdeps/pthread/tst-kill3.c
index 9e81925..b66c549 100644
--- a/sysdeps/pthread/tst-kill3.c
+++ b/sysdeps/pthread/tst-kill3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-kill5.c b/sysdeps/pthread/tst-kill5.c
index cd9dfc6..b546d7c 100644
--- a/sysdeps/pthread/tst-kill5.c
+++ b/sysdeps/pthread/tst-kill5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-kill6.c b/sysdeps/pthread/tst-kill6.c
index 5e96c3d..cd51dbf 100644
--- a/sysdeps/pthread/tst-kill6.c
+++ b/sysdeps/pthread/tst-kill6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-memstream.c b/sysdeps/pthread/tst-memstream.c
index 8ea760c..0d2bbbc 100644
--- a/sysdeps/pthread/tst-memstream.c
+++ b/sysdeps/pthread/tst-memstream.c
@@ -1,5 +1,5 @@
/* Test for open_memstream locking.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mtx-basic.c b/sysdeps/pthread/tst-mtx-basic.c
index ca449de..c4d89dd 100644
--- a/sysdeps/pthread/tst-mtx-basic.c
+++ b/sysdeps/pthread/tst-mtx-basic.c
@@ -1,5 +1,5 @@
/* C11 threads basic mutex tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mtx-recursive.c b/sysdeps/pthread/tst-mtx-recursive.c
index f24ddfd..ff4f644 100644
--- a/sysdeps/pthread/tst-mtx-recursive.c
+++ b/sysdeps/pthread/tst-mtx-recursive.c
@@ -1,5 +1,5 @@
/* C11 threads recursive mutex tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mtx-timedlock.c b/sysdeps/pthread/tst-mtx-timedlock.c
index 59d5342..dd8f060 100644
--- a/sysdeps/pthread/tst-mtx-timedlock.c
+++ b/sysdeps/pthread/tst-mtx-timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads timed mutex tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mtx-trylock.c b/sysdeps/pthread/tst-mtx-trylock.c
index 65b7a9b..9135078 100644
--- a/sysdeps/pthread/tst-mtx-trylock.c
+++ b/sysdeps/pthread/tst-mtx-trylock.c
@@ -1,5 +1,5 @@
/* C11 threads trylock mutex tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex-errorcheck.c b/sysdeps/pthread/tst-mutex-errorcheck.c
index f44836d..8a08ab9 100644
--- a/sysdeps/pthread/tst-mutex-errorcheck.c
+++ b/sysdeps/pthread/tst-mutex-errorcheck.c
@@ -1,5 +1,5 @@
/* Check that error checking mutexes are not subject to lock elision.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex1.c b/sysdeps/pthread/tst-mutex1.c
index 01ea5ad..d5b1a2d 100644
--- a/sysdeps/pthread/tst-mutex1.c
+++ b/sysdeps/pthread/tst-mutex1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex10.c b/sysdeps/pthread/tst-mutex10.c
index a325840..2346f85 100644
--- a/sysdeps/pthread/tst-mutex10.c
+++ b/sysdeps/pthread/tst-mutex10.c
@@ -1,5 +1,5 @@
/* Testing race while enabling lock elision.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex11.c b/sysdeps/pthread/tst-mutex11.c
index 0beb0a8..b46c91f 100644
--- a/sysdeps/pthread/tst-mutex11.c
+++ b/sysdeps/pthread/tst-mutex11.c
@@ -1,6 +1,6 @@
/* Test unsupported/bad clocks passed to pthread_mutex_clocklock.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex2.c b/sysdeps/pthread/tst-mutex2.c
index 3884e6b..d9e0d2b 100644
--- a/sysdeps/pthread/tst-mutex2.c
+++ b/sysdeps/pthread/tst-mutex2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex3.c b/sysdeps/pthread/tst-mutex3.c
index 389c27f..69283af 100644
--- a/sysdeps/pthread/tst-mutex3.c
+++ b/sysdeps/pthread/tst-mutex3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex4.c b/sysdeps/pthread/tst-mutex4.c
index 3552fe5..bad2071 100644
--- a/sysdeps/pthread/tst-mutex4.c
+++ b/sysdeps/pthread/tst-mutex4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex5.c b/sysdeps/pthread/tst-mutex5.c
index ce689d8..10b231d 100644
--- a/sysdeps/pthread/tst-mutex5.c
+++ b/sysdeps/pthread/tst-mutex5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex6.c b/sysdeps/pthread/tst-mutex6.c
index 3ff58be..946dbf5 100644
--- a/sysdeps/pthread/tst-mutex6.c
+++ b/sysdeps/pthread/tst-mutex6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex7.c b/sysdeps/pthread/tst-mutex7.c
index 65fabeb..fc8220e 100644
--- a/sysdeps/pthread/tst-mutex7.c
+++ b/sysdeps/pthread/tst-mutex7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-mutex9.c b/sysdeps/pthread/tst-mutex9.c
index 89bda47..791dad5 100644
--- a/sysdeps/pthread/tst-mutex9.c
+++ b/sysdeps/pthread/tst-mutex9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-once1.c b/sysdeps/pthread/tst-once1.c
index 92e7e51..8df1b04 100644
--- a/sysdeps/pthread/tst-once1.c
+++ b/sysdeps/pthread/tst-once1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-once2.c b/sysdeps/pthread/tst-once2.c
index 37434b9..e663831 100644
--- a/sysdeps/pthread/tst-once2.c
+++ b/sysdeps/pthread/tst-once2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-once3.c b/sysdeps/pthread/tst-once3.c
index ee4274a..5902d0a 100644
--- a/sysdeps/pthread/tst-once3.c
+++ b/sysdeps/pthread/tst-once3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-once4.c b/sysdeps/pthread/tst-once4.c
index 90ba25e..3b9bcf2 100644
--- a/sysdeps/pthread/tst-once4.c
+++ b/sysdeps/pthread/tst-once4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-align.c b/sysdeps/pthread/tst-pt-align.c
index 6206619..56edb64 100644
--- a/sysdeps/pthread/tst-pt-align.c
+++ b/sysdeps/pthread/tst-pt-align.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-align3.c b/sysdeps/pthread/tst-pt-align3.c
index db619cd..0d5ffa5 100644
--- a/sysdeps/pthread/tst-pt-align3.c
+++ b/sysdeps/pthread/tst-pt-align3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-popen1.c b/sysdeps/pthread/tst-pt-popen1.c
index 1fc7e67..92ee761 100644
--- a/sysdeps/pthread/tst-pt-popen1.c
+++ b/sysdeps/pthread/tst-pt-popen1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-sysconf.c b/sysdeps/pthread/tst-pt-sysconf.c
index 18ebb8f..70d8375 100644
--- a/sysdeps/pthread/tst-pt-sysconf.c
+++ b/sysdeps/pthread/tst-pt-sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-tls1.c b/sysdeps/pthread/tst-pt-tls1.c
index b336333..a4ef146 100644
--- a/sysdeps/pthread/tst-pt-tls1.c
+++ b/sysdeps/pthread/tst-pt-tls1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-tls2.c b/sysdeps/pthread/tst-pt-tls2.c
index 490c9d0..0ce47ec 100644
--- a/sysdeps/pthread/tst-pt-tls2.c
+++ b/sysdeps/pthread/tst-pt-tls2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pt-tls4.c b/sysdeps/pthread/tst-pt-tls4.c
index 1bec047..400c8ee 100644
--- a/sysdeps/pthread/tst-pt-tls4.c
+++ b/sysdeps/pthread/tst-pt-tls4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread-exit-signal.c b/sysdeps/pthread/tst-pthread-exit-signal.c
index cb85d26..1d79837 100644
--- a/sysdeps/pthread/tst-pthread-exit-signal.c
+++ b/sysdeps/pthread/tst-pthread-exit-signal.c
@@ -1,5 +1,5 @@
/* Test that pending signals are not delivered on thread exit (bug 28607).
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread-mutexattr-2.c b/sysdeps/pthread/tst-pthread-mutexattr-2.c
new file mode 100644
index 0000000..76b9648
--- /dev/null
+++ b/sysdeps/pthread/tst-pthread-mutexattr-2.c
@@ -0,0 +1,60 @@
+/* Test pthread_mutexattr_gettype and pthread_mutexattr_settype with
+ valid and invalid kinds.
+
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdio.h>
+#include <pthread.h>
+
+#include <support/check.h>
+#include <support/xthread.h>
+
+
+static void
+do_test_kind (int test_kind, const char *name)
+{
+ printf ("testing %s\n", name);
+ pthread_mutexattr_t attr;
+ xpthread_mutexattr_init (&attr);
+ int ret = pthread_mutexattr_settype (&attr, test_kind);
+ TEST_COMPARE (ret, 0);
+ int kind = 123456789;
+ ret = pthread_mutexattr_gettype (&attr, &kind);
+ TEST_COMPARE (ret, 0);
+ TEST_COMPARE (kind, test_kind);
+}
+
+int
+do_test (void)
+{
+ do_test_kind (PTHREAD_MUTEX_NORMAL, "PTHREAD_MUTEX_NORMAL");
+ do_test_kind (PTHREAD_MUTEX_ERRORCHECK, "PTHREAD_MUTEX_ERRORCHECK");
+ do_test_kind (PTHREAD_MUTEX_RECURSIVE, "PTHREAD_MUTEX_RECURSIVE");
+ do_test_kind (PTHREAD_MUTEX_DEFAULT, "PTHREAD_MUTEX_DEFAULT");
+
+ /* Also test an invalid kind. */
+ pthread_mutexattr_t attr;
+ xpthread_mutexattr_init (&attr);
+ int ret = pthread_mutexattr_settype (&attr, 123456789);
+ TEST_COMPARE (ret, EINVAL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-pthread-mutexattr.c b/sysdeps/pthread/tst-pthread-mutexattr.c
index 514ddca..dee3e4d 100644
--- a/sysdeps/pthread/tst-pthread-mutexattr.c
+++ b/sysdeps/pthread/tst-pthread-mutexattr.c
@@ -1,6 +1,6 @@
/* Make sure that pthread_mutexattr_gettype returns a valid kind.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread-raise-blocked-self.c b/sysdeps/pthread/tst-pthread-raise-blocked-self.c
index 5dc2932..afac122 100644
--- a/sysdeps/pthread/tst-pthread-raise-blocked-self.c
+++ b/sysdeps/pthread/tst-pthread-raise-blocked-self.c
@@ -1,5 +1,5 @@
/* Test that raise sends signal to current thread even if blocked.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread-setuid-loop.c b/sysdeps/pthread/tst-pthread-setuid-loop.c
index d36218c..8ef47e2 100644
--- a/sysdeps/pthread/tst-pthread-setuid-loop.c
+++ b/sysdeps/pthread/tst-pthread-setuid-loop.c
@@ -1,5 +1,5 @@
/* Test that setuid, pthread_create, thread exit do not deadlock (bug 28361).
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread_cancel-exited.c b/sysdeps/pthread/tst-pthread_cancel-exited.c
index 4d9fb6b..94336d6 100644
--- a/sysdeps/pthread/tst-pthread_cancel-exited.c
+++ b/sysdeps/pthread/tst-pthread_cancel-exited.c
@@ -1,5 +1,5 @@
/* Test that pthread_kill succeeds for an exited thread.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread_cancel-select-loop.c b/sysdeps/pthread/tst-pthread_cancel-select-loop.c
index 33d1c6a..3bc8e15 100644
--- a/sysdeps/pthread/tst-pthread_cancel-select-loop.c
+++ b/sysdeps/pthread/tst-pthread_cancel-select-loop.c
@@ -1,5 +1,5 @@
/* Test that pthread_cancel succeeds during thread exit.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread_kill-exited.c b/sysdeps/pthread/tst-pthread_kill-exited.c
index 73d5130..3d500ff 100644
--- a/sysdeps/pthread/tst-pthread_kill-exited.c
+++ b/sysdeps/pthread/tst-pthread_kill-exited.c
@@ -1,5 +1,5 @@
/* Test that pthread_kill succeeds for an exited thread.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-pthread_kill-exiting.c b/sysdeps/pthread/tst-pthread_kill-exiting.c
index ff172bb..c3697ac 100644
--- a/sysdeps/pthread/tst-pthread_kill-exiting.c
+++ b/sysdeps/pthread/tst-pthread_kill-exiting.c
@@ -1,5 +1,5 @@
/* Test that pthread_kill succeeds during thread exit.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-raise1.c b/sysdeps/pthread/tst-raise1.c
index 9ecead7..664086c 100644
--- a/sysdeps/pthread/tst-raise1.c
+++ b/sysdeps/pthread/tst-raise1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-robust1.c b/sysdeps/pthread/tst-robust1.c
index 9c562dd..bd659cc 100644
--- a/sysdeps/pthread/tst-robust1.c
+++ b/sysdeps/pthread/tst-robust1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-robust10.c b/sysdeps/pthread/tst-robust10.c
index 2f17ad6..ef1e311 100644
--- a/sysdeps/pthread/tst-robust10.c
+++ b/sysdeps/pthread/tst-robust10.c
@@ -1,5 +1,5 @@
/* Test that pthread_mutex_timedlock properly times out.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-robust7.c b/sysdeps/pthread/tst-robust7.c
index 569d60c..bf660e8 100644
--- a/sysdeps/pthread/tst-robust7.c
+++ b/sysdeps/pthread/tst-robust7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock-tryrdlock-stall.c b/sysdeps/pthread/tst-rwlock-tryrdlock-stall.c
index ad4aa8c..7f6bcaa 100644
--- a/sysdeps/pthread/tst-rwlock-tryrdlock-stall.c
+++ b/sysdeps/pthread/tst-rwlock-tryrdlock-stall.c
@@ -1,5 +1,5 @@
/* Bug 23844: Test for pthread_rwlock_tryrdlock stalls.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock-trywrlock-stall.c b/sysdeps/pthread/tst-rwlock-trywrlock-stall.c
index 7a9b0f6..edd935a 100644
--- a/sysdeps/pthread/tst-rwlock-trywrlock-stall.c
+++ b/sysdeps/pthread/tst-rwlock-trywrlock-stall.c
@@ -1,5 +1,5 @@
/* Bug 23844: Test for pthread_rwlock_trywrlock stalls.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock1.c b/sysdeps/pthread/tst-rwlock1.c
index 43866e1..7f173bc 100644
--- a/sysdeps/pthread/tst-rwlock1.c
+++ b/sysdeps/pthread/tst-rwlock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock12.c b/sysdeps/pthread/tst-rwlock12.c
index b91765f..1027a6f 100644
--- a/sysdeps/pthread/tst-rwlock12.c
+++ b/sysdeps/pthread/tst-rwlock12.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock13.c b/sysdeps/pthread/tst-rwlock13.c
index 1d4e74a..af7e10e 100644
--- a/sysdeps/pthread/tst-rwlock13.c
+++ b/sysdeps/pthread/tst-rwlock13.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock14.c b/sysdeps/pthread/tst-rwlock14.c
index 81c7a1e..e7f4b69 100644
--- a/sysdeps/pthread/tst-rwlock14.c
+++ b/sysdeps/pthread/tst-rwlock14.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock16.c b/sysdeps/pthread/tst-rwlock16.c
index 5ca000e..5a82c29 100644
--- a/sysdeps/pthread/tst-rwlock16.c
+++ b/sysdeps/pthread/tst-rwlock16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock4.c b/sysdeps/pthread/tst-rwlock4.c
index 569b529..de64ff2 100644
--- a/sysdeps/pthread/tst-rwlock4.c
+++ b/sysdeps/pthread/tst-rwlock4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-rwlock5.c b/sysdeps/pthread/tst-rwlock5.c
index b321ebe..99a9a0d 100644
--- a/sysdeps/pthread/tst-rwlock5.c
+++ b/sysdeps/pthread/tst-rwlock5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem1.c b/sysdeps/pthread/tst-sem1.c
index 86082e5..e9e0a38 100644
--- a/sysdeps/pthread/tst-sem1.c
+++ b/sysdeps/pthread/tst-sem1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem10.c b/sysdeps/pthread/tst-sem10.c
index ece00ed..eb3f8ae 100644
--- a/sysdeps/pthread/tst-sem10.c
+++ b/sysdeps/pthread/tst-sem10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem14.c b/sysdeps/pthread/tst-sem14.c
index a6f8a33..7ef1393 100644
--- a/sysdeps/pthread/tst-sem14.c
+++ b/sysdeps/pthread/tst-sem14.c
@@ -1,5 +1,5 @@
/* Test for sem_post race: bug 14532.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem15.c b/sysdeps/pthread/tst-sem15.c
index d2f82dc..9322031 100644
--- a/sysdeps/pthread/tst-sem15.c
+++ b/sysdeps/pthread/tst-sem15.c
@@ -1,5 +1,5 @@
/* Test for SEM_VALUE_MAX overflow detection: BZ #18434.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem16.c b/sysdeps/pthread/tst-sem16.c
index 4e67ae6..fbaaab8 100644
--- a/sysdeps/pthread/tst-sem16.c
+++ b/sysdeps/pthread/tst-sem16.c
@@ -1,5 +1,5 @@
/* Test for sem_open cancellation handling: BZ #15765.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/dl-tls.h b/sysdeps/pthread/tst-sem18.c
index 70cbe28..5db91d1 100644
--- a/sysdeps/sh/dl-tls.h
+++ b/sysdeps/pthread/tst-sem18.c
@@ -1,5 +1,5 @@
-/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Test sem_open with missing file.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,13 +16,20 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <errno.h>
+#include <semaphore.h>
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
+#include <support/check.h>
+int
+do_test (void)
+{
+ sem_unlink ("/glibc-tst-sem18");
+ errno = 0;
+ sem_t *s = sem_open ("/glibc-tst-sem18", 0);
+ TEST_VERIFY (s == SEM_FAILED);
+ TEST_COMPARE (errno, ENOENT);
+ return 0;
+}
-extern void *__tls_get_addr (tls_index *ti);
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-sem19.c b/sysdeps/pthread/tst-sem19.c
new file mode 100644
index 0000000..9d79eb1
--- /dev/null
+++ b/sysdeps/pthread/tst-sem19.c
@@ -0,0 +1,77 @@
+/* Test sem_trywait with threads.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <support/check.h>
+#include <support/xthread.h>
+
+/* The test uses two threads, the main thread and a newly created
+ thread to test the operation of sem_trywait in a threaded scenario.
+ The intent is to test sem_trywait when it would return EAGAIN, and
+ then again after the critical section in the new thread has posted
+ to the semaphore and the main thread succeeds in calling
+ sem_trywait. It is possible this test fails with a timeout if the
+ second thread takes longer than the test timeout to acquire the
+ lock, and post. */
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+static sem_t sem;
+
+static void *
+tf (void *arg)
+{
+ xpthread_mutex_lock (&lock);
+ sem_post (&sem);
+ xpthread_mutex_unlock (&lock);
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ int ret;
+
+ ret = sem_init (&sem, 0, 0);
+ TEST_VERIFY_EXIT (ret == 0);
+ xpthread_mutex_lock (&lock);
+ pthread_t th = xpthread_create (NULL, tf, NULL);
+ errno = 0;
+ /* The other thread is waiting on the lock before it calls sem_post,
+ so sem_trywait should fail. */
+ ret = sem_trywait (&sem);
+ TEST_COMPARE (ret, -1);
+ TEST_COMPARE (errno, EAGAIN);
+ xpthread_mutex_unlock (&lock);
+ /* The other thread now takes the lock, calls sem_post and releases
+ the lock. */
+ for (;;)
+ {
+ errno = 0;
+ ret = sem_trywait (&sem);
+ if (ret == 0)
+ break;
+ TEST_COMPARE (errno, EAGAIN);
+ }
+ xpthread_join (th);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-sem2.c b/sysdeps/pthread/tst-sem2.c
index 2f43e3d..a33f030 100644
--- a/sysdeps/pthread/tst-sem2.c
+++ b/sysdeps/pthread/tst-sem2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem3.c b/sysdeps/pthread/tst-sem3.c
index 6c1d2f5..9908196 100644
--- a/sysdeps/pthread/tst-sem3.c
+++ b/sysdeps/pthread/tst-sem3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem4.c b/sysdeps/pthread/tst-sem4.c
index 0596b35..7ee5b35 100644
--- a/sysdeps/pthread/tst-sem4.c
+++ b/sysdeps/pthread/tst-sem4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem5.c b/sysdeps/pthread/tst-sem5.c
index dc2b45e..5eec6ef 100644
--- a/sysdeps/pthread/tst-sem5.c
+++ b/sysdeps/pthread/tst-sem5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem6.c b/sysdeps/pthread/tst-sem6.c
index a49ed58..22349ce 100644
--- a/sysdeps/pthread/tst-sem6.c
+++ b/sysdeps/pthread/tst-sem6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem7.c b/sysdeps/pthread/tst-sem7.c
index a989686..6d05835 100644
--- a/sysdeps/pthread/tst-sem7.c
+++ b/sysdeps/pthread/tst-sem7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem8.c b/sysdeps/pthread/tst-sem8.c
index 0fdabec..1c25555 100644
--- a/sysdeps/pthread/tst-sem8.c
+++ b/sysdeps/pthread/tst-sem8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-sem9.c b/sysdeps/pthread/tst-sem9.c
index afa5095..e4b23c8 100644
--- a/sysdeps/pthread/tst-sem9.c
+++ b/sysdeps/pthread/tst-sem9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-setuid3.c b/sysdeps/pthread/tst-setuid3.c
index 3845ab0..8d4b937 100644
--- a/sysdeps/pthread/tst-setuid3.c
+++ b/sysdeps/pthread/tst-setuid3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal1.c b/sysdeps/pthread/tst-signal1.c
index ca145ee..245a202 100644
--- a/sysdeps/pthread/tst-signal1.c
+++ b/sysdeps/pthread/tst-signal1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal2.c b/sysdeps/pthread/tst-signal2.c
index aeefb0a..8358360 100644
--- a/sysdeps/pthread/tst-signal2.c
+++ b/sysdeps/pthread/tst-signal2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal4.c b/sysdeps/pthread/tst-signal4.c
index a7408b9..ec5f356 100644
--- a/sysdeps/pthread/tst-signal4.c
+++ b/sysdeps/pthread/tst-signal4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal5.c b/sysdeps/pthread/tst-signal5.c
index 3ad3eff..f9c2986 100644
--- a/sysdeps/pthread/tst-signal5.c
+++ b/sysdeps/pthread/tst-signal5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal6.c b/sysdeps/pthread/tst-signal6.c
index d0aa68d..ab5538f 100644
--- a/sysdeps/pthread/tst-signal6.c
+++ b/sysdeps/pthread/tst-signal6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-signal8.c b/sysdeps/pthread/tst-signal8.c
index 8f48906..4a09016 100644
--- a/sysdeps/pthread/tst-signal8.c
+++ b/sysdeps/pthread/tst-signal8.c
@@ -1,5 +1,5 @@
/* Tests for sigisemptyset and pthread_sigmask.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-spin1.c b/sysdeps/pthread/tst-spin1.c
index 3a47bb7..5491ede 100644
--- a/sysdeps/pthread/tst-spin1.c
+++ b/sysdeps/pthread/tst-spin1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-spin2.c b/sysdeps/pthread/tst-spin2.c
index 6fb9850..d665b10 100644
--- a/sysdeps/pthread/tst-spin2.c
+++ b/sysdeps/pthread/tst-spin2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-spin3.c b/sysdeps/pthread/tst-spin3.c
index 817dac4..3b43370 100644
--- a/sysdeps/pthread/tst-spin3.c
+++ b/sysdeps/pthread/tst-spin3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-spin5.c b/sysdeps/pthread/tst-spin5.c
new file mode 100644
index 0000000..afe2b01
--- /dev/null
+++ b/sysdeps/pthread/tst-spin5.c
@@ -0,0 +1,82 @@
+/* Threaded test the pthread_spin_trylock function.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <errno.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/xthread.h>
+
+pthread_spinlock_t lock;
+
+void *
+thread (void *arg)
+{
+ int ret;
+ int thr_id = *(int *) arg;
+
+ ret = pthread_spin_trylock (&lock);
+ if (thr_id == 1)
+ /* thread with already acquired lock. */
+ {
+ if (ret != EBUSY)
+ {
+ FAIL_EXIT1 ("pthread_spin_trylock should fail with EBUSY");
+ }
+ }
+ else if (thr_id == 2)
+ /* thread with released spin lock. */
+ {
+ if (ret != 0)
+ {
+ FAIL_EXIT1 ("pthread_spin_trylock should be able to acquire lock");
+ }
+ }
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ pthread_t thr1, thr2;
+ int ret;
+ int thr1_id = 1, thr2_id = 2;
+
+ pthread_spin_init (&lock, PTHREAD_PROCESS_PRIVATE);
+ /* lock spin in main thread. */
+ ret = pthread_spin_trylock (&lock);
+ if (ret != 0)
+ {
+ FAIL_EXIT1 ("Main thread should be able to acquire spin lock");
+ }
+
+ /* create first thread to try locking already acquired spin lock. */
+ thr1 = xpthread_create (NULL, thread, &thr1_id);
+ xpthread_join (thr1);
+
+ /* release spin lock and create thread to acquire released spin lock. */
+ pthread_spin_unlock (&lock);
+ thr2 = xpthread_create (NULL, thread, &thr2_id);
+ xpthread_join (thr2);
+
+ pthread_spin_destroy (&lock);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-stack1.c b/sysdeps/pthread/tst-stack1.c
index 574edb3..21989f0 100644
--- a/sysdeps/pthread/tst-stack1.c
+++ b/sysdeps/pthread/tst-stack1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-stack2-mod.c b/sysdeps/pthread/tst-stack2-mod.c
new file mode 100644
index 0000000..806fdbc
--- /dev/null
+++ b/sysdeps/pthread/tst-stack2-mod.c
@@ -0,0 +1,39 @@
+/* Check if pthread_getattr_np works within modules with non-exectuble
+ stacks (BZ 32897).
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+
+bool init_result;
+
+void
+__attribute__ ((constructor))
+init (void)
+{
+ pthread_t me = pthread_self ();
+ pthread_attr_t attr;
+ init_result = pthread_getattr_np (me, &attr) == 0;
+}
+
+int
+mod_func (void)
+{
+ pthread_t me = pthread_self ();
+ pthread_attr_t attr;
+ return pthread_getattr_np (me, &attr);
+}
diff --git a/sysdeps/generic/dl-fptr.h b/sysdeps/pthread/tst-stack2.c
index 71cfb62..20ab5af 100644
--- a/sysdeps/generic/dl-fptr.h
+++ b/sysdeps/pthread/tst-stack2.c
@@ -1,5 +1,6 @@
-/* Function descriptors. Generic version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Check if pthread_getattr_np works within modules with non-exectuble
+ stacks (BZ 32897).
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,30 +17,31 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef dl_fptr_h
-#define dl_fptr_h 1
+#include <pthread.h>
+#include <stdbool.h>
+#include <support/xdlfcn.h>
+#include <support/check.h>
-/* An FDESC is a function descriptor. */
-
-struct fdesc
+static int
+do_test (void)
+{
{
- ElfW(Addr) ip; /* code entry point */
- ElfW(Addr) gp; /* global pointer */
- };
+ pthread_t me = pthread_self ();
+ pthread_attr_t attr;
+ TEST_COMPARE (pthread_getattr_np (me, &attr), 0);
+ }
-struct fdesc_table
- {
- struct fdesc_table *next;
- unsigned int len; /* # of entries in fdesc table */
- volatile unsigned int first_unused; /* index of first available entry */
- struct fdesc fdesc[0];
- };
+ void *h = xdlopen ("tst-stack2-mod.so", RTLD_NOW);
+
+ bool *init_result = xdlsym (h, "init_result");
+ TEST_COMPARE (*init_result, true);
-struct link_map;
+ int (*mod_func)(void) = xdlsym (h, "mod_func");
+ TEST_COMPARE (mod_func (), 0);
-extern ElfW(Addr) _dl_boot_fptr_table [];
+ xdlclose (h);
-extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *,
- ElfW(Addr));
+ return 0;
+}
-#endif /* !dl_fptr_h */
+#include <support/test-driver.c>
diff --git a/sysdeps/pthread/tst-stdio1.c b/sysdeps/pthread/tst-stdio1.c
index 1865956..c43922d 100644
--- a/sysdeps/pthread/tst-stdio1.c
+++ b/sysdeps/pthread/tst-stdio1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-stdio2.c b/sysdeps/pthread/tst-stdio2.c
index 51b705f..0876ed6 100644
--- a/sysdeps/pthread/tst-stdio2.c
+++ b/sysdeps/pthread/tst-stdio2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,7 +75,7 @@ do_test (void)
exit (1);
}
- puts ("join returned succsefully");
+ puts ("join returned successfully");
return 0;
}
diff --git a/sysdeps/pthread/tst-thrd-detach.c b/sysdeps/pthread/tst-thrd-detach.c
index ae5c272..966e7c1 100644
--- a/sysdeps/pthread/tst-thrd-detach.c
+++ b/sysdeps/pthread/tst-thrd-detach.c
@@ -1,5 +1,5 @@
/* C11 threads thread detach tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-thrd-sleep.c b/sysdeps/pthread/tst-thrd-sleep.c
index 1f2fa51..01b0d01 100644
--- a/sysdeps/pthread/tst-thrd-sleep.c
+++ b/sysdeps/pthread/tst-thrd-sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-timer.c b/sysdeps/pthread/tst-timer.c
index 02543a7..b1b2b94 100644
--- a/sysdeps/pthread/tst-timer.c
+++ b/sysdeps/pthread/tst-timer.c
@@ -1,5 +1,5 @@
/* Tests for POSIX timer implementation.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tls4moda.c b/sysdeps/pthread/tst-tls4moda.c
index 96976d9..1a40af0 100644
--- a/sysdeps/pthread/tst-tls4moda.c
+++ b/sysdeps/pthread/tst-tls4moda.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tls4modb.c b/sysdeps/pthread/tst-tls4modb.c
index 8b27afb..7fac114 100644
--- a/sysdeps/pthread/tst-tls4modb.c
+++ b/sysdeps/pthread/tst-tls4modb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tsd1.c b/sysdeps/pthread/tst-tsd1.c
index c12f1a8..8b6a85c 100644
--- a/sysdeps/pthread/tst-tsd1.c
+++ b/sysdeps/pthread/tst-tsd1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tsd2.c b/sysdeps/pthread/tst-tsd2.c
index 631d9c3..22125ff 100644
--- a/sysdeps/pthread/tst-tsd2.c
+++ b/sysdeps/pthread/tst-tsd2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tsd5.c b/sysdeps/pthread/tst-tsd5.c
index e182f95..31ff3b5 100644
--- a/sysdeps/pthread/tst-tsd5.c
+++ b/sysdeps/pthread/tst-tsd5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-tss-basic.c b/sysdeps/pthread/tst-tss-basic.c
index cc79a0a..87f67fc 100644
--- a/sysdeps/pthread/tst-tss-basic.c
+++ b/sysdeps/pthread/tst-tss-basic.c
@@ -1,5 +1,5 @@
/* C11 threads specific storage tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-umask1.c b/sysdeps/pthread/tst-umask1.c
index 93716e5..7b9a2a5 100644
--- a/sysdeps/pthread/tst-umask1.c
+++ b/sysdeps/pthread/tst-umask1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/pthread/tst-unload.c b/sysdeps/pthread/tst-unload.c
index 4a9c0f7..9344fd0 100644
--- a/sysdeps/pthread/tst-unload.c
+++ b/sysdeps/pthread/tst-unload.c
@@ -1,5 +1,5 @@
/* Tests for non-unloading of libpthread.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
diff --git a/sysdeps/riscv/__longjmp.S b/sysdeps/riscv/__longjmp.S
index b9077d9..7228b45 100644
--- a/sysdeps/riscv/__longjmp.S
+++ b/sysdeps/riscv/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp, RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/bits/fenv.h b/sysdeps/riscv/bits/fenv.h
index f3a069b..916c5a8 100644
--- a/sysdeps/riscv/bits/fenv.h
+++ b/sysdeps/riscv/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment, RISC-V version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/bits/link.h b/sysdeps/riscv/bits/link.h
index 0e95c02..63e05a3 100644
--- a/sysdeps/riscv/bits/link.h
+++ b/sysdeps/riscv/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface. RISC-V version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/bits/setjmp.h b/sysdeps/riscv/bits/setjmp.h
index e025dd5..5ebbec3 100644
--- a/sysdeps/riscv/bits/setjmp.h
+++ b/sysdeps/riscv/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/bits/wordsize.h b/sysdeps/riscv/bits/wordsize.h
index 5856531..3fad662 100644
--- a/sysdeps/riscv/bits/wordsize.h
+++ b/sysdeps/riscv/bits/wordsize.h
@@ -1,5 +1,5 @@
/* Determine the wordsize from the preprocessor defines. RISC-V version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/dl-irel.h b/sysdeps/riscv/dl-irel.h
index 61b3511..757063b 100644
--- a/sysdeps/riscv/dl-irel.h
+++ b/sysdeps/riscv/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
RISC-V version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/dl-machine.h b/sysdeps/riscv/dl-machine.h
index b2f2869..dcc3e08 100644
--- a/sysdeps/riscv/dl-machine.h
+++ b/sysdeps/riscv/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -348,7 +348,8 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
gotplt[1] = (ElfW(Addr)) l;
}
- if (l->l_type == lt_executable && l->l_relocated)
+#ifdef SHARED
+ if (l->l_type == lt_executable)
{
/* The __global_pointer$ may not be defined by the linker if the
$gp register does not be used to access the global variable
@@ -362,13 +363,17 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
_dl_lookup_symbol_x ("__global_pointer$", l, &ref,
l->l_scope, NULL, 0, 0, NULL);
if (ref)
- asm (
- "mv gp, %0\n"
- :
- : "r" (ref->st_value)
- );
+ asm (
+ "mv gp, %0\n"
+ :
+ : "r" (ref->st_value + l->l_addr)
+ /* Don't use SYMBOL_ADDRESS here since __global_pointer$
+ can be SHN_ABS type, but we need the address relative to
+ PC, not the absolute address. */
+ );
}
#endif
+#endif
return lazy;
}
diff --git a/sysdeps/riscv/dl-relocate-ld.h b/sysdeps/riscv/dl-relocate-ld.h
index 96249fc..fc712be 100644
--- a/sysdeps/riscv/dl-relocate-ld.h
+++ b/sysdeps/riscv/dl-relocate-ld.h
@@ -1,5 +1,5 @@
/* Check if dynamic section should be relocated. RISC-V version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/dl-tls.h b/sysdeps/riscv/dl-tls.h
index 049161f..b8931a0 100644
--- a/sysdeps/riscv/dl-tls.h
+++ b/sysdeps/riscv/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
/* Type used for the representation of TLS information in the GOT. */
typedef struct
@@ -41,8 +43,9 @@ typedef struct
extern void *__tls_get_addr (tls_index *ti);
-#define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
/* Value used for dtv entries for which the allocation is delayed. */
#define TLS_DTV_UNALLOCATED ((void *) -1l)
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/riscv/dl-trampoline.S b/sysdeps/riscv/dl-trampoline.S
index fddfd3f..93d04af 100644
--- a/sysdeps/riscv/dl-trampoline.S
+++ b/sysdeps/riscv/dl-trampoline.S
@@ -1,5 +1,5 @@
/* RISC-V PLT trampoline
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/riscv/e_sqrtl.c b/sysdeps/riscv/e_sqrtl.c
index f7ddd23..b8d8866 100644
--- a/sysdeps/riscv/e_sqrtl.c
+++ b/sysdeps/riscv/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/fpu_control.h b/sysdeps/riscv/fpu_control.h
index 34c99b8..29cf79f 100644
--- a/sysdeps/riscv/fpu_control.h
+++ b/sysdeps/riscv/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/gccframe.h b/sysdeps/riscv/gccframe.h
index 6cda36f..118ac67 100644
--- a/sysdeps/riscv/gccframe.h
+++ b/sysdeps/riscv/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. RISC-V version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/jmpbuf-offsets.h b/sysdeps/riscv/jmpbuf-offsets.h
index 4e49764..0dcca09 100644
--- a/sysdeps/riscv/jmpbuf-offsets.h
+++ b/sysdeps/riscv/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. RISC-V version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/jmpbuf-unwind.h b/sysdeps/riscv/jmpbuf-unwind.h
index b4b47a5..b45048e 100644
--- a/sysdeps/riscv/jmpbuf-unwind.h
+++ b/sysdeps/riscv/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. RISC-V version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/ldsodefs.h b/sysdeps/riscv/ldsodefs.h
index 4a9e543..7e22d64 100644
--- a/sysdeps/riscv/ldsodefs.h
+++ b/sysdeps/riscv/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/libc-tls.c b/sysdeps/riscv/libc-tls.c
index dbf71ef..a08555f 100644
--- a/sysdeps/riscv/libc-tls.c
+++ b/sysdeps/riscv/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,5 +28,5 @@ void *
__tls_get_addr (tls_index *ti)
{
dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
+ return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
}
diff --git a/sysdeps/riscv/machine-gmon.h b/sysdeps/riscv/machine-gmon.h
index 5499fe3..9dcd06f 100644
--- a/sysdeps/riscv/machine-gmon.h
+++ b/sysdeps/riscv/machine-gmon.h
@@ -1,5 +1,5 @@
/* RISC-V definitions for profiling support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/math-tests-snan-payload.h b/sysdeps/riscv/math-tests-snan-payload.h
index e6de68e..10c8a9f 100644
--- a/sysdeps/riscv/math-tests-snan-payload.h
+++ b/sysdeps/riscv/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. RISC-V version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/math-tests-trap.h b/sysdeps/riscv/math-tests-trap.h
index 690a478..da0530a 100644
--- a/sysdeps/riscv/math-tests-trap.h
+++ b/sysdeps/riscv/math-tests-trap.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for enabling exception traps.
RISC-V version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/math-use-builtins-ffs.h b/sysdeps/riscv/math-use-builtins-ffs.h
new file mode 100644
index 0000000..97d13e9
--- /dev/null
+++ b/sysdeps/riscv/math-use-builtins-ffs.h
@@ -0,0 +1,10 @@
+#if __GNUC_PREREQ (12, 0) && defined __riscv_zbb
+# define USE_FFS_BUILTIN 1
+# define USE_FFSLL_BUILTIN 1
+#elif __GNUC_PREREQ (13, 0) && defined __riscv_xtheadbb
+# define USE_FFS_BUILTIN 0
+# define USE_FFSLL_BUILTIN 1
+#else
+# define USE_FFS_BUILTIN 0
+# define USE_FFSLL_BUILTIN 0
+#endif
diff --git a/sysdeps/riscv/multiarch/memcpy-generic.c b/sysdeps/riscv/multiarch/memcpy-generic.c
index 4235d33..151dd0e 100644
--- a/sysdeps/riscv/multiarch/memcpy-generic.c
+++ b/sysdeps/riscv/multiarch/memcpy-generic.c
@@ -1,5 +1,5 @@
/* Re-include the default memcpy implementation.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/multiarch/memcpy_noalignment.S b/sysdeps/riscv/multiarch/memcpy_noalignment.S
index fa39be2..dd135f4 100644
--- a/sysdeps/riscv/multiarch/memcpy_noalignment.S
+++ b/sysdeps/riscv/multiarch/memcpy_noalignment.S
@@ -1,5 +1,5 @@
/* memcpy for RISC-V, ignoring buffer alignment
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
deleted file mode 100644
index 9ad64d1..0000000
--- a/sysdeps/riscv/nofpu/libm-test-ulps
+++ /dev/null
@@ -1,1442 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 4
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 4
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 2
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 1
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 4
-
-Function: "erfc_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "erfc_upward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-ldouble: 2
-
-Function: "exp10_downward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "exp2":
-double: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "gamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "gamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 2
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 2
-float: 4
-ldouble: 4
-
-Function: "j0_towardzero":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "j0_upward":
-double: 3
-float: 2
-ldouble: 5
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "j1_upward":
-double: 3
-float: 4
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 4
-ldouble: 7
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "log":
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log_downward":
-ldouble: 1
-
-Function: "log_towardzero":
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-ldouble: 3
-
-Function: "sincos":
-double: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 5
-float: 5
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 5
-float: 4
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 4
-ldouble: 4
-
-Function: "y0_towardzero":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "y0_upward":
-double: 2
-float: 5
-ldouble: 3
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "y1_towardzero":
-double: 3
-float: 2
-ldouble: 2
-
-Function: "y1_upward":
-double: 5
-float: 2
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps-name b/sysdeps/riscv/nofpu/libm-test-ulps-name
deleted file mode 100644
index cb17236..0000000
--- a/sysdeps/riscv/nofpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-RISC-V soft-float
diff --git a/sysdeps/riscv/nofpu/math-tests-exceptions.h b/sysdeps/riscv/nofpu/math-tests-exceptions.h
index b92e106..d42fe96 100644
--- a/sysdeps/riscv/nofpu/math-tests-exceptions.h
+++ b/sysdeps/riscv/nofpu/math-tests-exceptions.h
@@ -1,6 +1,6 @@
/* Configuration for math tests: support for exceptions. RISC-V
no-FPU version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/nofpu/math-tests-rounding.h b/sysdeps/riscv/nofpu/math-tests-rounding.h
index 1e5fb17..5120689 100644
--- a/sysdeps/riscv/nofpu/math-tests-rounding.h
+++ b/sysdeps/riscv/nofpu/math-tests-rounding.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: rounding mode support. RISC-V no-FPU version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
index d8fea55..ec246b4 100644
--- a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/nptl/bits/struct_rwlock.h b/sysdeps/riscv/nptl/bits/struct_rwlock.h
index c1b91c5..791104c 100644
--- a/sysdeps/riscv/nptl/bits/struct_rwlock.h
+++ b/sysdeps/riscv/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* RISC-V internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/riscv/nptl/pthreaddef.h b/sysdeps/riscv/nptl/pthreaddef.h
index 82c157f..dc1f2c2 100644
--- a/sysdeps/riscv/nptl/pthreaddef.h
+++ b/sysdeps/riscv/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions, RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/nptl/tls.h b/sysdeps/riscv/nptl/tls.h
index 0c269e1..11a1b08 100644
--- a/sysdeps/riscv/nptl/tls.h
+++ b/sysdeps/riscv/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/RISC-V version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/riscv-ifunc.h b/sysdeps/riscv/riscv-ifunc.h
index c77ab51..7c8e5da 100644
--- a/sysdeps/riscv/riscv-ifunc.h
+++ b/sysdeps/riscv/riscv-ifunc.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc resolvers. Linux/RISC-V version.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h b/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h
index af62332..100d9e3 100644
--- a/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h
+++ b/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. RISC-V version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_ceil.c b/sysdeps/riscv/rv64/rvd/s_ceil.c
index dfa853f..f4f2690 100644
--- a/sysdeps/riscv/rv64/rvd/s_ceil.c
+++ b/sysdeps/riscv/rv64/rvd/s_ceil.c
@@ -1,5 +1,5 @@
/* ceil(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_floor.c b/sysdeps/riscv/rv64/rvd/s_floor.c
index f294651..578d8b7 100644
--- a/sysdeps/riscv/rv64/rvd/s_floor.c
+++ b/sysdeps/riscv/rv64/rvd/s_floor.c
@@ -1,5 +1,5 @@
/* floor(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_llrint.c b/sysdeps/riscv/rv64/rvd/s_llrint.c
index 7a65aa8..35420e4 100644
--- a/sysdeps/riscv/rv64/rvd/s_llrint.c
+++ b/sysdeps/riscv/rv64/rvd/s_llrint.c
@@ -1,5 +1,5 @@
/* llrint(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_llround.c b/sysdeps/riscv/rv64/rvd/s_llround.c
index 7b01a05..bdaec48 100644
--- a/sysdeps/riscv/rv64/rvd/s_llround.c
+++ b/sysdeps/riscv/rv64/rvd/s_llround.c
@@ -1,5 +1,5 @@
/* llround(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_nearbyint.c b/sysdeps/riscv/rv64/rvd/s_nearbyint.c
index ddc512d..431fba5 100644
--- a/sysdeps/riscv/rv64/rvd/s_nearbyint.c
+++ b/sysdeps/riscv/rv64/rvd/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_rint.c b/sysdeps/riscv/rv64/rvd/s_rint.c
index 45bea32..8714b09 100644
--- a/sysdeps/riscv/rv64/rvd/s_rint.c
+++ b/sysdeps/riscv/rv64/rvd/s_rint.c
@@ -1,5 +1,5 @@
/* rint(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_round.c b/sysdeps/riscv/rv64/rvd/s_round.c
index bd01fcc..0bed78a 100644
--- a/sysdeps/riscv/rv64/rvd/s_round.c
+++ b/sysdeps/riscv/rv64/rvd/s_round.c
@@ -1,5 +1,5 @@
/* round(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_roundeven.c b/sysdeps/riscv/rv64/rvd/s_roundeven.c
index 108c7dc..45e3174 100644
--- a/sysdeps/riscv/rv64/rvd/s_roundeven.c
+++ b/sysdeps/riscv/rv64/rvd/s_roundeven.c
@@ -1,5 +1,5 @@
/* Round to nearest integer value, rounding halfway cases to even.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvd/s_trunc.c b/sysdeps/riscv/rv64/rvd/s_trunc.c
index 779c7d2..b383c7d 100644
--- a/sysdeps/riscv/rv64/rvd/s_trunc.c
+++ b/sysdeps/riscv/rv64/rvd/s_trunc.c
@@ -1,5 +1,5 @@
/* trunc(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvf/s_llrintf.c b/sysdeps/riscv/rv64/rvf/s_llrintf.c
index 2f3e409..7c49ea5 100644
--- a/sysdeps/riscv/rv64/rvf/s_llrintf.c
+++ b/sysdeps/riscv/rv64/rvf/s_llrintf.c
@@ -1,5 +1,5 @@
/* Round argument to nearest integral value according to current direction.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rv64/rvf/s_llroundf.c b/sysdeps/riscv/rv64/rvf/s_llroundf.c
index 6671db7..c52bd81 100644
--- a/sysdeps/riscv/rv64/rvf/s_llroundf.c
+++ b/sysdeps/riscv/rv64/rvf/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/fix-float-double-convert-nan.h b/sysdeps/riscv/rvd/fix-float-double-convert-nan.h
index 00cc6dc..716f8bf 100644
--- a/sysdeps/riscv/rvd/fix-float-double-convert-nan.h
+++ b/sysdeps/riscv/rvd/fix-float-double-convert-nan.h
@@ -1,5 +1,5 @@
/* Fix for conversion of float NAN to double. RISC-V version..
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps
deleted file mode 100644
index 1e6c092..0000000
--- a/sysdeps/riscv/rvd/libm-test-ulps
+++ /dev/null
@@ -1,1512 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 2
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "erfc_downward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "erfc_upward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp2":
-double: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2m1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "gamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "gamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 3
-float: 8
-ldouble: 4
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 4
-ldouble: 7
-
-Function: "lgamma":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "log":
-double: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_downward":
-ldouble: 1
-
-Function: "log_towardzero":
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-ldouble: 2
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos":
-double: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 8
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 2
-float: 8
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 8
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 3
-float: 8
-ldouble: 3
-
-Function: "y0_upward":
-double: 2
-float: 8
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 8
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/riscv/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name
deleted file mode 100644
index 9cb5038..0000000
--- a/sysdeps/riscv/rvd/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-RISC-V 64-bit
diff --git a/sysdeps/riscv/rvd/math-use-builtins-fma.h b/sysdeps/riscv/rvd/math-use-builtins-fma.h
new file mode 100644
index 0000000..eede75a
--- /dev/null
+++ b/sysdeps/riscv/rvd/math-use-builtins-fma.h
@@ -0,0 +1,4 @@
+#define USE_FMA_BUILTIN 1
+#define USE_FMAF_BUILTIN 1
+#define USE_FMAL_BUILTIN 0
+#define USE_FMAF128_BUILTIN 0
diff --git a/sysdeps/riscv/rvd/s_finite.c b/sysdeps/riscv/rvd/s_finite.c
index c899e21..1222e94 100644
--- a/sysdeps/riscv/rvd/s_finite.c
+++ b/sysdeps/riscv/rvd/s_finite.c
@@ -1,5 +1,5 @@
/* finite(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_fma.c b/sysdeps/riscv/rvd/s_fma.c
deleted file mode 100644
index fb4b6fb..0000000
--- a/sysdeps/riscv/rvd/s_fma.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Double precision floating point fused multiply-add. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#define dfmal __hide_dfmal
-#define f32xfmaf64 __hide_f32xfmaf64
-#include <math.h>
-#undef dfmal
-#undef f32xfmaf64
-#include <fenv.h>
-#include <ieee754.h>
-#include <libm-alias-double.h>
-#include <math-narrow-alias.h>
-
-double
-__fma (double x, double y, double z)
-{
- asm ("fmadd.d %0, %1, %2, %3" : "=f" (x) : "f" (x), "f" (y), "f" (z));
- return x;
-}
-libm_alias_double (__fma, fma)
-libm_alias_double_narrow (__fma, fma)
diff --git a/sysdeps/riscv/rvd/s_fmax.c b/sysdeps/riscv/rvd/s_fmax.c
index d33bf58..12dea36 100644
--- a/sysdeps/riscv/rvd/s_fmax.c
+++ b/sysdeps/riscv/rvd/s_fmax.c
@@ -1,5 +1,5 @@
/* fmax(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_fmin.c b/sysdeps/riscv/rvd/s_fmin.c
index 198d756..1abe4db 100644
--- a/sysdeps/riscv/rvd/s_fmin.c
+++ b/sysdeps/riscv/rvd/s_fmin.c
@@ -1,5 +1,5 @@
/* fmin(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_fpclassify.c b/sysdeps/riscv/rvd/s_fpclassify.c
index 55f83f5..af8d11a 100644
--- a/sysdeps/riscv/rvd/s_fpclassify.c
+++ b/sysdeps/riscv/rvd/s_fpclassify.c
@@ -1,5 +1,5 @@
/* fpclassify(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_isinf.c b/sysdeps/riscv/rvd/s_isinf.c
index 4f142fd..6383884 100644
--- a/sysdeps/riscv/rvd/s_isinf.c
+++ b/sysdeps/riscv/rvd/s_isinf.c
@@ -1,5 +1,5 @@
/* isinf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_isnan.c b/sysdeps/riscv/rvd/s_isnan.c
index 11e8c37..978c9fd 100644
--- a/sysdeps/riscv/rvd/s_isnan.c
+++ b/sysdeps/riscv/rvd/s_isnan.c
@@ -1,5 +1,5 @@
/* isnan(). RISC_V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_issignaling.c b/sysdeps/riscv/rvd/s_issignaling.c
index 237560e..fcccb1e 100644
--- a/sysdeps/riscv/rvd/s_issignaling.c
+++ b/sysdeps/riscv/rvd/s_issignaling.c
@@ -1,5 +1,5 @@
/* issignaling(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_lrint.c b/sysdeps/riscv/rvd/s_lrint.c
index ed560a1..ba8e40f 100644
--- a/sysdeps/riscv/rvd/s_lrint.c
+++ b/sysdeps/riscv/rvd/s_lrint.c
@@ -1,5 +1,5 @@
/* lrint(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_lround.c b/sysdeps/riscv/rvd/s_lround.c
index 0b88af5..f3bd03d 100644
--- a/sysdeps/riscv/rvd/s_lround.c
+++ b/sysdeps/riscv/rvd/s_lround.c
@@ -1,5 +1,5 @@
/* llround(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fclrexcpt.c b/sysdeps/riscv/rvf/fclrexcpt.c
index ec86140..661aa79 100644
--- a/sysdeps/riscv/rvf/fclrexcpt.c
+++ b/sysdeps/riscv/rvf/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fegetenv.c b/sysdeps/riscv/rvf/fegetenv.c
index 8288fd2..5eea072 100644
--- a/sysdeps/riscv/rvf/fegetenv.c
+++ b/sysdeps/riscv/rvf/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fegetmode.c b/sysdeps/riscv/rvf/fegetmode.c
index 3dc3e7d..83659d1 100644
--- a/sysdeps/riscv/rvf/fegetmode.c
+++ b/sysdeps/riscv/rvf/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fegetround.c b/sysdeps/riscv/rvf/fegetround.c
index ddd90d0..dc82001 100644
--- a/sysdeps/riscv/rvf/fegetround.c
+++ b/sysdeps/riscv/rvf/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/feholdexcpt.c b/sysdeps/riscv/rvf/feholdexcpt.c
index 2d9c5e8..b526654 100644
--- a/sysdeps/riscv/rvf/feholdexcpt.c
+++ b/sysdeps/riscv/rvf/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fenv_private.h b/sysdeps/riscv/rvf/fenv_private.h
index e8fa6ab..3a78a72 100644
--- a/sysdeps/riscv/rvf/fenv_private.h
+++ b/sysdeps/riscv/rvf/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. RISC-V version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fesetenv.c b/sysdeps/riscv/rvf/fesetenv.c
index 3c85a52..37696b7 100644
--- a/sysdeps/riscv/rvf/fesetenv.c
+++ b/sysdeps/riscv/rvf/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fesetexcept.c b/sysdeps/riscv/rvf/fesetexcept.c
index e6eaeb5..4c958e6 100644
--- a/sysdeps/riscv/rvf/fesetexcept.c
+++ b/sysdeps/riscv/rvf/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fesetmode.c b/sysdeps/riscv/rvf/fesetmode.c
index f9e099f..aefceb3 100644
--- a/sysdeps/riscv/rvf/fesetmode.c
+++ b/sysdeps/riscv/rvf/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fesetround.c b/sysdeps/riscv/rvf/fesetround.c
index 905f8d4..0066c9d 100644
--- a/sysdeps/riscv/rvf/fesetround.c
+++ b/sysdeps/riscv/rvf/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/feupdateenv.c b/sysdeps/riscv/rvf/feupdateenv.c
index 4d1cec5..08842a6 100644
--- a/sysdeps/riscv/rvf/feupdateenv.c
+++ b/sysdeps/riscv/rvf/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fgetexcptflg.c b/sysdeps/riscv/rvf/fgetexcptflg.c
index dd9529d..f94b1cb 100644
--- a/sysdeps/riscv/rvf/fgetexcptflg.c
+++ b/sysdeps/riscv/rvf/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fraiseexcpt.c b/sysdeps/riscv/rvf/fraiseexcpt.c
index 7feb51d..9d7ff60 100644
--- a/sysdeps/riscv/rvf/fraiseexcpt.c
+++ b/sysdeps/riscv/rvf/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/fsetexcptflg.c b/sysdeps/riscv/rvf/fsetexcptflg.c
index 5e39922..8cfe292 100644
--- a/sysdeps/riscv/rvf/fsetexcptflg.c
+++ b/sysdeps/riscv/rvf/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/ftestexcept.c b/sysdeps/riscv/rvf/ftestexcept.c
index 4d8dede..ac4ae00 100644
--- a/sysdeps/riscv/rvf/ftestexcept.c
+++ b/sysdeps/riscv/rvf/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/get-rounding-mode.h b/sysdeps/riscv/rvf/get-rounding-mode.h
index bdd0bf8..5754aa0 100644
--- a/sysdeps/riscv/rvf/get-rounding-mode.h
+++ b/sysdeps/riscv/rvf/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. RISC-V version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_ceilf.c b/sysdeps/riscv/rvf/s_ceilf.c
index d19f17e..d27e45b 100644
--- a/sysdeps/riscv/rvf/s_ceilf.c
+++ b/sysdeps/riscv/rvf/s_ceilf.c
@@ -1,5 +1,5 @@
/* ceilf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_finitef.c b/sysdeps/riscv/rvf/s_finitef.c
index 7e45ac4..d261504 100644
--- a/sysdeps/riscv/rvf/s_finitef.c
+++ b/sysdeps/riscv/rvf/s_finitef.c
@@ -1,5 +1,5 @@
/* finitef(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_floorf.c b/sysdeps/riscv/rvf/s_floorf.c
index efe104c..b3a7072 100644
--- a/sysdeps/riscv/rvf/s_floorf.c
+++ b/sysdeps/riscv/rvf/s_floorf.c
@@ -1,5 +1,5 @@
/* floorf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_fmaf.c b/sysdeps/riscv/rvf/s_fmaf.c
deleted file mode 100644
index 1f1ad3f..0000000
--- a/sysdeps/riscv/rvf/s_fmaf.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* fmaf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <fenv.h>
-#include <ieee754.h>
-#include <libm-alias-float.h>
-
-float
-__fmaf (float x, float y, float z)
-{
- asm ("fmadd.s %0, %1, %2, %3" : "=f" (x) : "f" (x), "f" (y), "f" (z));
- return x;
-}
-libm_alias_float (__fma, fma)
diff --git a/sysdeps/riscv/rvf/s_fmaxf.c b/sysdeps/riscv/rvf/s_fmaxf.c
index 3d2c18b..6a0f884 100644
--- a/sysdeps/riscv/rvf/s_fmaxf.c
+++ b/sysdeps/riscv/rvf/s_fmaxf.c
@@ -1,5 +1,5 @@
/* fmaxf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_fminf.c b/sysdeps/riscv/rvf/s_fminf.c
index 4cfe89d..e6e2b7c 100644
--- a/sysdeps/riscv/rvf/s_fminf.c
+++ b/sysdeps/riscv/rvf/s_fminf.c
@@ -1,5 +1,5 @@
/* fminf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_fpclassifyf.c b/sysdeps/riscv/rvf/s_fpclassifyf.c
index 8281a09..75d00d9 100644
--- a/sysdeps/riscv/rvf/s_fpclassifyf.c
+++ b/sysdeps/riscv/rvf/s_fpclassifyf.c
@@ -1,5 +1,5 @@
/* fpclassifyf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_isinff.c b/sysdeps/riscv/rvf/s_isinff.c
index c4e4c11..580a443 100644
--- a/sysdeps/riscv/rvf/s_isinff.c
+++ b/sysdeps/riscv/rvf/s_isinff.c
@@ -1,5 +1,5 @@
/* isinff(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_isnanf.c b/sysdeps/riscv/rvf/s_isnanf.c
index a492eff..24edfed 100644
--- a/sysdeps/riscv/rvf/s_isnanf.c
+++ b/sysdeps/riscv/rvf/s_isnanf.c
@@ -1,5 +1,5 @@
/* isnanf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_issignalingf.c b/sysdeps/riscv/rvf/s_issignalingf.c
index 5942ea7..6a2d114 100644
--- a/sysdeps/riscv/rvf/s_issignalingf.c
+++ b/sysdeps/riscv/rvf/s_issignalingf.c
@@ -1,5 +1,5 @@
/* issignalingf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_lrintf.c b/sysdeps/riscv/rvf/s_lrintf.c
index 285232a..794ccff 100644
--- a/sysdeps/riscv/rvf/s_lrintf.c
+++ b/sysdeps/riscv/rvf/s_lrintf.c
@@ -1,5 +1,5 @@
/* lrintf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_lroundf.c b/sysdeps/riscv/rvf/s_lroundf.c
index 6cfb6ce..0917656 100644
--- a/sysdeps/riscv/rvf/s_lroundf.c
+++ b/sysdeps/riscv/rvf/s_lroundf.c
@@ -1,5 +1,5 @@
/* lroundf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_nearbyintf.c b/sysdeps/riscv/rvf/s_nearbyintf.c
index 4abaaa2..b29d4b4 100644
--- a/sysdeps/riscv/rvf/s_nearbyintf.c
+++ b/sysdeps/riscv/rvf/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* Round to int floating-point values. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_rintf.c b/sysdeps/riscv/rvf/s_rintf.c
index f70d1b3..b3ab7b8 100644
--- a/sysdeps/riscv/rvf/s_rintf.c
+++ b/sysdeps/riscv/rvf/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_roundevenf.c b/sysdeps/riscv/rvf/s_roundevenf.c
index 99018c0..dcf1ae6 100644
--- a/sysdeps/riscv/rvf/s_roundevenf.c
+++ b/sysdeps/riscv/rvf/s_roundevenf.c
@@ -1,5 +1,5 @@
/* Round to nearest integer value, rounding halfway cases to even.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_roundf.c b/sysdeps/riscv/rvf/s_roundf.c
index 735e7e9..11aba9d 100644
--- a/sysdeps/riscv/rvf/s_roundf.c
+++ b/sysdeps/riscv/rvf/s_roundf.c
@@ -1,5 +1,5 @@
/* roundf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvf/s_truncf.c b/sysdeps/riscv/rvf/s_truncf.c
index 0774f7c..075f18a 100644
--- a/sysdeps/riscv/rvf/s_truncf.c
+++ b/sysdeps/riscv/rvf/s_truncf.c
@@ -1,5 +1,5 @@
/* truncf(). RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/setjmp.S b/sysdeps/riscv/setjmp.S
index ab64da8..600ea84 100644
--- a/sysdeps/riscv/setjmp.S
+++ b/sysdeps/riscv/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for RISC-V.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/sfp-machine.h b/sysdeps/riscv/sfp-machine.h
index 5328749..43b2ba1 100644
--- a/sysdeps/riscv/sfp-machine.h
+++ b/sysdeps/riscv/sfp-machine.h
@@ -1,5 +1,5 @@
/* RISC-V softfloat definitions
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/riscv/sotruss-lib.c b/sysdeps/riscv/sotruss-lib.c
index 76784d9..1c60196 100644
--- a/sysdeps/riscv/sotruss-lib.c
+++ b/sysdeps/riscv/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for RISC-V.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/stackinfo.h b/sysdeps/riscv/stackinfo.h
deleted file mode 100644
index a786d4f..0000000
--- a/sysdeps/riscv/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Stack environment definitions for RISC-V.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On RISC-V the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to a non-executable stack. */
-#define DEFAULT_STACK_PERMS (PF_R | PF_W)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/riscv/start.S b/sysdeps/riscv/start.S
index ede186e..2db79c0 100644
--- a/sysdeps/riscv/start.S
+++ b/sysdeps/riscv/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF RISC-V ABI.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -87,6 +87,7 @@ load_gp:
ret
.section .preinit_array,"aw"
+ .align PTRLOG
.dc.a load_gp
/* Define a symbol for the first piece of initialized data. */
diff --git a/sysdeps/riscv/string-fza.h b/sysdeps/riscv/string-fza.h
index ee5c313..f3cc2c9 100644
--- a/sysdeps/riscv/string-fza.h
+++ b/sysdeps/riscv/string-fza.h
@@ -1,5 +1,5 @@
/* Zero byte detection; basics. RISCV version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/string-fzi.h b/sysdeps/riscv/string-fzi.h
index 66237c2..6707002 100644
--- a/sysdeps/riscv/string-fzi.h
+++ b/sysdeps/riscv/string-fzi.h
@@ -1,5 +1,5 @@
/* Zero byte detection; indexes. RISCV version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/sys/asm.h b/sysdeps/riscv/sys/asm.h
index 87ce910..b098111 100644
--- a/sysdeps/riscv/sys/asm.h
+++ b/sysdeps/riscv/sys/asm.h
@@ -1,5 +1,5 @@
/* Miscellaneous macros.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/thread_pointer.h b/sysdeps/riscv/thread_pointer.h
new file mode 100644
index 0000000..67afa9a
--- /dev/null
+++ b/sysdeps/riscv/thread_pointer.h
@@ -0,0 +1,40 @@
+/* __thread_pointer definition. riscv version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
+
+#include <features.h>
+
+#if __GNUC_PREREQ (10, 3) || __glibc_clang_prereq (11, 0)
+static inline void *
+__thread_pointer (void)
+{
+ return __builtin_thread_pointer ();
+}
+#else
+static inline void *
+__thread_pointer (void)
+{
+ void *__thread_register;
+ __asm__ ("mv %0, tp" : "=r" (__thread_register));
+ return __thread_register;
+}
+#endif
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/riscv/tst-audit.h b/sysdeps/riscv/tst-audit.h
index 89fd938..b8b13a1 100644
--- a/sysdeps/riscv/tst-audit.h
+++ b/sysdeps/riscv/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. RISC-V version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile
index b793b26..985b4f2 100644
--- a/sysdeps/s390/Makefile
+++ b/sysdeps/s390/Makefile
@@ -43,7 +43,6 @@ $(modpfx)gconv-modules-s390.conf: ../sysdeps/s390/gconv-modules-s390.conf \
endif
ifeq ($(subdir),elf)
-sysdep-dl-routines += dl-procinfo-s390
ifeq ($(build-shared),yes)
tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \
diff --git a/sysdeps/s390/asm-syntax.h b/sysdeps/s390/asm-syntax.h
index f815739..4b4753f 100644
--- a/sysdeps/s390/asm-syntax.h
+++ b/sysdeps/s390/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for S/390 syntax variations.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
diff --git a/sysdeps/s390/atomic-machine.h b/sysdeps/s390/atomic-machine.h
index 59d4034..6a7cbc7 100644
--- a/sysdeps/s390/atomic-machine.h
+++ b/sysdeps/s390/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/bits/link.h b/sysdeps/s390/bits/link.h
index 688e787..2ddd16f 100644
--- a/sysdeps/s390/bits/link.h
+++ b/sysdeps/s390/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h
index dcfd900..963a98b 100644
--- a/sysdeps/s390/bits/setjmp.h
+++ b/sysdeps/s390/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure
index 67c3755..97f5252 100644
--- a/sysdeps/s390/configure
+++ b/sysdeps/s390/configure
@@ -309,46 +309,6 @@ then
fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC is sufficient to build libc on s390x" >&5
-printf %s "checking if $CC is sufficient to build libc on s390x... " >&6; }
-if test ${libc_cv_compiler_ok_on_s390x+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e)
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
-#if !defined __GNUC__ || __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 1)
-#error insufficient compiler for building on s390x
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- libc_cv_compiler_ok_on_s390x=yes
-else case e in #(
- e) libc_cv_compiler_ok_on_s390x=no ;;
-esac
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_ok_on_s390x" >&5
-printf "%s\n" "$libc_cv_compiler_ok_on_s390x" >&6; }
-if test "$libc_cv_compiler_ok_on_s390x" != yes; then
- critic_missing="$critic_missing On s390x, GCC >= 7.1.0 is required."
-fi
-
test -n "$critic_missing" && as_fn_error $? "
*** $critic_missing" "$LINENO" 5
diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac
index 89c3e5b..496866b 100644
--- a/sysdeps/s390/configure.ac
+++ b/sysdeps/s390/configure.ac
@@ -161,23 +161,5 @@ then
AC_DEFINE(HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT)
fi
-
-dnl test if GCC is new enough. See gcc "Bug 98269 - gcc 6.5.0
-dnl __builtin_add_overflow() with small uint32_t values incorrectly detects
-dnl overflow
-dnl (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269)
-AC_CACHE_CHECK([if $CC is sufficient to build libc on s390x],
-libc_cv_compiler_ok_on_s390x, [
-AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
-#if !defined __GNUC__ || __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 1)
-#error insufficient compiler for building on s390x
-#endif
-]])],
- [libc_cv_compiler_ok_on_s390x=yes],
- [libc_cv_compiler_ok_on_s390x=no])])
-if test "$libc_cv_compiler_ok_on_s390x" != yes; then
- critic_missing="$critic_missing On s390x, GCC >= 7.1.0 is required."
-fi
-
test -n "$critic_missing" && AC_MSG_ERROR([
*** $critic_missing])
diff --git a/sysdeps/s390/cpu-features.c b/sysdeps/s390/cpu-features.c
index bc4ad60..106874b 100644
--- a/sysdeps/s390/cpu-features.c
+++ b/sysdeps/s390/cpu-features.c
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,8 @@
<https://www.gnu.org/licenses/>. */
#include <cpu-features.h>
-
+#include <ldsodefs.h>
+#include <sys/auxv.h>
#include <elf/dl-tunables.h>
#include <ifunc-memcmp.h>
#include <string.h>
@@ -26,7 +27,7 @@
#define S390_COPY_CPU_FEATURES(SRC_PTR, DEST_PTR) \
(DEST_PTR)->hwcap = (SRC_PTR)->hwcap; \
- (DEST_PTR)->stfle_bits[0] = (SRC_PTR)->stfle_bits[0];
+ (DEST_PTR)->stfle_filtered = (SRC_PTR)->stfle_filtered;
static void
TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
@@ -76,7 +77,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
disable = true;
hwcap_mask = HWCAP_S390_VXRS | HWCAP_S390_VXRS_EXT
| HWCAP_S390_VXRS_EXT2;
- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3;
+ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3;
}
else if (tunable_str_comma_strcmp_cte (&t, "z13")
|| tunable_str_comma_strcmp_cte (&t, "arch11"))
@@ -84,7 +85,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
reset_features = true;
disable = true;
hwcap_mask = HWCAP_S390_VXRS_EXT | HWCAP_S390_VXRS_EXT2;
- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3;
+ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3;
}
else if (tunable_str_comma_strcmp_cte (&t, "z14")
|| tunable_str_comma_strcmp_cte (&t, "arch12"))
@@ -92,12 +93,14 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
reset_features = true;
disable = true;
hwcap_mask = HWCAP_S390_VXRS_EXT2;
- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3;
+ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3;
}
else if (tunable_str_comma_strcmp_cte (&t, "z15")
|| tunable_str_comma_strcmp_cte (&t, "z16")
+ || tunable_str_comma_strcmp_cte (&t, "z17")
|| tunable_str_comma_strcmp_cte (&t, "arch13")
- || tunable_str_comma_strcmp_cte (&t, "arch14"))
+ || tunable_str_comma_strcmp_cte (&t, "arch14")
+ || tunable_str_comma_strcmp_cte (&t, "arch15"))
{
/* For z15 or newer we don't have to disable something, but we have
to reset to the original values. */
@@ -124,7 +127,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
hwcap_mask |= HWCAP_S390_VXRS | HWCAP_S390_VXRS_EXT;
}
else if (tunable_str_comma_strcmp_cte (&t, "STFLE_MIE3"))
- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3;
+ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3;
/* Perform the actions determined above. */
if (reset_features)
@@ -143,22 +146,26 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
if (stfle_bits0_mask != 0ULL)
{
if (disable)
- cpu_features_curr.stfle_bits[0] &= ~stfle_bits0_mask;
+ cpu_features_curr.stfle_filtered &= ~stfle_bits0_mask;
else
- cpu_features_curr.stfle_bits[0] |= stfle_bits0_mask;
+ cpu_features_curr.stfle_filtered |= stfle_bits0_mask;
}
}
/* Copy back the features after checking that no unsupported features were
enabled by user. */
cpu_features->hwcap = cpu_features_curr.hwcap & cpu_features_orig.hwcap;
- cpu_features->stfle_bits[0] = cpu_features_curr.stfle_bits[0]
- & cpu_features_orig.stfle_bits[0];
+ cpu_features->stfle_filtered = cpu_features_curr.stfle_filtered
+ & cpu_features_orig.stfle_filtered;
}
static inline void
-init_cpu_features (struct cpu_features *cpu_features)
+init_cpu_features_no_tunables (struct cpu_features *cpu_features)
{
+ /* Only initialize once. */
+ if (cpu_features->hwcap != 0)
+ return;
+
/* Fill cpu_features as passed by kernel and machine. */
cpu_features->hwcap = GLRO(dl_hwcap);
@@ -167,20 +174,57 @@ init_cpu_features (struct cpu_features *cpu_features)
&& (cpu_features->hwcap & HWCAP_S390_ZARCH)
&& (cpu_features->hwcap & HWCAP_S390_HIGH_GPRS)))
{
- register unsigned long reg0 __asm__("0") = 0;
+ unsigned long long stfle_bits[4] = { 0 };
+ register unsigned long reg0 __asm__("0") = 3;
__asm__ __volatile__(".machine push" "\n\t"
".machine \"z9-109\"" "\n\t"
".machinemode \"zarch_nohighgprs\"\n\t"
"stfle %0" "\n\t"
".machine pop" "\n"
- : "=QS" (cpu_features->stfle_bits[0]),
+ : "=QS" (stfle_bits[0]),
"+d" (reg0)
: : "cc");
+
+ unsigned long long internal_stfle_bits = 0;
+
+ /* Facility bit 34: z10: General instructions extension. */
+ if ((stfle_bits[0] & (1ULL << (63 - 34))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT34_Z10;
+
+ /* Facility bit 45: z196: Distinct operands, popcount, ... */
+ if ((stfle_bits[0] & (1ULL << (63 - 45))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT45_Z196;
+
+ /* Facility bit 61: arch13/z15: Miscellaneous-Instruction-Extensions
+ Facility 3, e.g. mvcrl. */
+ if ((stfle_bits[0] & (1ULL << (63 - 61))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT61_ARCH13_MIE3;
+
+ /* Facility bit 84: arch15/z17: Miscellaneous-instruction-extensions 4 */
+ if ((stfle_bits[1] & (1ULL << (127 - 84))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT84_ARCH15_MIE4;
+
+ /* Facility bit 198: arch15/z17: Vector-enhancements-facility 3 */
+ if ((stfle_bits[3] & (1ULL << (255 - 198))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT198_ARCH15_VXRS_EXT3;
+
+ /* Facility bit 199: arch15/z17: Vector-Packed-Decimal-Enhancement 3 */
+ if ((stfle_bits[3] & (1ULL << (255 - 199))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT199_ARCH15_VXRS_PDE3;
+
+ /* Facility bit 201: arch15/z17: CPU: Concurrent-Functions Facility */
+ if ((stfle_bits[3] & (1ULL << (255 - 201))) != 0)
+ internal_stfle_bits |= S390_STFLE_BIT201_ARCH15_CON;
+
+ cpu_features->stfle_orig = internal_stfle_bits;
+ cpu_features->stfle_filtered = internal_stfle_bits;
}
- else
- {
- cpu_features->stfle_bits[0] = 0ULL;
- }
+}
+
+static inline void
+init_cpu_features (struct cpu_features *cpu_features)
+{
+ init_cpu_features_no_tunables (cpu_features);
TUNABLE_GET (glibc, cpu, hwcaps, tunable_val_t *, TUNABLE_CALLBACK (set_hwcaps));
}
diff --git a/sysdeps/s390/cpu-features.h b/sysdeps/s390/cpu-features.h
index 6efea28..2441b27 100644
--- a/sysdeps/s390/cpu-features.h
+++ b/sysdeps/s390/cpu-features.h
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -18,29 +18,58 @@
#ifndef __CPU_FEATURES_S390X_H
# define __CPU_FEATURES_S390X_H
-#define S390_STFLE_BITS_Z10 34 /* General instructions extension */
-#define S390_STFLE_BITS_Z196 45 /* Distinct operands, pop ... */
-#define S390_STFLE_BITS_ARCH13_MIE3 61 /* Miscellaneous-Instruction-Extensions
- Facility 3, e.g. mvcrl. */
+/* The following stfle bit definitions are intended to be used for the
+ glibc internal stfle_orig and stfle_filtered fields in cpu_features
+ struct. They can't be used on the double words retrieved by the
+ stfle-instruction. */
-#define S390_STFLE_MASK_ARCH13_MIE3 (1ULL << (63 - S390_STFLE_BITS_ARCH13_MIE3))
+/* Facility bit 34: z10: General instructions extension. */
+#define S390_STFLE_BIT34_Z10 (1ULL << 0)
+/* Facility bit 45: z196: Distinct operands, popcount, ... */
+#define S390_STFLE_BIT45_Z196 (1ULL << 1)
-#define S390_IS_ARCH13_MIE3(STFLE_BITS_ARRAY) \
- (((STFLE_BITS_ARRAY)[0] & S390_STFLE_MASK_ARCH13_MIE3) != 0)
+/* Facility bit 61: arch13/z15: Miscellaneous-Instruction-Extensions
+ Facility 3, e.g. mvcrl. */
+#define S390_STFLE_BIT61_ARCH13_MIE3 (1ULL << 2)
-#define S390_IS_Z196(STFLE_BITS_ARRAY) \
- (((STFLE_BITS_ARRAY)[0] & (1ULL << (63 - S390_STFLE_BITS_Z196))) != 0)
+/* Facility bit 84: arch15/z17: Miscellaneous-instruction-extensions
+ facility 4 */
+#define S390_STFLE_BIT84_ARCH15_MIE4 (1ULL << 3)
-#define S390_IS_Z10(STFLE_BITS_ARRAY) \
- (((STFLE_BITS_ARRAY)[0] & (1ULL << (63 - S390_STFLE_BITS_Z10))) != 0)
+/* Facility bit 198: arch15/z17: Vector-enhancements-facility 3 */
+#define S390_STFLE_BIT198_ARCH15_VXRS_EXT3 (1ULL << 4)
+
+/* Facility bit 199: arch15/z17: Vector-Packed-Decimal-Enhancement
+ Facility 3 */
+#define S390_STFLE_BIT199_ARCH15_VXRS_PDE3 (1ULL << 5)
+
+/* Facility bit 201: arch15/z17: CPU: Concurrent-Functions Facility */
+#define S390_STFLE_BIT201_ARCH15_CON (1ULL << 6)
+
+#define S390_IS_ARCH15(STFLE_BITS) \
+ ((((STFLE_BITS) & S390_STFLE_BIT84_ARCH15_MIE4) != 0) \
+ && (((STFLE_BITS) & S390_STFLE_BIT198_ARCH15_VXRS_EXT3) != 0) \
+ && (((STFLE_BITS) & S390_STFLE_BIT199_ARCH15_VXRS_PDE3) != 0) \
+ && (((STFLE_BITS) & S390_STFLE_BIT201_ARCH15_CON) != 0))
+
+#define S390_IS_ARCH13_MIE3(STFLE_BITS) \
+ (((STFLE_BITS) & S390_STFLE_BIT61_ARCH13_MIE3) != 0)
+
+#define S390_IS_Z196(STFLE_BITS) \
+ (((STFLE_BITS) & S390_STFLE_BIT45_Z196) != 0)
+
+#define S390_IS_Z10(STFLE_BITS) \
+ (((STFLE_BITS) & S390_STFLE_BIT34_Z10) != 0)
struct cpu_features
{
unsigned long int hwcap;
unsigned long int __reserved_hwcap2;
- unsigned long long stfle_bits[3];
- unsigned long long __reserved[11];
+ unsigned long long __reserved;
+ unsigned long long stfle_orig;
+ unsigned long long stfle_filtered;
+ unsigned long long __reserved2[11];
};
#endif /* __CPU_FEATURES_S390X_H */
diff --git a/sysdeps/x86/dl-procinfo.h b/sysdeps/s390/dl-diagnostics-cpu.c
index ea0f33b..426af2d 100644
--- a/sysdeps/x86/dl-procinfo.h
+++ b/sysdeps/s390/dl-diagnostics-cpu.c
@@ -1,5 +1,5 @@
-/* x86 version of processor capability information handling macros.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Print CPU diagnostics data in ld.so. s390 version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,22 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
+#include <dl-diagnostics.h>
#include <ldsodefs.h>
-#include <dl-hwcap.h>
+#include <cpu-features.h>
-#define _DL_HWCAP_COUNT HWCAP_COUNT
+static void
+print_cpu_features_value (const char *label, uint64_t value)
+{
+ _dl_printf ("s390.cpu_features.");
+ _dl_diagnostics_print_labeled_value (label, value);
+}
-#endif /* dl-procinfo.h */
+void
+_dl_diagnostics_cpu (void)
+{
+ const struct cpu_features *cpu_features = &GLRO(dl_s390_cpu_features);
+ print_cpu_features_value ("hwcap", cpu_features->hwcap);
+ print_cpu_features_value ("stfle_orig", cpu_features->stfle_orig);
+ print_cpu_features_value ("stfle_filtered", cpu_features->stfle_filtered);
+}
diff --git a/sysdeps/s390/dl-irel.h b/sysdeps/s390/dl-irel.h
index f2e4aa9..d160e60 100644
--- a/sysdeps/s390/dl-irel.h
+++ b/sysdeps/s390/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
Version for S/390 32 and 64 bit.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/dl-procinfo.c b/sysdeps/s390/dl-procinfo.c
index b6f4467..b6a9f49 100644
--- a/sysdeps/s390/dl-procinfo.c
+++ b/sysdeps/s390/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for s390 version of processor capability information.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,9 +16,6 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* The hwcap and platform strings are now in
- sysdeps/s390/dl-procinfo-s390.c. */
-
/* Needed by sysdeps/unix/sysv/linux/dl-vdso-setup.c (as included from
sysdeps/generic/ldsodefs.h). */
diff --git a/sysdeps/s390/dl-procinfo.h b/sysdeps/s390/dl-procinfo.h
deleted file mode 100644
index 45dd11c..0000000
--- a/sysdeps/s390/dl-procinfo.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* s390 version of processor capability information handling macros.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-#include <ldsodefs.h>
-
-#define _DL_HWCAP_COUNT 23
-extern const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] attribute_hidden;
-
-/* Hardware capability bit numbers are derived directly from the
- facility indications as stored by the "store facility list" (STFL)
- instruction.
- highgprs is an alien in that list. It describes a *kernel*
- capability. */
-
-enum
-{
- HWCAP_S390_ESAN3 = 1 << 0,
- HWCAP_S390_ZARCH = 1 << 1,
- HWCAP_S390_STFLE = 1 << 2,
- HWCAP_S390_MSA = 1 << 3,
- HWCAP_S390_LDISP = 1 << 4,
- HWCAP_S390_EIMM = 1 << 5,
- HWCAP_S390_DFP = 1 << 6,
- HWCAP_S390_HPAGE = 1 << 7,
- HWCAP_S390_ETF3EH = 1 << 8,
- HWCAP_S390_HIGH_GPRS = 1 << 9,
- HWCAP_S390_TE = 1 << 10,
- HWCAP_S390_VX = 1 << 11,
- HWCAP_S390_VXRS = HWCAP_S390_VX,
- HWCAP_S390_VXD = 1 << 12,
- HWCAP_S390_VXRS_BCD = HWCAP_S390_VXD,
- HWCAP_S390_VXE = 1 << 13,
- HWCAP_S390_VXRS_EXT = HWCAP_S390_VXE,
- HWCAP_S390_GS = 1 << 14,
- HWCAP_S390_VXRS_EXT2 = 1 << 15,
- HWCAP_S390_VXRS_PDE = 1 << 16,
- HWCAP_S390_SORT = 1 << 17,
- HWCAP_S390_DFLT = 1 << 18,
- HWCAP_S390_VXRS_PDE2 = 1 << 19,
- HWCAP_S390_NNPA = 1 << 20,
- HWCAP_S390_PCI_MIO = 1 << 21,
- HWCAP_S390_SIE = 1 << 22,
-};
-
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return _dl_s390_cap_flags[idx];
-};
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h
index dcbdfe4..34bf840 100644
--- a/sysdeps/s390/dl-tls.h
+++ b/sysdeps/s390/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_TLS_H
+#define _DL_TLS_H
/* Type used for the representation of TLS information in the GOT. */
typedef struct
@@ -24,6 +26,12 @@ typedef struct
unsigned long int ti_offset;
} tls_index;
+/* The DTV stores absolute addresses, but __tls_get_addr must return
+ TP-relative addresses. */
+#define TLS_DTV_OFFSET (-(unsigned long int) __builtin_thread_pointer ())
+
+/* Static TLS offsets are relative to the unadjusted thread pointer. */
+#define TLS_TP_OFFSET 0
#ifdef SHARED
@@ -89,9 +97,6 @@ __tls_get_offset:\n\
extern void *__tls_get_addr_internal (tls_index *ti);
# endif /* !IS_IN (rtld) */
-# define GET_ADDR_OFFSET \
- (ti->ti_offset - (unsigned long) __builtin_thread_pointer ())
-
/* Use the privately exported __tls_get_addr_internal instead of
__tls_get_offset in order to avoid the __tls_get_offset special
linkage requiring the GOT pointer to be set up in r12. The
@@ -102,3 +107,5 @@ extern void *__tls_get_addr_internal (tls_index *ti);
+ (unsigned long) __builtin_thread_pointer (); })
#endif
+
+#endif /* _DL_TLS_H */
diff --git a/sysdeps/s390/dl-tunables.list b/sysdeps/s390/dl-tunables.list
index 4541755..a6e8d8a 100644
--- a/sysdeps/s390/dl-tunables.list
+++ b/sysdeps/s390/dl-tunables.list
@@ -1,5 +1,5 @@
# s390 specific tunables.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/elf-initfini.h b/sysdeps/s390/elf-initfini.h
index 4c5ef14..7299913 100644
--- a/sysdeps/s390/elf-initfini.h
+++ b/sysdeps/s390/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. S/390 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fix-fp-int-convert-overflow.h b/sysdeps/s390/fix-fp-int-convert-overflow.h
index c4adcb1..d1a252f 100644
--- a/sysdeps/s390/fix-fp-int-convert-overflow.h
+++ b/sysdeps/s390/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. S390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/bits/fenv.h b/sysdeps/s390/fpu/bits/fenv.h
index 258828e..278e192 100644
--- a/sysdeps/s390/fpu/bits/fenv.h
+++ b/sysdeps/s390/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/e_sqrtl.c b/sysdeps/s390/fpu/e_sqrtl.c
index f673c02..23c5a12 100644
--- a/sysdeps/s390/fpu/e_sqrtl.c
+++ b/sysdeps/s390/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Square root. S/390 FPU version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fclrexcpt.c b/sysdeps/s390/fpu/fclrexcpt.c
index 7f6be8e..b8e3e8f 100644
--- a/sysdeps/s390/fpu/fclrexcpt.c
+++ b/sysdeps/s390/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fedisblxcpt.c b/sysdeps/s390/fpu/fedisblxcpt.c
index 35c4c3d..359fb28 100644
--- a/sysdeps/s390/fpu/fedisblxcpt.c
+++ b/sysdeps/s390/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/feenablxcpt.c b/sysdeps/s390/fpu/feenablxcpt.c
index f0969d9..4a81a78 100644
--- a/sysdeps/s390/fpu/feenablxcpt.c
+++ b/sysdeps/s390/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fegetenv.c b/sysdeps/s390/fpu/fegetenv.c
index bb63481..a8254d3 100644
--- a/sysdeps/s390/fpu/fegetenv.c
+++ b/sysdeps/s390/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fegetexcept.c b/sysdeps/s390/fpu/fegetexcept.c
index d22ee8a..b3502c6 100644
--- a/sysdeps/s390/fpu/fegetexcept.c
+++ b/sysdeps/s390/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fegetmode.c b/sysdeps/s390/fpu/fegetmode.c
index bd3eb9a..2cd586e 100644
--- a/sysdeps/s390/fpu/fegetmode.c
+++ b/sysdeps/s390/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. S/390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fegetround.c b/sysdeps/s390/fpu/fegetround.c
index 1045861..3d7349b 100644
--- a/sysdeps/s390/fpu/fegetround.c
+++ b/sysdeps/s390/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/feholdexcpt.c b/sysdeps/s390/fpu/feholdexcpt.c
index 8e3cda3..431b429 100644
--- a/sysdeps/s390/fpu/feholdexcpt.c
+++ b/sysdeps/s390/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fenv_libc.h b/sysdeps/s390/fpu/fenv_libc.h
index 0281b54..ff92cea 100644
--- a/sysdeps/s390/fpu/fenv_libc.h
+++ b/sysdeps/s390/fpu/fenv_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fenv_private.h b/sysdeps/s390/fpu/fenv_private.h
index cbc2c9e..6c9f62e 100644
--- a/sysdeps/s390/fpu/fenv_private.h
+++ b/sysdeps/s390/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. 390/s390x version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fesetenv.c b/sysdeps/s390/fpu/fesetenv.c
index 85a1fc2..ce6c204 100644
--- a/sysdeps/s390/fpu/fesetenv.c
+++ b/sysdeps/s390/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fesetexcept.c b/sysdeps/s390/fpu/fesetexcept.c
index 7234361..f4cb8f6 100644
--- a/sysdeps/s390/fpu/fesetexcept.c
+++ b/sysdeps/s390/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. S/390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fesetmode.c b/sysdeps/s390/fpu/fesetmode.c
index e2dc283..edae1f7 100644
--- a/sysdeps/s390/fpu/fesetmode.c
+++ b/sysdeps/s390/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. S/390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fesetround.c b/sysdeps/s390/fpu/fesetround.c
index bdd4e56..161f2df 100644
--- a/sysdeps/s390/fpu/fesetround.c
+++ b/sysdeps/s390/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/feupdateenv.c b/sysdeps/s390/fpu/feupdateenv.c
index 1c0e129..c46d52c 100644
--- a/sysdeps/s390/fpu/feupdateenv.c
+++ b/sysdeps/s390/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fgetexcptflg.c b/sysdeps/s390/fpu/fgetexcptflg.c
index 9361b50..501d7f2 100644
--- a/sysdeps/s390/fpu/fgetexcptflg.c
+++ b/sysdeps/s390/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h b/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
index 4639ffb..62f7f20 100644
--- a/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. s390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fpu_control.h b/sysdeps/s390/fpu/fpu_control.h
index ddca970..2781194 100644
--- a/sysdeps/s390/fpu/fpu_control.h
+++ b/sysdeps/s390/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. Stub version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fraiseexcpt.c b/sysdeps/s390/fpu/fraiseexcpt.c
index 41315e7..7bc3b4e 100644
--- a/sysdeps/s390/fpu/fraiseexcpt.c
+++ b/sysdeps/s390/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/fsetexcptflg.c b/sysdeps/s390/fpu/fsetexcptflg.c
index 3479c16..53f3ed7 100644
--- a/sysdeps/s390/fpu/fsetexcptflg.c
+++ b/sysdeps/s390/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/ftestexcept.c b/sysdeps/s390/fpu/ftestexcept.c
index 792e1ca..056aa09 100644
--- a/sysdeps/s390/fpu/ftestexcept.c
+++ b/sysdeps/s390/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/get-rounding-mode.h b/sysdeps/s390/fpu/get-rounding-mode.h
index b5f13e0..36107ec 100644
--- a/sysdeps/s390/fpu/get-rounding-mode.h
+++ b/sysdeps/s390/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. S/390 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
deleted file mode 100644
index 9ac3db4..0000000
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1510 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 1
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 2
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-ldouble: 3
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-ldouble: 3
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "csin_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 1
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 1
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "erfc_downward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "erfc_upward":
-double: 4
-float: 4
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "exp10m1_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_towardzero":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "exp10m1_upward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp2":
-double: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2m1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1_towardzero":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp2m1_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "gamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "gamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 4
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 9
-float: 8
-ldouble: 6
-
-Function: "j1_towardzero":
-double: 5
-float: 8
-ldouble: 9
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 9
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 4
-ldouble: 7
-
-Function: "lgamma":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 4
-float: 4
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 4
-float: 3
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 4
-float: 5
-ldouble: 8
-
-Function: "log":
-double: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "log10p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10p1_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 1
-ldouble: 1
-
-Function: "log2_upward":
-double: 1
-ldouble: 1
-
-Function: "log2p1":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_downward":
-ldouble: 1
-
-Function: "log_towardzero":
-ldouble: 2
-
-Function: "log_upward":
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos":
-double: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 2
-float: 8
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 8
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 3
-float: 8
-ldouble: 3
-
-Function: "y0_upward":
-double: 3
-float: 8
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 8
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/s390/fpu/libm-test-ulps-name b/sysdeps/s390/fpu/libm-test-ulps-name
deleted file mode 100644
index 4a55100..0000000
--- a/sysdeps/s390/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-S/390
diff --git a/sysdeps/s390/fpu/math-barriers.h b/sysdeps/s390/fpu/math-barriers.h
index 47e1f6f..81e77be 100644
--- a/sysdeps/s390/fpu/math-barriers.h
+++ b/sysdeps/s390/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/math_private.h b/sysdeps/s390/fpu/math_private.h
index eb59e3f..2de06ae 100644
--- a/sysdeps/s390/fpu/math_private.h
+++ b/sysdeps/s390/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Configure optimized libm functions. S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/fpu/s_llrint.c b/sysdeps/s390/fpu/s_llrint.c
index ff01697..1af2644 100644
--- a/sysdeps/s390/fpu/s_llrint.c
+++ b/sysdeps/s390/fpu/s_llrint.c
@@ -1,5 +1,5 @@
/* llrint() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_llrintf.c b/sysdeps/s390/fpu/s_llrintf.c
index 92d1379..5e6b5d8 100644
--- a/sysdeps/s390/fpu/s_llrintf.c
+++ b/sysdeps/s390/fpu/s_llrintf.c
@@ -1,5 +1,5 @@
/* llrintf() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_llrintl.c b/sysdeps/s390/fpu/s_llrintl.c
index 3e31007..cd934d1 100644
--- a/sysdeps/s390/fpu/s_llrintl.c
+++ b/sysdeps/s390/fpu/s_llrintl.c
@@ -1,5 +1,5 @@
/* llrintl() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_llround.c b/sysdeps/s390/fpu/s_llround.c
index a6f4e86..7c2a147 100644
--- a/sysdeps/s390/fpu/s_llround.c
+++ b/sysdeps/s390/fpu/s_llround.c
@@ -1,5 +1,5 @@
/* llround() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_llroundf.c b/sysdeps/s390/fpu/s_llroundf.c
index 955ac38..00f2666 100644
--- a/sysdeps/s390/fpu/s_llroundf.c
+++ b/sysdeps/s390/fpu/s_llroundf.c
@@ -1,5 +1,5 @@
/* llroundf() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_llroundl.c b/sysdeps/s390/fpu/s_llroundl.c
index 9ae9776..dc31103 100644
--- a/sysdeps/s390/fpu/s_llroundl.c
+++ b/sysdeps/s390/fpu/s_llroundl.c
@@ -1,5 +1,5 @@
/* llroundl() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lrint.c b/sysdeps/s390/fpu/s_lrint.c
index 983e057..5f37c2e 100644
--- a/sysdeps/s390/fpu/s_lrint.c
+++ b/sysdeps/s390/fpu/s_lrint.c
@@ -1,5 +1,5 @@
/* lrint() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lrintf.c b/sysdeps/s390/fpu/s_lrintf.c
index d075b45..a99c187 100644
--- a/sysdeps/s390/fpu/s_lrintf.c
+++ b/sysdeps/s390/fpu/s_lrintf.c
@@ -1,5 +1,5 @@
/* lrintf() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lrintl.c b/sysdeps/s390/fpu/s_lrintl.c
index f3a5a8d..f3c868e 100644
--- a/sysdeps/s390/fpu/s_lrintl.c
+++ b/sysdeps/s390/fpu/s_lrintl.c
@@ -1,5 +1,5 @@
/* lrintl() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lround.c b/sysdeps/s390/fpu/s_lround.c
index bc68027..b62a4f1 100644
--- a/sysdeps/s390/fpu/s_lround.c
+++ b/sysdeps/s390/fpu/s_lround.c
@@ -1,5 +1,5 @@
/* lround() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lroundf.c b/sysdeps/s390/fpu/s_lroundf.c
index fec8019..375e973 100644
--- a/sysdeps/s390/fpu/s_lroundf.c
+++ b/sysdeps/s390/fpu/s_lroundf.c
@@ -1,5 +1,5 @@
/* lroundf() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_lroundl.c b/sysdeps/s390/fpu/s_lroundl.c
index 6661273..27ad126 100644
--- a/sysdeps/s390/fpu/s_lroundl.c
+++ b/sysdeps/s390/fpu/s_lroundl.c
@@ -1,5 +1,5 @@
/* lroundl() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_roundeven.c b/sysdeps/s390/fpu/s_roundeven.c
index 2685e03..54b75b4 100644
--- a/sysdeps/s390/fpu/s_roundeven.c
+++ b/sysdeps/s390/fpu/s_roundeven.c
@@ -1,5 +1,5 @@
/* roundeven() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_roundevenf.c b/sysdeps/s390/fpu/s_roundevenf.c
index 770f11e..7ad21d9 100644
--- a/sysdeps/s390/fpu/s_roundevenf.c
+++ b/sysdeps/s390/fpu/s_roundevenf.c
@@ -1,5 +1,5 @@
/* roundevenf() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/fpu/s_roundevenl.c b/sysdeps/s390/fpu/s_roundevenl.c
index 0bac6e5..de2ee40 100644
--- a/sysdeps/s390/fpu/s_roundevenl.c
+++ b/sysdeps/s390/fpu/s_roundevenl.c
@@ -1,5 +1,5 @@
/* roundevenl() - S390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/gccframe.h b/sysdeps/s390/gccframe.h
index f112b0f..981762c 100644
--- a/sysdeps/s390/gccframe.h
+++ b/sysdeps/s390/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. s390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/gconv-modules-s390.conf b/sysdeps/s390/gconv-modules-s390.conf
index 638c032..e23b7df 100644
--- a/sysdeps/s390/gconv-modules-s390.conf
+++ b/sysdeps/s390/gconv-modules-s390.conf
@@ -1,5 +1,5 @@
# GNU libc iconv configuration.
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/hp-timing.h b/sysdeps/s390/hp-timing.h
index 25d97e8..7e3b168 100644
--- a/sysdeps/s390/hp-timing.h
+++ b/sysdeps/s390/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memccpy.h b/sysdeps/s390/ifunc-memccpy.h
index 2d7d5f7..972a7ef 100644
--- a/sysdeps/s390/ifunc-memccpy.h
+++ b/sysdeps/s390/ifunc-memccpy.h
@@ -1,5 +1,5 @@
/* memccpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memchr.h b/sysdeps/s390/ifunc-memchr.h
index dd904e0..fcb04223 100644
--- a/sysdeps/s390/ifunc-memchr.h
+++ b/sysdeps/s390/ifunc-memchr.h
@@ -1,5 +1,5 @@
/* memchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memcmp.h b/sysdeps/s390/ifunc-memcmp.h
index 84ee41c..1633752 100644
--- a/sysdeps/s390/ifunc-memcmp.h
+++ b/sysdeps/s390/ifunc-memcmp.h
@@ -1,5 +1,5 @@
/* memcmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memcpy.h b/sysdeps/s390/ifunc-memcpy.h
index 7f913d2..fa6693a 100644
--- a/sysdeps/s390/ifunc-memcpy.h
+++ b/sysdeps/s390/ifunc-memcpy.h
@@ -1,5 +1,5 @@
/* memcpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memmem.h b/sysdeps/s390/ifunc-memmem.h
index 7e9cfc2..57c1f72 100644
--- a/sysdeps/s390/ifunc-memmem.h
+++ b/sysdeps/s390/ifunc-memmem.h
@@ -1,5 +1,5 @@
/* memmem variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memrchr.h b/sysdeps/s390/ifunc-memrchr.h
index 64ad87f..aa9b259 100644
--- a/sysdeps/s390/ifunc-memrchr.h
+++ b/sysdeps/s390/ifunc-memrchr.h
@@ -1,5 +1,5 @@
/* memrchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-memset.h b/sysdeps/s390/ifunc-memset.h
index 72ec678..9be4416 100644
--- a/sysdeps/s390/ifunc-memset.h
+++ b/sysdeps/s390/ifunc-memset.h
@@ -1,5 +1,5 @@
/* memset variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-rawmemchr.h b/sysdeps/s390/ifunc-rawmemchr.h
index 1daea39..80daff3 100644
--- a/sysdeps/s390/ifunc-rawmemchr.h
+++ b/sysdeps/s390/ifunc-rawmemchr.h
@@ -1,5 +1,5 @@
/* rawmemchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-stpcpy.h b/sysdeps/s390/ifunc-stpcpy.h
index 194e309..35e8295 100644
--- a/sysdeps/s390/ifunc-stpcpy.h
+++ b/sysdeps/s390/ifunc-stpcpy.h
@@ -1,5 +1,5 @@
/* stpcpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-stpncpy.h b/sysdeps/s390/ifunc-stpncpy.h
index 5311d26..ac685a0 100644
--- a/sysdeps/s390/ifunc-stpncpy.h
+++ b/sysdeps/s390/ifunc-stpncpy.h
@@ -1,5 +1,5 @@
/* stpncpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strcat.h b/sysdeps/s390/ifunc-strcat.h
index 50dea2e..c2a94ba 100644
--- a/sysdeps/s390/ifunc-strcat.h
+++ b/sysdeps/s390/ifunc-strcat.h
@@ -1,5 +1,5 @@
/* strcat variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strchr.h b/sysdeps/s390/ifunc-strchr.h
index b5c05e3..f445e5e 100644
--- a/sysdeps/s390/ifunc-strchr.h
+++ b/sysdeps/s390/ifunc-strchr.h
@@ -1,5 +1,5 @@
/* strchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strchrnul.h b/sysdeps/s390/ifunc-strchrnul.h
index d321aba..b27a2f2 100644
--- a/sysdeps/s390/ifunc-strchrnul.h
+++ b/sysdeps/s390/ifunc-strchrnul.h
@@ -1,5 +1,5 @@
/* strchrnul variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strcmp.h b/sysdeps/s390/ifunc-strcmp.h
index 9c21bda..87ce1e8 100644
--- a/sysdeps/s390/ifunc-strcmp.h
+++ b/sysdeps/s390/ifunc-strcmp.h
@@ -1,5 +1,5 @@
/* strcmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strcpy.h b/sysdeps/s390/ifunc-strcpy.h
index c9a9cb9..87bc50f 100644
--- a/sysdeps/s390/ifunc-strcpy.h
+++ b/sysdeps/s390/ifunc-strcpy.h
@@ -1,5 +1,5 @@
/* strcpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strcspn.h b/sysdeps/s390/ifunc-strcspn.h
index e24e2b8..dbc9a19 100644
--- a/sysdeps/s390/ifunc-strcspn.h
+++ b/sysdeps/s390/ifunc-strcspn.h
@@ -1,5 +1,5 @@
/* strcspn variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strlen.h b/sysdeps/s390/ifunc-strlen.h
index 08cbf63..10655ba 100644
--- a/sysdeps/s390/ifunc-strlen.h
+++ b/sysdeps/s390/ifunc-strlen.h
@@ -1,5 +1,5 @@
/* strlen variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strncat.h b/sysdeps/s390/ifunc-strncat.h
index 4ed0947..1ceb6cf 100644
--- a/sysdeps/s390/ifunc-strncat.h
+++ b/sysdeps/s390/ifunc-strncat.h
@@ -1,5 +1,5 @@
/* strncat variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strncmp.h b/sysdeps/s390/ifunc-strncmp.h
index 684e694..06f92af 100644
--- a/sysdeps/s390/ifunc-strncmp.h
+++ b/sysdeps/s390/ifunc-strncmp.h
@@ -1,5 +1,5 @@
/* strncmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strncpy.h b/sysdeps/s390/ifunc-strncpy.h
index 0249f37..bc7131f 100644
--- a/sysdeps/s390/ifunc-strncpy.h
+++ b/sysdeps/s390/ifunc-strncpy.h
@@ -1,5 +1,5 @@
/* strncpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strnlen.h b/sysdeps/s390/ifunc-strnlen.h
index 1dbf4d5..034797f 100644
--- a/sysdeps/s390/ifunc-strnlen.h
+++ b/sysdeps/s390/ifunc-strnlen.h
@@ -1,5 +1,5 @@
/* strnlen variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strpbrk.h b/sysdeps/s390/ifunc-strpbrk.h
index 46df548..de95c94 100644
--- a/sysdeps/s390/ifunc-strpbrk.h
+++ b/sysdeps/s390/ifunc-strpbrk.h
@@ -1,5 +1,5 @@
/* strpbrk variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strrchr.h b/sysdeps/s390/ifunc-strrchr.h
index cd7c8c8..dd2b4f8 100644
--- a/sysdeps/s390/ifunc-strrchr.h
+++ b/sysdeps/s390/ifunc-strrchr.h
@@ -1,5 +1,5 @@
/* strrchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strspn.h b/sysdeps/s390/ifunc-strspn.h
index 46c3e1f..01b14d7 100644
--- a/sysdeps/s390/ifunc-strspn.h
+++ b/sysdeps/s390/ifunc-strspn.h
@@ -1,5 +1,5 @@
/* strspn variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-strstr.h b/sysdeps/s390/ifunc-strstr.h
index 8d6d47a..d7c5162 100644
--- a/sysdeps/s390/ifunc-strstr.h
+++ b/sysdeps/s390/ifunc-strstr.h
@@ -1,5 +1,5 @@
/* strstr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcpcpy.h b/sysdeps/s390/ifunc-wcpcpy.h
index 25ffa0b..63e7278 100644
--- a/sysdeps/s390/ifunc-wcpcpy.h
+++ b/sysdeps/s390/ifunc-wcpcpy.h
@@ -1,5 +1,5 @@
/* wcpcpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcpncpy.h b/sysdeps/s390/ifunc-wcpncpy.h
index 8c51918..b089e9c 100644
--- a/sysdeps/s390/ifunc-wcpncpy.h
+++ b/sysdeps/s390/ifunc-wcpncpy.h
@@ -1,5 +1,5 @@
/* wcpncpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcscat.h b/sysdeps/s390/ifunc-wcscat.h
index 21df405..d18fb56 100644
--- a/sysdeps/s390/ifunc-wcscat.h
+++ b/sysdeps/s390/ifunc-wcscat.h
@@ -1,5 +1,5 @@
/* wcscat variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcschr.h b/sysdeps/s390/ifunc-wcschr.h
index 412106a..408df63 100644
--- a/sysdeps/s390/ifunc-wcschr.h
+++ b/sysdeps/s390/ifunc-wcschr.h
@@ -1,5 +1,5 @@
/* wcschr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcschrnul.h b/sysdeps/s390/ifunc-wcschrnul.h
index edfa46c..4eaa147 100644
--- a/sysdeps/s390/ifunc-wcschrnul.h
+++ b/sysdeps/s390/ifunc-wcschrnul.h
@@ -1,5 +1,5 @@
/* wcschrnul variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcscmp.h b/sysdeps/s390/ifunc-wcscmp.h
index 4a1f756..969edeb 100644
--- a/sysdeps/s390/ifunc-wcscmp.h
+++ b/sysdeps/s390/ifunc-wcscmp.h
@@ -1,5 +1,5 @@
/* wcscmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcscpy.h b/sysdeps/s390/ifunc-wcscpy.h
index 4a591b7..32b1674 100644
--- a/sysdeps/s390/ifunc-wcscpy.h
+++ b/sysdeps/s390/ifunc-wcscpy.h
@@ -1,5 +1,5 @@
/* wcscpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcscspn.h b/sysdeps/s390/ifunc-wcscspn.h
index 76a0d06..587adc6 100644
--- a/sysdeps/s390/ifunc-wcscspn.h
+++ b/sysdeps/s390/ifunc-wcscspn.h
@@ -1,5 +1,5 @@
/* wcscspn variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcslen.h b/sysdeps/s390/ifunc-wcslen.h
index 6b42511..cfb4fbc 100644
--- a/sysdeps/s390/ifunc-wcslen.h
+++ b/sysdeps/s390/ifunc-wcslen.h
@@ -1,5 +1,5 @@
/* wcslen variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsncat.h b/sysdeps/s390/ifunc-wcsncat.h
index 2b51eea..f18f51d 100644
--- a/sysdeps/s390/ifunc-wcsncat.h
+++ b/sysdeps/s390/ifunc-wcsncat.h
@@ -1,5 +1,5 @@
/* wcsncat variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsncmp.h b/sysdeps/s390/ifunc-wcsncmp.h
index 295f161..bc9e0e4 100644
--- a/sysdeps/s390/ifunc-wcsncmp.h
+++ b/sysdeps/s390/ifunc-wcsncmp.h
@@ -1,5 +1,5 @@
/* wcsncmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsncpy.h b/sysdeps/s390/ifunc-wcsncpy.h
index 7ee262c..e5871a0 100644
--- a/sysdeps/s390/ifunc-wcsncpy.h
+++ b/sysdeps/s390/ifunc-wcsncpy.h
@@ -1,5 +1,5 @@
/* wcsncpy variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsnlen.h b/sysdeps/s390/ifunc-wcsnlen.h
index 031dc9a..f5c82cc 100644
--- a/sysdeps/s390/ifunc-wcsnlen.h
+++ b/sysdeps/s390/ifunc-wcsnlen.h
@@ -1,5 +1,5 @@
/* wcsnlen variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcspbrk.h b/sysdeps/s390/ifunc-wcspbrk.h
index 6083b19..4ed5d82 100644
--- a/sysdeps/s390/ifunc-wcspbrk.h
+++ b/sysdeps/s390/ifunc-wcspbrk.h
@@ -1,5 +1,5 @@
/* wcspbrk variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsrchr.h b/sysdeps/s390/ifunc-wcsrchr.h
index cbec8b3..5a50327 100644
--- a/sysdeps/s390/ifunc-wcsrchr.h
+++ b/sysdeps/s390/ifunc-wcsrchr.h
@@ -1,5 +1,5 @@
/* wcsrchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wcsspn.h b/sysdeps/s390/ifunc-wcsspn.h
index aabe52e..55d72f9 100644
--- a/sysdeps/s390/ifunc-wcsspn.h
+++ b/sysdeps/s390/ifunc-wcsspn.h
@@ -1,5 +1,5 @@
/* wcsspn variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wmemchr.h b/sysdeps/s390/ifunc-wmemchr.h
index 8dcc2bf..45fb103 100644
--- a/sysdeps/s390/ifunc-wmemchr.h
+++ b/sysdeps/s390/ifunc-wmemchr.h
@@ -1,5 +1,5 @@
/* wmemchr variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wmemcmp.h b/sysdeps/s390/ifunc-wmemcmp.h
index 3a65fd8..37d3db5 100644
--- a/sysdeps/s390/ifunc-wmemcmp.h
+++ b/sysdeps/s390/ifunc-wmemcmp.h
@@ -1,5 +1,5 @@
/* wmemcmp variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ifunc-wmemset.h b/sysdeps/s390/ifunc-wmemset.h
index 5490e4b..0be5a84 100644
--- a/sysdeps/s390/ifunc-wmemset.h
+++ b/sysdeps/s390/ifunc-wmemset.h
@@ -1,5 +1,5 @@
/* wmemset variant information on S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/iso-8859-1_cp037_z900.c b/sysdeps/s390/iso-8859-1_cp037_z900.c
index bc72107..2110219 100644
--- a/sysdeps/s390/iso-8859-1_cp037_z900.c
+++ b/sysdeps/s390/iso-8859-1_cp037_z900.c
@@ -1,7 +1,7 @@
/* Conversion between ISO 8859-1 and IBM037.
This module uses the translate instruction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/s390/jmpbuf-offsets.h b/sysdeps/s390/jmpbuf-offsets.h
index 4d38893..c3d0034 100644
--- a/sysdeps/s390/jmpbuf-offsets.h
+++ b/sysdeps/s390/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. S/390 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/jmpbuf-unwind.h b/sysdeps/s390/jmpbuf-unwind.h
index e1de3ee..6b18bd3 100644
--- a/sysdeps/s390/jmpbuf-unwind.h
+++ b/sysdeps/s390/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/ldsodefs.h b/sysdeps/s390/ldsodefs.h
index 0dfef48..f3b7b64 100644
--- a/sysdeps/s390/ldsodefs.h
+++ b/sysdeps/s390/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/libc-start.c b/sysdeps/s390/libc-start.c
index 604d76b..19b520e 100644
--- a/sysdeps/s390/libc-start.c
+++ b/sysdeps/s390/libc-start.c
@@ -1,5 +1,5 @@
/* Override csu/libc-start.c on s390x.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/libc-tls.c b/sysdeps/s390/libc-tls.c
index 3ad817c..f6f54ff 100644
--- a/sysdeps/s390/libc-tls.c
+++ b/sysdeps/s390/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. S390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c
index a550828..2e410b0 100644
--- a/sysdeps/s390/longjmp.c
+++ b/sysdeps/s390/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/machine-gmon.h b/sysdeps/s390/machine-gmon.h
index 1e54804..d5e6be4 100644
--- a/sysdeps/s390/machine-gmon.h
+++ b/sysdeps/s390/machine-gmon.h
@@ -1,5 +1,5 @@
/* s390-specific implementation of profiling support.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memccpy-c.c b/sysdeps/s390/memccpy-c.c
index cb5225c..21534ad 100644
--- a/sysdeps/s390/memccpy-c.c
+++ b/sysdeps/s390/memccpy-c.c
@@ -1,5 +1,5 @@
/* Default memccpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memccpy-vx.S b/sysdeps/s390/memccpy-vx.S
index 71daebe..ee17927 100644
--- a/sysdeps/s390/memccpy-vx.S
+++ b/sysdeps/s390/memccpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memccpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memccpy.c b/sysdeps/s390/memccpy.c
index 118b192..23c1198 100644
--- a/sysdeps/s390/memccpy.c
+++ b/sysdeps/s390/memccpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memccpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memchr-vx.S b/sysdeps/s390/memchr-vx.S
index 3e81df3..2348b5b 100644
--- a/sysdeps/s390/memchr-vx.S
+++ b/sysdeps/s390/memchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memchr-z900.S b/sysdeps/s390/memchr-z900.S
index 725c29c..50922f3 100644
--- a/sysdeps/s390/memchr-z900.S
+++ b/sysdeps/s390/memchr-z900.S
@@ -1,5 +1,5 @@
/* Search a character in a block of memory. 31/64 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memchr.c b/sysdeps/s390/memchr.c
index ffb76d0..3c1a754 100644
--- a/sysdeps/s390/memchr.c
+++ b/sysdeps/s390/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memcmp-z900.S b/sysdeps/s390/memcmp-z900.S
index a618839..d29c7ec 100644
--- a/sysdeps/s390/memcmp-z900.S
+++ b/sysdeps/s390/memcmp-z900.S
@@ -1,5 +1,5 @@
/* memcmp - compare two memory blocks. 31/64 bit S/390 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memcmp.c b/sysdeps/s390/memcmp.c
index 5758e41..721b6eb 100644
--- a/sysdeps/s390/memcmp.c
+++ b/sysdeps/s390/memcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memcopy.h b/sysdeps/s390/memcopy.h
index 7b81517..d1437e6 100644
--- a/sysdeps/s390/memcopy.h
+++ b/sysdeps/s390/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memcpy-z900.S b/sysdeps/s390/memcpy-z900.S
index 304668c..8b230d1 100644
--- a/sysdeps/s390/memcpy-z900.S
+++ b/sysdeps/s390/memcpy-z900.S
@@ -1,5 +1,5 @@
/* memcpy - copy a block from source to destination. 31/64 bit S/390 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memcpy.c b/sysdeps/s390/memcpy.c
index 4276066..96b3f0c 100644
--- a/sysdeps/s390/memcpy.c
+++ b/sysdeps/s390/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S
index 531f3ee..4014c25 100644
--- a/sysdeps/s390/memmem-arch13.S
+++ b/sysdeps/s390/memmem-arch13.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memmem.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmem-c.c b/sysdeps/s390/memmem-c.c
index 04122b2..06dba5a 100644
--- a/sysdeps/s390/memmem-c.c
+++ b/sysdeps/s390/memmem-c.c
@@ -1,5 +1,5 @@
/* Default memmem implementation for S/390.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmem-vx.c b/sysdeps/s390/memmem-vx.c
index adaa83f..db35740 100644
--- a/sysdeps/s390/memmem-vx.c
+++ b/sysdeps/s390/memmem-vx.c
@@ -1,5 +1,5 @@
/* Default memmem implementation with vector string functions for S/390.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmem.c b/sysdeps/s390/memmem.c
index 0b6909e..c4f0c0f 100644
--- a/sysdeps/s390/memmem.c
+++ b/sysdeps/s390/memmem.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmem.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmove-c.c b/sysdeps/s390/memmove-c.c
index d236644..bb3f419 100644
--- a/sysdeps/s390/memmove-c.c
+++ b/sysdeps/s390/memmove-c.c
@@ -1,5 +1,5 @@
/* Fallback C version of memmove.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memmove.c b/sysdeps/s390/memmove.c
index 969a517..d85d682 100644
--- a/sysdeps/s390/memmove.c
+++ b/sysdeps/s390/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/mempcpy.c b/sysdeps/s390/mempcpy.c
index 1fc6100..c14a437 100644
--- a/sysdeps/s390/mempcpy.c
+++ b/sysdeps/s390/mempcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of mempcpy.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memrchr-c.c b/sysdeps/s390/memrchr-c.c
index f6ffe85..29dc640 100644
--- a/sysdeps/s390/memrchr-c.c
+++ b/sysdeps/s390/memrchr-c.c
@@ -1,5 +1,5 @@
/* Default memrchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memrchr-vx.S b/sysdeps/s390/memrchr-vx.S
index ba2fce9..87199ef 100644
--- a/sysdeps/s390/memrchr-vx.S
+++ b/sysdeps/s390/memrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memrchr.c b/sysdeps/s390/memrchr.c
index 00e9c3e..159ee30 100644
--- a/sysdeps/s390/memrchr.c
+++ b/sysdeps/s390/memrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memset-z900.S b/sysdeps/s390/memset-z900.S
index 1d9a4d7..b0adce6 100644
--- a/sysdeps/s390/memset-z900.S
+++ b/sysdeps/s390/memset-z900.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. 31/64 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/memset.c b/sysdeps/s390/memset.c
index 33d0d77..bdf0bd5 100644
--- a/sysdeps/s390/memset.c
+++ b/sysdeps/s390/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/8bit-generic.c b/sysdeps/s390/multiarch/8bit-generic.c
index 1d1c6a3..1e467f4 100644
--- a/sysdeps/s390/multiarch/8bit-generic.c
+++ b/sysdeps/s390/multiarch/8bit-generic.c
@@ -1,5 +1,5 @@
/* Generic conversion to and from 8bit charsets - S390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/s390/multiarch/dl-symbol-redir-ifunc.h
index 20a1601..c34907c 100644
--- a/sysdeps/s390/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/s390/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/gconv_simple.c b/sysdeps/s390/multiarch/gconv_simple.c
index 6fff4fc..8785fec 100644
--- a/sysdeps/s390/multiarch/gconv_simple.c
+++ b/sysdeps/s390/multiarch/gconv_simple.c
@@ -1,5 +1,5 @@
/* Simple transformations functions - s390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/iconv/skeleton.c b/sysdeps/s390/multiarch/iconv/skeleton.c
index d1c5e64..6f15253 100644
--- a/sysdeps/s390/multiarch/iconv/skeleton.c
+++ b/sysdeps/s390/multiarch/iconv/skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module - S390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c
index b05b86f..14b1f763 100644
--- a/sysdeps/s390/multiarch/ifunc-impl-list.c
+++ b/sysdeps/s390/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. s390/s390x version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -81,8 +81,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Get hardware information. */
const struct cpu_features *features = &GLRO(dl_s390_cpu_features);
unsigned long int dl_hwcap __attribute__ ((unused)) = features->hwcap;
- const unsigned long long * __attribute__((unused)) stfle_bits
- = features->stfle_bits;
+ const unsigned long long __attribute__((unused)) stfle_bits
+ = features->stfle_filtered;
#if HAVE_MEMSET_IFUNC
IFUNC_IMPL (i, name, memset,
diff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h
index 2a0c4a5..b28c503 100644
--- a/sysdeps/s390/multiarch/ifunc-resolve.h
+++ b/sysdeps/s390/multiarch/ifunc-resolve.h
@@ -1,6 +1,6 @@
/* IFUNC resolver function for CPU specific functions.
32/64 bit S/390 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,12 @@
<https://www.gnu.org/licenses/>. */
#include <unistd.h>
-#include <dl-procinfo.h>
#include <cpu-features.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
#define s390_libc_ifunc_expr_stfle_init() \
- const unsigned long long *stfle_bits = features->stfle_bits;
+ const unsigned long long stfle_bits = features->stfle_filtered;
#define s390_libc_ifunc_expr_init() \
const struct cpu_features *features = &GLRO(dl_s390_cpu_features); \
diff --git a/sysdeps/s390/multiarch/utf16-utf32-z9.c b/sysdeps/s390/multiarch/utf16-utf32-z9.c
index 2726697..5ff9bb8 100644
--- a/sysdeps/s390/multiarch/utf16-utf32-z9.c
+++ b/sysdeps/s390/multiarch/utf16-utf32-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-16 and UTF-32 BE/internal - multiarch s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/utf8-utf16-z9.c b/sysdeps/s390/multiarch/utf8-utf16-z9.c
index ef3b8c2..12fb528 100644
--- a/sysdeps/s390/multiarch/utf8-utf16-z9.c
+++ b/sysdeps/s390/multiarch/utf8-utf16-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-8 and UTF-16 - multiarch s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/multiarch/utf8-utf32-z9.c b/sysdeps/s390/multiarch/utf8-utf32-z9.c
index 5106246..61e7212 100644
--- a/sysdeps/s390/multiarch/utf8-utf32-z9.c
+++ b/sysdeps/s390/multiarch/utf8-utf32-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-8 and UTF-32 - multiarch s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/nptl/Makefile b/sysdeps/s390/nptl/Makefile
index 5127464..3405114 100644
--- a/sysdeps/s390/nptl/Makefile
+++ b/sysdeps/s390/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/nptl/bits/struct_mutex.h b/sysdeps/s390/nptl/bits/struct_mutex.h
index 3f65c63..af0e2e9 100644
--- a/sysdeps/s390/nptl/bits/struct_mutex.h
+++ b/sysdeps/s390/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* S390 internal mutex struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/nptl/bits/struct_rwlock.h b/sysdeps/s390/nptl/bits/struct_rwlock.h
index 379f516..bc67f09 100644
--- a/sysdeps/s390/nptl/bits/struct_rwlock.h
+++ b/sysdeps/s390/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* S390 internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/nptl/pthreaddef.h b/sysdeps/s390/nptl/pthreaddef.h
index c581960..598ef2a 100644
--- a/sysdeps/s390/nptl/pthreaddef.h
+++ b/sysdeps/s390/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h
index aaa69d5..dbdf5f2 100644
--- a/sysdeps/s390/nptl/tls.h
+++ b/sysdeps/s390/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/rawmemchr-c.c b/sysdeps/s390/rawmemchr-c.c
index 917cabf..81b4da5 100644
--- a/sysdeps/s390/rawmemchr-c.c
+++ b/sysdeps/s390/rawmemchr-c.c
@@ -1,5 +1,5 @@
/* Default rawmemchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/rawmemchr-vx.S b/sysdeps/s390/rawmemchr-vx.S
index 4c8ecb2..fbbd3c1 100644
--- a/sysdeps/s390/rawmemchr-vx.S
+++ b/sysdeps/s390/rawmemchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of rawmemchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/rawmemchr.c b/sysdeps/s390/rawmemchr.c
index 09565d5..1e877d0 100644
--- a/sysdeps/s390/rawmemchr.c
+++ b/sysdeps/s390/rawmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of rawmemchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/__longjmp.c b/sysdeps/s390/s390-32/__longjmp.c
index 5c38241..b71196a 100644
--- a/sysdeps/s390/s390-32/__longjmp.c
+++ b/sysdeps/s390/s390-32/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/add_n.S b/sysdeps/s390/s390-32/add_n.S
index 8a37c1f..39f673a 100644
--- a/sysdeps/s390/s390-32/add_n.S
+++ b/sysdeps/s390/s390-32/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/s390/s390-32/addmul_1.S b/sysdeps/s390/s390-32/addmul_1.S
index 7b8a061..bc7d502 100644
--- a/sysdeps/s390/s390-32/addmul_1.S
+++ b/sysdeps/s390/s390-32/addmul_1.S
@@ -1,6 +1,6 @@
/* S390 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/s390/s390-32/crti.S b/sysdeps/s390/s390-32/crti.S
index 47c5cb8..c75bf1e 100644
--- a/sysdeps/s390/s390-32/crti.S
+++ b/sysdeps/s390/s390-32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for S/390.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/crtn.S b/sysdeps/s390/s390-32/crtn.S
index 911f35b..8ec0ae7 100644
--- a/sysdeps/s390/s390-32/crtn.S
+++ b/sysdeps/s390/s390-32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for S/390.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
index 15ff999..f15a049 100644
--- a/sysdeps/s390/s390-32/dl-machine.h
+++ b/sysdeps/s390/s390-32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. S390 Version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,7 +24,6 @@
#include <sys/param.h>
#include <string.h>
#include <link.h>
-#include <sysdeps/s390/dl-procinfo.h>
#include <dl-irel.h>
#include <dl-static-tls.h>
#include <dl-machine-rel.h>
@@ -50,39 +49,22 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
}
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-
+/* Return the run-time load address of the shared object. */
static inline Elf32_Addr
-elf_machine_dynamic (void)
+elf_machine_load_address (void)
{
- register Elf32_Addr *got;
-
- __asm__( " bras %0,2f\n"
- "1: .long _GLOBAL_OFFSET_TABLE_-1b\n"
- "2: al %0,0(%0)"
- : "=&a" (got) : : "0" );
-
- return *got;
+ /* Starting from binutils-2.23, the linker will define the magic symbol
+ __ehdr_start to point to our own ELF header. */
+ extern const ElfW(Ehdr) __ehdr_start attribute_hidden;
+ return (ElfW(Addr)) &__ehdr_start;
}
-
-/* Return the run-time load address of the shared object. */
+/* Return the link-time address of _DYNAMIC. */
static inline Elf32_Addr
-elf_machine_load_address (void)
+elf_machine_dynamic (void)
{
- Elf32_Addr addr;
-
- __asm__( " bras 1,2f\n"
- "1: .long _GLOBAL_OFFSET_TABLE_ - 1b\n"
- " .long (_dl_start - 1b - 0x80000000) & 0x00000000ffffffff\n"
- "2: l %0,4(1)\n"
- " ar %0,1\n"
- " al 1,0(1)\n"
- " sl %0,_dl_start@GOT(1)"
- : "=&d" (addr) : : "1" );
- return addr;
+ extern ElfW(Dyn) _DYNAMIC[] attribute_hidden;
+ return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address ();
}
/* Set up the loaded object described by L so its unrelocated PLT
diff --git a/sysdeps/s390/s390-32/dl-trampoline.S b/sysdeps/s390/s390-32/dl-trampoline.S
index 20b8a82..5a79e1a 100644
--- a/sysdeps/s390/s390-32/dl-trampoline.S
+++ b/sysdeps/s390/s390-32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. s390 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/dl-trampoline.h b/sysdeps/s390/s390-32/dl-trampoline.h
index 5162c26..e76174a 100644
--- a/sysdeps/s390/s390-32/dl-trampoline.h
+++ b/sysdeps/s390/s390-32/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. s390 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/mul_1.S b/sysdeps/s390/s390-32/mul_1.S
index e29eda5..8495271 100644
--- a/sysdeps/s390/s390-32/mul_1.S
+++ b/sysdeps/s390/s390-32/mul_1.S
@@ -1,6 +1,6 @@
/* __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/s390/s390-32/s390-mcount.S b/sysdeps/s390/s390-32/s390-mcount.S
index fe6944b..7f8457f 100644
--- a/sysdeps/s390/s390-32/s390-mcount.S
+++ b/sysdeps/s390/s390-32/s390-mcount.S
@@ -1,5 +1,5 @@
/* S/390-specific implementation of profiling support.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,11 +54,7 @@ C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
ahi %r15,-128
cfi_adjust_cfa_offset (128)
- /* binutils 2.28+: .cfi_val_offset r15, -96 */
- .cfi_escape \
- /* DW_CFA_val_offset */ 0x14, \
- /* r15 */ 0x0f, \
- /* scaled offset */ 0x18
+ cfi_val_offset (r15, -96)
stm %r14,%r5,96(%r15)
cfi_offset (r14, -128)
l %r2,132(%r15) # callers address = first parameter
diff --git a/sysdeps/s390/s390-32/setjmp.S b/sysdeps/s390/s390-32/setjmp.S
index 16f2662..41efc54 100644
--- a/sysdeps/s390/s390-32/setjmp.S
+++ b/sysdeps/s390/s390-32/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for s390, ELF version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/start.S b/sysdeps/s390/s390-32/start.S
index 24f3d85..377bbfd 100644
--- a/sysdeps/s390/s390-32/start.S
+++ b/sysdeps/s390/s390-32/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF s390 ABI.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/strncpy-z900.S b/sysdeps/s390/s390-32/strncpy-z900.S
index f8e0f43..4101900 100644
--- a/sysdeps/s390/s390-32/strncpy-z900.S
+++ b/sysdeps/s390/s390-32/strncpy-z900.S
@@ -1,7 +1,7 @@
/* strncpy - copy at most n characters from a string from source to
destination. For IBM S390
This file is part of the GNU C Library.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/s390/s390-32/sub_n.S b/sysdeps/s390/s390-32/sub_n.S
index 95ac574..ab8c625 100644
--- a/sysdeps/s390/s390-32/sub_n.S
+++ b/sysdeps/s390/s390-32/sub_n.S
@@ -1,6 +1,6 @@
/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/s390/s390-32/symbol-hacks.h b/sysdeps/s390/s390-32/symbol-hacks.h
index 79704cc..98efa39 100644
--- a/sysdeps/s390/s390-32/symbol-hacks.h
+++ b/sysdeps/s390/s390-32/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/sysdep.h b/sysdeps/s390/s390-32/sysdep.h
index afd93be..02903a2 100644
--- a/sysdeps/s390/s390-32/sysdep.h
+++ b/sysdeps/s390/s390-32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for s390.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-32/tst-audit.h b/sysdeps/s390/s390-32/tst-audit.h
index c96645f..433023b 100644
--- a/sysdeps/s390/s390-32/tst-audit.h
+++ b/sysdeps/s390/s390-32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. S/390 32-bit version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile
index 66ed844..991025c 100644
--- a/sysdeps/s390/s390-64/Makefile
+++ b/sysdeps/s390/s390-64/Makefile
@@ -11,7 +11,8 @@ $(objpfx)tst-glibc-hwcaps: \
$(objpfx)libmarkermod2-1.so \
$(objpfx)libmarkermod3-1.so \
$(objpfx)libmarkermod4-1.so \
- $(objpfx)libmarkermod5-1.so
+ $(objpfx)libmarkermod5-1.so \
+ $(objpfx)libmarkermod6-1.so
$(objpfx)tst-glibc-hwcaps.out: \
$(objpfx)libmarkermod2.so \
$(objpfx)glibc-hwcaps/z13/libmarkermod2.so \
@@ -26,7 +27,14 @@ $(objpfx)tst-glibc-hwcaps.out: \
$(objpfx)glibc-hwcaps/z13/libmarkermod5.so \
$(objpfx)glibc-hwcaps/z14/libmarkermod5.so \
$(objpfx)glibc-hwcaps/z15/libmarkermod5.so \
- $(objpfx)glibc-hwcaps/z16/libmarkermod5.so
+ $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \
+ $(objpfx)libmarkermod6.so \
+ $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \
+ $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \
+ $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \
+ $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \
+ $(objpfx)glibc-hwcaps/z17/libmarkermod6.so
+
$(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so
$(make-target-directory)
@@ -58,6 +66,21 @@ $(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so
$(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so
$(make-target-directory)
cp $< $@
+$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so
+ $(make-target-directory)
+ cp $< $@
+$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so
+ $(make-target-directory)
+ cp $< $@
+$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so
+ $(make-target-directory)
+ cp $< $@
+$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so
+ $(make-target-directory)
+ cp $< $@
+$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so
+ $(make-target-directory)
+ cp $< $@
ifeq (no,$(build-hardcoded-path-in-tests))
diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c
index 133ad7a..0b1fc27 100644
--- a/sysdeps/s390/s390-64/__longjmp.c
+++ b/sysdeps/s390/s390-64/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/add_n.S b/sysdeps/s390/s390-64/add_n.S
index e72c191..43ff4be 100644
--- a/sysdeps/s390/s390-64/add_n.S
+++ b/sysdeps/s390/s390-64/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/s390-64/crti.S
index 81ebb04..30bf4c6 100644
--- a/sysdeps/s390/s390-64/crti.S
+++ b/sysdeps/s390/s390-64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for 64 bit S/390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/crtn.S b/sysdeps/s390/s390-64/crtn.S
index 9598f9e..6560a5e 100644
--- a/sysdeps/s390/s390-64/crtn.S
+++ b/sysdeps/s390/s390-64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for 64 bit S/390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/dl-hwcap-check.h b/sysdeps/s390/s390-64/dl-hwcap-check.h
index 6ad3242..736e654 100644
--- a/sysdeps/s390/s390-64/dl-hwcap-check.h
+++ b/sysdeps/s390/s390-64/dl-hwcap-check.h
@@ -1,5 +1,5 @@
/* Check for hardware capabilities after HWCAP parsing. S390 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,8 +25,23 @@
static inline void
dl_hwcap_check (void)
{
-#if defined __ARCH__
-# if GCCMACRO__ARCH__ >= 14
+ /* Note: The s390x kernel won't introduce new HWCAP-Bits if there is
+ no special handling needed in kernel itself. Thus we have have
+ to check the facility-list retrieved with the stfle instruction.
+ We already have a common storage of this list in cpu-features.c.
+ This dl-hwcap-check.h file is included in
+ sysdeps/unix/sysv/linux/dl-sysdep.c, where also dl-machine.h and
+ cpu-features.c is included. Therefore we don't have a special
+ include here. */
+
+#if defined GCCMACRO__ARCH__
+# if GCCMACRO__ARCH__ >= 15
+ init_cpu_features_no_tunables (&GLRO(dl_s390_cpu_features));
+ if (!(S390_IS_ARCH15 (GLRO(dl_s390_cpu_features).stfle_orig)))
+ _dl_fatal_printf ("\
+Fatal glibc error: CPU lacks VXRS_EXT3/VXRS_PDE3/MIE4/Concurrent-functions \
+support (z17 or later required)\n");
+# elif GCCMACRO__ARCH__ >= 14
if (!(GLRO(dl_hwcap) & HWCAP_S390_VXRS_PDE2))
_dl_fatal_printf ("\
Fatal glibc error: CPU lacks VXRS_PDE2 support (z16 or later required)\n");
@@ -39,7 +54,7 @@ Fatal glibc error: CPU lacks VXRS_EXT2 support (z15 or later required)\n");
_dl_fatal_printf ("\
Fatal glibc error: CPU lacks VXE support (z14 or later required)\n");
# endif
-#endif /* __ARCH__ */
+#endif /* GCCMACRO__ARCH__ */
}
#endif /* _DL_HWCAP_CHECK_H */
diff --git a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
index 0a8cce1..1ae9fdd 100644
--- a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
+++ b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
@@ -1,5 +1,5 @@
/* Architecture-specific glibc-hwcaps subdirectories. s390x version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,11 @@
#include <dl-hwcaps.h>
#include <ldsodefs.h>
+#include <sys/auxv.h>
+#include <cpu-features.h>
-const char _dl_hwcaps_subdirs[] = "z16:z15:z14:z13";
-enum { subdirs_count = 4 }; /* Number of components in _dl_hwcaps_subdirs. */
+const char _dl_hwcaps_subdirs[] = "z17:z16:z15:z14:z13";
+enum { subdirs_count = 5 }; /* Number of components in _dl_hwcaps_subdirs. */
uint32_t
_dl_hwcaps_subdirs_active (void)
@@ -57,5 +59,12 @@ _dl_hwcaps_subdirs_active (void)
return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active);
++active;
+ /* z17.
+ Note: The kernel has not introduced new HWCAP bits as the new facilities do
+ not require kernel interaction. Thus we check the features via stfle. */
+ if (!(S390_IS_ARCH15 (GLRO(dl_s390_cpu_features).stfle_orig)))
+ return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active);
+ ++active;
+
return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active);
}
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
index 5ed0b84..132abf4 100644
--- a/sysdeps/s390/s390-64/dl-machine.h
+++ b/sysdeps/s390/s390-64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
64 bit S/390 Version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,6 @@
#include <sys/param.h>
#include <string.h>
#include <link.h>
-#include <sysdeps/s390/dl-procinfo.h>
#include <dl-irel.h>
#include <dl-static-tls.h>
#include <dl-machine-rel.h>
@@ -44,33 +43,22 @@ elf_machine_matches_host (const Elf64_Ehdr *ehdr)
&& ehdr->e_ident[EI_CLASS] == ELFCLASS64;
}
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-
+/* Return the run-time load address of the shared object. */
static inline Elf64_Addr
-elf_machine_dynamic (void)
+elf_machine_load_address (void)
{
- register Elf64_Addr *got;
-
- __asm__ ( " larl %0,_GLOBAL_OFFSET_TABLE_\n"
- : "=&a" (got) : : "0" );
-
- return *got;
+ /* Starting from binutils-2.23, the linker will define the magic symbol
+ __ehdr_start to point to our own ELF header. */
+ extern const ElfW(Ehdr) __ehdr_start attribute_hidden;
+ return (ElfW(Addr)) &__ehdr_start;
}
-/* Return the run-time load address of the shared object. */
+/* Return the link-time address of _DYNAMIC. */
static inline Elf64_Addr
-elf_machine_load_address (void)
+elf_machine_dynamic (void)
{
- Elf64_Addr addr;
-
- __asm__( " larl %0,_dl_start\n"
- " larl 1,_GLOBAL_OFFSET_TABLE_\n"
- " lghi 2,_dl_start@GOT\n"
- " slg %0,0(2,1)"
- : "=&d" (addr) : : "1", "2" );
- return addr;
+ extern ElfW(Dyn) _DYNAMIC[] attribute_hidden;
+ return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address ();
}
/* Set up the loaded object described by L so its unrelocated PLT
diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/s390-64/dl-trampoline.S
index 4b2272c..bc3f66e 100644
--- a/sysdeps/s390/s390-64/dl-trampoline.S
+++ b/sysdeps/s390/s390-64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. s390x version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/dl-trampoline.h b/sysdeps/s390/s390-64/dl-trampoline.h
index 3dac680..4e1ed41 100644
--- a/sysdeps/s390/s390-64/dl-trampoline.h
+++ b/sysdeps/s390/s390-64/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. s390x version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390-64/s390x-mcount.S
index 339328a..91632b9 100644
--- a/sysdeps/s390/s390-64/s390x-mcount.S
+++ b/sysdeps/s390/s390-64/s390x-mcount.S
@@ -1,5 +1,5 @@
/* 64 bit S/390-specific implementation of profiling support.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/s390x-mcount.h b/sysdeps/s390/s390-64/s390x-mcount.h
index 00347c1..c5bd70d 100644
--- a/sysdeps/s390/s390-64/s390x-mcount.h
+++ b/sysdeps/s390/s390-64/s390x-mcount.h
@@ -1,5 +1,5 @@
/* 64 bit S/390-specific implementation of profiling support.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -68,11 +68,7 @@ C_LABEL(MCOUNT_SYMBOL)
/* Save the caller-clobbered registers. */
aghi %r15,-224
cfi_adjust_cfa_offset (224)
- /* binutils 2.28+: .cfi_val_offset r15, -160 */
- .cfi_escape \
- /* DW_CFA_val_offset */ 0x14, \
- /* r15 */ 0x0f, \
- /* scaled offset */ 0x14
+ cfi_val_offset (r15, -160)
stmg %r14,%r5,160(%r15)
cfi_offset (r14, -224)
cfi_offset (r0, -224+16)
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S
index b3c738c..6649706 100644
--- a/sysdeps/s390/s390-64/setjmp.S
+++ b/sysdeps/s390/s390-64/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for 64 bit S/390, ELF version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/start.S b/sysdeps/s390/s390-64/start.S
index 59eeb7e..ab40519 100644
--- a/sysdeps/s390/s390-64/start.S
+++ b/sysdeps/s390/s390-64/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the 64 bit S/390 ELF ABI.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/s390-64/strncpy-z900.S
index 53d73b2..591c17e 100644
--- a/sysdeps/s390/s390-64/strncpy-z900.S
+++ b/sysdeps/s390/s390-64/strncpy-z900.S
@@ -1,6 +1,6 @@
/* strncpy - copy at most n characters from a string from source to
destination. 64 bit S/390 version
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/sub_n.S b/sysdeps/s390/s390-64/sub_n.S
index 323e389..2d867dd 100644
--- a/sysdeps/s390/s390-64/sub_n.S
+++ b/sysdeps/s390/s390-64/sub_n.S
@@ -1,6 +1,6 @@
/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector. 64 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/s390-64/sysdep.h
index f8abd2f..cb5e432 100644
--- a/sysdeps/s390/s390-64/sysdep.h
+++ b/sysdeps/s390/s390-64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/s390-64/tst-audit.h
index dfe4cd9..98aae39 100644
--- a/sysdeps/s390/s390-64/tst-audit.h
+++ b/sysdeps/s390/s390-64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. S/390 64-bit version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c b/sysdeps/s390/s390-64/tst-glibc-hwcaps.c
index a7dec68..b9d8781 100644
--- a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c
+++ b/sysdeps/s390/s390-64/tst-glibc-hwcaps.c
@@ -1,5 +1,5 @@
/* glibc-hwcaps subdirectory test. s390x version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,35 +26,53 @@ extern int marker2 (void);
extern int marker3 (void);
extern int marker4 (void);
extern int marker5 (void);
+extern int marker6 (void);
/* Return the arch level, 10 for the baseline libmarkermod*.so's. */
static int
compute_level (void)
{
const char *platform = (const char *) getauxval (AT_PLATFORM);
+ const unsigned long int hwcap = getauxval (AT_HWCAP);
+ const int latest_level = 15;
/* The arch* versions refer to the edition of the Principles of
Operation, and they are off by two when compared with the recent
product names. (The code below should not be considered an
accurate mapping to Principles of Operation editions for earlier
AT_PLATFORM strings). */
- if (strcmp (platform, "z900") == 0)
- return 10;
- if (strcmp (platform, "z990") == 0)
- return 10;
- if (strcmp (platform, "z9-109") == 0)
- return 10;
- if (strcmp (platform, "z10") == 0)
- return 10;
- if (strcmp (platform, "z196") == 0)
- return 10;
- if (strcmp (platform, "zEC12") == 0)
- return 10;
+ if ((strcmp (platform, "z900") == 0)
+ || (strcmp (platform, "z990") == 0)
+ || (strcmp (platform, "z9-109") == 0)
+ || (strcmp (platform, "z10") == 0)
+ || (strcmp (platform, "z196") == 0)
+ || (strcmp (platform, "zEC12") == 0))
+ {
+ if ((hwcap & HWCAP_S390_VX) == 0)
+ {
+ /* As vector-support was introduced with the newer z13
+ architecture, we are really on one of the tested older
+ architectures. */
+ return 10;
+ }
+ else
+ {
+ /* According to AT_PLATFORM we are on an older architecture
+ without vector-support, but according to HWCAPs vector
+ registers are supported. This means we are running on a
+ new architecture which is not yet known by the kernel.
+ Thus the default AT_PLATFORM string is used, which is the
+ oldest supported one. For this test, assume we are on
+ the latest known architecture. See
+ <kernel>/arch/s390/kernel/processor.c:setup_elf_platform().
+ */
+ return latest_level;
+ }
+ }
/* If we are running on z13 or newer and the kernel was booted with novx,
then AT_PLATFORM is z13 or newer, but _dl_hwcaps_subdirs_active will
return zero and the _dl_hwcaps_subdirs are not searched. */
- const unsigned long int hwcap = getauxval (AT_HWCAP);
if ((hwcap & HWCAP_S390_VX) == 0)
return 10;
@@ -66,9 +84,12 @@ compute_level (void)
return 13;
if (strcmp (platform, "z16") == 0)
return 14;
+ if (strcmp (platform, "z17") == 0)
+ return latest_level;
+
printf ("warning: unrecognized AT_PLATFORM value: %s\n", platform);
- /* Assume that the new platform supports z16. */
- return 14;
+ /* Assume that the new platform supports the latest known architecture. */
+ return latest_level;
}
static int
@@ -80,6 +101,7 @@ do_test (void)
TEST_COMPARE (marker3 (), MIN (level - 9, 3));
TEST_COMPARE (marker4 (), MIN (level - 9, 4));
TEST_COMPARE (marker5 (), MIN (level - 9, 5));
+ TEST_COMPARE (marker6 (), MIN (level - 9, 6));
return 0;
}
diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c
index f2aaeab..0fe0b5e 100644
--- a/sysdeps/s390/sotruss-lib.c
+++ b/sysdeps/s390/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for s390.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/s390/stackinfo.h b/sysdeps/s390/stackinfo.h
index c89371c..657ab34 100644
--- a/sysdeps/s390/stackinfo.h
+++ b/sysdeps/s390/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpcpy-c.c b/sysdeps/s390/stpcpy-c.c
index c737f4d..7d2be0a 100644
--- a/sysdeps/s390/stpcpy-c.c
+++ b/sysdeps/s390/stpcpy-c.c
@@ -1,5 +1,5 @@
/* Default stpcpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpcpy-vx.S b/sysdeps/s390/stpcpy-vx.S
index 8a10ba3..fbdd603 100644
--- a/sysdeps/s390/stpcpy-vx.S
+++ b/sysdeps/s390/stpcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of stpcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpcpy.c b/sysdeps/s390/stpcpy.c
index 9dad544..2fc6955 100644
--- a/sysdeps/s390/stpcpy.c
+++ b/sysdeps/s390/stpcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpncpy-c.c b/sysdeps/s390/stpncpy-c.c
index 40d7b66..83230cd 100644
--- a/sysdeps/s390/stpncpy-c.c
+++ b/sysdeps/s390/stpncpy-c.c
@@ -1,5 +1,5 @@
/* Default stpncpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpncpy-vx.S b/sysdeps/s390/stpncpy-vx.S
index 48bb551..6c82faf 100644
--- a/sysdeps/s390/stpncpy-vx.S
+++ b/sysdeps/s390/stpncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of stpncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/stpncpy.c b/sysdeps/s390/stpncpy.c
index 31c154d..32fcc63 100644
--- a/sysdeps/s390/stpncpy.c
+++ b/sysdeps/s390/stpncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcat-c.c b/sysdeps/s390/strcat-c.c
index e21936d..855a22a 100644
--- a/sysdeps/s390/strcat-c.c
+++ b/sysdeps/s390/strcat-c.c
@@ -1,5 +1,5 @@
/* Default strcat implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcat-vx.S b/sysdeps/s390/strcat-vx.S
index ade1f55..56602d5 100644
--- a/sysdeps/s390/strcat-vx.S
+++ b/sysdeps/s390/strcat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcat.c b/sysdeps/s390/strcat.c
index 6314f4d..3a6993a 100644
--- a/sysdeps/s390/strcat.c
+++ b/sysdeps/s390/strcat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchr-c.c b/sysdeps/s390/strchr-c.c
index 921e449..b466e12 100644
--- a/sysdeps/s390/strchr-c.c
+++ b/sysdeps/s390/strchr-c.c
@@ -1,5 +1,5 @@
/* Default strchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchr-vx.S b/sysdeps/s390/strchr-vx.S
index dfd3f89..a64b91a 100644
--- a/sysdeps/s390/strchr-vx.S
+++ b/sysdeps/s390/strchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchr.c b/sysdeps/s390/strchr.c
index 6cc2a60..f69de2e 100644
--- a/sysdeps/s390/strchr.c
+++ b/sysdeps/s390/strchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchrnul-c.c b/sysdeps/s390/strchrnul-c.c
index 97fd9ff..45694af 100644
--- a/sysdeps/s390/strchrnul-c.c
+++ b/sysdeps/s390/strchrnul-c.c
@@ -1,5 +1,5 @@
/* Default strchrnul implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchrnul-vx.S b/sysdeps/s390/strchrnul-vx.S
index 6b53bb1..5ace1da 100644
--- a/sysdeps/s390/strchrnul-vx.S
+++ b/sysdeps/s390/strchrnul-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strchrnul.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strchrnul.c b/sysdeps/s390/strchrnul.c
index 09da577..24b478d 100644
--- a/sysdeps/s390/strchrnul.c
+++ b/sysdeps/s390/strchrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchrnul.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcmp-vx.S b/sysdeps/s390/strcmp-vx.S
index 72f122a..6744aac 100644
--- a/sysdeps/s390/strcmp-vx.S
+++ b/sysdeps/s390/strcmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcmp-z900.S b/sysdeps/s390/strcmp-z900.S
index 18b6e9f..5244449 100644
--- a/sysdeps/s390/strcmp-z900.S
+++ b/sysdeps/s390/strcmp-z900.S
@@ -1,6 +1,6 @@
/* strcmp - compare two string. 64 bit S/390 version.
This file is part of the GNU C Library.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/s390/strcmp.c b/sysdeps/s390/strcmp.c
index a9ef3a6..01e197b 100644
--- a/sysdeps/s390/strcmp.c
+++ b/sysdeps/s390/strcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcpy-vx.S b/sysdeps/s390/strcpy-vx.S
index cc734c8..70d7e6e 100644
--- a/sysdeps/s390/strcpy-vx.S
+++ b/sysdeps/s390/strcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcpy-z900.S b/sysdeps/s390/strcpy-z900.S
index 97b5167..f5217e6 100644
--- a/sysdeps/s390/strcpy-z900.S
+++ b/sysdeps/s390/strcpy-z900.S
@@ -1,5 +1,5 @@
/* strcpy - copy a string from source to destination. 64/31 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcpy.c b/sysdeps/s390/strcpy.c
index 6ecd797..98e0b7d 100644
--- a/sysdeps/s390/strcpy.c
+++ b/sysdeps/s390/strcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcspn-c.c b/sysdeps/s390/strcspn-c.c
index 2bc25cc..66e21f8 100644
--- a/sysdeps/s390/strcspn-c.c
+++ b/sysdeps/s390/strcspn-c.c
@@ -1,5 +1,5 @@
/* Default strcspn implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcspn-vx.S b/sysdeps/s390/strcspn-vx.S
index 1d86302..313f1b6 100644
--- a/sysdeps/s390/strcspn-vx.S
+++ b/sysdeps/s390/strcspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strcspn.c b/sysdeps/s390/strcspn.c
index 13accf8..ec140d0 100644
--- a/sysdeps/s390/strcspn.c
+++ b/sysdeps/s390/strcspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strlen-c.c b/sysdeps/s390/strlen-c.c
index 1f6b244..7c405db 100644
--- a/sysdeps/s390/strlen-c.c
+++ b/sysdeps/s390/strlen-c.c
@@ -1,5 +1,5 @@
/* Default strlen implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strlen-vx.S b/sysdeps/s390/strlen-vx.S
index 080f74a..bc053c3 100644
--- a/sysdeps/s390/strlen-vx.S
+++ b/sysdeps/s390/strlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strlen.c b/sysdeps/s390/strlen.c
index cd2dac1..1ee8e9f 100644
--- a/sysdeps/s390/strlen.c
+++ b/sysdeps/s390/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncat-c.c b/sysdeps/s390/strncat-c.c
index 4b23c95..dfb3e47 100644
--- a/sysdeps/s390/strncat-c.c
+++ b/sysdeps/s390/strncat-c.c
@@ -1,5 +1,5 @@
/* Default strncat implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncat-vx.S b/sysdeps/s390/strncat-vx.S
index 087a196..4551606 100644
--- a/sysdeps/s390/strncat-vx.S
+++ b/sysdeps/s390/strncat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncat.c b/sysdeps/s390/strncat.c
index 1daa972..d5ebd31 100644
--- a/sysdeps/s390/strncat.c
+++ b/sysdeps/s390/strncat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncmp-c.c b/sysdeps/s390/strncmp-c.c
index 3393eaa..ddb30dd 100644
--- a/sysdeps/s390/strncmp-c.c
+++ b/sysdeps/s390/strncmp-c.c
@@ -1,5 +1,5 @@
/* Default strncmp implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncmp-vx.S b/sysdeps/s390/strncmp-vx.S
index 3b45d37..4ca8e65 100644
--- a/sysdeps/s390/strncmp-vx.S
+++ b/sysdeps/s390/strncmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncmp.c b/sysdeps/s390/strncmp.c
index f771e98..c00e13c 100644
--- a/sysdeps/s390/strncmp.c
+++ b/sysdeps/s390/strncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncpy-vx.S b/sysdeps/s390/strncpy-vx.S
index 8ce57da..d6cd6c4 100644
--- a/sysdeps/s390/strncpy-vx.S
+++ b/sysdeps/s390/strncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strncpy.c b/sysdeps/s390/strncpy.c
index 690dda1..2e71314 100644
--- a/sysdeps/s390/strncpy.c
+++ b/sysdeps/s390/strncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strnlen-c.c b/sysdeps/s390/strnlen-c.c
index b29cf31..522056c 100644
--- a/sysdeps/s390/strnlen-c.c
+++ b/sysdeps/s390/strnlen-c.c
@@ -1,5 +1,5 @@
/* Default strnlen implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strnlen-vx.S b/sysdeps/s390/strnlen-vx.S
index 9f27382..71db54e 100644
--- a/sysdeps/s390/strnlen-vx.S
+++ b/sysdeps/s390/strnlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strnlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strnlen.c b/sysdeps/s390/strnlen.c
index 524b535..f67a392 100644
--- a/sysdeps/s390/strnlen.c
+++ b/sysdeps/s390/strnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strnlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strpbrk-c.c b/sysdeps/s390/strpbrk-c.c
index c163b5a..bcdff4b 100644
--- a/sysdeps/s390/strpbrk-c.c
+++ b/sysdeps/s390/strpbrk-c.c
@@ -1,5 +1,5 @@
/* Default strpbrk implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strpbrk-vx.S b/sysdeps/s390/strpbrk-vx.S
index bb6b58e..1e0185c 100644
--- a/sysdeps/s390/strpbrk-vx.S
+++ b/sysdeps/s390/strpbrk-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strpbrk.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strpbrk.c b/sysdeps/s390/strpbrk.c
index e8a7f1b6..3e00d82 100644
--- a/sysdeps/s390/strpbrk.c
+++ b/sysdeps/s390/strpbrk.c
@@ -1,5 +1,5 @@
/* Multiple versions of strpbrk.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strrchr-c.c b/sysdeps/s390/strrchr-c.c
index d544a85..0ec818a 100644
--- a/sysdeps/s390/strrchr-c.c
+++ b/sysdeps/s390/strrchr-c.c
@@ -1,5 +1,5 @@
/* Default strrchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strrchr-vx.S b/sysdeps/s390/strrchr-vx.S
index 09aa9af..33bbf21 100644
--- a/sysdeps/s390/strrchr-vx.S
+++ b/sysdeps/s390/strrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strrchr.c b/sysdeps/s390/strrchr.c
index e907416..fb78d14 100644
--- a/sysdeps/s390/strrchr.c
+++ b/sysdeps/s390/strrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strspn-c.c b/sysdeps/s390/strspn-c.c
index 50cb694..6fcae4c 100644
--- a/sysdeps/s390/strspn-c.c
+++ b/sysdeps/s390/strspn-c.c
@@ -1,5 +1,5 @@
/* Default strspn implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strspn-vx.S b/sysdeps/s390/strspn-vx.S
index 58217d4..37ffbf6 100644
--- a/sysdeps/s390/strspn-vx.S
+++ b/sysdeps/s390/strspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strspn.c b/sysdeps/s390/strspn.c
index d2b143b..effd123 100644
--- a/sysdeps/s390/strspn.c
+++ b/sysdeps/s390/strspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S
index f0f9333..8c88915 100644
--- a/sysdeps/s390/strstr-arch13.S
+++ b/sysdeps/s390/strstr-arch13.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strstr.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strstr-c.c b/sysdeps/s390/strstr-c.c
index 5d6299f..66975e7 100644
--- a/sysdeps/s390/strstr-c.c
+++ b/sysdeps/s390/strstr-c.c
@@ -1,5 +1,5 @@
/* Default strstr implementation for S/390.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strstr-vx.c b/sysdeps/s390/strstr-vx.c
index 6a9106a..0abc9ff 100644
--- a/sysdeps/s390/strstr-vx.c
+++ b/sysdeps/s390/strstr-vx.c
@@ -1,5 +1,5 @@
/* Default strstr implementation with vector string functions for S/390.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/strstr.c b/sysdeps/s390/strstr.c
index e5af224..f7547f9 100644
--- a/sysdeps/s390/strstr.c
+++ b/sysdeps/s390/strstr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strstr.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime-mod.S b/sysdeps/s390/tst-dl-runtime-mod.S
index 0aadfde..fd04ccd 100644
--- a/sysdeps/s390/tst-dl-runtime-mod.S
+++ b/sysdeps/s390/tst-dl-runtime-mod.S
@@ -1,5 +1,5 @@
/* Shared library for the lazy binding tests.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime-profile-audit.c b/sysdeps/s390/tst-dl-runtime-profile-audit.c
index 450bae4..1f67394 100644
--- a/sysdeps/s390/tst-dl-runtime-profile-audit.c
+++ b/sysdeps/s390/tst-dl-runtime-profile-audit.c
@@ -1,5 +1,5 @@
/* Lazy binding test with profiling and auditing.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime-profile-noaudit.c b/sysdeps/s390/tst-dl-runtime-profile-noaudit.c
index bb752e6..5510c68 100644
--- a/sysdeps/s390/tst-dl-runtime-profile-noaudit.c
+++ b/sysdeps/s390/tst-dl-runtime-profile-noaudit.c
@@ -1,5 +1,5 @@
/* Lazy binding test with profiling.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime-resolve-audit.c b/sysdeps/s390/tst-dl-runtime-resolve-audit.c
index af2492c..cd5623e 100644
--- a/sysdeps/s390/tst-dl-runtime-resolve-audit.c
+++ b/sysdeps/s390/tst-dl-runtime-resolve-audit.c
@@ -1,5 +1,5 @@
/* Lazy binding test with auditing.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c b/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c
index c58cda9..41d074d 100644
--- a/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c
+++ b/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c
@@ -1,5 +1,5 @@
/* Lazy binding test.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/tst-dl-runtime.c b/sysdeps/s390/tst-dl-runtime.c
index d0a180a..f8e95de 100644
--- a/sysdeps/s390/tst-dl-runtime.c
+++ b/sysdeps/s390/tst-dl-runtime.c
@@ -1,5 +1,5 @@
/* Test that lazy binding does not clobber r0.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/unwind-arch.h b/sysdeps/s390/unwind-arch.h
index 89b84e2..f04f676 100644
--- a/sysdeps/s390/unwind-arch.h
+++ b/sysdeps/s390/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. S/390 customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/utf16-utf32-z9.c b/sysdeps/s390/utf16-utf32-z9.c
index 51dd979..b0bcb2f 100644
--- a/sysdeps/s390/utf16-utf32-z9.c
+++ b/sysdeps/s390/utf16-utf32-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -397,8 +397,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm ("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm ("7") = outend - outptr; \
unsigned long tmp, tmp2, tmp3; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
@@ -707,8 +707,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm ("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm ("7") = outend - outptr; \
unsigned long tmp, tmp2, tmp3; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
diff --git a/sysdeps/s390/utf8-utf16-z9.c b/sysdeps/s390/utf8-utf16-z9.c
index 421747f..56454be 100644
--- a/sysdeps/s390/utf8-utf16-z9.c
+++ b/sysdeps/s390/utf8-utf16-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -170,8 +170,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput __asm__ ("8") = inptr; \
register size_t inlen __asm__ ("9") = inend - inptr; \
- register unsigned char* pOutput __asm__ ("10") = outptr; \
- register size_t outlen __asm__("11") = outend - outptr; \
+ register unsigned char* pOutput __asm__ ("6") = outptr; \
+ register size_t outlen __asm__("7") = outend - outptr; \
unsigned long cc = 0; \
\
__asm__ __volatile__ (".machine push \n\t" \
@@ -242,8 +242,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm("7") = outend - outptr; \
unsigned long tmp, tmp2, tmp3; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
@@ -818,8 +818,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm ("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm ("7") = outend - outptr; \
unsigned long tmp, tmp2, tmp3; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
diff --git a/sysdeps/s390/utf8-utf32-z9.c b/sysdeps/s390/utf8-utf32-z9.c
index 9c4189a..e760c4a 100644
--- a/sysdeps/s390/utf8-utf32-z9.c
+++ b/sysdeps/s390/utf8-utf32-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -170,8 +170,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput __asm__ ("8") = inptr; \
register size_t inlen __asm__ ("9") = inend - inptr; \
- register unsigned char* pOutput __asm__ ("10") = outptr; \
- register size_t outlen __asm__("11") = outend - outptr; \
+ register unsigned char* pOutput __asm__ ("6") = outptr; \
+ register size_t outlen __asm__("7") = outend - outptr; \
unsigned long cc = 0; \
\
__asm__ __volatile__ (".machine push \n\t" \
@@ -475,8 +475,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm("7") = outend - outptr; \
unsigned long tmp, tmp2, tmp3; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
@@ -864,8 +864,8 @@ gconv_end (struct __gconv_step *data)
{ \
register const unsigned char* pInput asm ("8") = inptr; \
register size_t inlen asm ("9") = inend - inptr; \
- register unsigned char* pOutput asm ("10") = outptr; \
- register size_t outlen asm ("11") = outend - outptr; \
+ register unsigned char* pOutput asm ("6") = outptr; \
+ register size_t outlen asm ("7") = outend - outptr; \
unsigned long tmp, tmp2; \
asm volatile (".machine push\n\t" \
".machine \"z13\"\n\t" \
diff --git a/sysdeps/s390/wcpcpy-c.c b/sysdeps/s390/wcpcpy-c.c
index 46ed1a3..2f99bfa 100644
--- a/sysdeps/s390/wcpcpy-c.c
+++ b/sysdeps/s390/wcpcpy-c.c
@@ -1,5 +1,5 @@
/* Default wcslen implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcpcpy-vx.S b/sysdeps/s390/wcpcpy-vx.S
index 13dd0b8..e962208 100644
--- a/sysdeps/s390/wcpcpy-vx.S
+++ b/sysdeps/s390/wcpcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcpcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcpcpy.c b/sysdeps/s390/wcpcpy.c
index 979f3f2..89e2926 100644
--- a/sysdeps/s390/wcpcpy.c
+++ b/sysdeps/s390/wcpcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcpcpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcpncpy-c.c b/sysdeps/s390/wcpncpy-c.c
index 4951ea0..02edeae 100644
--- a/sysdeps/s390/wcpncpy-c.c
+++ b/sysdeps/s390/wcpncpy-c.c
@@ -1,5 +1,5 @@
/* Default wcsncpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcpncpy-vx.S b/sysdeps/s390/wcpncpy-vx.S
index a0dac22..bddb78d 100644
--- a/sysdeps/s390/wcpncpy-vx.S
+++ b/sysdeps/s390/wcpncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcpncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcpncpy.c b/sysdeps/s390/wcpncpy.c
index c6abb67..7f1f14e 100644
--- a/sysdeps/s390/wcpncpy.c
+++ b/sysdeps/s390/wcpncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcpncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscat-c.c b/sysdeps/s390/wcscat-c.c
index 74273e1..a9f7387 100644
--- a/sysdeps/s390/wcscat-c.c
+++ b/sysdeps/s390/wcscat-c.c
@@ -1,5 +1,5 @@
/* Default wcscat implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscat-vx.S b/sysdeps/s390/wcscat-vx.S
index ec822f5..505b145 100644
--- a/sysdeps/s390/wcscat-vx.S
+++ b/sysdeps/s390/wcscat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscat.c b/sysdeps/s390/wcscat.c
index 038ca3f..338a746 100644
--- a/sysdeps/s390/wcscat.c
+++ b/sysdeps/s390/wcscat.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschr-c.c b/sysdeps/s390/wcschr-c.c
index 2b40312..18d6b32 100644
--- a/sysdeps/s390/wcschr-c.c
+++ b/sysdeps/s390/wcschr-c.c
@@ -1,5 +1,5 @@
/* Default wcschr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschr-vx.S b/sysdeps/s390/wcschr-vx.S
index a8d14bb..17d4c86 100644
--- a/sysdeps/s390/wcschr-vx.S
+++ b/sysdeps/s390/wcschr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcschr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschr.c b/sysdeps/s390/wcschr.c
index 25ec13c..b4fdd3e 100644
--- a/sysdeps/s390/wcschr.c
+++ b/sysdeps/s390/wcschr.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcschr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschrnul-c.c b/sysdeps/s390/wcschrnul-c.c
index 16a29ab..f107b13 100644
--- a/sysdeps/s390/wcschrnul-c.c
+++ b/sysdeps/s390/wcschrnul-c.c
@@ -1,5 +1,5 @@
/* Default wcschrnul implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschrnul-vx.S b/sysdeps/s390/wcschrnul-vx.S
index cdd71f4..b9bea42 100644
--- a/sysdeps/s390/wcschrnul-vx.S
+++ b/sysdeps/s390/wcschrnul-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcschrnul.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcschrnul.c b/sysdeps/s390/wcschrnul.c
index d0b711f..6274bfb 100644
--- a/sysdeps/s390/wcschrnul.c
+++ b/sysdeps/s390/wcschrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcschrnul.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscmp-c.c b/sysdeps/s390/wcscmp-c.c
index 0598065..ae62f4d 100644
--- a/sysdeps/s390/wcscmp-c.c
+++ b/sysdeps/s390/wcscmp-c.c
@@ -1,5 +1,5 @@
/* Default wcscmp implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscmp-vx.S b/sysdeps/s390/wcscmp-vx.S
index 27b2bb5..7b955cc 100644
--- a/sysdeps/s390/wcscmp-vx.S
+++ b/sysdeps/s390/wcscmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscmp.c b/sysdeps/s390/wcscmp.c
index 7ced6ae..c27af14 100644
--- a/sysdeps/s390/wcscmp.c
+++ b/sysdeps/s390/wcscmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscpy-c.c b/sysdeps/s390/wcscpy-c.c
index 0037d94..7863c7c 100644
--- a/sysdeps/s390/wcscpy-c.c
+++ b/sysdeps/s390/wcscpy-c.c
@@ -1,5 +1,5 @@
/* Default wcscpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscpy-vx.S b/sysdeps/s390/wcscpy-vx.S
index 34321fb..30c8904 100644
--- a/sysdeps/s390/wcscpy-vx.S
+++ b/sysdeps/s390/wcscpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscpy.c b/sysdeps/s390/wcscpy.c
index f300401..1736086 100644
--- a/sysdeps/s390/wcscpy.c
+++ b/sysdeps/s390/wcscpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscspn-c.c b/sysdeps/s390/wcscspn-c.c
index a404d8b..6d457aa 100644
--- a/sysdeps/s390/wcscspn-c.c
+++ b/sysdeps/s390/wcscspn-c.c
@@ -1,5 +1,5 @@
/* Default wcscscpn implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscspn-vx.S b/sysdeps/s390/wcscspn-vx.S
index 43052cb..b142ca9 100644
--- a/sysdeps/s390/wcscspn-vx.S
+++ b/sysdeps/s390/wcscspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcscspn.c b/sysdeps/s390/wcscspn.c
index ad45ce9..e774e84 100644
--- a/sysdeps/s390/wcscspn.c
+++ b/sysdeps/s390/wcscspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcslen-c.c b/sysdeps/s390/wcslen-c.c
index 7f3d97c..a057f47 100644
--- a/sysdeps/s390/wcslen-c.c
+++ b/sysdeps/s390/wcslen-c.c
@@ -1,5 +1,5 @@
/* Default wcslen implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcslen-vx.S b/sysdeps/s390/wcslen-vx.S
index e926f55..ce2b437 100644
--- a/sysdeps/s390/wcslen-vx.S
+++ b/sysdeps/s390/wcslen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcslen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcslen.c b/sysdeps/s390/wcslen.c
index 660bde3..ca8a185 100644
--- a/sysdeps/s390/wcslen.c
+++ b/sysdeps/s390/wcslen.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcslen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncat-c.c b/sysdeps/s390/wcsncat-c.c
index c1639c3..3e5fa2e 100644
--- a/sysdeps/s390/wcsncat-c.c
+++ b/sysdeps/s390/wcsncat-c.c
@@ -1,5 +1,5 @@
/* Default wcsncat implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncat-vx.S b/sysdeps/s390/wcsncat-vx.S
index eb7af95..ad3bac9 100644
--- a/sysdeps/s390/wcsncat-vx.S
+++ b/sysdeps/s390/wcsncat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncat.c b/sysdeps/s390/wcsncat.c
index 4e933aa..8087062 100644
--- a/sysdeps/s390/wcsncat.c
+++ b/sysdeps/s390/wcsncat.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsncat.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncmp-c.c b/sysdeps/s390/wcsncmp-c.c
index e1cf4d9..1cb33f5 100644
--- a/sysdeps/s390/wcsncmp-c.c
+++ b/sysdeps/s390/wcsncmp-c.c
@@ -1,5 +1,5 @@
/* Default wcsncmp implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncmp-vx.S b/sysdeps/s390/wcsncmp-vx.S
index 8b08156..0cad166 100644
--- a/sysdeps/s390/wcsncmp-vx.S
+++ b/sysdeps/s390/wcsncmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncmp.c b/sysdeps/s390/wcsncmp.c
index 7ec2dcd..bb6b082 100644
--- a/sysdeps/s390/wcsncmp.c
+++ b/sysdeps/s390/wcsncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsncmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncpy-c.c b/sysdeps/s390/wcsncpy-c.c
index 9971549..be62399 100644
--- a/sysdeps/s390/wcsncpy-c.c
+++ b/sysdeps/s390/wcsncpy-c.c
@@ -1,5 +1,5 @@
/* Default wcsncpy implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncpy-vx.S b/sysdeps/s390/wcsncpy-vx.S
index f45fed2..7177951 100644
--- a/sysdeps/s390/wcsncpy-vx.S
+++ b/sysdeps/s390/wcsncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsncpy.c b/sysdeps/s390/wcsncpy.c
index 9ba1bf6..998a4d5 100644
--- a/sysdeps/s390/wcsncpy.c
+++ b/sysdeps/s390/wcsncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsncpy.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsnlen-c.c b/sysdeps/s390/wcsnlen-c.c
index d5fd985..637e792 100644
--- a/sysdeps/s390/wcsnlen-c.c
+++ b/sysdeps/s390/wcsnlen-c.c
@@ -1,5 +1,5 @@
/* Default wcsnlen implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsnlen-vx.S b/sysdeps/s390/wcsnlen-vx.S
index 6a1c13b..8e7ac70 100644
--- a/sysdeps/s390/wcsnlen-vx.S
+++ b/sysdeps/s390/wcsnlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsnlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsnlen.c b/sysdeps/s390/wcsnlen.c
index 70c3bf3..ee8636d 100644
--- a/sysdeps/s390/wcsnlen.c
+++ b/sysdeps/s390/wcsnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsnlen.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcspbrk-c.c b/sysdeps/s390/wcspbrk-c.c
index c24c73f..ad81c9d 100644
--- a/sysdeps/s390/wcspbrk-c.c
+++ b/sysdeps/s390/wcspbrk-c.c
@@ -1,5 +1,5 @@
/* Default wcspbrk implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcspbrk-vx.S b/sysdeps/s390/wcspbrk-vx.S
index af84245..ca9ab4d 100644
--- a/sysdeps/s390/wcspbrk-vx.S
+++ b/sysdeps/s390/wcspbrk-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcspbrk.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcspbrk.c b/sysdeps/s390/wcspbrk.c
index b616105..d2b0416 100644
--- a/sysdeps/s390/wcspbrk.c
+++ b/sysdeps/s390/wcspbrk.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcspbrk.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsrchr-c.c b/sysdeps/s390/wcsrchr-c.c
index 4fe5c3e..cb3b45b 100644
--- a/sysdeps/s390/wcsrchr-c.c
+++ b/sysdeps/s390/wcsrchr-c.c
@@ -1,5 +1,5 @@
/* Default wcsrchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsrchr-vx.S b/sysdeps/s390/wcsrchr-vx.S
index 0c62565..7666a56 100644
--- a/sysdeps/s390/wcsrchr-vx.S
+++ b/sysdeps/s390/wcsrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsrchr.c b/sysdeps/s390/wcsrchr.c
index e010b21..b627fa0 100644
--- a/sysdeps/s390/wcsrchr.c
+++ b/sysdeps/s390/wcsrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsrchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsspn-c.c b/sysdeps/s390/wcsspn-c.c
index 934149d..504a2e5 100644
--- a/sysdeps/s390/wcsspn-c.c
+++ b/sysdeps/s390/wcsspn-c.c
@@ -1,5 +1,5 @@
/* Default wcsspn implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsspn-vx.S b/sysdeps/s390/wcsspn-vx.S
index 84366ab..3577d7c 100644
--- a/sysdeps/s390/wcsspn-vx.S
+++ b/sysdeps/s390/wcsspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wcsspn.c b/sysdeps/s390/wcsspn.c
index 7839a94..e76bdc7 100644
--- a/sysdeps/s390/wcsspn.c
+++ b/sysdeps/s390/wcsspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsspn.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemchr-c.c b/sysdeps/s390/wmemchr-c.c
index 6b979ae..5069755 100644
--- a/sysdeps/s390/wmemchr-c.c
+++ b/sysdeps/s390/wmemchr-c.c
@@ -1,5 +1,5 @@
/* Default wmemchr implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemchr-vx.S b/sysdeps/s390/wmemchr-vx.S
index 4130243..c8db6ad 100644
--- a/sysdeps/s390/wmemchr-vx.S
+++ b/sysdeps/s390/wmemchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wmemchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemchr.c b/sysdeps/s390/wmemchr.c
index fa3f1cc..a2673e4 100644
--- a/sysdeps/s390/wmemchr.c
+++ b/sysdeps/s390/wmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of wmemchr.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemcmp-c.c b/sysdeps/s390/wmemcmp-c.c
index abc042b..aad91c0 100644
--- a/sysdeps/s390/wmemcmp-c.c
+++ b/sysdeps/s390/wmemcmp-c.c
@@ -1,5 +1,5 @@
/* Default wmemcmp implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemcmp-vx.S b/sysdeps/s390/wmemcmp-vx.S
index aba73c2..46bf5ae 100644
--- a/sysdeps/s390/wmemcmp-vx.S
+++ b/sysdeps/s390/wmemcmp-vx.S
@@ -1,5 +1,5 @@
/* Vector Optimized 32/64 bit S/390 version of wmemcmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemcmp.c b/sysdeps/s390/wmemcmp.c
index b6f2e6f..168870c 100644
--- a/sysdeps/s390/wmemcmp.c
+++ b/sysdeps/s390/wmemcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wmemcmp.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemset-c.c b/sysdeps/s390/wmemset-c.c
index 98d5911..1236fb5 100644
--- a/sysdeps/s390/wmemset-c.c
+++ b/sysdeps/s390/wmemset-c.c
@@ -1,5 +1,5 @@
/* Default wmemset implementation for S/390.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemset-vx.S b/sysdeps/s390/wmemset-vx.S
index e73df6e..82b7eba 100644
--- a/sysdeps/s390/wmemset-vx.S
+++ b/sysdeps/s390/wmemset-vx.S
@@ -1,5 +1,5 @@
/* Vector Optimized 32/64 bit S/390 version of wmemset.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/s390/wmemset.c b/sysdeps/s390/wmemset.c
index a04873d..d1a4123 100644
--- a/sysdeps/s390/wmemset.c
+++ b/sysdeps/s390/wmemset.c
@@ -1,5 +1,5 @@
/* Multiple versions of wmemset.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/____longjmp_chk.S b/sysdeps/sh/____longjmp_chk.S
index edb1401..3bbce15 100644
--- a/sysdeps/sh/____longjmp_chk.S
+++ b/sysdeps/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/_mcount.S b/sysdeps/sh/_mcount.S
index baf1c8e..ff07f6e 100644
--- a/sysdeps/sh/_mcount.S
+++ b/sysdeps/sh/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. SuperH
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bits/fenv.h b/sysdeps/sh/bits/fenv.h
index 200b6f5..4ddbd3e 100644
--- a/sysdeps/sh/bits/fenv.h
+++ b/sysdeps/sh/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bits/link.h b/sysdeps/sh/bits/link.h
index 305482d..a21f15b 100644
--- a/sysdeps/sh/bits/link.h
+++ b/sysdeps/sh/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bits/setjmp.h b/sysdeps/sh/bits/setjmp.h
index 5e1b3e9..a1f3f7b 100644
--- a/sysdeps/sh/bits/setjmp.h
+++ b/sysdeps/sh/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bits/wordsize.h b/sysdeps/sh/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/sh/bits/wordsize.h
+++ b/sysdeps/sh/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bsd-_setjmp.S b/sysdeps/sh/bsd-_setjmp.S
index d508beb..b485871 100644
--- a/sysdeps/sh/bsd-_setjmp.S
+++ b/sysdeps/sh/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/bsd-setjmp.S b/sysdeps/sh/bsd-setjmp.S
index a86b83c..73f46aa 100644
--- a/sysdeps/sh/bsd-setjmp.S
+++ b/sysdeps/sh/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S
index 9d6f77a..2b781dc 100644
--- a/sysdeps/sh/crti.S
+++ b/sysdeps/sh/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/crtn.S b/sysdeps/sh/crtn.S
index 55ad6f7..daf20f7 100644
--- a/sysdeps/sh/crtn.S
+++ b/sysdeps/sh/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
index c2c970d..2c07474 100644
--- a/sysdeps/sh/dl-machine.h
+++ b/sysdeps/sh/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -284,7 +284,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
if (__glibc_unlikely (r_type == R_SH_RELATIVE))
{
#ifndef RTLD_BOOTSTRAP
- if (map != &GL(dl_rtld_map)) /* Already done in rtld itself. */
+ if (is_rtld_link_map (map)) /* Already done in rtld itself. */
#endif
{
if (reloc->r_addend)
@@ -380,16 +380,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
case R_SH_DIR32:
{
#if !defined RTLD_BOOTSTRAP
- /* This is defined in rtld.c, but nowhere in the static
- libc.a; make the reference weak so static programs can
- still link. This declaration cannot be done when
- compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) because
- rtld.c contains the common defn for _dl_rtld_map, which
- is incompatible with a weak decl in the same file. */
-# ifndef SHARED
- weak_extern (_dl_rtld_map);
-# endif
- if (map == &GL(dl_rtld_map))
+ if (is_rtld_link_map (map))
/* Undo the relocation done here during bootstrapping.
Now we will relocate it anew, possibly using a
binding found in the user program or a loaded library
diff --git a/sysdeps/sh/dl-trampoline.S b/sysdeps/sh/dl-trampoline.S
index e2bbbd0..f3e8eea 100644
--- a/sysdeps/sh/dl-trampoline.S
+++ b/sysdeps/sh/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. SH version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/elf-initfini.h b/sysdeps/sh/elf-initfini.h
index f98fada..7d9fdb3 100644
--- a/sysdeps/sh/elf-initfini.h
+++ b/sysdeps/sh/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. SH version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/fpu_control.h b/sysdeps/sh/fpu_control.h
index d2c6344..6bfd82c 100644
--- a/sysdeps/sh/fpu_control.h
+++ b/sysdeps/sh/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/gccframe.h b/sysdeps/sh/gccframe.h
index 7156102..289bb67 100644
--- a/sysdeps/sh/gccframe.h
+++ b/sysdeps/sh/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. sh version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/jmpbuf-offsets.h b/sysdeps/sh/jmpbuf-offsets.h
index a6ca337..4273f99 100644
--- a/sysdeps/sh/jmpbuf-offsets.h
+++ b/sysdeps/sh/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. SH version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/jmpbuf-unwind.h b/sysdeps/sh/jmpbuf-unwind.h
index 5f0f912..d9a2bd0 100644
--- a/sysdeps/sh/jmpbuf-unwind.h
+++ b/sysdeps/sh/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/ldsodefs.h b/sysdeps/sh/ldsodefs.h
index 602ccd3..ec9b231 100644
--- a/sysdeps/sh/ldsodefs.h
+++ b/sysdeps/sh/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/libc-tls.c b/sysdeps/sh/libc-tls.c
index 05cdbab..dacd343 100644
--- a/sysdeps/sh/libc-tls.c
+++ b/sysdeps/sh/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps
deleted file mode 100644
index 3c84259..0000000
--- a/sysdeps/sh/libm-test-ulps
+++ /dev/null
@@ -1,565 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-float: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-
-Function: "asin":
-float: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-
-Function: "atan":
-float: 1
-
-Function: "atan2":
-float: 1
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-
-Function: "atanh":
-double: 2
-float: 2
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-
-Function: "cabs":
-double: 1
-
-Function: "cabs_towardzero":
-double: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-
-Function: Real part of "cacosh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-
-Function: "carg":
-float: 1
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-
-Function: Imaginary part of "casin_towardzero":
-double: 4
-float: 2
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-
-Function: Real part of "casinh_towardzero":
-double: 4
-float: 2
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "catan":
-double: 1
-float: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-
-Function: Imaginary part of "clog":
-float: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 3
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-
-Function: "cos":
-double: 1
-float: 1
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-
-Function: Imaginary part of "cpow":
-float: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 1
-float: 1
-
-Function: Real part of "csinh":
-float: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 3
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-
-Function: "erf":
-double: 1
-float: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-
-Function: "erfc":
-double: 5
-float: 2
-
-Function: "erfc_towardzero":
-double: 3
-float: 3
-
-Function: "exp":
-double: 1
-float: 1
-
-Function: "exp10":
-double: 2
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-
-Function: "exp2":
-double: 1
-
-Function: "exp2_towardzero":
-double: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-
-Function: "fma_towardzero":
-double: 1
-
-Function: "gamma":
-double: 4
-float: 3
-
-Function: "gamma_towardzero":
-double: 5
-float: 3
-
-Function: "hypot":
-double: 1
-
-Function: "hypot_towardzero":
-double: 1
-
-Function: "j0":
-double: 2
-float: 8
-
-Function: "j0_towardzero":
-double: 4
-float: 6
-
-Function: "j1":
-double: 2
-float: 8
-
-Function: "j1_towardzero":
-double: 3
-float: 2
-
-Function: "jn":
-double: 4
-float: 4
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-
-Function: "lgamma":
-double: 4
-float: 3
-
-Function: "lgamma_towardzero":
-double: 5
-float: 3
-
-Function: "log":
-float: 1
-
-Function: "log10":
-double: 2
-float: 2
-
-Function: "log10_towardzero":
-double: 2
-float: 1
-
-Function: "log1p":
-double: 1
-float: 1
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-
-Function: "log2_towardzero":
-double: 2
-
-Function: "logp1":
-double: 1
-float: 1
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-
-Function: "pow":
-double: 1
-float: 1
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-
-Function: "sin":
-double: 1
-float: 1
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-
-Function: "sincos":
-double: 1
-float: 1
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-
-Function: "tan":
-float: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-
-Function: "tanh":
-double: 2
-float: 2
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-
-Function: "tgamma":
-double: 9
-float: 8
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-
-Function: "y0":
-double: 3
-float: 6
-
-Function: "y0_towardzero":
-double: 3
-float: 3
-
-Function: "y1":
-double: 3
-float: 2
-
-Function: "y1_towardzero":
-double: 3
-float: 2
-
-Function: "yn":
-double: 3
-float: 3
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-
-# end of automatic generation
diff --git a/sysdeps/sh/libm-test-ulps-name b/sysdeps/sh/libm-test-ulps-name
deleted file mode 100644
index b6c67c9..0000000
--- a/sysdeps/sh/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-SH
diff --git a/sysdeps/sh/machine-gmon.h b/sysdeps/sh/machine-gmon.h
index cd2af1f..8e467e3 100644
--- a/sysdeps/sh/machine-gmon.h
+++ b/sysdeps/sh/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. SH version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/memcpy.S b/sysdeps/sh/memcpy.S
index 7a877d6..fd70636 100644
--- a/sysdeps/sh/memcpy.S
+++ b/sysdeps/sh/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/memset.S b/sysdeps/sh/memset.S
index 7b8ad72..c853aad 100644
--- a/sysdeps/sh/memset.S
+++ b/sysdeps/sh/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/nptl/pthread_spin_init.c b/sysdeps/sh/nptl/pthread_spin_init.c
index 6d3c9d0..8239a37 100644
--- a/sysdeps/sh/nptl/pthread_spin_init.c
+++ b/sysdeps/sh/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/nptl/pthread_spin_lock.c b/sysdeps/sh/nptl/pthread_spin_lock.c
index 3e2aa04..ab5ef28 100644
--- a/sysdeps/sh/nptl/pthread_spin_lock.c
+++ b/sysdeps/sh/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/nptl/pthread_spin_trylock.S b/sysdeps/sh/nptl/pthread_spin_trylock.S
index 2282b5b..94b7f64 100644
--- a/sysdeps/sh/nptl/pthread_spin_trylock.S
+++ b/sysdeps/sh/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/nptl/pthread_spin_unlock.S b/sysdeps/sh/nptl/pthread_spin_unlock.S
index a6e52aa..cb2202b 100644
--- a/sysdeps/sh/nptl/pthread_spin_unlock.S
+++ b/sysdeps/sh/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/nptl/pthreaddef.h b/sysdeps/sh/nptl/pthreaddef.h
index 7eb0dc3..a51ef91 100644
--- a/sysdeps/sh/nptl/pthreaddef.h
+++ b/sysdeps/sh/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,8 +15,6 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <sysdep.h>
-
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h
index fd95378..0eef214 100644
--- a/sysdeps/sh/nptl/tls.h
+++ b/sysdeps/sh/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/SH version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/preconfigure b/sysdeps/sh/preconfigure
index a89d9c0..68417ad 100644
--- a/sysdeps/sh/preconfigure
+++ b/sysdeps/sh/preconfigure
@@ -3,14 +3,14 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
+printf %s "checking for egrep -e... " >&6; }
+if test ${ac_cv_path_EGREP_TRADITIONAL+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- if test -z "$GREP"; then
- ac_path_GREP_found=false
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -24,13 +24,14 @@ do
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -39,14 +40,14 @@ case `"$ac_path_GREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -54,35 +55,24 @@ case `"$ac_path_GREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_GREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
+ :
fi
else
- ac_cv_path_GREP=$GREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
+ if test "$ac_cv_path_EGREP_TRADITIONAL"
then :
- printf %s "(cached) " >&6
-else $as_nop
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
+ ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
+else case e in #(
+ e) if test -z "$EGREP_TRADITIONAL"; then
+ ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -96,13 +86,14 @@ do
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
+ ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+ # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -111,14 +102,14 @@ case `"$ac_path_EGREP" --version 2>&1` in
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
+ ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+ ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
@@ -126,24 +117,25 @@ case `"$ac_path_EGREP" --version 2>&1` in
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
- $ac_path_EGREP_found && break 3
+ $ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
+ if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
- ac_cv_path_EGREP=$EGREP
+ ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
-
- fi
+ ;;
+esac
+fi ;;
+esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
+printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
+ EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -153,11 +145,12 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+ $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
endianness=le
-else $as_nop
- endianness=be
+else case e in #(
+ e) endianness=be ;;
+esac
fi
rm -rf conftest*
diff --git a/sysdeps/sh/sh3/__longjmp.S b/sysdeps/sh/sh3/__longjmp.S
index c782275..3623b03 100644
--- a/sysdeps/sh/sh3/__longjmp.S
+++ b/sysdeps/sh/sh3/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for SH.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh3/setjmp.S b/sysdeps/sh/sh3/setjmp.S
index af2902e..96e7e46 100644
--- a/sysdeps/sh/sh3/setjmp.S
+++ b/sysdeps/sh/sh3/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for SH3.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S
index 432bbff..ed220e7 100644
--- a/sysdeps/sh/sh4/__longjmp.S
+++ b/sysdeps/sh/sh4/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for SH.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fclrexcpt.c b/sysdeps/sh/sh4/fpu/fclrexcpt.c
index 4c92612..49361d9 100644
--- a/sysdeps/sh/sh4/fpu/fclrexcpt.c
+++ b/sysdeps/sh/sh4/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fedisblxcpt.c b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
index c4ee44c..578f950 100644
--- a/sysdeps/sh/sh4/fpu/fedisblxcpt.c
+++ b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/feenablxcpt.c b/sysdeps/sh/sh4/fpu/feenablxcpt.c
index 1af9660..f366a49 100644
--- a/sysdeps/sh/sh4/fpu/feenablxcpt.c
+++ b/sysdeps/sh/sh4/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fegetenv.c b/sysdeps/sh/sh4/fpu/fegetenv.c
index 28f67ab..154ec9e 100644
--- a/sysdeps/sh/sh4/fpu/fegetenv.c
+++ b/sysdeps/sh/sh4/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fegetexcept.c b/sysdeps/sh/sh4/fpu/fegetexcept.c
index c94db1b..945c5b6 100644
--- a/sysdeps/sh/sh4/fpu/fegetexcept.c
+++ b/sysdeps/sh/sh4/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fegetmode.c b/sysdeps/sh/sh4/fpu/fegetmode.c
index a080f91..746615c 100644
--- a/sysdeps/sh/sh4/fpu/fegetmode.c
+++ b/sysdeps/sh/sh4/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. SH4 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fegetround.c b/sysdeps/sh/sh4/fpu/fegetround.c
index 8c5aa2e..e68bb28 100644
--- a/sysdeps/sh/sh4/fpu/fegetround.c
+++ b/sysdeps/sh/sh4/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/feholdexcpt.c b/sysdeps/sh/sh4/fpu/feholdexcpt.c
index 4845521..d1d2752 100644
--- a/sysdeps/sh/sh4/fpu/feholdexcpt.c
+++ b/sysdeps/sh/sh4/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fesetenv.c b/sysdeps/sh/sh4/fpu/fesetenv.c
index 7937a17..128f552 100644
--- a/sysdeps/sh/sh4/fpu/fesetenv.c
+++ b/sysdeps/sh/sh4/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fesetexcept.c b/sysdeps/sh/sh4/fpu/fesetexcept.c
index 4e243d3..b34746b 100644
--- a/sysdeps/sh/sh4/fpu/fesetexcept.c
+++ b/sysdeps/sh/sh4/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. SH4 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fesetmode.c b/sysdeps/sh/sh4/fpu/fesetmode.c
index 4ea0e9a..ef44084 100644
--- a/sysdeps/sh/sh4/fpu/fesetmode.c
+++ b/sysdeps/sh/sh4/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. SH4 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fesetround.c b/sysdeps/sh/sh4/fpu/fesetround.c
index fe8edd6..19481f8 100644
--- a/sysdeps/sh/sh4/fpu/fesetround.c
+++ b/sysdeps/sh/sh4/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/feupdateenv.c b/sysdeps/sh/sh4/fpu/feupdateenv.c
index 98d88bf..dd86fcd 100644
--- a/sysdeps/sh/sh4/fpu/feupdateenv.c
+++ b/sysdeps/sh/sh4/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fgetexcptflg.c b/sysdeps/sh/sh4/fpu/fgetexcptflg.c
index cbb42d2..92934d0 100644
--- a/sysdeps/sh/sh4/fpu/fgetexcptflg.c
+++ b/sysdeps/sh/sh4/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fraiseexcpt.c b/sysdeps/sh/sh4/fpu/fraiseexcpt.c
index 3e2485a..80ca159 100644
--- a/sysdeps/sh/sh4/fpu/fraiseexcpt.c
+++ b/sysdeps/sh/sh4/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/fsetexcptflg.c b/sysdeps/sh/sh4/fpu/fsetexcptflg.c
index b3742e8..7e814a8 100644
--- a/sysdeps/sh/sh4/fpu/fsetexcptflg.c
+++ b/sysdeps/sh/sh4/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/fpu/ftestexcept.c b/sysdeps/sh/sh4/fpu/ftestexcept.c
index 7b267d2..66441cf 100644
--- a/sysdeps/sh/sh4/fpu/ftestexcept.c
+++ b/sysdeps/sh/sh4/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sh4/setjmp.S b/sysdeps/sh/sh4/setjmp.S
index f7f845d..66eaaba 100644
--- a/sysdeps/sh/sh4/setjmp.S
+++ b/sysdeps/sh/sh4/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for SH4.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sotruss-lib.c b/sysdeps/sh/sotruss-lib.c
index 58cc687..f5d2883 100644
--- a/sysdeps/sh/sotruss-lib.c
+++ b/sysdeps/sh/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for SH.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/sh/stackinfo.h b/sysdeps/sh/stackinfo.h
index f5caac3..8f7bf16 100644
--- a/sysdeps/sh/stackinfo.h
+++ b/sysdeps/sh/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/start.S b/sysdeps/sh/start.S
index 1baebe3..4fad587 100644
--- a/sysdeps/sh/start.S
+++ b/sysdeps/sh/start.S
@@ -1,5 +1,5 @@
/* Startup code for SH & ELF.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/string-fzb.h b/sysdeps/sh/string-fzb.h
index 85199c0..571f49e 100644
--- a/sysdeps/sh/string-fzb.h
+++ b/sysdeps/sh/string-fzb.h
@@ -1,5 +1,5 @@
/* Zero byte detection; boolean. SH4 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/strlen.S b/sysdeps/sh/strlen.S
index 3cfdb8d..38489f1 100644
--- a/sysdeps/sh/strlen.S
+++ b/sysdeps/sh/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sh/sysdep.h b/sysdeps/sh/sysdep.h
index 0c9e562..e362ae7 100644
--- a/sysdeps/sh/sysdep.h
+++ b/sysdeps/sh/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for SH.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,7 @@
#define ALIGNARG(log2) log2
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+#define L(label) .L##label
#ifdef SHARED
#define PLTJMP(_x) _x##@PLT
diff --git a/sysdeps/sh/tst-audit.h b/sysdeps/sh/tst-audit.h
index a4b783f..d888606 100644
--- a/sysdeps/sh/tst-audit.h
+++ b/sysdeps/sh/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SH version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/sh/unwind-arch.h b/sysdeps/sh/unwind-arch.h
index 3de78e4..a6904c4 100644
--- a/sysdeps/sh/unwind-arch.h
+++ b/sysdeps/sh/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. SH customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/atomic-machine.h b/sysdeps/sparc/atomic-machine.h
index eeff772..dd582a4 100644
--- a/sysdeps/sparc/atomic-machine.h
+++ b/sysdeps/sparc/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. Sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/backtrace.c b/sysdeps/sparc/backtrace.c
index 16dee33..b1dca57 100644
--- a/sysdeps/sparc/backtrace.c
+++ b/sysdeps/sparc/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/bits/hwcap.h b/sysdeps/sparc/bits/hwcap.h
index 55ee4dd..503481a 100644
--- a/sysdeps/sparc/bits/hwcap.h
+++ b/sysdeps/sparc/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/bits/link.h b/sysdeps/sparc/bits/link.h
index 89649b5..c3c8466 100644
--- a/sysdeps/sparc/bits/link.h
+++ b/sysdeps/sparc/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific audit interfaces for dynamic linker. SPARC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/cpu_relax.c b/sysdeps/sparc/cpu_relax.c
index 6e790bd..7109b91 100644
--- a/sysdeps/sparc/cpu_relax.c
+++ b/sysdeps/sparc/cpu_relax.c
@@ -1,5 +1,5 @@
/* CPU strand yielding for busy loops. Linux/sparc version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S
index b3e7310..ed707a3 100644
--- a/sysdeps/sparc/crti.S
+++ b/sysdeps/sparc/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for sparc.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/crtn.S b/sysdeps/sparc/crtn.S
index ea86c50..76e39a6 100644
--- a/sysdeps/sparc/crtn.S
+++ b/sysdeps/sparc/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for sparc.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/dl-dtprocnum.h b/sysdeps/sparc/dl-dtprocnum.h
index c09a9e3..fca7332 100644
--- a/sysdeps/sparc/dl-dtprocnum.h
+++ b/sysdeps/sparc/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. SPARC version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/dl-lookupcfg.h b/sysdeps/sparc/dl-lookupcfg.h
index 1240f01..918cda0 100644
--- a/sysdeps/sparc/dl-lookupcfg.h
+++ b/sysdeps/sparc/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. SPARC64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/dl-procinfo.c b/sysdeps/sparc/dl-procinfo.c
deleted file mode 100644
index 643fbd9..0000000
--- a/sysdeps/sparc/dl-procinfo.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Data for Linux/sparc version of processor capability information.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This information must be kept in sync with the _DL_HWCAP_COUNT
- definition in procinfo.h.
-
- If anything should be added here check whether the size of each string
- is still ok with the given array size.
-
- All the #ifdefs in the definitions ar equite irritating but
- necessary if we want to avoid duplicating the information. There
- are three different modes:
-
- - PROCINFO_DECL is defined. This means we are only interested in
- declarations.
-
- - PROCINFO_DECL is not defined:
-
- + if SHARED is defined the file is included in an array
- initializer. The .element = { ... } syntax is needed.
-
- + if SHARED is not defined a normal array initialization is
- needed.
- */
-
-#ifndef PROCINFO_CLASS
-#define PROCINFO_CLASS
-#endif
-
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_sparc_cap_flags
-#else
-PROCINFO_CLASS const char _dl_sparc_cap_flags[28][11]
-#endif
-#ifndef PROCINFO_DECL
- = { "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v", "v9v2",
- "mul32", "div32", "fsmuld", "v8plus", "popc", "vis", "vis2",
- "ASIBlkInit", "fmaf", "vis3", "hpc", "random", "trans", "fjfmau",
- "ima", "cspare", "pause", "cbcond", "crypto", "adp" }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
-#undef PROCINFO_DECL
-#undef PROCINFO_CLASS
diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h
deleted file mode 100644
index 7091787..0000000
--- a/sysdeps/sparc/dl-procinfo.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Linux/sparc version of processor capability information handling macros.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-#include <sysdep.h>
-
-#define _DL_HWCAP_COUNT 28
-
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- int i;
-
- /* Fallback to generic output mechanism. */
- if (type != AT_HWCAP)
- return -1;
-
- _dl_printf ("AT_HWCAP: ");
-
- for (i = 0; i < _DL_HWCAP_COUNT; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", GLRO(dl_sparc_cap_flags)[i]);
-
- _dl_printf ("\n");
-
- return 0;
-}
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return GLRO(dl_sparc_cap_flags)[idx];
-};
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/sparc/elf-initfini.h b/sysdeps/sparc/elf-initfini.h
index 9a7ce7b..c106519 100644
--- a/sysdeps/sparc/elf-initfini.h
+++ b/sysdeps/sparc/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. SPARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/bits/fenv.h b/sysdeps/sparc/fpu/bits/fenv.h
index 8bee114..d852f12 100644
--- a/sysdeps/sparc/fpu/bits/fenv.h
+++ b/sysdeps/sparc/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fclrexcpt.c b/sysdeps/sparc/fpu/fclrexcpt.c
index 746fe2f..c1f2cdf 100644
--- a/sysdeps/sparc/fpu/fclrexcpt.c
+++ b/sysdeps/sparc/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fedisblxcpt.c b/sysdeps/sparc/fpu/fedisblxcpt.c
index dc23261..1550ef2 100644
--- a/sysdeps/sparc/fpu/fedisblxcpt.c
+++ b/sysdeps/sparc/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/feenablxcpt.c b/sysdeps/sparc/fpu/feenablxcpt.c
index 6b70ec4..79f22d3 100644
--- a/sysdeps/sparc/fpu/feenablxcpt.c
+++ b/sysdeps/sparc/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fegetenv.c b/sysdeps/sparc/fpu/fegetenv.c
index d7b132b..eddb0b7 100644
--- a/sysdeps/sparc/fpu/fegetenv.c
+++ b/sysdeps/sparc/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fegetexcept.c b/sysdeps/sparc/fpu/fegetexcept.c
index dc3c1e8..56caa1c 100644
--- a/sysdeps/sparc/fpu/fegetexcept.c
+++ b/sysdeps/sparc/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fegetmode.c b/sysdeps/sparc/fpu/fegetmode.c
index 4857c6f..84b400c 100644
--- a/sysdeps/sparc/fpu/fegetmode.c
+++ b/sysdeps/sparc/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fegetround.c b/sysdeps/sparc/fpu/fegetround.c
index e2f7bad..7899af0 100644
--- a/sysdeps/sparc/fpu/fegetround.c
+++ b/sysdeps/sparc/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c
index 8746408..84721fa 100644
--- a/sysdeps/sparc/fpu/feholdexcpt.c
+++ b/sysdeps/sparc/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fesetenv.c b/sysdeps/sparc/fpu/fesetenv.c
index 148bebf..d8dbc40 100644
--- a/sysdeps/sparc/fpu/fesetenv.c
+++ b/sysdeps/sparc/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fesetexcept.c b/sysdeps/sparc/fpu/fesetexcept.c
index f48f635..3014591 100644
--- a/sysdeps/sparc/fpu/fesetexcept.c
+++ b/sysdeps/sparc/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fesetmode.c b/sysdeps/sparc/fpu/fesetmode.c
index a9c4767..dd431e9 100644
--- a/sysdeps/sparc/fpu/fesetmode.c
+++ b/sysdeps/sparc/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fesetround.c b/sysdeps/sparc/fpu/fesetround.c
index 29d4dde..2352286 100644
--- a/sysdeps/sparc/fpu/fesetround.c
+++ b/sysdeps/sparc/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/feupdateenv.c b/sysdeps/sparc/fpu/feupdateenv.c
index 3768530..3592380 100644
--- a/sysdeps/sparc/fpu/feupdateenv.c
+++ b/sysdeps/sparc/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fgetexcptflg.c b/sysdeps/sparc/fpu/fgetexcptflg.c
index 5a889d3..b26b1bd 100644
--- a/sysdeps/sparc/fpu/fgetexcptflg.c
+++ b/sysdeps/sparc/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fpu_control.h b/sysdeps/sparc/fpu/fpu_control.h
index fa11b2b..4354bce 100644
--- a/sysdeps/sparc/fpu/fpu_control.h
+++ b/sysdeps/sparc/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. SPARC version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fraiseexcpt.c b/sysdeps/sparc/fpu/fraiseexcpt.c
index 642666c..314e1d4 100644
--- a/sysdeps/sparc/fpu/fraiseexcpt.c
+++ b/sysdeps/sparc/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/fsetexcptflg.c b/sysdeps/sparc/fpu/fsetexcptflg.c
index 54d363c..9701867 100644
--- a/sysdeps/sparc/fpu/fsetexcptflg.c
+++ b/sysdeps/sparc/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/ftestexcept.c b/sysdeps/sparc/fpu/ftestexcept.c
index eb63c02..77a3b2e 100644
--- a/sysdeps/sparc/fpu/ftestexcept.c
+++ b/sysdeps/sparc/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps
deleted file mode 100644
index 1bb8b7c..0000000
--- a/sysdeps/sparc/fpu/libm-test-ulps
+++ /dev/null
@@ -1,1525 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acos_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "acosh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "acosh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "acosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "asin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "asinh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "asinh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "asinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-ldouble: 2
-
-Function: "atan2_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "atan2_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "atanh":
-double: 2
-float: 2
-ldouble: 4
-
-Function: "atanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "atanh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "cabs":
-double: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-ldouble: 6
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "carg":
-float: 1
-ldouble: 2
-
-Function: "carg_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "carg_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cbrt":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 6
-float: 6
-ldouble: 5
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 8
-float: 5
-ldouble: 5
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 7
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "clog_towardzero":
-double: 7
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-ldouble: 2
-
-Function: Real part of "clog_upward":
-double: 8
-float: 5
-ldouble: 6
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cos":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "cos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "cos_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: "cosh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "cosh_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ldouble: 1
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-ldouble: 6
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ldouble: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "csin_upward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-ldouble: 2
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 3
-ldouble: 2
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-ldouble: 3
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-ldouble: 4
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-ldouble: 3
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-ldouble: 4
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-ldouble: 3
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-ldouble: 5
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-ldouble: 5
-
-Function: "erf":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "erfc":
-double: 5
-float: 3
-ldouble: 4
-
-Function: "erfc_downward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "exp":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-ldouble: 2
-
-Function: "exp10_downward":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-ldouble: 3
-
-Function: "exp10_upward":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "exp10m1":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-ldouble: 6
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 3
-ldouble: 6
-
-Function: "exp10m1_upward":
-double: 4
-float: 4
-ldouble: 6
-
-Function: "exp2":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp2m1":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-ldouble: 4
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "exp_downward":
-double: 1
-float: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-
-Function: "exp_upward":
-double: 1
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_downward":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "hypot":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-ldouble: 1
-
-Function: "j0":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "j0_downward":
-double: 6
-float: 9
-ldouble: 9
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-ldouble: 9
-
-Function: "j0_upward":
-double: 9
-float: 9
-ldouble: 7
-
-Function: "j1":
-double: 4
-float: 9
-ldouble: 4
-
-Function: "j1_downward":
-double: 5
-float: 8
-ldouble: 6
-
-Function: "j1_towardzero":
-double: 4
-float: 8
-ldouble: 9
-
-Function: "j1_upward":
-double: 9
-float: 9
-ldouble: 9
-
-Function: "jn":
-double: 4
-float: 4
-ldouble: 7
-
-Function: "jn_downward":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-ldouble: 8
-
-Function: "jn_upward":
-double: 5
-float: 5
-ldouble: 7
-
-Function: "lgamma":
-double: 4
-float: 7
-ldouble: 5
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-ldouble: 8
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-ldouble: 5
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-ldouble: 8
-
-Function: "log":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log10_downward":
-double: 2
-float: 3
-ldouble: 1
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10_upward":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log10p1":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log10p1_downward":
-double: 2
-float: 3
-ldouble: 4
-
-Function: "log10p1_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "log10p1_upward":
-double: 2
-float: 3
-ldouble: 4
-
-Function: "log1p":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "log1p_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log1p_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2":
-double: 2
-float: 1
-ldouble: 3
-
-Function: "log2_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-float: 3
-ldouble: 1
-
-Function: "log2p1":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "log_downward":
-float: 2
-ldouble: 1
-
-Function: "log_towardzero":
-float: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "logp1":
-double: 1
-float: 1
-ldouble: 3
-
-Function: "logp1_downward":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "logp1_upward":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "pow":
-double: 1
-float: 3
-ldouble: 2
-
-Function: "pow_downward":
-double: 1
-float: 3
-ldouble: 2
-
-Function: "pow_towardzero":
-double: 1
-float: 4
-ldouble: 2
-
-Function: "pow_upward":
-double: 1
-float: 4
-ldouble: 2
-
-Function: "sin":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 2
-ldouble: 3
-
-Function: "sinh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "sinh_downward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-ldouble: 3
-
-Function: "sinh_upward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tan":
-float: 1
-ldouble: 1
-
-Function: "tan_downward":
-double: 1
-float: 2
-ldouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tan_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "tanh":
-double: 2
-float: 2
-ldouble: 2
-
-Function: "tanh_downward":
-double: 3
-float: 3
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-ldouble: 3
-
-Function: "tgamma":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-ldouble: 5
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-ldouble: 4
-
-Function: "y0":
-double: 3
-float: 9
-ldouble: 3
-
-Function: "y0_downward":
-double: 3
-float: 9
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-ldouble: 3
-
-Function: "y0_upward":
-double: 3
-float: 9
-ldouble: 4
-
-Function: "y1":
-double: 3
-float: 9
-ldouble: 5
-
-Function: "y1_downward":
-double: 6
-float: 9
-ldouble: 5
-
-Function: "y1_towardzero":
-double: 3
-float: 9
-ldouble: 2
-
-Function: "y1_upward":
-double: 7
-float: 9
-ldouble: 5
-
-Function: "yn":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_downward":
-double: 3
-float: 4
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/sysdeps/sparc/fpu/libm-test-ulps-name b/sysdeps/sparc/fpu/libm-test-ulps-name
deleted file mode 100644
index 7124054..0000000
--- a/sysdeps/sparc/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-Sparc
diff --git a/sysdeps/sparc/gccframe.h b/sysdeps/sparc/gccframe.h
index c175e0f..381ef20 100644
--- a/sysdeps/sparc/gccframe.h
+++ b/sysdeps/sparc/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. sparc version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/ldsodefs.h b/sysdeps/sparc/ldsodefs.h
index 6407aa5..25126ac 100644
--- a/sysdeps/sparc/ldsodefs.h
+++ b/sysdeps/sparc/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/machine-gmon.h b/sysdeps/sparc/machine-gmon.h
index 6a40e3d..26ca244 100644
--- a/sysdeps/sparc/machine-gmon.h
+++ b/sysdeps/sparc/machine-gmon.h
@@ -1,5 +1,5 @@
/* sparc-specific implementation of profiling support.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/nptl/bits/struct_rwlock.h b/sysdeps/sparc/nptl/bits/struct_rwlock.h
index b298632..3424ec9 100644
--- a/sysdeps/sparc/nptl/bits/struct_rwlock.h
+++ b/sysdeps/sparc/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* SPARC internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/sparc/nptl/tls.h b/sysdeps/sparc/nptl/tls.h
index 8d1fd5c..0fe5167 100644
--- a/sysdeps/sparc/nptl/tls.h
+++ b/sysdeps/sparc/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. NPTL/sparc version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h
index 854ac72..62c3a6a 100644
--- a/sysdeps/sparc/sparc-ifunc.h
+++ b/sysdeps/sparc/sparc-ifunc.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/sparc/sparc-mcount.S b/sysdeps/sparc/sparc-mcount.S
index 4a1bd47..311b514 100644
--- a/sysdeps/sparc/sparc-mcount.S
+++ b/sysdeps/sparc/sparc-mcount.S
@@ -1,5 +1,5 @@
/* sparc-specific implementation of profiling support.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/Makefile b/sysdeps/sparc/sparc32/Makefile
index 4ba8794..1542539 100644
--- a/sysdeps/sparc/sparc32/Makefile
+++ b/sysdeps/sparc/sparc32/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2024 Free Software Foundation, Inc.
+# Copyright (C) 1991-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/__longjmp.S b/sysdeps/sparc/sparc32/__longjmp.S
index 4b7042e..aec5369 100644
--- a/sysdeps/sparc/sparc32/__longjmp.S
+++ b/sysdeps/sparc/sparc32/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/add_n.S b/sysdeps/sparc/sparc32/add_n.S
index 2b51daa..ffd2cc9 100644
--- a/sysdeps/sparc/sparc32/add_n.S
+++ b/sysdeps/sparc/sparc32/add_n.S
@@ -1,7 +1,7 @@
! SPARC __mpn_add_n -- Add two limb vectors of the same length > 0 and store
! sum in a third limb vector.
!
-! Copyright (C) 1995-2024 Free Software Foundation, Inc.
+! Copyright (C) 1995-2025 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
diff --git a/sysdeps/sparc/sparc32/addmul_1.S b/sysdeps/sparc/sparc32/addmul_1.S
index 877e79a..7930028 100644
--- a/sysdeps/sparc/sparc32/addmul_1.S
+++ b/sysdeps/sparc/sparc32/addmul_1.S
@@ -1,7 +1,7 @@
! SPARC v8 __mpn_addmul_1 -- Multiply a limb vector with a limb and
! add the result to a second limb vector.
-! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+! Copyright (C) 1992-2025 Free Software Foundation, Inc.
! This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc32/alloca.S b/sysdeps/sparc/sparc32/alloca.S
index 6db3573..f8ab932 100644
--- a/sysdeps/sparc/sparc32/alloca.S
+++ b/sysdeps/sparc/sparc32/alloca.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/sparc/sparc32/bits/setjmp.h
index 9124944..e13c92a 100644
--- a/sysdeps/sparc/sparc32/bits/setjmp.h
+++ b/sysdeps/sparc/sparc32/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/dl-irel.h b/sysdeps/sparc/sparc32/dl-irel.h
index 9c1bf7e..8ecd7bb 100644
--- a/sysdeps/sparc/sparc32/dl-irel.h
+++ b/sysdeps/sparc/sparc32/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
SPARC 32-bit version.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index 2c56d8a..0b49766 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/dl-plt.h b/sysdeps/sparc/sparc32/dl-plt.h
index c4d2ad5..ece1771 100644
--- a/sysdeps/sparc/sparc32/dl-plt.h
+++ b/sysdeps/sparc/sparc32/dl-plt.h
@@ -1,5 +1,5 @@
/* PLT fixups. Sparc 32-bit version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/dl-trampoline.S b/sysdeps/sparc/sparc32/dl-trampoline.S
index c25de30..bcab0f2 100644
--- a/sysdeps/sparc/sparc32/dl-trampoline.S
+++ b/sysdeps/sparc/sparc32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Sparc 32-bit version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/fpu/e_sqrtl.c b/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
index b1d7e32..73ce3d2 100644
--- a/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
+++ b/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Long double square root, sparc32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/fpu/fix-fp-int-convert-overflow.h b/sysdeps/sparc/sparc32/fpu/fix-fp-int-convert-overflow.h
index 4ed2f16..0403903 100644
--- a/sysdeps/sparc/sparc32/fpu/fix-fp-int-convert-overflow.h
+++ b/sysdeps/sparc/sparc32/fpu/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. SPARC32 version.
- Copyright (C) 2015-2020 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/fpu/math-tests-snan-payload.h b/sysdeps/sparc/sparc32/fpu/math-tests-snan-payload.h
index d84e4d9..d4c836f 100644
--- a/sysdeps/sparc/sparc32/fpu/math-tests-snan-payload.h
+++ b/sysdeps/sparc/sparc32/fpu/math-tests-snan-payload.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN payloads. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/fpu/s_signbit.S b/sysdeps/sparc/sparc32/fpu/s_signbit.S
index 082c302..dd86437 100644
--- a/sysdeps/sparc/sparc32/fpu/s_signbit.S
+++ b/sysdeps/sparc/sparc32/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* signbit(). sparc32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/fpu/s_signbitl.S b/sysdeps/sparc/sparc32/fpu/s_signbitl.S
index 7ebcc39..f7c8cb3 100644
--- a/sysdeps/sparc/sparc32/fpu/s_signbitl.S
+++ b/sysdeps/sparc/sparc32/fpu/s_signbitl.S
@@ -1,5 +1,5 @@
/* signbitl(). sparc32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/ieee754.h b/sysdeps/sparc/sparc32/ieee754.h
index 9dee9d6..e4c06e6 100644
--- a/sysdeps/sparc/sparc32/ieee754.h
+++ b/sysdeps/sparc/sparc32/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/jmpbuf-offsets.h b/sysdeps/sparc/sparc32/jmpbuf-offsets.h
index 1146dd8..edb8261 100644
--- a/sysdeps/sparc/sparc32/jmpbuf-offsets.h
+++ b/sysdeps/sparc/sparc32/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. SPARC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/jmpbuf-unwind.h b/sysdeps/sparc/sparc32/jmpbuf-unwind.h
index 2a7cf8e..56cdc4c 100644
--- a/sysdeps/sparc/sparc32/jmpbuf-unwind.h
+++ b/sysdeps/sparc/sparc32/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/lshift.S b/sysdeps/sparc/sparc32/lshift.S
index 53b37d6..7e009ec 100644
--- a/sysdeps/sparc/sparc32/lshift.S
+++ b/sysdeps/sparc/sparc32/lshift.S
@@ -1,6 +1,6 @@
! Sparc __mpn_lshift --
!
-! Copyright (C) 1995-2024 Free Software Foundation, Inc.
+! Copyright (C) 1995-2025 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
diff --git a/sysdeps/sparc/sparc32/memchr.S b/sysdeps/sparc/sparc32/memchr.S
index 6968a3a..fc94e8b 100644
--- a/sysdeps/sparc/sparc32/memchr.S
+++ b/sysdeps/sparc/sparc32/memchr.S
@@ -1,7 +1,7 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
than N.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/memcpy.S b/sysdeps/sparc/sparc32/memcpy.S
index 77d357c..9662e69 100644
--- a/sysdeps/sparc/sparc32/memcpy.S
+++ b/sysdeps/sparc/sparc32/memcpy.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/memset.S b/sysdeps/sparc/sparc32/memset.S
index 6afd79e..8aeaec7 100644
--- a/sysdeps/sparc/sparc32/memset.S
+++ b/sysdeps/sparc/sparc32/memset.S
@@ -1,6 +1,6 @@
/* Set a block of memory to some byte value.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/mul_1.S b/sysdeps/sparc/sparc32/mul_1.S
index 0e538b3..21e15c3 100644
--- a/sysdeps/sparc/sparc32/mul_1.S
+++ b/sysdeps/sparc/sparc32/mul_1.S
@@ -1,7 +1,7 @@
! SPARC v8 __mpn_mul_1 -- Multiply a limb vector with a single limb and
! store the product in a second limb vector.
-! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+! Copyright (C) 1992-2025 Free Software Foundation, Inc.
! This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc32/pthread_spin_lock.S b/sysdeps/sparc/sparc32/pthread_spin_lock.S
index 94ba5ff..84bdddf 100644
--- a/sysdeps/sparc/sparc32/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc32/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/pthread_spin_trylock.S
index 88fd86e..0b0aa68 100644
--- a/sysdeps/sparc/sparc32/pthread_spin_trylock.S
+++ b/sysdeps/sparc/sparc32/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/pthreaddef.h b/sysdeps/sparc/sparc32/pthreaddef.h
index ddcfed1..fdd2da1 100644
--- a/sysdeps/sparc/sparc32/pthreaddef.h
+++ b/sysdeps/sparc/sparc32/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_add.c b/sysdeps/sparc/sparc32/q_add.c
index e0a46c2..811f0a7 100644
--- a/sysdeps/sparc/sparc32/q_add.c
+++ b/sysdeps/sparc/sparc32/q_add.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_cmp.c b/sysdeps/sparc/sparc32/q_cmp.c
index 4c5f77c..ee0695e 100644
--- a/sysdeps/sparc/sparc32/q_cmp.c
+++ b/sysdeps/sparc/sparc32/q_cmp.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Compare a and b, return float condition code.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_cmpe.c b/sysdeps/sparc/sparc32/q_cmpe.c
index 867d321..29dcc1d 100644
--- a/sysdeps/sparc/sparc32/q_cmpe.c
+++ b/sysdeps/sparc/sparc32/q_cmpe.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Compare a and b, return float condition code.
Signal exception (unless masked) if unordered.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_div.c b/sysdeps/sparc/sparc32/q_div.c
index 46b8fd1..0870b7c 100644
--- a/sysdeps/sparc/sparc32/q_div.c
+++ b/sysdeps/sparc/sparc32/q_div.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_dtoq.c b/sysdeps/sparc/sparc32/q_dtoq.c
index be80be1..51f2e29 100644
--- a/sysdeps/sparc/sparc32/q_dtoq.c
+++ b/sysdeps/sparc/sparc32/q_dtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_feq.c b/sysdeps/sparc/sparc32/q_feq.c
index f2a75e5..dcd192e 100644
--- a/sysdeps/sparc/sparc32/q_feq.c
+++ b/sysdeps/sparc/sparc32/q_feq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a == b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_fge.c b/sysdeps/sparc/sparc32/q_fge.c
index 3caef2b..123ea47 100644
--- a/sysdeps/sparc/sparc32/q_fge.c
+++ b/sysdeps/sparc/sparc32/q_fge.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a >= b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_fgt.c b/sysdeps/sparc/sparc32/q_fgt.c
index 8abc47c..cdf27d1 100644
--- a/sysdeps/sparc/sparc32/q_fgt.c
+++ b/sysdeps/sparc/sparc32/q_fgt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a > b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_fle.c b/sysdeps/sparc/sparc32/q_fle.c
index 1405a00..bcdb06b 100644
--- a/sysdeps/sparc/sparc32/q_fle.c
+++ b/sysdeps/sparc/sparc32/q_fle.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a <= b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_flt.c b/sysdeps/sparc/sparc32/q_flt.c
index 86213e0..fb42e0c 100644
--- a/sysdeps/sparc/sparc32/q_flt.c
+++ b/sysdeps/sparc/sparc32/q_flt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a < b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_fne.c b/sysdeps/sparc/sparc32/q_fne.c
index 70c24c9..23090e7 100644
--- a/sysdeps/sparc/sparc32/q_fne.c
+++ b/sysdeps/sparc/sparc32/q_fne.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a != b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_itoq.c b/sysdeps/sparc/sparc32/q_itoq.c
index 5a3792a..2fb2bd3 100644
--- a/sysdeps/sparc/sparc32/q_itoq.c
+++ b/sysdeps/sparc/sparc32/q_itoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_lltoq.c b/sysdeps/sparc/sparc32/q_lltoq.c
index 7a89705..26a2024 100644
--- a/sysdeps/sparc/sparc32/q_lltoq.c
+++ b/sysdeps/sparc/sparc32/q_lltoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_mul.c b/sysdeps/sparc/sparc32/q_mul.c
index 6699715..50f7567 100644
--- a/sysdeps/sparc/sparc32/q_mul.c
+++ b/sysdeps/sparc/sparc32/q_mul.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_neg.c b/sysdeps/sparc/sparc32/q_neg.c
index 6105821..3ddd166 100644
--- a/sysdeps/sparc/sparc32/q_neg.c
+++ b/sysdeps/sparc/sparc32/q_neg.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return !a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtod.c b/sysdeps/sparc/sparc32/q_qtod.c
index 1c0be22..a80073a 100644
--- a/sysdeps/sparc/sparc32/q_qtod.c
+++ b/sysdeps/sparc/sparc32/q_qtod.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (double)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtoi.c b/sysdeps/sparc/sparc32/q_qtoi.c
index 603fe64..c7b1411 100644
--- a/sysdeps/sparc/sparc32/q_qtoi.c
+++ b/sysdeps/sparc/sparc32/q_qtoi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (int)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtoll.c b/sysdeps/sparc/sparc32/q_qtoll.c
index 9b2f74e..4d48117 100644
--- a/sysdeps/sparc/sparc32/q_qtoll.c
+++ b/sysdeps/sparc/sparc32/q_qtoll.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long long)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtos.c b/sysdeps/sparc/sparc32/q_qtos.c
index d49b3bc..bbb5e2b 100644
--- a/sysdeps/sparc/sparc32/q_qtos.c
+++ b/sysdeps/sparc/sparc32/q_qtos.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (float)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtou.c b/sysdeps/sparc/sparc32/q_qtou.c
index 18dbd9b..dfba124 100644
--- a/sysdeps/sparc/sparc32/q_qtou.c
+++ b/sysdeps/sparc/sparc32/q_qtou.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned int)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_qtoull.c b/sysdeps/sparc/sparc32/q_qtoull.c
index 7418b2e..a4b1233 100644
--- a/sysdeps/sparc/sparc32/q_qtoull.c
+++ b/sysdeps/sparc/sparc32/q_qtoull.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned long long)a
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_sqrt.c b/sysdeps/sparc/sparc32/q_sqrt.c
index 24039a7..dc5418f 100644
--- a/sysdeps/sparc/sparc32/q_sqrt.c
+++ b/sysdeps/sparc/sparc32/q_sqrt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrtl(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_stoq.c b/sysdeps/sparc/sparc32/q_stoq.c
index 6b0aba8..24df0a0 100644
--- a/sysdeps/sparc/sparc32/q_stoq.c
+++ b/sysdeps/sparc/sparc32/q_stoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_sub.c b/sysdeps/sparc/sparc32/q_sub.c
index 2e45671..aa07e3e 100644
--- a/sysdeps/sparc/sparc32/q_sub.c
+++ b/sysdeps/sparc/sparc32/q_sub.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = a - b
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_ulltoq.c b/sysdeps/sparc/sparc32/q_ulltoq.c
index 424ed3b..9e79ccc 100644
--- a/sysdeps/sparc/sparc32/q_ulltoq.c
+++ b/sysdeps/sparc/sparc32/q_ulltoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_util.c b/sysdeps/sparc/sparc32/q_util.c
index 4c37f37..b7c6c89 100644
--- a/sysdeps/sparc/sparc32/q_util.c
+++ b/sysdeps/sparc/sparc32/q_util.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Helper routine for _Q_* routines.
Simulate exceptions using double arithmetics.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/q_utoq.c b/sysdeps/sparc/sparc32/q_utoq.c
index b31be63..f6a08cb 100644
--- a/sysdeps/sparc/sparc32/q_utoq.c
+++ b/sysdeps/sparc/sparc32/q_utoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/rshift.S b/sysdeps/sparc/sparc32/rshift.S
index 6e81ff3..960358e 100644
--- a/sysdeps/sparc/sparc32/rshift.S
+++ b/sysdeps/sparc/sparc32/rshift.S
@@ -1,6 +1,6 @@
! sparc __mpn_rshift --
!
-! Copyright (C) 1995-2024 Free Software Foundation, Inc.
+! Copyright (C) 1995-2025 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
diff --git a/sysdeps/sparc/sparc32/setjmp.S b/sysdeps/sparc/sparc32/setjmp.S
index d3eb1c8..677264b 100644
--- a/sysdeps/sparc/sparc32/setjmp.S
+++ b/sysdeps/sparc/sparc32/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sfp-machine.h b/sysdeps/sparc/sparc32/sfp-machine.h
index 313856e..a8731f8 100644
--- a/sysdeps/sparc/sparc32/sfp-machine.h
+++ b/sysdeps/sparc/sparc32/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc userland (_Q_*) version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/addmul_1.S b/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
index b68bebd..a5b3d01 100644
--- a/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_addmul_1 -- Multiply a limb vector with a limb
! and add the result to a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
index 1b247c4..463c2fe 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
@@ -1,5 +1,5 @@
/* copysign function, sparc32 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
index b16ef9c..1b17514 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
@@ -1,5 +1,5 @@
/* copysign ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
index 56a8dfe..e7ee6be 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
@@ -1,5 +1,5 @@
/* float copysign function, sparc32 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
index bf924c3..f1d8c01 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
@@ -1,5 +1,5 @@
/* copysign ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
index 7fad39f..cdc45cd 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32+v9 vis3 version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
index c7be402..1a05fb7 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
@@ -1,5 +1,5 @@
/* fabs ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
index 82c9b9c..3b957df 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32 vis3 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
index 9177e23..1ce030a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
@@ -1,5 +1,5 @@
/* fabsf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
index 0422c7f..47200eb 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
@@ -1,5 +1,5 @@
/* Compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
index 26b2e3e..bf1314b 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
@@ -1,5 +1,5 @@
/* Compute positive difference, sparc 32-bit.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
index d38ac9e..70a7c31 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
@@ -1,5 +1,5 @@
/* Float compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
index cb44f3a..9baa81a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
@@ -1,5 +1,5 @@
/* Float compute positive difference, sparc 32-bit.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
index 6ed6905..6417682 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
@@ -1,5 +1,5 @@
/* fma function, sparc32 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
index 2c2e900..c07fe97 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
@@ -1,5 +1,5 @@
/* fmaf function, sparc32 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
index a04703e..c884687 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
@@ -1,5 +1,5 @@
/* llrint(), sparc32 v9 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
index 619cf46..fa8826d 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
@@ -1,5 +1,5 @@
/* llrint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
index c54f73f..dda3f74 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
@@ -1,5 +1,5 @@
/* llrintf(), sparc32 v9 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
index d1ce9fe..5566cf2 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
@@ -1,5 +1,5 @@
/* llrintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
index fc877ea..fa85ada 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 vis3 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
index abad973..237ffe8 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
index e372896..d0b2a1a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 vis3 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
index a24a221..9c37dec 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* nearbyintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
index 1ffbaa0..ee21c2a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
index 2426d95..500e226 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* rint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
index 2512b93..8a8e05c 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
index b8081c7..9b5d27b 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
index ada6fb8..4e91717 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32+v9 version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
index 6880304..65421af 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
@@ -1,5 +1,5 @@
/* isnan(). sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
index 358dcd9..b2e765e 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
@@ -1,5 +1,5 @@
/* llrint(), sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
index 7c8e598..9260a7e 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
@@ -1,5 +1,5 @@
/* llrintf(), sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
index 08b741f..6dc247d 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
index 90d1c3e..ce31e00 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
index 2ee9191..731c0aa 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
index cf398b0..66d2ded 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
index 99e77aa..6ce8dce 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/hp-timing.h b/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
index 8ff9e5f..a6f2b40 100644
--- a/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
+++ b/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparcv9 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/mul_1.S b/sysdeps/sparc/sparc32/sparcv9/mul_1.S
index c4cf71c..a3654a0 100644
--- a/sysdeps/sparc/sparc32/sparcv9/mul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/mul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_mul_1 -- Multiply a limb vector with a single
! limb and store the product in a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/sparc/sparc32/sparcv9/multiarch/dl-symbol-redir-ifunc.h
index eb5af08..12ff2a0 100644
--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S b/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
index cb1b58f..0e17905 100644
--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC32 memcpy implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S b/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
index c4cb2e0..e4e8059 100644
--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC memset implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sparcv9/submul_1.S b/sysdeps/sparc/sparc32/sparcv9/submul_1.S
index 17a2249..177686c 100644
--- a/sysdeps/sparc/sparc32/sparcv9/submul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/submul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_submul_1 -- Multiply a limb vector with a limb
! and subtract the result from a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S
index e919df8..8393760 100644
--- a/sysdeps/sparc/sparc32/start.S
+++ b/sysdeps/sparc/sparc32/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf32-sparc
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -35,6 +35,7 @@
#include <sysdep.h>
+#define FRAME_SIZE 104
.section ".text"
.align 4
@@ -48,12 +49,12 @@ _start:
/* Terminate the stack frame, and reserve space for functions to
drop their arguments. */
mov %g0, %fp
- sub %sp, 6*4, %sp
+ sub %sp, FRAME_SIZE, %sp
/* Extract the arguments and environment as encoded on the stack. The
argument info starts after one register window (16 words) past the SP. */
- ld [%sp+22*4], %o1
- add %sp, 23*4, %o2
+ ld [%sp+168], %o1
+ add %sp, 172, %o2
/* Load the addresses of the user entry points. */
#ifndef PIC
@@ -73,6 +74,10 @@ _start:
be NULL. */
mov %g1, %o5
+ /* Provide the highest stack address to update the __libc_stack_end (used
+ to enable executable stacks if required). */
+ st %sp, [%sp+23*4]
+
/* Let libc do the rest of the initialization, and call main. */
call __libc_start_main
nop
diff --git a/sysdeps/sparc/sparc32/stpcpy.S b/sysdeps/sparc/sparc32/stpcpy.S
index 602d397..7c7fca3 100644
--- a/sysdeps/sparc/sparc32/stpcpy.S
+++ b/sysdeps/sparc/sparc32/stpcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/strcat.S b/sysdeps/sparc/sparc32/strcat.S
index f6ec489..ffa89a9 100644
--- a/sysdeps/sparc/sparc32/strcat.S
+++ b/sysdeps/sparc/sparc32/strcat.S
@@ -1,6 +1,6 @@
/* strcat (dest, src) -- Append SRC on the end of DEST.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/strchr.S b/sysdeps/sparc/sparc32/strchr.S
index 7a81a7b..b938bfa 100644
--- a/sysdeps/sparc/sparc32/strchr.S
+++ b/sysdeps/sparc/sparc32/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/strcmp.S b/sysdeps/sparc/sparc32/strcmp.S
index 8e3e052..e3f7fca 100644
--- a/sysdeps/sparc/sparc32/strcmp.S
+++ b/sysdeps/sparc/sparc32/strcmp.S
@@ -1,6 +1,6 @@
/* Compare two strings for differences.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/strcpy.S b/sysdeps/sparc/sparc32/strcpy.S
index 9ec2e9d..264a644 100644
--- a/sysdeps/sparc/sparc32/strcpy.S
+++ b/sysdeps/sparc/sparc32/strcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning DEST.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/strlen.S b/sysdeps/sparc/sparc32/strlen.S
index 6ec8472..9521de1 100644
--- a/sysdeps/sparc/sparc32/strlen.S
+++ b/sysdeps/sparc/sparc32/strlen.S
@@ -1,6 +1,6 @@
/* Determine the length of a string.
For SPARC v7.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc32/sub_n.S b/sysdeps/sparc/sparc32/sub_n.S
index 171527a..8164c3b 100644
--- a/sysdeps/sparc/sparc32/sub_n.S
+++ b/sysdeps/sparc/sparc32/sub_n.S
@@ -1,7 +1,7 @@
! SPARC __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
! store difference in a third limb vector.
!
-! Copyright (C) 1995-2024 Free Software Foundation, Inc.
+! Copyright (C) 1995-2025 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
diff --git a/sysdeps/sparc/sparc32/submul_1.S b/sysdeps/sparc/sparc32/submul_1.S
index 7e5ded5..8e34d93 100644
--- a/sysdeps/sparc/sparc32/submul_1.S
+++ b/sysdeps/sparc/sparc32/submul_1.S
@@ -1,7 +1,7 @@
! SPARC v8 __mpn_submul_1 -- Multiply a limb vector with a limb and
! subtract the result from a second limb vector.
-! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+! Copyright (C) 1992-2025 Free Software Foundation, Inc.
! This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc32/tst-audit.h b/sysdeps/sparc/sparc32/tst-audit.h
index d8ff5fd..bb8d6ef 100644
--- a/sysdeps/sparc/sparc32/tst-audit.h
+++ b/sysdeps/sparc/sparc32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SPARC32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile
index 2294da3..cee597b 100644
--- a/sysdeps/sparc/sparc64/Makefile
+++ b/sysdeps/sparc/sparc64/Makefile
@@ -1,5 +1,5 @@
# Makefile for SPARC 64-bit.
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
diff --git a/sysdeps/sparc/sparc64/add_n.S b/sysdeps/sparc/sparc64/add_n.S
index 0ddefdd..45bae47 100644
--- a/sysdeps/sparc/sparc64/add_n.S
+++ b/sysdeps/sparc/sparc64/add_n.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_add_n -- Add two limb vectors of the same length > 0 and
store sum in a third limb vector.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/addmul_1.S b/sysdeps/sparc/sparc64/addmul_1.S
index a7e3dd4..ac9457f 100644
--- a/sysdeps/sparc/sparc64/addmul_1.S
+++ b/sysdeps/sparc/sparc64/addmul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
add the product to a second limb vector.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/align-cpy.S b/sysdeps/sparc/sparc64/align-cpy.S
index ba3320a..c701717 100644
--- a/sysdeps/sparc/sparc64/align-cpy.S
+++ b/sysdeps/sparc/sparc64/align-cpy.S
@@ -1,6 +1,6 @@
/* Aligned copy routines specified by Sparc V9 ABI.
For 64-bit sparc.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/dl-irel.h b/sysdeps/sparc/sparc64/dl-irel.h
index bfe4de9..fb59705 100644
--- a/sysdeps/sparc/sparc64/dl-irel.h
+++ b/sysdeps/sparc/sparc64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
SPARC 64-bit version.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 7f55e7d..b1ccf23 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Sparc64 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/dl-plt.h b/sysdeps/sparc/sparc64/dl-plt.h
index 4143023..677ab6c 100644
--- a/sysdeps/sparc/sparc64/dl-plt.h
+++ b/sysdeps/sparc/sparc64/dl-plt.h
@@ -1,5 +1,5 @@
/* PLT fixups. Sparc 64-bit version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/dl-trampoline.S b/sysdeps/sparc/sparc64/dl-trampoline.S
index f2890e7..f989316 100644
--- a/sysdeps/sparc/sparc64/dl-trampoline.S
+++ b/sysdeps/sparc/sparc64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Sparc 64-bit version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c b/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
index 9ce3131..b9d98cc 100644
--- a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
+++ b/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Long double square root, sparc64 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
index 9cf0633..08181d0 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
@@ -1,5 +1,5 @@
/* ceil function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
index 5fe8683..fbaa3fc 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* ceil function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
index 6fa34b9..4b866ce 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
@@ -1,5 +1,5 @@
/* Float ceil function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
index ee3c55c..1bd8046 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Float ceil function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
index 89f3396..4927aaa 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
@@ -1,5 +1,5 @@
/* finite(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
index 2e90cf4..d786325 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
@@ -1,5 +1,5 @@
/* finite ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
index d81501b..c3028d6 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
@@ -1,5 +1,5 @@
/* finitef(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
index c5414c0..28fbca4 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
@@ -1,5 +1,5 @@
/* finitef ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
index 3991545..a0715ab 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
@@ -1,5 +1,5 @@
/* floor function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
index 9f60781..4c35d4d 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* floor function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
index 5a7619b..10a3e20 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
@@ -1,5 +1,5 @@
/* Float floor function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
index eb3d359..bebadfb 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Float floor function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
index 98495d3..73a5afa 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
@@ -1,5 +1,5 @@
/* fma function, sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
index cce2d3a..5febef3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
@@ -1,5 +1,5 @@
/* fmaf function, sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
index ef7346f..6519a0a 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
@@ -1,5 +1,5 @@
/* isinf(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
index 00c36b4..7289772 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
@@ -1,5 +1,5 @@
/* isinf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
index 0b46c52..8c8f26b 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
@@ -1,5 +1,5 @@
/* isinff(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
index 8d27723..1422274 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
@@ -1,5 +1,5 @@
/* isinff ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
index c92c3b6..d471ad3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
@@ -1,5 +1,5 @@
/* isnan(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
index 97d4356..fce42d3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
@@ -1,5 +1,5 @@
/* isnan ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
index 35fd5ee..20c7a49 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
@@ -1,5 +1,5 @@
/* isnanf(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
index 72c1fb6..ecf377e 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
@@ -1,5 +1,5 @@
/* isnanf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
index 70f375a..61a3e20 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
@@ -1,5 +1,5 @@
/* lrint(), sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
index aec5b98..5954d0b 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
@@ -1,5 +1,5 @@
/* lrint/llrint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
index 28715d0..23d193c 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
index 23f9302..be052f1 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
@@ -1,5 +1,5 @@
/* lrintf/llrintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
index 96d78e3..71c853a 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 vis3 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
index dc54170..bce43d7 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
index 22475e6..14da2d3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 vis3 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
index 2b3b84f..3b6de12 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* nearbyintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
index 84ce88f..570db50 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
index 0e9f520..1772afe 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* rint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
index d299692..a73138f 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
index 0bc125a..20c4a9e 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
index 0721ecd..47616f1 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
@@ -1,5 +1,5 @@
/* signbit(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
index 2566ed1..f7d0715 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
@@ -1,5 +1,5 @@
/* signbit ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
index aa989de..531ebae 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
@@ -1,5 +1,5 @@
/* signbitf(). sparc64 vis3 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
index df870bd..375a698 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
@@ -1,5 +1,5 @@
/* signbit ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
index fcc15eb..b32a8aa 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
@@ -1,5 +1,5 @@
/* trunc function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
index c8745ec..03ac70f 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* trunc function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
index 7d210d3..f90798a 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
@@ -1,5 +1,5 @@
/* Float trunc function, sparc64 vis3 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
index 7fc1def..4cb8a1f 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Float trunc function, sparc64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_finite.S b/sysdeps/sparc/sparc64/fpu/s_finite.S
index 53d0f2c..5ee9f44 100644
--- a/sysdeps/sparc/sparc64/fpu/s_finite.S
+++ b/sysdeps/sparc/sparc64/fpu/s_finite.S
@@ -1,5 +1,5 @@
/* finite(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_finitef.S b/sysdeps/sparc/sparc64/fpu/s_finitef.S
index 6e9c5d9..451dfa2 100644
--- a/sysdeps/sparc/sparc64/fpu/s_finitef.S
+++ b/sysdeps/sparc/sparc64/fpu/s_finitef.S
@@ -1,5 +1,5 @@
/* finitef(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinf.S b/sysdeps/sparc/sparc64/fpu/s_isinf.S
index 2d753ce..70d4d1d 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isinf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isinf.S
@@ -1,5 +1,5 @@
/* isinf(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinff.S b/sysdeps/sparc/sparc64/fpu/s_isinff.S
index 39abe7f..0a89dd3 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isinff.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isinff.S
@@ -1,5 +1,5 @@
/* isinff(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnan.S b/sysdeps/sparc/sparc64/fpu/s_isnan.S
index 89f3493..19a0601 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isnan.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isnan.S
@@ -1,5 +1,5 @@
/* isnan(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnanf.S b/sysdeps/sparc/sparc64/fpu/s_isnanf.S
index 9e739cc..48d605d 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isnanf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isnanf.S
@@ -1,5 +1,5 @@
/* isnanf(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrint.S b/sysdeps/sparc/sparc64/fpu/s_lrint.S
index 1071dda..7efb98b 100644
--- a/sysdeps/sparc/sparc64/fpu/s_lrint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_lrint.S
@@ -1,5 +1,5 @@
/* lrint(), sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrintf.S b/sysdeps/sparc/sparc64/fpu/s_lrintf.S
index 2f07928..018e087 100644
--- a/sysdeps/sparc/sparc64/fpu/s_lrintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_lrintf.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S b/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
index 2160d2b..5d5a77c 100644
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
index 016e05a..c9df457 100644
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_rint.S b/sysdeps/sparc/sparc64/fpu/s_rint.S
index 867064f..5244698 100644
--- a/sysdeps/sparc/sparc64/fpu/s_rint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_rint.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_rintf.S b/sysdeps/sparc/sparc64/fpu/s_rintf.S
index 1eb25aa..90aeb1f 100644
--- a/sysdeps/sparc/sparc64/fpu/s_rintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_rintf.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbit.S b/sysdeps/sparc/sparc64/fpu/s_signbit.S
index 7c92653..9634fac 100644
--- a/sysdeps/sparc/sparc64/fpu/s_signbit.S
+++ b/sysdeps/sparc/sparc64/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* signbit(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbitf.S b/sysdeps/sparc/sparc64/fpu/s_signbitf.S
index 5eff5cd..a777b5f 100644
--- a/sysdeps/sparc/sparc64/fpu/s_signbitf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_signbitf.S
@@ -1,5 +1,5 @@
/* signbitf(). sparc64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/hp-timing.h b/sysdeps/sparc/sparc64/hp-timing.h
index 7601e7c..e3e5130 100644
--- a/sysdeps/sparc/sparc64/hp-timing.h
+++ b/sysdeps/sparc/sparc64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparc64 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/jmpbuf-unwind.h b/sysdeps/sparc/sparc64/jmpbuf-unwind.h
index a3d1044..7bb886a 100644
--- a/sysdeps/sparc/sparc64/jmpbuf-unwind.h
+++ b/sysdeps/sparc/sparc64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/lshift.S b/sysdeps/sparc/sparc64/lshift.S
index 62814b4..b63436a 100644
--- a/sysdeps/sparc/sparc64/lshift.S
+++ b/sysdeps/sparc/sparc64/lshift.S
@@ -1,6 +1,6 @@
/* SPARC v9 __mpn_lshift --
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S
index 02a806c..8f23967 100644
--- a/sysdeps/sparc/sparc64/memchr.S
+++ b/sysdeps/sparc/sparc64/memchr.S
@@ -1,7 +1,7 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
than N.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/memcmp.S b/sysdeps/sparc/sparc64/memcmp.S
index a487512..f38aba9 100644
--- a/sysdeps/sparc/sparc64/memcmp.S
+++ b/sysdeps/sparc/sparc64/memcmp.S
@@ -1,6 +1,6 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/memcpy.S b/sysdeps/sparc/sparc64/memcpy.S
index e7bb390..6062033 100644
--- a/sysdeps/sparc/sparc64/memcpy.S
+++ b/sysdeps/sparc/sparc64/memcpy.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For UltraSPARC.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/memmove.S b/sysdeps/sparc/sparc64/memmove.S
index f14b09a..b42ecea 100644
--- a/sysdeps/sparc/sparc64/memmove.S
+++ b/sysdeps/sparc/sparc64/memmove.S
@@ -1,7 +1,7 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
For SPARC V9.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/memset.S b/sysdeps/sparc/sparc64/memset.S
index 68eaf43..8b7b4c5 100644
--- a/sysdeps/sparc/sparc64/memset.S
+++ b/sysdeps/sparc/sparc64/memset.S
@@ -1,6 +1,6 @@
/* Set a block of memory to some byte value.
For UltraSPARC.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/mul_1.S b/sysdeps/sparc/sparc64/mul_1.S
index 7c4f382..f843b34 100644
--- a/sysdeps/sparc/sparc64/mul_1.S
+++ b/sysdeps/sparc/sparc64/mul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
index 2f0ce80..0e6997d 100644
--- a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
! store sum in a third limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.c b/sysdeps/sparc/sparc64/multiarch/add_n.c
index 9b2ce33..fc73ea8 100644
--- a/sysdeps/sparc/sparc64/multiarch/add_n.c
+++ b/sysdeps/sparc/sparc64/multiarch/add_n.c
@@ -1,5 +1,5 @@
/* __mpn_add_n ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
index 234e319..c94d750 100644
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_addmul_1 -- Multiply a limb vector with a
! limb and add the result to a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.c b/sysdeps/sparc/sparc64/multiarch/addmul_1.c
index f389896..664a4c3 100644
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.c
@@ -1,5 +1,5 @@
/* __mpn_addmul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/sparc/sparc64/multiarch/dl-symbol-redir-ifunc.h
index eb5af08..12ff2a0 100644
--- a/sysdeps/sparc/sparc64/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/sparc/sparc64/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
index e2c3029..8305298 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. sparc version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
index 2873e0d..80aa5b5 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
@@ -1,6 +1,6 @@
/* Common definition for memcpy and mempcpy implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
index 8afab97..8366114 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memmove implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
index 5b509da..21ee6e6 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S b/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
index 39beaf6..375d2b3 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V M7.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
index fee4325..585ba8e 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
index 4038706..7e28a2d 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-2.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
index 4f64c8c..77ce195 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-4.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
index dcc6824..5f5f223 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC64 memcpy implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
index a60b957..aca2aa4 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For UltraSPARC-III.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.c b/sysdeps/sparc/sparc64/multiarch/memcpy.c
index c9f598b..f4d1850 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.c
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memmove.c b/sysdeps/sparc/sparc64/multiarch/memmove.c
index 5f1e946..5f4f481 100644
--- a/sysdeps/sparc/sparc64/multiarch/memmove.c
+++ b/sysdeps/sparc/sparc64/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/mempcpy.c b/sysdeps/sparc/sparc64/multiarch/mempcpy.c
index 5a7d486..dbf6892 100644
--- a/sysdeps/sparc/sparc64/multiarch/mempcpy.c
+++ b/sysdeps/sparc/sparc64/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
index 0dff4d8..3606213 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V Niagara.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
index 31fa53a..6eb7ca0 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V Niagara-4.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
index ec328c8..cf86880 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V M7.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S b/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
index caccd68..6cec420 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC64 memset implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.c b/sysdeps/sparc/sparc64/multiarch/memset.c
index f090e73..3ac5a89 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset.c
+++ b/sysdeps/sparc/sparc64/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
index a6c0788..d83bb72 100644
--- a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_mul_1 -- Multiply a limb vector with a single
! limb and store the product in a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.c b/sysdeps/sparc/sparc64/multiarch/mul_1.c
index 582db00..f277950 100644
--- a/sysdeps/sparc/sparc64/multiarch/mul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/mul_1.c
@@ -1,5 +1,5 @@
/* __mpn_mul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
index 7806265..c2bb0dc 100644
--- a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
! and store difference in a third limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.c b/sysdeps/sparc/sparc64/multiarch/sub_n.c
index 68f05d2..a1a473b 100644
--- a/sysdeps/sparc/sparc64/multiarch/sub_n.c
+++ b/sysdeps/sparc/sparc64/multiarch/sub_n.c
@@ -1,5 +1,5 @@
/* __mpn_sub_n ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
index e859ddf..f284c84 100644
--- a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_submul_1 -- Multiply a limb vector with a
! limb and subtract the result from a second limb vector.
!
-! Copyright (C) 2013-2024 Free Software Foundation, Inc.
+! Copyright (C) 2013-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.c b/sysdeps/sparc/sparc64/multiarch/submul_1.c
index e352936..889757e 100644
--- a/sysdeps/sparc/sparc64/multiarch/submul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/submul_1.c
@@ -1,5 +1,5 @@
/* __mpn_submul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/pthread_spin_lock.S b/sysdeps/sparc/sparc64/pthread_spin_lock.S
index 14e08f0..aa5747c 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/pthread_spin_trylock.S b/sysdeps/sparc/sparc64/pthread_spin_trylock.S
index 86b0dc8..a63ef4d 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_trylock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/pthread_spin_unlock.S b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
index 0993e5d..b621db5 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_unlock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/pthreaddef.h b/sysdeps/sparc/sparc64/pthreaddef.h
index dd20c2a..e89ceab 100644
--- a/sysdeps/sparc/sparc64/pthreaddef.h
+++ b/sysdeps/sparc/sparc64/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_add.c b/sysdeps/sparc/sparc64/qp_add.c
index 62cefc9..377dcf2 100644
--- a/sysdeps/sparc/sparc64/qp_add.c
+++ b/sysdeps/sparc/sparc64/qp_add.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) + (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_cmp.c b/sysdeps/sparc/sparc64/qp_cmp.c
index 86487f3..0a7f338 100644
--- a/sysdeps/sparc/sparc64/qp_cmp.c
+++ b/sysdeps/sparc/sparc64/qp_cmp.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Compare (*a) and (*b), return float condition code.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_cmpe.c b/sysdeps/sparc/sparc64/qp_cmpe.c
index cce9990..b0145fe 100644
--- a/sysdeps/sparc/sparc64/qp_cmpe.c
+++ b/sysdeps/sparc/sparc64/qp_cmpe.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Compare (*a) and (*b), return float condition code.
Signal exception (unless masked) if unordered.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_div.c b/sysdeps/sparc/sparc64/qp_div.c
index 66bc2a5..53a52a7 100644
--- a/sysdeps/sparc/sparc64/qp_div.c
+++ b/sysdeps/sparc/sparc64/qp_div.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) / (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_dtoq.c b/sysdeps/sparc/sparc64/qp_dtoq.c
index 8618f09..2c53351 100644
--- a/sysdeps/sparc/sparc64/qp_dtoq.c
+++ b/sysdeps/sparc/sparc64/qp_dtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_feq.c b/sysdeps/sparc/sparc64/qp_feq.c
index e15f41c..bc30e9b 100644
--- a/sysdeps/sparc/sparc64/qp_feq.c
+++ b/sysdeps/sparc/sparc64/qp_feq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) == (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_fge.c b/sysdeps/sparc/sparc64/qp_fge.c
index b51ca56..830bb67 100644
--- a/sysdeps/sparc/sparc64/qp_fge.c
+++ b/sysdeps/sparc/sparc64/qp_fge.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) >= (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_fgt.c b/sysdeps/sparc/sparc64/qp_fgt.c
index 392344b..09321bc 100644
--- a/sysdeps/sparc/sparc64/qp_fgt.c
+++ b/sysdeps/sparc/sparc64/qp_fgt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) > (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_fle.c b/sysdeps/sparc/sparc64/qp_fle.c
index b2d2faf..32fe4f0 100644
--- a/sysdeps/sparc/sparc64/qp_fle.c
+++ b/sysdeps/sparc/sparc64/qp_fle.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) <= (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_flt.c b/sysdeps/sparc/sparc64/qp_flt.c
index 44663ea..fe27566 100644
--- a/sysdeps/sparc/sparc64/qp_flt.c
+++ b/sysdeps/sparc/sparc64/qp_flt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) < (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_fne.c b/sysdeps/sparc/sparc64/qp_fne.c
index 644dd19..176ccf5 100644
--- a/sysdeps/sparc/sparc64/qp_fne.c
+++ b/sysdeps/sparc/sparc64/qp_fne.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) != (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_itoq.c b/sysdeps/sparc/sparc64/qp_itoq.c
index de53758..a36af54 100644
--- a/sysdeps/sparc/sparc64/qp_itoq.c
+++ b/sysdeps/sparc/sparc64/qp_itoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_mul.c b/sysdeps/sparc/sparc64/qp_mul.c
index 3159b5b..5a03ea2 100644
--- a/sysdeps/sparc/sparc64/qp_mul.c
+++ b/sysdeps/sparc/sparc64/qp_mul.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) * (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_neg.S b/sysdeps/sparc/sparc64/qp_neg.S
index 7797df4..10a47f4 100644
--- a/sysdeps/sparc/sparc64/qp_neg.S
+++ b/sysdeps/sparc/sparc64/qp_neg.S
@@ -1,6 +1,6 @@
/* Quad floating-point emulation.
(*c) = !(*a)
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtod.c b/sysdeps/sparc/sparc64/qp_qtod.c
index aafcc72..c4a8b15 100644
--- a/sysdeps/sparc/sparc64/qp_qtod.c
+++ b/sysdeps/sparc/sparc64/qp_qtod.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (double)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtoi.c b/sysdeps/sparc/sparc64/qp_qtoi.c
index 686b77c..780c06a 100644
--- a/sysdeps/sparc/sparc64/qp_qtoi.c
+++ b/sysdeps/sparc/sparc64/qp_qtoi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (int)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtos.c b/sysdeps/sparc/sparc64/qp_qtos.c
index 3e46bd5..2657699 100644
--- a/sysdeps/sparc/sparc64/qp_qtos.c
+++ b/sysdeps/sparc/sparc64/qp_qtos.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (float)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtoui.c b/sysdeps/sparc/sparc64/qp_qtoui.c
index b226db4..a2af945 100644
--- a/sysdeps/sparc/sparc64/qp_qtoui.c
+++ b/sysdeps/sparc/sparc64/qp_qtoui.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned int)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtoux.c b/sysdeps/sparc/sparc64/qp_qtoux.c
index 0c81d64..6fdc46d 100644
--- a/sysdeps/sparc/sparc64/qp_qtoux.c
+++ b/sysdeps/sparc/sparc64/qp_qtoux.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned long)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_qtox.c b/sysdeps/sparc/sparc64/qp_qtox.c
index 735d57b..99bcd41 100644
--- a/sysdeps/sparc/sparc64/qp_qtox.c
+++ b/sysdeps/sparc/sparc64/qp_qtox.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_sqrt.c b/sysdeps/sparc/sparc64/qp_sqrt.c
index becc5e0..d68c0dc 100644
--- a/sysdeps/sparc/sparc64/qp_sqrt.c
+++ b/sysdeps/sparc/sparc64/qp_sqrt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = sqrtl(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_stoq.c b/sysdeps/sparc/sparc64/qp_stoq.c
index fb4a2da..e8c3ad9 100644
--- a/sysdeps/sparc/sparc64/qp_stoq.c
+++ b/sysdeps/sparc/sparc64/qp_stoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_sub.c b/sysdeps/sparc/sparc64/qp_sub.c
index 6ca2b2a..db91e08 100644
--- a/sysdeps/sparc/sparc64/qp_sub.c
+++ b/sysdeps/sparc/sparc64/qp_sub.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) - (*b)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_uitoq.c b/sysdeps/sparc/sparc64/qp_uitoq.c
index 2cd089b..acdc4ef 100644
--- a/sysdeps/sparc/sparc64/qp_uitoq.c
+++ b/sysdeps/sparc/sparc64/qp_uitoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_util.c b/sysdeps/sparc/sparc64/qp_util.c
index 3a81bc7..cb2f14d 100644
--- a/sysdeps/sparc/sparc64/qp_util.c
+++ b/sysdeps/sparc/sparc64/qp_util.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Helper routine for _Qp_* routines.
Simulate exceptions using double arithmetics.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_uxtoq.c b/sysdeps/sparc/sparc64/qp_uxtoq.c
index 2cc1502..4067b81 100644
--- a/sysdeps/sparc/sparc64/qp_uxtoq.c
+++ b/sysdeps/sparc/sparc64/qp_uxtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/qp_xtoq.c b/sysdeps/sparc/sparc64/qp_xtoq.c
index a4bd44b..f68f51c 100644
--- a/sysdeps/sparc/sparc64/qp_xtoq.c
+++ b/sysdeps/sparc/sparc64/qp_xtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(*a)
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/rawmemchr.S b/sysdeps/sparc/sparc64/rawmemchr.S
index 6f37847..08538cd 100644
--- a/sysdeps/sparc/sparc64/rawmemchr.S
+++ b/sysdeps/sparc/sparc64/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v9.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/rshift.S b/sysdeps/sparc/sparc64/rshift.S
index cbe1e6c..62b0026 100644
--- a/sysdeps/sparc/sparc64/rshift.S
+++ b/sysdeps/sparc/sparc64/rshift.S
@@ -1,6 +1,6 @@
/* SPARC v9 __mpn_rshift --
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/sfp-machine.h b/sysdeps/sparc/sparc64/sfp-machine.h
index a08560d..74f56c4 100644
--- a/sysdeps/sparc/sparc64/sfp-machine.h
+++ b/sysdeps/sparc/sparc64/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc64 userland (_Q_* and _Qp_*) version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S
index a1527d2..08e1e77 100644
--- a/sysdeps/sparc/sparc64/start.S
+++ b/sysdeps/sparc/sparc64/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf64-sparc
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -74,6 +74,10 @@ _start:
be NULL. */
mov %g1, %o5
+ /* Provide the highest stack address to update the __libc_stack_end (used
+ to enable executable stacks if required). */
+ stx %sp, [%sp+STACK_BIAS+22*8]
+
/* Let libc do the rest of the initialization, and call main. */
call __libc_start_main
nop
diff --git a/sysdeps/sparc/sparc64/stpcpy.S b/sysdeps/sparc/sparc64/stpcpy.S
index d990179..0249208 100644
--- a/sysdeps/sparc/sparc64/stpcpy.S
+++ b/sysdeps/sparc/sparc64/stpcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/stpncpy.S b/sysdeps/sparc/sparc64/stpncpy.S
index c802488..20427ad 100644
--- a/sysdeps/sparc/sparc64/stpncpy.S
+++ b/sysdeps/sparc/sparc64/stpncpy.S
@@ -2,7 +2,7 @@
SRC to DEST, returning the address of the terminating '\0' in
DEST, if any, or else DEST + N.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strcat.S b/sysdeps/sparc/sparc64/strcat.S
index ec585ff..72eadbe 100644
--- a/sysdeps/sparc/sparc64/strcat.S
+++ b/sysdeps/sparc/sparc64/strcat.S
@@ -1,6 +1,6 @@
/* strcat (dest, src) -- Append SRC on the end of DEST.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strchr.S b/sysdeps/sparc/sparc64/strchr.S
index cbd188b..ec30b4e 100644
--- a/sysdeps/sparc/sparc64/strchr.S
+++ b/sysdeps/sparc/sparc64/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strcmp.S b/sysdeps/sparc/sparc64/strcmp.S
index ee4a57f..3e8a4ee 100644
--- a/sysdeps/sparc/sparc64/strcmp.S
+++ b/sysdeps/sparc/sparc64/strcmp.S
@@ -1,6 +1,6 @@
/* Compare two strings for differences.
For SPARC v9.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strcpy.S b/sysdeps/sparc/sparc64/strcpy.S
index 3b40c1e..96475d5 100644
--- a/sysdeps/sparc/sparc64/strcpy.S
+++ b/sysdeps/sparc/sparc64/strcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning DEST.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strcspn.S b/sysdeps/sparc/sparc64/strcspn.S
index 859d29e..6acdae7 100644
--- a/sysdeps/sparc/sparc64/strcspn.S
+++ b/sysdeps/sparc/sparc64/strcspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For SPARC v9.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strlen.S b/sysdeps/sparc/sparc64/strlen.S
index ac71277..819380d 100644
--- a/sysdeps/sparc/sparc64/strlen.S
+++ b/sysdeps/sparc/sparc64/strlen.S
@@ -1,5 +1,5 @@
/* Determine the length of a string. For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strncmp.S b/sysdeps/sparc/sparc64/strncmp.S
index 2d17f2d..a0fe9b7 100644
--- a/sysdeps/sparc/sparc64/strncmp.S
+++ b/sysdeps/sparc/sparc64/strncmp.S
@@ -2,7 +2,7 @@
equal to or greater than zero if S1 is lexicographically less than,
equal to or greater than S2.
For SPARC v9.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strncpy.S b/sysdeps/sparc/sparc64/strncpy.S
index 423efe0..1ca9bc3 100644
--- a/sysdeps/sparc/sparc64/strncpy.S
+++ b/sysdeps/sparc/sparc64/strncpy.S
@@ -2,7 +2,7 @@
null-terminated string from SRC to DST. If SRC does not cover all of
COUNT, the balance is zeroed.
For SPARC v9.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strpbrk.S b/sysdeps/sparc/sparc64/strpbrk.S
index afb832f..19456ea 100644
--- a/sysdeps/sparc/sparc64/strpbrk.S
+++ b/sysdeps/sparc/sparc64/strpbrk.S
@@ -1,7 +1,7 @@
/* strpbrk (s, accept) -- Find the first occurrence in S of any character in
ACCEPT.
For SPARC v9.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/strspn.S b/sysdeps/sparc/sparc64/strspn.S
index 873f95f..e61f611 100644
--- a/sysdeps/sparc/sparc64/strspn.S
+++ b/sysdeps/sparc/sparc64/strspn.S
@@ -1,7 +1,7 @@
/* strspn (str, ss) -- Return the length of the maximum initial segment
of S which contains only characters in ACCEPT.
For SPARC v9.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sparc64/sub_n.S b/sysdeps/sparc/sparc64/sub_n.S
index 8b05328..cc1cce2 100644
--- a/sysdeps/sparc/sparc64/sub_n.S
+++ b/sysdeps/sparc/sparc64/sub_n.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
and store difference in a third limb vector.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/submul_1.S b/sysdeps/sparc/sparc64/submul_1.S
index 3196afe..451cbd6 100644
--- a/sysdeps/sparc/sparc64/submul_1.S
+++ b/sysdeps/sparc/sparc64/submul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_submul_1 -- Multiply a limb vector with a single limb and
subtract the product from a second limb vector.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/sparc/sparc64/tst-audit.h b/sysdeps/sparc/sparc64/tst-audit.h
index d22b419..00221b1 100644
--- a/sysdeps/sparc/sparc64/tst-audit.h
+++ b/sysdeps/sparc/sparc64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SPARC64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/sparc/stackinfo.h b/sysdeps/sparc/stackinfo.h
index f1e706b..23a74ed 100644
--- a/sysdeps/sparc/stackinfo.h
+++ b/sysdeps/sparc/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/sysdep.h b/sysdeps/sparc/sysdep.h
index 44a6952..8381b05 100644
--- a/sysdeps/sparc/sysdep.h
+++ b/sysdeps/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/riscv/rvd/s_copysign.c b/sysdeps/sparc/thread_pointer.h
index 6c0c946..286adbd 100644
--- a/sysdeps/riscv/rvd/s_copysign.c
+++ b/sysdeps/sparc/thread_pointer.h
@@ -1,5 +1,5 @@
-/* Copy sign bit between floating-point values. RISC-V version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* __thread_pointer definition. sparc version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,14 +16,15 @@
License along with the GNU C Library. If not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-double.h>
+#ifndef _SYS_THREAD_POINTER_H
+#define _SYS_THREAD_POINTER_H
-double
-__copysign (double x, double y)
+static inline void *
+__thread_pointer (void)
{
- asm ("fsgnj.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
+ void *__thread_register;
+ __asm__ ("mov %%g7, %0" : "=r" (__thread_register));
+ return __thread_register;
}
-libm_alias_double (__copysign, copysign)
+
+#endif /* _SYS_THREAD_POINTER_H */
diff --git a/sysdeps/sparc/unwind-arch.h b/sysdeps/sparc/unwind-arch.h
index a12a967..d93e460 100644
--- a/sysdeps/sparc/unwind-arch.h
+++ b/sysdeps/sparc/unwind-arch.h
@@ -1,5 +1,5 @@
/* Dynamic loading of the libgcc unwinder. SPARC customization.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 209f7d7..c90c905 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2024 Free Software Foundation, Inc.
+# Copyright (C) 1991-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S
index c029267..29c92b8 100644
--- a/sysdeps/unix/alpha/sysdep.S
+++ b/sysdeps/unix/alpha/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/arm/sysdep.S b/sysdeps/unix/arm/sysdep.S
index 5333ff8..8b77407 100644
--- a/sysdeps/unix/arm/sysdep.S
+++ b/sysdeps/unix/arm/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/arm/sysdep.h b/sysdeps/unix/arm/sysdep.h
index c0ab28a..814d16f 100644
--- a/sysdeps/unix/arm/sysdep.h
+++ b/sysdeps/unix/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/bits/sockaddr.h b/sysdeps/unix/bsd/bits/sockaddr.h
index 9e3b143..dff6067 100644
--- a/sysdeps/unix/bsd/bits/sockaddr.h
+++ b/sysdeps/unix/bsd/bits/sockaddr.h
@@ -1,5 +1,5 @@
/* Definition of struct sockaddr_* common members and sizes, BSD version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c
index bc41172..709b4e9 100644
--- a/sysdeps/unix/bsd/getpt.c
+++ b/sysdeps/unix/bsd/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/gtty.c b/sysdeps/unix/bsd/gtty.c
index 5a1bf5f..e30f5c8 100644
--- a/sysdeps/unix/bsd/gtty.c
+++ b/sysdeps/unix/bsd/gtty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/stty.c b/sysdeps/unix/bsd/stty.c
index aee0647..e7b400c 100644
--- a/sysdeps/unix/bsd/stty.c
+++ b/sysdeps/unix/bsd/stty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcdrain.c b/sysdeps/unix/bsd/tcdrain.c
index 6725b7c..0a99034 100644
--- a/sysdeps/unix/bsd/tcdrain.c
+++ b/sysdeps/unix/bsd/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcflow.c b/sysdeps/unix/bsd/tcflow.c
index 45981eb..80ac1fb 100644
--- a/sysdeps/unix/bsd/tcflow.c
+++ b/sysdeps/unix/bsd/tcflow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcflush.c b/sysdeps/unix/bsd/tcflush.c
index 148e315..288ecbd 100644
--- a/sysdeps/unix/bsd/tcflush.c
+++ b/sysdeps/unix/bsd/tcflush.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcgetattr.c b/sysdeps/unix/bsd/tcgetattr.c
index af72e66..c5e0f6b 100644
--- a/sysdeps/unix/bsd/tcgetattr.c
+++ b/sysdeps/unix/bsd/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcgetpgrp.c b/sysdeps/unix/bsd/tcgetpgrp.c
index 2f63b59..b361863 100644
--- a/sysdeps/unix/bsd/tcgetpgrp.c
+++ b/sysdeps/unix/bsd/tcgetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcsendbrk.c b/sysdeps/unix/bsd/tcsendbrk.c
index c75a639..c7016df 100644
--- a/sysdeps/unix/bsd/tcsendbrk.c
+++ b/sysdeps/unix/bsd/tcsendbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/tcsetattr.c b/sysdeps/unix/bsd/tcsetattr.c
index 9a19996..8693d94 100644
--- a/sysdeps/unix/bsd/tcsetattr.c
+++ b/sysdeps/unix/bsd/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@
/* Set the state of FD to *TERMIOS_P. */
int
-tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
+__tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
{
struct termios myt;
@@ -56,4 +56,6 @@ tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
return __ioctl (fd, TIOCSETAF, termios_p);
}
}
-libc_hidden_def (tcsetattr)
+
+libc_hidden_def (__tcsetattr)
+weak_alias (__tcsetattr, tcsetattr)
diff --git a/sysdeps/unix/bsd/tcsetpgrp.c b/sysdeps/unix/bsd/tcsetpgrp.c
index ee30d54..efc9982 100644
--- a/sysdeps/unix/bsd/tcsetpgrp.c
+++ b/sysdeps/unix/bsd/tcsetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/ualarm.c b/sysdeps/unix/bsd/ualarm.c
index c771b50..ee91bc4 100644
--- a/sysdeps/unix/bsd/ualarm.c
+++ b/sysdeps/unix/bsd/ualarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/unlockpt.c b/sysdeps/unix/bsd/unlockpt.c
index 8f6c406..b4f84a5 100644
--- a/sysdeps/unix/bsd/unlockpt.c
+++ b/sysdeps/unix/bsd/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/get_child_max.c b/sysdeps/unix/get_child_max.c
index fed1132..6a85451 100644
--- a/sysdeps/unix/get_child_max.c
+++ b/sysdeps/unix/get_child_max.c
@@ -1,5 +1,5 @@
/* Get POSIX {CHILD_MAX} run-time limit value. Unix version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/getlogin.c b/sysdeps/unix/getlogin.c
index 4a7fc03..e15ecd7 100644
--- a/sysdeps/unix/getlogin.c
+++ b/sysdeps/unix/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index 77281f8..1dbd424 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -1,5 +1,5 @@
/* Reentrant function to return the current login name. Unix version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/getpagesize.c b/sysdeps/unix/getpagesize.c
index 7ed7715..4c83db4 100644
--- a/sysdeps/unix/getpagesize.c
+++ b/sysdeps/unix/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/grantpt.c b/sysdeps/unix/grantpt.c
index 6844c5a..ceb07ad 100644
--- a/sysdeps/unix/grantpt.c
+++ b/sysdeps/unix/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/i386/sysdep.h b/sysdeps/unix/i386/sysdep.h
index fde1e5c..e58f841 100644
--- a/sysdeps/unix/i386/sysdep.h
+++ b/sysdeps/unix/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/ifreq.c b/sysdeps/unix/ifreq.c
index 2adcaf0..6ae4590 100644
--- a/sysdeps/unix/ifreq.c
+++ b/sysdeps/unix/ifreq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/mips/mips32/sysdep.h b/sysdeps/unix/mips/mips32/sysdep.h
index c515b94..e09e4be 100644
--- a/sysdeps/unix/mips/mips32/sysdep.h
+++ b/sysdeps/unix/mips/mips32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/mips/mips64/sysdep.h b/sysdeps/unix/mips/mips64/sysdep.h
index 6565b84..2065693 100644
--- a/sysdeps/unix/mips/mips64/sysdep.h
+++ b/sysdeps/unix/mips/mips64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/mips/sysdep.S b/sysdeps/unix/mips/sysdep.S
index d1fe6e7..08868dd 100644
--- a/sysdeps/unix/mips/sysdep.S
+++ b/sysdeps/unix/mips/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h
index d1e0460..5f7706b 100644
--- a/sysdeps/unix/mips/sysdep.h
+++ b/sysdeps/unix/mips/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/powerpc/sysdep.h b/sysdeps/unix/powerpc/sysdep.h
index 947efd8..a580834 100644
--- a/sysdeps/unix/powerpc/sysdep.h
+++ b/sysdeps/unix/powerpc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sh/sysdep.S b/sysdeps/unix/sh/sysdep.S
index 93a23ae..4e3a65e 100644
--- a/sysdeps/unix/sh/sysdep.S
+++ b/sysdeps/unix/sh/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sh/sysdep.h b/sysdeps/unix/sh/sysdep.h
index 83f641d..28cb75b 100644
--- a/sysdeps/unix/sh/sysdep.h
+++ b/sysdeps/unix/sh/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sockatmark.c b/sysdeps/unix/sockatmark.c
index 578d2de..122574a 100644
--- a/sysdeps/unix/sockatmark.c
+++ b/sysdeps/unix/sockatmark.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/syscall-template.S b/sysdeps/unix/syscall-template.S
index 49b9a79..046e39c 100644
--- a/sysdeps/unix/syscall-template.S
+++ b/sysdeps/unix/syscall-template.S
@@ -1,5 +1,5 @@
/* Assembly code template for system call stubs.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/syscall.S b/sysdeps/unix/syscall.S
index 472929e..484e10a 100644
--- a/sysdeps/unix/syscall.S
+++ b/sysdeps/unix/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysdep.h b/sysdeps/unix/sysdep.h
index a19e841..2cc9872 100644
--- a/sysdeps/unix/sysdep.h
+++ b/sysdeps/unix/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,9 @@
#define SYSCALL__(name, args) PSEUDO (__##name, name, args)
#define SYSCALL(name, args) PSEUDO (name, name, args)
+#ifndef __ASSEMBLER__
+# include <errno.h>
+
#define __SYSCALL_CONCAT_X(a,b) a##b
#define __SYSCALL_CONCAT(a,b) __SYSCALL_CONCAT_X (a, b)
@@ -108,42 +111,148 @@
#define INLINE_SYSCALL_CALL(...) \
__INLINE_SYSCALL_DISP (__INLINE_SYSCALL, __VA_ARGS__)
-#if IS_IN (rtld)
-/* All cancellation points are compiled out in the dynamic loader. */
-# define NO_SYSCALL_CANCEL_CHECKING 1
+#define __INTERNAL_SYSCALL_NCS0(name) \
+ INTERNAL_SYSCALL_NCS (name, 0)
+#define __INTERNAL_SYSCALL_NCS1(name, a1) \
+ INTERNAL_SYSCALL_NCS (name, 1, a1)
+#define __INTERNAL_SYSCALL_NCS2(name, a1, a2) \
+ INTERNAL_SYSCALL_NCS (name, 2, a1, a2)
+#define __INTERNAL_SYSCALL_NCS3(name, a1, a2, a3) \
+ INTERNAL_SYSCALL_NCS (name, 3, a1, a2, a3)
+#define __INTERNAL_SYSCALL_NCS4(name, a1, a2, a3, a4) \
+ INTERNAL_SYSCALL_NCS (name, 4, a1, a2, a3, a4)
+#define __INTERNAL_SYSCALL_NCS5(name, a1, a2, a3, a4, a5) \
+ INTERNAL_SYSCALL_NCS (name, 5, a1, a2, a3, a4, a5)
+#define __INTERNAL_SYSCALL_NCS6(name, a1, a2, a3, a4, a5, a6) \
+ INTERNAL_SYSCALL_NCS (name, 6, a1, a2, a3, a4, a5, a6)
+#define __INTERNAL_SYSCALL_NCS7(name, a1, a2, a3, a4, a5, a6, a7) \
+ INTERNAL_SYSCALL_NCS (name, 7, a1, a2, a3, a4, a5, a6, a7)
+
+/* Issue a syscall defined by syscall number plus any other argument required.
+ It is similar to INTERNAL_SYSCALL_NCS macro, but without the need to pass
+ the expected argument number as third parameter. */
+#define INTERNAL_SYSCALL_NCS_CALL(...) \
+ __INTERNAL_SYSCALL_DISP (__INTERNAL_SYSCALL_NCS, __VA_ARGS__)
+
+/* Cancellation macros. */
+#include <syscall_types.h>
+
+/* Adjust both the __syscall_cancel and the SYSCALL_CANCEL macro to support
+ 7 arguments instead of default 6 (curently only mip32). It avoid add
+ the requirement to each architecture to support 7 argument macros
+ {INTERNAL,INLINE}_SYSCALL. */
+#ifdef HAVE_CANCELABLE_SYSCALL_WITH_7_ARGS
+# define __SYSCALL_CANCEL7_ARG_DEF __syscall_arg_t a7,
+# define __SYSCALL_CANCEL7_ARCH_ARG_DEF ,__syscall_arg_t a7
+# define __SYSCALL_CANCEL7_ARG 0,
+# define __SYSCALL_CANCEL7_ARG7 a7,
+# define __SYSCALL_CANCEL7_ARCH_ARG7 , a7
#else
-# define NO_SYSCALL_CANCEL_CHECKING SINGLE_THREAD_P
+# define __SYSCALL_CANCEL7_ARG_DEF
+# define __SYSCALL_CANCEL7_ARCH_ARG_DEF
+# define __SYSCALL_CANCEL7_ARG
+# define __SYSCALL_CANCEL7_ARG7
+# define __SYSCALL_CANCEL7_ARCH_ARG7
#endif
+long int __internal_syscall_cancel (__syscall_arg_t a1, __syscall_arg_t a2,
+ __syscall_arg_t a3, __syscall_arg_t a4,
+ __syscall_arg_t a5, __syscall_arg_t a6,
+ __SYSCALL_CANCEL7_ARG_DEF
+ __syscall_arg_t nr) attribute_hidden;
-#define SYSCALL_CANCEL(...) \
- ({ \
- long int sc_ret; \
- if (NO_SYSCALL_CANCEL_CHECKING) \
- sc_ret = INLINE_SYSCALL_CALL (__VA_ARGS__); \
- else \
- { \
- int sc_cancel_oldtype = LIBC_CANCEL_ASYNC (); \
- sc_ret = INLINE_SYSCALL_CALL (__VA_ARGS__); \
- LIBC_CANCEL_RESET (sc_cancel_oldtype); \
- } \
- sc_ret; \
- })
+long int __syscall_cancel (__syscall_arg_t arg1, __syscall_arg_t arg2,
+ __syscall_arg_t arg3, __syscall_arg_t arg4,
+ __syscall_arg_t arg5, __syscall_arg_t arg6,
+ __SYSCALL_CANCEL7_ARG_DEF
+ __syscall_arg_t nr) attribute_hidden;
-/* Issue a syscall defined by syscall number plus any other argument
- required. Any error will be returned unmodified (including errno). */
-#define INTERNAL_SYSCALL_CANCEL(...) \
- ({ \
- long int sc_ret; \
- if (NO_SYSCALL_CANCEL_CHECKING) \
- sc_ret = INTERNAL_SYSCALL_CALL (__VA_ARGS__); \
- else \
- { \
- int sc_cancel_oldtype = LIBC_CANCEL_ASYNC (); \
- sc_ret = INTERNAL_SYSCALL_CALL (__VA_ARGS__); \
- LIBC_CANCEL_RESET (sc_cancel_oldtype); \
- } \
- sc_ret; \
- })
+#define __SYSCALL_CANCEL0(name) \
+ __syscall_cancel (0, 0, 0, 0, 0, 0, __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL1(name, a1) \
+ __syscall_cancel (__SSC (a1), 0, 0, 0, 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL2(name, a1, a2) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), 0, 0, 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL3(name, a1, a2, a3) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), 0, 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL4(name, a1, a2, a3, a4) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), \
+ __SSC(a4), 0, 0, __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL5(name, a1, a2, a3, a4, a5) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), __SSC(a4), \
+ __SSC (a5), 0, __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __SYSCALL_CANCEL6(name, a1, a2, a3, a4, a5, a6) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), __SSC (a4), \
+ __SSC (a5), __SSC (a6), __SYSCALL_CANCEL7_ARG \
+ __NR_##name)
+#define __SYSCALL_CANCEL7(name, a1, a2, a3, a4, a5, a6, a7) \
+ __syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), __SSC (a4), \
+ __SSC (a5), __SSC (a6), __SSC (a7), __NR_##name)
+
+#define __SYSCALL_CANCEL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
+#define __SYSCALL_CANCEL_NARGS(...) \
+ __SYSCALL_CANCEL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,)
+#define __SYSCALL_CANCEL_CONCAT_X(a,b) a##b
+#define __SYSCALL_CANCEL_CONCAT(a,b) __SYSCALL_CANCEL_CONCAT_X (a, b)
+#define __SYSCALL_CANCEL_DISP(b,...) \
+ __SYSCALL_CANCEL_CONCAT (b,__SYSCALL_CANCEL_NARGS(__VA_ARGS__))(__VA_ARGS__)
+
+/* Issue a cancellable syscall defined first argument plus any other argument
+ required. If and error occurs its value, the macro returns -1 and sets
+ errno accordingly. */
+#define __SYSCALL_CANCEL_CALL(...) \
+ __SYSCALL_CANCEL_DISP (__SYSCALL_CANCEL, __VA_ARGS__)
+
+#define __INTERNAL_SYSCALL_CANCEL0(name) \
+ __internal_syscall_cancel (0, 0, 0, 0, 0, 0, __SYSCALL_CANCEL7_ARG \
+ __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL1(name, a1) \
+ __internal_syscall_cancel (__SSC (a1), 0, 0, 0, 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL2(name, a1, a2) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), 0, 0, 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL3(name, a1, a2, a3) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), 0, \
+ 0, 0, __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL4(name, a1, a2, a3, a4) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), \
+ __SSC(a4), 0, 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL5(name, a1, a2, a3, a4, a5) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), \
+ __SSC(a4), __SSC (a5), 0, \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL6(name, a1, a2, a3, a4, a5, a6) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), \
+ __SSC (a4), __SSC (a5), __SSC (a6), \
+ __SYSCALL_CANCEL7_ARG __NR_##name)
+#define __INTERNAL_SYSCALL_CANCEL7(name, a1, a2, a3, a4, a5, a6, a7) \
+ __internal_syscall_cancel (__SSC (a1), __SSC (a2), __SSC (a3), \
+ __SSC (a4), __SSC (a5), __SSC (a6), \
+ __SSC (a7), __NR_##name)
+
+/* Issue a cancellable syscall defined by syscall number NAME plus any other
+ argument required. If an error occurs its value is returned as an negative
+ number unmodified and errno is not set. */
+#define __INTERNAL_SYSCALL_CANCEL_CALL(...) \
+ __SYSCALL_CANCEL_DISP (__INTERNAL_SYSCALL_CANCEL, __VA_ARGS__)
+
+#if IS_IN (rtld)
+/* The loader does not need to handle thread cancellation, use direct
+ syscall instead. */
+# define INTERNAL_SYSCALL_CANCEL(...) INTERNAL_SYSCALL_CALL(__VA_ARGS__)
+# define SYSCALL_CANCEL(...) INLINE_SYSCALL_CALL (__VA_ARGS__)
+#else
+# define INTERNAL_SYSCALL_CANCEL(...) \
+ __INTERNAL_SYSCALL_CANCEL_CALL (__VA_ARGS__)
+# define SYSCALL_CANCEL(...) \
+ __SYSCALL_CANCEL_CALL (__VA_ARGS__)
+#endif
+
+#endif /* __ASSEMBLER__ */
/* Machine-dependent sysdep.h files are expected to define the macro
PSEUDO (function_name, syscall_name) to emit assembly code to define the
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 59998c7..0aec783 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -95,6 +95,8 @@ sysdep_routines += \
process_vm_writev \
pselect32 \
readahead \
+ sched_getattr \
+ sched_setattr \
setfsgid \
setfsuid \
setvmaname \
@@ -149,15 +151,6 @@ sysdep_headers += \
bits/struct_stat.h \
bits/struct_stat_time64_helper.h \
bits/syscall.h \
- bits/termios-baud.h \
- bits/termios-c_cc.h \
- bits/termios-c_cflag.h \
- bits/termios-c_iflag.h \
- bits/termios-c_lflag.h \
- bits/termios-c_oflag.h \
- bits/termios-misc.h \
- bits/termios-struct.h \
- bits/termios-tcflow.h \
bits/timerfd.h \
bits/types/struct_msqid64_ds.h \
bits/types/struct_msqid64_ds_helper.h \
@@ -224,9 +217,13 @@ tests += \
tst-process_mrelease \
tst-quota \
tst-rlimit-infinity \
+ tst-sched-affinity-inheritance \
+ tst-sched_setattr \
+ tst-sched_setattr-thread \
tst-scm_rights \
tst-sigtimedwait \
tst-sync_file_range \
+ tst-syscall-restart \
tst-sysconf-iov_max \
tst-sysvmsg-linux \
tst-sysvsem-linux \
@@ -263,6 +260,11 @@ tests-internal += \
tst-rseq-disable \
# tests-internal
+tests-static += \
+ tst-rseq-disable-static \
+ tst-rseq-static \
+ # tests-static
+
tests-time64 += \
tst-adjtimex-time64 \
tst-clock_adjtime-time64 \
@@ -395,10 +397,41 @@ $(objpfx)tst-mount-compile.out: ../sysdeps/unix/sysv/linux/tst-mount-compile.py
< /dev/null > $@ 2>&1; $(evaluate-test)
$(objpfx)tst-mount-compile.out: $(sysdeps-linux-python-deps)
+tests-special += \
+ $(objpfx)tst-sched-consts.out \
+ # tests-special
+$(objpfx)tst-sched-consts.out: ../sysdeps/unix/sysv/linux/tst-sched-consts.py
+ $(sysdeps-linux-python) \
+ ../sysdeps/unix/sysv/linux/tst-sched-consts.py \
+ $(sysdeps-linux-python-cc) \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+$(objpfx)tst-sched-consts.out: $(sysdeps-linux-python-deps)
+
tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
+tst-rseq-disable-static-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
endif # $(subdir) == misc
+ifeq ($(subdir),termios)
+sysdep_headers += \
+ bits/termios-c_cc.h \
+ bits/termios-c_cflag.h \
+ bits/termios-c_iflag.h \
+ bits/termios-c_lflag.h \
+ bits/termios-c_oflag.h \
+ bits/termios-cbaud.h \
+ bits/termios-misc.h \
+ bits/termios-struct.h \
+ bits/termios-tcflow.h \
+ # sysdep_headers
+
+gen-as-const-headers += termios-kernel-consts.sym
+
+tests += \
+ tst-termios-linux \
+ # tests
+endif
+
ifeq ($(subdir),time)
sysdep_headers += \
bits/timex.h \
@@ -484,12 +517,6 @@ sysdep_headers += \
# sysdep_headers
endif
-ifeq ($(subdir),termios)
-sysdep_headers += \
- termio.h \
- # sysdep_headers
-endif
-
ifeq ($(subdir),posix)
sysdep_headers += \
bits/initspin.h \
@@ -587,6 +614,7 @@ endif
ifeq ($(subdir),io)
sysdep_routines += \
close_nocancel \
+ close_nocancel_nostatus \
fallocate \
fallocate64 \
fcntl_nocancel \
@@ -638,7 +666,29 @@ install-bin += \
# install-bin
$(objpfx)pldd: $(objpfx)xmalloc.o
+
+tests += tst-rseq-tls-range tst-rseq-tls-range-4096
+tests-static += tst-rseq-tls-range-static tst-rseq-tls-range-4096-static
+modules-names += tst-rseq-tls-range-mod
+CFLAGS-tst-rseq-tls-range.c += -DMAIN_TLS_ALIGN=4
+CFLAGS-tst-rseq-tls-range-4096.c += -DMAIN_TLS_ALIGN=4096
+CFLAGS-tst-rseq-tls-range-static.c += -DMAIN_TLS_ALIGN=4
+CFLAGS-tst-rseq-tls-range-4096-static.c += -DMAIN_TLS_ALIGN=4096
+$(objpfx)tst-rseq-tls-range.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-4096.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-static.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-4096-static.out: $(objpfx)tst-rseq-tls-range-mod.so
+tst-rseq-tls-range-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)
+tst-rseq-tls-range-4096-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)
+
+test-internal-extras += tst-nolink-libc
+ifeq ($(run-built-tests),yes)
+tests-special += \
+ $(objpfx)tst-nolink-libc-1.out \
+ $(objpfx)tst-nolink-libc-2.out \
+ # tests-special
endif
+endif # $(subdir) == elf
ifeq ($(subdir),rt)
CFLAGS-mq_send.c += -fexceptions
@@ -654,6 +704,7 @@ ifeq ($(subdir),nptl)
tests += \
tst-align-clone \
tst-getpid1 \
+ tst-sem_getvalue-affinity \
# tests
# tst-rseq-nptl is an internal test because it requires a definition of
@@ -661,4 +712,8 @@ tests += \
tests-internal += \
tst-rseq-nptl \
# tests-internal
+
+tests-static += \
+ tst-rseq-nptl-static \
+ # tests-static
endif
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 268ba1b..585dec7 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -328,6 +328,17 @@ libc {
posix_spawnattr_getcgroup_np;
posix_spawnattr_setcgroup_np;
}
+ GLIBC_2.41 {
+ sched_getattr;
+ sched_setattr;
+ }
+ GLIBC_2.42 {
+ cfgetospeed;
+ cfgetispeed;
+ cfsetospeed;
+ cfsetispeed;
+ cfsetspeed;
+ }
GLIBC_PRIVATE {
# functions used in other libraries
__syscall_rt_sigqueueinfo;
@@ -335,6 +346,7 @@ libc {
__read_nocancel;
__pread64_nocancel;
__close_nocancel;
+ __close_nocancel_nostatus;
__sigtimedwait;
# functions used by nscd
__netlink_assert_response;
@@ -356,7 +368,4 @@ ld {
__rseq_offset;
__rseq_size;
}
- GLIBC_PRIVATE {
- __nptl_change_stack_perm;
- }
}
diff --git a/sysdeps/unix/sysv/linux/____longjmp_chk.c b/sysdeps/unix/sysv/linux/____longjmp_chk.c
index 3c66a46..f3725db 100644
--- a/sysdeps/unix/sysv/linux/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/____longjmp_chk.c
@@ -1,5 +1,5 @@
/* longjmp fortify implementation. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/_exit.c b/sysdeps/unix/sysv/linux/_exit.c
index 1e39923..fcca24b 100644
--- a/sysdeps/unix/sysv/linux/_exit.c
+++ b/sysdeps/unix/sysv/linux/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile
index 40b9a2e..15a2b44 100644
--- a/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -1,6 +1,149 @@
+ifeq ($(subdir),elf)
+tests += \
+ tst-tlsdesc-pac \
+ # tests
+modules-names += \
+ tst-tlsdesc-pac-mod \
+ # modules-names
+
+LDFLAGS-tst-tlsdesc-pac = -rdynamic
+
+$(objpfx)tst-tlsdesc-pac.out: $(objpfx)tst-tlsdesc-pac-mod.so
+endif
+
ifeq ($(subdir),misc)
sysdep_headers += sys/elf.h
-endif
+tests += \
+ tst-aarch64-pkey \
+ # tests
+
+ifneq (no,$(findstring no,$(have-cc-gcs) $(have-test-cc-gcs) $(have-ld-gcs)))
+
+gcs-tests-dynamic = \
+ tst-gcs-disabled \
+ tst-gcs-dlopen-disabled \
+ tst-gcs-dlopen-enforced \
+ tst-gcs-dlopen-optional-off \
+ tst-gcs-dlopen-optional-on \
+ tst-gcs-dlopen-override \
+ tst-gcs-enforced \
+ tst-gcs-enforced-abort \
+ tst-gcs-noreturn \
+ tst-gcs-optional-off \
+ tst-gcs-optional-on \
+ tst-gcs-override \
+ tst-gcs-shared-disabled \
+ tst-gcs-shared-enforced-abort \
+ tst-gcs-shared-optional \
+ tst-gcs-shared-override \
+ # gcs-tests-dynamic
+
+gcs-tests-static = \
+ tst-gcs-disabled-static \
+ tst-gcs-enforced-static \
+ tst-gcs-enforced-static-abort \
+ tst-gcs-optional-static-off \
+ tst-gcs-optional-static-on \
+ tst-gcs-override-static \
+ # gcs-tests-static
+
+tests += \
+ $(gcs-tests-dynamic) \
+ $(gcs-tests-static) \
+ # tests
+
+tests-static += \
+ $(gcs-tests-static) \
+ # tests-static
+
+define run-gcs-abort-test
+ $(test-wrapper-env) $(run-program-env) \
+ $(tst-gcs-$*-abort-ENV) $(host-test-program-cmd)
+endef
+
+$(objpfx)tst-gcs-%-abort.out: $(..)sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh \
+ $(objpfx)tst-gcs-%-abort
+ $(SHELL) $< $(common-objpfx) $(test-name) '$(run-gcs-abort-test)'; \
+ $(evaluate-test)
+
+LDFLAGS-tst-gcs-disabled += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-abort += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-optional-on += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-optional-off += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-override += -Wl,-z gcs=never
+
+LDFLAGS-tst-gcs-disabled-static += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-static += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-static-abort += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-optional-static-on += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-optional-static-off += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-override-static += -Wl,-z gcs=never
+
+tst-gcs-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-enforced-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-enforced-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-optional-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-optional-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+tst-gcs-disabled-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-enforced-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-enforced-static-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-optional-static-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-optional-static-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-override-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+# force one of the dependencies to be unmarked
+LDFLAGS-tst-gcs-mod2.so += -Wl,-z gcs=never
+
+LDFLAGS-tst-gcs-shared-disabled = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-enforced-abort = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-optional = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-override = -Wl,-z gcs=always
+
+modules-names += \
+ tst-gcs-mod1 \
+ tst-gcs-mod2 \
+ tst-gcs-mod3 \
+ # modules-names
+
+$(objpfx)tst-gcs-shared-disabled: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-enforced-abort: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-optional: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-override: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-mod1.so: $(objpfx)tst-gcs-mod2.so
+
+tst-gcs-shared-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-shared-enforced-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-shared-optional-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-shared-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+LDFLAGS-tst-gcs-dlopen-disabled = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-enforced = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-optional-on = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-optional-off = -Wl,-z gcs=never
+LDFLAGS-tst-gcs-dlopen-override = -Wl,-z gcs=always
+
+tst-gcs-dlopen-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-dlopen-enforced-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-dlopen-optional-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-dlopen-optional-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-dlopen-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+$(objpfx)tst-gcs-dlopen-disabled.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-enforced.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-optional-on.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-optional-off.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-override.out: $(objpfx)tst-gcs-mod2.so
+
+LDFLAGS-tst-gcs-noreturn = -Wl,-z gcs=always
+
+tst-gcs-noreturn-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+
+endif # ifeq ($(have-test-cc-gcs),yes)
+
+endif # ifeq ($(subdir),misc)
ifeq ($(subdir),stdlib)
gen-as-const-headers += ucontext_i.sym
diff --git a/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h b/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h
new file mode 100644
index 0000000..dbfcc91
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h
@@ -0,0 +1,53 @@
+/* Helper functions for manipulating memory protection keys.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ARCH_PKEY_H
+#define _ARCH_PKEY_H
+
+#include <sys/cdefs.h>
+
+#define S1POE_PERM_NO_ACCESS 0b0000UL
+#define S1POE_PERM_R 0b0001UL
+#define S1POE_PERM_X 0b0010UL
+#define S1POE_PERM_RX 0b0011UL
+#define S1POE_PERM_W 0b0100UL
+#define S1POE_PERM_RW 0b0101UL
+#define S1POE_PERM_WX 0b0110UL
+#define S1POE_PERM_RWX 0b0111UL
+
+#define S1POE_PERM_MASK 0b1111UL
+
+#define S1POE_BITS_PER_POI 4UL
+
+/* Return the value of the POR_EL0 register. */
+static __always_inline unsigned long
+pkey_read (void)
+{
+ unsigned long r;
+ __asm__ volatile ("mrs %0, s3_3_c10_c2_4" : "=r" (r));
+ return r;
+}
+
+/* Overwrite the POR_EL0 register with VALUE. */
+static __always_inline void
+pkey_write (unsigned long value)
+{
+ __asm__ volatile ("msr s3_3_c10_c2_4, %0; isb" : : "r" (value));
+}
+
+#endif /* _ARCH_PKEY_H */
diff --git a/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h b/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
index 19b6316..ba4a461 100644
--- a/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
@@ -95,6 +95,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -124,6 +125,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -173,6 +175,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -212,6 +215,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -270,6 +274,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
index 036c476..6579126 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -25,17 +25,11 @@
#define __O_NOFOLLOW 0100000
#define __O_DIRECT 0200000
-#ifdef __ILP32__
-# define __O_LARGEFILE 0400000
-#else
-# define __O_LARGEFILE 0
-#endif
+#define __O_LARGEFILE 0
-#ifdef __LP64__
-# define F_GETLK64 5
-# define F_SETLK64 6
-# define F_SETLKW64 7
-#endif
+#define F_GETLK64 5
+#define F_SETLK64 6
+#define F_SETLKW64 7
struct flock
{
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
index 8dceaa1..d064a09 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. AArch64 Linux version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,6 +54,7 @@
#define HWCAP_SB (1 << 29)
#define HWCAP_PACA (1 << 30)
#define HWCAP_PACG (1UL << 31)
+#define HWCAP_GCS (1UL << 32)
#define HWCAP2_DCPODP (1 << 0)
#define HWCAP2_SVE2 (1 << 1)
@@ -118,3 +119,4 @@
#define HWCAP2_SME_SF8FMA (1UL << 60)
#define HWCAP2_SME_SF8DP4 (1UL << 61)
#define HWCAP2_SME_SF8DP2 (1UL << 62)
+#define HWCAP2_POE (1UL << 63)
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
index c5b6c69..a6eb7b0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/AArch64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,14 @@
#define PROT_BTI 0x10
#define PROT_MTE 0x20
+#ifdef __USE_GNU
+# define PKEY_UNRESTRICTED 0x0
+# define PKEY_DISABLE_ACCESS 0x1
+# define PKEY_DISABLE_WRITE 0x2
+# define PKEY_DISABLE_EXECUTE 0x4
+# define PKEY_DISABLE_READ 0x8
+#endif
+
#include <bits/mman-map-flags-generic.h>
/* Include generic Linux declarations. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
index 4abc9e3..7d1d4a2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. AArch64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
index 22c2bab..7ef84b4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/aarch64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h b/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
index e36bf13..2175562 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux aarch64 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
index 03e6e40..51d6fa2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S
index 0e7ee24..40015c6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -33,12 +33,6 @@
*/
.text
ENTRY(__clone)
- PTR_ARG (0)
- PTR_ARG (1)
- PTR_ARG (3)
- PTR_ARG (4)
- PTR_ARG (5)
- PTR_ARG (6)
/* Save args for the child. */
mov x10, x0
mov x11, x2
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone3.S b/sysdeps/unix/sysv/linux/aarch64/clone3.S
index e28aaa5..c9ca845 100644
--- a/sysdeps/unix/sysv/linux/aarch64/clone3.S
+++ b/sysdeps/unix/sysv/linux/aarch64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/aarch64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -36,10 +36,6 @@
.text
ENTRY(__clone3)
- PTR_ARG (0)
- PTR_ARG (1)
- PTR_ARG (3)
- PTR_ARG (4)
/* Save args for the child. */
mov x10, x0 /* cl_args */
mov x11, x2 /* func */
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index c0b047b..1acc82d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. AArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -23,6 +23,7 @@
#include <sys/prctl.h>
#include <sys/utsname.h>
#include <dl-tunables-parse.h>
+#include <dl-symbol-redir-ifunc.h>
#define DCZID_DZP_MASK (1 << 4)
#define DCZID_BS_MASK (0xf)
@@ -128,7 +129,7 @@ init_cpu_features (struct cpu_features *cpu_features)
cpu_features->midr_el1 = midr;
/* Check if ZVA is enabled. */
- unsigned dczid;
+ uint64_t dczid;
asm volatile ("mrs %0, dczid_el0" : "=r"(dczid));
if ((dczid & DCZID_DZP_MASK) == 0)
@@ -176,4 +177,8 @@ init_cpu_features (struct cpu_features *cpu_features)
/* Check if MOPS is supported. */
cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS;
+
+ if (GLRO (dl_hwcap) & HWCAP_GCS)
+ /* GCS status may be updated later by binary compatibility checks. */
+ GL (dl_aarch64_gcs) = TUNABLE_GET (glibc, cpu, aarch64_gcs, uint64_t, 0);
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
index fe4d274..35e1b91 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,7 @@
#include <ldconfig.h>
-#ifdef __LP64__
-# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
-#else
-# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB32 | FLAG_ELF_LIBC6)
-#endif
+#define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
#define _dl_cache_check_flags(flags) \
((flags) == _DL_CACHE_DEFAULT_ID)
@@ -38,18 +34,11 @@
len -= 2; \
path[len] = '\0'; \
} \
- if (len >= 9 && ! memcmp (path + len - 9, "/libilp32", 9))\
- { \
- len -= 5; \
- path[len] = '\0'; \
- } \
add_dir (path); \
if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
{ \
memcpy (path + len, "64", 3); \
add_dir (path); \
- memcpy (path + len, "ilp32", 6); \
- add_dir (path); \
} \
} while (0)
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
index 7af232d..20966e0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
@@ -1,6 +1,6 @@
/* Data for AArch64 version of processor capability information.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -56,27 +56,5 @@ PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
# endif
#endif
-/* Number of HWCAP bits set. */
-#define _DL_HWCAP_COUNT 32
-
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_aarch64_cap_flags
-#else
-PROCINFO_CLASS const char _dl_aarch64_cap_flags[_DL_HWCAP_COUNT][10]
-#endif
-#ifndef PROCINFO_DECL
-/* Matches the names in arch/arm64/kernel/cpuinfo.c of Linux. */
-= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
- "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
- "lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve",
- "asimdfhm", "dit", "uscat", "ilrcpc", "flagm", "ssbs", "sb", "paca",
- "pacg" }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
#undef PROCINFO_DECL
#undef PROCINFO_CLASS
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c b/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c
new file mode 100644
index 0000000..044544a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c
@@ -0,0 +1,37 @@
+/* Data for processor runtime information. AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !IS_IN (ldconfig)
+# if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_gcs
+# else
+PROCINFO_CLASS unsigned long _dl_aarch64_gcs
+# endif
+# ifndef PROCINFO_DECL
+= 0
+# endif
+# if !defined SHARED || defined PROCINFO_DECL
+;
+# else
+,
+# endif
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
index e5b69c9..b6e64e5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -1,6 +1,6 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -30,7 +30,6 @@
.text
ENTRY(__getcontext)
- PTR_ARG (0)
/* The saved context will return to the getcontext() call point
with a return value of 0 */
str xzr, [x0, oX0 + 0 * SZREG]
@@ -83,15 +82,30 @@ ENTRY(__getcontext)
mrs x4, fpcr
str w4, [x3, oFPCR - oFPSR]
- /* Write the termination context extension header. */
add x2, x2, #FPSIMD_CONTEXT_SIZE
+ /* Save the GCSPR. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #GCS_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+ MRS_GCSPR (x4)
+ add x4, x4, 8 /* GCS state right after getcontext returns. */
+ str x4, [x2, #oGCSPR]
+ add x2, x2, #GCS_CONTEXT_SIZE
+L(gcs_done):
+
+ /* Write the termination context extension header. */
str wzr, [x2, #oHEAD + oMAGIC]
str wzr, [x2, #oHEAD + oSIZE]
/* Grab the signal mask */
/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
+ add x2, x0, UCONTEXT_SIGMASK
mov x0, SIG_BLOCK
mov x1, 0
mov x3, _NSIG8
diff --git a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
index 1341e6d..379781a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
index 74f381f..6543ad4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index d99056d..8cdd6ed 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. AArch64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
index c6a1e9c..6102262 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-start.h b/sysdeps/unix/sysv/linux/aarch64/libc-start.h
new file mode 100644
index 0000000..75ae0a8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/libc-start.h
@@ -0,0 +1,62 @@
+/* AArch64 definitions for libc main startup.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_START_H
+#define _LIBC_START_H
+
+#ifndef SHARED
+
+# include <dl-prop.h>
+
+# ifndef PR_SET_SHADOW_STACK_STATUS
+# define PR_SET_SHADOW_STACK_STATUS 75
+# define PR_SHADOW_STACK_ENABLE (1UL << 0)
+# endif
+
+/* Must be on a top-level stack frame that does not return. */
+static inline void __attribute__((always_inline))
+aarch64_libc_setup_tls (void)
+{
+ __libc_setup_tls ();
+
+ struct link_map *main_map = _dl_get_dl_main_map ();
+ const ElfW(Phdr) *phdr = GL(dl_phdr);
+ const ElfW(Phdr) *ph;
+ for (ph = phdr; ph < phdr + GL(dl_phnum); ph++)
+ if (ph->p_type == PT_GNU_PROPERTY)
+ {
+ _dl_process_pt_gnu_property (main_map, -1, ph);
+ _rtld_main_check (main_map, _dl_argv[0]);
+ break;
+ }
+
+ if (GL(dl_aarch64_gcs) != 0)
+ {
+ int ret = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS,
+ PR_SHADOW_STACK_ENABLE, 0, 0, 0);
+ if (ret)
+ _dl_fatal_printf ("failed to enable GCS: %d\n", -ret);
+ }
+}
+
+# define ARCH_SETUP_IREL() apply_irel ()
+# define ARCH_SETUP_TLS() aarch64_libc_setup_tls ()
+# define ARCH_APPLY_IREL()
+#endif /* ! SHARED */
+
+#endif /* _LIBC_START_H */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 68eeca1..a22e651 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2748,3 +2748,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c b/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
index dc4cce8..29eb01e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 024cb8d..bb8114b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
index b685106..f7f72b6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
@@ -128,3 +128,43 @@ GLIBC_2.40 _ZGVsMxvv_hypot F
GLIBC_2.40 _ZGVsMxvv_hypotf F
GLIBC_2.40 _ZGVsMxvv_pow F
GLIBC_2.40 _ZGVsMxvv_powf F
+GLIBC_2.41 _ZGVnN2v_cospi F
+GLIBC_2.41 _ZGVnN2v_cospif F
+GLIBC_2.41 _ZGVnN2v_logp1 F
+GLIBC_2.41 _ZGVnN2v_logp1f F
+GLIBC_2.41 _ZGVnN2v_sinpi F
+GLIBC_2.41 _ZGVnN2v_sinpif F
+GLIBC_2.41 _ZGVnN2v_tanpi F
+GLIBC_2.41 _ZGVnN2v_tanpif F
+GLIBC_2.41 _ZGVnN4v_cospif F
+GLIBC_2.41 _ZGVnN4v_logp1f F
+GLIBC_2.41 _ZGVnN4v_sinpif F
+GLIBC_2.41 _ZGVnN4v_tanpif F
+GLIBC_2.41 _ZGVsMxv_cospi F
+GLIBC_2.41 _ZGVsMxv_cospif F
+GLIBC_2.41 _ZGVsMxv_logp1 F
+GLIBC_2.41 _ZGVsMxv_logp1f F
+GLIBC_2.41 _ZGVsMxv_sinpi F
+GLIBC_2.41 _ZGVsMxv_sinpif F
+GLIBC_2.41 _ZGVsMxv_tanpi F
+GLIBC_2.41 _ZGVsMxv_tanpif F
+GLIBC_2.42 _ZGVnN2v_acospi F
+GLIBC_2.42 _ZGVnN2v_acospif F
+GLIBC_2.42 _ZGVnN2v_asinpi F
+GLIBC_2.42 _ZGVnN2v_asinpif F
+GLIBC_2.42 _ZGVnN2v_atanpi F
+GLIBC_2.42 _ZGVnN2v_atanpif F
+GLIBC_2.42 _ZGVnN2vv_atan2pi F
+GLIBC_2.42 _ZGVnN2vv_atan2pif F
+GLIBC_2.42 _ZGVnN4v_acospif F
+GLIBC_2.42 _ZGVnN4v_asinpif F
+GLIBC_2.42 _ZGVnN4v_atanpif F
+GLIBC_2.42 _ZGVnN4vv_atan2pif F
+GLIBC_2.42 _ZGVsMxv_acospi F
+GLIBC_2.42 _ZGVsMxv_acospif F
+GLIBC_2.42 _ZGVsMxv_asinpi F
+GLIBC_2.42 _ZGVsMxv_asinpif F
+GLIBC_2.42 _ZGVsMxv_atanpi F
+GLIBC_2.42 _ZGVsMxv_atanpif F
+GLIBC_2.42 _ZGVsMxvv_atan2pi F
+GLIBC_2.42 _ZGVsMxvv_atan2pif F
diff --git a/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
index 5aec182..4485723 100644
--- a/sysdeps/unix/sysv/linux/aarch64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,7 +21,27 @@
#include <stdarg.h>
#include <stdint.h>
#include <ucontext.h>
+#include <sys/mman.h>
+#include "aarch64-gcs.h"
+
+#define GCS_MAGIC 0x47435300
+
+static struct _aarch64_ctx *extension (void *p)
+{
+ return p;
+}
+
+/* Allocate GCS stack for new context. */
+static void *
+alloc_makecontext_gcs (size_t stack_size)
+{
+ void *gcsp = __alloc_gcs (stack_size, NULL);
+ if (gcsp == NULL)
+ /* ENOSYS, bad size or OOM. */
+ abort ();
+ return gcsp;
+}
/* makecontext sets up a stack and the registers for the
user context. The stack looks like this:
@@ -56,10 +76,23 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
sp = (uint64_t *) (((uintptr_t) sp) & -16L);
ucp->uc_mcontext.regs[19] = (uintptr_t) ucp->uc_link;
+ ucp->uc_mcontext.regs[20] = (uintptr_t) func;
ucp->uc_mcontext.sp = (uintptr_t) sp;
- ucp->uc_mcontext.pc = (uintptr_t) func;
+ ucp->uc_mcontext.pc = (uintptr_t) __startcontext;
ucp->uc_mcontext.regs[29] = (uintptr_t) 0;
- ucp->uc_mcontext.regs[30] = (uintptr_t) &__startcontext;
+ ucp->uc_mcontext.regs[30] = (uintptr_t) 0;
+
+ void *p = ucp->uc_mcontext.__reserved;
+ if (extension (p)->magic == FPSIMD_MAGIC)
+ p = (char *)p + extension (p)->size;
+ if (extension (p)->magic == GCS_MAGIC)
+ {
+ /* Using the kernel struct gcs_context layout. */
+ struct { uint64_t x, gcspr, y, z; } *q = p;
+ /* TODO: this allocation remains mapped even after thread
+ that uses it exits. */
+ q->gcspr = (uint64_t) alloc_makecontext_gcs (ucp->uc_stack.ss_size);
+ }
va_start (ap, argc);
for (i = 0; i < argc; ++i)
diff --git a/sysdeps/unix/sysv/linux/aarch64/pkey_get.c b/sysdeps/unix/sysv/linux/aarch64/pkey_get.c
new file mode 100644
index 0000000..2dd9d81
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/pkey_get.c
@@ -0,0 +1,73 @@
+/* Reading the per-thread memory protection key, AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <arch-pkey.h>
+#include <errno.h>
+#include <sys/mman.h>
+
+int
+pkey_get (int key)
+{
+ if (key < 0 || key > 15)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ unsigned long int por_el0 = pkey_read ();
+ unsigned long int perm = (por_el0 >> (S1POE_BITS_PER_POI * key))
+ & S1POE_PERM_MASK;
+
+ /* The following mapping between POR permission bits (4 bits)
+ and PKEY flags is supported:
+
+ -WXR POR to PKEY_ mapping
+ 0000 => DISABLE_ACCESS | DISABLE_READ | DISABLE_WRITE | DISABLE_EXECUTE
+ 0001 => DISABLE_WRITE | DISABLE_EXECUTE (read-only)
+ 0010 => DISABLE_ACCESS | DISABLE_READ | DISABLE_WRITE (execute-only)
+ 0011 => DISABLE_WRITE (read-execute)
+ 0100 => DISABLE_READ | DISABLE_EXECUTE (write-only)
+ 0101 => DISABLE_EXECUTE (read-write)
+ 0110 => DISABLE_READ (execute-write)
+ 0111 => UNRESTRICTED (no restrictions, read-write-execute)
+ else => undefined behavior
+
+ Note that pkey_set and pkey_alloc would only set these specific
+ values. The PKEY_DISABLE_ACCESS flag is redundant as it implies
+ PKEY_DISABLE_READ | PKEY_DISABLE_WRITE but is kept for backward
+ compatibility. */
+
+ if (perm == S1POE_PERM_NO_ACCESS)
+ return PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ;
+ if (perm == S1POE_PERM_R)
+ return PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_X)
+ return PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE;
+ if (perm == S1POE_PERM_RX)
+ return PKEY_DISABLE_WRITE;
+ if (perm == S1POE_PERM_W)
+ return PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_RW)
+ return PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_WX)
+ return PKEY_DISABLE_READ;
+ if (perm == S1POE_PERM_RWX)
+ return PKEY_UNRESTRICTED;
+
+ return PKEY_DISABLE_ACCESS;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/pkey_set.c b/sysdeps/unix/sysv/linux/aarch64/pkey_set.c
new file mode 100644
index 0000000..a521cc0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/pkey_set.c
@@ -0,0 +1,113 @@
+/* Changing the per-thread memory protection key, AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <arch-pkey.h>
+#include <errno.h>
+#include <sys/mman.h>
+
+#define MAX_PKEY_RIGHTS (PKEY_DISABLE_ACCESS | \
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ)
+
+int
+pkey_set (int key, unsigned int restrictions)
+{
+ if (key < 0 || key > 15 || restrictions > MAX_PKEY_RIGHTS)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ unsigned long mask = S1POE_PERM_MASK << (S1POE_BITS_PER_POI * key);
+ unsigned long por_el0 = pkey_read ();
+ unsigned long perm;
+
+ /* POR ot PKEY mapping: -WXR
+ PKEY_UNRESTRICTED => 0111 (read-write-execute)
+ PKEY_DISABLE_ACCESS => removes R and W access
+ PKEY_DISABLE_READ => removes R access
+ PKEY_DISABLE_WRITE => removes W access
+ PKEY_DISABLE_EXECUTE => removes X access
+
+ Either of PKEY_DISABLE_ACCESS or PKEY_DISABLE_READ removes R access.
+ Either of PKEY_DISABLE_ACCESS or PKEY_DISABLE_WRITE removes W access.
+ Using PKEY_DISABLE_ACCESS along with only one of PKEY_DISABLE_READ or
+ PKEY_DISABLE_WRITE is considered to be in error.
+
+ Furthermore, for avoidance of doubt:
+
+ PKEY flags Permissions
+ rxwa -WXR
+ 1111 => 0000 S1POE_PERM_NO_ACCESS
+ 1110 => 0000 S1POE_PERM_NO_ACCESS
+ 1101 => EINVAL
+ 1100 => 0100 S1POE_PERM_W
+ 1011 => 0010 S1POE_PERM_X
+ 1010 => 0010 S1POE_PERM_X
+ 1001 => EINVAL
+ 1000 => 0110 S1POE_PERM_WX
+ 0111 => EINVAL
+ 0110 => 0001 S1POE_PERM_R
+ 0101 => 0000 S1POE_PERM_NO_ACCESS
+ 0100 => 0101 S1POE_PERM_RW
+ 0011 => EINVAL
+ 0010 => 0011 S1POE_PERM_RX
+ 0001 => 0010 S1POE_PERM_X
+ 0000 => 0111 S1POE_PERM_RWX */
+ switch (restrictions)
+ {
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_READ | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_NO_ACCESS;
+ break;
+ case PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_W;
+ break;
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_READ | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_ACCESS:
+ perm = S1POE_PERM_X;
+ break;
+ case PKEY_DISABLE_READ:
+ perm = S1POE_PERM_WX;
+ break;
+ case PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_R;
+ break;
+ case PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_RW;
+ break;
+ case PKEY_DISABLE_WRITE:
+ perm = S1POE_PERM_RX;
+ break;
+ case PKEY_UNRESTRICTED:
+ perm = S1POE_PERM_RWX;
+ break;
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ por_el0 = (por_el0 & ~mask) | (perm << (S1POE_BITS_PER_POI * key));
+ pkey_write (por_el0);
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h b/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
index 23c825d..fd4501b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer guard implementation. AArch64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,18 +24,11 @@
|| (!defined SHARED && (IS_IN (libc) \
|| IS_IN (libpthread))))
# ifdef __ASSEMBLER__
-/* Note, dst, src, guard, and tmp are all register numbers rather than
- register names so they will work with both ILP32 and LP64. */
-# define PTR_MANGLE(dst, src, guard, tmp) \
- LDST_PCREL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \
- PTR_MANGLE2 (dst, src, guard)
-/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
-# define PTR_MANGLE2(dst, src, guard)\
- eor x##dst, x##src, x##guard
-# define PTR_DEMANGLE(dst, src, guard, tmp)\
- PTR_MANGLE (dst, src, guard, tmp)
-# define PTR_DEMANGLE2(dst, src, guard)\
- PTR_MANGLE2 (dst, src, guard)
+# define PTR_MANGLE(dst, src, tmp) \
+ adrp tmp, C_SYMBOL_NAME(__pointer_chk_guard_local); \
+ ldr tmp, [tmp, :lo12:C_SYMBOL_NAME(__pointer_chk_guard_local)]; \
+ eor dst, src, tmp
+# define PTR_DEMANGLE(dst, src, tmp) PTR_MANGLE (dst, src, tmp)
# else
extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
# define PTR_MANGLE(var) \
@@ -44,18 +37,12 @@ extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
# endif
#else
# ifdef __ASSEMBLER__
-/* Note, dst, src, guard, and tmp are all register numbers rather than
- register names so they will work with both ILP32 and LP64. */
-# define PTR_MANGLE(dst, src, guard, tmp) \
- LDST_GLOBAL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard)); \
- PTR_MANGLE2 (dst, src, guard)
-/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
-# define PTR_MANGLE2(dst, src, guard)\
- eor x##dst, x##src, x##guard
-# define PTR_DEMANGLE(dst, src, guard, tmp)\
- PTR_MANGLE (dst, src, guard, tmp)
-# define PTR_DEMANGLE2(dst, src, guard)\
- PTR_MANGLE2 (dst, src, guard)
+# define PTR_MANGLE(dst, src, tmp) \
+ adrp tmp, :got:C_SYMBOL_NAME(__pointer_chk_guard); \
+ ldr tmp, [tmp, :got_lo12:C_SYMBOL_NAME(__pointer_chk_guard)]; \
+ ldr tmp, [tmp]; \
+ eor dst, src, tmp;
+# define PTR_DEMANGLE(dst, src, tmp) PTR_MANGLE (dst, src, tmp)
# else
# include <stdint.h>
extern uintptr_t __pointer_chk_guard attribute_relro;
diff --git a/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
index 0076161..9ada075 100644
--- a/sysdeps/unix/sysv/linux/aarch64/readelflib.c
+++ b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
index ba65943..d9716f0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
@@ -1,6 +1,6 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -34,7 +34,6 @@
.text
ENTRY (__setcontext)
- PTR_ARG (0)
/* Save a copy of UCP. */
mov x9, x0
@@ -49,25 +48,16 @@ ENTRY (__setcontext)
cbz x0, 1f
b C_SYMBOL_NAME (__syscall_error)
1:
- /* Disable ZA of SME. */
-#if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-#endif
- stp x29, x30, [sp, -16]!
- cfi_adjust_cfa_offset (16)
- cfi_rel_offset (x29, 0)
- cfi_rel_offset (x30, 8)
- mov x29, sp
+ /* Clear ZA state of SME. */
+ /* The calling convention of __libc_arm_za_disable allows to do
+ this thus allowing to avoid saving to and reading from stack.
+ As a result we also don't need to sign the return address and
+ check it after returning because it is not stored to stack. */
+ mov x13, x30
+ cfi_register (x30, x13)
bl __libc_arm_za_disable
- ldp x29, x30, [sp], 16
- cfi_adjust_cfa_offset (-16)
- cfi_restore (x29)
- cfi_restore (x30)
-#if HAVE_AARCH64_PAC_RET
- AUTIASP
- cfi_window_save
-#endif
+ mov x30, x13
+ cfi_register (x13, x30)
/* Restore the general purpose registers. */
mov x0, x9
cfi_def_cfa (x0, 0)
@@ -130,6 +120,44 @@ ENTRY (__setcontext)
ldr w4, [x3, oFPCR - oFPSR]
msr fpcr, x4
+ /* Restore the GCS. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ /* Get target GCS from GCS context. */
+ ldr w1, [x2, #oHEAD + oSIZE]
+ add x2, x2, x1
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ ldr w1, [x2, #oHEAD + oMAGIC]
+ cmp w1, w3
+ b.ne L(gcs_done)
+ ldr x3, [x2, #oGCSPR]
+ MRS_GCSPR (x2)
+ mov x4, x3
+ /* x2: GCSPR now. x3, x4: target GCSPR. x5, x6: tmp regs. */
+L(gcs_scan):
+ cmp x2, x4
+ b.eq L(gcs_pop)
+ sub x4, x4, 8
+ /* Check for a cap token. */
+ ldr x5, [x4]
+ and x6, x4, 0xfffffffffffff000
+ orr x6, x6, 1
+ cmp x5, x6
+ b.ne L(gcs_scan)
+L(gcs_switch):
+ add x2, x4, 8
+ GCSSS1 (x4)
+ GCSSS2 (xzr)
+L(gcs_pop):
+ cmp x2, x3
+ b.eq L(gcs_done)
+ GCSPOPM (xzr)
+ add x2, x2, 8
+ b L(gcs_pop)
+L(gcs_done):
+
2:
ldr x16, [x0, oPC]
/* Restore arg registers. */
@@ -142,7 +170,11 @@ ENTRY (__setcontext)
PSEUDO_END (__setcontext)
weak_alias (__setcontext, setcontext)
+/* makecontext start function: receives uc_link in x19 and func in x20.
+ Arguments of func, x29, x30 and sp are set up by the caller. */
ENTRY (__startcontext)
+ cfi_undefined (x30)
+ blr x20
mov x0, x19
cbnz x0, __setcontext
1: b HIDDEN_JUMPTARGET (exit)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
index 50ffce6..0bd0f36 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* AArch64 definitions for signal handling calling conventions.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
index f049140..58ddb95 100644
--- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
@@ -1,6 +1,6 @@
/* Modify saved context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -27,13 +27,19 @@
.text
ENTRY(__swapcontext)
- PTR_ARG (0)
/* Set the value returned when swapcontext() returns in this context.
And set up x1 to become the return address of the caller, so we
can return there with a normal RET instead of an indirect jump. */
stp xzr, x30, [x0, oX0 + 0 * SZREG]
+
+ /* With GCS, swapcontext calls are followed by BTI J, otherwise
+ we have to be compatible with old BTI enabled binaries. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbz x16, 0, L(skip_x30_redirect)
/* Arrange the oucp context to return to 2f. */
adr x30, 2f
+L(skip_x30_redirect):
stp x18, x19, [x0, oX0 + 18 * SZREG]
stp x20, x21, [x0, oX0 + 20 * SZREG]
@@ -72,14 +78,27 @@ ENTRY(__swapcontext)
mrs x4, fpcr
str w4, [x3, #oFPCR - oFPSR]
- /* Write the termination context extension header. */
add x2, x2, #FPSIMD_CONTEXT_SIZE
+ /* Save the GCSPR. */
+ tbnz x16, 0, L(gcs_done)
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #GCS_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+ MRS_GCSPR (x4)
+ add x4, x4, 8 /* GCSPR of the caller. */
+ str x4, [x2, #oGCSPR]
+ add x2, x2, #GCS_CONTEXT_SIZE
+L(gcs_done):
+
+ /* Write the termination context extension header. */
str wzr, [x2, #oHEAD + oMAGIC]
str wzr, [x2, #oHEAD + oSIZE]
/* Preserve ucp. */
- mov x21, x1
+ mov x9, x1
/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
_NSIG8) */
@@ -93,18 +112,14 @@ ENTRY(__swapcontext)
svc 0
cbnz x0, 1f
- mov x22, x30
- mov x0, x21
- bl JUMPTARGET (__setcontext)
- mov x30, x22
- RET
-
+ mov x0, x9
+ b JUMPTARGET (__setcontext)
1:
b C_SYMBOL_NAME(__syscall_error)
2:
/* The oucp context is restored here via an indirect branch,
x1 must be restored too which has the real return address. */
- BTI_J
+ bti j
mov x30, x1
RET
PSEUDO_END (__swapcontext)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
index c2a9618..7ccf9a2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 19b3302..4dc04af 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/AArch64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
index d361b25..5a4a824 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
index 84db61c..4c37a16 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/syscall.S b/sysdeps/unix/sysv/linux/aarch64/syscall.S
index e5670cc..07b34e7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/syscall.S
+++ b/sysdeps/unix/sysv/linux/aarch64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S b/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S
new file mode 100644
index 0000000..2151f0e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S
@@ -0,0 +1,59 @@
+/* Cancellable syscall wrapper. Linux/AArch64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [x0] __syscall_cancel_arch (int *cancelhandling [x0],
+ long int nr [x1],
+ long int arg1 [x2],
+ long int arg2 [x3],
+ long int arg3 [x4],
+ long int arg4 [x5],
+ long int arg5 [x6],
+ long int arg6 [x7]) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ldr w0, [x0]
+ tbnz w0, TCB_CANCELED_BIT, 1f
+
+ /* Issue a 6 argument syscall, the nr [x1] being the syscall
+ number. */
+ mov x8, x1
+ mov x0, x2
+ mov x1, x3
+ mov x2, x4
+ mov x3, x5
+ mov x4, x6
+ mov x5, x7
+ svc 0x0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+
+1:
+ b __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysconf.c b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
index 6c8216e..eec2453 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ static long int linux_sysconf (int name);
long int
__sysconf (int name)
{
- unsigned ctr;
+ uint64_t ctr;
/* Unfortunately, the registers that contain the actual cache info
(CCSIDR_EL1, CLIDR_EL1, and CSSELR_EL1) are protected by the Linux
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.c b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
index c6439f6..540481a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index bbbe357..f0e8d64 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -152,18 +152,14 @@
#else /* not __ASSEMBLER__ */
-# ifdef __LP64__
-# define VDSO_NAME "LINUX_2.6.39"
-# define VDSO_HASH 123718537
-# else
-# define VDSO_NAME "LINUX_4.9"
-# define VDSO_HASH 61765625
-# endif
+# define VDSO_NAME "LINUX_2.6.39"
+# define VDSO_HASH 123718537
/* List of system calls which are supported as vsyscalls. */
# define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres"
# define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
+# define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c b/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c
new file mode 100644
index 0000000..c884efc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c
@@ -0,0 +1,190 @@
+/* AArch64 tests for memory protection keys.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+#include <support/xsignal.h>
+#include <support/xunistd.h>
+#include <sys/mman.h>
+#include <array_length.h>
+
+static sig_atomic_t sigusr1_handler_ran;
+static int pkey;
+
+/* On AArch64 access is revoked during signal handling for
+ pkey > 0 because POR is reset to the default value 0x7. */
+static void
+sigusr1_handler (int signum)
+{
+ TEST_COMPARE (signum, SIGUSR1);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_READ, PKEY_DISABLE_READ);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_WRITE, PKEY_DISABLE_WRITE);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_EXECUTE, PKEY_DISABLE_EXECUTE);
+ sigusr1_handler_ran += 1;
+}
+
+static int
+do_test (void)
+{
+ pkey = pkey_alloc (0, PKEY_UNRESTRICTED);
+ if (pkey < 0)
+ {
+ if (errno == ENOSYS || errno == EINVAL)
+ FAIL_UNSUPPORTED
+ ("kernel or CPU does not support memory protection keys");
+ if (errno == ENOSPC)
+ FAIL_UNSUPPORTED
+ ("no keys available or kernel does not support memory"
+ " protection keys");
+ FAIL_EXIT1 ("pkey_alloc: %m");
+ }
+
+ long int pagesize = xsysconf (_SC_PAGESIZE);
+
+ int *page = xmmap (NULL, pagesize, PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE,
+ -1);
+
+ /* On AArch64 pkey == 0 is reserved and should never be allocated. */
+ TEST_VERIFY (pkey > 0);
+ TEST_COMPARE (pkey_get(pkey), PKEY_UNRESTRICTED);
+
+ /* Check that access is revoked during signal handling
+ with initial rights being set to no restrictions. */
+ TEST_COMPARE (pkey_mprotect ((void *) page, pagesize, PROT_READ
+ | PROT_WRITE, pkey), 0);
+ xsignal (SIGUSR1, &sigusr1_handler);
+ xraise (SIGUSR1);
+ xsignal (SIGUSR1, SIG_DFL);
+ TEST_COMPARE (sigusr1_handler_ran, 1);
+
+ /* Check that access is revoked during signal handling
+ with initial rights being set to PKEY_DISABLE_WRITE. */
+ TEST_COMPARE (pkey_set (pkey, PKEY_DISABLE_WRITE), 0);
+ xsignal (SIGUSR1, &sigusr1_handler);
+ xraise (SIGUSR1);
+ xsignal (SIGUSR1, SIG_DFL);
+ TEST_COMPARE (sigusr1_handler_ran, 2);
+
+ /* Check that all combinations of PKEY flags used in pkey_set
+ result in consistent values obtained via pkey_get.
+ Note that whenever flags PKEY_DISABLE_READ and PKEY_DISABLE_WRITE
+ are set, the PKEY_DISABLE_ACCESS is also set. */
+ struct
+ {
+ unsigned int set;
+ unsigned int expected;
+ } rrs[] =
+ {
+ {
+ PKEY_UNRESTRICTED,
+ PKEY_UNRESTRICTED
+ },
+ {
+ PKEY_DISABLE_ACCESS,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_WRITE,
+ PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_READ,
+ PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ
+ },
+ };
+
+ for (int k = 0; k < (array_length (rrs) / 2); k++) {
+ TEST_COMPARE (k, rrs[k].set);
+ TEST_COMPARE (pkey_set (pkey, rrs[k].set), 0);
+ TEST_COMPARE (pkey_get (pkey), rrs[k].expected);
+ }
+
+ /* Check that restrictions above maximum allowed value are rejected. */
+ TEST_COMPARE (pkey_set (pkey, 16), -1);
+ TEST_COMPARE (errno, EINVAL);
+
+ TEST_COMPARE (pkey_free (pkey), 0);
+
+ xmunmap ((void *) page, pagesize);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/nios2/Makefile b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh
index bb6d330..9e2be2d 100644
--- a/sysdeps/nios2/Makefile
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh
@@ -1,4 +1,6 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+#!/bin/sh
+# Test wrapper for AArch64 tests for GCS that are expected to abort.
+# Copyright (C) 2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,15 +14,26 @@
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library. If not, see
+# License along with the GNU C Library; if not, see
# <https://www.gnu.org/licenses/>.
-pic-ccflag = -fpic
+objpfx=$1; shift
+tstname=$1; shift
+tstrun=$1; shift
-# We don't support long doubles as a distinct type. We don't need to set
-# this variable; it's here mostly for documentational purposes.
-long-double-fcts = no
+logfile=$objpfx/$tstname.out
-ifeq ($(subdir),soft-fp)
-sysdep_routines += $(gcc-single-routines) $(gcc-double-routines)
-endif
+rm -vf $logfile
+touch $logfile
+
+${tstrun} 2>> $logfile >> $logfile; status=$?
+
+if test $status -eq 127 \
+ && grep -q -w "not GCS compatible" "$logfile" ; then
+ exit 0
+elif test $status -eq 77; then
+ exit 77
+else
+ echo "unexpected test output or exit status $status"
+ exit 1
+fi
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c
new file mode 100644
index 0000000..c71d68c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-disabled.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c
new file mode 100644
index 0000000..bd68878
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c
new file mode 100644
index 0000000..3439528
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c
new file mode 100644
index 0000000..d8489ec
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 0
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c
new file mode 100644
index 0000000..3439528
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c
new file mode 100644
index 0000000..d8489ec
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 0
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c
new file mode 100644
index 0000000..152ffcf
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c
new file mode 100644
index 0000000..6e0801c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c
@@ -0,0 +1,62 @@
+/* AArch64 tests for GCS for dlopen use case.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+#include <dlfcn.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+ /* The tst-gcs-mod2.so test library does not have GCS marking. */
+ void *h = dlopen ("tst-gcs-mod2.so", RTLD_NOW);
+ const char *err = dlerror ();
+
+#if TEST_GCS_EXPECT_DLOPEN
+ TEST_VERIFY (h != NULL);
+#else
+ TEST_VERIFY (h == NULL);
+ /* Only accept expected GCS-related errors. */
+ TEST_VERIFY (strstr (err, "not GCS compatible") != NULL);
+#endif
+
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (__check_gcs_status ());
+#else
+ TEST_VERIFY (!__check_gcs_status ());
+#endif
+
+ if (h == NULL)
+ printf ("dlopen error: %s\n", err);
+ else
+ {
+ puts ("library loaded normally");
+ dlclose (h);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c
new file mode 100644
index 0000000..c20a999
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c
@@ -0,0 +1 @@
+#include "tst-gcs-enforced-abort.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c
new file mode 100644
index 0000000..bb39dad
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-enforced.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h
new file mode 100644
index 0000000..d8a586d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h
@@ -0,0 +1,39 @@
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TST_GCS_HELPER_H
+#define TST_GCS_HELPER_H
+
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+
+#include <stdio.h>
+#include <sys/auxv.h>
+
+static bool __check_gcs_status (void)
+{
+ register unsigned long x16 asm ("x16");
+ asm volatile (
+ "mov x16, #1 /* _CHKFEAT_GCS */\n"
+ "hint 40 /* CHKFEAT_X16 */\n"
+ : "=r" (x16));
+ return x16 ^ 1;
+}
+
+#endif // POINTER_GUARD_H
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c
index 6f11fde..931ff81 100644
--- a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c
@@ -1,5 +1,5 @@
-/* Bit size of the time_t type at glibc build time, Linux/NIOS2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,5 +16,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* Size in bits of the 'time_t' type of the default ABI. */
-#define __TIMESIZE 32
+#include <stdio.h>
+
+int fun2 (void); // tst-gcs-mod2.c
+
+int fun1 (void)
+{
+ puts ("called function fun1");
+ return fun2 ();
+}
diff --git a/sysdeps/nios2/tst-file-align.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c
index 8189328..f9370eb 100644
--- a/sysdeps/nios2/tst-file-align.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c
@@ -1,5 +1,5 @@
-/* Check file alignment. Nios II version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,5 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* This should cover all possible alignments we currently support. */
-#define ALIGN 0x8000
+#include <stdio.h>
+
+int fun2 (void)
+{
+ puts ("called function fun2");
+ return 0;
+}
diff --git a/sysdeps/nios2/elf-initfini.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c
index 511465c..38bb357 100644
--- a/sysdeps/nios2/elf-initfini.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c
@@ -1,5 +1,5 @@
-/* Determine DT_INIT/DT_FINI support in the dynamic loader. nios2 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,5 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* Enable DT_INIT/DT_FINI support. */
-#define ELF_INITFINI 1
+#include <stdio.h>
+
+int fun3 (void)
+{
+ puts ("called function fun3");
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c
new file mode 100644
index 0000000..f550579
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c
@@ -0,0 +1,101 @@
+/* AArch64 test for GCS abort when returning to non-GCS address.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+#include <sys/prctl.h>
+#include <stdlib.h>
+
+#include <support/xsignal.h>
+
+# ifndef PR_SET_SHADOW_STACK_STATUS
+# define PR_SET_SHADOW_STACK_STATUS 75
+# define PR_SHADOW_STACK_ENABLE (1UL << 0)
+# endif
+
+static void
+run_with_gcs (void)
+{
+ int r = prctl (PR_SET_SHADOW_STACK_STATUS, PR_SHADOW_STACK_ENABLE, 0, 0, 0);
+ /* Syscall should succeed. */
+ TEST_VERIFY (r == 0);
+ bool gcs_enabled = __check_gcs_status ();
+ /* Now GCS should be enabled. */
+ TEST_VERIFY (gcs_enabled);
+ printf ("GCS is %s\n", gcs_enabled ? "enabled" : "disabled");
+}
+
+static struct _aarch64_ctx *
+extension (void *p)
+{
+ return p;
+}
+
+#ifndef GCS_MAGIC
+#define GCS_MAGIC 0x47435300
+#endif
+
+static void
+handler (int sig, siginfo_t *si, void *ctx)
+{
+ TEST_VERIFY (sig == SIGSEGV);
+ ucontext_t *uc = ctx;
+ void *p = uc->uc_mcontext.__reserved;
+ if (extension (p)->magic == FPSIMD_MAGIC)
+ p = (char *)p + extension (p)->size;
+ if (extension (p)->magic == GCS_MAGIC)
+ {
+ struct { uint64_t x, gcspr, y, z; } *q = p;
+ printf ("GCS pointer: %016lx\n", q->gcspr);
+ exit (0);
+ }
+ else
+ exit (3);
+}
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+ bool gcs_enabled = __check_gcs_status ();
+ /* This test should be rung with GCS initially disabled. */
+ TEST_VERIFY (!gcs_enabled);
+
+ /* We can't use EXPECTED_SIGNAL because of cases when
+ this test runs on a system that does not support GCS
+ which is being detected at runtime. */
+ struct sigaction sigact;
+ sigemptyset (&sigact.sa_mask);
+ sigact.sa_flags = 0;
+ sigact.sa_flags = sigact.sa_flags | SA_SIGINFO;
+ sigact.sa_sigaction = handler;
+ xsigaction (SIGSEGV, &sigact, NULL);
+
+ run_with_gcs ();
+ /* If we reached this point, then something went wrong.
+ Returning from a function that enabled GCS should result in
+ SIGSEGV that we catch with the handler set up above. */
+ return 2;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c
new file mode 100644
index 0000000..bd68878
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c
new file mode 100644
index 0000000..54e3b9a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c
@@ -0,0 +1 @@
+#include "tst-gcs-optional-off.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c
new file mode 100644
index 0000000..11b884b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c
@@ -0,0 +1 @@
+#include "tst-gcs-optional-on.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c
new file mode 100644
index 0000000..09055dc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-override.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c
new file mode 100644
index 0000000..8598dc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c
new file mode 100644
index 0000000..f1333ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c
new file mode 100644
index 0000000..8598dc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c
new file mode 100644
index 0000000..f1333ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c
new file mode 100644
index 0000000..1192de6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c
@@ -0,0 +1,41 @@
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+int fun1 (void); // tst-gcs-mod1.c
+int fun3 (void); // tst-gcs-mod3.c
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (__check_gcs_status ());
+#else
+ TEST_VERIFY (!__check_gcs_status ());
+#endif
+ return fun1 () + fun3 ();
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/loongarch/fpu/s_fmaximumf.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c
index 3f7fa42..feb5e33 100644
--- a/sysdeps/loongarch/fpu/s_fmaximumf.c
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c
@@ -1,5 +1,5 @@
-/* fmaximumf(). LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,25 +16,28 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-#include <fpu_control.h>
+#include "tst-gcs-helper.h"
-float
-__fmaximumf (float x, float y)
+static int
+do_test (void)
{
- int x_cond;
- int y_cond;
- asm volatile ("fclass.s \t%0, %1" : "=f" (x_cond) : "f" (x));
- asm volatile ("fclass.s \t%0, %1" : "=f" (y_cond) : "f" (y));
-
- if (__glibc_unlikely((x_cond | y_cond) & _FCLASS_NAN))
- return x * y;
- else
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
{
- asm volatile ("fmax.s \t%0, %1, %2" : "=f" (x) : "f" (x), "f" (y));
- return x;
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
}
+ bool gcs_enabled = __check_gcs_status ();
+ if (gcs_enabled)
+ puts ("GCS enabled");
+ else
+ puts ("GCS not enabled");
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (gcs_enabled);
+#else
+ TEST_VERIFY (!gcs_enabled);
+#endif
+ return 0;
}
-libm_alias_float (__fmaximum, fmaximum)
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c
new file mode 100644
index 0000000..d34c8be
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c
@@ -0,0 +1,27 @@
+/* AArch64 tests for unwinding TLSDESC (BZ 32612)
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+_Thread_local int foo;
+/* Make the TLS segment large enough to trigger _dl_tlsdesc_dynamic. */
+_Thread_local int foobar[1000];
+
+void
+bar (void)
+{
+ foo = 1;
+}
diff --git a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c
index 3de8dea..24d656a 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c
@@ -1,5 +1,5 @@
-/* Linux/i386 version of processor capability information handling macros.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* AArch64 tests for unwinding TLSDESC (BZ 32612)
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,31 +16,33 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_I386_PROCINFO_H
-#define _DL_I386_PROCINFO_H 1
-#include <sysdeps/x86/dl-procinfo.h>
+#include <stdlib.h>
+#include <unwind.h>
+#include <support/xdlfcn.h>
-#undef _dl_procinfo
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
+static _Unwind_Reason_Code
+unwind_callback (struct _Unwind_Context* context, void* closure)
{
- /* This table should match the information from arch/i386/kernel/setup.c
- in the kernel sources. */
- int i;
-
- /* Fallback to generic output mechanism. */
- if (type != AT_HWCAP)
- return -1;
-
- _dl_printf ("AT_HWCAP: ");
+ return _URC_NO_REASON;
+}
- for (i = 0; i < 32; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", GLRO(dl_x86_cap_flags)[i]);
+/* Assume that TLS variable from tst-tlsdesc-pac-mod.so will trigger
+ the slow-path that allocates the required memory with malloc. */
+void *
+malloc (size_t s)
+{
+ _Unwind_Backtrace (unwind_callback, NULL);
+ return calloc (1, s);
+}
- _dl_printf ("\n");
+static int
+do_test (void)
+{
+ void *h = xdlopen ("tst-tlsdesc-pac-mod.so", RTLD_LAZY);
+ void (*func)(void) = xdlsym (h, "bar");
+ func ();
return 0;
}
-#endif
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
index 096d5fb..8419842 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -43,3 +43,8 @@
#define oX21 (oX0 + 21*8)
#define oFP (oX0 + 29*8)
#define oLR (oX0 + 30*8)
+
+/* Use kernel layout for saving GCSPR in ucontext. */
+#define GCS_MAGIC 0x47435300
+#define GCS_CONTEXT_SIZE 32
+#define oGCSPR 8
diff --git a/sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h b/sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h
new file mode 100644
index 0000000..3a77c23
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h
@@ -0,0 +1,78 @@
+/* Signal frame backtracing support for SFrame on AARCH64.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This code is inspired from libgcc's MD_FALLBACK_FRAME_STATE_FOR
+ implementation. See libgcc/config/aarch64/linux-unwind.h */
+
+#include <signal.h>
+#include <sys/ucontext.h>
+#include <kernel_rt_sigframe.h>
+
+#if __AARCH64EL__
+#define MOVZ_X8_8B 0xd2801168
+#define SVC_0 0xd4000001
+#else
+#define MOVZ_X8_8B 0x681180d2
+#define SVC_0 0x010000d4
+#endif
+
+#define MD_DECODE_SIGNAL_FRAME aarch64_decode_signal_frame
+
+static _Unwind_Reason_Code
+aarch64_decode_signal_frame (frame *frame)
+{
+ unsigned int *pc = (unsigned int *) frame->pc;
+ mcontext_t *mt;
+ struct kernel_rt_sigframe *rt_;
+
+ if ((frame->pc & 3) != 0)
+ return _URC_END_OF_STACK;
+
+ /* A signal frame will have a return address pointing to
+ __kernel_rt_sigreturn. This code is hardwired as:
+
+ 0xd2801168 movz x8, #0x8b
+ 0xd4000001 svc 0x0
+ */
+ if (pc[0] != MOVZ_X8_8B || pc[1] != SVC_0)
+ return _URC_END_OF_STACK;
+
+ rt_ = (struct kernel_rt_sigframe *) frame->sp;
+ mt = &rt_->uc.uc_mcontext;
+
+ /* Frame pointer register number. */
+#define FP_REGNUM 30
+
+ frame->pc = (_Unwind_Ptr) mt->pc;
+ frame->sp = (_Unwind_Ptr) mt->sp;
+ frame->fp = (_Unwind_Ptr) mt->regs[FP_REGNUM];
+ return _URC_NO_REASON;
+}
+
+#define MD_DETECT_OUTERMOST_FRAME aarch64_detect_outermost_frame
+
+static _Unwind_Reason_Code
+aarch64_detect_outermost_frame (frame *frame)
+{
+ /* Initial frame has LR and FP set to zero. We track only FP. */
+ if (frame->fp == 0)
+ return _URC_END_OF_STACK;
+
+ return _URC_NO_REASON;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S
index e71e492..d5943a7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/vfork.S
+++ b/sysdeps/unix/sysv/linux/aarch64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -33,8 +33,13 @@ ENTRY (__vfork)
cmn x0, #4095
b.cs .Lsyscall_error
+ cbz x0, L(child)
RET
-
+L(child):
+ /* Return with indirect branch in the child to support GCS.
+ Compilers insert BTI instruction after vfork() to make
+ sure return via BR works on systems with BTI. */
+ br x30
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)
diff --git a/sysdeps/unix/sysv/linux/aarch64/vltest.py b/sysdeps/unix/sysv/linux/aarch64/vltest.py
index f74be43..3a09905 100755
--- a/sysdeps/unix/sysv/linux/aarch64/vltest.py
+++ b/sysdeps/unix/sysv/linux/aarch64/vltest.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Set Scalable Vector Length test helper
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/accept.c b/sysdeps/unix/sysv/linux/accept.c
index cf52661..410b1c0 100644
--- a/sysdeps/unix/sysv/linux/accept.c
+++ b/sysdeps/unix/sysv/linux/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
index 63133c8..20fb640 100644
--- a/sysdeps/unix/sysv/linux/accept4.c
+++ b/sysdeps/unix/sysv/linux/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/access.c b/sysdeps/unix/sysv/linux/access.c
index 4b7c3be..bdf14ab 100644
--- a/sysdeps/unix/sysv/linux/access.c
+++ b/sysdeps/unix/sysv/linux/access.c
@@ -1,5 +1,5 @@
/* Linux implementation for access function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c
index 4b0a54f..ff80909 100644
--- a/sysdeps/unix/sysv/linux/adjtime.c
+++ b/sysdeps/unix/sysv/linux/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/adjtimex.c b/sysdeps/unix/sysv/linux/adjtimex.c
index 72d5c18..f3bf393 100644
--- a/sysdeps/unix/sysv/linux/adjtimex.c
+++ b/sysdeps/unix/sysv/linux/adjtimex.c
@@ -1,5 +1,5 @@
/* Tune kernel clock. Linux specific syscall.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index ef5276c..e8094c2 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index dcae15f..4d9e8ce 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
index 09ef76e..2cf1096 100644
--- a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c
index 463cec3..f78d939 100644
--- a/sysdeps/unix/sysv/linux/alpha/adjtime.c
+++ b/sysdeps/unix/sysv/linux/alpha/adjtime.c
@@ -1,5 +1,5 @@
/* adjtime -- Adjust the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtimex.c b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
index 8245698..75b7b37 100644
--- a/sysdeps/unix/sysv/linux/alpha/adjtimex.c
+++ b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
@@ -1,5 +1,5 @@
/* adjtimex -- Adjust the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/arch-syscall.h b/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
index 216a557..840d6fe 100644
--- a/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
@@ -119,6 +119,7 @@
#define __NR_gettimeofday 359
#define __NR_getuid 24
#define __NR_getxattr 385
+#define __NR_getxattrat 574
#define __NR_getxgid 47
#define __NR_getxpid 20
#define __NR_getxuid 24
@@ -153,6 +154,7 @@
#define __NR_listen 106
#define __NR_listmount 568
#define __NR_listxattr 388
+#define __NR_listxattrat 575
#define __NR_llistxattr 389
#define __NR_lookup_dcookie 406
#define __NR_lremovexattr 392
@@ -207,6 +209,7 @@
#define __NR_open 45
#define __NR_open_by_handle_at 498
#define __NR_open_tree 538
+#define __NR_open_tree_attr 577
#define __NR_openat 450
#define __NR_openat2 547
#define __NR_osf_adjtime 140
@@ -364,6 +367,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 410
#define __NR_removexattr 391
+#define __NR_removexattrat 576
#define __NR_rename 128
#define __NR_renameat 457
#define __NR_renameat2 510
@@ -428,6 +432,7 @@
#define __NR_settimeofday 360
#define __NR_setuid 23
#define __NR_setxattr 382
+#define __NR_setxattrat 573
#define __NR_shmat 209
#define __NR_shmctl 210
#define __NR_shmdt 211
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
index b604576..fbec550 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
index 83c950e..dc81854 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
index 16dbca7..c019bdce 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Alpha specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
index 5e46341..f1bb9b8 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index 29397ba..d6b87e7 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
index 73a5146..52f7542 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
deleted file mode 100644
index eca4132..0000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IOCTL_H
-# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-#endif
-
-/* Use the definitions from the kernel header files. */
-#include <asm/ioctls.h>
-
-/* Oh well, this is necessary since the kernel data structure is
- different from the user-level version. */
-#undef TCGETS
-#undef TCSETS
-#undef TCSETSW
-#undef TCSETSF
-#define TCGETS _IOR ('t', 19, char[44])
-#define TCSETS _IOW ('t', 20, char[44])
-#define TCSETSW _IOW ('t', 21, char[44])
-#define TCSETSF _IOW ('t', 22, char[44])
-
-#include <linux/sockios.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
index 43b22a4..6403700 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/Alpha version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
index 05726e3..040071d 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
index ac1e57a..aad7f91 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
@@ -1,5 +1,5 @@
/* Types of prgregset_t and prfpregset_t. Alpha version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
index d55fe92..99dd1c7 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. Alpha version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
index 324b549..cf70ea5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/Alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
index 2bcbdf0..225ed98 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Alpha/Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
index ffd0288..54ee8c9 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/Alpha sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
index 6753f00..ba4dbd3 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
index 56ec725..68bcda1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/Alpha version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
index d43039d..3864e79 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
index 7a5a426..fdbb2bd 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for alpha.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
index 7300dd9..74ea018 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/Alpha.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
index ed23840..4998ca1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h b/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
index 83a9bfd..d9b5f32 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
index a9735f5..8ece17d 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
index ff50a24..d830884 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,4 +36,6 @@
#ifdef __USE_MISC
# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
index 2556911..b4dfdb4 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
index 9ae43ba..84b876c 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
index e3bec09..f1ae9e5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h
index 0345e9f..69421f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,30 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
-# define CBAUD 0000037
-# define CBAUDEX 0000000
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
+# define CBAUD 000000037
+# define CBAUDEX 000000000
+# define CIBAUD 007600000
+# define IBSHIFT 16
#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-
-#define __MAX_BAUD B4000000
+#define __B57600 00020
+#define __B115200 00021
+#define __B230400 00022
+#define __B460800 00023
+#define __B500000 00024
+#define __B576000 00025
+#define __B921600 00026
+#define __B1000000 00027
+#define __B1152000 00030
+#define __B1500000 00031
+#define __B2000000 00032
+#define __B2500000 00033
+#define __B3000000 00034
+#define __B3500000 00035
+#define __B4000000 00036
+#define __BOTHER 00037
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
index 3fa02fe..f50e9ef 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
@@ -1,5 +1,5 @@
/* struct termios definition. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,8 +30,15 @@ struct termios
tcflag_t c_lflag; /* local mode flags */
cc_t c_cc[NCCS]; /* control characters */
cc_t c_line; /* line discipline (== c_cc[33]) */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
+ /* Input and output baud rates. */
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
};
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
index fd1ead8..0dfafe5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
index 5da4ce2..8cc4491 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/Alpha version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
index 259f563..88de5c4 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/brk_call.h b/sysdeps/unix/sysv/linux/alpha/brk_call.h
index ec20208..49053ab 100644
--- a/sysdeps/unix/sysv/linux/alpha/brk_call.h
+++ b/sysdeps/unix/sysv/linux/alpha/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Alpha version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index 747a68d..727346f 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
index e90c2cb..26e0460 100644
--- a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing for Linux/Alpha.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h b/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
index 25028fd..a0e0b81 100644
--- a/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Alpha version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
index 96265ac..933a3d8 100644
--- a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+++ b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs.c b/sysdeps/unix/sysv/linux/alpha/fstatfs.c
index 147d491..e940ea0 100644
--- a/sysdeps/unix/sysv/linux/alpha/fstatfs.c
+++ b/sysdeps/unix/sysv/linux/alpha/fstatfs.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux/alpha.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
index 7e08929..59d99b2 100644
--- a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat64.c b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
index 89d84f3..bb52faa 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
index 2ee47a4..5594c4c 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getcontext.S b/sysdeps/unix/sysv/linux/alpha/getcontext.S
index 5c0be7d..a833269 100644
--- a/sysdeps/unix/sysv/linux/alpha/getcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getegid.S b/sysdeps/unix/sysv/linux/alpha/getegid.S
index 29370f1..885c1a5 100644
--- a/sysdeps/unix/sysv/linux/alpha/getegid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getegid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/geteuid.S b/sysdeps/unix/sysv/linux/alpha/geteuid.S
index 68af11a..b171943 100644
--- a/sysdeps/unix/sysv/linux/alpha/geteuid.S
+++ b/sysdeps/unix/sysv/linux/alpha/geteuid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/gethostname.c b/sysdeps/unix/sysv/linux/alpha/gethostname.c
index 30da8f3..2aeb8c8 100644
--- a/sysdeps/unix/sysv/linux/alpha/gethostname.c
+++ b/sysdeps/unix/sysv/linux/alpha/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getppid.S b/sysdeps/unix/sysv/linux/alpha/getppid.S
index c0405e6..e0e8b3f 100644
--- a/sysdeps/unix/sysv/linux/alpha/getppid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getppid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
index 898049e..bf32626 100644
--- a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
index 2cfd20f..27ffdc6 100644
--- a/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/globfree.c b/sysdeps/unix/sysv/linux/alpha/globfree.c
index fcb89a4..fe2a7e1 100644
--- a/sysdeps/unix/sysv/linux/alpha/globfree.c
+++ b/sysdeps/unix/sysv/linux/alpha/globfree.c
@@ -1,5 +1,5 @@
/* Compat globfree. Linux/alpha version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
index e599d7a..43b80bd 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
index d9a3a66..f5a7d9d 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index b1b373b..2e193d9 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
index 6ba8e81..70612b1 100644
--- a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Alpha version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index e0233ea..83fdf91 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,4 +54,15 @@
#undef __ASSUME_CLONE3
#define __ASSUME_CLONE3 0
+/* Alpha did not provide BOTHER, CIBAUD or the termios2 ioctls until
+ kernel 4.20. Even though struct __kernel_termios and struct
+ termios2 are the same on Alpha, Calling the legacy TCSETS* ioctls
+ with BOTHER set triggers a bug in these old kernels, so only use
+ the legacy TCSETS* ioctl numbers if neither BOTHER nor split speed is
+ needed; that way the code will fail gracefully. */
+#if __LINUX_KERNEL_VERSION < 0x041400
+# undef __ASSUME_TERMIOS2
+# define __ASSUME_TERMIOS2 0
+#endif
+
#endif /* _KERNEL_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
deleted file mode 100644
index bdc0377..0000000
--- a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- cc_t c_line; /* line discipline */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
- };
-
-#define _HAVE_C_ISPEED 1
-#define _HAVE_C_OSPEED 1
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 34c187b..4b5736a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -3095,6 +3095,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 4b7f756..4b383b1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1348,3 +1348,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
index 020cad7..4dd6a44 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat64.c b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
index 6daade4..2d5b9a9 100644
--- a/sysdeps/unix/sysv/linux/alpha/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/makecontext.S b/sysdeps/unix/sysv/linux/alpha/makecontext.S
index 1fefc37..72e1dbb 100644
--- a/sysdeps/unix/sysv/linux/alpha/makecontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/makecontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c
index f2dce70..f0e6197 100644
--- a/sysdeps/unix/sysv/linux/alpha/oldglob.c
+++ b/sysdeps/unix/sysv/linux/alpha/oldglob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
index acc4e6a..8f53b7c 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
@@ -1,5 +1,5 @@
/* adjtime -- adjust the system clock. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
index 000b044..f7140b5 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
index facfacc..d19658b 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
@@ -1,5 +1,5 @@
/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
index 5c5409b..21f6137 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
index 3130353..faeb944 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
index 572f1b5..b5634f7 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- Set the current time of day. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_utimes.c b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
index 055da7b..096ac1e 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
@@ -1,5 +1,5 @@
/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_wait4.c b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
index c290c38..5ab6212 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
@@ -1,5 +1,5 @@
/* wait4 -- wait for process to change state. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/pointer_guard.h b/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
index 4b7ca8d..3bbd924 100644
--- a/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer guard implementation. Alpha version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index a17fb2e..d75550c 100644
--- a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/select.c b/sysdeps/unix/sysv/linux/alpha/select.c
index 72c82da..b00d26e 100644
--- a/sysdeps/unix/sysv/linux/alpha/select.c
+++ b/sysdeps/unix/sysv/linux/alpha/select.c
@@ -1,5 +1,5 @@
/* Linux/alpha select implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setcontext.S b/sysdeps/unix/sysv/linux/alpha/setcontext.S
index 2c1bd7e..5dc16c6 100644
--- a/sysdeps/unix/sysv/linux/alpha/setcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
index 19433aa..7b0b596 100644
--- a/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+++ b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
@@ -1,5 +1,5 @@
/* Set FP exception mask and rounding mode.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
index 67947c8..fd6c50c 100644
--- a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/settimeofday.c b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
index 3a19960..02005a8 100644
--- a/sysdeps/unix/sysv/linux/alpha/settimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- Set the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
index 174bcc7..9f18fb1 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sizes.h b/sysdeps/unix/sysv/linux/alpha/sizes.h
index 4e3df21..0493a95 100644
--- a/sysdeps/unix/sysv/linux/alpha/sizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs.c b/sysdeps/unix/sysv/linux/alpha/statfs.c
index e11a798..eda0bce 100644
--- a/sysdeps/unix/sysv/linux/alpha/statfs.c
+++ b/sysdeps/unix/sysv/linux/alpha/statfs.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs64.c b/sysdeps/unix/sysv/linux/alpha/statfs64.c
index 319772e..1f5fa4e 100644
--- a/sysdeps/unix/sysv/linux/alpha/statfs64.c
+++ b/sysdeps/unix/sysv/linux/alpha/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
index 5baceee..42c2dc2 100644
--- a/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/io.h b/sysdeps/unix/sysv/linux/alpha/sys/io.h
index dc8a0ac..8eb1bc0 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/io.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 5308cfa..ac3d183 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/user.h b/sysdeps/unix/sysv/linux/alpha/sys/user.h
index ca52b67..e14ab13 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/user.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index 0e8528e..585e29c 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S b/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S
new file mode 100644
index 0000000..fad1a29
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S
@@ -0,0 +1,80 @@
+/* Cancellable syscall wrapper. Linux/alpha version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *ch,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ .set noreorder
+ .set noat
+ .set nomacro
+ENTRY (__syscall_cancel_arch)
+ .frame sp, 16, ra, 0
+ .mask 0x4000000,-16
+ cfi_startproc
+ ldah gp, 0(t12)
+ lda gp, 0(gp)
+ lda sp, -16(sp)
+ cfi_def_cfa_offset (16)
+ mov a1, v0
+ stq ra, 0(sp)
+ cfi_offset (26, -16)
+ .prologue 1
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ldl t0, 0(a0)
+ addl zero, t0, t0
+ /* if (*ch & CANCELED_BITMASK) */
+ and t0, TCB_CANCELED_BITMASK, t0
+ bne t0, 1f
+ mov a2, a0
+ mov a3, a1
+ mov a4, a2
+ ldq a4, 16(sp)
+ mov a5, a3
+ ldq a5, 24(sp)
+ .set macro
+ callsys
+ .set nomacro
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ subq zero, v0, t0
+ ldq ra, 0(sp)
+ cmovne a3, t0, v0
+ lda sp, 16(sp)
+ cfi_remember_state
+ cfi_restore (26)
+ cfi_def_cfa_offset (0)
+ ret zero, (ra), 1
+ .align 4
+1:
+ cfi_restore_state
+ ldq t12, __syscall_do_cancel(gp) !literal!2
+ jsr ra, (t12), __syscall_do_cancel !lituse_jsr!2
+ cfi_endproc
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/alpha/sysconf.c b/sysdeps/unix/sysv/linux/alpha/sysconf.c
index 1d14e82..916533a 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysconf.c
+++ b/sysdeps/unix/sysv/linux/alpha/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
index 3c880e0..1f0e249 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
index b9dccd7..ebbccc1 100644
--- a/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/vfork.S b/sysdeps/unix/sysv/linux/alpha/vfork.S
index a66266a..d290423 100644
--- a/sysdeps/unix/sysv/linux/alpha/vfork.S
+++ b/sysdeps/unix/sysv/linux/alpha/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/wait4.c b/sysdeps/unix/sysv/linux/alpha/wait4.c
index 8fae2c5..a07cc97 100644
--- a/sysdeps/unix/sysv/linux/alpha/wait4.c
+++ b/sysdeps/unix/sysv/linux/alpha/wait4.c
@@ -1,5 +1,5 @@
/* wait4 -- wait for process to change state. Linux/Alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstat64.c b/sysdeps/unix/sysv/linux/alpha/xstat64.c
index b998384..36e8adb 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstat64.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
index 444ab67..405f1f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
index d54b8f2..3ef0189 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alphasort64.c b/sysdeps/unix/sysv/linux/alphasort64.c
index 672268c..8f2812d 100644
--- a/sysdeps/unix/sysv/linux/alphasort64.c
+++ b/sysdeps/unix/sysv/linux/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
index eca9a9f..dd3da52 100644
--- a/sysdeps/unix/sysv/linux/arc/Makefile
+++ b/sysdeps/unix/sysv/linux/arc/Makefile
@@ -11,12 +11,3 @@ ifeq ($(subdir),misc)
sysdep_headers += sys/cachectl.h
sysdep_routines += cacheflush
endif
-
-abi-variants := arcle arcbe
-
-ifeq (,$(filter $(default-abi),$(abi-variants)))
-$(error Unknown ABI $(default-abi), must be one of $(abi-variants))
-endif
-
-abi-arcle-condition := !defined __BIG_ENDIAN__
-abi-arcbe-condition := defined __BIG_ENDIAN__
diff --git a/sysdeps/unix/sysv/linux/arc/arch-syscall.h b/sysdeps/unix/sysv/linux/arc/arch-syscall.h
index ea581b0..2534f0f 100644
--- a/sysdeps/unix/sysv/linux/arc/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/arc/arch-syscall.h
@@ -98,6 +98,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -128,6 +129,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -175,6 +177,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -214,6 +217,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -272,6 +276,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/arc/bits/procfs.h b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
index e5a6c37..fe98451 100644
--- a/sysdeps/unix/sysv/linux/arc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
index a2b520a..cfdae35 100644
--- a/sysdeps/unix/sysv/linux/arc/clone.S
+++ b/sysdeps/unix/sysv/linux/arc/clone.S
@@ -1,5 +1,5 @@
/* clone() implementation for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/clone3.S b/sysdeps/unix/sysv/linux/arc/clone3.S
index 38a2706..0dc2f9b 100644
--- a/sysdeps/unix/sysv/linux/arc/clone3.S
+++ b/sysdeps/unix/sysv/linux/arc/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/arc version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
index f388938..e75ef3f 100644
--- a/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arc/getcontext.S b/sysdeps/unix/sysv/linux/arc/getcontext.S
index 680e84a..14a60ff 100644
--- a/sysdeps/unix/sysv/linux/arc/getcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/kernel-features.h b/sysdeps/unix/sysv/linux/arc/kernel-features.h
index 8ae54ca..e9e1a3d 100644
--- a/sysdeps/unix/sysv/linux/arc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arc/kernel-features.h
@@ -1,7 +1,7 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 916c18e..b8a4478 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2509,3 +2509,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/arc/libc_sigaction.c b/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
index 938c7bf..6c20481 100644
--- a/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
@@ -1,5 +1,5 @@
/* ARC specific sigaction.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist
index f6eb7a5..c865ec8 100644
--- a/sysdeps/unix/sysv/linux/arc/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
@@ -787,3 +787,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arc/makecontext.c b/sysdeps/unix/sysv/linux/arc/makecontext.c
index 2ae8c12..a6cabdb 100644
--- a/sysdeps/unix/sysv/linux/arc/makecontext.c
+++ b/sysdeps/unix/sysv/linux/arc/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/mmap_internal.h b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
index 8ddc699..8640014 100644
--- a/sysdeps/unix/sysv/linux/arc/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux/ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S
index ce783f7..45d6bb3 100644
--- a/sysdeps/unix/sysv/linux/arc/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/shlib-versions b/sysdeps/unix/sysv/linux/arc/shlib-versions
index 343c0a0..62c1bd5 100644
--- a/sysdeps/unix/sysv/linux/arc/shlib-versions
+++ b/sysdeps/unix/sysv/linux/arc/shlib-versions
@@ -1,7 +1,3 @@
DEFAULT GLIBC_2.32
-%ifdef HAVE_ARC_BE
-ld=ld-linux-arceb.so.2
-%else
ld=ld-linux-arc.so.2
-%endif
diff --git a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
index fd3a4be..b7a892a 100644
--- a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* ARC definitions for signal handling calling conventions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sigrestorer.S b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
index 154241e..d06234d 100644
--- a/sysdeps/unix/sysv/linux/arc/sigrestorer.S
+++ b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
@@ -1,5 +1,5 @@
/* Default sigreturn stub for ARC Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/swapcontext.S b/sysdeps/unix/sysv/linux/arc/swapcontext.S
index abaec4a..31816e4 100644
--- a/sysdeps/unix/sysv/linux/arc/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
index 9c17237..3bce65a 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
@@ -1,5 +1,5 @@
/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
index 5b44ebf..5fa0015 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/user.h b/sysdeps/unix/sysv/linux/arc/sys/user.h
index bf9a589..7caa0c6 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/user.h
@@ -1,5 +1,5 @@
/* ptrace register data format definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/syscall.S b/sysdeps/unix/sysv/linux/arc/syscall.S
index 1f96853..71177e1 100644
--- a/sysdeps/unix/sysv/linux/arc/syscall.S
+++ b/sysdeps/unix/sysv/linux/arc/syscall.S
@@ -1,5 +1,5 @@
/* syscall - indirect system call.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/syscall_cancel.S b/sysdeps/unix/sysv/linux/arc/syscall_cancel.S
new file mode 100644
index 0000000..ccffef3f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arc/syscall_cancel.S
@@ -0,0 +1,56 @@
+/* Cancellable syscall wrapper. Linux/ARC version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ld_s r12,[r0]
+ bbit1 r12, TCB_CANCELED_BITMASK, 1f
+ mov_s r8, r1
+ mov_s r0, r2
+ mov_s r1, r3
+ mov_s r2, r4
+ mov_s r3, r5
+ mov_s r4, r6
+ mov_s r5, r7
+ trap_s 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ j_s [blink]
+
+ .align 4
+1: push_s blink
+ cfi_def_cfa_offset (4)
+ cfi_offset (31, -4)
+ bl @__syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.c b/sysdeps/unix/sysv/linux/arc/sysdep.c
index ede5a16..ed5025c 100644
--- a/sysdeps/unix/sysv/linux/arc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.c
@@ -1,5 +1,5 @@
/* ARC wrapper for setting errno.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.h b/sysdeps/unix/sysv/linux/arc/sysdep.h
index 60d5ef8..06e3140 100644
--- a/sysdeps/unix/sysv/linux/arc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
index ab20d85..35caf73 100644
--- a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/vfork.S b/sysdeps/unix/sysv/linux/arc/vfork.S
index 63eb42b..33498cd 100644
--- a/sysdeps/unix/sysv/linux/arc/vfork.S
+++ b/sysdeps/unix/sysv/linux/arc/vfork.S
@@ -1,5 +1,5 @@
/* vfork for ARC Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arch-fd_to_filename.h b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
index 8e70b2b..dea487d 100644
--- a/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
+++ b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arch-fork.h b/sysdeps/unix/sysv/linux/arch-fork.h
index 650f3ec..1886630 100644
--- a/sysdeps/unix/sysv/linux/arch-fork.h
+++ b/sysdeps/unix/sysv/linux/arch-fork.h
@@ -1,5 +1,5 @@
/* arch_fork definition for Linux fork implementation.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile
index a73c897..e73ce4f 100644
--- a/sysdeps/unix/sysv/linux/arm/Makefile
+++ b/sysdeps/unix/sysv/linux/arm/Makefile
@@ -1,5 +1,8 @@
ifeq ($(subdir),elf)
sysdep-rtld-routines += aeabi_read_tp libc-do-syscall
+# The test uses INTERNAL_SYSCALL_CALL. In thumb mode, this uses
+# an undefined reference to __libc_do_syscall.
+CFLAGS-tst-nolink-libc.c += -marm
endif
ifeq ($(subdir),misc)
diff --git a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
index 080c6ae..0af9b2e 100644
--- a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
index fd31e16..6b1806f 100644
--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/arch-syscall.h b/sysdeps/unix/sysv/linux/arm/arch-syscall.h
index 2809f52..8e585a4 100644
--- a/sysdeps/unix/sysv/linux/arm/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/arm/arch-syscall.h
@@ -132,6 +132,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 317
#define __NR_inotify_init 316
@@ -166,6 +167,7 @@
#define __NR_listen 284
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lookup_dcookie 249
#define __NR_lremovexattr 236
@@ -221,6 +223,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 371
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 322
#define __NR_openat2 437
#define __NR_pause 29
@@ -271,6 +274,7 @@
#define __NR_recvmsg 297
#define __NR_remap_file_pages 253
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 329
#define __NR_renameat2 382
@@ -346,6 +350,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_shmat 305
#define __NR_shmctl 308
#define __NR_shmdt 306
diff --git a/sysdeps/unix/sysv/linux/arm/arm-features.h b/sysdeps/unix/sysv/linux/arm/arm-features.h
index ce69bd1..14a2ca5 100644
--- a/sysdeps/unix/sysv/linux/arm/arm-features.h
+++ b/sysdeps/unix/sysv/linux/arm/arm-features.h
@@ -1,5 +1,5 @@
/* Macros to test for CPU features on ARM. Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/atomic-machine.h b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
index 936fd71..1734bcd 100644
--- a/sysdeps/unix/sysv/linux/arm/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. ARM/Linux version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ea95de2..959e446 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -2801,6 +2801,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
index 13ae5e8..13d94ba 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
index b104de4..a5106cf 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. ARM Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -49,3 +49,11 @@
#define HWCAP_ASIMDFHM 33554432
#define HWCAP_ASIMDBF16 67108864
#define HWCAP_I8MM 134217728
+
+#define HWCAP2_AES 1
+#define HWCAP2_PMULL 2
+#define HWCAP2_SHA1 4
+#define HWCAP2_SHA2 8
+#define HWCAP2_CRC32 16
+#define HWCAP2_SB 32
+#define HWCAP2_SSBS 64
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
index fdecf8f..bc2777d 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Arm version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs.h b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
index 52edf75..8427b00 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. Arm version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/rseq.h b/sysdeps/unix/sysv/linux/arm/bits/rseq.h
index 5126278..4a92a19 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux arm architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arm/bits/shmlba.h b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
index c348e97..bdb3637 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. ARM version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
index 89534fe..9b37fc9 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/arm version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/timesize.h b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
index cbcab7c..52ed28a 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/ARM.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/typesizes.h b/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
index 122813d..e4c7ae1 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. ARM version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S
index 115c532..c798123 100644
--- a/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/sysdeps/unix/sysv/linux/arm/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/clone3.S b/sysdeps/unix/sysv/linux/arm/clone3.S
index 094efc2..2a03c18 100644
--- a/sysdeps/unix/sysv/linux/arm/clone3.S
+++ b/sysdeps/unix/sysv/linux/arm/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/arm version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/dl-cache.h b/sysdeps/unix/sysv/linux/arm/dl-cache.h
index b157f3a..94d81e2 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/dl-machine.h b/sysdeps/unix/sysv/linux/arm/dl-machine.h
index b830ee7..bc81862 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM/Linux version
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
deleted file mode 100644
index ad18a8c..0000000
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Data for Linux/ARM version of processor capability information.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This information must be kept in sync with the _DL_HWCAP_COUNT and
- _DL_PLATFORM_COUNT definitions in procinfo.h.
-
- If anything should be added here check whether the size of each string
- is still ok with the given array size.
-
- All the #ifdefs in the definitions are quite irritating but
- necessary if we want to avoid duplicating the information. There
- are three different modes:
-
- - PROCINFO_DECL is defined. This means we are only interested in
- declarations.
-
- - PROCINFO_DECL is not defined:
-
- + if SHARED is defined the file is included in an array
- initializer. The .element = { ... } syntax is needed.
-
- + if SHARED is not defined a normal array initialization is
- needed.
- */
-
-#ifndef PROCINFO_CLASS
-#define PROCINFO_CLASS
-#endif
-
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_arm_cap_flags
-#else
-PROCINFO_CLASS const char _dl_arm_cap_flags[35][10]
-#endif
-#ifndef PROCINFO_DECL
-= {
- "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
- "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
- "tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
- "fphp", "asimdhp", "asimddp", "asimdfhm", "asimdbf16", "i8mm",
- "aes", "pmull", "sha1", "sha2", "crc32", "sb", "ssbs",
- }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
-#undef PROCINFO_DECL
-#undef PROCINFO_CLASS
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
deleted file mode 100644
index 7d26216..0000000
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Linux/ARM version of processor capability information handling macros.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-#include <sysdep.h>
-
-#define _DL_HWCAP_COUNT 27
-
-/* Low 28 bits are allocated in HWCAP. */
-#define _DL_HWCAP_LAST 27
-
-/* Low 7 bits are allocated in HWCAP2. */
-#define _DL_HWCAP2_LAST 6
-
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return GLRO(dl_arm_cap_flags)[idx];
-};
-
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- switch(type)
- {
- case AT_HWCAP:
- _dl_printf ("AT_HWCAP: ");
-
- for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (i));
- break;
- case AT_HWCAP2:
- {
- unsigned int offset = _DL_HWCAP_LAST + 1;
-
- _dl_printf ("AT_HWCAP2: ");
-
- for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (offset + i));
- break;
- }
- default:
- /* Fallback to generic output mechanism. */
- return -1;
- }
- _dl_printf ("\n");
- return 0;
-}
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
index 9ad2c65..eacc7f7 100644
--- a/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. Arm version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arm/getcontext.S b/sysdeps/unix/sysv/linux/arm/getcontext.S
index 4dacd93..821e553 100644
--- a/sysdeps/unix/sysv/linux/arm/getcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/ioperm.c b/sysdeps/unix/sysv/linux/arm/ioperm.c
index 987af91..a92365f 100644
--- a/sysdeps/unix/sysv/linux/arm/ioperm.c
+++ b/sysdeps/unix/sysv/linux/arm/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index f17c2f9..10caae8 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
index 67c1e81..2d8c0c4 100644
--- a/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1cdbc98..a930d1a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -2798,6 +2798,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
index 1eaff90..033a56b 100644
--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/libc_sigaction.c b/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
index 9700231..8cd5c98 100644
--- a/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/makecontext.c b/sysdeps/unix/sysv/linux/arm/makecontext.c
index 7065c59..68feaec 100644
--- a/sysdeps/unix/sysv/linux/arm/makecontext.c
+++ b/sysdeps/unix/sysv/linux/arm/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/profil-counter.h b/sysdeps/unix/sysv/linux/arm/profil-counter.h
index ee11a62..b4cbc74 100644
--- a/sysdeps/unix/sysv/linux/arm/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/arm/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/ARM version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c
index 28a1e63..edf6984 100644
--- a/sysdeps/unix/sysv/linux/arm/readelflib.c
+++ b/sysdeps/unix/sysv/linux/arm/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
index 38b9797..4c69a06 100644
--- a/sysdeps/unix/sysv/linux/arm/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
index 39419bb..7b316d5 100644
--- a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
index 6eacc3f..d1d9fe5 100644
--- a/sysdeps/unix/sysv/linux/arm/sigrestorer.S
+++ b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/swapcontext.S b/sysdeps/unix/sysv/linux/arm/swapcontext.S
index 407db3c..dfe38d8 100644
--- a/sysdeps/unix/sysv/linux/arm/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/elf.h b/sysdeps/unix/sysv/linux/arm/sys/elf.h
index 82ec0fe..9acb39e 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
index f74d7cb..476c0ed 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/ARM version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
index 748c864..8201010 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/user.h b/sysdeps/unix/sysv/linux/arm/sys/user.h
index 31f37f3..3376f34 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/user.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/syscall.S b/sysdeps/unix/sysv/linux/arm/syscall.S
index 799c451..f5a47de 100644
--- a/sysdeps/unix/sysv/linux/arm/syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/syscall_cancel.S b/sysdeps/unix/sysv/linux/arm/syscall_cancel.S
new file mode 100644
index 0000000..00167fc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/syscall_cancel.S
@@ -0,0 +1,78 @@
+/* Cancellable syscall wrapper. Linux/arm version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [r0] __syscall_cancel_arch (int *cancelhandling [r0],
+ long int nr [r1],
+ long int arg1 [r2],
+ long int arg2 [r3],
+ long int arg3 [SP],
+ long int arg4 [SP+4],
+ long int arg5 [SP+8],
+ long int arg6 [SP+12]) */
+
+ .syntax unified
+
+ENTRY (__syscall_cancel_arch)
+ .fnstart
+ mov ip, sp
+ stmfd sp!, {r4, r5, r6, r7, lr}
+ .save {r4, r5, r6, r7, lr}
+
+ cfi_adjust_cfa_offset (20)
+ cfi_rel_offset (r4, 0)
+ cfi_rel_offset (r5, 4)
+ cfi_rel_offset (r6, 8)
+ cfi_rel_offset (r7, 12)
+ cfi_rel_offset (lr, 16)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ldr r0, [r0]
+ tst r0, #TCB_CANCELED_BITMASK
+ bne 1f
+
+ /* Issue a 6 argument syscall, the nr [r1] being the syscall
+ number. */
+ mov r7, r1
+ mov r0, r2
+ mov r1, r3
+ ldmfd ip, {r2, r3, r4, r5, r6}
+ svc 0x0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ldmfd sp!, {r4, r5, r6, r7, lr}
+ cfi_adjust_cfa_offset (-20)
+ cfi_restore (r4)
+ cfi_restore (r5)
+ cfi_restore (r6)
+ cfi_restore (r7)
+ cfi_restore (lr)
+ BX (lr)
+
+1:
+ ldmfd sp!, {r4, r5, r6, r7, lr}
+ b __syscall_do_cancel
+ .fnend
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S
index bfea480..0467a5e 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.S
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
index 7110e12..6a47706 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/tls.h b/sysdeps/unix/sysv/linux/arm/tls.h
index 258307a..ea2fb7f 100644
--- a/sysdeps/unix/sysv/linux/arm/tls.h
+++ b/sysdeps/unix/sysv/linux/arm/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. ARM/Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/vfork.S b/sysdeps/unix/sysv/linux/arm/vfork.S
index 63ca79d..35e10fb 100644
--- a/sysdeps/unix/sysv/linux/arm/vfork.S
+++ b/sysdeps/unix/sysv/linux/arm/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bind.c b/sysdeps/unix/sysv/linux/bind.c
index 630b452..20b17ea 100644
--- a/sysdeps/unix/sysv/linux/bind.c
+++ b/sysdeps/unix/sysv/linux/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/dirent.h b/sysdeps/unix/sysv/linux/bits/dirent.h
index 8bf38f8..cd5e93c 100644
--- a/sysdeps/unix/sysv/linux/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/dirent_ext.h b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
index c0a9fc2..81c0563 100644
--- a/sysdeps/unix/sysv/linux/bits/dirent_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <dirent.h>. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/epoll.h b/sysdeps/unix/sysv/linux/bits/epoll.h
index 7a9e6f0..e417cbe 100644
--- a/sysdeps/unix/sysv/linux/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/errno.h b/sysdeps/unix/sysv/linux/bits/errno.h
index 1151786..9564034 100644
--- a/sysdeps/unix/sysv/linux/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/eventfd.h b/sysdeps/unix/sysv/linux/bits/eventfd.h
index cdaf3a3..97a000a 100644
--- a/sysdeps/unix/sysv/linux/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index 61c100d..f425a4b 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -201,6 +201,7 @@
# define F_GETLEASE 1025 /* Enquire what lease is active. */
# define F_NOTIFY 1026 /* Request notifications on a directory. */
# define F_DUPFD_QUERY 1027 /* Compare two file descriptors for sameness. */
+# define F_CREATED_QUERY 1028 /* Was the file just created? */
# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
# define F_ADD_SEALS 1033 /* Add seals to file. */
@@ -378,6 +379,8 @@ struct file_handle
identity and may not
be usable to
open_by_handle_at. */
+# define AT_HANDLE_MNT_ID_UNIQUE 1 /* Return the 64-bit unique mount
+ ID. */
#endif
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl.h b/sysdeps/unix/sysv/linux/bits/fcntl.h
index 4712bc6..742f558 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the generic Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index ae0103c..6c7beb8 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/inotify.h b/sysdeps/unix/sysv/linux/bits/inotify.h
index f4750f7..89e37da 100644
--- a/sysdeps/unix/sysv/linux/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
index ca23dc2..e8e5084 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,17 +32,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 8
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- unsigned char c_line; /* line discipline */
- unsigned char c_cc[NCC]; /* control characters */
-};
-
/* modem lines */
#define TIOCM_LE 0x001
#define TIOCM_DTR 0x002
diff --git a/sysdeps/unix/sysv/linux/bits/ioctls.h b/sysdeps/unix/sysv/linux/bits/ioctls.h
index 2df44f3..f340a4f 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,87 +22,18 @@
/* Use the definitions from the kernel header files. */
#include <asm/ioctls.h>
-/* Routing table calls. */
-#define SIOCADDRT 0x890B /* add routing table entry */
-#define SIOCDELRT 0x890C /* delete routing table entry */
-#define SIOCRTMSG 0x890D /* call to routing system */
-
-/* Socket configuration controls. */
-#define SIOCGIFNAME 0x8910 /* get iface name */
-#define SIOCSIFLINK 0x8911 /* set iface channel */
-#define SIOCGIFCONF 0x8912 /* get iface list */
-#define SIOCGIFFLAGS 0x8913 /* get flags */
-#define SIOCSIFFLAGS 0x8914 /* set flags */
-#define SIOCGIFADDR 0x8915 /* get PA address */
-#define SIOCSIFADDR 0x8916 /* set PA address */
-#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
-#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
-#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
-#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
-#define SIOCGIFNETMASK 0x891b /* get network PA mask */
-#define SIOCSIFNETMASK 0x891c /* set network PA mask */
-#define SIOCGIFMETRIC 0x891d /* get metric */
-#define SIOCSIFMETRIC 0x891e /* set metric */
-#define SIOCGIFMEM 0x891f /* get memory address (BSD) */
-#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
-#define SIOCGIFMTU 0x8921 /* get MTU size */
-#define SIOCSIFMTU 0x8922 /* set MTU size */
-#define SIOCSIFNAME 0x8923 /* set interface name */
-#define SIOCSIFHWADDR 0x8924 /* set hardware address */
-#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927 /* Get hardware address */
-#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931 /* Multicast address lists */
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
-#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
-#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936 /* delete PA address */
-#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
-#define SIOCGIFCOUNT 0x8938 /* get number of devices */
-
-#define SIOCGIFBR 0x8940 /* Bridging support */
-#define SIOCSIFBR 0x8941 /* Set bridging options */
-
-#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
-#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
-
-
-/* ARP cache control calls. */
- /* 0x8950 - 0x8952 * obsolete calls, don't re-use */
-#define SIOCDARP 0x8953 /* delete ARP table entry */
-#define SIOCGARP 0x8954 /* get ARP table entry */
-#define SIOCSARP 0x8955 /* set ARP table entry */
-
-/* RARP cache control calls. */
-#define SIOCDRARP 0x8960 /* delete RARP table entry */
-#define SIOCGRARP 0x8961 /* get RARP table entry */
-#define SIOCSRARP 0x8962 /* set RARP table entry */
-
-/* Driver configuration calls */
-
-#define SIOCGIFMAP 0x8970 /* Get device parameters */
-#define SIOCSIFMAP 0x8971 /* Set device parameters */
-
-/* DLCI configuration calls */
-
-#define SIOCADDDLCI 0x8980 /* Create new DLCI device */
-#define SIOCDELDLCI 0x8981 /* Delete DLCI device */
-
-/* Device private ioctl calls. */
-
-/* These 16 ioctls are available to devices via the do_ioctl() device
- vector. Each device should include this file and redefine these
- names as their own. Because these are device dependent it is a good
- idea _NOT_ to issue them to random objects and hope. */
-
-#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
-
-/*
- * These 16 ioctl calls are protocol private
- */
-
-#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
+/* The GNU C library has a different definition of struct termios,
+ incompatible with what the ioctl interface expects. The existence
+ of the termios2 ioctls is considered an implementation detail.
+ Undefine all related ioctl constants. */
+#undef TCGETS
+#undef TCSETS
+#undef TCSETSF
+#undef TCSETSW
+#undef TCGETS2
+#undef TCSETS2
+#undef TCSETSF2
+#undef TCSETSW2
+
+
+#include <linux/sockios.h>
diff --git a/sysdeps/unix/sysv/linux/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
index 14adb89..616a680 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/local_lim.h b/sysdeps/unix/sysv/linux/bits/local_lim.h
index 2c76f73..c0ae97f 100644
--- a/sysdeps/unix/sysv/linux/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h
index 522333c..fe0496d 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux generic version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,6 +43,7 @@
#define MAP_PRIVATE 0x02 /* Changes are private. */
#define MAP_SHARED_VALIDATE 0x03 /* Share changes and validate
extension flags. */
+#define MAP_DROPPABLE 0x08 /* Zero memory under memory pressure. */
#define MAP_TYPE 0x0f /* Mask for type of mapping. */
/* Other flags. */
@@ -112,6 +113,8 @@
locked pages too. */
# define MADV_COLLAPSE 25 /* Synchronous hugepage collapse. */
# define MADV_HWPOISON 100 /* Poison a page for testing. */
+# define MADV_GUARD_INSTALL 102 /* Fatal signal on access to range */
+# define MADV_GUARD_REMOVE 103 /* Unguard range */
#endif
/* The POSIX people had to invent similar names for the same things. */
diff --git a/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
index 97f654a..6199a81 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/generic version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h
index d8ed443..0be4b47 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h
@@ -1,5 +1,5 @@
/* Memory-mapping-related declarations/definitions, not architecture-specific.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,11 +42,10 @@
# define MLOCK_ONFAULT 1U
# endif
-/* Access rights for pkey_alloc. */
-# ifndef PKEY_DISABLE_ACCESS
-# define PKEY_DISABLE_ACCESS 0x1
-# define PKEY_DISABLE_WRITE 0x2
-# endif
+/* Access restrictions for pkey_alloc. */
+# define PKEY_UNRESTRICTED 0x0
+# define PKEY_DISABLE_ACCESS 0x1
+# define PKEY_DISABLE_WRITE 0x2
__BEGIN_DECLS
@@ -56,19 +55,20 @@ int memfd_create (const char *__name, unsigned int __flags) __THROW;
/* Lock pages from ADDR (inclusive) to ADDR + LENGTH (exclusive) into
memory. FLAGS is a combination of the MLOCK_* flags above. */
-int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW;
+int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW
+ __attr_access_none (1);
/* Allocate a new protection key, with the PKEY_DISABLE_* bits
- specified in ACCESS_RIGHTS. The protection key mask for the
+ specified in ACCESS_RESTRICTIONS. The protection key mask for the
current thread is updated to match the access privilege for the new
key. */
-int pkey_alloc (unsigned int __flags, unsigned int __access_rights) __THROW;
+int pkey_alloc (unsigned int __flags, unsigned int __access_restrictions) __THROW;
-/* Update the access rights for the current thread for KEY, which must
+/* Update the access restrictions for the current thread for KEY, which must
have been allocated using pkey_alloc. */
-int pkey_set (int __key, unsigned int __access_rights) __THROW;
+int pkey_set (int __key, unsigned int __access_restrictions) __THROW;
-/* Return the access rights for the current thread for KEY, which must
+/* Return the access restrictions for the current thread for KEY, which must
have been allocated using pkey_alloc. */
int pkey_get (int __key) __THROW;
diff --git a/sysdeps/unix/sysv/linux/bits/mman.h b/sysdeps/unix/sysv/linux/bits/mman.h
index 576be1a..94c8435 100644
--- a/sysdeps/unix/sysv/linux/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/generic version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman_ext.h b/sysdeps/unix/sysv/linux/bits/mman_ext.h
index b911266..4a5de8c 100644
--- a/sysdeps/unix/sysv/linux/bits/mman_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/mman_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <sys/mman.h>, Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index 3309d71..e36cade 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/msq.h b/sysdeps/unix/sysv/linux/bits/msq.h
index f3a0c5e..0ac52ac 100644
--- a/sysdeps/unix/sysv/linux/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/param.h b/sysdeps/unix/sysv/linux/bits/param.h
index aa2d721..1fb9c1a 100644
--- a/sysdeps/unix/sysv/linux/bits/param.h
+++ b/sysdeps/unix/sysv/linux/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/poll.h b/sysdeps/unix/sysv/linux/bits/poll.h
index 6bac5a4..9e4e8c8 100644
--- a/sysdeps/unix/sysv/linux/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/posix_opt.h b/sysdeps/unix/sysv/linux/bits/posix_opt.h
index a388d59..60ab46a 100644
--- a/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
index bd37f68..94f4297 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-id.h b/sysdeps/unix/sysv/linux/bits/procfs-id.h
index b92f7a3..5b6724a 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
index e24601e..467c9dc 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
@@ -1,5 +1,5 @@
/* Types of prgregset_t and prfpregset_t. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h b/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
index 09e534f..ed7a037 100644
--- a/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
+++ b/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN, possibly dynamic.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
index 8bcfa6a..23a8c7c 100644
--- a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
index 30ba017..9822274 100644
--- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
@@ -1,6 +1,6 @@
/* `ptrace' debugger support interface. Linux version,
not architecture-specific.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index 148b6a9..51c07da 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/rseq.h b/sysdeps/unix/sysv/linux/bits/rseq.h
index faf5a9c..cd7bf99 100644
--- a/sysdeps/unix/sysv/linux/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences architecture header. Stub version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index a53e136..39b0b3d 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -1,6 +1,6 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,15 +29,61 @@
#define SCHED_FIFO 1
#define SCHED_RR 2
#ifdef __USE_GNU
+# define SCHED_NORMAL 0
# define SCHED_BATCH 3
# define SCHED_ISO 4
# define SCHED_IDLE 5
# define SCHED_DEADLINE 6
+# define SCHED_EXT 7
+/* Flags that can be used in policy values. */
# define SCHED_RESET_ON_FORK 0x40000000
-#endif
-#ifdef __USE_GNU
+/* Flags for the sched_flags field in struct sched_attr. */
+#define SCHED_FLAG_RESET_ON_FORK 0x01
+#define SCHED_FLAG_RECLAIM 0x02
+#define SCHED_FLAG_DL_OVERRUN 0x04
+#define SCHED_FLAG_KEEP_POLICY 0x08
+#define SCHED_FLAG_KEEP_PARAMS 0x10
+#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20
+#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40
+
+/* Combinations of sched_flags fields. */
+#define SCHED_FLAG_KEEP_ALL \
+ (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)
+#define SCHED_FLAG_UTIL_CLAMP \
+ (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)
+
+/* Use "" to work around incorrect macro expansion of the
+ __has_include argument (GCC PR 80005). */
+# ifdef __has_include
+# if __has_include ("linux/sched/types.h")
+/* Some older Linux versions defined sched_param in <linux/sched/types.h>. */
+# define sched_param __glibc_mask_sched_param
+# include <linux/sched/types.h>
+# undef sched_param
+# endif
+# endif
+# ifndef SCHED_ATTR_SIZE_VER0
+# include <linux/types.h>
+# define SCHED_ATTR_SIZE_VER0 48
+# define SCHED_ATTR_SIZE_VER1 56
+struct sched_attr
+{
+ __u32 size;
+ __u32 sched_policy;
+ __u64 sched_flags;
+ __s32 sched_nice;
+ __u32 sched_priority;
+ __u64 sched_runtime;
+ __u64 sched_deadline;
+ __u64 sched_period;
+ __u32 sched_util_min;
+ __u32 sched_util_max;
+ /* Additional fields may be added at the end. */
+};
+# endif /* !SCHED_ATTR_SIZE_VER0 */
+
/* Cloning flags. */
# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */
# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
@@ -97,6 +143,17 @@ extern int getcpu (unsigned int *, unsigned int *) __THROW;
/* Switch process to namespace of type NSTYPE indicated by FD. */
extern int setns (int __fd, int __nstype) __THROW;
+
+/* Apply the scheduling attributes from *ATTR to the process or thread TID. */
+int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags)
+ __THROW __nonnull ((2));
+
+/* Obtain the scheduling attributes of the process or thread TID and
+ store it in *ATTR. */
+int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size,
+ unsigned int flags)
+ __THROW __nonnull ((2));
+
#endif
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h
index 012ff15..bb92285 100644
--- a/sysdeps/unix/sysv/linux/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
index 6296ea8..9a57483 100644
--- a/sysdeps/unix/sysv/linux/bits/semaphore.h
+++ b/sysdeps/unix/sysv/linux/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Generic POSIX semaphore type layout
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/shm.h b/sysdeps/unix/sysv/linux/bits/shm.h
index 76144f5..a8f321c 100644
--- a/sysdeps/unix/sysv/linux/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/shmlba.h b/sysdeps/unix/sysv/linux/bits/shmlba.h
index 0606491..f508d32 100644
--- a/sysdeps/unix/sysv/linux/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. Generic version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h
index af9d457..ffa809f 100644
--- a/sysdeps/unix/sysv/linux/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux's sigaction.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h
index b939bf0..f4abb75 100644
--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
index c0cece9..52e715f 100644
--- a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
@@ -1,5 +1,5 @@
/* sigevent constants. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
index 5265c8d..fd38bb3 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
@@ -1,5 +1,5 @@
/* siginfo constants. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signal_ext.h b/sysdeps/unix/sysv/linux/bits/signal_ext.h
index 304a7eb..5429ea9 100644
--- a/sysdeps/unix/sysv/linux/bits/signal_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/signal_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <signal.h>, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signalfd.h b/sysdeps/unix/sysv/linux/bits/signalfd.h
index 876e09c..2325e77 100644
--- a/sysdeps/unix/sysv/linux/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signum-arch.h b/sysdeps/unix/sysv/linux/bits/signum-arch.h
index 4627134..5988b75 100644
--- a/sysdeps/unix/sysv/linux/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigstack.h b/sysdeps/unix/sysv/linux/bits/sigstack.h
index 3250e10..9563325 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigstksz.h b/sysdeps/unix/sysv/linux/bits/sigstksz.h
index c82fe3e..9e7fdbb 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstksz.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstksz.h
@@ -1,5 +1,5 @@
/* Definition of MINSIGSTKSZ and SIGSTKSZ. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/socket-constants.h b/sysdeps/unix/sysv/linux/bits/socket-constants.h
index b2102d3..b12edcb 100644
--- a/sysdeps/unix/sysv/linux/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 5ab19a8..f6eb297 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -246,6 +246,8 @@ enum
#define MSG_WAITFORONE MSG_WAITFORONE
MSG_BATCH = 0x40000, /* sendmmsg: more messages coming. */
#define MSG_BATCH MSG_BATCH
+ MSG_SOCK_DEVMEM = 0x2000000, /* Receive devmem skbs as cmsg. */
+#define MSG_SOCK_DEVMEM MSG_SOCK_DEVMEM
MSG_ZEROCOPY = 0x4000000, /* Use user data in kernel path. */
#define MSG_ZEROCOPY MSG_ZEROCOPY
MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */
diff --git a/sysdeps/unix/sysv/linux/bits/socket_type.h b/sysdeps/unix/sysv/linux/bits/socket_type.h
index 13aa922..9584e81 100644
--- a/sysdeps/unix/sysv/linux/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for generic Linux.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/spawn_ext.h b/sysdeps/unix/sysv/linux/bits/spawn_ext.h
index 667bc0b..997c53a 100644
--- a/sysdeps/unix/sysv/linux/bits/spawn_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/spawn_ext.h
@@ -1,5 +1,5 @@
/* POSIX spawn extensions. Linux version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ss_flags.h b/sysdeps/unix/sysv/linux/bits/ss_flags.h
index c715148..933e995 100644
--- a/sysdeps/unix/sysv/linux/bits/ss_flags.h
+++ b/sysdeps/unix/sysv/linux/bits/ss_flags.h
@@ -1,5 +1,5 @@
/* ss_flags values for stack_t. Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h
index fad5f43..e42a305 100644
--- a/sysdeps/unix/sysv/linux/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index 22780a1..b8578ad 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statvfs.h b/sysdeps/unix/sysv/linux/bits/statvfs.h
index 64f0dcb..1aed2f5 100644
--- a/sysdeps/unix/sysv/linux/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statx.h b/sysdeps/unix/sysv/linux/bits/statx.h
index 6a25f8f..5d8d156 100644
--- a/sysdeps/unix/sysv/linux/bits/statx.h
+++ b/sysdeps/unix/sysv/linux/bits/statx.h
@@ -1,5 +1,5 @@
/* statx-related definitions and declarations. Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/stdio_lim.h b/sysdeps/unix/sysv/linux/bits/stdio_lim.h
index 46b49fc..d299a9a 100644
--- a/sysdeps/unix/sysv/linux/bits/stdio_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/stdio_lim.h
@@ -1,5 +1,5 @@
/* System specific stdio.h definitions. Linux version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/struct_stat.h b/sysdeps/unix/sysv/linux/bits/struct_stat.h
index 35dec3d..11d1777 100644
--- a/sysdeps/unix/sysv/linux/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
index 9ded57a..4d68131 100644
--- a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
@@ -1,5 +1,5 @@
/* Definition for helper to define struct stat with 64-bit time.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
index 5383a65..89a5bda 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
index 7260883..befd25a 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,5 +34,7 @@
#define CLOCAL 0004000
#ifdef __USE_MISC
-# define ADDRB 04000000000
+# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
index 57aae5f..ff8289f 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
index 725af59..f4cd8dd 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
index 436c9d1..12727f9 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-baud.h b/sysdeps/unix/sysv/linux/bits/termios-cbaud.h
index e742313..b9aadff 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,32 +17,31 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
# define CBAUD 000000010017 /* Baud speed mask (not in POSIX). */
# define CBAUDEX 000000010000 /* Extra baud speed mask, included in CBAUD.
(not in POSIX). */
-# define CIBAUD 002003600000 /* Input baud rate (not used). */
-# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
-# define CRTSCTS 020000000000 /* Flow control. */
+# define CIBAUD 002003600000 /* Input baud rate. */
+# define IBSHIFT 16
#endif
/* Extra output baud rates (not in POSIX). */
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define __MAX_BAUD B4000000
+#define __BOTHER 0010000
+#define __B57600 0010001
+#define __B115200 0010002
+#define __B230400 0010003
+#define __B460800 0010004
+#define __B500000 0010005
+#define __B576000 0010006
+#define __B921600 0010007
+#define __B1000000 0010010
+#define __B1152000 0010011
+#define __B1500000 0010012
+#define __B2000000 0010013
+#define __B2500000 0010014
+#define __B3000000 0010015
+#define __B3500000 0010016
+#define __B4000000 0010017
diff --git a/sysdeps/unix/sysv/linux/bits/termios-misc.h b/sysdeps/unix/sysv/linux/bits/termios-misc.h
index b009d76..ca6d6f1 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-misc.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-misc.h
@@ -1,5 +1,5 @@
/* termios baud platform specific definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-struct.h b/sysdeps/unix/sysv/linux/bits/termios-struct.h
index 5397961..0aba1a4 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-struct.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
@@ -1,5 +1,5 @@
/* struct termios definition. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,8 +29,15 @@ struct termios
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
+ /* Input and output baud rates. */
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
};
diff --git a/sysdeps/unix/sysv/linux/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
index a3d032b..f465714 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
@@ -1,5 +1,5 @@
/* termios tcflag symbolic constant definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
index f190af7..20746a0 100644
--- a/sysdeps/unix/sysv/linux/bits/termios.h
+++ b/sysdeps/unix/sysv/linux/bits/termios.h
@@ -1,5 +1,5 @@
/* termios type and macro definitions. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,35 +24,41 @@ typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
-#include <bits/termios-struct.h>
+#ifdef _TERMIOS_H
+# include <bits/termios-struct.h>
+#endif
+
#include <bits/termios-c_cc.h>
#include <bits/termios-c_iflag.h>
#include <bits/termios-c_oflag.h>
/* c_cflag bit meaning */
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
+#include <bits/termios-c_cflag.h>
+
#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
+#define __B0 0000000 /* hang up */
+#define __B50 0000001
+#define __B75 0000002
+#define __B110 0000003
+#define __B134 0000004
+#define __B150 0000005
+#define __B200 0000006
+#define __B300 0000007
+#define __B600 0000010
+#define __B1200 0000011
+#define __B1800 0000012
+#define __B2400 0000013
+#define __B4800 0000014
+#define __B9600 0000015
+#define __B19200 0000016
+#define __B38400 0000017
+#include <bits/termios-cbaud.h>
+
+# define __EXTA __B19200
+# define __EXTB __B38400
+# define BOTHER __BOTHER
#endif
-#include <bits/termios-baud.h>
-#include <bits/termios-c_cflag.h>
#include <bits/termios-c_lflag.h>
#ifdef __USE_MISC
@@ -74,3 +80,5 @@ typedef unsigned int tcflag_t;
#include <bits/termios-tcflow.h>
#include <bits/termios-misc.h>
+
+#include <bits/termios-baud.h>
diff --git a/sysdeps/unix/sysv/linux/bits/time.h b/sysdeps/unix/sysv/linux/bits/time.h
index cab4057..9f311d7 100644
--- a/sysdeps/unix/sysv/linux/bits/time.h
+++ b/sysdeps/unix/sysv/linux/bits/time.h
@@ -1,5 +1,5 @@
/* System-dependent timing definitions. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/timerfd.h b/sysdeps/unix/sysv/linux/bits/timerfd.h
index d34fdf3..acee347 100644
--- a/sysdeps/unix/sysv/linux/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 03ccde6..56ba6c2 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
index 82cd81a..2bc894e 100644
--- a/sysdeps/unix/sysv/linux/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
index 67708df..c2cb3e5 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the SysV message struct msqid64_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
index f315448..03e7465 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct msqid_ds with 64-bit time.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
index 86296ca..1e3a0a7 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
index 87cbe64..2fc51a0 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the semaphore struct semid64_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
index 04717df..193a5b9 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct semid_ds with 64-bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
index 2ac89b3..3e070c1 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
index f94e947..a6fff3e 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
index 48b77ec..fb9ca04 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct semid_ds with 64-bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
index 1012ed0..12cb89a 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/typesizes.h b/sysdeps/unix/sysv/linux/bits/typesizes.h
index 87734ee..40c7dd3 100644
--- a/sysdeps/unix/sysv/linux/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h
index ead7a09..040cb8d 100644
--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h
+++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h
@@ -1,5 +1,5 @@
/* Operating system-specific extensions to sys/uio.h - Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -48,6 +48,8 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
#define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */
#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */
#define RWF_NOAPPEND 0x00000020 /* per-IO negation of O_APPEND */
+#define RWF_ATOMIC 0x00000040 /* Write is to be issued with torn-write
+ prevention. */
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/uio_lim.h b/sysdeps/unix/sysv/linux/bits/uio_lim.h
index d8a5741..2cf9be8 100644
--- a/sysdeps/unix/sysv/linux/bits/uio_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/uio_lim.h
@@ -1,5 +1,5 @@
/* Implementation limits related to sys/uio.h - Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/unistd_ext.h b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
index 2ce1d45..86bb4e7 100644
--- a/sysdeps/unix/sysv/linux/bits/unistd_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <unistd.h>, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/utsname.h b/sysdeps/unix/sysv/linux/bits/utsname.h
index aa8e219..3f6fe95 100644
--- a/sysdeps/unix/sysv/linux/bits/utsname.h
+++ b/sysdeps/unix/sysv/linux/bits/utsname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/waitflags.h b/sysdeps/unix/sysv/linux/bits/waitflags.h
index 87dc43e..acaab1a 100644
--- a/sysdeps/unix/sysv/linux/bits/waitflags.h
+++ b/sysdeps/unix/sysv/linux/bits/waitflags.h
@@ -1,5 +1,5 @@
/* Definitions of flag bits for `waitpid' et al.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/brk.c b/sysdeps/unix/sysv/linux/brk.c
index a0be43e..d788a68 100644
--- a/sysdeps/unix/sysv/linux/brk.c
+++ b/sysdeps/unix/sysv/linux/brk.c
@@ -1,5 +1,5 @@
/* Change data segment. Linux generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#include <brk_call.h>
/* This must be initialized data because commons can't have aliases. */
-void *__curbrk = 0;
+void *__curbrk = NULL;
#if HAVE_INTERNAL_BRK_ADDR_SYMBOL
/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
diff --git a/sysdeps/unix/sysv/linux/brk_call.h b/sysdeps/unix/sysv/linux/brk_call.h
index 1353042..c906ab4 100644
--- a/sysdeps/unix/sysv/linux/brk_call.h
+++ b/sysdeps/unix/sysv/linux/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Generic Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cfsetspeed.c b/sysdeps/unix/sysv/linux/cfsetspeed.c
new file mode 100644
index 0000000..8ce46f8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/cfsetspeed.c
@@ -0,0 +1,59 @@
+/* cfsetspeed(), Linux version.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <termios_internals.h>
+
+/* Set both the input and output baud rates stored in *TERMIOS_P to SPEED. */
+int
+__cfsetspeed (struct termios *termios_p, speed_t speed)
+{
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
+
+ termios_p->c_ospeed = speed;
+ termios_p->c_ispeed = speed;
+ termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ termios_p->c_cflag |= cbaud | (cbaud << IBSHIFT);
+
+ return 0;
+}
+libc_hidden_def (__cfsetspeed)
+versioned_symbol (libc, __cfsetspeed, cfsetspeed, GLIBC_2_42);
+
+#if _TERMIOS_OLD_COMPAT
+
+int
+attribute_compat_text_section
+__old_cfsetspeed (old_termios_t *termios_p, speed_t speed)
+{
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise these fields don't exist in old_termios_t */
+ termios_p->c_ospeed = real_speed;
+ termios_p->c_ispeed = real_speed;
+#endif
+ termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ termios_p->c_cflag |= speed | (speed << IBSHIFT);
+
+ return 0;
+}
+compat_symbol (libc, __old_cfsetspeed, cfsetspeed, GLIBC_2_0);
+
+#endif /* _TERMIOS_OLD_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/check_native.c b/sysdeps/unix/sysv/linux/check_native.c
index 94e676d..b8042da 100644
--- a/sysdeps/unix/sysv/linux/check_native.c
+++ b/sysdeps/unix/sysv/linux/check_native.c
@@ -1,5 +1,5 @@
/* Determine whether interfaces use native transport. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 5d9240e..c3532b6 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/chmod.c b/sysdeps/unix/sysv/linux/chmod.c
index 2743fb5..b15fd3e 100644
--- a/sysdeps/unix/sysv/linux/chmod.c
+++ b/sysdeps/unix/sysv/linux/chmod.c
@@ -1,5 +1,5 @@
/* Change permissions of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/chown.c b/sysdeps/unix/sysv/linux/chown.c
index f1c7b8a..bac53aa 100644
--- a/sysdeps/unix/sysv/linux/chown.c
+++ b/sysdeps/unix/sysv/linux/chown.c
@@ -1,5 +1,5 @@
/* Change ownership of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock.c b/sysdeps/unix/sysv/linux/clock.c
index b0b42a3..e68fafa 100644
--- a/sysdeps/unix/sysv/linux/clock.c
+++ b/sysdeps/unix/sysv/linux/clock.c
@@ -1,5 +1,5 @@
/* Return the time used by the program so far (user time + system time).
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_adjtime.c b/sysdeps/unix/sysv/linux/clock_adjtime.c
index 8c8d2aa..5a55e97 100644
--- a/sysdeps/unix/sysv/linux/clock_adjtime.c
+++ b/sysdeps/unix/sysv/linux/clock_adjtime.c
@@ -1,5 +1,5 @@
/* clock_adjtime -- tune kernel clock.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
index 736ffcc..d061c9a 100644
--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -1,5 +1,5 @@
/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c
index 89119ed..54b60b9 100644
--- a/sysdeps/unix/sysv/linux/clock_getres.c
+++ b/sysdeps/unix/sysv/linux/clock_getres.c
@@ -1,5 +1,5 @@
/* clock_getres -- Get the resolution of a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c
index f10a289..e5ae1d9 100644
--- a/sysdeps/unix/sysv/linux/clock_gettime.c
+++ b/sysdeps/unix/sysv/linux/clock_gettime.c
@@ -1,5 +1,5 @@
/* clock_gettime -- Get current time from a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c
index 7f9d4e1..6b7f9d3 100644
--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c
+++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c
index f1f4f36..21f1e0c 100644
--- a/sysdeps/unix/sysv/linux/clock_settime.c
+++ b/sysdeps/unix/sysv/linux/clock_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c
index 40ef303..9a1f27d0 100644
--- a/sysdeps/unix/sysv/linux/clone-internal.c
+++ b/sysdeps/unix/sysv/linux/clone-internal.c
@@ -1,5 +1,5 @@
/* The internal wrapper of clone and clone3.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone-pidfd-support.c b/sysdeps/unix/sysv/linux/clone-pidfd-support.c
index 0ca1958..6d52741 100644
--- a/sysdeps/unix/sysv/linux/clone-pidfd-support.c
+++ b/sysdeps/unix/sysv/linux/clone-pidfd-support.c
@@ -1,5 +1,5 @@
/* Check if kernel supports PID file descriptors.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone3.h b/sysdeps/unix/sysv/linux/clone3.h
index deff63d..847ca96 100644
--- a/sysdeps/unix/sysv/linux/clone3.h
+++ b/sysdeps/unix/sysv/linux/clone3.h
@@ -1,5 +1,5 @@
/* The clone3 kernel interface definitions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/close.c b/sysdeps/unix/sysv/linux/close.c
index 00a0aba..85456e4 100644
--- a/sysdeps/unix/sysv/linux/close.c
+++ b/sysdeps/unix/sysv/linux/close.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/close_nocancel.c b/sysdeps/unix/sysv/linux/close_nocancel.c
index 509cc89..c6aff60 100644
--- a/sysdeps/unix/sysv/linux/close_nocancel.c
+++ b/sysdeps/unix/sysv/linux/close_nocancel.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
index 23d8756..b1df5ed 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c
+++ b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
@@ -1,5 +1,5 @@
-/* Optimized strcasecmp_l implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Linux close syscall implementation -- non-cancellable, no errno update.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <string.h>
+#include <unistd.h>
+#include <sysdep-cancel.h>
+#include <not-cancel.h>
-#define __strncasecmp_l __strncasecmp_l_power7
-#define USE_IN_EXTENDED_LOCALE_MODEL 1
-
-extern __typeof (strncasecmp_l) __strncasecmp_l_power7 attribute_hidden;
-
-#include <string/strncase.c>
+void
+__close_nocancel_nostatus (int fd)
+{
+ INTERNAL_SYSCALL_CALL (close, fd);
+}
+libc_hidden_def (__close_nocancel_nostatus)
diff --git a/sysdeps/unix/sysv/linux/closedir.c b/sysdeps/unix/sysv/linux/closedir.c
index b86f79f..36f1968 100644
--- a/sysdeps/unix/sysv/linux/closedir.c
+++ b/sysdeps/unix/sysv/linux/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/closefrom_fallback.c b/sysdeps/unix/sysv/linux/closefrom_fallback.c
index 3ac22d1..b34f823 100644
--- a/sysdeps/unix/sysv/linux/closefrom_fallback.c
+++ b/sysdeps/unix/sysv/linux/closefrom_fallback.c
@@ -1,5 +1,5 @@
/* Close a range of file descriptors. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
index 9619937..0e602a1 100644
--- a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
+++ b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
@@ -1,5 +1,5 @@
/* Return point to next ancillary data entry in message header.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cnd_timedwait.c b/sysdeps/unix/sysv/linux/cnd_timedwait.c
index 1b5ca5c..04c9ef5 100644
--- a/sysdeps/unix/sysv/linux/cnd_timedwait.c
+++ b/sysdeps/unix/sysv/linux/cnd_timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional timed wait implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/connect.c b/sysdeps/unix/sysv/linux/connect.c
index 109cfc4..d60dc2e 100644
--- a/sysdeps/unix/sysv/linux/connect.c
+++ b/sysdeps/unix/sysv/linux/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9..c87febc 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -1,5 +1,5 @@
/* Socket timestamp conversion routines.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/copy_file_range.c b/sysdeps/unix/sysv/linux/copy_file_range.c
index ac32e7e..4bb27a5 100644
--- a/sysdeps/unix/sysv/linux/copy_file_range.c
+++ b/sysdeps/unix/sysv/linux/copy_file_range.c
@@ -1,5 +1,5 @@
/* Linux implementation of copy_file_range.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/creat.c b/sysdeps/unix/sysv/linux/creat.c
index 6357617..4b12087 100644
--- a/sysdeps/unix/sysv/linux/creat.c
+++ b/sysdeps/unix/sysv/linux/creat.c
@@ -1,5 +1,5 @@
/* Linux default implementation for creat.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/creat64.c b/sysdeps/unix/sysv/linux/creat64.c
index 2f65ec3..e3d6ed8 100644
--- a/sysdeps/unix/sysv/linux/creat64.c
+++ b/sysdeps/unix/sysv/linux/creat64.c
@@ -1,5 +1,5 @@
/* Linux default implementation for LFS creat.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
index 17c35f5..739353e 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
@@ -1,5 +1,5 @@
/* longjmp with sp check for C-SKY ABIV2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
index 1675107..dc36f07 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
index 12ca945..9aa5be1 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
index 588e4b4..41c2fa0 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
@@ -1,5 +1,5 @@
/* Set saved user context to current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
index 59a89d7..5dde2fd 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
index 17c4fee..19e7923 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
@@ -1,5 +1,5 @@
/* System call interface. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
index 5354d77..46b2b47 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/arch-syscall.h b/sysdeps/unix/sysv/linux/csky/arch-syscall.h
index ede3551..73fdba1 100644
--- a/sysdeps/unix/sysv/linux/csky/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/csky/arch-syscall.h
@@ -103,6 +103,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -133,6 +134,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -182,6 +184,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -224,6 +227,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -285,6 +289,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/csky/bits/procfs.h b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
index 808daaa..de50492 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/shmlba.h b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
index 595d063..e50dd2c 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/statfs.h b/sysdeps/unix/sysv/linux/csky/bits/statfs.h
index f9f3c64..c2df5ea 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
index 47a9f0a..daab371 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/csky version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/timesize.h b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
index 59d5faa..4887c20 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/csky.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/kernel-features.h b/sysdeps/unix/sysv/linux/csky/kernel-features.h
index bb0a197..bddd109 100644
--- a/sysdeps/unix/sysv/linux/csky/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/csky/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/kernel_stat.h b/sysdeps/unix/sysv/linux/csky/kernel_stat.h
index d987a25..f39c7c1 100644
--- a/sysdeps/unix/sysv/linux/csky/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/csky/kernel_stat.h
@@ -1,5 +1,5 @@
/* Internal definitions for stat functions. Linux/csky.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 96d4596..6325fc1 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2785,3 +2785,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist
index 7a68784..4ed463c 100644
--- a/sysdeps/unix/sysv/linux/csky/libm.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libm.abilist
@@ -853,3 +853,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/csky/makecontext.c b/sysdeps/unix/sysv/linux/csky/makecontext.c
index 5a8ae8b..8c2c082 100644
--- a/sysdeps/unix/sysv/linux/csky/makecontext.c
+++ b/sysdeps/unix/sysv/linux/csky/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/pointer_guard.h b/sysdeps/unix/sysv/linux/csky/pointer_guard.h
index 0b79684..281f845 100644
--- a/sysdeps/unix/sysv/linux/csky/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/csky/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. C-SKY version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
index 541b1a2..4c93743 100644
--- a/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* C-SKY definitions for signal handling calling conventions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/cachectl.h b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
index 6d7cf3e..5144481 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
@@ -1,5 +1,5 @@
/* C-SKY cache flushing interface.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
index 77fd66d..99e0598 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/user.h b/sysdeps/unix/sysv/linux/csky/sys/user.h
index eab3820..a3d5c62 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/user.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/user.h
@@ -1,6 +1,6 @@
/* This file is not used by C-SKY GDB. ptrace can use pt_regs definition
from linux kernel directly.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/syscall_cancel.S b/sysdeps/unix/sysv/linux/csky/syscall_cancel.S
new file mode 100644
index 0000000..191be62
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/syscall_cancel.S
@@ -0,0 +1,114 @@
+/* Cancellable syscall wrapper. Linux/csky version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+#ifdef SHARED
+# define STACK_ADJ 4
+#else
+# define STACK_ADJ 0
+#endif
+
+ENTRY (__syscall_cancel_arch)
+ subi sp, sp, 16 + STACK_ADJ
+ cfi_def_cfa_offset (16 + STACK_ADJ)
+#ifdef SHARED
+ st.w gb, (sp, 16)
+ lrw t1, 1f@GOTPC
+ cfi_offset (gb, -4)
+ grs gb, 1f
+1:
+#endif
+ st.w lr, (sp, 12)
+ st.w l3, (sp, 8)
+ st.w l1, (sp, 4)
+ st.w l0, (sp, 0)
+#ifdef SHARED
+ addu gb, gb, t1
+#endif
+ subi sp, sp, 16
+ cfi_def_cfa_offset (32 + STACK_ADJ)
+ cfi_offset (lr, -( 4 + STACK_ADJ))
+ cfi_offset (l3, -( 8 + STACK_ADJ))
+ cfi_offset (l1, -(12 + STACK_ADJ))
+ cfi_offset (l0, -(16 + STACK_ADJ))
+
+ mov l3, a1
+ mov a1, a3
+ ld.w a3, (sp, 32 + STACK_ADJ)
+ st.w a3, (sp, 0)
+ ld.w a3, (sp, 36 + STACK_ADJ)
+ st.w a3, (sp, 4)
+ ld.w a3, (sp, 40 + STACK_ADJ)
+ st.w a3, (sp, 8)
+ ld.w a3, (sp, 44 + STACK_ADJ)
+ st.w a3, (sp, 12)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ld.w t0, (a0, 0)
+ andi t0, t0, TCB_CANCELED_BITMASK
+ jbnez t0, 2f
+ mov a0, a2
+ ld.w a3, (sp, 4)
+ ld.w a2, (sp, 0)
+ ld.w l0, (sp, 8)
+ ld.w l1, (sp, 12)
+ trap 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ addi sp, sp, 16
+ cfi_remember_state
+ cfi_def_cfa_offset (16 + STACK_ADJ)
+#ifdef SHARED
+ ld.w gb, (sp, 16)
+ cfi_restore (gb)
+#endif
+ ld.w lr, (sp, 12)
+ cfi_restore (lr)
+ ld.w l3, (sp, 8)
+ cfi_restore (l3)
+ ld.w l1, (sp, 4)
+ cfi_restore (l1)
+ ld.w l0, (sp, 0)
+ cfi_restore (l0)
+ addi sp, sp, 16
+ cfi_def_cfa_offset (0)
+ rts
+
+2:
+ cfi_restore_state
+#ifdef SHARED
+ lrw a3, __syscall_do_cancel@GOTOFF
+ addu a3, a3, gb
+ jsr a3
+#else
+ jbsr __syscall_do_cancel
+#endif
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/csky/sysdep.h b/sysdeps/unix/sysv/linux/csky/sysdep.h
index e632f3e..6ef105d 100644
--- a/sysdeps/unix/sysv/linux/csky/sysdep.h
+++ b/sysdeps/unix/sysv/linux/csky/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/default-sched.h b/sysdeps/unix/sysv/linux/default-sched.h
index ce2591b..354db3d 100644
--- a/sysdeps/unix/sysv/linux/default-sched.h
+++ b/sysdeps/unix/sysv/linux/default-sched.h
@@ -1,5 +1,5 @@
/* Determine calling thread's scheduling parameters. Linux version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/device-nrs.h b/sysdeps/unix/sysv/linux/device-nrs.h
index 427e999..0ba287a 100644
--- a/sysdeps/unix/sysv/linux/device-nrs.h
+++ b/sysdeps/unix/sysv/linux/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Linux version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dirfd.c b/sysdeps/unix/sysv/linux/dirfd.c
index 4165ecc..1c637c6 100644
--- a/sysdeps/unix/sysv/linux/dirfd.c
+++ b/sysdeps/unix/sysv/linux/dirfd.c
@@ -1,5 +1,5 @@
/* Return the file descriptor used by a DIR stream. Unix version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dirstream.h b/sysdeps/unix/sysv/linux/dirstream.h
index 3d36437..8649f85 100644
--- a/sysdeps/unix/sysv/linux/dirstream.h
+++ b/sysdeps/unix/sysv/linux/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-affinity.h b/sysdeps/unix/sysv/linux/dl-affinity.h
index bbfede7..53ef114 100644
--- a/sysdeps/unix/sysv/linux/dl-affinity.h
+++ b/sysdeps/unix/sysv/linux/dl-affinity.h
@@ -1,5 +1,5 @@
/* CPU affinity handling for the dynamic linker. Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
index af9acfc..164a233 100644
--- a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
+++ b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
@@ -1,5 +1,5 @@
/* Print kernel diagnostics data in ld.so. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-early_allocate.c b/sysdeps/unix/sysv/linux/dl-early_allocate.c
index 4d98076..257519b 100644
--- a/sysdeps/unix/sysv/linux/dl-early_allocate.c
+++ b/sysdeps/unix/sysv/linux/dl-early_allocate.c
@@ -1,5 +1,5 @@
/* Early memory allocation for the dynamic loader. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -51,7 +51,7 @@ _dl_early_allocate (size_t size)
{
/* If brk has not been invoked, there is no need to update
__curbrk. The first call to brk will take care of that. */
- void *previous = __brk_call (0);
+ void *previous = __brk_call (NULL);
result = __brk_call (previous + size);
if (result == previous)
result = NULL;
diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
index b986898..6db9601 100644
--- a/sysdeps/unix/sysv/linux/dl-execstack.c
+++ b/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,22 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
#include <ldsodefs.h>
-#include <libintl.h>
-#include <list.h>
-#include <pthreadP.h>
-#include <stackinfo.h>
-#include <stdbool.h>
-#include <sys/mman.h>
-#include <sysdep.h>
-#include <unistd.h>
-static int
-make_main_stack_executable (void **stack_endp)
+int
+_dl_make_stack_executable (const void *stack_endp)
{
/* This gives us the highest/lowest page that needs to be changed. */
- uintptr_t page = ((uintptr_t) *stack_endp
+ uintptr_t page = ((uintptr_t) stack_endp
& -(intptr_t) GLRO(dl_pagesize));
if (__mprotect ((void *) page, GLRO(dl_pagesize),
@@ -44,65 +35,8 @@ make_main_stack_executable (void **stack_endp)
) != 0)
return errno;
- /* Clear the address. */
- *stack_endp = NULL;
-
/* Remember that we changed the permission. */
GL(dl_stack_flags) |= PF_X;
return 0;
}
-
-int
-_dl_make_stacks_executable (void **stack_endp)
-{
- /* First the main thread's stack. */
- int err = make_main_stack_executable (stack_endp);
- if (err != 0)
- return err;
-
- lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- list_t *runp;
- list_for_each (runp, &GL (dl_stack_used))
- {
- err = __nptl_change_stack_perm (list_entry (runp, struct pthread, list));
- if (err != 0)
- break;
- }
-
- /* Also change the permission for the currently unused stacks. This
- might be wasted time but better spend it here than adding a check
- in the fast path. */
- if (err == 0)
- list_for_each (runp, &GL (dl_stack_cache))
- {
- err = __nptl_change_stack_perm (list_entry (runp, struct pthread,
- list));
- if (err != 0)
- break;
- }
-
- lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- return err;
-}
-
-int
-__nptl_change_stack_perm (struct pthread *pd)
-{
-#if _STACK_GROWS_DOWN
- void *stack = pd->stackblock + pd->guardsize;
- size_t len = pd->stackblock_size - pd->guardsize;
-#elif _STACK_GROWS_UP
- void *stack = pd->stackblock;
- size_t len = (uintptr_t) pd - pd->guardsize - (uintptr_t) pd->stackblock;
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
- if (__mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
- return errno;
-
- return 0;
-}
-rtld_hidden_def (__nptl_change_stack_perm)
diff --git a/sysdeps/unix/sysv/linux/dl-execve.h b/sysdeps/unix/sysv/linux/dl-execve.h
index 598aa6f..f843262 100644
--- a/sysdeps/unix/sysv/linux/dl-execve.h
+++ b/sysdeps/unix/sysv/linux/dl-execve.h
@@ -1,5 +1,5 @@
/* execve for the dynamic linker. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-extra_tls.h b/sysdeps/unix/sysv/linux/dl-extra_tls.h
new file mode 100644
index 0000000..d48a5e9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/dl-extra_tls.h
@@ -0,0 +1,71 @@
+/* extra tls block utils for the dynamic linker. Linux version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DL_EXTRA_TLS_H
+#define _DL_EXTRA_TLS_H 1
+
+#include <stddef.h>
+#include <sys/rseq.h>
+#include <rseq-internal.h>
+#include <elf/dl-tunables.h>
+
+/* Returns the size of the extra TLS block, it must always be a multiple of the
+ alignment. */
+static inline size_t
+_dl_extra_tls_get_size (void)
+{
+ bool do_rseq = TUNABLE_GET_FULL (glibc, pthread, rseq, int, NULL);
+ if (do_rseq)
+ {
+ /* Make sure the rseq area size is at least the minimum ABI size and a
+ multiple of the requested aligment. */
+ return roundup (MAX (_rseq_size, RSEQ_AREA_SIZE_INITIAL), _rseq_align);
+ }
+
+ /* Even when disabled by tunable, an rseq area will be allocated to allow
+ application code to test the registration status with 'rseq->cpu_id >= 0'.
+ Default to the rseq ABI minimum size, this will ensure we don't use more
+ TLS than necessary. */
+ return RSEQ_AREA_SIZE_INITIAL;
+}
+
+/* Returns the alignment requirements of the extra TLS block. */
+static inline size_t
+_dl_extra_tls_get_align (void)
+{
+ bool do_rseq = TUNABLE_GET_FULL (glibc, pthread, rseq, int, NULL);
+ if (do_rseq)
+ {
+ return _rseq_align;
+ }
+
+ /* Even when disabled by tunable, an rseq area will be allocated to allow
+ application code to test the registration status with 'rseq->cpu_id >= 0'.
+ Default to the rseq ABI minimum alignment, this will ensure we don't use
+ more TLS than necessary. */
+ return RSEQ_MIN_ALIGN;
+}
+
+/* Record the offset of the extra TLS block from the thread pointer. */
+static inline void
+_dl_extra_tls_set_offset (ptrdiff_t tls_offset)
+{
+ _rseq_offset = tls_offset;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c
index 3137e86..3d0fae2 100644
--- a/sysdeps/unix/sysv/linux/dl-openat64.c
+++ b/sysdeps/unix/sysv/linux/dl-openat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-origin.c b/sysdeps/unix/sysv/linux/dl-origin.c
index f2df067..3c52ba5 100644
--- a/sysdeps/unix/sysv/linux/dl-origin.c
+++ b/sysdeps/unix/sysv/linux/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
#include <fcntl.h>
#include <ldsodefs.h>
#include <sysdep.h>
+#include <fd_to_filename.h>
/* On Linux >= 2.1 systems which have the dcache implementation we can get
the path of the application from the /proc/self/exe symlink. Try this
@@ -72,3 +73,25 @@ _dl_get_origin (void)
return result;
}
+
+/* On Linux, readlink on the magic symlinks in /proc/self/fd also has
+ the same behavior of returning the canonical path from the dcache.
+ If it does not work, we do not bother to canonicalize. */
+
+char *
+_dl_canonicalize (int fd)
+{
+ struct fd_to_filename fdfilename;
+ char canonical[PATH_MAX];
+ char *path = __fd_to_filename (fd, &fdfilename);
+ int size = INTERNAL_SYSCALL_CALL (readlinkat, AT_FDCWD, path,
+ canonical, PATH_MAX - 1);
+
+ /* Check if the path was truncated. */
+ if (size >= 0 && size < PATH_MAX - 1)
+ {
+ canonical[size] = '\0';
+ return __strdup (canonical);
+ }
+ return NULL;
+}
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index 2ec4c5a..bf08951 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions. Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
index ea2a58e..41250c9 100644
--- a/sysdeps/unix/sysv/linux/dl-parse_auxv.h
+++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
@@ -1,5 +1,5 @@
/* Parse the Linux auxiliary vector.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
#include <fpu_control.h>
#include <ldsodefs.h>
#include <link.h>
+#include <rseq-internal.h>
typedef ElfW(Addr) dl_parse_auxv_t[AT_MINSIGSTKSZ + 1];
@@ -59,5 +60,11 @@ void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values)
GLRO(dl_sysinfo) = auxv_values[AT_SYSINFO];
#endif
+ /* Get the rseq feature size, with a minimum of RSEQ_AREA_SIZE_INITIAL_USED
+ (20) for kernels that don't have AT_RSEQ_FEATURE_SIZE. */
+ _rseq_size = MAX (auxv_values[AT_RSEQ_FEATURE_SIZE],
+ RSEQ_AREA_SIZE_INITIAL_USED);
+ _rseq_align = MAX (auxv_values[AT_RSEQ_ALIGN], RSEQ_MIN_ALIGN);
+
DL_PLATFORM_AUXV
}
diff --git a/sysdeps/unix/sysv/linux/dl-rseq-symbols.S b/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
index b4bba06..2502a76 100644
--- a/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
+++ b/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
@@ -1,5 +1,5 @@
/* Define symbols used by rseq.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,14 +27,18 @@
/* Some targets define a macro to denote the zero register. */
#undef zero
-/* Define 2 symbols: '__rseq_size' is public const and '_rseq_size' (an
- alias of '__rseq_size') is hidden and writable for internal use by the
- dynamic linker which will initialize the value both symbols point to
- before copy relocations take place. */
+/* Define 3 symbols: '__rseq_size' is public const and then '_rseq_size' and
+ '__GI___rseq_size' (both aliases of '__rseq_size') are hidden, '_rseq_size'
+ is writable for internal use by the dynamic linker which will initialize
+ the value the symbols point to before copy relocations take place. */
.globl __rseq_size
.type __rseq_size, %object
.size __rseq_size, 4
+ .hidden __GI___rseq_size
+ .globl __GI___rseq_size
+ .type __GI___rseq_size, %object
+ .size __GI___rseq_size, 4
.hidden _rseq_size
.globl _rseq_size
.type _rseq_size, %object
@@ -42,17 +46,23 @@
.section .data.rel.ro
.balign 4
__rseq_size:
+__GI___rseq_size:
_rseq_size:
.zero 4
-/* Define 2 symbols: '__rseq_offset' is public const and '_rseq_offset' (an
- alias of '__rseq_offset') is hidden and writable for internal use by the
- dynamic linker which will initialize the value both symbols point to
- before copy relocations take place. */
+/* Define 3 symbols: '__rseq_offset' is public const and then '_rseq_offset'
+ and '__GI___rseq_offset' (both aliases of '__rseq_offset') are hidden,
+ '_rseq_offset' is writable for internal use by the dynamic linker which will
+ initialize the value the symbols point to before copy relocations take
+ place. */
.globl __rseq_offset
.type __rseq_offset, %object
.size __rseq_offset, RSEQ_OFFSET_SIZE
+ .hidden __GI___rseq_offset
+ .globl __GI___rseq_offset
+ .type __GI___rseq_offset, %object
+ .size __GI___rseq_offset, RSEQ_OFFSET_SIZE
.hidden _rseq_offset
.globl _rseq_offset
.type _rseq_offset, %object
@@ -60,5 +70,6 @@ _rseq_size:
.section .data.rel.ro
.balign RSEQ_OFFSET_SIZE
__rseq_offset:
+__GI___rseq_offset:
_rseq_offset:
.zero RSEQ_OFFSET_SIZE
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c
index a8ec2d7..f17a3e1 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Dynamic linker system dependencies for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <dl-auxv.h>
#include <dl-osinfo.h>
#include <dl-parse_auxv.h>
-#include <dl-procinfo.h>
#include <dl-tunables.h>
#include <elf.h>
#include <errno.h>
@@ -113,7 +112,7 @@ _dl_sysdep_start (void **start_argptr,
/* Initialize DSO sorting algorithm after tunables. */
_dl_sort_maps_init ();
- __brk (0); /* Initialize the break. */
+ __brk (NULL); /* Initialize the break. */
#ifdef DL_PLATFORM_INIT
DL_PLATFORM_INIT;
@@ -185,7 +184,10 @@ _dl_show_auxv (void)
[AT_GID - 2] = { "GID: ", dec },
[AT_EGID - 2] = { "EGID: ", dec },
[AT_PLATFORM - 2] = { "PLATFORM: ", str },
- [AT_HWCAP - 2] = { "HWCAP: ", hex },
+ [AT_HWCAP - 2] = { "HWCAP: 0x", hex },
+ [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
+ [AT_HWCAP3 - 2] = { "HWCAP3: 0x", hex },
+ [AT_HWCAP4 - 2] = { "HWCAP4: 0x", hex },
[AT_CLKTCK - 2] = { "CLKTCK: ", dec },
[AT_FPUCW - 2] = { "FPUCW: ", hex },
[AT_DCACHEBSIZE - 2] = { "DCACHEBSIZE: 0x", hex },
@@ -197,9 +199,8 @@ _dl_show_auxv (void)
[AT_SYSINFO - 2] = { "SYSINFO: 0x", hex },
[AT_SYSINFO_EHDR - 2] = { "SYSINFO_EHDR: 0x", hex },
[AT_RANDOM - 2] = { "RANDOM: 0x", hex },
- [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
- [AT_HWCAP3 - 2] = { "HWCAP3: 0x", hex },
- [AT_HWCAP4 - 2] = { "HWCAP4: 0x", hex },
+ [AT_RSEQ_FEATURE_SIZE - 2] = { "RSEQ_FEATURE_SIZE: ", dec },
+ [AT_RSEQ_ALIGN - 2] = { "RSEQ_ALIGN: ", dec },
[AT_MINSIGSTKSZ - 2] = { "MINSIGSTKSZ: ", dec },
[AT_L1I_CACHESIZE - 2] = { "L1I_CACHESIZE: ", dec },
[AT_L1I_CACHEGEOMETRY - 2] = { "L1I_CACHEGEOMETRY: 0x", hex },
@@ -220,10 +221,6 @@ _dl_show_auxv (void)
assert (AT_NULL == 0);
assert (AT_IGNORE == 1);
- /* Some entries are handled in a special way per platform. */
- if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0)
- continue;
-
if (idx < sizeof (auxvars) / sizeof (auxvars[0])
&& auxvars[idx].form != unknown)
{
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.h b/sysdeps/unix/sysv/linux/dl-sysdep.h
index 36c09bb..6381243 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.c b/sysdeps/unix/sysv/linux/dl-vdso-setup.c
index 3a44944..cd9cada 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso-setup.c
+++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.c
@@ -1,5 +1,5 @@
/* Data for vDSO support. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -66,6 +66,11 @@ PROCINFO_CLASS int (*_dl_vdso_clock_getres) (clockid_t,
PROCINFO_CLASS int (*_dl_vdso_clock_getres_time64) (clockid_t,
struct __timespec64 *) RELRO;
# endif
+# ifdef HAVE_GETRANDOM_VSYSCALL
+PROCINFO_CLASS ssize_t (*_dl_vdso_getrandom) (void *buffer, size_t len,
+ unsigned int flags, void *state,
+ size_t state_len) RELRO;
+# endif
/* PowerPC specific ones. */
# ifdef HAVE_GET_TBFREQ
diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.h b/sysdeps/unix/sysv/linux/dl-vdso-setup.h
index 8aee5a8..6962bf8 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso-setup.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.h
@@ -1,5 +1,5 @@
/* ELF symbol initialization functions for VDSO objects. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,9 @@ setup_vdso_pointers (void)
#ifdef HAVE_RISCV_HWPROBE
GLRO(dl_vdso_riscv_hwprobe) = dl_vdso_vsym (HAVE_RISCV_HWPROBE);
#endif
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ GLRO(dl_vdso_getrandom) = dl_vdso_vsym (HAVE_GETRANDOM_VSYSCALL);
+#endif
}
#endif
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
index b643cf5..da6eca8 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -1,5 +1,5 @@
/* ELF symbol resolve functions for VDSO objects.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-write.c b/sysdeps/unix/sysv/linux/dl-write.c
index de6a063..2c7f217 100644
--- a/sysdeps/unix/sysv/linux/dl-write.c
+++ b/sysdeps/unix/sysv/linux/dl-write.c
@@ -1,5 +1,5 @@
/* Implementation of the _dl_write function. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-writev.h b/sysdeps/unix/sysv/linux/dl-writev.h
index f394d1b..f3fa5c7 100644
--- a/sysdeps/unix/sysv/linux/dl-writev.h
+++ b/sysdeps/unix/sysv/linux/dl-writev.h
@@ -1,5 +1,5 @@
/* Message-writing for the dynamic linker. Linux version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dup2.c b/sysdeps/unix/sysv/linux/dup2.c
index 8c3e8b0..0075773 100644
--- a/sysdeps/unix/sysv/linux/dup2.c
+++ b/sysdeps/unix/sysv/linux/dup2.c
@@ -1,5 +1,5 @@
/* Duplicate a file descriptor. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_create.c b/sysdeps/unix/sysv/linux/epoll_create.c
index 5417bd8..8960790 100644
--- a/sysdeps/unix/sysv/linux/epoll_create.c
+++ b/sysdeps/unix/sysv/linux/epoll_create.c
@@ -1,5 +1,5 @@
/* Open an epoll file descriptor. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait.c b/sysdeps/unix/sysv/linux/epoll_pwait.c
index d0bd3d0..47a5346 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait2.c b/sysdeps/unix/sysv/linux/epoll_pwait2.c
index 0f6ac3e..bbb5f04 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait2.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait2.c
@@ -1,5 +1,5 @@
/* Implementation of epoll_pwait2 syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_wait.c b/sysdeps/unix/sysv/linux/epoll_wait.c
index be77ad5..b2d9b45 100644
--- a/sysdeps/unix/sysv/linux/epoll_wait.c
+++ b/sysdeps/unix/sysv/linux/epoll_wait.c
@@ -1,5 +1,5 @@
/* Linux epoll_wait syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errlist-compat-data.h b/sysdeps/unix/sysv/linux/errlist-compat-data.h
index 55108de..0f0885b 100644
--- a/sysdeps/unix/sysv/linux/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errlist-compat.h b/sysdeps/unix/sysv/linux/errlist-compat.h
index ae43bf8..341f13d 100644
--- a/sysdeps/unix/sysv/linux/errlist-compat.h
+++ b/sysdeps/unix/sysv/linux/errlist-compat.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compatibility macro definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errqueue.h b/sysdeps/unix/sysv/linux/errqueue.h
index 52c5735..650cf7f 100644
--- a/sysdeps/unix/sysv/linux/errqueue.h
+++ b/sysdeps/unix/sysv/linux/errqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/eventfd_read.c b/sysdeps/unix/sysv/linux/eventfd_read.c
index 21b60a8..ccb0216 100644
--- a/sysdeps/unix/sysv/linux/eventfd_read.c
+++ b/sysdeps/unix/sysv/linux/eventfd_read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/eventfd_write.c b/sysdeps/unix/sysv/linux/eventfd_write.c
index 72d95b3..88cecec 100644
--- a/sysdeps/unix/sysv/linux/eventfd_write.c
+++ b/sysdeps/unix/sysv/linux/eventfd_write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/execveat.c b/sysdeps/unix/sysv/linux/execveat.c
index e1d68b9..633fbc8 100644
--- a/sysdeps/unix/sysv/linux/execveat.c
+++ b/sysdeps/unix/sysv/linux/execveat.c
@@ -1,5 +1,5 @@
/* Execute program relative to a directory file descriptor.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
index 2fa57fd..edb22eb 100644
--- a/sysdeps/unix/sysv/linux/faccessat.c
+++ b/sysdeps/unix/sysv/linux/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Linux version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fallocate.c b/sysdeps/unix/sysv/linux/fallocate.c
index 77cedad..b03b04d 100644
--- a/sysdeps/unix/sysv/linux/fallocate.c
+++ b/sysdeps/unix/sysv/linux/fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fallocate64.c b/sysdeps/unix/sysv/linux/fallocate64.c
index 3c5436f..9033391 100644
--- a/sysdeps/unix/sysv/linux/fallocate64.c
+++ b/sysdeps/unix/sysv/linux/fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fanotify_mark.c b/sysdeps/unix/sysv/linux/fanotify_mark.c
index 4f50b30..07e365a 100644
--- a/sysdeps/unix/sysv/linux/fanotify_mark.c
+++ b/sysdeps/unix/sysv/linux/fanotify_mark.c
@@ -1,6 +1,6 @@
/* Add, remove, or modify an fanotify mark on a filesystem object.
Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fatal-prepare.h b/sysdeps/unix/sysv/linux/fatal-prepare.h
index 65fb38a..1475e28 100644
--- a/sysdeps/unix/sysv/linux/fatal-prepare.h
+++ b/sysdeps/unix/sysv/linux/fatal-prepare.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fchmodat.c b/sysdeps/unix/sysv/linux/fchmodat.c
index dad2e12..dd1fa5d 100644
--- a/sysdeps/unix/sysv/linux/fchmodat.c
+++ b/sysdeps/unix/sysv/linux/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Linux version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl.c b/sysdeps/unix/sysv/linux/fcntl.c
index 3a010ff..f7e3581 100644
--- a/sysdeps/unix/sysv/linux/fcntl.c
+++ b/sysdeps/unix/sysv/linux/fcntl.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl64.c b/sysdeps/unix/sysv/linux/fcntl64.c
index 9c7b0dd..1861b18 100644
--- a/sysdeps/unix/sysv/linux/fcntl64.c
+++ b/sysdeps/unix/sysv/linux/fcntl64.c
@@ -1,5 +1,5 @@
/* Manipulate file descriptor. Linux LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl_nocancel.c b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
index 68483d8..7349dcf 100644
--- a/sysdeps/unix/sysv/linux/fcntl_nocancel.c
+++ b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fdatasync.c b/sysdeps/unix/sysv/linux/fdatasync.c
index b4b009f..67f18d9 100644
--- a/sysdeps/unix/sysv/linux/fdatasync.c
+++ b/sysdeps/unix/sysv/linux/fdatasync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fdopendir.c b/sysdeps/unix/sysv/linux/fdopendir.c
index 26f00bb..7f8d935 100644
--- a/sysdeps/unix/sysv/linux/fdopendir.c
+++ b/sysdeps/unix/sysv/linux/fdopendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/features-time64.h b/sysdeps/unix/sysv/linux/features-time64.h
index 8d573cd..d85241d 100644
--- a/sysdeps/unix/sysv/linux/features-time64.h
+++ b/sysdeps/unix/sysv/linux/features-time64.h
@@ -1,5 +1,5 @@
/* Features part to handle 64-bit time_t support.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fexecve.c b/sysdeps/unix/sysv/linux/fexecve.c
index a62a757..a945813 100644
--- a/sysdeps/unix/sysv/linux/fexecve.c
+++ b/sysdeps/unix/sysv/linux/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
index 24e068e..ab4c654 100644
--- a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
+++ b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
@@ -1,5 +1,5 @@
# Filter preprocessor __NR_* macros and extract system call names.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
index 92d7638..52a4915 100644
--- a/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. Default version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/fpathconf.c b/sysdeps/unix/sysv/linux/fpathconf.c
index d5ce59b..f0f8bee 100644
--- a/sysdeps/unix/sysv/linux/fpathconf.c
+++ b/sysdeps/unix/sysv/linux/fpathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about descriptor FD. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstat.c b/sysdeps/unix/sysv/linux/fstat.c
index fab87e7..0df9da3 100644
--- a/sysdeps/unix/sysv/linux/fstat.c
+++ b/sysdeps/unix/sysv/linux/fstat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstat64.c b/sysdeps/unix/sysv/linux/fstat64.c
index cc9f695..8da9be3 100644
--- a/sysdeps/unix/sysv/linux/fstat64.c
+++ b/sysdeps/unix/sysv/linux/fstat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
{
#if !FSTATAT_USE_STATX
# if XSTAT_IS_XSTAT64
- /* The __NR_stat macro is defined for all ABIs that also define
+ /* The __NR_stat macro is defined for all ABIs that also define
XSTAT_IS_STAT64, so to correctly identify alpha and sparc check
__NR_newfstatat (similar to what fstatat64 does). */
# ifdef __NR_newfstatat
@@ -60,7 +60,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
# endif
#else /* !FSTATAT_USE_STATX */
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
if (fd < 0)
{
diff --git a/sysdeps/unix/sysv/linux/fstatat.c b/sysdeps/unix/sysv/linux/fstatat.c
index f587f6e..32e67c9 100644
--- a/sysdeps/unix/sysv/linux/fstatat.c
+++ b/sysdeps/unix/sysv/linux/fstatat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
index da49617..931a593 100644
--- a/sysdeps/unix/sysv/linux/fstatat64.c
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -104,7 +104,7 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf,
#else
# ifdef __NR_fstatat64
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
struct stat64 st64;
r = INTERNAL_SYSCALL_CALL (fstatat64, fd, file, &st64, flag);
diff --git a/sysdeps/unix/sysv/linux/fstatfs.c b/sysdeps/unix/sysv/linux/fstatfs.c
index 5824089..48ca390 100644
--- a/sysdeps/unix/sysv/linux/fstatfs.c
+++ b/sysdeps/unix/sysv/linux/fstatfs.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatfs64.c b/sysdeps/unix/sysv/linux/fstatfs64.c
index fa5c1ff..65d09f7 100644
--- a/sysdeps/unix/sysv/linux/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index 599f950..7da2b03 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatvfs64.c b/sysdeps/unix/sysv/linux/fstatvfs64.c
index 0a88d34..a626c9b 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fsync.c b/sysdeps/unix/sysv/linux/fsync.c
index 20addf6..4660488 100644
--- a/sysdeps/unix/sysv/linux/fsync.c
+++ b/sysdeps/unix/sysv/linux/fsync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftime.c b/sysdeps/unix/sysv/linux/ftime.c
index 06b0f3d..53fbcac 100644
--- a/sysdeps/unix/sysv/linux/ftime.c
+++ b/sysdeps/unix/sysv/linux/ftime.c
@@ -1,5 +1,5 @@
/* Deprecated return date and time. Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftruncate.c b/sysdeps/unix/sysv/linux/ftruncate.c
index 38737a5..0c9e096 100644
--- a/sysdeps/unix/sysv/linux/ftruncate.c
+++ b/sysdeps/unix/sysv/linux/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftruncate64.c b/sysdeps/unix/sysv/linux/ftruncate64.c
index 65deb26..e1d71e7 100644
--- a/sysdeps/unix/sysv/linux/ftruncate64.c
+++ b/sysdeps/unix/sysv/linux/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimens.c b/sysdeps/unix/sysv/linux/futimens.c
index 040aee9..d9ba0ee 100644
--- a/sysdeps/unix/sysv/linux/futimens.c
+++ b/sysdeps/unix/sysv/linux/futimens.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimes.c b/sysdeps/unix/sysv/linux/futimes.c
index 87e31f2..57e0531 100644
--- a/sysdeps/unix/sysv/linux/futimes.c
+++ b/sysdeps/unix/sysv/linux/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Linux version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
index e5f3e46..b9e01ad 100644
--- a/sysdeps/unix/sysv/linux/futimesat.c
+++ b/sysdeps/unix/sysv/linux/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- Change access and modification times of file. Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
index 5254cce..859fa01 100644
--- a/sysdeps/unix/sysv/linux/fxstat.c
+++ b/sysdeps/unix/sysv/linux/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __fxstat (int vers, int fd, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky */
int r = INLINE_SYSCALL_CALL (fstat64, fd, buf);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index 230374c..5e8cbb9 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using Linux fstat64/statx system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -61,7 +61,7 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
return INLINE_SYSCALL_CALL (fstat64, fd, buf);
#endif /* XSTAT_IS_XSTAT64 */
}
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
index 5cb92a1..e729f9f 100644
--- a/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
@@ -1,5 +1,5 @@
/* fxstatat used on fstatat, Linux implementation.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,7 +34,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
{
#if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI, e.g.
- csky, nios2 */
+ csky. */
if (vers == _STAT_VER_KERNEL)
{
int r = INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index 5255ca0..8645092 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -1,5 +1,5 @@
/* fxstatat64 used on fstatat64, Linux implementation.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +58,7 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
if (vers == _STAT_VER_LINUX)
return INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
#endif
diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
index 3610158..9d3bedf 100644
--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gen-syscall-h.awk b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
index a54a7bf..ebd06d8 100644
--- a/sysdeps/unix/sysv/linux/gen-syscall-h.awk
+++ b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
@@ -1,5 +1,5 @@
# Generate SYS_* macros from a list in a text file.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gentempfd.c b/sysdeps/unix/sysv/linux/gentempfd.c
index 963e9d7..1cdadc1 100644
--- a/sysdeps/unix/sysv/linux/gentempfd.c
+++ b/sysdeps/unix/sysv/linux/gentempfd.c
@@ -1,5 +1,5 @@
/* Generate a temporary file descriptor. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getclktck.c b/sysdeps/unix/sysv/linux/getclktck.c
index 5fe525b..5027a39 100644
--- a/sysdeps/unix/sysv/linux/getclktck.c
+++ b/sysdeps/unix/sysv/linux/getclktck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getcpu.c b/sysdeps/unix/sysv/linux/getcpu.c
index 0e7c323..ad15f14 100644
--- a/sysdeps/unix/sysv/linux/getcpu.c
+++ b/sysdeps/unix/sysv/linux/getcpu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
index d05b83a..2e40a28 100644
--- a/sysdeps/unix/sysv/linux/getcwd.c
+++ b/sysdeps/unix/sysv/linux/getcwd.c
@@ -1,5 +1,5 @@
/* Determine current working directory. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index 9ac6a4d..41f4535 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux non-LFS version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdents64.c b/sysdeps/unix/sysv/linux/getdents64.c
index 227fbf2..152b4f8 100644
--- a/sysdeps/unix/sysv/linux/getdents64.c
+++ b/sysdeps/unix/sysv/linux/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,100 +33,3 @@ __getdents64 (int fd, void *buf, size_t nbytes)
}
libc_hidden_def (__getdents64)
weak_alias (__getdents64, getdents64)
-
-#if _DIRENT_MATCHES_DIRENT64
-strong_alias (__getdents64, __getdents)
-#else
-# include <shlib-compat.h>
-
-# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-# include <olddirent.h>
-# include <unistd.h>
-
-static ssize_t
-handle_overflow (int fd, __off64_t offset, ssize_t count)
-{
- /* If this is the first entry in the buffer, we can report the
- error. */
- if (offset == 0)
- {
- __set_errno (EOVERFLOW);
- return -1;
- }
-
- /* Otherwise, seek to the overflowing entry, so that the next call
- will report the error, and return the data read so far. */
- if (__lseek64 (fd, offset, SEEK_SET) != 0)
- return -1;
- return count;
-}
-
-ssize_t
-__old_getdents64 (int fd, char *buf, size_t nbytes)
-{
- /* We do not move the individual directory entries. This is only
- possible if the target type (struct __old_dirent64) is smaller
- than the source type. */
- _Static_assert (offsetof (struct __old_dirent64, d_name)
- <= offsetof (struct dirent64, d_name),
- "__old_dirent64 is larger than dirent64");
- _Static_assert (__alignof__ (struct __old_dirent64)
- <= __alignof__ (struct dirent64),
- "alignment of __old_dirent64 is larger than dirent64");
-
- ssize_t retval = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
- if (retval > 0)
- {
- /* This is the marker for the first entry. Offset 0 is reserved
- for the first entry (see rewinddir). Here, we use it as a
- marker for the first entry in the buffer. We never actually
- seek to offset 0 because handle_overflow reports the error
- directly, so it does not matter that the offset is incorrect
- if entries have been read from the descriptor before (so that
- the descriptor is not actually at offset 0). */
- __off64_t previous_offset = 0;
-
- char *p = buf;
- char *end = buf + retval;
- while (p < end)
- {
- struct dirent64 *source = (struct dirent64 *) p;
-
- /* Copy out the fixed-size data. */
- __ino_t ino = source->d_ino;
- __off64_t offset = source->d_off;
- unsigned int reclen = source->d_reclen;
- unsigned char type = source->d_type;
-
- /* Check for ino_t overflow. */
- if (__glibc_unlikely (ino != source->d_ino))
- return handle_overflow (fd, previous_offset, p - buf);
-
- /* Convert to the target layout. Use a separate struct and
- memcpy to side-step aliasing issues. */
- struct __old_dirent64 result;
- result.d_ino = ino;
- result.d_off = offset;
- result.d_reclen = reclen;
- result.d_type = type;
-
- /* Write the fixed-sized part of the result to the
- buffer. */
- size_t result_name_offset = offsetof (struct __old_dirent64, d_name);
- memcpy (p, &result, result_name_offset);
-
- /* Adjust the position of the name if necessary. Copy
- everything until the end of the record, including the
- terminating NUL byte. */
- if (result_name_offset != offsetof (struct dirent64, d_name))
- memmove (p + result_name_offset, source->d_name,
- reclen - offsetof (struct dirent64, d_name));
-
- p += reclen;
- previous_offset = offset;
- }
- }
- return retval;
-}
-# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) */
-#endif /* _DIRENT_MATCHES_DIRENT64 */
diff --git a/sysdeps/unix/sysv/linux/getdirentries.c b/sysdeps/unix/sysv/linux/getdirentries.c
index fcd5d32..0d9ee3d 100644
--- a/sysdeps/unix/sysv/linux/getdirentries.c
+++ b/sysdeps/unix/sysv/linux/getdirentries.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdirentries64.c b/sysdeps/unix/sysv/linux/getdirentries64.c
index 3bcc414..7edc373 100644
--- a/sysdeps/unix/sysv/linux/getdirentries64.c
+++ b/sysdeps/unix/sysv/linux/getdirentries64.c
@@ -1,5 +1,5 @@
/* Get directory entries in a filesystem-independent format. LFS version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdtsz.c b/sysdeps/unix/sysv/linux/getdtsz.c
index 68d1176..32fd6df 100644
--- a/sysdeps/unix/sysv/linux/getdtsz.c
+++ b/sysdeps/unix/sysv/linux/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getentropy.c b/sysdeps/unix/sysv/linux/getentropy.c
index 2d8030a..a62c9fb 100644
--- a/sysdeps/unix/sysv/linux/getentropy.c
+++ b/sysdeps/unix/sysv/linux/getentropy.c
@@ -1,5 +1,5 @@
/* Implementation of getentropy based on the getrandom system call.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
index a4be8a7..b0869e2 100644
--- a/sysdeps/unix/sysv/linux/gethostid.c
+++ b/sysdeps/unix/sysv/linux/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
index 271eaa7..877c037 100644
--- a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Get IPv4 source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getitimer.c b/sysdeps/unix/sysv/linux/getitimer.c
index dd1a4b5..efd60da 100644
--- a/sysdeps/unix/sysv/linux/getitimer.c
+++ b/sysdeps/unix/sysv/linux/getitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getloadavg.c b/sysdeps/unix/sysv/linux/getloadavg.c
index 6a9c958..2ab47e2 100644
--- a/sysdeps/unix/sysv/linux/getloadavg.c
+++ b/sysdeps/unix/sysv/linux/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Linux version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getlogin.c b/sysdeps/unix/sysv/linux/getlogin.c
index 5019062..b439381 100644
--- a/sysdeps/unix/sysv/linux/getlogin.c
+++ b/sysdeps/unix/sysv/linux/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
index 8f8decc..f03ecd4 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
index dd5e6fc..3de5c4e 100644
--- a/sysdeps/unix/sysv/linux/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpeername.c b/sysdeps/unix/sysv/linux/getpeername.c
index 86f9b73..a8da0aa 100644
--- a/sysdeps/unix/sysv/linux/getpeername.c
+++ b/sysdeps/unix/sysv/linux/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpriority.c b/sysdeps/unix/sysv/linux/getpriority.c
index 89d0ee9..a9b84d5 100644
--- a/sysdeps/unix/sysv/linux/getpriority.c
+++ b/sysdeps/unix/sysv/linux/getpriority.c
@@ -1,5 +1,5 @@
/* getpriority for Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
index 6b9eb7d..6748f6f 100644
--- a/sysdeps/unix/sysv/linux/getpt.c
+++ b/sysdeps/unix/sysv/linux/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrandom-internal.h b/sysdeps/unix/sysv/linux/getrandom-internal.h
new file mode 100644
index 0000000..67e6e56
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/getrandom-internal.h
@@ -0,0 +1,29 @@
+/* Internal definitions for Linux getrandom implementation.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _GETRANDOM_INTERNAL_H
+#define _GETRANDOM_INTERNAL_H
+
+#include <pthreadP.h>
+
+extern void __getrandom_early_init (_Bool) attribute_hidden;
+
+extern void __getrandom_fork_subprocess (void) attribute_hidden;
+extern void __getrandom_vdso_release (struct pthread *curp) attribute_hidden;
+extern void __getrandom_reset_state (struct pthread *curp) attribute_hidden;
+#endif
diff --git a/sysdeps/unix/sysv/linux/getrandom.c b/sysdeps/unix/sysv/linux/getrandom.c
index 777d1de..6b7be5e 100644
--- a/sysdeps/unix/sysv/linux/getrandom.c
+++ b/sysdeps/unix/sysv/linux/getrandom.c
@@ -1,5 +1,5 @@
/* Implementation of the getrandom system call.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,13 +20,340 @@
#include <errno.h>
#include <unistd.h>
#include <sysdep-cancel.h>
+#include <sysdep.h>
+#include <sysdep-vdso.h>
+
+static inline ssize_t
+getrandom_syscall (void *buffer, size_t length, unsigned int flags,
+ bool cancel)
+{
+ return cancel
+ ? SYSCALL_CANCEL (getrandom, buffer, length, flags)
+ : INLINE_SYSCALL_CALL (getrandom, buffer, length, flags);
+}
+
+#ifdef HAVE_GETRANDOM_VSYSCALL
+# include <assert.h>
+# include <ldsodefs.h>
+# include <libc-lock.h>
+# include <list.h>
+# include <setvmaname.h>
+# include <sys/mman.h>
+# include <sys/sysinfo.h>
+# include <tls-internal.h>
+
+/* These values will be initialized at loading time by calling the
+ _dl_vdso_getrandom with a special value. The 'state_size' is the opaque
+ state size per-thread allocated with a mmap using 'mmap_prot' and
+ 'mmap_flags' argument. */
+static uint32_t state_size;
+static uint32_t state_size_cache_aligned;
+static uint32_t mmap_prot;
+static uint32_t mmap_flags;
+
+/* The function below are used on reentracy handling with (i.e. SA_NODEFER).
+ Before allocating a new state or issue the vDSO, atomically read the
+ current thread buffer, and if this is already reserved (is_reserved_ptr)
+ fallback to the syscall. Otherwise, reserve the buffer by atomically
+ setting the LSB of the opaque state pointer. The bit is cleared after the
+ vDSO is called, or before issuing the fallback syscall. */
+
+static inline void *reserve_ptr (void *p)
+{
+ return (void *) ((uintptr_t) (p) | 1UL);
+}
+
+static inline void *release_ptr (void *p)
+{
+ return (void *) ((uintptr_t) (p) & ~1UL);
+}
+
+static inline bool is_reserved_ptr (void *p)
+{
+ return (uintptr_t) (p) & 1UL;
+}
+
+static struct
+{
+ __libc_lock_define (, lock);
+
+ void **states; /* Queue of opaque states allocated with the kernel
+ provided flags and used on getrandom vDSO call. */
+ size_t len; /* Number of available free states in the queue. */
+ size_t total; /* Number of states allocated from the kernel. */
+ size_t cap; /* Total number of states that 'states' can hold before
+ needed to be resized. */
+} grnd_alloc = {
+ .lock = LLL_LOCK_INITIALIZER
+};
+
+static bool
+vgetrandom_get_state_alloc (void)
+{
+ /* Start by allocating one page for the opaque states. */
+ size_t block_size = ALIGN_UP (state_size_cache_aligned, GLRO(dl_pagesize));
+ size_t states_per_page = GLRO (dl_pagesize) / state_size_cache_aligned;
+ void *block = __mmap (NULL, GLRO(dl_pagesize), mmap_prot, mmap_flags, -1, 0);
+ if (block == MAP_FAILED)
+ return false;
+ __set_vma_name (block, block_size, " glibc: getrandom");
+
+ if (grnd_alloc.total + states_per_page > grnd_alloc.cap)
+ {
+ /* Use a new mmap instead of trying to mremap. It avoids a
+ potential multithread fork issue where fork is called just after
+ mremap returns but before assigning to the grnd_alloc.states,
+ thus making the its value invalid in the child. */
+ void *old_states = grnd_alloc.states;
+ size_t new_states_size = ALIGN_UP ((grnd_alloc.total + states_per_page)
+ * sizeof (*grnd_alloc.states),
+ GLRO(dl_pagesize));
+
+ /* There is no need to memcpy any opaque state information because
+ all the allocated opaque states are assigned to running threads
+ (meaning that if we iterate over them we can reconstruct the state
+ list). */
+ void **states = __mmap (NULL, new_states_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (states == MAP_FAILED)
+ {
+ __munmap (block, block_size);
+ return false;
+ }
+
+ /* Atomically replace the old state, so if a fork happens the child
+ process will see a consistent free state buffer. The size might
+ not be updated, but it does not really matter since the buffer is
+ always increased. */
+ grnd_alloc.states = states;
+ atomic_thread_fence_seq_cst ();
+ if (old_states != NULL)
+ __munmap (old_states, grnd_alloc.cap * sizeof (*grnd_alloc.states));
+
+ __set_vma_name (states, new_states_size, " glibc: getrandom states");
+ grnd_alloc.cap = new_states_size / sizeof (*grnd_alloc.states);
+ atomic_thread_fence_seq_cst ();
+ }
+
+ for (size_t i = 0; i < states_per_page; ++i)
+ {
+ /* There is no need to handle states that straddle a page because
+ we allocate only one page. */
+ grnd_alloc.states[i] = block;
+ block += state_size_cache_aligned;
+ }
+ /* Concurrent fork should not observe the previous pointer value. */
+ grnd_alloc.len = states_per_page;
+ grnd_alloc.total += states_per_page;
+ atomic_thread_fence_seq_cst ();
+
+ return true;
+}
+
+/* Allocate an opaque state for vgetrandom. If the grnd_alloc does not have
+ any, mmap() another page of them using the vgetrandom parameters. */
+static void *
+vgetrandom_get_state (void)
+{
+ void *state = NULL;
+
+ /* The signal blocking avoid the potential issue where _Fork() (which is
+ async-signal-safe) is called with the lock taken. The function is
+ called only once during thread lifetime, so the overhead should be
+ minimal. */
+ internal_sigset_t set;
+ internal_signal_block_all (&set);
+ __libc_lock_lock (grnd_alloc.lock);
+
+ if (grnd_alloc.len > 0 || vgetrandom_get_state_alloc ())
+ state = grnd_alloc.states[--grnd_alloc.len];
+
+ /* Barrier needed by fork: The state must be gone from the array
+ through len update before it becomes visible in the TCB. (There
+ is also a release barrier implied by the unlock, but issue a
+ stronger barrier to help fork.) */
+ atomic_thread_fence_seq_cst ();
+ __libc_lock_unlock (grnd_alloc.lock);
+ internal_signal_restore_set (&set);
+
+ return state;
+}
+
+/* Returns true when vgetrandom is used successfully. Returns false if the
+ syscall fallback should be issued in the case the vDSO is not present, in
+ the case of reentrancy, or if any memory allocation fails. */
+static ssize_t
+getrandom_vdso (void *buffer, size_t length, unsigned int flags, bool cancel)
+{
+ if (__glibc_unlikely (state_size == 0))
+ return getrandom_syscall (buffer, length, flags, cancel);
+
+ struct pthread *self = THREAD_SELF;
+
+ void *state = atomic_load_relaxed (&self->getrandom_buf);
+ if (is_reserved_ptr (state))
+ return getrandom_syscall (buffer, length, flags, cancel);
+ atomic_store_relaxed (&self->getrandom_buf, reserve_ptr (state));
+ __atomic_signal_fence (__ATOMIC_ACQ_REL);
+
+ bool r = false;
+ if (state == NULL)
+ {
+ state = vgetrandom_get_state ();
+ if (state == NULL)
+ goto out;
+ }
+
+ /* Since the vDSO implementation does not issue the syscall with the
+ cancellation bridge (__syscall_cancel_arch), use GRND_NONBLOCK so there
+ is no potential unbounded blocking in the kernel. It should be a rare
+ situation, only at system startup when RNG is not initialized. */
+ long int ret = INTERNAL_VSYSCALL_CALL (GLRO (dl_vdso_getrandom), 5,
+ buffer,
+ length,
+ flags | GRND_NONBLOCK,
+ state,
+ state_size);
+ if (INTERNAL_SYSCALL_ERROR_P (ret))
+ {
+ /* Fallback to the syscall if the kernel would block. */
+ int err = INTERNAL_SYSCALL_ERRNO (ret);
+ if (err == EAGAIN && !(flags & GRND_NONBLOCK))
+ goto out;
+
+ __set_errno (err);
+ ret = -1;
+ }
+ r = true;
+
+out:
+ __atomic_signal_fence (__ATOMIC_ACQ_REL);
+ atomic_store_relaxed (&self->getrandom_buf, state);
+ return r ? ret : getrandom_syscall (buffer, length, flags, cancel);
+}
+#endif
+
+void
+__getrandom_early_init (_Bool initial)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* libcs loaded for audit modules, dlmopen, etc. fallback to syscall. */
+ if (initial && (GLRO (dl_vdso_getrandom) != NULL))
+ {
+ /* Used to query the vDSO for the required mmap flags and the opaque
+ per-thread state size. Defined by linux/random.h. */
+ struct vgetrandom_opaque_params
+ {
+ uint32_t size_of_opaque_state;
+ uint32_t mmap_prot;
+ uint32_t mmap_flags;
+ uint32_t reserved[13];
+ } params;
+ long int ret = INTERNAL_VSYSCALL_CALL (GLRO(dl_vdso_getrandom),
+ 5, NULL, 0, 0, &params, ~0UL);
+ if (ret == 0)
+ {
+ /* Align each opaque state to L1 data cache size to avoid false
+ sharing. If the size can not be obtained, use the kernel
+ provided one. */
+ state_size = params.size_of_opaque_state;
+
+ long int ld1sz = __sysconf (_SC_LEVEL1_DCACHE_LINESIZE);
+ if (ld1sz <= 0)
+ ld1sz = 1;
+ state_size_cache_aligned = ALIGN_UP (state_size, ld1sz);
+ /* Do not enable vDSO if the required opaque state size is larger
+ than a page because we only allocate one page per time to hold
+ the states. */
+ if (state_size_cache_aligned > GLRO(dl_pagesize))
+ {
+ state_size = 0;
+ return;
+ }
+ mmap_prot = params.mmap_prot;
+ mmap_flags = params.mmap_flags;
+ }
+ }
+#endif
+}
+
+/* Re-add the state state from CURP on the free list. This function is
+ called after fork returns in the child, so no locking is required. */
+void
+__getrandom_reset_state (struct pthread *curp)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* The pointer can be reserved if the fork happened during a
+ getrandom call. */
+ void *buf = release_ptr (curp->getrandom_buf);
+ if (grnd_alloc.states == NULL || buf == NULL)
+ return;
+ assert (grnd_alloc.len < grnd_alloc.cap);
+ grnd_alloc.states[grnd_alloc.len++] = release_ptr (curp->getrandom_buf);
+ curp->getrandom_buf = NULL;
+#endif
+}
+
+/* Called when a thread terminates, and adds its random buffer back into the
+ allocator pool for use in a future thread. This is called by
+ pthread_create during thread termination, and after signal has been
+ blocked. */
+void
+__getrandom_vdso_release (struct pthread *curp)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* The pointer can be reserved if the thread was canceled in a
+ signal handler. */
+ void *buf = release_ptr (curp->getrandom_buf);
+ if (buf == NULL)
+ return;
+
+ __libc_lock_lock (grnd_alloc.lock);
+
+ size_t len = grnd_alloc.len;
+ grnd_alloc.states[len] = curp->getrandom_buf;
+ curp->getrandom_buf = NULL;
+ /* Barrier needed by fork: The state must vanish from the TCB before
+ it becomes visible in the states array. Also avoid exposing the
+ previous entry value at the same index in the states array (which
+ may be in use by another thread). */
+ atomic_thread_fence_seq_cst ();
+ grnd_alloc.len = len + 1;
+ __libc_lock_unlock (grnd_alloc.lock);
+#endif
+}
+
+/* Reset the internal lock state in case another thread has locked while
+ this thread calls fork. The stale thread states will be handled by
+ reclaim_stacks which calls __getrandom_reset_state on each thread. */
+void
+__getrandom_fork_subprocess (void)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ grnd_alloc.lock = LLL_LOCK_INITIALIZER;
+#endif
+}
+
+ssize_t
+__getrandom_nocancel (void *buffer, size_t length, unsigned int flags)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ return getrandom_vdso (buffer, length, flags, false);
+#else
+ return getrandom_syscall (buffer, length, flags, false);
+#endif
+}
/* Write up to LENGTH bytes of randomness starting at BUFFER.
Return the number of bytes written, or -1 on error. */
ssize_t
__getrandom (void *buffer, size_t length, unsigned int flags)
{
- return SYSCALL_CANCEL (getrandom, buffer, length, flags);
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ return getrandom_vdso (buffer, length, flags, true);
+#else
+ return getrandom_syscall (buffer, length, flags, true);
+#endif
}
libc_hidden_def (__getrandom)
weak_alias (__getrandom, getrandom)
diff --git a/sysdeps/unix/sysv/linux/getrlimit.c b/sysdeps/unix/sysv/linux/getrlimit.c
index 2519d0c..642eb2c 100644
--- a/sysdeps/unix/sysv/linux/getrlimit.c
+++ b/sysdeps/unix/sysv/linux/getrlimit.c
@@ -1,5 +1,5 @@
/* Linux getrlimit implementation (32 bits rlim_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c
index 451cef4..8500fe3 100644
--- a/sysdeps/unix/sysv/linux/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 implementation (64 bits rlim_t).
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrusage.c b/sysdeps/unix/sysv/linux/getrusage.c
index 9126e1f..0501b7d 100644
--- a/sysdeps/unix/sysv/linux/getrusage.c
+++ b/sysdeps/unix/sysv/linux/getrusage.c
@@ -1,5 +1,5 @@
/* getrusage -- get the rusage struct. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsockname.c b/sysdeps/unix/sysv/linux/getsockname.c
index 6c04bee..e6fe14d 100644
--- a/sysdeps/unix/sysv/linux/getsockname.c
+++ b/sysdeps/unix/sysv/linux/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsockopt.c b/sysdeps/unix/sysv/linux/getsockopt.c
index e6aa5e4..fcce4ff 100644
--- a/sysdeps/unix/sysv/linux/getsockopt.c
+++ b/sysdeps/unix/sysv/linux/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.c b/sysdeps/unix/sysv/linux/getsourcefilter.c
index a5124d5..745b2f6 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.c
@@ -1,5 +1,5 @@
/* Get source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.h b/sysdeps/unix/sysv/linux/getsourcefilter.h
index 544b5d6..ed884f3 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.h
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.h
@@ -1,5 +1,5 @@
/* __get_sol function prototype.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
index 1c041b7..c3bc83f 100644
--- a/sysdeps/unix/sysv/linux/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c
index 7ab147c..e2a2155 100644
--- a/sysdeps/unix/sysv/linux/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday - set time. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,23 +31,23 @@
static int
__gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_SYSCALL_CALL (gettimeofday, tv, tz);
}
# undef INIT_ARCH
-# define INIT_ARCH() \
- void *vdso_gettimeofday = dl_vdso_vsym (HAVE_GETTIMEOFDAY_VSYSCALL)
+# define INIT_ARCH()
libc_ifunc (__gettimeofday,
- vdso_gettimeofday ? VDSO_IFUNC_RET (vdso_gettimeofday)
- : (void *) __gettimeofday_syscall)
+ GLRO(dl_vdso_gettimeofday) != NULL
+ ? VDSO_IFUNC_RET (GLRO(dl_vdso_gettimeofday))
+ : (void *) __gettimeofday_syscall)
# else
int
__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
diff --git a/sysdeps/unix/sysv/linux/glibcsyscalls.py b/sysdeps/unix/sysv/linux/glibcsyscalls.py
index 1cf2fb9..8604d10 100644
--- a/sysdeps/unix/sysv/linux/glibcsyscalls.py
+++ b/sysdeps/unix/sysv/linux/glibcsyscalls.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Helpers for glibc system call list processing.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
index 07bdec0..0162bab 100644
--- a/sysdeps/unix/sysv/linux/glob-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob.c b/sysdeps/unix/sysv/linux/glob.c
index 63057fd..e08c356 100644
--- a/sysdeps/unix/sysv/linux/glob.c
+++ b/sysdeps/unix/sysv/linux/glob.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
index cc91180..02545b5 100644
--- a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64-time64.c b/sysdeps/unix/sysv/linux/glob64-time64.c
index 36c2df3..9575ce6 100644
--- a/sysdeps/unix/sysv/linux/glob64-time64.c
+++ b/sysdeps/unix/sysv/linux/glob64-time64.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64.c b/sysdeps/unix/sysv/linux/glob64.c
index d0e8daf..c0686e2 100644
--- a/sysdeps/unix/sysv/linux/glob64.c
+++ b/sysdeps/unix/sysv/linux/glob64.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree.c b/sysdeps/unix/sysv/linux/globfree.c
index 536eb0e..5f169ed 100644
--- a/sysdeps/unix/sysv/linux/globfree.c
+++ b/sysdeps/unix/sysv/linux/globfree.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree64-time64.c b/sysdeps/unix/sysv/linux/globfree64-time64.c
index 0fa87b2..05adcf8 100644
--- a/sysdeps/unix/sysv/linux/globfree64-time64.c
+++ b/sysdeps/unix/sysv/linux/globfree64-time64.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree64.c b/sysdeps/unix/sysv/linux/globfree64.c
index 48d7de4..e39a5ab 100644
--- a/sysdeps/unix/sysv/linux/globfree64.c
+++ b/sysdeps/unix/sysv/linux/globfree64.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c
index 5e29c9e..83f9ba5 100644
--- a/sysdeps/unix/sysv/linux/grantpt.c
+++ b/sysdeps/unix/sysv/linux/grantpt.c
@@ -1,5 +1,5 @@
/* grantpt implementation for Linux.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/Makefile b/sysdeps/unix/sysv/linux/hppa/Makefile
index 2e031e2..9eebe8e 100644
--- a/sysdeps/unix/sysv/linux/hppa/Makefile
+++ b/sysdeps/unix/sysv/linux/hppa/Makefile
@@ -15,6 +15,11 @@ test-xfail-check-wx-segment = *
endif # $(subdir) == elf
+ifeq ($(subdir),misc)
+sysdep_routines += cacheflush
+sysdep_headers += sys/cachectl.h
+endif
+
ifeq ($(subdir),debug)
test-xfail-tst-ssp-1 = $(have-ssp)
endif # $(subdir) == debug
diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
index 78528e5..1f83840 100644
--- a/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/sysdeps/unix/sysv/linux/hppa/Versions
@@ -23,4 +23,7 @@ libc {
GLIBC_2.19 {
fanotify_mark;
}
+ GLIBC_2.41 {
+ cacheflush;
+ }
}
diff --git a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
index 9eb893d..845507b 100644
--- a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/arch-syscall.h b/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
index 08b153f..d8ffab9 100644
--- a/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
@@ -124,6 +124,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 241
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 270
#define __NR_inotify_init 269
@@ -157,6 +158,7 @@
#define __NR_listen 32
#define __NR_listmount 458
#define __NR_listxattr 244
+#define __NR_listxattrat 465
#define __NR_llistxattr 245
#define __NR_lookup_dcookie 223
#define __NR_lremovexattr 248
@@ -212,6 +214,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 326
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 275
#define __NR_openat2 437
#define __NR_pause 29
@@ -259,6 +262,7 @@
#define __NR_recvmsg 184
#define __NR_remap_file_pages 227
#define __NR_removexattr 247
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 282
#define __NR_renameat2 337
@@ -324,6 +328,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 238
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 192
#define __NR_shmctl 195
diff --git a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
index f1c9573..85b820d 100644
--- a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
index e91fddd..8a4b507 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
index 84052e8..cca71b0 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/HPPA specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
index d825ee2..c86e421 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
index 096e341..009737e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
index 31354ed..9d35862 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
deleted file mode 100644
index f0b0ffa..0000000
--- a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IOCTL_H
-# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-#endif
-
-/* Use the definitions from the kernel header files. */
-#include <asm/ioctls.h>
-
-/* Oh well, this is necessary since the kernel data structure is
- different from the user-level version. */
-#undef TCGETS
-#undef TCSETS
-#undef TCSETSW
-#undef TCSETSF
-#define TCGETS _IOR ('T', 16, char[36])
-#define TCSETS _IOW ('T', 17, char[36])
-#define TCSETSW _IOW ('T', 18, char[36])
-#define TCSETSF _IOW ('T', 19, char[36])
-
-#include <linux/sockios.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
index 4dab95c..07cda67 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
index 111e9e9..b73ae2e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/HPPA version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/procfs.h b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
index cc7d33a..ad169c3 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. HPPA version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
index 772f3e6..6dabe4b 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. HPPA version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
index 17d1843..0ef9742 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for Linux/HPPA sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
index 3bc8889..9ea2c46 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
index 10a9405..d959131 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/HPPA version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
index 80a76a1..4a4ba8e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for hppa.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
index ce42be8..93d7f9a 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/HP-PARISC.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
index 09ea400..13e0b9f 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/hppa version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
index bbac12c..47782dd 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timesize.h b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
index 7c6f2ef..fe83909 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/HPPA.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
index 4995e0a..31dd5a5 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/HPPA implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
index df88949..adf43a6 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* HPPA implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
index cb3b030..9e332eb 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/HPPA implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h b/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
index 18498e3..f4cfb48 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. HPPA version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/clone.S b/sysdeps/unix/sysv/linux/hppa/clone.S
index a31afea..a4dc6eb 100644
--- a/sysdeps/unix/sysv/linux/hppa/clone.S
+++ b/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -59,16 +59,6 @@
.text
ENTRY(__clone)
- /* Prologue */
- stwm %r4, 64(%sp)
- .cfi_def_cfa_offset -64
- .cfi_offset 4, 0
- stw %sp, -4(%sp)
-#ifdef PIC
- stw %r19, -32(%sp)
- .cfi_offset 19, 32
-#endif
-
/* Sanity check arguments. */
comib,=,n 0,%arg0,.LerrorSanity /* no NULL function pointers */
comib,=,n 0,%arg1,.LerrorSanity /* no NULL stack pointers */
@@ -87,54 +77,33 @@ ENTRY(__clone)
/* User stack pointer is in the correct register already */
/* Load args from stack... */
- ldw -116(%sp), %r24 /* Load parent_tidptr */
- ldw -120(%sp), %r23 /* Load newtls */
- ldw -124(%sp), %r22 /* Load child_tidptr */
-
- /* Save the PIC register. */
-#ifdef PIC
- copy %r19, %r4 /* parent */
-#endif
+ ldw -52(%sp), %r24 /* Load parent_tidptr */
+ ldw -56(%sp), %r23 /* Load newtls */
+ ldw -60(%sp), %r22 /* Load child_tidptr */
/* Do the system call */
ble 0x100(%sr2, %r0)
ldi __NR_clone, %r20
ldi -4096, %r1
- comclr,>>= %r1, %ret0, %r0 /* Note: unsigned compare. */
- b,n .LerrorRest
-
- /* Restore the PIC register. */
-#ifdef PIC
- copy %r4, %r19 /* parent */
-#endif
-
+ comb,<<,n %r1, %ret0, .LerrorRest /* Note: unsigned compare. */
comib,=,n 0, %ret0, .LthreadStart
+ bv,n %r0(%rp)
- /* Successful return from the parent
- No need to restore the PIC register,
- since we return immediately. */
-
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r4
+.LerrorSanity:
+ /* Sanity checks failed, set errno to EINVAL. */
+ ldi -EINVAL, %ret0
.LerrorRest:
- /* Something bad happened -- no child created */
+ /* Something bad happened -- no child created -- need a frame */
+ ldo 64(%sp),%sp
+ .cfi_def_cfa_offset -64
bl __syscall_error, %rp
sub %r0, %ret0, %arg0
ldw -84(%sp), %rp
/* Return after setting errno, ret0 is set to -1 by __syscall_error. */
bv %r0(%rp)
- ldwm -64(%sp), %r4
-
-.LerrorSanity:
- /* Sanity checks failed, return -1, and set errno to EINVAL. */
- bl __syscall_error, %rp
- ldi EINVAL, %arg0
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r4
+ ldo -64(%sp), %sp
.LthreadStart:
/* Load up the arguments. */
@@ -144,20 +113,14 @@ ENTRY(__clone)
/* $$dyncall fixes child's PIC register */
/* Call the user's function */
-#ifdef PIC
- copy %r19, %r4
-#endif
bl $$dyncall, %r31
copy %r31, %rp
-#ifdef PIC
- copy %r4, %r19
-#endif
copy %r28, %r26
ble 0x100(%sr2, %r0)
ldi __NR_exit, %r20
/* We should not return from exit.
- We do not restore r4, or the stack state. */
+ We do not restore the stack state. */
iitlbp %r0, (%sr0, %r0)
PSEUDO_END(__clone)
diff --git a/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h b/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
index fc626c9..97fd597 100644
--- a/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. HPPA version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
index e4ef57e..ac0f610 100644
--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -1,5 +1,5 @@
/* Get current user context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index c4f09a2..1027141 100644
--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index fbcd60c..86b3fbd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2821,6 +2821,26 @@ GLIBC_2.4 sys_errlist D 0x400
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 cacheflush F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index d29139e..d681d6e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/hppa/makecontext.c b/sysdeps/unix/sysv/linux/hppa/makecontext.c
index 168f00e..4d35457 100644
--- a/sysdeps/unix/sysv/linux/hppa/makecontext.c
+++ b/sysdeps/unix/sysv/linux/hppa/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S
index 7816c00..979f989 100644
--- a/sysdeps/unix/sysv/linux/hppa/setcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
index bc815f1..d1f4f3a 100644
--- a/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* Machine-dependent SIGPROF signal handler. PA-RISC version
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
index ca07f3f..42deec5 100644
--- a/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.S b/sysdeps/unix/sysv/linux/hppa/swapcontext.S
index e2fdb77..13e7f83 100644
--- a/sysdeps/unix/sysv/linux/hppa/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.S
@@ -1,5 +1,5 @@
/* Swap to new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h
index c39afca..5bcbfd5 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h
@@ -1,5 +1,5 @@
-/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* HPPA cache flushing interface.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,12 +21,15 @@
#include <features.h>
+/* Get the kernel definition for the op bits. */
+#include <asm/cachectl.h>
+
__BEGIN_DECLS
#ifdef __USE_MISC
-extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
+extern int cacheflush (void *__addr, const int __nbytes,
+ const int __op) __THROW;
#endif
-extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
index 7c6ddb8..9823577 100644
--- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S b/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S
new file mode 100644
index 0000000..19f95c9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S
@@ -0,0 +1,81 @@
+/* Cancellable syscall wrapper. Linux/hppa version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ .text
+ENTRY(__syscall_cancel_arch)
+ stw %r2,-20(%r30)
+ ldo 128(%r30),%r30
+ cfi_def_cfa_offset (-128)
+ cfi_offset (2, -20)
+ ldw -180(%r30),%r28
+ copy %r26,%r20
+ stw %r28,-108(%r30)
+ ldw -184(%r30),%r28
+ copy %r24,%r26
+ stw %r28,-112(%r30)
+ ldw -188(%r30),%r28
+ stw %r28,-116(%r30)
+ ldw -192(%r30),%r28
+ stw %r4,-104(%r30)
+ stw %r28,-120(%r30)
+ copy %r25,%r28
+ copy %r23,%r25
+#ifdef __PIC__
+ stw %r19,-32(%r30)
+#endif
+ cfi_offset (4, 24)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ldw 0(%r20),%r20
+ bb,< %r20,31-TCB_CANCELED_BIT,1f
+ ldw -120(%r30),%r21
+ ldw -116(%r30),%r22
+ ldw -112(%r30),%r23
+ ldw -108(%r30),%r24
+ copy %r19, %r4
+ ble 0x100(%sr2, %r0)
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ copy %r28,%r20
+ copy %r4,%r19
+
+ ldw -148(%r30),%r2
+ ldw -104(%r30),%r4
+ bv %r0(%r2)
+ ldo -128(%r30),%r30
+1:
+ bl __syscall_do_cancel,%r2
+ nop
+ nop
+
+END(__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list
index 12e4ade..b302011 100644
--- a/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -8,5 +8,6 @@ listen - listen i:ii __listen listen
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
socketpair - socketpair i:iiif __socketpair socketpair
+cacheflush - cacheflush i:pii _flush_cache cacheflush
personality EXTRA personality Ei:i __personality personality
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.c b/sysdeps/unix/sysv/linux/hppa/sysdep.c
index 20179c4..2c979aa 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.c
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
index e47975e..bba525b 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for PA-RISC.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/vfork.S b/sysdeps/unix/sysv/linux/hppa/vfork.S
new file mode 100644
index 0000000..79dae15
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/vfork.S
@@ -0,0 +1,53 @@
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+ ble 0x100(%sr2, %r0)
+ ldi __NR_vfork, %r20
+
+ ldi -4096, %r1
+ comclr,<< %r1, %ret0, %r0 /* Note: unsigned compare. */
+ bv,n %r0(%rp)
+
+ /* Something bad happened -- no child created -- we need a frame */
+ ldo 64(%sp), %sp
+ .cfi_def_cfa_offset -64
+
+ /* Set errno */
+ bl __syscall_error, %rp
+ sub %r0, %ret0, %arg0
+
+ /* ret0 is set to -1 by __syscall_error */
+ ldw -84(%sp), %rp
+ bv %r0(%rp)
+ ldo -64(%sp), %sp
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
index 35538f6..e468d34 100644
--- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/arch-syscall.h b/sysdeps/unix/sysv/linux/i386/arch-syscall.h
index 500ca1e..196dfec 100644
--- a/sysdeps/unix/sysv/linux/i386/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/i386/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -178,6 +179,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lock 53
#define __NR_lookup_dcookie 253
@@ -243,6 +245,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 342
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -294,6 +297,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 353
@@ -367,6 +371,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/i386/brk.c b/sysdeps/unix/sysv/linux/i386/brk.c
index db0bede..b9aa65f 100644
--- a/sysdeps/unix/sysv/linux/i386/brk.c
+++ b/sysdeps/unix/sysv/linux/i386/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/i386.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index 41b2049..5ed5a2e 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/clone3.S b/sysdeps/unix/sysv/linux/i386/clone3.S
index 6803e59..139cc02 100644
--- a/sysdeps/unix/sysv/linux/i386/clone3.S
+++ b/sysdeps/unix/sysv/linux/i386/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/i386 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
index 7c33130..60f6d4d 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/dl-writev.h b/sysdeps/unix/sysv/linux/i386/dl-writev.h
index b6e05ad..d0c03f9 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-writev.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-writev.h
@@ -1,5 +1,5 @@
/* Message-writing for the dynamic linker. Linux/i386 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/getcontext.S b/sysdeps/unix/sysv/linux/i386/getcontext.S
index 9c1ca3c..799cdd3 100644
--- a/sysdeps/unix/sysv/linux/i386/getcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
index 203d7a2..0ecd9c5 100644
--- a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. IA-32 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h
index 446acfc..d21e3ba 100644
--- a/sysdeps/unix/sysv/linux/i386/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. i386 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/ldconfig.h b/sysdeps/unix/sysv/linux/i386/ldconfig.h
index 147ca09..c15c0ea 100644
--- a/sysdeps/unix/sysv/linux/i386/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/i386/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S b/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
index ee46ff9..96d05f0 100644
--- a/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
+++ b/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
@@ -1,5 +1,5 @@
/* Out-of-line syscall stub for six-argument syscalls from C. For static PIE.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
index e39fb2c..053353c 100644
--- a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
@@ -1,5 +1,5 @@
/* Out-of-line syscall stub for six-argument syscalls from C.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c989b43..6555592 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -3005,6 +3005,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/i386/libc_sigaction.c b/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
index 9d225d5..4940435 100644
--- a/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/i386.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 0797f3f..de77b0f 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1228,3 +1228,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
index 7ee5630..1ccd10c 100644
--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
+++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/pointer_guard.h b/sysdeps/unix/sysv/linux/i386/pointer_guard.h
index 79373d5..ae27c82 100644
--- a/sysdeps/unix/sysv/linux/i386/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/i386/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. i386 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/setcontext.S b/sysdeps/unix/sysv/linux/i386/setcontext.S
index b6d827d..b9b5258 100644
--- a/sysdeps/unix/sysv/linux/i386/setcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
index 6de0ff4..ec151b1 100644
--- a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/startup.h b/sysdeps/unix/sysv/linux/i386/startup.h
index c329a1a..29083c2 100644
--- a/sysdeps/unix/sysv/linux/i386/startup.h
+++ b/sysdeps/unix/sysv/linux/i386/startup.h
@@ -1,5 +1,5 @@
/* Linux/i386 definitions of functions used by static libc main startup.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/swapcontext.S b/sysdeps/unix/sysv/linux/i386/swapcontext.S
index bb736ae..18446be 100644
--- a/sysdeps/unix/sysv/linux/i386/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S
index d5bd580..99d2f70 100644
--- a/sysdeps/unix/sysv/linux/i386/syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/syscall_cancel.S b/sysdeps/unix/sysv/linux/i386/syscall_cancel.S
new file mode 100644
index 0000000..4a9247e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/syscall_cancel.S
@@ -0,0 +1,104 @@
+/* Cancellable syscall wrapper. Linux/i686 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [eax] __syscall_cancel_arch (int *cancelhandling [SP],
+ long int nr [SP+4],
+ long int arg1 [SP+8],
+ long int arg2 [SP+12],
+ long int arg3 [SP+16],
+ long int arg4 [SP+20],
+ long int arg5 [SP+24],
+ long int arg6 [SP+28]) */
+
+ENTRY (__syscall_cancel_arch)
+ pushl %ebp
+ cfi_def_cfa_offset (8)
+ cfi_offset (ebp, -8)
+ pushl %edi
+ cfi_def_cfa_offset (12)
+ cfi_offset (edi, -12)
+ pushl %esi
+ cfi_def_cfa_offset (16)
+ cfi_offset (esi, -16)
+ pushl %ebx
+ cfi_def_cfa_offset (20)
+ cfi_offset (ebx, -20)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ movl 20(%esp), %eax
+ testb $TCB_CANCELED_BITMASK, (%eax)
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%eax] being the syscall
+ number. */
+ movl 24(%esp), %eax
+ movl 28(%esp), %ebx
+ movl 32(%esp), %ecx
+ movl 36(%esp), %edx
+ movl 40(%esp), %esi
+ movl 44(%esp), %edi
+ movl 48(%esp), %ebp
+
+ /* We can not use the vDSO helper for syscall (__kernel_vsyscall)
+ because the returned PC from kernel will point to the vDSO page
+ instead of the expected __syscall_cancel_arch_{start,end}
+ marks. */
+ int $0x80
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ popl %ebx
+ cfi_restore (ebx)
+ cfi_def_cfa_offset (16)
+ popl %esi
+ cfi_restore (esi)
+ cfi_def_cfa_offset (12)
+ popl %edi
+ cfi_restore (edi)
+ cfi_def_cfa_offset (8)
+ popl %ebp
+ cfi_restore (ebp)
+ cfi_def_cfa_offset (4)
+ ret
+
+1:
+ /* Although the __syscall_do_cancel do not return, we need to stack
+ being set correctly for unwind. */
+ popl %ebx
+ cfi_restore (ebx)
+ cfi_def_cfa_offset (16)
+ popl %esi
+ cfi_restore (esi)
+ cfi_def_cfa_offset (12)
+ popl %edi
+ cfi_restore (edi)
+ cfi_def_cfa_offset (8)
+ popl %ebp
+ cfi_restore (ebp)
+ cfi_def_cfa_offset (4)
+ jmp __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.c b/sysdeps/unix/sysv/linux/i386/sysdep.c
index 5cf58cb..5897ce2 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.c
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 25852f8..87806a7 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
index 5ee644c..b40d8d7 100644
--- a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
+++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
@@ -1,5 +1,5 @@
/* Test for i386 sigaction sa_restorer handling (BZ#21269)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/vfork.S b/sysdeps/unix/sysv/linux/i386/vfork.S
index 8846b61..a37a553 100644
--- a/sysdeps/unix/sysv/linux/i386/vfork.S
+++ b/sysdeps/unix/sysv/linux/i386/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c
index 3b4de1d..5d13759 100644
--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,35 +32,23 @@
unsigned int
__if_nametoindex (const char *ifname)
{
-#ifndef SIOCGIFINDEX
- __set_errno (ENOSYS);
- return 0;
-#else
- struct ifreq ifr;
if (strlen (ifname) >= IFNAMSIZ)
{
__set_errno (ENODEV);
return 0;
}
- strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-
int fd = __opensock ();
-
if (fd < 0)
return 0;
- if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
- {
- int saved_errno = errno;
- __close_nocancel_nostatus (fd);
- if (saved_errno == EINVAL)
- __set_errno (ENOSYS);
- return 0;
- }
+ struct ifreq ifr;
+ strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
+
+ int status = __ioctl (fd, SIOCGIFINDEX, &ifr);
__close_nocancel_nostatus (fd);
- return ifr.ifr_ifindex;
-#endif
+
+ return status < 0 ? 0 : ifr.ifr_ifindex;
}
libc_hidden_def (__if_nametoindex)
weak_alias (__if_nametoindex, if_nametoindex)
@@ -83,8 +71,8 @@ weak_alias (__if_freenameindex, if_freenameindex)
libc_hidden_weak (if_freenameindex)
-static struct if_nameindex *
-if_nameindex_netlink (void)
+struct if_nameindex *
+__if_nameindex (void)
{
struct netlink_handle nh = { 0, 0, 0, NULL, NULL };
struct if_nameindex *idx = NULL;
@@ -196,19 +184,6 @@ if_nameindex_netlink (void)
return idx;
}
-
-
-struct if_nameindex *
-__if_nameindex (void)
-{
-#ifndef SIOCGIFINDEX
- __set_errno (ENOSYS);
- return NULL;
-#else
- struct if_nameindex *result = if_nameindex_netlink ();
- return result;
-#endif
-}
weak_alias (__if_nameindex, if_nameindex)
libc_hidden_weak (if_nameindex)
diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c
index 10b26d8..ddc4be7 100644
--- a/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ifreq.c b/sysdeps/unix/sysv/linux/ifreq.c
index 035a53f..45f3b5b 100644
--- a/sysdeps/unix/sysv/linux/ifreq.c
+++ b/sysdeps/unix/sysv/linux/ifreq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/bits/mman-shared.h b/sysdeps/unix/sysv/linux/include/bits/mman-shared.h
new file mode 100644
index 0000000..7c14b5d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/include/bits/mman-shared.h
@@ -0,0 +1,16 @@
+#include <sysdeps/unix/sysv/linux/bits/mman-shared.h>
+
+#ifndef _ISOMAC
+
+extern __typeof (pkey_alloc) __pkey_alloc;
+libc_hidden_proto (__pkey_alloc)
+extern __typeof (pkey_free) __pkey_free;
+libc_hidden_proto (__pkey_free)
+extern __typeof (pkey_mprotect) __pkey_mprotect;
+libc_hidden_proto (__pkey_mprotect)
+extern __typeof (pkey_get) __pkey_get;
+libc_hidden_proto (__pkey_get)
+extern __typeof (pkey_set) __pkey_set;
+libc_hidden_proto (__pkey_set)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/include/sys/mount.h b/sysdeps/unix/sysv/linux/include/sys/mount.h
index 5850927..9c57692 100644
--- a/sysdeps/unix/sysv/linux/include/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/include/sys/mount.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/mount.h.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/sys/syscall.h b/sysdeps/unix/sysv/linux/include/sys/syscall.h
index 07d7d71..5a2f42c 100644
--- a/sysdeps/unix/sysv/linux/include/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/include/sys/syscall.h
@@ -1,5 +1,5 @@
/* Wrapper header for <sys/syscall.h>. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
index 2317a26..62d95f2 100644
--- a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/sysinfo.h.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h
index c4a0af4..8af305d 100644
--- a/sysdeps/unix/sysv/linux/include/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/include/sys/timex.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/timex.h.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/inotify_init.c b/sysdeps/unix/sysv/linux/inotify_init.c
index b5b36a8..9998e64 100644
--- a/sysdeps/unix/sysv/linux/inotify_init.c
+++ b/sysdeps/unix/sysv/linux/inotify_init.c
@@ -1,5 +1,5 @@
/* Initialize an inotify instance. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal-ioctl.h b/sysdeps/unix/sysv/linux/internal-ioctl.h
index 58ab209..841f2b2 100644
--- a/sysdeps/unix/sysv/linux/internal-ioctl.h
+++ b/sysdeps/unix/sysv/linux/internal-ioctl.h
@@ -1,5 +1,5 @@
/* Linux internal definitions for ioctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal-signals.h b/sysdeps/unix/sysv/linux/internal-signals.h
index a6fae59..ecb00f5 100644
--- a/sysdeps/unix/sysv/linux/internal-signals.h
+++ b/sysdeps/unix/sysv/linux/internal-signals.h
@@ -1,5 +1,5 @@
/* Special use of signals internally. Linux version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -90,6 +90,15 @@ internal_signal_restore_set (const internal_sigset_t *set)
__NSIG_BYTES);
}
+static inline void
+internal_signal_unblock_signal (int sig)
+{
+ internal_sigset_t set;
+ internal_sigemptyset (&set);
+ internal_sigaddset (&set, sig);
+ INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &set, NULL,
+ __NSIG_BYTES);
+}
/* It is used on timer_create code directly on sigwaitinfo call, so it can not
use the internal_sigset_t definitions. */
diff --git a/sysdeps/unix/sysv/linux/internal-sigset.h b/sysdeps/unix/sysv/linux/internal-sigset.h
index 5d7020b..a1a6c32 100644
--- a/sysdeps/unix/sysv/linux/internal-sigset.h
+++ b/sysdeps/unix/sysv/linux/internal-sigset.h
@@ -1,5 +1,5 @@
/* Internal sigset_t definition.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sigsetops.h>
-typedef struct
+typedef struct _internal_sigset_t
{
unsigned long int __val[__NSIG_WORDS];
} internal_sigset_t;
diff --git a/sysdeps/unix/sysv/linux/internal-stat.h b/sysdeps/unix/sysv/linux/internal-stat.h
index 9334059..61fca97 100644
--- a/sysdeps/unix/sysv/linux/internal-stat.h
+++ b/sysdeps/unix/sysv/linux/internal-stat.h
@@ -1,5 +1,5 @@
/* Internal stat definitions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index e8c046e..fe6a433 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.h b/sysdeps/unix/sysv/linux/internal_statvfs.h
index 6d23860..8c5f0a7 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.h
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.h
@@ -1,5 +1,5 @@
/* Internal statvfs/statvfs64 function prototypes.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ioctl.c b/sysdeps/unix/sysv/linux/ioctl.c
index 230aeda..b0d3747 100644
--- a/sysdeps/unix/sysv/linux/ioctl.c
+++ b/sysdeps/unix/sysv/linux/ioctl.c
@@ -1,5 +1,5 @@
/* Control device. Linux generic implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ipc_ops.h b/sysdeps/unix/sysv/linux/ipc_ops.h
index f9b9109..0b2270d 100644
--- a/sysdeps/unix/sysv/linux/ipc_ops.h
+++ b/sysdeps/unix/sysv/linux/ipc_ops.h
@@ -1,5 +1,5 @@
/* The codes for the functions to use the ipc syscall multiplexer.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ipc_priv.h b/sysdeps/unix/sysv/linux/ipc_priv.h
index 8b8341c..6ace4b7 100644
--- a/sysdeps/unix/sysv/linux/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Default version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/sparc/dl-tls.h b/sysdeps/unix/sysv/linux/isatty.c
index 5af2dc7..e7e98f8 100644
--- a/sysdeps/sparc/dl-tls.h
+++ b/sysdeps/unix/sysv/linux/isatty.c
@@ -1,5 +1,5 @@
-/* Thread-local storage handling in the ELF dynamic linker. SPARC version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Test whether a file descriptor refers to a terminal. Linux version.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,13 +16,14 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <termios_internals.h>
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
+/* Return 1 if FD is a terminal, 0 if not. This simply does a
+ TCGETS2 ioctl into a dummy buffer without parsing the result. */
+int
+__isatty (int fd)
{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-
-extern void *__tls_get_addr (tls_index *ti);
+ struct termios2 k_termios;
+ return INLINE_SYSCALL_CALL (ioctl, fd, ARCH_TCGETS, &k_termios) == 0;
+}
+weak_alias (__isatty, isatty)
diff --git a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/sysdeps/unix/sysv/linux/isatty_nostatus.c
index b759d37..9970442 100644
--- a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/isatty_nostatus.c
@@ -1,5 +1,4 @@
-/* Nios II definitions for signal handling calling conventions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,13 +15,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _SIGCONTEXTINFO_H
-#define _SIGCONTEXTINFO_H
+#include <termios_internals.h>
-static inline uintptr_t
-sigcontext_get_pc (const ucontext_t *ctx)
+/* Return 1 if FD is a terminal, 0 if not, without changing errno */
+int
+__isatty_nostatus (int fd)
{
- return ctx->uc_mcontext.regs[27];
+ struct termios2 k_termios;
+ return INTERNAL_SYSCALL_CALL (ioctl, fd, ARCH_TCGETS, &k_termios) == 0;
}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index a25cf07..a49a915 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,6 +54,10 @@
configurations). */
#define __ASSUME_SET_ROBUST_LIST 1
+/* The termios2 interface was introduced across all architectures except
+ Alpha in kernel 2.6.22. */
+#define __ASSUME_TERMIOS2 1
+
/* Support for various CLOEXEC and NONBLOCK flags was added in
2.6.27. */
#define __ASSUME_IN_NONBLOCK 1
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index d10b000..3000953 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/kernel_stat.h b/sysdeps/unix/sysv/linux/kernel_stat.h
index b6cfc4a..a861c94 100644
--- a/sysdeps/unix/sysv/linux/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/kernel_stat.h
@@ -1,5 +1,5 @@
/* Internal definitions for stat functions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/kernel_termios.h b/sysdeps/unix/sysv/linux/kernel_termios.h
deleted file mode 100644
index 12d9b92..0000000
--- a/sysdeps/unix/sysv/linux/kernel_termios.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/lchown.c b/sysdeps/unix/sysv/linux/lchown.c
index c4699ed..090df24 100644
--- a/sysdeps/unix/sysv/linux/lchown.c
+++ b/sysdeps/unix/sysv/linux/lchown.c
@@ -1,5 +1,5 @@
/* Change ownership of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h
index d847376..25a6058 100644
--- a/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/libc-vdso.h b/sysdeps/unix/sysv/linux/libc-vdso.h
index d854350..a0c2064 100644
--- a/sysdeps/unix/sysv/linux/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/libc-vdso.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index 4676757..72d7328 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -1,5 +1,5 @@
/* Catastrophic failure reports. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/libc_sigaction.c b/sysdeps/unix/sysv/linux/libc_sigaction.c
index 8b894d3..67dbc04 100644
--- a/sysdeps/unix/sysv/linux/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -49,7 +49,7 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
{
kact.k_sa_handler = act->sa_handler;
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
- kact.sa_flags = act->sa_flags;
+ kact.sa_flags = (unsigned int) act->sa_flags;
SET_SA_RESTORER (&kact, act);
}
diff --git a/sysdeps/unix/sysv/linux/librt-compat.c b/sysdeps/unix/sysv/linux/librt-compat.c
index 973e518..b755bd4 100644
--- a/sysdeps/unix/sysv/linux/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/link.c b/sysdeps/unix/sysv/linux/link.c
index 3dfc7c8..06bda8e 100644
--- a/sysdeps/unix/sysv/linux/link.c
+++ b/sysdeps/unix/sysv/linux/link.c
@@ -1,5 +1,5 @@
/* Make a new name for a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h
index 7beda01..9758942 100644
--- a/sysdeps/unix/sysv/linux/linux_fsinfo.h
+++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -1,5 +1,5 @@
/* Constants from kernel header for various FSes.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -251,6 +251,7 @@
#define XFS_SUPER_MAGIC 0x58465342
/* Maximum link counts. */
+#define BTRFS_LINK_MAX 65535
#define COH_LINK_MAX 10000
#define EXT2_LINK_MAX 32000
#define EXT4_LINK_MAX 65000
diff --git a/sysdeps/unix/sysv/linux/listen.c b/sysdeps/unix/sysv/linux/listen.c
index a27c6df..25dfedc 100644
--- a/sysdeps/unix/sysv/linux/listen.c
+++ b/sysdeps/unix/sysv/linux/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h b/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
index 8bb8244..f57a152 100644
--- a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
@@ -93,6 +93,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -122,6 +123,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -169,6 +171,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -208,6 +211,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -264,6 +268,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h b/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
index 0962826..683e947 100644
--- a/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h b/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
index c10c65d..f06e702 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the generic Linux/LoongArch ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h b/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
index 16d17fa..99920ff 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. LoongArch64 Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,3 +36,4 @@
#define HWCAP_LOONGARCH_LBT_ARM (1 << 11)
#define HWCAP_LOONGARCH_LBT_MIPS (1 << 12)
#define HWCAP_LOONGARCH_PTW (1 << 13)
+#define HWCAP_LOONGARCH_LSPW (1 << 14)
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h b/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
index 85f311f..c4088d8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
index 5b16627..4c8c8a4 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. LoongArch Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
new file mode 100644
index 0000000..a7413ae
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
@@ -0,0 +1,36 @@
+/* Restartable Sequences Linux LoongArch architecture header.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RSEQ_H
+# error "Never use <bits/rseq.h> directly; include <sys/rseq.h> instead."
+#endif
+
+/* RSEQ_SIG is a signature required before each abort handler code.
+
+ It is a 32-bit value that maps to actual architecture code compiled
+ into applications and libraries. It needs to be defined for each
+ architecture. When choosing this value, it needs to be taken into
+ account that generating invalid instructions may have ill effects on
+ tools like objdump, and may also have impact on the CPU speculative
+ execution efficiency in some cases.
+
+ RSEQ_SIG uses the following break instruction:
+
+ 0x002a0010 break 0x10
+*/
+
+#define RSEQ_SIG 0x002a0010
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h b/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
index 8ff960a..e74644d 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. LoongArch version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h b/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
index 61da2e9..f94a549 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/clone.S b/sysdeps/unix/sysv/linux/loongarch/clone.S
index c4fd93d..2a68dd3 100644
--- a/sysdeps/unix/sysv/linux/loongarch/clone.S
+++ b/sysdeps/unix/sysv/linux/loongarch/clone.S
@@ -1,5 +1,5 @@
/* The clone syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/clone3.S b/sysdeps/unix/sysv/linux/loongarch/clone3.S
index dfffb1f..39d43ca 100644
--- a/sysdeps/unix/sysv/linux/loongarch/clone3.S
+++ b/sysdeps/unix/sysv/linux/loongarch/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c b/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
index ba6201a..5162c52 100644
--- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. LoongArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
index eec5195..726b6e4 100644
--- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. LoongArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-cache.h b/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
index 6f88368..629c71d 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c b/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
index 5e056a1..853e57f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
@@ -1,6 +1,6 @@
/* Data for LoongArch64 version of processor capability information.
Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c b/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
index 30b84f1..a7ae605 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. LoongArch version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h
new file mode 100644
index 0000000..c1b89ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h
@@ -0,0 +1,21 @@
+/* Regularize <asm/unistd.h> definitions. LoongArch version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* To avoid the messy usage of the fstat, newfstatat, and statx system calls, we
+only use statx. */
+#undef __NR_fstat
+#undef __NR_newfstatat
diff --git a/sysdeps/unix/sysv/linux/loongarch/getcontext.S b/sysdeps/unix/sysv/linux/loongarch/getcontext.S
index 79e14d8..4e78c7c 100644
--- a/sysdeps/unix/sysv/linux/loongarch/getcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
index 72043dd..93ea6ce 100644
--- a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/libc-start.c b/sysdeps/unix/sysv/linux/loongarch/libc-start.c
index e545f7f..51e276f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/libc-start.c
+++ b/sysdeps/unix/sysv/linux/loongarch/libc-start.c
@@ -1,5 +1,5 @@
/* Override csu/libc-start.c on LoongArch64.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
index 0023ec1..a6cab96 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
@@ -2269,3 +2269,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
index 16bde43..4b3ea80 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
@@ -1068,3 +1068,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/loongarch/makecontext.c b/sysdeps/unix/sysv/linux/loongarch/makecontext.c
index 4215cd0..82a868f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/makecontext.c
+++ b/sysdeps/unix/sysv/linux/loongarch/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
index b85c58d..00f4ad7 100644
--- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/readelflib.c b/sysdeps/unix/sysv/linux/loongarch/readelflib.c
index 2975012..bb7d6d2 100644
--- a/sysdeps/unix/sysv/linux/loongarch/readelflib.c
+++ b/sysdeps/unix/sysv/linux/loongarch/readelflib.c
@@ -1,5 +1,5 @@
/* Support for reading ELF files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/setcontext.S b/sysdeps/unix/sysv/linux/loongarch/setcontext.S
index e1ce498..ef4830a 100644
--- a/sysdeps/unix/sysv/linux/loongarch/setcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h b/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
index e608005..28505a1 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* LoongArch definitions for signal handling calling conventions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
index e8029b4..4b8a90b 100644
--- a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h b/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
index 613ffe8..4992f67 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/sys/user.h b/sysdeps/unix/sysv/linux/loongarch/sys/user.h
index 2e6428f..2d5ac88 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sys/user.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sys/user.h
@@ -1,5 +1,5 @@
/* struct user_regs_struct definition for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/vfork.S b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S
index 897b637..1cc3d61 100644
--- a/sysdeps/unix/sysv/linux/nios2/vfork.S
+++ b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S
@@ -1,5 +1,5 @@
-/* vfork for Nios II Linux.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Cancellable syscall wrapper. Linux/loongarch version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,21 +14,37 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
+ <http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <tcb-offsets.h>
-
-ENTRY(__vfork)
-
- movi r4, 0x4111 /* (CLONE_VM | CLONE_VFORK | SIGCHLD) */
- mov r5, zero
- DO_CALL (clone, 2)
-
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
+#include <descr-const.h>
+
+ENTRY (__syscall_cancel_arch)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ld.w t0, a0, 0
+ andi t0, t0, TCB_CANCELED_BITMASK
+ bnez t0, 1f
+
+ /* Issue a 6 argument syscall. */
+ move t1, a1
+ move a0, a2
+ move a1, a3
+ move a2, a4
+ move a3, a5
+ move a4, a6
+ move a5, a7
+ move a7, t1
+ syscall 0
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ jr ra
+1:
+ b __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.S b/sysdeps/unix/sysv/linux/loongarch/sysdep.S
index 8b8b0e1..1680022 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sysdep.S
+++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.h b/sysdeps/unix/sysv/linux/loongarch/sysdep.h
index eb0ba79..b9835d8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sysdep.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -119,6 +119,7 @@
#define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime"
#define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
#define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
+#define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
#define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
index bfb0759..99bc8b0 100644
--- a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/vfork.S b/sysdeps/unix/sysv/linux/loongarch/vfork.S
index a172823..903d0f8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/vfork.S
+++ b/sysdeps/unix/sysv/linux/loongarch/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Linux.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/lseek.c b/sysdeps/unix/sysv/linux/lseek.c
index 39d7963..ff83735 100644
--- a/sysdeps/unix/sysv/linux/lseek.c
+++ b/sysdeps/unix/sysv/linux/lseek.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 32 bits off_t.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lseek64.c b/sysdeps/unix/sysv/linux/lseek64.c
index f7ae01f..49f4136 100644
--- a/sysdeps/unix/sysv/linux/lseek64.c
+++ b/sysdeps/unix/sysv/linux/lseek64.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 64 bits off_t.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lstat.c b/sysdeps/unix/sysv/linux/lstat.c
index 7d87fcf..5b44171 100644
--- a/sysdeps/unix/sysv/linux/lstat.c
+++ b/sysdeps/unix/sysv/linux/lstat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lstat64.c b/sysdeps/unix/sysv/linux/lstat64.c
index cd09493..3d70ef8 100644
--- a/sysdeps/unix/sysv/linux/lstat64.c
+++ b/sysdeps/unix/sysv/linux/lstat64.c
@@ -1,5 +1,5 @@
/* Get file status.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lutimes.c b/sysdeps/unix/sysv/linux/lutimes.c
index 9b56d93..8f8d3c7 100644
--- a/sysdeps/unix/sysv/linux/lutimes.c
+++ b/sysdeps/unix/sysv/linux/lutimes.c
@@ -1,6 +1,6 @@
/* Change access and/or modification date of file. Do not follow symbolic
links.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index 7f8d5e1..b6eb715 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
return r ?: stat_overflow (buf);
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 16ad8b8..aee1efb 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using Linux lstat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -69,7 +69,7 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
diff --git a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
index 8d2aa20..8442f7a 100644
--- a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/arch-syscall.h b/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
index 4ab34f6..a95cb41 100644
--- a/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 226
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
#define __NR_inotify_init 284
@@ -173,6 +174,7 @@
#define __NR_listen 360
#define __NR_listmount 458
#define __NR_listxattr 229
+#define __NR_listxattrat 465
#define __NR_llistxattr 230
#define __NR_lookup_dcookie 248
#define __NR_lremovexattr 233
@@ -232,6 +234,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 341
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -281,6 +284,7 @@
#define __NR_recvmsg 369
#define __NR_remap_file_pages 252
#define __NR_removexattr 232
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 351
@@ -354,6 +358,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 223
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
index f0d37cc..59cde28 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/poll.h b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
index 9cdfe43..3e64d9e 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
index 09a63e5..f5b5c8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. M68K version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
index 6c9b997..cec1f48 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. M68K version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
index bbbbd3d..4a64432 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
@@ -1,5 +1,5 @@
/* Definition of struct sockaddr_* members and sizes, Linux/m68k version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
index b7f2018..0402b01 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/timesize.h b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
index ad9be44..606125e 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/m68k.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h b/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
index a13f9f3..e0bebf9 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. m68k version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
index dc5bd4f..258d704 100644
--- a/sysdeps/unix/sysv/linux/m68k/clone.S
+++ b/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
index e9a5c35..5f1b232 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index d9bd6a9..7b7b72a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -2781,6 +2781,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
index 4f39f25..30b182f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
index 14e0aac..207a296 100644
--- a/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 82a34a8..3515b20 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h b/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
index 3efee8b..864c34b 100644
--- a/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
+++ b/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
@@ -1,5 +1,5 @@
/* Private libc-internal arch-specific definitions. m68k version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
index cde0dbf..df8858d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 439796d..df398e4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2948,6 +2948,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 6fd32e7..9dba60b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -914,3 +914,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
index 8affb64..60b71b3 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
index 6f85825..67fd246 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
index 060a7b2..8ce7531 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
index 2560e91..02bde90 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
index c428742..845aae5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
+++ b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
index 2b2c8c2..7ba902f 100644
--- a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. Linux/m68k version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/mremap.S b/sysdeps/unix/sysv/linux/m68k/mremap.S
index 62011a8..eb27d9b 100644
--- a/sysdeps/unix/sysv/linux/m68k/mremap.S
+++ b/sysdeps/unix/sysv/linux/m68k/mremap.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
index 429bc24..312ffc5 100644
--- a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
index 6bde111..e7f8522 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index db9c153..88062db 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/user.h b/sysdeps/unix/sysv/linux/m68k/sys/user.h
index 1ced05f..b461dab 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/user.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall.S b/sysdeps/unix/sysv/linux/m68k/syscall.S
index 10776a8..24bda51 100644
--- a/sysdeps/unix/sysv/linux/m68k/syscall.S
+++ b/sysdeps/unix/sysv/linux/m68k/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S b/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S
new file mode 100644
index 0000000..00b94a1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S
@@ -0,0 +1,84 @@
+/* Cancellable syscall wrapper. Linux/m68k version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+
+ENTRY (__syscall_cancel_arch)
+#ifdef __mcoldfire__
+ lea (-16,%sp),%sp
+ movem.l %d2-%d5,(%sp)
+#else
+ movem.l %d2-%d5,-(%sp)
+#endif
+ cfi_def_cfa_offset (20)
+ cfi_offset (2, -20)
+ cfi_offset (3, -16)
+ cfi_offset (4, -12)
+ cfi_offset (5, -8)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ move.l 20(%sp),%a0
+ move.l (%a0),%d0
+#ifdef __mcoldfire__
+ move.w %d0,%ccr
+ jeq 1f
+#else
+ btst #TCB_CANCELED_BIT,%d0
+ jne 1f
+#endif
+
+ move.l 48(%sp),%a0
+ move.l 44(%sp),%d5
+ move.l 40(%sp),%d4
+ move.l 36(%sp),%d3
+ move.l 32(%sp),%d2
+ move.l 28(%sp),%d1
+ move.l 24(%sp),%d0
+ trap #0
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+#ifdef __mcoldfire__
+ movem.l (%sp),%d2-%d5
+ lea (16,%sp),%sp
+#else
+ movem.l (%sp)+,%d2-%d5
+#endif
+ rts
+
+1:
+#ifdef PIC
+ bsr.l __syscall_do_cancel
+#else
+ jsr __syscall_do_cancel
+#endif
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 484f7a9..fc3276d 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index 0e43b4a..6f6b46e 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/vfork.S b/sysdeps/unix/sysv/linux/m68k/vfork.S
index 985b14d..542595b 100644
--- a/sysdeps/unix/sysv/linux/m68k/vfork.S
+++ b/sysdeps/unix/sysv/linux/m68k/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/machine-sp.h b/sysdeps/unix/sysv/linux/machine-sp.h
index 601b6b4..6ab3ca6 100644
--- a/sysdeps/unix/sysv/linux/machine-sp.h
+++ b/sysdeps/unix/sysv/linux/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/malloc-hugepages.c b/sysdeps/unix/sysv/linux/malloc-hugepages.c
index e8f82fb..e23cdfb 100644
--- a/sysdeps/unix/sysv/linux/malloc-hugepages.c
+++ b/sysdeps/unix/sysv/linux/malloc-hugepages.c
@@ -1,5 +1,5 @@
/* Huge Page support. Linux implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/malloc-sysdep.h b/sysdeps/unix/sysv/linux/malloc-sysdep.h
index 1ca2d6a..778d897 100644
--- a/sysdeps/unix/sysv/linux/malloc-sysdep.h
+++ b/sysdeps/unix/sysv/linux/malloc-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific malloc support functions. Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
index 3bac090..82b3492 100644
--- a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h b/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
index 79e225e..fe08f5c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -178,6 +179,7 @@
#define __NR_listen 348
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lock 53
#define __NR_lookup_dcookie 253
@@ -242,6 +244,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 372
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -294,6 +297,7 @@
#define __NR_recvmsg 361
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 383
@@ -370,6 +374,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 335
#define __NR_shmctl 336
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1069d32..ca8df6f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2834,3 +2834,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index d2c2cdb..5596e08 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
index da936f4..63681bb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
index ef8c27e..eff7f39 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. MicroBlaze version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
index ff1e269..4b47cc7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
index 60de226..9b7d983 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/MicroBlaze.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h b/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
index 943babb..a07dc91 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Microblaze version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
index 6d907d8..4c4e99e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
+++ b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
@@ -1,6 +1,6 @@
/* ABI compatibility redirects for clock_* symbols in librt.
MicroBlaze version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/clone.S b/sysdeps/unix/sysv/linux/microblaze/clone.S
index 30e9ee2..8b108fc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clone.S
+++ b/sysdeps/unix/sysv/linux/microblaze/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index 69e322e..96c3131 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
index c0a121f..d4bca02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 17abe08..9508154 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2831,3 +2831,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index d2c2cdb..5596e08 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/pselect32.c b/sysdeps/unix/sysv/linux/microblaze/pselect32.c
index 3aee185..d2a84ff 100644
--- a/sysdeps/unix/sysv/linux/microblaze/pselect32.c
+++ b/sysdeps/unix/sysv/linux/microblaze/pselect32.c
@@ -1,5 +1,5 @@
/* Synchronous I/O multiplexing. Linux/microblaze version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
index e9c2355..d6335fc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
index 35124b4..52b615b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
@@ -1,5 +1,5 @@
/* Data structures for user-level context switching. MicroBlaze version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
index 362cc09..d9deec4 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/user.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall.S b/sysdeps/unix/sysv/linux/microblaze/syscall.S
index 6c1ba07..6ebf688 100644
--- a/sysdeps/unix/sysv/linux/microblaze/syscall.S
+++ b/sysdeps/unix/sysv/linux/microblaze/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
new file mode 100644
index 0000000..38150e6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
@@ -0,0 +1,61 @@
+/* Cancellable syscall wrapper. Linux/microblaze version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lwi r3,r5,0
+ andi r3,r3,TCB_CANCELED_BITMASK
+ bneid r3,1f
+ addk r12,r6,r0
+
+ addk r5,r7,r0
+ addk r6,r8,r0
+ addk r7,r9,r0
+ addk r8,r10,r0
+ lwi r9,r1,56
+ lwi r10,r1,60
+ brki r14,8
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ nop
+ lwi r15,r1,0
+ rtsd r15,8
+ addik r1,r1,28
+
+1:
+ brlid r15, __syscall_do_cancel
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysctl.c b/sysdeps/unix/sysv/linux/microblaze/sysctl.c
index 0e7d132..cb1f200 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysctl.c
+++ b/sysdeps/unix/sysv/linux/microblaze/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub. microblaze version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.S b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
index 09d2f1e..0a3c1b6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.S
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
index 9c52923..ac56648 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/vfork.S b/sysdeps/unix/sysv/linux/microblaze/vfork.S
index 7f53f81..75375bd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/vfork.S
+++ b/sysdeps/unix/sysv/linux/microblaze/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index d5725c6..05ec915 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -61,6 +61,7 @@ ifeq ($(subdir),elf)
# this test is expected to fail.
ifneq ($(mips-has-gnustack),yes)
test-xfail-check-execstack = yes
+CFLAGS-tst-execstack.c += -DDEFAULT_RWX_STACK=1
endif
endif
@@ -68,6 +69,12 @@ ifeq ($(subdir),stdlib)
gen-as-const-headers += ucontext_i.sym
endif
+ifeq ($(subdir),nptl)
+ifeq ($(mips-force-execstack),yes)
+CFLAGS-tst-execstack-threads.c += -DDEFAULT_RWX_STACK=1
+endif
+endif
+
ifeq ($(mips-force-execstack),yes)
CFLAGS-.o += -Wa,-execstack
CFLAGS-.os += -Wa,-execstack
diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
index 9ea0fa6..48f0037 100644
--- a/sysdeps/unix/sysv/linux/mips/Versions
+++ b/sysdeps/unix/sysv/linux/mips/Versions
@@ -26,6 +26,10 @@ libc {
pthread_attr_setstack;
pthread_attr_setstacksize;
}
+ GLIBC_2.42 {
+ tcgetattr;
+ tcsetattr;
+ }
GLIBC_PRIVATE {
# nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
__vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
index 9119909..de3891f 100644
--- a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/_test_and_set.c b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
index a4ff4fa..255e439 100644
--- a/sysdeps/unix/sysv/linux/mips/_test_and_set.c
+++ b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/epoll.h b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
index 7a9e6f0..e417cbe 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/errno.h b/sysdeps/unix/sysv/linux/mips/bits/errno.h
index bc87c2e..1dfaeac 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. MIPS/Linux specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
index a1dcbdd..9c35666 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
index 774e150..c814bfc 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/inotify.h b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
index 12c590e..4017182 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
index 18c554f..84bb6fc 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/MIPS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,18 +31,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 8
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- char c_line; /* line discipline */
- /* Yes, this is really NCCS. */
- unsigned char c_cc[32 /* NCCS */]; /* control characters */
- };
-
/* modem lines */
#define TIOCM_LE 0x001 /* line enable */
#define TIOCM_DTR 0x002 /* data terminal ready */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/mman.h b/sysdeps/unix/sysv/linux/mips/bits/mman.h
index 517f52d..91e43a2 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/MIPS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/poll.h b/sysdeps/unix/sysv/linux/mips/bits/poll.h
index 9cdfe43..3e64d9e 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/procfs.h b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
index 7a26ae1..7af0b4d 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
index 8c1ee07..4829024 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. MIPS Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/resource.h b/sysdeps/unix/sysv/linux/mips/bits/resource.h
index d288256..05f8e6a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/MIPS version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/rseq.h b/sysdeps/unix/sysv/linux/mips/bits/rseq.h
index 0abd1ce..a72c17c 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux mips architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shmlba.h b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
index dfd857f..5509e3a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. MIPS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
index 0f31f90..f7e3ad8 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/MIPS's sigaction.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
index 0a5a7b1..a3a5cc3 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
index ccd1f9e..bbd450e 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
index 2625c35..d16c13c 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/MIPS version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
index 77ffc8b..d71571b 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for MIPS.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
index 313c34c..26438e1 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/MIPS.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
index bf92bd9..a685953 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
index 50a4b36..0670f48 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
index 7bed635..a1ed86b 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
index 5d3310e..a2c7679 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h b/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
deleted file mode 100644
index 95882b7..0000000
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* struct termios definition. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
-#endif
-
-#define NCCS 32
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
- };
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
index 0c0f0542..986c56a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
index 6b8250b..ab20435 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timesize.h b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
index ccc0643..80d8240 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/MIPS.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
index 4f52d55..a80b4a0 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. MIPS Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
index 09c5364..61723d3 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/MIPS implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
index 0746684..730f7a8 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* MIPS implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
index c665af1..ee6bcb0 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/MIPS implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/typesizes.h b/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
index 1b4f700..1539181 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. MIPS version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
index eaa879f..d4f95d2 100644
--- a/sysdeps/unix/sysv/linux/mips/clone.S
+++ b/sysdeps/unix/sysv/linux/mips/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/clone3.S b/sysdeps/unix/sysv/linux/mips/clone3.S
index 58925d6..7e6f3cc 100644
--- a/sysdeps/unix/sysv/linux/mips/clone3.S
+++ b/sysdeps/unix/sysv/linux/mips/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/mips version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/mips/dl-cache.h b/sysdeps/unix/sysv/linux/mips/dl-cache.h
index e3e0c1a..72499fd 100644
--- a/sysdeps/unix/sysv/linux/mips/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/mips/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h b/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
index fafc254..6bd6821 100644
--- a/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. MIPS version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/fxstat.c b/sysdeps/unix/sysv/linux/mips/fxstat.c
index 4ab3a34..d367227 100644
--- a/sysdeps/unix/sysv/linux/mips/fxstat.c
+++ b/sysdeps/unix/sysv/linux/mips/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/getcontext.S b/sysdeps/unix/sysv/linux/mips/getcontext.S
index 48b3500..4e10d37 100644
--- a/sysdeps/unix/sysv/linux/mips/getcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/getrlimit64.c b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
index 39691dd..bdc535f 100644
--- a/sysdeps/unix/sysv/linux/mips/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index 5977177..d86ac92 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
deleted file mode 100644
index 478f295..0000000
--- a/sysdeps/unix/sysv/linux/mips/kernel_termios.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.24 kernel. */
-
-#define __KERNEL_NCCS 23
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
index 5f6cdea..22d45dd 100644
--- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. MIPS.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/lxstat.c b/sysdeps/unix/sysv/linux/mips/lxstat.c
index 8bf8f67..e36fdf4 100644
--- a/sysdeps/unix/sysv/linux/mips/lxstat.c
+++ b/sysdeps/unix/sysv/linux/mips/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/makecontext.S b/sysdeps/unix/sysv/linux/mips/makecontext.S
index 63909f2..dd632b3 100644
--- a/sysdeps/unix/sysv/linux/mips/makecontext.S
+++ b/sysdeps/unix/sysv/linux/mips/makecontext.S
@@ -1,5 +1,5 @@
/* Modify saved context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
index dadd7f3..7d76d65 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
@@ -131,6 +131,7 @@
#define __NR_gettimeofday 4078
#define __NR_getuid 4024
#define __NR_getxattr 4227
+#define __NR_getxattrat 4464
#define __NR_gtty 4032
#define __NR_idle 4112
#define __NR_init_module 4128
@@ -168,6 +169,7 @@
#define __NR_listen 4174
#define __NR_listmount 4458
#define __NR_listxattr 4230
+#define __NR_listxattrat 4465
#define __NR_llistxattr 4231
#define __NR_lock 4053
#define __NR_lookup_dcookie 4247
@@ -227,6 +229,7 @@
#define __NR_open 4005
#define __NR_open_by_handle_at 4340
#define __NR_open_tree 4428
+#define __NR_open_tree_attr 4467
#define __NR_openat 4288
#define __NR_openat2 4437
#define __NR_pause 4029
@@ -279,6 +282,7 @@
#define __NR_recvmsg 4177
#define __NR_remap_file_pages 4251
#define __NR_removexattr 4233
+#define __NR_removexattrat 4466
#define __NR_rename 4038
#define __NR_renameat 4295
#define __NR_renameat2 4351
@@ -343,6 +347,7 @@
#define __NR_settimeofday 4079
#define __NR_setuid 4023
#define __NR_setxattr 4224
+#define __NR_setxattrat 4463
#define __NR_sgetmask 4068
#define __NR_shmat 4397
#define __NR_shmctl 4396
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
index a36507d..5f75a4e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
@@ -1,5 +1,5 @@
/* Tests register values retrieved by getcontext() for mips o32.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 799e508..4d51cc4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2909,6 +2909,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index a7c8ca0..cdcc488 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
index 137198a..2fcc21b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
index b54fad4..dcd579d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
index a4722aa..68da583 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
index ed0e688..66a1bfa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
index 5b229f8..fb1516c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
index 4287178..8116bfb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
index 1de808f..0938e6d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
index b212f51..7a56c16 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
index 4164849..e6a2f66 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1c10996..7f90fad 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2907,6 +2907,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S b/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S
new file mode 100644
index 0000000..1190f08
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S
@@ -0,0 +1,128 @@
+/* Cancellable syscall wrapper. Linux/mips32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/asm.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6,
+ __syscall_arg_t arg7) */
+
+#define FRAME_SIZE 56
+
+NESTED (__syscall_cancel_arch, FRAME_SIZE, fp)
+ .mask 0xc0070000,-SZREG
+ .fmask 0x00000000,0
+
+ PTR_ADDIU sp, -FRAME_SIZE
+ cfi_def_cfa_offset (FRAME_SIZE)
+
+ sw fp, 48(sp)
+ sw ra, 52(sp)
+ sw s2, 44(sp)
+ sw s1, 40(sp)
+ sw s0, 36(sp)
+#ifdef __PIC__
+ .cprestore 16
+#endif
+ cfi_offset (ra, -4)
+ cfi_offset (fp, -8)
+ cfi_offset (s2, -12)
+ cfi_offset (s1, -16)
+ cfi_offset (s0, -20)
+
+ move fp ,sp
+ cfi_def_cfa_register (fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lw v0, 0(a0)
+ andi v0, v0, TCB_CANCELED_BITMASK
+ bne v0, zero, 2f
+
+ addiu sp, sp, -16
+ addiu v0, sp, 16
+ sw v0, 24(fp)
+
+ move s0, a1
+ move a0, a2
+ move a1, a3
+ lw a2, 72(fp)
+ lw a3, 76(fp)
+ lw v0, 84(fp)
+ lw s1, 80(fp)
+ lw s2, 88(fp)
+
+ .set noreorder
+ subu sp, 32
+ sw s1, 16(sp)
+ sw v0, 20(sp)
+ sw s2, 24(sp)
+ move v0, s0
+ syscall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ addiu sp, sp, 32
+ .set reorder
+
+ beq a3, zero, 1f
+ subu v0, zero, v0
+1:
+ move sp, fp
+ cfi_remember_state
+ cfi_def_cfa_register (sp)
+ lw ra, 52(fp)
+ lw fp, 48(sp)
+ lw s2, 44(sp)
+ lw s1, 40(sp)
+ lw s0, 36(sp)
+
+ .set noreorder
+ .set nomacro
+ jr ra
+ addiu sp,sp,FRAME_SIZE
+
+ .set macro
+ .set reorder
+
+ cfi_def_cfa_offset (0)
+ cfi_restore (s0)
+ cfi_restore (s1)
+ cfi_restore (s2)
+ cfi_restore (fp)
+ cfi_restore (ra)
+
+2:
+ cfi_restore_state
+#ifdef __PIC__
+ PTR_LA t9, __syscall_do_cancel
+ jalr t9
+#else
+ jal __syscall_do_cancel
+#endif
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
index 1827caf..83ccfb0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,10 @@
#ifndef _LINUX_MIPS_MIPS32_SYSDEP_H
#define _LINUX_MIPS_MIPS32_SYSDEP_H 1
+/* mips32 have cancelable syscalls with 7 arguments (currently only
+ sync_file_range). */
+#define HAVE_CANCELABLE_SYSCALL_WITH_7_ARGS 1
+
/* There is some commonality. */
#include <sysdeps/unix/sysv/linux/mips/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
index 8bf8d05..8a7c3d0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using 64-bit MIPS fstat system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
index 583aafe..007b531 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
index 93d2556..37acf1e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
index f81ae5b..4b0fe2c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux/MIPSn64 LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
index 7f17aed..b2d93cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. MIPS64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h b/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
index fac8c0c..6e8375d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
@@ -1,5 +1,5 @@
/* Struct stat/stat64 to stat/stat64 conversion for Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 8e36e16..888164b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
index 4294668..c872172 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using 64-bit MIPS lstat system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
index 064e234..a8d9eaa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
index db6b2d4..bca3ea6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
@@ -124,6 +124,7 @@
#define __NR_gettimeofday 6094
#define __NR_getuid 6100
#define __NR_getxattr 6183
+#define __NR_getxattrat 6464
#define __NR_init_module 6168
#define __NR_inotify_add_watch 6248
#define __NR_inotify_init 6247
@@ -156,6 +157,7 @@
#define __NR_listen 6049
#define __NR_listmount 6458
#define __NR_listxattr 6186
+#define __NR_listxattrat 6465
#define __NR_llistxattr 6187
#define __NR_lookup_dcookie 6206
#define __NR_lremovexattr 6190
@@ -210,6 +212,7 @@
#define __NR_open 6002
#define __NR_open_by_handle_at 6304
#define __NR_open_tree 6428
+#define __NR_open_tree_attr 6467
#define __NR_openat 6251
#define __NR_openat2 6437
#define __NR_pause 6033
@@ -258,6 +261,7 @@
#define __NR_recvmsg 6046
#define __NR_remap_file_pages 6210
#define __NR_removexattr 6189
+#define __NR_removexattrat 6466
#define __NR_rename 6080
#define __NR_renameat 6258
#define __NR_renameat2 6315
@@ -323,6 +327,7 @@
#define __NR_settimeofday 6159
#define __NR_setuid 6103
#define __NR_setxattr 6180
+#define __NR_setxattrat 6463
#define __NR_shmat 6029
#define __NR_shmctl 6030
#define __NR_shmdt 6065
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 03d9655..fc366d1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2915,6 +2915,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
index 1d21ced..b33c119 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
@@ -1,5 +1,5 @@
/* MIPS n32 lseek implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
index 9c739d1..7e0fb03 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. MIPS n32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/nios2/bits/dl_find_object.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h
index 744aa85..90c0a0b 100644
--- a/sysdeps/nios2/bits/dl_find_object.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h
@@ -1,5 +1,5 @@
-/* nios2 definitions for finding objects.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Types and macros used for syscall issuing. MIPS64n32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,10 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DLFCN_H
-# error "Never use <bits/dl_find_object.h> directly; include <dlfcn.h> instead."
-#endif
+#ifndef _SYSCALL_TYPES_H
+#define _SYSCALL_TYPES_H
+
+typedef long long int __syscall_arg_t;
-#define DLFO_STRUCT_HAS_EH_DBASE 1
-#define DLFO_STRUCT_HAS_EH_COUNT 0
-#define DLFO_EH_SEGMENT_TYPE PT_GNU_EH_FRAME
+/* Convert X to a long long, without losing any bits if it is one
+ already or warning if it is a 32-bit pointer. */
+#define __SSC(__x) ((__syscall_arg_t) (__typeof__ ((__x) - (__x))) (__x))
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
index b4129a4..5bcd929 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
@@ -116,6 +116,7 @@
#define __NR_gettimeofday 5094
#define __NR_getuid 5100
#define __NR_getxattr 5183
+#define __NR_getxattrat 5464
#define __NR_init_module 5168
#define __NR_inotify_add_watch 5244
#define __NR_inotify_init 5243
@@ -147,6 +148,7 @@
#define __NR_listen 5049
#define __NR_listmount 5458
#define __NR_listxattr 5186
+#define __NR_listxattrat 5465
#define __NR_llistxattr 5187
#define __NR_lookup_dcookie 5206
#define __NR_lremovexattr 5190
@@ -199,6 +201,7 @@
#define __NR_open 5002
#define __NR_open_by_handle_at 5299
#define __NR_open_tree 5428
+#define __NR_open_tree_attr 5467
#define __NR_openat 5247
#define __NR_openat2 5437
#define __NR_pause 5033
@@ -244,6 +247,7 @@
#define __NR_recvmsg 5046
#define __NR_remap_file_pages 5210
#define __NR_removexattr 5189
+#define __NR_removexattrat 5466
#define __NR_rename 5080
#define __NR_renameat 5254
#define __NR_renameat2 5311
@@ -305,6 +309,7 @@
#define __NR_settimeofday 5159
#define __NR_setuid 5103
#define __NR_setxattr 5180
+#define __NR_setxattrat 5463
#define __NR_shmat 5029
#define __NR_shmctl 5030
#define __NR_shmdt 5065
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
index bbb687a..efac564 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux/MIPSn64 version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
index 13f5ce0..667ddaf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright 2003-2024 Free Software Foundation, Inc.
+/* Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 05e402e..debd5c3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2817,6 +2817,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
index 79f7e3d..22647e0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
index ce1c42c..819b0e5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
index 37548a8..b3e1fb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
index ddc84b1..0ebaa60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
new file mode 100644
index 0000000..edd7c4d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
@@ -0,0 +1,112 @@
+/* Cancellable syscall wrapper. Linux/mips64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/asm.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6,
+ __syscall_arg_t arg7) */
+
+#define FRAME_SIZE 32
+
+ .text
+NESTED (__syscall_cancel_arch, FRAME_SIZE, ra)
+ .mask 0x90010000, -SZREG
+ .fmask 0x00000000, 0
+ LONG_ADDIU sp, sp, -FRAME_SIZE
+ cfi_def_cfa_offset (FRAME_SIZE)
+ sd gp, 16(sp)
+ cfi_offset (gp, -16)
+ lui gp, %hi(%neg(%gp_rel(__syscall_cancel_arch)))
+ LONG_ADDU gp, gp, t9
+ sd ra, 24(sp)
+ sd s0, 8(sp)
+ cfi_offset (ra, -8)
+ cfi_offset (s0, -24)
+ LONG_ADDIU gp, gp, %lo(%neg(%gp_rel(__syscall_cancel_arch)))
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lw v0, 0(a0)
+ andi v0, v0, TCB_CANCELED_BITMASK
+ .set noreorder
+ .set nomacro
+ bne v0, zero, 2f
+ move s0, a1
+ .set macro
+ .set reorder
+
+ move a0, a2
+ move a1, a3
+ move a2, a4
+ move a3, a5
+ move a4, a6
+ move a5, a7
+
+ .set noreorder
+ move v0, s0
+ syscall
+ .set reorder
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ .set noreorder
+ .set nomacro
+#if __mips_isa_rev >= 6
+ beqzc $7, 1f
+#else
+ bnel a3, zero, 1f
+#endif
+ SUBU v0, zero, v0
+ .set macro
+ .set reorder
+
+1:
+ ld ra, 24(sp)
+ ld gp, 16(sp)
+ ld s0, 8(sp)
+
+ .set noreorder
+ .set nomacro
+ jr ra
+ LONG_ADDIU sp, sp, FRAME_SIZE
+ .set macro
+ .set reorder
+
+ cfi_remember_state
+ cfi_def_cfa_offset (0)
+ cfi_restore (s0)
+ cfi_restore (gp)
+ cfi_restore (ra)
+ .align 3
+2:
+ cfi_restore_state
+ LONG_L t9, %got_disp(__syscall_do_cancel)(gp)
+ .reloc 3f, R_MIPS_JALR, __syscall_do_cancel
+3: jalr t9
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
index 0a1711d..78044d6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,15 +44,7 @@
#undef HAVE_INTERNAL_BRK_ADDR_SYMBOL
#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1
-#if _MIPS_SIM == _ABIN32
-/* Convert X to a long long, without losing any bits if it is one
- already or warning if it is a 32-bit pointer. */
-# define ARGIFY(X) ((long long int) (__typeof__ ((X) - (X))) (X))
-typedef long long int __syscall_arg_t;
-#else
-# define ARGIFY(X) ((long int) (X))
-typedef long int __syscall_arg_t;
-#endif
+#include <syscall_types.h>
/* Note that the original Linux syscall restart convention required the
instruction immediately preceding SYSCALL to initialize $v0 with the
@@ -120,7 +112,7 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -144,8 +136,8 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -170,9 +162,9 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -199,10 +191,10 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -229,11 +221,11 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
- __syscall_arg_t _arg5 = ARGIFY (arg5); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
+ __syscall_arg_t _arg5 = __SSC (arg5); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -261,12 +253,12 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
- __syscall_arg_t _arg5 = ARGIFY (arg5); \
- __syscall_arg_t _arg6 = ARGIFY (arg6); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
+ __syscall_arg_t _arg5 = __SSC (arg5); \
+ __syscall_arg_t _arg6 = __SSC (arg6); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
index e8a6300..2738130 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using Linux stat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/old_termios.h b/sysdeps/unix/sysv/linux/mips/old_termios.h
new file mode 100644
index 0000000..8164742
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/old_termios.h
@@ -0,0 +1,31 @@
+/* old_termios.h for MIPS.
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _HAVE_STRUCT_OLD_TERMIOS 1
+
+#define OLD_NCCS 32
+typedef struct old_termios
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[OLD_NCCS]; /* control characters */
+} old_termios_t;
diff --git a/sysdeps/unix/sysv/linux/mips/readelflib.c b/sysdeps/unix/sysv/linux/mips/readelflib.c
index 57e8d72..d648a29 100644
--- a/sysdeps/unix/sysv/linux/mips/readelflib.c
+++ b/sysdeps/unix/sysv/linux/mips/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/setcontext.S b/sysdeps/unix/sysv/linux/mips/setcontext.S
index b9aa153..c16571a 100644
--- a/sysdeps/unix/sysv/linux/mips/setcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/setrlimit64.c b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
index 2a7279b..fd7a83e 100644
--- a/sysdeps/unix/sysv/linux/mips/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
index 6282d37..bd6f371 100644
--- a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
index 2531fff..62450de 100644
--- a/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/swapcontext.S b/sysdeps/unix/sysv/linux/mips/swapcontext.S
index 51351a0..bdb3d6f 100644
--- a/sysdeps/unix/sysv/linux/mips/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
index b1de27b..d059246 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
index b00900d..71c84c6 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index ddde9ab..90d3e1a 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/sys/user.h b/sysdeps/unix/sysv/linux/mips/sys/user.h
index c70a49c..b9e7ed0 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/user.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.h b/sysdeps/unix/sysv/linux/mips/sysdep.h
index 74ca3d6..76e121a 100644
--- a/sysdeps/unix/sysv/linux/mips/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux MIPS generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c
index e827136..084f8b5 100644
--- a/sysdeps/unix/sysv/linux/mips/ustat.c
+++ b/sysdeps/unix/sysv/linux/mips/ustat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/vfork.S b/sysdeps/unix/sysv/linux/mips/vfork.S
index 13f8fba..36b3621 100644
--- a/sysdeps/unix/sysv/linux/mips/vfork.S
+++ b/sysdeps/unix/sysv/linux/mips/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/xstat.c b/sysdeps/unix/sysv/linux/mips/xstat.c
index f7651cf..e2bfc94 100644
--- a/sysdeps/unix/sysv/linux/mips/xstat.c
+++ b/sysdeps/unix/sysv/linux/mips/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/xstatconv.c b/sysdeps/unix/sysv/linux/mips/xstatconv.c
index 1c87b62..b8fa14a 100644
--- a/sysdeps/unix/sysv/linux/mips/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/mips/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mkdir.c b/sysdeps/unix/sysv/linux/mkdir.c
index fbab0a9..3fb245a 100644
--- a/sysdeps/unix/sysv/linux/mkdir.c
+++ b/sysdeps/unix/sysv/linux/mkdir.c
@@ -1,5 +1,5 @@
/* Create a directory. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mknodat.c b/sysdeps/unix/sysv/linux/mknodat.c
index 8e350e2..e86624b 100644
--- a/sysdeps/unix/sysv/linux/mknodat.c
+++ b/sysdeps/unix/sysv/linux/mknodat.c
@@ -1,5 +1,5 @@
/* Create a special or ordinary file. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mlock2.c b/sysdeps/unix/sysv/linux/mlock2.c
index 11f5e68..468f33e 100644
--- a/sysdeps/unix/sysv/linux/mlock2.c
+++ b/sysdeps/unix/sysv/linux/mlock2.c
@@ -1,5 +1,5 @@
/* Wrapper for the mlock2 system call with fallback to mlock.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mmap.c b/sysdeps/unix/sysv/linux/mmap.c
index c7f8a6f..6af5e6d 100644
--- a/sysdeps/unix/sysv/linux/mmap.c
+++ b/sysdeps/unix/sysv/linux/mmap.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
index f1869fa..e202356 100644
--- a/sysdeps/unix/sysv/linux/mmap64.c
+++ b/sysdeps/unix/sysv/linux/mmap64.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap_call.h b/sysdeps/unix/sysv/linux/mmap_call.h
index f55dd2b..719fcff 100644
--- a/sysdeps/unix/sysv/linux/mmap_call.h
+++ b/sysdeps/unix/sysv/linux/mmap_call.h
@@ -1,5 +1,5 @@
/* Generic definition of MMAP_CALL and MMAP_CALL_INTERNAL.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap_internal.h b/sysdeps/unix/sysv/linux/mmap_internal.h
index b2c2e27..215a507 100644
--- a/sysdeps/unix/sysv/linux/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_close.c b/sysdeps/unix/sysv/linux/mq_close.c
index 6120960..f0faa45 100644
--- a/sysdeps/unix/sysv/linux/mq_close.c
+++ b/sysdeps/unix/sysv/linux/mq_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_getattr.c b/sysdeps/unix/sysv/linux/mq_getattr.c
index fc5fa41..f70af92 100644
--- a/sysdeps/unix/sysv/linux/mq_getattr.c
+++ b/sysdeps/unix/sysv/linux/mq_getattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index 55b4294..f99e9ea 100644
--- a/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/sysdeps/unix/sysv/linux/mq_notify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_open.c b/sysdeps/unix/sysv/linux/mq_open.c
index 936001b..493ccb7 100644
--- a/sysdeps/unix/sysv/linux/mq_open.c
+++ b/sysdeps/unix/sysv/linux/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
index 0955476..980db63 100644
--- a/sysdeps/unix/sysv/linux/mq_receive.c
+++ b/sysdeps/unix/sysv/linux/mq_receive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_send.c b/sysdeps/unix/sysv/linux/mq_send.c
index c936942..16847a6 100644
--- a/sysdeps/unix/sysv/linux/mq_send.c
+++ b/sysdeps/unix/sysv/linux/mq_send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_setattr.c b/sysdeps/unix/sysv/linux/mq_setattr.c
index 098c740..09cbae6 100644
--- a/sysdeps/unix/sysv/linux/mq_setattr.c
+++ b/sysdeps/unix/sysv/linux/mq_setattr.c
@@ -1,5 +1,5 @@
/* mq_setattr system call wrapper.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
index f2f24ea..3ee2753 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -1,5 +1,5 @@
/* Receive a message from a message queue with a timeout. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
index a0ccda9..cb27f1a 100644
--- a/sysdeps/unix/sysv/linux/mq_timedsend.c
+++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -1,5 +1,5 @@
/* Send a message to a message queue with a timeout. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_unlink.c b/sysdeps/unix/sysv/linux/mq_unlink.c
index ce4b889..e21e05a 100644
--- a/sysdeps/unix/sysv/linux/mq_unlink.c
+++ b/sysdeps/unix/sysv/linux/mq_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mremap-failure.h b/sysdeps/unix/sysv/linux/mremap-failure.h
index c99ab30..8535d62 100644
--- a/sysdeps/unix/sysv/linux/mremap-failure.h
+++ b/sysdeps/unix/sysv/linux/mremap-failure.h
@@ -1,5 +1,5 @@
/* mremap failure handling. Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mremap.c b/sysdeps/unix/sysv/linux/mremap.c
index 1ada5c1..e93986e 100644
--- a/sysdeps/unix/sysv/linux/mremap.c
+++ b/sysdeps/unix/sysv/linux/mremap.c
@@ -1,5 +1,5 @@
/* Remap a virtual memory address. Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
index 3120cae..ee794c3 100644
--- a/sysdeps/unix/sysv/linux/msgctl.c
+++ b/sysdeps/unix/sysv/linux/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgget.c b/sysdeps/unix/sysv/linux/msgget.c
index 71eea73..608a6ec 100644
--- a/sysdeps/unix/sysv/linux/msgget.c
+++ b/sysdeps/unix/sysv/linux/msgget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
index 3051900..35059b2 100644
--- a/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/sysdeps/unix/sysv/linux/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c
index 8af400c..3593685 100644
--- a/sysdeps/unix/sysv/linux/msgsnd.c
+++ b/sysdeps/unix/sysv/linux/msgsnd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msync.c b/sysdeps/unix/sysv/linux/msync.c
index 1d8dd4f..542975c 100644
--- a/sysdeps/unix/sysv/linux/msync.c
+++ b/sysdeps/unix/sysv/linux/msync.c
@@ -1,5 +1,5 @@
/* Linux synchronize a file with a memory map implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mtx_timedlock.c b/sysdeps/unix/sysv/linux/mtx_timedlock.c
index a829213..d98d9fe 100644
--- a/sysdeps/unix/sysv/linux/mtx_timedlock.c
+++ b/sysdeps/unix/sysv/linux/mtx_timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex timed lock implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nanosleep.c b/sysdeps/unix/sysv/linux/nanosleep.c
index fac9307..04d2a59 100644
--- a/sysdeps/unix/sysv/linux/nanosleep.c
+++ b/sysdeps/unix/sysv/linux/nanosleep.c
@@ -1,5 +1,5 @@
/* High-resolution sleep.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/ethernet.h b/sysdeps/unix/sysv/linux/net/ethernet.h
index 3f58506..62eb832 100644
--- a/sysdeps/unix/sysv/linux/net/ethernet.h
+++ b/sysdeps/unix/sysv/linux/net/ethernet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h
index e7e194d..6b0a79c 100644
--- a/sysdeps/unix/sysv/linux/net/if_arp.h
+++ b/sysdeps/unix/sysv/linux/net/if_arp.h
@@ -1,5 +1,5 @@
/* Definitions for Address Resolution Protocol.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_packet.h b/sysdeps/unix/sysv/linux/net/if_packet.h
index c17e1c2..4fdc930 100644
--- a/sysdeps/unix/sysv/linux/net/if_packet.h
+++ b/sysdeps/unix/sysv/linux/net/if_packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux SOCK_PACKET sockets.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_shaper.h b/sysdeps/unix/sysv/linux/net/if_shaper.h
index 89ac7d5..9b7b1b8 100644
--- a/sysdeps/unix/sysv/linux/net/if_shaper.h
+++ b/sysdeps/unix/sysv/linux/net/if_shaper.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_slip.h b/sysdeps/unix/sysv/linux/net/if_slip.h
index 991f67d..1c4afbb 100644
--- a/sysdeps/unix/sysv/linux/net/if_slip.h
+++ b/sysdeps/unix/sysv/linux/net/if_slip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/route.h b/sysdeps/unix/sysv/linux/net/route.h
index 1999c06..28646ad 100644
--- a/sysdeps/unix/sysv/linux/net/route.h
+++ b/sysdeps/unix/sysv/linux/net/route.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netash/ash.h b/sysdeps/unix/sysv/linux/netash/ash.h
index 7a6ff50..1316837 100644
--- a/sysdeps/unix/sysv/linux/netash/ash.h
+++ b/sysdeps/unix/sysv/linux/netash/ash.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ASH sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netatalk/at.h b/sysdeps/unix/sysv/linux/netatalk/at.h
index 6867620..aea8523 100644
--- a/sysdeps/unix/sysv/linux/netatalk/at.h
+++ b/sysdeps/unix/sysv/linux/netatalk/at.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netax25/ax25.h b/sysdeps/unix/sysv/linux/netax25/ax25.h
index 8259d3c..f10ab265a 100644
--- a/sysdeps/unix/sysv/linux/netax25/ax25.h
+++ b/sysdeps/unix/sysv/linux/netax25/ax25.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/neteconet/ec.h b/sysdeps/unix/sysv/linux/neteconet/ec.h
index f3132f0..93652e2 100644
--- a/sysdeps/unix/sysv/linux/neteconet/ec.h
+++ b/sysdeps/unix/sysv/linux/neteconet/ec.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ECONET sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_ether.h b/sysdeps/unix/sysv/linux/netinet/if_ether.h
index 344dd8f..a9c8a84 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_ether.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_fddi.h b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
index 26b0c42..3771dbd 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_fddi.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_tr.h b/sysdeps/unix/sysv/linux/netinet/if_tr.h
index ec08676..19f5e9a 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_tr.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_tr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netipx/ipx.h b/sysdeps/unix/sysv/linux/netipx/ipx.h
index ee9d785..2acd9a6 100644
--- a/sysdeps/unix/sysv/linux/netipx/ipx.h
+++ b/sysdeps/unix/sysv/linux/netipx/ipx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netiucv/iucv.h b/sysdeps/unix/sysv/linux/netiucv/iucv.h
index 27151e8..1e8a4c9 100644
--- a/sysdeps/unix/sysv/linux/netiucv/iucv.h
+++ b/sysdeps/unix/sysv/linux/netiucv/iucv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netlink_assert_response.c b/sysdeps/unix/sysv/linux/netlink_assert_response.c
index f7dd348..05e2724 100644
--- a/sysdeps/unix/sysv/linux/netlink_assert_response.c
+++ b/sysdeps/unix/sysv/linux/netlink_assert_response.c
@@ -1,5 +1,5 @@
/* Check recvmsg results for netlink sockets.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
index 2bc6e3f..afea6c3 100644
--- a/sysdeps/unix/sysv/linux/netlinkaccess.h
+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netpacket/packet.h b/sysdeps/unix/sysv/linux/netpacket/packet.h
index 9ac1331..5e8d6f3 100644
--- a/sysdeps/unix/sysv/linux/netpacket/packet.h
+++ b/sysdeps/unix/sysv/linux/netpacket/packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_PACKET sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netrom/netrom.h b/sysdeps/unix/sysv/linux/netrom/netrom.h
index 184b235..0d61e37 100644
--- a/sysdeps/unix/sysv/linux/netrom/netrom.h
+++ b/sysdeps/unix/sysv/linux/netrom/netrom.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netrose/rose.h b/sysdeps/unix/sysv/linux/netrose/rose.h
index 1f838d0..f87934b 100644
--- a/sysdeps/unix/sysv/linux/netrose/rose.h
+++ b/sysdeps/unix/sysv/linux/netrose/rose.h
@@ -1,5 +1,5 @@
/* Definitions for Rose packet radio address family.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/Implies b/sysdeps/unix/sysv/linux/nios2/Implies
deleted file mode 100644
index e6c9be4..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Implies
+++ /dev/null
@@ -1 +0,0 @@
-nios2/nptl
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
deleted file mode 100644
index 9342e45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-ifeq ($(subdir),stdlib)
-gen-as-const-headers += ucontext_i.sym
-endif
-
-ifeq ($(subdir),misc)
-# MIPS-style cacheflush routine
-sysdep_headers += sys/cachectl.h
-sysdep_routines += cacheflush
-endif
-
-ifeq ($(subdir),csu)
-# Work around an incorrect assumption that an object of variably
-# modified type, with a small fixed size but a large variable-sized
-# part (the static_slotinfo variable in libc-tls.c) is allocated in
-# the small data section, not the data section where it belongs based
-# on its size. See GCC PR 92499.
-CFLAGS-libc-tls.c += -mgpopt=none
-endif
diff --git a/sysdeps/unix/sysv/linux/nios2/Versions b/sysdeps/unix/sysv/linux/nios2/Versions
deleted file mode 100644
index e42c85f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Versions
+++ /dev/null
@@ -1,6 +0,0 @@
-libc {
- GLIBC_2.21 {
- _flush_cache;
- cacheflush;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h b/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
deleted file mode 100644
index f94e212..0000000
--- a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/* AUTOGENERATED by update-syscall-lists.py. */
-#define __NR_accept 202
-#define __NR_accept4 242
-#define __NR_acct 89
-#define __NR_add_key 217
-#define __NR_adjtimex 171
-#define __NR_bind 200
-#define __NR_bpf 280
-#define __NR_brk 214
-#define __NR_cacheflush 244
-#define __NR_cachestat 451
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_chdir 49
-#define __NR_chroot 51
-#define __NR_clock_adjtime 266
-#define __NR_clock_adjtime64 405
-#define __NR_clock_getres 114
-#define __NR_clock_getres_time64 406
-#define __NR_clock_gettime 113
-#define __NR_clock_gettime64 403
-#define __NR_clock_nanosleep 115
-#define __NR_clock_nanosleep_time64 407
-#define __NR_clock_settime 112
-#define __NR_clock_settime64 404
-#define __NR_clone 220
-#define __NR_close 57
-#define __NR_close_range 436
-#define __NR_connect 203
-#define __NR_copy_file_range 285
-#define __NR_delete_module 106
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_epoll_pwait2 441
-#define __NR_eventfd2 19
-#define __NR_execve 221
-#define __NR_execveat 281
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_faccessat 48
-#define __NR_faccessat2 439
-#define __NR_fadvise64_64 223
-#define __NR_fallocate 47
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_fchdir 50
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchmodat2 452
-#define __NR_fchown 55
-#define __NR_fchownat 54
-#define __NR_fcntl64 25
-#define __NR_fdatasync 83
-#define __NR_fgetxattr 10
-#define __NR_finit_module 273
-#define __NR_flistxattr 13
-#define __NR_flock 32
-#define __NR_fremovexattr 16
-#define __NR_fsconfig 431
-#define __NR_fsetxattr 7
-#define __NR_fsmount 432
-#define __NR_fsopen 430
-#define __NR_fspick 433
-#define __NR_fstat64 80
-#define __NR_fstatat64 79
-#define __NR_fstatfs64 44
-#define __NR_fsync 82
-#define __NR_ftruncate64 46
-#define __NR_futex 98
-#define __NR_futex_requeue 456
-#define __NR_futex_time64 422
-#define __NR_futex_wait 455
-#define __NR_futex_waitv 449
-#define __NR_futex_wake 454
-#define __NR_get_mempolicy 236
-#define __NR_get_robust_list 100
-#define __NR_getcpu 168
-#define __NR_getcwd 17
-#define __NR_getdents64 61
-#define __NR_getegid 177
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getgroups 158
-#define __NR_getitimer 102
-#define __NR_getpeername 205
-#define __NR_getpgid 155
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getpriority 141
-#define __NR_getrandom 278
-#define __NR_getresgid 150
-#define __NR_getresuid 148
-#define __NR_getrlimit 163
-#define __NR_getrusage 165
-#define __NR_getsid 156
-#define __NR_getsockname 204
-#define __NR_getsockopt 209
-#define __NR_gettid 178
-#define __NR_gettimeofday 169
-#define __NR_getuid 174
-#define __NR_getxattr 8
-#define __NR_init_module 105
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_init1 26
-#define __NR_inotify_rm_watch 28
-#define __NR_io_cancel 3
-#define __NR_io_destroy 1
-#define __NR_io_getevents 4
-#define __NR_io_pgetevents 292
-#define __NR_io_pgetevents_time64 416
-#define __NR_io_setup 0
-#define __NR_io_submit 2
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_io_uring_setup 425
-#define __NR_ioctl 29
-#define __NR_ioprio_get 31
-#define __NR_ioprio_set 30
-#define __NR_kcmp 272
-#define __NR_kexec_file_load 294
-#define __NR_kexec_load 104
-#define __NR_keyctl 219
-#define __NR_kill 129
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_restrict_self 446
-#define __NR_lgetxattr 9
-#define __NR_linkat 37
-#define __NR_listen 201
-#define __NR_listmount 458
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_llseek 62
-#define __NR_lookup_dcookie 18
-#define __NR_lremovexattr 15
-#define __NR_lsetxattr 6
-#define __NR_lsm_get_self_attr 459
-#define __NR_lsm_list_modules 461
-#define __NR_lsm_set_self_attr 460
-#define __NR_madvise 233
-#define __NR_map_shadow_stack 453
-#define __NR_mbind 235
-#define __NR_membarrier 283
-#define __NR_memfd_create 279
-#define __NR_migrate_pages 238
-#define __NR_mincore 232
-#define __NR_mkdirat 34
-#define __NR_mknodat 33
-#define __NR_mlock 228
-#define __NR_mlock2 284
-#define __NR_mlockall 230
-#define __NR_mmap2 222
-#define __NR_mount 40
-#define __NR_mount_setattr 442
-#define __NR_move_mount 429
-#define __NR_move_pages 239
-#define __NR_mprotect 226
-#define __NR_mq_getsetattr 185
-#define __NR_mq_notify 184
-#define __NR_mq_open 180
-#define __NR_mq_timedreceive 183
-#define __NR_mq_timedreceive_time64 419
-#define __NR_mq_timedsend 182
-#define __NR_mq_timedsend_time64 418
-#define __NR_mq_unlink 181
-#define __NR_mremap 216
-#define __NR_mseal 462
-#define __NR_msgctl 187
-#define __NR_msgget 186
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_msync 227
-#define __NR_munlock 229
-#define __NR_munlockall 231
-#define __NR_munmap 215
-#define __NR_name_to_handle_at 264
-#define __NR_nanosleep 101
-#define __NR_nfsservctl 42
-#define __NR_open_by_handle_at 265
-#define __NR_open_tree 428
-#define __NR_openat 56
-#define __NR_openat2 437
-#define __NR_perf_event_open 241
-#define __NR_personality 92
-#define __NR_pidfd_getfd 438
-#define __NR_pidfd_open 434
-#define __NR_pidfd_send_signal 424
-#define __NR_pipe2 59
-#define __NR_pivot_root 41
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_pkey_mprotect 288
-#define __NR_ppoll 73
-#define __NR_ppoll_time64 414
-#define __NR_prctl 167
-#define __NR_pread64 67
-#define __NR_preadv 69
-#define __NR_preadv2 286
-#define __NR_prlimit64 261
-#define __NR_process_madvise 440
-#define __NR_process_mrelease 448
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_pselect6 72
-#define __NR_pselect6_time64 413
-#define __NR_ptrace 117
-#define __NR_pwrite64 68
-#define __NR_pwritev 70
-#define __NR_pwritev2 287
-#define __NR_quotactl 60
-#define __NR_quotactl_fd 443
-#define __NR_read 63
-#define __NR_readahead 213
-#define __NR_readlinkat 78
-#define __NR_readv 65
-#define __NR_reboot 142
-#define __NR_recvfrom 207
-#define __NR_recvmmsg 243
-#define __NR_recvmmsg_time64 417
-#define __NR_recvmsg 212
-#define __NR_remap_file_pages 234
-#define __NR_removexattr 14
-#define __NR_renameat 38
-#define __NR_renameat2 276
-#define __NR_request_key 218
-#define __NR_restart_syscall 128
-#define __NR_rseq 293
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigtimedwait 137
-#define __NR_rt_sigtimedwait_time64 421
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_getaffinity 123
-#define __NR_sched_getattr 275
-#define __NR_sched_getparam 121
-#define __NR_sched_getscheduler 120
-#define __NR_sched_rr_get_interval 127
-#define __NR_sched_rr_get_interval_time64 423
-#define __NR_sched_setaffinity 122
-#define __NR_sched_setattr 274
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_yield 124
-#define __NR_seccomp 277
-#define __NR_semctl 191
-#define __NR_semget 190
-#define __NR_semop 193
-#define __NR_semtimedop 192
-#define __NR_semtimedop_time64 420
-#define __NR_sendfile64 71
-#define __NR_sendmmsg 269
-#define __NR_sendmsg 211
-#define __NR_sendto 206
-#define __NR_set_mempolicy 237
-#define __NR_set_mempolicy_home_node 450
-#define __NR_set_robust_list 99
-#define __NR_set_tid_address 96
-#define __NR_setdomainname 162
-#define __NR_setfsgid 152
-#define __NR_setfsuid 151
-#define __NR_setgid 144
-#define __NR_setgroups 159
-#define __NR_sethostname 161
-#define __NR_setitimer 103
-#define __NR_setns 268
-#define __NR_setpgid 154
-#define __NR_setpriority 140
-#define __NR_setregid 143
-#define __NR_setresgid 149
-#define __NR_setresuid 147
-#define __NR_setreuid 145
-#define __NR_setrlimit 164
-#define __NR_setsid 157
-#define __NR_setsockopt 208
-#define __NR_settimeofday 170
-#define __NR_setuid 146
-#define __NR_setxattr 5
-#define __NR_shmat 196
-#define __NR_shmctl 195
-#define __NR_shmdt 197
-#define __NR_shmget 194
-#define __NR_shutdown 210
-#define __NR_sigaltstack 132
-#define __NR_signalfd4 74
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_splice 76
-#define __NR_statfs64 43
-#define __NR_statmount 457
-#define __NR_statx 291
-#define __NR_swapoff 225
-#define __NR_swapon 224
-#define __NR_symlinkat 36
-#define __NR_sync 81
-#define __NR_sync_file_range 84
-#define __NR_syncfs 267
-#define __NR_sysinfo 179
-#define __NR_syslog 116
-#define __NR_tee 77
-#define __NR_tgkill 131
-#define __NR_timer_create 107
-#define __NR_timer_delete 111
-#define __NR_timer_getoverrun 109
-#define __NR_timer_gettime 108
-#define __NR_timer_gettime64 408
-#define __NR_timer_settime 110
-#define __NR_timer_settime64 409
-#define __NR_timerfd_create 85
-#define __NR_timerfd_gettime 87
-#define __NR_timerfd_gettime64 410
-#define __NR_timerfd_settime 86
-#define __NR_timerfd_settime64 411
-#define __NR_times 153
-#define __NR_tkill 130
-#define __NR_truncate64 45
-#define __NR_umask 166
-#define __NR_umount2 39
-#define __NR_uname 160
-#define __NR_unlinkat 35
-#define __NR_unshare 97
-#define __NR_userfaultfd 282
-#define __NR_utimensat 88
-#define __NR_utimensat_time64 412
-#define __NR_vhangup 58
-#define __NR_vmsplice 75
-#define __NR_wait4 260
-#define __NR_waitid 95
-#define __NR_write 64
-#define __NR_writev 66
diff --git a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h b/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
deleted file mode 100644
index 91033fa..0000000
--- a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Low-level functions for atomic operations. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_ATOMIC_MACHINE_H
-#define _NIOS2_ATOMIC_MACHINE_H 1
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
- (abort (), 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int* r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5"); \
- register int r6 asm ("r6") = (int)(newval); \
- int retval, orig_oldval = (int)(oldval); \
- long kernel_cmpxchg = 0x1004; \
- while (1) \
- { \
- r5 = *r4; \
- if (r5 != orig_oldval) \
- { \
- retval = r5; \
- break; \
- } \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- if (!r2) { retval = orig_oldval; break; } \
- } \
- (__typeof (*(mem))) retval; \
- })
-
-#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int *r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5") = (int)(oldval); \
- register int r6 asm ("r6") = (int)(newval); \
- long kernel_cmpxchg = 0x1004; \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- r2; \
- })
-
-#define atomic_full_barrier() ({ asm volatile ("sync"); })
-
-#endif /* _NIOS2_ATOMIC_MACHINE_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h b/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
deleted file mode 100644
index 98ccb07..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Types for registers for sys/procfs.h. Nios II version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
-#endif
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h b/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
deleted file mode 100644
index f9f3c64..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_STATFS_H
-# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-#endif
-
-#include <bits/endian.h>
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct statfs
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_blocks);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bfree);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bavail);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_files);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_ffree);
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct statfs64
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __fsblkcnt64_t f_blocks;
- __fsblkcnt64_t f_bfree;
- __fsblkcnt64_t f_bavail;
- __fsfilcnt64_t f_files;
- __fsfilcnt64_t f_ffree;
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h b/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
deleted file mode 100644
index dab466d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Definition for struct stat. Linux/nios2 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _SYS_STAT_H && !defined _FCNTL_H
-# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-#ifndef _BITS_STRUCT_STAT_H
-#define _BITS_STRUCT_STAT_H 1
-
-#include <bits/endian.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
-# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
-# error "ino_t and off_t must both be the same type"
-# endif
-# define __field64(type, type64, name) type name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct stat
- {
-#ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-#else
- __dev_t st_dev; /* Device. */
- __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-#endif
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct stat64
- {
-# ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-# else
- __dev_t st_dev; /* Device. */
- __ino64_t st_ino; /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __off64_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-# endif
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATBUF_ST_BLKSIZE
-#define _STATBUF_ST_RDEV
-/* Nanosecond resolution time values are supported. */
-#define _STATBUF_ST_NSEC
-
-#endif /* _BITS_STRUCT_STAT_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/c++-types.data b/sysdeps/unix/sysv/linux/nios2/c++-types.data
deleted file mode 100644
index 303f457..0000000
--- a/sysdeps/unix/sysv/linux/nios2/c++-types.data
+++ /dev/null
@@ -1,67 +0,0 @@
-blkcnt64_t:x
-blkcnt_t:l
-blksize_t:i
-caddr_t:Pc
-clockid_t:i
-clock_t:l
-daddr_t:i
-dev_t:y
-fd_mask:l
-fsblkcnt64_t:y
-fsblkcnt_t:m
-fsfilcnt64_t:y
-fsfilcnt_t:m
-fsid_t:8__fsid_t
-gid_t:j
-id_t:j
-ino64_t:y
-ino_t:m
-int16_t:s
-int32_t:i
-int64_t:x
-int8_t:a
-intptr_t:i
-key_t:i
-loff_t:x
-mode_t:j
-nlink_t:j
-off64_t:x
-off_t:l
-pid_t:i
-pthread_attr_t:14pthread_attr_t
-pthread_barrier_t:17pthread_barrier_t
-pthread_barrierattr_t:21pthread_barrierattr_t
-pthread_cond_t:14pthread_cond_t
-pthread_condattr_t:18pthread_condattr_t
-pthread_key_t:j
-pthread_mutex_t:15pthread_mutex_t
-pthread_mutexattr_t:19pthread_mutexattr_t
-pthread_once_t:i
-pthread_rwlock_t:16pthread_rwlock_t
-pthread_rwlockattr_t:20pthread_rwlockattr_t
-pthread_spinlock_t:i
-pthread_t:m
-quad_t:x
-register_t:i
-rlim64_t:y
-rlim_t:m
-sigset_t:10__sigset_t
-size_t:j
-socklen_t:j
-ssize_t:i
-suseconds_t:l
-time_t:l
-u_char:h
-uid_t:j
-uint:j
-u_int:j
-u_int16_t:t
-u_int32_t:j
-u_int64_t:y
-u_int8_t:h
-ulong:m
-u_long:m
-u_quad_t:y
-useconds_t:j
-ushort:t
-u_short:t
diff --git a/sysdeps/unix/sysv/linux/nios2/cacheflush.c b/sysdeps/unix/sysv/linux/nios2/cacheflush.c
deleted file mode 100644
index 9c426aa..0000000
--- a/sysdeps/unix/sysv/linux/nios2/cacheflush.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* cacheflush system call for Nios II Linux.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <stddef.h>
-#include <unistd.h>
-
-/* Flush cache(s). */
-int
-_flush_cache (char *addr, const int nbytes, const int op)
-{
- return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
-}
-weak_alias (_flush_cache, cacheflush)
diff --git a/sysdeps/unix/sysv/linux/nios2/clone.S b/sysdeps/unix/sysv/linux/nios2/clone.S
deleted file mode 100644
index c234f45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/clone.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* clone() implementation for Nios II.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <tcb-offsets.h>
-
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
- void *parent_tidptr, void *tls, void *child_tidptr) */
-
- .text
-ENTRY(__clone)
- /* Sanity check arguments. */
- movi r2, EINVAL
- /* No NULL function pointers. */
- beq r4, zero, SYSCALL_ERROR_LABEL
- /* No NULL stack pointers. */
- beq r5, zero, SYSCALL_ERROR_LABEL
-
- subi r5, r5, 8 /* Reserve argument save space. */
- stw r4, 4(r5) /* Save function pointer. */
- stw r7, 0(r5) /* Save argument pointer. */
-
- /* Load arguments. */
- mov r4, r6
- ldw r6, 0(sp)
- ldw r7, 8(sp)
- ldw r8, 4(sp)
-
- /* Do the system call. */
- movi r2, SYS_ify (clone)
-
- /* End FDE now, because in the child the unwind info will be
- wrong. */
- cfi_endproc
- trap
-
- /* Check for errors. */
- bne r7, zero, SYSCALL_ERROR_LABEL
- /* See if we're on the newly created thread. */
- beq r2, zero, thread_start
- /* Successful return from the parent */
- ret
-
-thread_start:
- cfi_startproc
- cfi_undefined (ra)
-
- ldw r5, 4(sp) /* Function pointer. */
- ldw r4, 0(sp) /* Argument pointer. */
- addi sp, sp, 8
-
- /* Call the user's function. */
- callr r5
-
- /* exit with the result. */
- movi r2, SYS_ify (exit)
- trap
- cfi_endproc
-
- cfi_startproc
-PSEUDO_END (__clone)
-libc_hidden_def (__clone)
-weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/nios2/configure b/sysdeps/unix/sysv/linux/nios2/configure
deleted file mode 100644
index 8d80166..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
-
diff --git a/sysdeps/unix/sysv/linux/nios2/configure.ac b/sysdeps/unix/sysv/linux/nios2/configure.ac
deleted file mode 100644
index a8ccc17..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure.ac
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
diff --git a/sysdeps/unix/sysv/linux/nios2/getcontext.S b/sysdeps/unix/sysv/linux/nios2/getcontext.S
deleted file mode 100644
index 627c89d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/getcontext.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Save current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int getcontext (ucontext_t *ucp)
-
- Returns 0 on success -1 and errno on failure.
- */
- .text
-ENTRY(__getcontext)
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- mov r2, zero
- ret
-
-PSEUDO_END(__getcontext)
-weak_alias(__getcontext, getcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel-features.h b/sysdeps/unix/sysv/linux/nios2/kernel-features.h
deleted file mode 100644
index 9b16a95..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel-features.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Set flags signalling availability of kernel features based on given
- kernel version number. NIOS2 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#include_next <kernel-features.h>
-
-/* nios2 does not provide clone3. */
-#undef __ASSUME_CLONE3
-#define __ASSUME_CLONE3 0
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h b/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
deleted file mode 100644
index 89f9bce..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* NIOS2 uses the generic Linux UAPI but defines SA_RESTORER. */
-#define SA_RESTORER 0x04000000
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = (act)->sa_restorer
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
-
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/ld.abilist b/sysdeps/unix/sysv/linux/nios2/ld.abilist
deleted file mode 100644
index 811ae9d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ld.abilist
+++ /dev/null
@@ -1,9 +0,0 @@
-GLIBC_2.21 __libc_stack_end D 0x4
-GLIBC_2.21 __stack_chk_guard D 0x4
-GLIBC_2.21 __tls_get_addr F
-GLIBC_2.21 _dl_mcount F
-GLIBC_2.21 _r_debug D 0x14
-GLIBC_2.34 __rtld_version_placeholder F
-GLIBC_2.35 __rseq_flags D 0x4
-GLIBC_2.35 __rseq_offset D 0x4
-GLIBC_2.35 __rseq_size D 0x4
diff --git a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
deleted file mode 100644
index f0210af..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
deleted file mode 100644
index 68f340f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
deleted file mode 100644
index 3aa8176..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ /dev/null
@@ -1,2875 +0,0 @@
-GLIBC_2.21 _Exit F
-GLIBC_2.21 _IO_2_1_stderr_ D 0x98
-GLIBC_2.21 _IO_2_1_stdin_ D 0x98
-GLIBC_2.21 _IO_2_1_stdout_ D 0x98
-GLIBC_2.21 _IO_adjust_column F
-GLIBC_2.21 _IO_adjust_wcolumn F
-GLIBC_2.21 _IO_default_doallocate F
-GLIBC_2.21 _IO_default_finish F
-GLIBC_2.21 _IO_default_pbackfail F
-GLIBC_2.21 _IO_default_uflow F
-GLIBC_2.21 _IO_default_xsgetn F
-GLIBC_2.21 _IO_default_xsputn F
-GLIBC_2.21 _IO_do_write F
-GLIBC_2.21 _IO_doallocbuf F
-GLIBC_2.21 _IO_fclose F
-GLIBC_2.21 _IO_fdopen F
-GLIBC_2.21 _IO_feof F
-GLIBC_2.21 _IO_ferror F
-GLIBC_2.21 _IO_fflush F
-GLIBC_2.21 _IO_fgetpos F
-GLIBC_2.21 _IO_fgetpos64 F
-GLIBC_2.21 _IO_fgets F
-GLIBC_2.21 _IO_file_attach F
-GLIBC_2.21 _IO_file_close F
-GLIBC_2.21 _IO_file_close_it F
-GLIBC_2.21 _IO_file_doallocate F
-GLIBC_2.21 _IO_file_finish F
-GLIBC_2.21 _IO_file_fopen F
-GLIBC_2.21 _IO_file_init F
-GLIBC_2.21 _IO_file_jumps D 0x54
-GLIBC_2.21 _IO_file_open F
-GLIBC_2.21 _IO_file_overflow F
-GLIBC_2.21 _IO_file_read F
-GLIBC_2.21 _IO_file_seek F
-GLIBC_2.21 _IO_file_seekoff F
-GLIBC_2.21 _IO_file_setbuf F
-GLIBC_2.21 _IO_file_stat F
-GLIBC_2.21 _IO_file_sync F
-GLIBC_2.21 _IO_file_underflow F
-GLIBC_2.21 _IO_file_write F
-GLIBC_2.21 _IO_file_xsputn F
-GLIBC_2.21 _IO_flockfile F
-GLIBC_2.21 _IO_flush_all F
-GLIBC_2.21 _IO_flush_all_linebuffered F
-GLIBC_2.21 _IO_fopen F
-GLIBC_2.21 _IO_fprintf F
-GLIBC_2.21 _IO_fputs F
-GLIBC_2.21 _IO_fread F
-GLIBC_2.21 _IO_free_backup_area F
-GLIBC_2.21 _IO_free_wbackup_area F
-GLIBC_2.21 _IO_fsetpos F
-GLIBC_2.21 _IO_fsetpos64 F
-GLIBC_2.21 _IO_ftell F
-GLIBC_2.21 _IO_ftrylockfile F
-GLIBC_2.21 _IO_funlockfile F
-GLIBC_2.21 _IO_fwrite F
-GLIBC_2.21 _IO_getc F
-GLIBC_2.21 _IO_getline F
-GLIBC_2.21 _IO_getline_info F
-GLIBC_2.21 _IO_gets F
-GLIBC_2.21 _IO_init F
-GLIBC_2.21 _IO_init_marker F
-GLIBC_2.21 _IO_init_wmarker F
-GLIBC_2.21 _IO_iter_begin F
-GLIBC_2.21 _IO_iter_end F
-GLIBC_2.21 _IO_iter_file F
-GLIBC_2.21 _IO_iter_next F
-GLIBC_2.21 _IO_least_wmarker F
-GLIBC_2.21 _IO_link_in F
-GLIBC_2.21 _IO_list_all D 0x4
-GLIBC_2.21 _IO_list_lock F
-GLIBC_2.21 _IO_list_resetlock F
-GLIBC_2.21 _IO_list_unlock F
-GLIBC_2.21 _IO_marker_delta F
-GLIBC_2.21 _IO_marker_difference F
-GLIBC_2.21 _IO_padn F
-GLIBC_2.21 _IO_peekc_locked F
-GLIBC_2.21 _IO_popen F
-GLIBC_2.21 _IO_printf F
-GLIBC_2.21 _IO_proc_close F
-GLIBC_2.21 _IO_proc_open F
-GLIBC_2.21 _IO_putc F
-GLIBC_2.21 _IO_puts F
-GLIBC_2.21 _IO_remove_marker F
-GLIBC_2.21 _IO_seekmark F
-GLIBC_2.21 _IO_seekoff F
-GLIBC_2.21 _IO_seekpos F
-GLIBC_2.21 _IO_seekwmark F
-GLIBC_2.21 _IO_setb F
-GLIBC_2.21 _IO_setbuffer F
-GLIBC_2.21 _IO_setvbuf F
-GLIBC_2.21 _IO_sgetn F
-GLIBC_2.21 _IO_sprintf F
-GLIBC_2.21 _IO_sputbackc F
-GLIBC_2.21 _IO_sputbackwc F
-GLIBC_2.21 _IO_sscanf F
-GLIBC_2.21 _IO_str_init_readonly F
-GLIBC_2.21 _IO_str_init_static F
-GLIBC_2.21 _IO_str_overflow F
-GLIBC_2.21 _IO_str_pbackfail F
-GLIBC_2.21 _IO_str_seekoff F
-GLIBC_2.21 _IO_str_underflow F
-GLIBC_2.21 _IO_sungetc F
-GLIBC_2.21 _IO_sungetwc F
-GLIBC_2.21 _IO_switch_to_get_mode F
-GLIBC_2.21 _IO_switch_to_main_wget_area F
-GLIBC_2.21 _IO_switch_to_wbackup_area F
-GLIBC_2.21 _IO_switch_to_wget_mode F
-GLIBC_2.21 _IO_un_link F
-GLIBC_2.21 _IO_ungetc F
-GLIBC_2.21 _IO_unsave_markers F
-GLIBC_2.21 _IO_unsave_wmarkers F
-GLIBC_2.21 _IO_vfprintf F
-GLIBC_2.21 _IO_vfscanf F
-GLIBC_2.21 _IO_vsprintf F
-GLIBC_2.21 _IO_wdefault_doallocate F
-GLIBC_2.21 _IO_wdefault_finish F
-GLIBC_2.21 _IO_wdefault_pbackfail F
-GLIBC_2.21 _IO_wdefault_uflow F
-GLIBC_2.21 _IO_wdefault_xsgetn F
-GLIBC_2.21 _IO_wdefault_xsputn F
-GLIBC_2.21 _IO_wdo_write F
-GLIBC_2.21 _IO_wdoallocbuf F
-GLIBC_2.21 _IO_wfile_jumps D 0x54
-GLIBC_2.21 _IO_wfile_overflow F
-GLIBC_2.21 _IO_wfile_seekoff F
-GLIBC_2.21 _IO_wfile_sync F
-GLIBC_2.21 _IO_wfile_underflow F
-GLIBC_2.21 _IO_wfile_xsputn F
-GLIBC_2.21 _IO_wmarker_delta F
-GLIBC_2.21 _IO_wsetb F
-GLIBC_2.21 ___brk_addr D 0x4
-GLIBC_2.21 __adddf3 F
-GLIBC_2.21 __addsf3 F
-GLIBC_2.21 __adjtimex F
-GLIBC_2.21 __after_morecore_hook D 0x4
-GLIBC_2.21 __argz_count F
-GLIBC_2.21 __argz_next F
-GLIBC_2.21 __argz_stringify F
-GLIBC_2.21 __asprintf F
-GLIBC_2.21 __asprintf_chk F
-GLIBC_2.21 __assert F
-GLIBC_2.21 __assert_fail F
-GLIBC_2.21 __assert_perror_fail F
-GLIBC_2.21 __backtrace F
-GLIBC_2.21 __backtrace_symbols F
-GLIBC_2.21 __backtrace_symbols_fd F
-GLIBC_2.21 __bsd_getpgrp F
-GLIBC_2.21 __bzero F
-GLIBC_2.21 __check_rhosts_file D 0x4
-GLIBC_2.21 __chk_fail F
-GLIBC_2.21 __clone F
-GLIBC_2.21 __close F
-GLIBC_2.21 __cmsg_nxthdr F
-GLIBC_2.21 __confstr_chk F
-GLIBC_2.21 __connect F
-GLIBC_2.21 __ctype_b_loc F
-GLIBC_2.21 __ctype_get_mb_cur_max F
-GLIBC_2.21 __ctype_tolower_loc F
-GLIBC_2.21 __ctype_toupper_loc F
-GLIBC_2.21 __curbrk D 0x4
-GLIBC_2.21 __cxa_at_quick_exit F
-GLIBC_2.21 __cxa_atexit F
-GLIBC_2.21 __cxa_finalize F
-GLIBC_2.21 __cxa_thread_atexit_impl F
-GLIBC_2.21 __cyg_profile_func_enter F
-GLIBC_2.21 __cyg_profile_func_exit F
-GLIBC_2.21 __daylight D 0x4
-GLIBC_2.21 __dcgettext F
-GLIBC_2.21 __default_morecore F
-GLIBC_2.21 __dgettext F
-GLIBC_2.21 __divdf3 F
-GLIBC_2.21 __divsf3 F
-GLIBC_2.21 __dn_comp F
-GLIBC_2.21 __dn_expand F
-GLIBC_2.21 __dn_skipname F
-GLIBC_2.21 __dprintf_chk F
-GLIBC_2.21 __dup2 F
-GLIBC_2.21 __duplocale F
-GLIBC_2.21 __endmntent F
-GLIBC_2.21 __environ D 0x4
-GLIBC_2.21 __eqdf2 F
-GLIBC_2.21 __eqsf2 F
-GLIBC_2.21 __errno_location F
-GLIBC_2.21 __extendsfdf2 F
-GLIBC_2.21 __fbufsize F
-GLIBC_2.21 __fcntl F
-GLIBC_2.21 __fdelt_chk F
-GLIBC_2.21 __fdelt_warn F
-GLIBC_2.21 __ffs F
-GLIBC_2.21 __fgets_chk F
-GLIBC_2.21 __fgets_unlocked_chk F
-GLIBC_2.21 __fgetws_chk F
-GLIBC_2.21 __fgetws_unlocked_chk F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fixdfdi F
-GLIBC_2.21 __fixdfsi F
-GLIBC_2.21 __fixsfdi F
-GLIBC_2.21 __fixsfsi F
-GLIBC_2.21 __fixunsdfdi F
-GLIBC_2.21 __fixunsdfsi F
-GLIBC_2.21 __fixunssfdi F
-GLIBC_2.21 __fixunssfsi F
-GLIBC_2.21 __flbf F
-GLIBC_2.21 __floatdidf F
-GLIBC_2.21 __floatdisf F
-GLIBC_2.21 __floatsidf F
-GLIBC_2.21 __floatsisf F
-GLIBC_2.21 __floatundidf F
-GLIBC_2.21 __floatundisf F
-GLIBC_2.21 __floatunsidf F
-GLIBC_2.21 __floatunsisf F
-GLIBC_2.21 __fork F
-GLIBC_2.21 __fpending F
-GLIBC_2.21 __fprintf_chk F
-GLIBC_2.21 __fpu_control D 0x4
-GLIBC_2.21 __fpurge F
-GLIBC_2.21 __fread_chk F
-GLIBC_2.21 __fread_unlocked_chk F
-GLIBC_2.21 __freadable F
-GLIBC_2.21 __freading F
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __freelocale F
-GLIBC_2.21 __fsetlocking F
-GLIBC_2.21 __fwprintf_chk F
-GLIBC_2.21 __fwritable F
-GLIBC_2.21 __fwriting F
-GLIBC_2.21 __fxstat F
-GLIBC_2.21 __fxstat64 F
-GLIBC_2.21 __fxstatat F
-GLIBC_2.21 __fxstatat64 F
-GLIBC_2.21 __gedf2 F
-GLIBC_2.21 __gesf2 F
-GLIBC_2.21 __getauxval F
-GLIBC_2.21 __getcwd_chk F
-GLIBC_2.21 __getdelim F
-GLIBC_2.21 __getdomainname_chk F
-GLIBC_2.21 __getgroups_chk F
-GLIBC_2.21 __gethostname_chk F
-GLIBC_2.21 __getlogin_r_chk F
-GLIBC_2.21 __getmntent_r F
-GLIBC_2.21 __getpagesize F
-GLIBC_2.21 __getpgid F
-GLIBC_2.21 __getpid F
-GLIBC_2.21 __gets_chk F
-GLIBC_2.21 __gettimeofday F
-GLIBC_2.21 __getwd_chk F
-GLIBC_2.21 __gmtime_r F
-GLIBC_2.21 __gtdf2 F
-GLIBC_2.21 __gtsf2 F
-GLIBC_2.21 __h_errno_location F
-GLIBC_2.21 __isalnum_l F
-GLIBC_2.21 __isalpha_l F
-GLIBC_2.21 __isascii_l F
-GLIBC_2.21 __isblank_l F
-GLIBC_2.21 __iscntrl_l F
-GLIBC_2.21 __isctype F
-GLIBC_2.21 __isdigit_l F
-GLIBC_2.21 __isgraph_l F
-GLIBC_2.21 __isinf F
-GLIBC_2.21 __isinff F
-GLIBC_2.21 __isinfl F
-GLIBC_2.21 __islower_l F
-GLIBC_2.21 __isnan F
-GLIBC_2.21 __isnanf F
-GLIBC_2.21 __isnanl F
-GLIBC_2.21 __isoc99_fscanf F
-GLIBC_2.21 __isoc99_fwscanf F
-GLIBC_2.21 __isoc99_scanf F
-GLIBC_2.21 __isoc99_sscanf F
-GLIBC_2.21 __isoc99_swscanf F
-GLIBC_2.21 __isoc99_vfscanf F
-GLIBC_2.21 __isoc99_vfwscanf F
-GLIBC_2.21 __isoc99_vscanf F
-GLIBC_2.21 __isoc99_vsscanf F
-GLIBC_2.21 __isoc99_vswscanf F
-GLIBC_2.21 __isoc99_vwscanf F
-GLIBC_2.21 __isoc99_wscanf F
-GLIBC_2.21 __isprint_l F
-GLIBC_2.21 __ispunct_l F
-GLIBC_2.21 __isspace_l F
-GLIBC_2.21 __isupper_l F
-GLIBC_2.21 __iswalnum_l F
-GLIBC_2.21 __iswalpha_l F
-GLIBC_2.21 __iswblank_l F
-GLIBC_2.21 __iswcntrl_l F
-GLIBC_2.21 __iswctype F
-GLIBC_2.21 __iswctype_l F
-GLIBC_2.21 __iswdigit_l F
-GLIBC_2.21 __iswgraph_l F
-GLIBC_2.21 __iswlower_l F
-GLIBC_2.21 __iswprint_l F
-GLIBC_2.21 __iswpunct_l F
-GLIBC_2.21 __iswspace_l F
-GLIBC_2.21 __iswupper_l F
-GLIBC_2.21 __iswxdigit_l F
-GLIBC_2.21 __isxdigit_l F
-GLIBC_2.21 __ivaliduser F
-GLIBC_2.21 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_gendes_LOCAL D 0x4
-GLIBC_2.21 __ledf2 F
-GLIBC_2.21 __lesf2 F
-GLIBC_2.21 __libc_allocate_rtsig F
-GLIBC_2.21 __libc_calloc F
-GLIBC_2.21 __libc_current_sigrtmax F
-GLIBC_2.21 __libc_current_sigrtmin F
-GLIBC_2.21 __libc_free F
-GLIBC_2.21 __libc_freeres F
-GLIBC_2.21 __libc_init_first F
-GLIBC_2.21 __libc_mallinfo F
-GLIBC_2.21 __libc_malloc F
-GLIBC_2.21 __libc_mallopt F
-GLIBC_2.21 __libc_memalign F
-GLIBC_2.21 __libc_pvalloc F
-GLIBC_2.21 __libc_realloc F
-GLIBC_2.21 __libc_sa_len F
-GLIBC_2.21 __libc_start_main F
-GLIBC_2.21 __libc_valloc F
-GLIBC_2.21 __longjmp_chk F
-GLIBC_2.21 __lseek F
-GLIBC_2.21 __ltdf2 F
-GLIBC_2.21 __ltsf2 F
-GLIBC_2.21 __lxstat F
-GLIBC_2.21 __lxstat64 F
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __malloc_initialize_hook D 0x4
-GLIBC_2.21 __mbrlen F
-GLIBC_2.21 __mbrtowc F
-GLIBC_2.21 __mbsnrtowcs_chk F
-GLIBC_2.21 __mbsrtowcs_chk F
-GLIBC_2.21 __mbstowcs_chk F
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __memcpy_chk F
-GLIBC_2.21 __memmove_chk F
-GLIBC_2.21 __mempcpy F
-GLIBC_2.21 __mempcpy_chk F
-GLIBC_2.21 __mempcpy_small F
-GLIBC_2.21 __memset_chk F
-GLIBC_2.21 __monstartup F
-GLIBC_2.21 __morecore D 0x4
-GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 __muldf3 F
-GLIBC_2.21 __mulsf3 F
-GLIBC_2.21 __nanosleep F
-GLIBC_2.21 __nedf2 F
-GLIBC_2.21 __negdf2 F
-GLIBC_2.21 __negsf2 F
-GLIBC_2.21 __nesf2 F
-GLIBC_2.21 __newlocale F
-GLIBC_2.21 __nl_langinfo_l F
-GLIBC_2.21 __nss_configure_lookup F
-GLIBC_2.21 __nss_database_lookup F
-GLIBC_2.21 __nss_group_lookup F
-GLIBC_2.21 __nss_hostname_digits_dots F
-GLIBC_2.21 __nss_hosts_lookup F
-GLIBC_2.21 __nss_next F
-GLIBC_2.21 __nss_passwd_lookup F
-GLIBC_2.21 __obstack_printf_chk F
-GLIBC_2.21 __obstack_vprintf_chk F
-GLIBC_2.21 __open F
-GLIBC_2.21 __open64 F
-GLIBC_2.21 __open64_2 F
-GLIBC_2.21 __open_2 F
-GLIBC_2.21 __openat64_2 F
-GLIBC_2.21 __openat_2 F
-GLIBC_2.21 __overflow F
-GLIBC_2.21 __pipe F
-GLIBC_2.21 __poll F
-GLIBC_2.21 __poll_chk F
-GLIBC_2.21 __posix_getopt F
-GLIBC_2.21 __ppoll_chk F
-GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pread64_chk F
-GLIBC_2.21 __pread_chk F
-GLIBC_2.21 __printf_chk F
-GLIBC_2.21 __printf_fp F
-GLIBC_2.21 __profile_frequency F
-GLIBC_2.21 __progname D 0x4
-GLIBC_2.21 __progname_full D 0x4
-GLIBC_2.21 __pthread_cleanup_routine F
-GLIBC_2.21 __pthread_getspecific F
-GLIBC_2.21 __pthread_key_create F
-GLIBC_2.21 __pthread_mutex_destroy F
-GLIBC_2.21 __pthread_mutex_init F
-GLIBC_2.21 __pthread_mutex_lock F
-GLIBC_2.21 __pthread_mutex_trylock F
-GLIBC_2.21 __pthread_mutex_unlock F
-GLIBC_2.21 __pthread_mutexattr_destroy F
-GLIBC_2.21 __pthread_mutexattr_init F
-GLIBC_2.21 __pthread_mutexattr_settype F
-GLIBC_2.21 __pthread_once F
-GLIBC_2.21 __pthread_register_cancel F
-GLIBC_2.21 __pthread_register_cancel_defer F
-GLIBC_2.21 __pthread_rwlock_destroy F
-GLIBC_2.21 __pthread_rwlock_init F
-GLIBC_2.21 __pthread_rwlock_rdlock F
-GLIBC_2.21 __pthread_rwlock_tryrdlock F
-GLIBC_2.21 __pthread_rwlock_trywrlock F
-GLIBC_2.21 __pthread_rwlock_unlock F
-GLIBC_2.21 __pthread_rwlock_wrlock F
-GLIBC_2.21 __pthread_setspecific F
-GLIBC_2.21 __pthread_unregister_cancel F
-GLIBC_2.21 __pthread_unregister_cancel_restore F
-GLIBC_2.21 __pthread_unwind_next F
-GLIBC_2.21 __ptsname_r_chk F
-GLIBC_2.21 __pwrite64 F
-GLIBC_2.21 __rawmemchr F
-GLIBC_2.21 __rcmd_errstr D 0x4
-GLIBC_2.21 __read F
-GLIBC_2.21 __read_chk F
-GLIBC_2.21 __readlink_chk F
-GLIBC_2.21 __readlinkat_chk F
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 __realpath_chk F
-GLIBC_2.21 __recv_chk F
-GLIBC_2.21 __recvfrom_chk F
-GLIBC_2.21 __register_atfork F
-GLIBC_2.21 __res_dnok F
-GLIBC_2.21 __res_hnok F
-GLIBC_2.21 __res_init F
-GLIBC_2.21 __res_mailok F
-GLIBC_2.21 __res_mkquery F
-GLIBC_2.21 __res_nclose F
-GLIBC_2.21 __res_ninit F
-GLIBC_2.21 __res_nmkquery F
-GLIBC_2.21 __res_nquery F
-GLIBC_2.21 __res_nquerydomain F
-GLIBC_2.21 __res_nsearch F
-GLIBC_2.21 __res_nsend F
-GLIBC_2.21 __res_ownok F
-GLIBC_2.21 __res_query F
-GLIBC_2.21 __res_querydomain F
-GLIBC_2.21 __res_randomid F
-GLIBC_2.21 __res_search F
-GLIBC_2.21 __res_send F
-GLIBC_2.21 __res_state F
-GLIBC_2.21 __rpc_thread_createerr F
-GLIBC_2.21 __rpc_thread_svc_fdset F
-GLIBC_2.21 __rpc_thread_svc_max_pollfd F
-GLIBC_2.21 __rpc_thread_svc_pollfd F
-GLIBC_2.21 __sbrk F
-GLIBC_2.21 __sched_cpualloc F
-GLIBC_2.21 __sched_cpucount F
-GLIBC_2.21 __sched_cpufree F
-GLIBC_2.21 __sched_get_priority_max F
-GLIBC_2.21 __sched_get_priority_min F
-GLIBC_2.21 __sched_getparam F
-GLIBC_2.21 __sched_getscheduler F
-GLIBC_2.21 __sched_setscheduler F
-GLIBC_2.21 __sched_yield F
-GLIBC_2.21 __select F
-GLIBC_2.21 __send F
-GLIBC_2.21 __setmntent F
-GLIBC_2.21 __setpgid F
-GLIBC_2.21 __sigaction F
-GLIBC_2.21 __sigaddset F
-GLIBC_2.21 __sigdelset F
-GLIBC_2.21 __sigismember F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sigpause F
-GLIBC_2.21 __sigsetjmp F
-GLIBC_2.21 __sigsuspend F
-GLIBC_2.21 __snprintf_chk F
-GLIBC_2.21 __sprintf_chk F
-GLIBC_2.21 __stack_chk_fail F
-GLIBC_2.21 __statfs F
-GLIBC_2.21 __stpcpy F
-GLIBC_2.21 __stpcpy_chk F
-GLIBC_2.21 __stpcpy_small F
-GLIBC_2.21 __stpncpy F
-GLIBC_2.21 __stpncpy_chk F
-GLIBC_2.21 __strcasecmp F
-GLIBC_2.21 __strcasecmp_l F
-GLIBC_2.21 __strcasestr F
-GLIBC_2.21 __strcat_chk F
-GLIBC_2.21 __strcoll_l F
-GLIBC_2.21 __strcpy_chk F
-GLIBC_2.21 __strcpy_small F
-GLIBC_2.21 __strcspn_c1 F
-GLIBC_2.21 __strcspn_c2 F
-GLIBC_2.21 __strcspn_c3 F
-GLIBC_2.21 __strdup F
-GLIBC_2.21 __strerror_r F
-GLIBC_2.21 __strfmon_l F
-GLIBC_2.21 __strftime_l F
-GLIBC_2.21 __strncasecmp_l F
-GLIBC_2.21 __strncat_chk F
-GLIBC_2.21 __strncpy_chk F
-GLIBC_2.21 __strndup F
-GLIBC_2.21 __strpbrk_c2 F
-GLIBC_2.21 __strpbrk_c3 F
-GLIBC_2.21 __strsep_1c F
-GLIBC_2.21 __strsep_2c F
-GLIBC_2.21 __strsep_3c F
-GLIBC_2.21 __strsep_g F
-GLIBC_2.21 __strspn_c1 F
-GLIBC_2.21 __strspn_c2 F
-GLIBC_2.21 __strspn_c3 F
-GLIBC_2.21 __strtod_internal F
-GLIBC_2.21 __strtod_l F
-GLIBC_2.21 __strtof_internal F
-GLIBC_2.21 __strtof_l F
-GLIBC_2.21 __strtok_r F
-GLIBC_2.21 __strtok_r_1c F
-GLIBC_2.21 __strtol_internal F
-GLIBC_2.21 __strtol_l F
-GLIBC_2.21 __strtold_internal F
-GLIBC_2.21 __strtold_l F
-GLIBC_2.21 __strtoll_internal F
-GLIBC_2.21 __strtoll_l F
-GLIBC_2.21 __strtoul_internal F
-GLIBC_2.21 __strtoul_l F
-GLIBC_2.21 __strtoull_internal F
-GLIBC_2.21 __strtoull_l F
-GLIBC_2.21 __strverscmp F
-GLIBC_2.21 __strxfrm_l F
-GLIBC_2.21 __subdf3 F
-GLIBC_2.21 __subsf3 F
-GLIBC_2.21 __swprintf_chk F
-GLIBC_2.21 __sysconf F
-GLIBC_2.21 __syslog_chk F
-GLIBC_2.21 __sysv_signal F
-GLIBC_2.21 __timezone D 0x4
-GLIBC_2.21 __toascii_l F
-GLIBC_2.21 __tolower_l F
-GLIBC_2.21 __toupper_l F
-GLIBC_2.21 __towctrans F
-GLIBC_2.21 __towctrans_l F
-GLIBC_2.21 __towlower_l F
-GLIBC_2.21 __towupper_l F
-GLIBC_2.21 __truncdfsf2 F
-GLIBC_2.21 __ttyname_r_chk F
-GLIBC_2.21 __tzname D 0x8
-GLIBC_2.21 __uflow F
-GLIBC_2.21 __underflow F
-GLIBC_2.21 __unorddf2 F
-GLIBC_2.21 __unordsf2 F
-GLIBC_2.21 __uselocale F
-GLIBC_2.21 __vasprintf_chk F
-GLIBC_2.21 __vdprintf_chk F
-GLIBC_2.21 __vfork F
-GLIBC_2.21 __vfprintf_chk F
-GLIBC_2.21 __vfscanf F
-GLIBC_2.21 __vfwprintf_chk F
-GLIBC_2.21 __vprintf_chk F
-GLIBC_2.21 __vsnprintf F
-GLIBC_2.21 __vsnprintf_chk F
-GLIBC_2.21 __vsprintf_chk F
-GLIBC_2.21 __vsscanf F
-GLIBC_2.21 __vswprintf_chk F
-GLIBC_2.21 __vsyslog_chk F
-GLIBC_2.21 __vwprintf_chk F
-GLIBC_2.21 __wait F
-GLIBC_2.21 __waitpid F
-GLIBC_2.21 __wcpcpy_chk F
-GLIBC_2.21 __wcpncpy_chk F
-GLIBC_2.21 __wcrtomb_chk F
-GLIBC_2.21 __wcscasecmp_l F
-GLIBC_2.21 __wcscat_chk F
-GLIBC_2.21 __wcscoll_l F
-GLIBC_2.21 __wcscpy_chk F
-GLIBC_2.21 __wcsftime_l F
-GLIBC_2.21 __wcsncasecmp_l F
-GLIBC_2.21 __wcsncat_chk F
-GLIBC_2.21 __wcsncpy_chk F
-GLIBC_2.21 __wcsnrtombs_chk F
-GLIBC_2.21 __wcsrtombs_chk F
-GLIBC_2.21 __wcstod_internal F
-GLIBC_2.21 __wcstod_l F
-GLIBC_2.21 __wcstof_internal F
-GLIBC_2.21 __wcstof_l F
-GLIBC_2.21 __wcstol_internal F
-GLIBC_2.21 __wcstol_l F
-GLIBC_2.21 __wcstold_internal F
-GLIBC_2.21 __wcstold_l F
-GLIBC_2.21 __wcstoll_internal F
-GLIBC_2.21 __wcstoll_l F
-GLIBC_2.21 __wcstombs_chk F
-GLIBC_2.21 __wcstoul_internal F
-GLIBC_2.21 __wcstoul_l F
-GLIBC_2.21 __wcstoull_internal F
-GLIBC_2.21 __wcstoull_l F
-GLIBC_2.21 __wcsxfrm_l F
-GLIBC_2.21 __wctomb_chk F
-GLIBC_2.21 __wctrans_l F
-GLIBC_2.21 __wctype_l F
-GLIBC_2.21 __wmemcpy_chk F
-GLIBC_2.21 __wmemmove_chk F
-GLIBC_2.21 __wmempcpy_chk F
-GLIBC_2.21 __wmemset_chk F
-GLIBC_2.21 __woverflow F
-GLIBC_2.21 __wprintf_chk F
-GLIBC_2.21 __write F
-GLIBC_2.21 __wuflow F
-GLIBC_2.21 __wunderflow F
-GLIBC_2.21 __xmknod F
-GLIBC_2.21 __xmknodat F
-GLIBC_2.21 __xpg_basename F
-GLIBC_2.21 __xpg_sigpause F
-GLIBC_2.21 __xpg_strerror_r F
-GLIBC_2.21 __xstat F
-GLIBC_2.21 __xstat64 F
-GLIBC_2.21 _authenticate F
-GLIBC_2.21 _dl_mcount_wrapper F
-GLIBC_2.21 _dl_mcount_wrapper_check F
-GLIBC_2.21 _environ D 0x4
-GLIBC_2.21 _exit F
-GLIBC_2.21 _flush_cache F
-GLIBC_2.21 _flushlbf F
-GLIBC_2.21 _libc_intl_domainname D 0x5
-GLIBC_2.21 _longjmp F
-GLIBC_2.21 _mcleanup F
-GLIBC_2.21 _mcount F
-GLIBC_2.21 _nl_default_dirname D 0x12
-GLIBC_2.21 _nl_domain_bindings D 0x4
-GLIBC_2.21 _nl_msg_cat_cntr D 0x4
-GLIBC_2.21 _null_auth D 0xc
-GLIBC_2.21 _obstack_allocated_p F
-GLIBC_2.21 _obstack_begin F
-GLIBC_2.21 _obstack_begin_1 F
-GLIBC_2.21 _obstack_free F
-GLIBC_2.21 _obstack_memory_used F
-GLIBC_2.21 _obstack_newchunk F
-GLIBC_2.21 _pthread_cleanup_pop F
-GLIBC_2.21 _pthread_cleanup_pop_restore F
-GLIBC_2.21 _pthread_cleanup_push F
-GLIBC_2.21 _pthread_cleanup_push_defer F
-GLIBC_2.21 _res D 0x200
-GLIBC_2.21 _res_hconf D 0x30
-GLIBC_2.21 _rpc_dtablesize F
-GLIBC_2.21 _seterr_reply F
-GLIBC_2.21 _setjmp F
-GLIBC_2.21 _sys_errlist D 0x21c
-GLIBC_2.21 _sys_nerr D 0x4
-GLIBC_2.21 _sys_siglist D 0x104
-GLIBC_2.21 _tolower F
-GLIBC_2.21 _toupper F
-GLIBC_2.21 a64l F
-GLIBC_2.21 abort F
-GLIBC_2.21 abs F
-GLIBC_2.21 accept F
-GLIBC_2.21 accept4 F
-GLIBC_2.21 access F
-GLIBC_2.21 acct F
-GLIBC_2.21 addmntent F
-GLIBC_2.21 addseverity F
-GLIBC_2.21 adjtime F
-GLIBC_2.21 adjtimex F
-GLIBC_2.21 advance F
-GLIBC_2.21 aio_cancel F
-GLIBC_2.21 aio_cancel64 F
-GLIBC_2.21 aio_error F
-GLIBC_2.21 aio_error64 F
-GLIBC_2.21 aio_fsync F
-GLIBC_2.21 aio_fsync64 F
-GLIBC_2.21 aio_init F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
-GLIBC_2.21 aio_return F
-GLIBC_2.21 aio_return64 F
-GLIBC_2.21 aio_suspend F
-GLIBC_2.21 aio_suspend64 F
-GLIBC_2.21 aio_write F
-GLIBC_2.21 aio_write64 F
-GLIBC_2.21 alarm F
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 alphasort F
-GLIBC_2.21 alphasort64 F
-GLIBC_2.21 argp_err_exit_status D 0x4
-GLIBC_2.21 argp_error F
-GLIBC_2.21 argp_failure F
-GLIBC_2.21 argp_help F
-GLIBC_2.21 argp_parse F
-GLIBC_2.21 argp_program_bug_address D 0x4
-GLIBC_2.21 argp_program_version D 0x4
-GLIBC_2.21 argp_program_version_hook D 0x4
-GLIBC_2.21 argp_state_help F
-GLIBC_2.21 argp_usage F
-GLIBC_2.21 argz_add F
-GLIBC_2.21 argz_add_sep F
-GLIBC_2.21 argz_append F
-GLIBC_2.21 argz_count F
-GLIBC_2.21 argz_create F
-GLIBC_2.21 argz_create_sep F
-GLIBC_2.21 argz_delete F
-GLIBC_2.21 argz_extract F
-GLIBC_2.21 argz_insert F
-GLIBC_2.21 argz_next F
-GLIBC_2.21 argz_replace F
-GLIBC_2.21 argz_stringify F
-GLIBC_2.21 asctime F
-GLIBC_2.21 asctime_r F
-GLIBC_2.21 asprintf F
-GLIBC_2.21 atof F
-GLIBC_2.21 atoi F
-GLIBC_2.21 atol F
-GLIBC_2.21 atoll F
-GLIBC_2.21 authdes_create F
-GLIBC_2.21 authdes_getucred F
-GLIBC_2.21 authdes_pk_create F
-GLIBC_2.21 authnone_create F
-GLIBC_2.21 authunix_create F
-GLIBC_2.21 authunix_create_default F
-GLIBC_2.21 backtrace F
-GLIBC_2.21 backtrace_symbols F
-GLIBC_2.21 backtrace_symbols_fd F
-GLIBC_2.21 basename F
-GLIBC_2.21 bcmp F
-GLIBC_2.21 bcopy F
-GLIBC_2.21 bdflush F
-GLIBC_2.21 bind F
-GLIBC_2.21 bind_textdomain_codeset F
-GLIBC_2.21 bindresvport F
-GLIBC_2.21 bindtextdomain F
-GLIBC_2.21 brk F
-GLIBC_2.21 bsd_signal F
-GLIBC_2.21 bsearch F
-GLIBC_2.21 btowc F
-GLIBC_2.21 bzero F
-GLIBC_2.21 c16rtomb F
-GLIBC_2.21 c32rtomb F
-GLIBC_2.21 cacheflush F
-GLIBC_2.21 calloc F
-GLIBC_2.21 callrpc F
-GLIBC_2.21 canonicalize_file_name F
-GLIBC_2.21 capget F
-GLIBC_2.21 capset F
-GLIBC_2.21 catclose F
-GLIBC_2.21 catgets F
-GLIBC_2.21 catopen F
-GLIBC_2.21 cbc_crypt F
-GLIBC_2.21 cfgetispeed F
-GLIBC_2.21 cfgetospeed F
-GLIBC_2.21 cfmakeraw F
-GLIBC_2.21 cfree F
-GLIBC_2.21 cfsetispeed F
-GLIBC_2.21 cfsetospeed F
-GLIBC_2.21 cfsetspeed F
-GLIBC_2.21 chdir F
-GLIBC_2.21 chflags F
-GLIBC_2.21 chmod F
-GLIBC_2.21 chown F
-GLIBC_2.21 chroot F
-GLIBC_2.21 clearenv F
-GLIBC_2.21 clearerr F
-GLIBC_2.21 clearerr_unlocked F
-GLIBC_2.21 clnt_broadcast F
-GLIBC_2.21 clnt_create F
-GLIBC_2.21 clnt_pcreateerror F
-GLIBC_2.21 clnt_perrno F
-GLIBC_2.21 clnt_perror F
-GLIBC_2.21 clnt_spcreateerror F
-GLIBC_2.21 clnt_sperrno F
-GLIBC_2.21 clnt_sperror F
-GLIBC_2.21 clntraw_create F
-GLIBC_2.21 clnttcp_create F
-GLIBC_2.21 clntudp_bufcreate F
-GLIBC_2.21 clntudp_create F
-GLIBC_2.21 clntunix_create F
-GLIBC_2.21 clock F
-GLIBC_2.21 clock_adjtime F
-GLIBC_2.21 clock_getcpuclockid F
-GLIBC_2.21 clock_getres F
-GLIBC_2.21 clock_gettime F
-GLIBC_2.21 clock_nanosleep F
-GLIBC_2.21 clock_settime F
-GLIBC_2.21 clone F
-GLIBC_2.21 close F
-GLIBC_2.21 closedir F
-GLIBC_2.21 closelog F
-GLIBC_2.21 confstr F
-GLIBC_2.21 connect F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 creat F
-GLIBC_2.21 creat64 F
-GLIBC_2.21 create_module F
-GLIBC_2.21 ctermid F
-GLIBC_2.21 ctime F
-GLIBC_2.21 ctime_r F
-GLIBC_2.21 cuserid F
-GLIBC_2.21 daemon F
-GLIBC_2.21 daylight D 0x4
-GLIBC_2.21 dcgettext F
-GLIBC_2.21 dcngettext F
-GLIBC_2.21 delete_module F
-GLIBC_2.21 des_setparity F
-GLIBC_2.21 dgettext F
-GLIBC_2.21 difftime F
-GLIBC_2.21 dirfd F
-GLIBC_2.21 dirname F
-GLIBC_2.21 div F
-GLIBC_2.21 dl_iterate_phdr F
-GLIBC_2.21 dladdr F
-GLIBC_2.21 dladdr1 F
-GLIBC_2.21 dlclose F
-GLIBC_2.21 dlerror F
-GLIBC_2.21 dlinfo F
-GLIBC_2.21 dlmopen F
-GLIBC_2.21 dlopen F
-GLIBC_2.21 dlsym F
-GLIBC_2.21 dlvsym F
-GLIBC_2.21 dngettext F
-GLIBC_2.21 dprintf F
-GLIBC_2.21 drand48 F
-GLIBC_2.21 drand48_r F
-GLIBC_2.21 dup F
-GLIBC_2.21 dup2 F
-GLIBC_2.21 dup3 F
-GLIBC_2.21 duplocale F
-GLIBC_2.21 dysize F
-GLIBC_2.21 eaccess F
-GLIBC_2.21 ecb_crypt F
-GLIBC_2.21 ecvt F
-GLIBC_2.21 ecvt_r F
-GLIBC_2.21 endaliasent F
-GLIBC_2.21 endfsent F
-GLIBC_2.21 endgrent F
-GLIBC_2.21 endhostent F
-GLIBC_2.21 endmntent F
-GLIBC_2.21 endnetent F
-GLIBC_2.21 endnetgrent F
-GLIBC_2.21 endprotoent F
-GLIBC_2.21 endpwent F
-GLIBC_2.21 endrpcent F
-GLIBC_2.21 endservent F
-GLIBC_2.21 endsgent F
-GLIBC_2.21 endspent F
-GLIBC_2.21 endttyent F
-GLIBC_2.21 endusershell F
-GLIBC_2.21 endutent F
-GLIBC_2.21 endutxent F
-GLIBC_2.21 environ D 0x4
-GLIBC_2.21 envz_add F
-GLIBC_2.21 envz_entry F
-GLIBC_2.21 envz_get F
-GLIBC_2.21 envz_merge F
-GLIBC_2.21 envz_remove F
-GLIBC_2.21 envz_strip F
-GLIBC_2.21 epoll_create F
-GLIBC_2.21 epoll_create1 F
-GLIBC_2.21 epoll_ctl F
-GLIBC_2.21 epoll_pwait F
-GLIBC_2.21 epoll_wait F
-GLIBC_2.21 erand48 F
-GLIBC_2.21 erand48_r F
-GLIBC_2.21 err F
-GLIBC_2.21 error F
-GLIBC_2.21 error_at_line F
-GLIBC_2.21 error_message_count D 0x4
-GLIBC_2.21 error_one_per_line D 0x4
-GLIBC_2.21 error_print_progname D 0x4
-GLIBC_2.21 errx F
-GLIBC_2.21 ether_aton F
-GLIBC_2.21 ether_aton_r F
-GLIBC_2.21 ether_hostton F
-GLIBC_2.21 ether_line F
-GLIBC_2.21 ether_ntoa F
-GLIBC_2.21 ether_ntoa_r F
-GLIBC_2.21 ether_ntohost F
-GLIBC_2.21 euidaccess F
-GLIBC_2.21 eventfd F
-GLIBC_2.21 eventfd_read F
-GLIBC_2.21 eventfd_write F
-GLIBC_2.21 execl F
-GLIBC_2.21 execle F
-GLIBC_2.21 execlp F
-GLIBC_2.21 execv F
-GLIBC_2.21 execve F
-GLIBC_2.21 execvp F
-GLIBC_2.21 execvpe F
-GLIBC_2.21 exit F
-GLIBC_2.21 faccessat F
-GLIBC_2.21 fallocate F
-GLIBC_2.21 fallocate64 F
-GLIBC_2.21 fanotify_init F
-GLIBC_2.21 fanotify_mark F
-GLIBC_2.21 fattach F
-GLIBC_2.21 fchdir F
-GLIBC_2.21 fchflags F
-GLIBC_2.21 fchmod F
-GLIBC_2.21 fchmodat F
-GLIBC_2.21 fchown F
-GLIBC_2.21 fchownat F
-GLIBC_2.21 fclose F
-GLIBC_2.21 fcloseall F
-GLIBC_2.21 fcntl F
-GLIBC_2.21 fcvt F
-GLIBC_2.21 fcvt_r F
-GLIBC_2.21 fdatasync F
-GLIBC_2.21 fdetach F
-GLIBC_2.21 fdopen F
-GLIBC_2.21 fdopendir F
-GLIBC_2.21 feof F
-GLIBC_2.21 feof_unlocked F
-GLIBC_2.21 ferror F
-GLIBC_2.21 ferror_unlocked F
-GLIBC_2.21 fexecve F
-GLIBC_2.21 fflush F
-GLIBC_2.21 fflush_unlocked F
-GLIBC_2.21 ffs F
-GLIBC_2.21 ffsl F
-GLIBC_2.21 ffsll F
-GLIBC_2.21 fgetc F
-GLIBC_2.21 fgetc_unlocked F
-GLIBC_2.21 fgetgrent F
-GLIBC_2.21 fgetgrent_r F
-GLIBC_2.21 fgetpos F
-GLIBC_2.21 fgetpos64 F
-GLIBC_2.21 fgetpwent F
-GLIBC_2.21 fgetpwent_r F
-GLIBC_2.21 fgets F
-GLIBC_2.21 fgets_unlocked F
-GLIBC_2.21 fgetsgent F
-GLIBC_2.21 fgetsgent_r F
-GLIBC_2.21 fgetspent F
-GLIBC_2.21 fgetspent_r F
-GLIBC_2.21 fgetwc F
-GLIBC_2.21 fgetwc_unlocked F
-GLIBC_2.21 fgetws F
-GLIBC_2.21 fgetws_unlocked F
-GLIBC_2.21 fgetxattr F
-GLIBC_2.21 fileno F
-GLIBC_2.21 fileno_unlocked F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 flistxattr F
-GLIBC_2.21 flock F
-GLIBC_2.21 flockfile F
-GLIBC_2.21 fmemopen F
-GLIBC_2.21 fmtmsg F
-GLIBC_2.21 fnmatch F
-GLIBC_2.21 fopen F
-GLIBC_2.21 fopen64 F
-GLIBC_2.21 fopencookie F
-GLIBC_2.21 fork F
-GLIBC_2.21 forkpty F
-GLIBC_2.21 fpathconf F
-GLIBC_2.21 fprintf F
-GLIBC_2.21 fputc F
-GLIBC_2.21 fputc_unlocked F
-GLIBC_2.21 fputs F
-GLIBC_2.21 fputs_unlocked F
-GLIBC_2.21 fputwc F
-GLIBC_2.21 fputwc_unlocked F
-GLIBC_2.21 fputws F
-GLIBC_2.21 fputws_unlocked F
-GLIBC_2.21 fread F
-GLIBC_2.21 fread_unlocked F
-GLIBC_2.21 free F
-GLIBC_2.21 freeaddrinfo F
-GLIBC_2.21 freeifaddrs F
-GLIBC_2.21 freelocale F
-GLIBC_2.21 fremovexattr F
-GLIBC_2.21 freopen F
-GLIBC_2.21 freopen64 F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 fscanf F
-GLIBC_2.21 fseek F
-GLIBC_2.21 fseeko F
-GLIBC_2.21 fseeko64 F
-GLIBC_2.21 fsetpos F
-GLIBC_2.21 fsetpos64 F
-GLIBC_2.21 fsetxattr F
-GLIBC_2.21 fstatfs F
-GLIBC_2.21 fstatfs64 F
-GLIBC_2.21 fstatvfs F
-GLIBC_2.21 fstatvfs64 F
-GLIBC_2.21 fsync F
-GLIBC_2.21 ftell F
-GLIBC_2.21 ftello F
-GLIBC_2.21 ftello64 F
-GLIBC_2.21 ftime F
-GLIBC_2.21 ftok F
-GLIBC_2.21 ftruncate F
-GLIBC_2.21 ftruncate64 F
-GLIBC_2.21 ftrylockfile F
-GLIBC_2.21 fts_children F
-GLIBC_2.21 fts_close F
-GLIBC_2.21 fts_open F
-GLIBC_2.21 fts_read F
-GLIBC_2.21 fts_set F
-GLIBC_2.21 ftw F
-GLIBC_2.21 ftw64 F
-GLIBC_2.21 funlockfile F
-GLIBC_2.21 futimens F
-GLIBC_2.21 futimes F
-GLIBC_2.21 futimesat F
-GLIBC_2.21 fwide F
-GLIBC_2.21 fwprintf F
-GLIBC_2.21 fwrite F
-GLIBC_2.21 fwrite_unlocked F
-GLIBC_2.21 fwscanf F
-GLIBC_2.21 gai_cancel F
-GLIBC_2.21 gai_error F
-GLIBC_2.21 gai_strerror F
-GLIBC_2.21 gai_suspend F
-GLIBC_2.21 gcvt F
-GLIBC_2.21 get_avphys_pages F
-GLIBC_2.21 get_current_dir_name F
-GLIBC_2.21 get_kernel_syms F
-GLIBC_2.21 get_myaddress F
-GLIBC_2.21 get_nprocs F
-GLIBC_2.21 get_nprocs_conf F
-GLIBC_2.21 get_phys_pages F
-GLIBC_2.21 getaddrinfo F
-GLIBC_2.21 getaddrinfo_a F
-GLIBC_2.21 getaliasbyname F
-GLIBC_2.21 getaliasbyname_r F
-GLIBC_2.21 getaliasent F
-GLIBC_2.21 getaliasent_r F
-GLIBC_2.21 getauxval F
-GLIBC_2.21 getc F
-GLIBC_2.21 getc_unlocked F
-GLIBC_2.21 getchar F
-GLIBC_2.21 getchar_unlocked F
-GLIBC_2.21 getcontext F
-GLIBC_2.21 getcwd F
-GLIBC_2.21 getdate F
-GLIBC_2.21 getdate_err D 0x4
-GLIBC_2.21 getdate_r F
-GLIBC_2.21 getdelim F
-GLIBC_2.21 getdirentries F
-GLIBC_2.21 getdirentries64 F
-GLIBC_2.21 getdomainname F
-GLIBC_2.21 getdtablesize F
-GLIBC_2.21 getegid F
-GLIBC_2.21 getenv F
-GLIBC_2.21 geteuid F
-GLIBC_2.21 getfsent F
-GLIBC_2.21 getfsfile F
-GLIBC_2.21 getfsspec F
-GLIBC_2.21 getgid F
-GLIBC_2.21 getgrent F
-GLIBC_2.21 getgrent_r F
-GLIBC_2.21 getgrgid F
-GLIBC_2.21 getgrgid_r F
-GLIBC_2.21 getgrnam F
-GLIBC_2.21 getgrnam_r F
-GLIBC_2.21 getgrouplist F
-GLIBC_2.21 getgroups F
-GLIBC_2.21 gethostbyaddr F
-GLIBC_2.21 gethostbyaddr_r F
-GLIBC_2.21 gethostbyname F
-GLIBC_2.21 gethostbyname2 F
-GLIBC_2.21 gethostbyname2_r F
-GLIBC_2.21 gethostbyname_r F
-GLIBC_2.21 gethostent F
-GLIBC_2.21 gethostent_r F
-GLIBC_2.21 gethostid F
-GLIBC_2.21 gethostname F
-GLIBC_2.21 getifaddrs F
-GLIBC_2.21 getipv4sourcefilter F
-GLIBC_2.21 getitimer F
-GLIBC_2.21 getline F
-GLIBC_2.21 getloadavg F
-GLIBC_2.21 getlogin F
-GLIBC_2.21 getlogin_r F
-GLIBC_2.21 getmntent F
-GLIBC_2.21 getmntent_r F
-GLIBC_2.21 getmsg F
-GLIBC_2.21 getnameinfo F
-GLIBC_2.21 getnetbyaddr F
-GLIBC_2.21 getnetbyaddr_r F
-GLIBC_2.21 getnetbyname F
-GLIBC_2.21 getnetbyname_r F
-GLIBC_2.21 getnetent F
-GLIBC_2.21 getnetent_r F
-GLIBC_2.21 getnetgrent F
-GLIBC_2.21 getnetgrent_r F
-GLIBC_2.21 getnetname F
-GLIBC_2.21 getopt F
-GLIBC_2.21 getopt_long F
-GLIBC_2.21 getopt_long_only F
-GLIBC_2.21 getpagesize F
-GLIBC_2.21 getpass F
-GLIBC_2.21 getpeername F
-GLIBC_2.21 getpgid F
-GLIBC_2.21 getpgrp F
-GLIBC_2.21 getpid F
-GLIBC_2.21 getpmsg F
-GLIBC_2.21 getppid F
-GLIBC_2.21 getpriority F
-GLIBC_2.21 getprotobyname F
-GLIBC_2.21 getprotobyname_r F
-GLIBC_2.21 getprotobynumber F
-GLIBC_2.21 getprotobynumber_r F
-GLIBC_2.21 getprotoent F
-GLIBC_2.21 getprotoent_r F
-GLIBC_2.21 getpt F
-GLIBC_2.21 getpublickey F
-GLIBC_2.21 getpw F
-GLIBC_2.21 getpwent F
-GLIBC_2.21 getpwent_r F
-GLIBC_2.21 getpwnam F
-GLIBC_2.21 getpwnam_r F
-GLIBC_2.21 getpwuid F
-GLIBC_2.21 getpwuid_r F
-GLIBC_2.21 getresgid F
-GLIBC_2.21 getresuid F
-GLIBC_2.21 getrlimit F
-GLIBC_2.21 getrlimit64 F
-GLIBC_2.21 getrpcbyname F
-GLIBC_2.21 getrpcbyname_r F
-GLIBC_2.21 getrpcbynumber F
-GLIBC_2.21 getrpcbynumber_r F
-GLIBC_2.21 getrpcent F
-GLIBC_2.21 getrpcent_r F
-GLIBC_2.21 getrpcport F
-GLIBC_2.21 getrusage F
-GLIBC_2.21 gets F
-GLIBC_2.21 getsecretkey F
-GLIBC_2.21 getservbyname F
-GLIBC_2.21 getservbyname_r F
-GLIBC_2.21 getservbyport F
-GLIBC_2.21 getservbyport_r F
-GLIBC_2.21 getservent F
-GLIBC_2.21 getservent_r F
-GLIBC_2.21 getsgent F
-GLIBC_2.21 getsgent_r F
-GLIBC_2.21 getsgnam F
-GLIBC_2.21 getsgnam_r F
-GLIBC_2.21 getsid F
-GLIBC_2.21 getsockname F
-GLIBC_2.21 getsockopt F
-GLIBC_2.21 getsourcefilter F
-GLIBC_2.21 getspent F
-GLIBC_2.21 getspent_r F
-GLIBC_2.21 getspnam F
-GLIBC_2.21 getspnam_r F
-GLIBC_2.21 getsubopt F
-GLIBC_2.21 gettext F
-GLIBC_2.21 gettimeofday F
-GLIBC_2.21 getttyent F
-GLIBC_2.21 getttynam F
-GLIBC_2.21 getuid F
-GLIBC_2.21 getusershell F
-GLIBC_2.21 getutent F
-GLIBC_2.21 getutent_r F
-GLIBC_2.21 getutid F
-GLIBC_2.21 getutid_r F
-GLIBC_2.21 getutline F
-GLIBC_2.21 getutline_r F
-GLIBC_2.21 getutmp F
-GLIBC_2.21 getutmpx F
-GLIBC_2.21 getutxent F
-GLIBC_2.21 getutxid F
-GLIBC_2.21 getutxline F
-GLIBC_2.21 getw F
-GLIBC_2.21 getwc F
-GLIBC_2.21 getwc_unlocked F
-GLIBC_2.21 getwchar F
-GLIBC_2.21 getwchar_unlocked F
-GLIBC_2.21 getwd F
-GLIBC_2.21 getxattr F
-GLIBC_2.21 glob F
-GLIBC_2.21 glob64 F
-GLIBC_2.21 glob_pattern_p F
-GLIBC_2.21 globfree F
-GLIBC_2.21 globfree64 F
-GLIBC_2.21 gmtime F
-GLIBC_2.21 gmtime_r F
-GLIBC_2.21 gnu_dev_major F
-GLIBC_2.21 gnu_dev_makedev F
-GLIBC_2.21 gnu_dev_minor F
-GLIBC_2.21 gnu_get_libc_release F
-GLIBC_2.21 gnu_get_libc_version F
-GLIBC_2.21 grantpt F
-GLIBC_2.21 group_member F
-GLIBC_2.21 gsignal F
-GLIBC_2.21 gtty F
-GLIBC_2.21 h_errlist D 0x14
-GLIBC_2.21 h_nerr D 0x4
-GLIBC_2.21 hasmntopt F
-GLIBC_2.21 hcreate F
-GLIBC_2.21 hcreate_r F
-GLIBC_2.21 hdestroy F
-GLIBC_2.21 hdestroy_r F
-GLIBC_2.21 herror F
-GLIBC_2.21 host2netname F
-GLIBC_2.21 hsearch F
-GLIBC_2.21 hsearch_r F
-GLIBC_2.21 hstrerror F
-GLIBC_2.21 htonl F
-GLIBC_2.21 htons F
-GLIBC_2.21 iconv F
-GLIBC_2.21 iconv_close F
-GLIBC_2.21 iconv_open F
-GLIBC_2.21 if_freenameindex F
-GLIBC_2.21 if_indextoname F
-GLIBC_2.21 if_nameindex F
-GLIBC_2.21 if_nametoindex F
-GLIBC_2.21 imaxabs F
-GLIBC_2.21 imaxdiv F
-GLIBC_2.21 in6addr_any D 0x10
-GLIBC_2.21 in6addr_loopback D 0x10
-GLIBC_2.21 index F
-GLIBC_2.21 inet6_opt_append F
-GLIBC_2.21 inet6_opt_find F
-GLIBC_2.21 inet6_opt_finish F
-GLIBC_2.21 inet6_opt_get_val F
-GLIBC_2.21 inet6_opt_init F
-GLIBC_2.21 inet6_opt_next F
-GLIBC_2.21 inet6_opt_set_val F
-GLIBC_2.21 inet6_option_alloc F
-GLIBC_2.21 inet6_option_append F
-GLIBC_2.21 inet6_option_find F
-GLIBC_2.21 inet6_option_init F
-GLIBC_2.21 inet6_option_next F
-GLIBC_2.21 inet6_option_space F
-GLIBC_2.21 inet6_rth_add F
-GLIBC_2.21 inet6_rth_getaddr F
-GLIBC_2.21 inet6_rth_init F
-GLIBC_2.21 inet6_rth_reverse F
-GLIBC_2.21 inet6_rth_segments F
-GLIBC_2.21 inet6_rth_space F
-GLIBC_2.21 inet_addr F
-GLIBC_2.21 inet_aton F
-GLIBC_2.21 inet_lnaof F
-GLIBC_2.21 inet_makeaddr F
-GLIBC_2.21 inet_netof F
-GLIBC_2.21 inet_network F
-GLIBC_2.21 inet_nsap_addr F
-GLIBC_2.21 inet_nsap_ntoa F
-GLIBC_2.21 inet_ntoa F
-GLIBC_2.21 inet_ntop F
-GLIBC_2.21 inet_pton F
-GLIBC_2.21 init_module F
-GLIBC_2.21 initgroups F
-GLIBC_2.21 initstate F
-GLIBC_2.21 initstate_r F
-GLIBC_2.21 innetgr F
-GLIBC_2.21 inotify_add_watch F
-GLIBC_2.21 inotify_init F
-GLIBC_2.21 inotify_init1 F
-GLIBC_2.21 inotify_rm_watch F
-GLIBC_2.21 insque F
-GLIBC_2.21 ioctl F
-GLIBC_2.21 iruserok F
-GLIBC_2.21 iruserok_af F
-GLIBC_2.21 isalnum F
-GLIBC_2.21 isalnum_l F
-GLIBC_2.21 isalpha F
-GLIBC_2.21 isalpha_l F
-GLIBC_2.21 isascii F
-GLIBC_2.21 isastream F
-GLIBC_2.21 isatty F
-GLIBC_2.21 isblank F
-GLIBC_2.21 isblank_l F
-GLIBC_2.21 iscntrl F
-GLIBC_2.21 iscntrl_l F
-GLIBC_2.21 isctype F
-GLIBC_2.21 isdigit F
-GLIBC_2.21 isdigit_l F
-GLIBC_2.21 isfdtype F
-GLIBC_2.21 isgraph F
-GLIBC_2.21 isgraph_l F
-GLIBC_2.21 isinf F
-GLIBC_2.21 isinff F
-GLIBC_2.21 isinfl F
-GLIBC_2.21 islower F
-GLIBC_2.21 islower_l F
-GLIBC_2.21 isnan F
-GLIBC_2.21 isnanf F
-GLIBC_2.21 isnanl F
-GLIBC_2.21 isprint F
-GLIBC_2.21 isprint_l F
-GLIBC_2.21 ispunct F
-GLIBC_2.21 ispunct_l F
-GLIBC_2.21 isspace F
-GLIBC_2.21 isspace_l F
-GLIBC_2.21 isupper F
-GLIBC_2.21 isupper_l F
-GLIBC_2.21 iswalnum F
-GLIBC_2.21 iswalnum_l F
-GLIBC_2.21 iswalpha F
-GLIBC_2.21 iswalpha_l F
-GLIBC_2.21 iswblank F
-GLIBC_2.21 iswblank_l F
-GLIBC_2.21 iswcntrl F
-GLIBC_2.21 iswcntrl_l F
-GLIBC_2.21 iswctype F
-GLIBC_2.21 iswctype_l F
-GLIBC_2.21 iswdigit F
-GLIBC_2.21 iswdigit_l F
-GLIBC_2.21 iswgraph F
-GLIBC_2.21 iswgraph_l F
-GLIBC_2.21 iswlower F
-GLIBC_2.21 iswlower_l F
-GLIBC_2.21 iswprint F
-GLIBC_2.21 iswprint_l F
-GLIBC_2.21 iswpunct F
-GLIBC_2.21 iswpunct_l F
-GLIBC_2.21 iswspace F
-GLIBC_2.21 iswspace_l F
-GLIBC_2.21 iswupper F
-GLIBC_2.21 iswupper_l F
-GLIBC_2.21 iswxdigit F
-GLIBC_2.21 iswxdigit_l F
-GLIBC_2.21 isxdigit F
-GLIBC_2.21 isxdigit_l F
-GLIBC_2.21 jrand48 F
-GLIBC_2.21 jrand48_r F
-GLIBC_2.21 key_decryptsession F
-GLIBC_2.21 key_decryptsession_pk F
-GLIBC_2.21 key_encryptsession F
-GLIBC_2.21 key_encryptsession_pk F
-GLIBC_2.21 key_gendes F
-GLIBC_2.21 key_get_conv F
-GLIBC_2.21 key_secretkey_is_set F
-GLIBC_2.21 key_setnet F
-GLIBC_2.21 key_setsecret F
-GLIBC_2.21 kill F
-GLIBC_2.21 killpg F
-GLIBC_2.21 klogctl F
-GLIBC_2.21 l64a F
-GLIBC_2.21 labs F
-GLIBC_2.21 lchmod F
-GLIBC_2.21 lchown F
-GLIBC_2.21 lckpwdf F
-GLIBC_2.21 lcong48 F
-GLIBC_2.21 lcong48_r F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 ldiv F
-GLIBC_2.21 lfind F
-GLIBC_2.21 lgetxattr F
-GLIBC_2.21 link F
-GLIBC_2.21 linkat F
-GLIBC_2.21 lio_listio F
-GLIBC_2.21 lio_listio64 F
-GLIBC_2.21 listen F
-GLIBC_2.21 listxattr F
-GLIBC_2.21 llabs F
-GLIBC_2.21 lldiv F
-GLIBC_2.21 llistxattr F
-GLIBC_2.21 llseek F
-GLIBC_2.21 loc1 D 0x4
-GLIBC_2.21 loc2 D 0x4
-GLIBC_2.21 localeconv F
-GLIBC_2.21 localtime F
-GLIBC_2.21 localtime_r F
-GLIBC_2.21 lockf F
-GLIBC_2.21 lockf64 F
-GLIBC_2.21 locs D 0x4
-GLIBC_2.21 login F
-GLIBC_2.21 login_tty F
-GLIBC_2.21 logout F
-GLIBC_2.21 logwtmp F
-GLIBC_2.21 longjmp F
-GLIBC_2.21 lrand48 F
-GLIBC_2.21 lrand48_r F
-GLIBC_2.21 lremovexattr F
-GLIBC_2.21 lsearch F
-GLIBC_2.21 lseek F
-GLIBC_2.21 lseek64 F
-GLIBC_2.21 lsetxattr F
-GLIBC_2.21 lutimes F
-GLIBC_2.21 madvise F
-GLIBC_2.21 makecontext F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mallwatch D 0x4
-GLIBC_2.21 mblen F
-GLIBC_2.21 mbrlen F
-GLIBC_2.21 mbrtoc16 F
-GLIBC_2.21 mbrtoc32 F
-GLIBC_2.21 mbrtowc F
-GLIBC_2.21 mbsinit F
-GLIBC_2.21 mbsnrtowcs F
-GLIBC_2.21 mbsrtowcs F
-GLIBC_2.21 mbstowcs F
-GLIBC_2.21 mbtowc F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 memccpy F
-GLIBC_2.21 memchr F
-GLIBC_2.21 memcmp F
-GLIBC_2.21 memcpy F
-GLIBC_2.21 memfrob F
-GLIBC_2.21 memmem F
-GLIBC_2.21 memmove F
-GLIBC_2.21 mempcpy F
-GLIBC_2.21 memrchr F
-GLIBC_2.21 memset F
-GLIBC_2.21 mincore F
-GLIBC_2.21 mkdir F
-GLIBC_2.21 mkdirat F
-GLIBC_2.21 mkdtemp F
-GLIBC_2.21 mkfifo F
-GLIBC_2.21 mkfifoat F
-GLIBC_2.21 mkostemp F
-GLIBC_2.21 mkostemp64 F
-GLIBC_2.21 mkostemps F
-GLIBC_2.21 mkostemps64 F
-GLIBC_2.21 mkstemp F
-GLIBC_2.21 mkstemp64 F
-GLIBC_2.21 mkstemps F
-GLIBC_2.21 mkstemps64 F
-GLIBC_2.21 mktemp F
-GLIBC_2.21 mktime F
-GLIBC_2.21 mlock F
-GLIBC_2.21 mlockall F
-GLIBC_2.21 mmap F
-GLIBC_2.21 mmap64 F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 moncontrol F
-GLIBC_2.21 monstartup F
-GLIBC_2.21 mount F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mprotect F
-GLIBC_2.21 mq_close F
-GLIBC_2.21 mq_getattr F
-GLIBC_2.21 mq_notify F
-GLIBC_2.21 mq_open F
-GLIBC_2.21 mq_receive F
-GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_setattr F
-GLIBC_2.21 mq_timedreceive F
-GLIBC_2.21 mq_timedsend F
-GLIBC_2.21 mq_unlink F
-GLIBC_2.21 mrand48 F
-GLIBC_2.21 mrand48_r F
-GLIBC_2.21 mremap F
-GLIBC_2.21 msgctl F
-GLIBC_2.21 msgget F
-GLIBC_2.21 msgrcv F
-GLIBC_2.21 msgsnd F
-GLIBC_2.21 msync F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 munlock F
-GLIBC_2.21 munlockall F
-GLIBC_2.21 munmap F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 name_to_handle_at F
-GLIBC_2.21 nanosleep F
-GLIBC_2.21 netname2host F
-GLIBC_2.21 netname2user F
-GLIBC_2.21 newlocale F
-GLIBC_2.21 nfsservctl F
-GLIBC_2.21 nftw F
-GLIBC_2.21 nftw64 F
-GLIBC_2.21 ngettext F
-GLIBC_2.21 nice F
-GLIBC_2.21 nl_langinfo F
-GLIBC_2.21 nl_langinfo_l F
-GLIBC_2.21 nrand48 F
-GLIBC_2.21 nrand48_r F
-GLIBC_2.21 ns_name_compress F
-GLIBC_2.21 ns_name_ntop F
-GLIBC_2.21 ns_name_pack F
-GLIBC_2.21 ns_name_pton F
-GLIBC_2.21 ns_name_skip F
-GLIBC_2.21 ns_name_uncompress F
-GLIBC_2.21 ns_name_unpack F
-GLIBC_2.21 ntohl F
-GLIBC_2.21 ntohs F
-GLIBC_2.21 ntp_adjtime F
-GLIBC_2.21 ntp_gettime F
-GLIBC_2.21 ntp_gettimex F
-GLIBC_2.21 obstack_alloc_failed_handler D 0x4
-GLIBC_2.21 obstack_exit_failure D 0x4
-GLIBC_2.21 obstack_free F
-GLIBC_2.21 obstack_printf F
-GLIBC_2.21 obstack_vprintf F
-GLIBC_2.21 on_exit F
-GLIBC_2.21 open F
-GLIBC_2.21 open64 F
-GLIBC_2.21 open_by_handle_at F
-GLIBC_2.21 open_memstream F
-GLIBC_2.21 open_wmemstream F
-GLIBC_2.21 openat F
-GLIBC_2.21 openat64 F
-GLIBC_2.21 opendir F
-GLIBC_2.21 openlog F
-GLIBC_2.21 openpty F
-GLIBC_2.21 optarg D 0x4
-GLIBC_2.21 opterr D 0x4
-GLIBC_2.21 optind D 0x4
-GLIBC_2.21 optopt D 0x4
-GLIBC_2.21 parse_printf_format F
-GLIBC_2.21 passwd2des F
-GLIBC_2.21 pathconf F
-GLIBC_2.21 pause F
-GLIBC_2.21 pclose F
-GLIBC_2.21 perror F
-GLIBC_2.21 personality F
-GLIBC_2.21 pipe F
-GLIBC_2.21 pipe2 F
-GLIBC_2.21 pivot_root F
-GLIBC_2.21 pmap_getmaps F
-GLIBC_2.21 pmap_getport F
-GLIBC_2.21 pmap_rmtcall F
-GLIBC_2.21 pmap_set F
-GLIBC_2.21 pmap_unset F
-GLIBC_2.21 poll F
-GLIBC_2.21 popen F
-GLIBC_2.21 posix_fadvise F
-GLIBC_2.21 posix_fadvise64 F
-GLIBC_2.21 posix_fallocate F
-GLIBC_2.21 posix_fallocate64 F
-GLIBC_2.21 posix_madvise F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 posix_openpt F
-GLIBC_2.21 posix_spawn F
-GLIBC_2.21 posix_spawn_file_actions_addclose F
-GLIBC_2.21 posix_spawn_file_actions_adddup2 F
-GLIBC_2.21 posix_spawn_file_actions_addopen F
-GLIBC_2.21 posix_spawn_file_actions_destroy F
-GLIBC_2.21 posix_spawn_file_actions_init F
-GLIBC_2.21 posix_spawnattr_destroy F
-GLIBC_2.21 posix_spawnattr_getflags F
-GLIBC_2.21 posix_spawnattr_getpgroup F
-GLIBC_2.21 posix_spawnattr_getschedparam F
-GLIBC_2.21 posix_spawnattr_getschedpolicy F
-GLIBC_2.21 posix_spawnattr_getsigdefault F
-GLIBC_2.21 posix_spawnattr_getsigmask F
-GLIBC_2.21 posix_spawnattr_init F
-GLIBC_2.21 posix_spawnattr_setflags F
-GLIBC_2.21 posix_spawnattr_setpgroup F
-GLIBC_2.21 posix_spawnattr_setschedparam F
-GLIBC_2.21 posix_spawnattr_setschedpolicy F
-GLIBC_2.21 posix_spawnattr_setsigdefault F
-GLIBC_2.21 posix_spawnattr_setsigmask F
-GLIBC_2.21 posix_spawnp F
-GLIBC_2.21 ppoll F
-GLIBC_2.21 prctl F
-GLIBC_2.21 pread F
-GLIBC_2.21 pread64 F
-GLIBC_2.21 preadv F
-GLIBC_2.21 preadv64 F
-GLIBC_2.21 printf F
-GLIBC_2.21 printf_size F
-GLIBC_2.21 printf_size_info F
-GLIBC_2.21 prlimit F
-GLIBC_2.21 prlimit64 F
-GLIBC_2.21 process_vm_readv F
-GLIBC_2.21 process_vm_writev F
-GLIBC_2.21 profil F
-GLIBC_2.21 program_invocation_name D 0x4
-GLIBC_2.21 program_invocation_short_name D 0x4
-GLIBC_2.21 pselect F
-GLIBC_2.21 psiginfo F
-GLIBC_2.21 psignal F
-GLIBC_2.21 pthread_attr_destroy F
-GLIBC_2.21 pthread_attr_getaffinity_np F
-GLIBC_2.21 pthread_attr_getdetachstate F
-GLIBC_2.21 pthread_attr_getguardsize F
-GLIBC_2.21 pthread_attr_getinheritsched F
-GLIBC_2.21 pthread_attr_getschedparam F
-GLIBC_2.21 pthread_attr_getschedpolicy F
-GLIBC_2.21 pthread_attr_getscope F
-GLIBC_2.21 pthread_attr_getstack F
-GLIBC_2.21 pthread_attr_getstackaddr F
-GLIBC_2.21 pthread_attr_getstacksize F
-GLIBC_2.21 pthread_attr_init F
-GLIBC_2.21 pthread_attr_setaffinity_np F
-GLIBC_2.21 pthread_attr_setdetachstate F
-GLIBC_2.21 pthread_attr_setguardsize F
-GLIBC_2.21 pthread_attr_setinheritsched F
-GLIBC_2.21 pthread_attr_setschedparam F
-GLIBC_2.21 pthread_attr_setschedpolicy F
-GLIBC_2.21 pthread_attr_setscope F
-GLIBC_2.21 pthread_attr_setstack F
-GLIBC_2.21 pthread_attr_setstackaddr F
-GLIBC_2.21 pthread_attr_setstacksize F
-GLIBC_2.21 pthread_barrier_destroy F
-GLIBC_2.21 pthread_barrier_init F
-GLIBC_2.21 pthread_barrier_wait F
-GLIBC_2.21 pthread_barrierattr_destroy F
-GLIBC_2.21 pthread_barrierattr_getpshared F
-GLIBC_2.21 pthread_barrierattr_init F
-GLIBC_2.21 pthread_barrierattr_setpshared F
-GLIBC_2.21 pthread_cancel F
-GLIBC_2.21 pthread_cond_broadcast F
-GLIBC_2.21 pthread_cond_destroy F
-GLIBC_2.21 pthread_cond_init F
-GLIBC_2.21 pthread_cond_signal F
-GLIBC_2.21 pthread_cond_timedwait F
-GLIBC_2.21 pthread_cond_wait F
-GLIBC_2.21 pthread_condattr_destroy F
-GLIBC_2.21 pthread_condattr_getclock F
-GLIBC_2.21 pthread_condattr_getpshared F
-GLIBC_2.21 pthread_condattr_init F
-GLIBC_2.21 pthread_condattr_setclock F
-GLIBC_2.21 pthread_condattr_setpshared F
-GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_detach F
-GLIBC_2.21 pthread_equal F
-GLIBC_2.21 pthread_exit F
-GLIBC_2.21 pthread_getaffinity_np F
-GLIBC_2.21 pthread_getattr_default_np F
-GLIBC_2.21 pthread_getattr_np F
-GLIBC_2.21 pthread_getconcurrency F
-GLIBC_2.21 pthread_getcpuclockid F
-GLIBC_2.21 pthread_getname_np F
-GLIBC_2.21 pthread_getschedparam F
-GLIBC_2.21 pthread_getspecific F
-GLIBC_2.21 pthread_join F
-GLIBC_2.21 pthread_key_create F
-GLIBC_2.21 pthread_key_delete F
-GLIBC_2.21 pthread_kill F
-GLIBC_2.21 pthread_kill_other_threads_np F
-GLIBC_2.21 pthread_mutex_consistent F
-GLIBC_2.21 pthread_mutex_consistent_np F
-GLIBC_2.21 pthread_mutex_destroy F
-GLIBC_2.21 pthread_mutex_getprioceiling F
-GLIBC_2.21 pthread_mutex_init F
-GLIBC_2.21 pthread_mutex_lock F
-GLIBC_2.21 pthread_mutex_setprioceiling F
-GLIBC_2.21 pthread_mutex_timedlock F
-GLIBC_2.21 pthread_mutex_trylock F
-GLIBC_2.21 pthread_mutex_unlock F
-GLIBC_2.21 pthread_mutexattr_destroy F
-GLIBC_2.21 pthread_mutexattr_getkind_np F
-GLIBC_2.21 pthread_mutexattr_getprioceiling F
-GLIBC_2.21 pthread_mutexattr_getprotocol F
-GLIBC_2.21 pthread_mutexattr_getpshared F
-GLIBC_2.21 pthread_mutexattr_getrobust F
-GLIBC_2.21 pthread_mutexattr_getrobust_np F
-GLIBC_2.21 pthread_mutexattr_gettype F
-GLIBC_2.21 pthread_mutexattr_init F
-GLIBC_2.21 pthread_mutexattr_setkind_np F
-GLIBC_2.21 pthread_mutexattr_setprioceiling F
-GLIBC_2.21 pthread_mutexattr_setprotocol F
-GLIBC_2.21 pthread_mutexattr_setpshared F
-GLIBC_2.21 pthread_mutexattr_setrobust F
-GLIBC_2.21 pthread_mutexattr_setrobust_np F
-GLIBC_2.21 pthread_mutexattr_settype F
-GLIBC_2.21 pthread_once F
-GLIBC_2.21 pthread_rwlock_destroy F
-GLIBC_2.21 pthread_rwlock_init F
-GLIBC_2.21 pthread_rwlock_rdlock F
-GLIBC_2.21 pthread_rwlock_timedrdlock F
-GLIBC_2.21 pthread_rwlock_timedwrlock F
-GLIBC_2.21 pthread_rwlock_tryrdlock F
-GLIBC_2.21 pthread_rwlock_trywrlock F
-GLIBC_2.21 pthread_rwlock_unlock F
-GLIBC_2.21 pthread_rwlock_wrlock F
-GLIBC_2.21 pthread_rwlockattr_destroy F
-GLIBC_2.21 pthread_rwlockattr_getkind_np F
-GLIBC_2.21 pthread_rwlockattr_getpshared F
-GLIBC_2.21 pthread_rwlockattr_init F
-GLIBC_2.21 pthread_rwlockattr_setkind_np F
-GLIBC_2.21 pthread_rwlockattr_setpshared F
-GLIBC_2.21 pthread_self F
-GLIBC_2.21 pthread_setaffinity_np F
-GLIBC_2.21 pthread_setattr_default_np F
-GLIBC_2.21 pthread_setcancelstate F
-GLIBC_2.21 pthread_setcanceltype F
-GLIBC_2.21 pthread_setconcurrency F
-GLIBC_2.21 pthread_setname_np F
-GLIBC_2.21 pthread_setschedparam F
-GLIBC_2.21 pthread_setschedprio F
-GLIBC_2.21 pthread_setspecific F
-GLIBC_2.21 pthread_sigmask F
-GLIBC_2.21 pthread_sigqueue F
-GLIBC_2.21 pthread_spin_destroy F
-GLIBC_2.21 pthread_spin_init F
-GLIBC_2.21 pthread_spin_lock F
-GLIBC_2.21 pthread_spin_trylock F
-GLIBC_2.21 pthread_spin_unlock F
-GLIBC_2.21 pthread_testcancel F
-GLIBC_2.21 pthread_timedjoin_np F
-GLIBC_2.21 pthread_tryjoin_np F
-GLIBC_2.21 pthread_yield F
-GLIBC_2.21 ptrace F
-GLIBC_2.21 ptsname F
-GLIBC_2.21 ptsname_r F
-GLIBC_2.21 putc F
-GLIBC_2.21 putc_unlocked F
-GLIBC_2.21 putchar F
-GLIBC_2.21 putchar_unlocked F
-GLIBC_2.21 putenv F
-GLIBC_2.21 putgrent F
-GLIBC_2.21 putmsg F
-GLIBC_2.21 putpmsg F
-GLIBC_2.21 putpwent F
-GLIBC_2.21 puts F
-GLIBC_2.21 putsgent F
-GLIBC_2.21 putspent F
-GLIBC_2.21 pututline F
-GLIBC_2.21 pututxline F
-GLIBC_2.21 putw F
-GLIBC_2.21 putwc F
-GLIBC_2.21 putwc_unlocked F
-GLIBC_2.21 putwchar F
-GLIBC_2.21 putwchar_unlocked F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 pwrite F
-GLIBC_2.21 pwrite64 F
-GLIBC_2.21 pwritev F
-GLIBC_2.21 pwritev64 F
-GLIBC_2.21 qecvt F
-GLIBC_2.21 qecvt_r F
-GLIBC_2.21 qfcvt F
-GLIBC_2.21 qfcvt_r F
-GLIBC_2.21 qgcvt F
-GLIBC_2.21 qsort F
-GLIBC_2.21 qsort_r F
-GLIBC_2.21 query_module F
-GLIBC_2.21 quick_exit F
-GLIBC_2.21 quotactl F
-GLIBC_2.21 raise F
-GLIBC_2.21 rand F
-GLIBC_2.21 rand_r F
-GLIBC_2.21 random F
-GLIBC_2.21 random_r F
-GLIBC_2.21 rawmemchr F
-GLIBC_2.21 rcmd F
-GLIBC_2.21 rcmd_af F
-GLIBC_2.21 re_comp F
-GLIBC_2.21 re_compile_fastmap F
-GLIBC_2.21 re_compile_pattern F
-GLIBC_2.21 re_exec F
-GLIBC_2.21 re_match F
-GLIBC_2.21 re_match_2 F
-GLIBC_2.21 re_search F
-GLIBC_2.21 re_search_2 F
-GLIBC_2.21 re_set_registers F
-GLIBC_2.21 re_set_syntax F
-GLIBC_2.21 re_syntax_options D 0x4
-GLIBC_2.21 read F
-GLIBC_2.21 readahead F
-GLIBC_2.21 readdir F
-GLIBC_2.21 readdir64 F
-GLIBC_2.21 readdir64_r F
-GLIBC_2.21 readdir_r F
-GLIBC_2.21 readlink F
-GLIBC_2.21 readlinkat F
-GLIBC_2.21 readv F
-GLIBC_2.21 realloc F
-GLIBC_2.21 realpath F
-GLIBC_2.21 reboot F
-GLIBC_2.21 recv F
-GLIBC_2.21 recvfrom F
-GLIBC_2.21 recvmmsg F
-GLIBC_2.21 recvmsg F
-GLIBC_2.21 regcomp F
-GLIBC_2.21 regerror F
-GLIBC_2.21 regexec F
-GLIBC_2.21 regfree F
-GLIBC_2.21 register_printf_function F
-GLIBC_2.21 register_printf_modifier F
-GLIBC_2.21 register_printf_specifier F
-GLIBC_2.21 register_printf_type F
-GLIBC_2.21 registerrpc F
-GLIBC_2.21 remap_file_pages F
-GLIBC_2.21 remove F
-GLIBC_2.21 removexattr F
-GLIBC_2.21 remque F
-GLIBC_2.21 rename F
-GLIBC_2.21 renameat F
-GLIBC_2.21 revoke F
-GLIBC_2.21 rewind F
-GLIBC_2.21 rewinddir F
-GLIBC_2.21 rexec F
-GLIBC_2.21 rexec_af F
-GLIBC_2.21 rexecoptions D 0x4
-GLIBC_2.21 rindex F
-GLIBC_2.21 rmdir F
-GLIBC_2.21 rpc_createerr D 0x10
-GLIBC_2.21 rpmatch F
-GLIBC_2.21 rresvport F
-GLIBC_2.21 rresvport_af F
-GLIBC_2.21 rtime F
-GLIBC_2.21 ruserok F
-GLIBC_2.21 ruserok_af F
-GLIBC_2.21 ruserpass F
-GLIBC_2.21 sbrk F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 scandir F
-GLIBC_2.21 scandir64 F
-GLIBC_2.21 scandirat F
-GLIBC_2.21 scandirat64 F
-GLIBC_2.21 scanf F
-GLIBC_2.21 sched_get_priority_max F
-GLIBC_2.21 sched_get_priority_min F
-GLIBC_2.21 sched_getaffinity F
-GLIBC_2.21 sched_getcpu F
-GLIBC_2.21 sched_getparam F
-GLIBC_2.21 sched_getscheduler F
-GLIBC_2.21 sched_rr_get_interval F
-GLIBC_2.21 sched_setaffinity F
-GLIBC_2.21 sched_setparam F
-GLIBC_2.21 sched_setscheduler F
-GLIBC_2.21 sched_yield F
-GLIBC_2.21 secure_getenv F
-GLIBC_2.21 seed48 F
-GLIBC_2.21 seed48_r F
-GLIBC_2.21 seekdir F
-GLIBC_2.21 select F
-GLIBC_2.21 sem_close F
-GLIBC_2.21 sem_destroy F
-GLIBC_2.21 sem_getvalue F
-GLIBC_2.21 sem_init F
-GLIBC_2.21 sem_open F
-GLIBC_2.21 sem_post F
-GLIBC_2.21 sem_timedwait F
-GLIBC_2.21 sem_trywait F
-GLIBC_2.21 sem_unlink F
-GLIBC_2.21 sem_wait F
-GLIBC_2.21 semctl F
-GLIBC_2.21 semget F
-GLIBC_2.21 semop F
-GLIBC_2.21 semtimedop F
-GLIBC_2.21 send F
-GLIBC_2.21 sendfile F
-GLIBC_2.21 sendfile64 F
-GLIBC_2.21 sendmmsg F
-GLIBC_2.21 sendmsg F
-GLIBC_2.21 sendto F
-GLIBC_2.21 setaliasent F
-GLIBC_2.21 setbuf F
-GLIBC_2.21 setbuffer F
-GLIBC_2.21 setcontext F
-GLIBC_2.21 setdomainname F
-GLIBC_2.21 setegid F
-GLIBC_2.21 setenv F
-GLIBC_2.21 seteuid F
-GLIBC_2.21 setfsent F
-GLIBC_2.21 setfsgid F
-GLIBC_2.21 setfsuid F
-GLIBC_2.21 setgid F
-GLIBC_2.21 setgrent F
-GLIBC_2.21 setgroups F
-GLIBC_2.21 sethostent F
-GLIBC_2.21 sethostid F
-GLIBC_2.21 sethostname F
-GLIBC_2.21 setipv4sourcefilter F
-GLIBC_2.21 setitimer F
-GLIBC_2.21 setjmp F
-GLIBC_2.21 setlinebuf F
-GLIBC_2.21 setlocale F
-GLIBC_2.21 setlogin F
-GLIBC_2.21 setlogmask F
-GLIBC_2.21 setmntent F
-GLIBC_2.21 setnetent F
-GLIBC_2.21 setnetgrent F
-GLIBC_2.21 setns F
-GLIBC_2.21 setpgid F
-GLIBC_2.21 setpgrp F
-GLIBC_2.21 setpriority F
-GLIBC_2.21 setprotoent F
-GLIBC_2.21 setpwent F
-GLIBC_2.21 setregid F
-GLIBC_2.21 setresgid F
-GLIBC_2.21 setresuid F
-GLIBC_2.21 setreuid F
-GLIBC_2.21 setrlimit F
-GLIBC_2.21 setrlimit64 F
-GLIBC_2.21 setrpcent F
-GLIBC_2.21 setservent F
-GLIBC_2.21 setsgent F
-GLIBC_2.21 setsid F
-GLIBC_2.21 setsockopt F
-GLIBC_2.21 setsourcefilter F
-GLIBC_2.21 setspent F
-GLIBC_2.21 setstate F
-GLIBC_2.21 setstate_r F
-GLIBC_2.21 settimeofday F
-GLIBC_2.21 setttyent F
-GLIBC_2.21 setuid F
-GLIBC_2.21 setusershell F
-GLIBC_2.21 setutent F
-GLIBC_2.21 setutxent F
-GLIBC_2.21 setvbuf F
-GLIBC_2.21 setxattr F
-GLIBC_2.21 sgetsgent F
-GLIBC_2.21 sgetsgent_r F
-GLIBC_2.21 sgetspent F
-GLIBC_2.21 sgetspent_r F
-GLIBC_2.21 shm_open F
-GLIBC_2.21 shm_unlink F
-GLIBC_2.21 shmat F
-GLIBC_2.21 shmctl F
-GLIBC_2.21 shmdt F
-GLIBC_2.21 shmget F
-GLIBC_2.21 shutdown F
-GLIBC_2.21 sigaction F
-GLIBC_2.21 sigaddset F
-GLIBC_2.21 sigaltstack F
-GLIBC_2.21 sigandset F
-GLIBC_2.21 sigblock F
-GLIBC_2.21 sigdelset F
-GLIBC_2.21 sigemptyset F
-GLIBC_2.21 sigfillset F
-GLIBC_2.21 siggetmask F
-GLIBC_2.21 sighold F
-GLIBC_2.21 sigignore F
-GLIBC_2.21 siginterrupt F
-GLIBC_2.21 sigisemptyset F
-GLIBC_2.21 sigismember F
-GLIBC_2.21 siglongjmp F
-GLIBC_2.21 signal F
-GLIBC_2.21 signalfd F
-GLIBC_2.21 sigorset F
-GLIBC_2.21 sigpause F
-GLIBC_2.21 sigpending F
-GLIBC_2.21 sigprocmask F
-GLIBC_2.21 sigqueue F
-GLIBC_2.21 sigrelse F
-GLIBC_2.21 sigreturn F
-GLIBC_2.21 sigset F
-GLIBC_2.21 sigsetmask F
-GLIBC_2.21 sigstack F
-GLIBC_2.21 sigsuspend F
-GLIBC_2.21 sigtimedwait F
-GLIBC_2.21 sigwait F
-GLIBC_2.21 sigwaitinfo F
-GLIBC_2.21 sleep F
-GLIBC_2.21 snprintf F
-GLIBC_2.21 sockatmark F
-GLIBC_2.21 socket F
-GLIBC_2.21 socketpair F
-GLIBC_2.21 splice F
-GLIBC_2.21 sprintf F
-GLIBC_2.21 sprofil F
-GLIBC_2.21 srand F
-GLIBC_2.21 srand48 F
-GLIBC_2.21 srand48_r F
-GLIBC_2.21 srandom F
-GLIBC_2.21 srandom_r F
-GLIBC_2.21 sscanf F
-GLIBC_2.21 ssignal F
-GLIBC_2.21 sstk F
-GLIBC_2.21 statfs F
-GLIBC_2.21 statfs64 F
-GLIBC_2.21 statvfs F
-GLIBC_2.21 statvfs64 F
-GLIBC_2.21 stderr D 0x4
-GLIBC_2.21 stdin D 0x4
-GLIBC_2.21 stdout D 0x4
-GLIBC_2.21 step F
-GLIBC_2.21 stime F
-GLIBC_2.21 stpcpy F
-GLIBC_2.21 stpncpy F
-GLIBC_2.21 strcasecmp F
-GLIBC_2.21 strcasecmp_l F
-GLIBC_2.21 strcasestr F
-GLIBC_2.21 strcat F
-GLIBC_2.21 strchr F
-GLIBC_2.21 strchrnul F
-GLIBC_2.21 strcmp F
-GLIBC_2.21 strcoll F
-GLIBC_2.21 strcoll_l F
-GLIBC_2.21 strcpy F
-GLIBC_2.21 strcspn F
-GLIBC_2.21 strdup F
-GLIBC_2.21 strerror F
-GLIBC_2.21 strerror_l F
-GLIBC_2.21 strerror_r F
-GLIBC_2.21 strfmon F
-GLIBC_2.21 strfmon_l F
-GLIBC_2.21 strfry F
-GLIBC_2.21 strftime F
-GLIBC_2.21 strftime_l F
-GLIBC_2.21 strlen F
-GLIBC_2.21 strncasecmp F
-GLIBC_2.21 strncasecmp_l F
-GLIBC_2.21 strncat F
-GLIBC_2.21 strncmp F
-GLIBC_2.21 strncpy F
-GLIBC_2.21 strndup F
-GLIBC_2.21 strnlen F
-GLIBC_2.21 strpbrk F
-GLIBC_2.21 strptime F
-GLIBC_2.21 strptime_l F
-GLIBC_2.21 strrchr F
-GLIBC_2.21 strsep F
-GLIBC_2.21 strsignal F
-GLIBC_2.21 strspn F
-GLIBC_2.21 strstr F
-GLIBC_2.21 strtod F
-GLIBC_2.21 strtod_l F
-GLIBC_2.21 strtof F
-GLIBC_2.21 strtof_l F
-GLIBC_2.21 strtoimax F
-GLIBC_2.21 strtok F
-GLIBC_2.21 strtok_r F
-GLIBC_2.21 strtol F
-GLIBC_2.21 strtol_l F
-GLIBC_2.21 strtold F
-GLIBC_2.21 strtold_l F
-GLIBC_2.21 strtoll F
-GLIBC_2.21 strtoll_l F
-GLIBC_2.21 strtoq F
-GLIBC_2.21 strtoul F
-GLIBC_2.21 strtoul_l F
-GLIBC_2.21 strtoull F
-GLIBC_2.21 strtoull_l F
-GLIBC_2.21 strtoumax F
-GLIBC_2.21 strtouq F
-GLIBC_2.21 strverscmp F
-GLIBC_2.21 strxfrm F
-GLIBC_2.21 strxfrm_l F
-GLIBC_2.21 stty F
-GLIBC_2.21 svc_exit F
-GLIBC_2.21 svc_fdset D 0x80
-GLIBC_2.21 svc_getreq F
-GLIBC_2.21 svc_getreq_common F
-GLIBC_2.21 svc_getreq_poll F
-GLIBC_2.21 svc_getreqset F
-GLIBC_2.21 svc_max_pollfd D 0x4
-GLIBC_2.21 svc_pollfd D 0x4
-GLIBC_2.21 svc_register F
-GLIBC_2.21 svc_run F
-GLIBC_2.21 svc_sendreply F
-GLIBC_2.21 svc_unregister F
-GLIBC_2.21 svcauthdes_stats D 0xc
-GLIBC_2.21 svcerr_auth F
-GLIBC_2.21 svcerr_decode F
-GLIBC_2.21 svcerr_noproc F
-GLIBC_2.21 svcerr_noprog F
-GLIBC_2.21 svcerr_progvers F
-GLIBC_2.21 svcerr_systemerr F
-GLIBC_2.21 svcerr_weakauth F
-GLIBC_2.21 svcfd_create F
-GLIBC_2.21 svcraw_create F
-GLIBC_2.21 svctcp_create F
-GLIBC_2.21 svcudp_bufcreate F
-GLIBC_2.21 svcudp_create F
-GLIBC_2.21 svcudp_enablecache F
-GLIBC_2.21 svcunix_create F
-GLIBC_2.21 svcunixfd_create F
-GLIBC_2.21 swab F
-GLIBC_2.21 swapcontext F
-GLIBC_2.21 swapoff F
-GLIBC_2.21 swapon F
-GLIBC_2.21 swprintf F
-GLIBC_2.21 swscanf F
-GLIBC_2.21 symlink F
-GLIBC_2.21 symlinkat F
-GLIBC_2.21 sync F
-GLIBC_2.21 sync_file_range F
-GLIBC_2.21 syncfs F
-GLIBC_2.21 sys_errlist D 0x21c
-GLIBC_2.21 sys_nerr D 0x4
-GLIBC_2.21 sys_sigabbrev D 0x104
-GLIBC_2.21 sys_siglist D 0x104
-GLIBC_2.21 syscall F
-GLIBC_2.21 sysconf F
-GLIBC_2.21 sysctl F
-GLIBC_2.21 sysinfo F
-GLIBC_2.21 syslog F
-GLIBC_2.21 system F
-GLIBC_2.21 sysv_signal F
-GLIBC_2.21 tcdrain F
-GLIBC_2.21 tcflow F
-GLIBC_2.21 tcflush F
-GLIBC_2.21 tcgetattr F
-GLIBC_2.21 tcgetpgrp F
-GLIBC_2.21 tcgetsid F
-GLIBC_2.21 tcsendbreak F
-GLIBC_2.21 tcsetattr F
-GLIBC_2.21 tcsetpgrp F
-GLIBC_2.21 tdelete F
-GLIBC_2.21 tdestroy F
-GLIBC_2.21 tee F
-GLIBC_2.21 telldir F
-GLIBC_2.21 tempnam F
-GLIBC_2.21 textdomain F
-GLIBC_2.21 tfind F
-GLIBC_2.21 time F
-GLIBC_2.21 timegm F
-GLIBC_2.21 timelocal F
-GLIBC_2.21 timer_create F
-GLIBC_2.21 timer_delete F
-GLIBC_2.21 timer_getoverrun F
-GLIBC_2.21 timer_gettime F
-GLIBC_2.21 timer_settime F
-GLIBC_2.21 timerfd_create F
-GLIBC_2.21 timerfd_gettime F
-GLIBC_2.21 timerfd_settime F
-GLIBC_2.21 times F
-GLIBC_2.21 timespec_get F
-GLIBC_2.21 timezone D 0x4
-GLIBC_2.21 tmpfile F
-GLIBC_2.21 tmpfile64 F
-GLIBC_2.21 tmpnam F
-GLIBC_2.21 tmpnam_r F
-GLIBC_2.21 toascii F
-GLIBC_2.21 tolower F
-GLIBC_2.21 tolower_l F
-GLIBC_2.21 toupper F
-GLIBC_2.21 toupper_l F
-GLIBC_2.21 towctrans F
-GLIBC_2.21 towctrans_l F
-GLIBC_2.21 towlower F
-GLIBC_2.21 towlower_l F
-GLIBC_2.21 towupper F
-GLIBC_2.21 towupper_l F
-GLIBC_2.21 tr_break F
-GLIBC_2.21 truncate F
-GLIBC_2.21 truncate64 F
-GLIBC_2.21 tsearch F
-GLIBC_2.21 ttyname F
-GLIBC_2.21 ttyname_r F
-GLIBC_2.21 ttyslot F
-GLIBC_2.21 twalk F
-GLIBC_2.21 tzname D 0x8
-GLIBC_2.21 tzset F
-GLIBC_2.21 ualarm F
-GLIBC_2.21 ulckpwdf F
-GLIBC_2.21 ulimit F
-GLIBC_2.21 umask F
-GLIBC_2.21 umount F
-GLIBC_2.21 umount2 F
-GLIBC_2.21 uname F
-GLIBC_2.21 ungetc F
-GLIBC_2.21 ungetwc F
-GLIBC_2.21 unlink F
-GLIBC_2.21 unlinkat F
-GLIBC_2.21 unlockpt F
-GLIBC_2.21 unsetenv F
-GLIBC_2.21 unshare F
-GLIBC_2.21 updwtmp F
-GLIBC_2.21 updwtmpx F
-GLIBC_2.21 uselib F
-GLIBC_2.21 uselocale F
-GLIBC_2.21 user2netname F
-GLIBC_2.21 usleep F
-GLIBC_2.21 ustat F
-GLIBC_2.21 utime F
-GLIBC_2.21 utimensat F
-GLIBC_2.21 utimes F
-GLIBC_2.21 utmpname F
-GLIBC_2.21 utmpxname F
-GLIBC_2.21 valloc F
-GLIBC_2.21 vasprintf F
-GLIBC_2.21 vdprintf F
-GLIBC_2.21 verr F
-GLIBC_2.21 verrx F
-GLIBC_2.21 versionsort F
-GLIBC_2.21 versionsort64 F
-GLIBC_2.21 vfork F
-GLIBC_2.21 vfprintf F
-GLIBC_2.21 vfscanf F
-GLIBC_2.21 vfwprintf F
-GLIBC_2.21 vfwscanf F
-GLIBC_2.21 vhangup F
-GLIBC_2.21 vlimit F
-GLIBC_2.21 vmsplice F
-GLIBC_2.21 vprintf F
-GLIBC_2.21 vscanf F
-GLIBC_2.21 vsnprintf F
-GLIBC_2.21 vsprintf F
-GLIBC_2.21 vsscanf F
-GLIBC_2.21 vswprintf F
-GLIBC_2.21 vswscanf F
-GLIBC_2.21 vsyslog F
-GLIBC_2.21 vtimes F
-GLIBC_2.21 vwarn F
-GLIBC_2.21 vwarnx F
-GLIBC_2.21 vwprintf F
-GLIBC_2.21 vwscanf F
-GLIBC_2.21 wait F
-GLIBC_2.21 wait3 F
-GLIBC_2.21 wait4 F
-GLIBC_2.21 waitid F
-GLIBC_2.21 waitpid F
-GLIBC_2.21 warn F
-GLIBC_2.21 warnx F
-GLIBC_2.21 wcpcpy F
-GLIBC_2.21 wcpncpy F
-GLIBC_2.21 wcrtomb F
-GLIBC_2.21 wcscasecmp F
-GLIBC_2.21 wcscasecmp_l F
-GLIBC_2.21 wcscat F
-GLIBC_2.21 wcschr F
-GLIBC_2.21 wcschrnul F
-GLIBC_2.21 wcscmp F
-GLIBC_2.21 wcscoll F
-GLIBC_2.21 wcscoll_l F
-GLIBC_2.21 wcscpy F
-GLIBC_2.21 wcscspn F
-GLIBC_2.21 wcsdup F
-GLIBC_2.21 wcsftime F
-GLIBC_2.21 wcsftime_l F
-GLIBC_2.21 wcslen F
-GLIBC_2.21 wcsncasecmp F
-GLIBC_2.21 wcsncasecmp_l F
-GLIBC_2.21 wcsncat F
-GLIBC_2.21 wcsncmp F
-GLIBC_2.21 wcsncpy F
-GLIBC_2.21 wcsnlen F
-GLIBC_2.21 wcsnrtombs F
-GLIBC_2.21 wcspbrk F
-GLIBC_2.21 wcsrchr F
-GLIBC_2.21 wcsrtombs F
-GLIBC_2.21 wcsspn F
-GLIBC_2.21 wcsstr F
-GLIBC_2.21 wcstod F
-GLIBC_2.21 wcstod_l F
-GLIBC_2.21 wcstof F
-GLIBC_2.21 wcstof_l F
-GLIBC_2.21 wcstoimax F
-GLIBC_2.21 wcstok F
-GLIBC_2.21 wcstol F
-GLIBC_2.21 wcstol_l F
-GLIBC_2.21 wcstold F
-GLIBC_2.21 wcstold_l F
-GLIBC_2.21 wcstoll F
-GLIBC_2.21 wcstoll_l F
-GLIBC_2.21 wcstombs F
-GLIBC_2.21 wcstoq F
-GLIBC_2.21 wcstoul F
-GLIBC_2.21 wcstoul_l F
-GLIBC_2.21 wcstoull F
-GLIBC_2.21 wcstoull_l F
-GLIBC_2.21 wcstoumax F
-GLIBC_2.21 wcstouq F
-GLIBC_2.21 wcswcs F
-GLIBC_2.21 wcswidth F
-GLIBC_2.21 wcsxfrm F
-GLIBC_2.21 wcsxfrm_l F
-GLIBC_2.21 wctob F
-GLIBC_2.21 wctomb F
-GLIBC_2.21 wctrans F
-GLIBC_2.21 wctrans_l F
-GLIBC_2.21 wctype F
-GLIBC_2.21 wctype_l F
-GLIBC_2.21 wcwidth F
-GLIBC_2.21 wmemchr F
-GLIBC_2.21 wmemcmp F
-GLIBC_2.21 wmemcpy F
-GLIBC_2.21 wmemmove F
-GLIBC_2.21 wmempcpy F
-GLIBC_2.21 wmemset F
-GLIBC_2.21 wordexp F
-GLIBC_2.21 wordfree F
-GLIBC_2.21 wprintf F
-GLIBC_2.21 write F
-GLIBC_2.21 writev F
-GLIBC_2.21 wscanf F
-GLIBC_2.21 xdecrypt F
-GLIBC_2.21 xdr_accepted_reply F
-GLIBC_2.21 xdr_array F
-GLIBC_2.21 xdr_authdes_cred F
-GLIBC_2.21 xdr_authdes_verf F
-GLIBC_2.21 xdr_authunix_parms F
-GLIBC_2.21 xdr_bool F
-GLIBC_2.21 xdr_bytes F
-GLIBC_2.21 xdr_callhdr F
-GLIBC_2.21 xdr_callmsg F
-GLIBC_2.21 xdr_char F
-GLIBC_2.21 xdr_cryptkeyarg F
-GLIBC_2.21 xdr_cryptkeyarg2 F
-GLIBC_2.21 xdr_cryptkeyres F
-GLIBC_2.21 xdr_des_block F
-GLIBC_2.21 xdr_double F
-GLIBC_2.21 xdr_enum F
-GLIBC_2.21 xdr_float F
-GLIBC_2.21 xdr_free F
-GLIBC_2.21 xdr_getcredres F
-GLIBC_2.21 xdr_hyper F
-GLIBC_2.21 xdr_int F
-GLIBC_2.21 xdr_int16_t F
-GLIBC_2.21 xdr_int32_t F
-GLIBC_2.21 xdr_int64_t F
-GLIBC_2.21 xdr_int8_t F
-GLIBC_2.21 xdr_key_netstarg F
-GLIBC_2.21 xdr_key_netstres F
-GLIBC_2.21 xdr_keybuf F
-GLIBC_2.21 xdr_keystatus F
-GLIBC_2.21 xdr_long F
-GLIBC_2.21 xdr_longlong_t F
-GLIBC_2.21 xdr_netnamestr F
-GLIBC_2.21 xdr_netobj F
-GLIBC_2.21 xdr_opaque F
-GLIBC_2.21 xdr_opaque_auth F
-GLIBC_2.21 xdr_pmap F
-GLIBC_2.21 xdr_pmaplist F
-GLIBC_2.21 xdr_pointer F
-GLIBC_2.21 xdr_quad_t F
-GLIBC_2.21 xdr_reference F
-GLIBC_2.21 xdr_rejected_reply F
-GLIBC_2.21 xdr_replymsg F
-GLIBC_2.21 xdr_rmtcall_args F
-GLIBC_2.21 xdr_rmtcallres F
-GLIBC_2.21 xdr_short F
-GLIBC_2.21 xdr_sizeof F
-GLIBC_2.21 xdr_string F
-GLIBC_2.21 xdr_u_char F
-GLIBC_2.21 xdr_u_hyper F
-GLIBC_2.21 xdr_u_int F
-GLIBC_2.21 xdr_u_long F
-GLIBC_2.21 xdr_u_longlong_t F
-GLIBC_2.21 xdr_u_quad_t F
-GLIBC_2.21 xdr_u_short F
-GLIBC_2.21 xdr_uint16_t F
-GLIBC_2.21 xdr_uint32_t F
-GLIBC_2.21 xdr_uint64_t F
-GLIBC_2.21 xdr_uint8_t F
-GLIBC_2.21 xdr_union F
-GLIBC_2.21 xdr_unixcred F
-GLIBC_2.21 xdr_vector F
-GLIBC_2.21 xdr_void F
-GLIBC_2.21 xdr_wrapstring F
-GLIBC_2.21 xdrmem_create F
-GLIBC_2.21 xdrrec_create F
-GLIBC_2.21 xdrrec_endofrecord F
-GLIBC_2.21 xdrrec_eof F
-GLIBC_2.21 xdrrec_skiprecord F
-GLIBC_2.21 xdrstdio_create F
-GLIBC_2.21 xencrypt F
-GLIBC_2.21 xprt_register F
-GLIBC_2.21 xprt_unregister F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.29 getcpu F
-GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
-GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
-GLIBC_2.30 getdents64 F
-GLIBC_2.30 gettid F
-GLIBC_2.30 pthread_cond_clockwait F
-GLIBC_2.30 pthread_mutex_clocklock F
-GLIBC_2.30 pthread_rwlock_clockrdlock F
-GLIBC_2.30 pthread_rwlock_clockwrlock F
-GLIBC_2.30 sem_clockwait F
-GLIBC_2.30 tgkill F
-GLIBC_2.30 twalk_r F
-GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.32 __libc_single_threaded D 0x1
-GLIBC_2.32 pthread_attr_getsigmask_np F
-GLIBC_2.32 pthread_attr_setaffinity_np F
-GLIBC_2.32 pthread_attr_setsigmask_np F
-GLIBC_2.32 pthread_getaffinity_np F
-GLIBC_2.32 pthread_getattr_np F
-GLIBC_2.32 pthread_sigmask F
-GLIBC_2.32 sigabbrev_np F
-GLIBC_2.32 sigdescr_np F
-GLIBC_2.32 strerrordesc_np F
-GLIBC_2.32 strerrorname_np F
-GLIBC_2.33 fstat F
-GLIBC_2.33 fstat64 F
-GLIBC_2.33 fstatat F
-GLIBC_2.33 fstatat64 F
-GLIBC_2.33 lstat F
-GLIBC_2.33 lstat64 F
-GLIBC_2.33 mallinfo2 F
-GLIBC_2.33 mknod F
-GLIBC_2.33 mknodat F
-GLIBC_2.33 stat F
-GLIBC_2.33 stat64 F
-GLIBC_2.34 _Fork F
-GLIBC_2.34 ___adjtimex64 F
-GLIBC_2.34 __adjtime64 F
-GLIBC_2.34 __aio_suspend_time64 F
-GLIBC_2.34 __clock_adjtime64 F
-GLIBC_2.34 __clock_getres64 F
-GLIBC_2.34 __clock_gettime64 F
-GLIBC_2.34 __clock_nanosleep_time64 F
-GLIBC_2.34 __clock_settime64 F
-GLIBC_2.34 __cnd_timedwait64 F
-GLIBC_2.34 __ctime64 F
-GLIBC_2.34 __ctime64_r F
-GLIBC_2.34 __difftime64 F
-GLIBC_2.34 __fcntl_time64 F
-GLIBC_2.34 __fstat64_time64 F
-GLIBC_2.34 __fstatat64_time64 F
-GLIBC_2.34 __fts64_children_time64 F
-GLIBC_2.34 __fts64_close_time64 F
-GLIBC_2.34 __fts64_open_time64 F
-GLIBC_2.34 __fts64_read_time64 F
-GLIBC_2.34 __fts64_set_time64 F
-GLIBC_2.34 __ftw64_time64 F
-GLIBC_2.34 __futimens64 F
-GLIBC_2.34 __futimes64 F
-GLIBC_2.34 __futimesat64 F
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.34 __getitimer64 F
-GLIBC_2.34 __getrusage64 F
-GLIBC_2.34 __getsockopt64 F
-GLIBC_2.34 __gettimeofday64 F
-GLIBC_2.34 __glob64_time64 F
-GLIBC_2.34 __globfree64_time64 F
-GLIBC_2.34 __gmtime64 F
-GLIBC_2.34 __gmtime64_r F
-GLIBC_2.34 __ioctl_time64 F
-GLIBC_2.34 __libc_start_main F
-GLIBC_2.34 __localtime64 F
-GLIBC_2.34 __localtime64_r F
-GLIBC_2.34 __lstat64_time64 F
-GLIBC_2.34 __lutimes64 F
-GLIBC_2.34 __mktime64 F
-GLIBC_2.34 __mq_open_2 F
-GLIBC_2.34 __mq_timedreceive_time64 F
-GLIBC_2.34 __mq_timedsend_time64 F
-GLIBC_2.34 __msgctl64 F
-GLIBC_2.34 __mtx_timedlock64 F
-GLIBC_2.34 __nanosleep64 F
-GLIBC_2.34 __nftw64_time64 F
-GLIBC_2.34 __ntp_gettime64 F
-GLIBC_2.34 __ntp_gettimex64 F
-GLIBC_2.34 __ppoll64 F
-GLIBC_2.34 __prctl_time64 F
-GLIBC_2.34 __pselect64 F
-GLIBC_2.34 __pthread_cleanup_routine F
-GLIBC_2.34 __pthread_clockjoin_np64 F
-GLIBC_2.34 __pthread_cond_clockwait64 F
-GLIBC_2.34 __pthread_cond_timedwait64 F
-GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_register_cancel F
-GLIBC_2.34 __pthread_register_cancel_defer F
-GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
-GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
-GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
-GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
-GLIBC_2.34 __pthread_timedjoin_np64 F
-GLIBC_2.34 __pthread_unregister_cancel F
-GLIBC_2.34 __pthread_unregister_cancel_restore F
-GLIBC_2.34 __pthread_unwind_next F
-GLIBC_2.34 __recvmmsg64 F
-GLIBC_2.34 __recvmsg64 F
-GLIBC_2.34 __sched_rr_get_interval64 F
-GLIBC_2.34 __select64 F
-GLIBC_2.34 __sem_clockwait64 F
-GLIBC_2.34 __sem_timedwait64 F
-GLIBC_2.34 __semctl64 F
-GLIBC_2.34 __semtimedop64 F
-GLIBC_2.34 __sendmmsg64 F
-GLIBC_2.34 __sendmsg64 F
-GLIBC_2.34 __setitimer64 F
-GLIBC_2.34 __setsockopt64 F
-GLIBC_2.34 __settimeofday64 F
-GLIBC_2.34 __shmctl64 F
-GLIBC_2.34 __sigtimedwait64 F
-GLIBC_2.34 __stat64_time64 F
-GLIBC_2.34 __thrd_sleep64 F
-GLIBC_2.34 __time64 F
-GLIBC_2.34 __timegm64 F
-GLIBC_2.34 __timer_gettime64 F
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.34 __timerfd_gettime64 F
-GLIBC_2.34 __timerfd_settime64 F
-GLIBC_2.34 __timespec_get64 F
-GLIBC_2.34 __timespec_getres64 F
-GLIBC_2.34 __utime64 F
-GLIBC_2.34 __utimensat64 F
-GLIBC_2.34 __utimes64 F
-GLIBC_2.34 __wait3_time64 F
-GLIBC_2.34 __wait4_time64 F
-GLIBC_2.34 _pthread_cleanup_pop F
-GLIBC_2.34 _pthread_cleanup_push F
-GLIBC_2.34 aio_cancel F
-GLIBC_2.34 aio_cancel64 F
-GLIBC_2.34 aio_error F
-GLIBC_2.34 aio_error64 F
-GLIBC_2.34 aio_fsync F
-GLIBC_2.34 aio_fsync64 F
-GLIBC_2.34 aio_init F
-GLIBC_2.34 aio_read F
-GLIBC_2.34 aio_read64 F
-GLIBC_2.34 aio_return F
-GLIBC_2.34 aio_return64 F
-GLIBC_2.34 aio_suspend F
-GLIBC_2.34 aio_suspend64 F
-GLIBC_2.34 aio_write F
-GLIBC_2.34 aio_write64 F
-GLIBC_2.34 call_once F
-GLIBC_2.34 close_range F
-GLIBC_2.34 closefrom F
-GLIBC_2.34 cnd_broadcast F
-GLIBC_2.34 cnd_destroy F
-GLIBC_2.34 cnd_init F
-GLIBC_2.34 cnd_signal F
-GLIBC_2.34 cnd_timedwait F
-GLIBC_2.34 cnd_wait F
-GLIBC_2.34 dladdr F
-GLIBC_2.34 dladdr1 F
-GLIBC_2.34 dlclose F
-GLIBC_2.34 dlerror F
-GLIBC_2.34 dlinfo F
-GLIBC_2.34 dlmopen F
-GLIBC_2.34 dlopen F
-GLIBC_2.34 dlsym F
-GLIBC_2.34 dlvsym F
-GLIBC_2.34 dn_comp F
-GLIBC_2.34 dn_expand F
-GLIBC_2.34 dn_skipname F
-GLIBC_2.34 execveat F
-GLIBC_2.34 forkpty F
-GLIBC_2.34 gai_cancel F
-GLIBC_2.34 gai_error F
-GLIBC_2.34 gai_suspend F
-GLIBC_2.34 getaddrinfo_a F
-GLIBC_2.34 lio_listio F
-GLIBC_2.34 lio_listio64 F
-GLIBC_2.34 login F
-GLIBC_2.34 login_tty F
-GLIBC_2.34 logout F
-GLIBC_2.34 logwtmp F
-GLIBC_2.34 mq_close F
-GLIBC_2.34 mq_getattr F
-GLIBC_2.34 mq_notify F
-GLIBC_2.34 mq_open F
-GLIBC_2.34 mq_receive F
-GLIBC_2.34 mq_send F
-GLIBC_2.34 mq_setattr F
-GLIBC_2.34 mq_timedreceive F
-GLIBC_2.34 mq_timedsend F
-GLIBC_2.34 mq_unlink F
-GLIBC_2.34 mtx_destroy F
-GLIBC_2.34 mtx_init F
-GLIBC_2.34 mtx_lock F
-GLIBC_2.34 mtx_timedlock F
-GLIBC_2.34 mtx_trylock F
-GLIBC_2.34 mtx_unlock F
-GLIBC_2.34 ns_name_compress F
-GLIBC_2.34 ns_name_ntop F
-GLIBC_2.34 ns_name_pack F
-GLIBC_2.34 ns_name_pton F
-GLIBC_2.34 ns_name_skip F
-GLIBC_2.34 ns_name_uncompress F
-GLIBC_2.34 ns_name_unpack F
-GLIBC_2.34 openpty F
-GLIBC_2.34 posix_spawn_file_actions_addclosefrom_np F
-GLIBC_2.34 pthread_attr_getaffinity_np F
-GLIBC_2.34 pthread_attr_getguardsize F
-GLIBC_2.34 pthread_attr_getstack F
-GLIBC_2.34 pthread_attr_getstackaddr F
-GLIBC_2.34 pthread_attr_getstacksize F
-GLIBC_2.34 pthread_attr_setguardsize F
-GLIBC_2.34 pthread_attr_setstack F
-GLIBC_2.34 pthread_attr_setstackaddr F
-GLIBC_2.34 pthread_attr_setstacksize F
-GLIBC_2.34 pthread_barrier_destroy F
-GLIBC_2.34 pthread_barrier_init F
-GLIBC_2.34 pthread_barrier_wait F
-GLIBC_2.34 pthread_barrierattr_destroy F
-GLIBC_2.34 pthread_barrierattr_getpshared F
-GLIBC_2.34 pthread_barrierattr_init F
-GLIBC_2.34 pthread_barrierattr_setpshared F
-GLIBC_2.34 pthread_cancel F
-GLIBC_2.34 pthread_clockjoin_np F
-GLIBC_2.34 pthread_cond_clockwait F
-GLIBC_2.34 pthread_condattr_getclock F
-GLIBC_2.34 pthread_condattr_getpshared F
-GLIBC_2.34 pthread_condattr_setclock F
-GLIBC_2.34 pthread_condattr_setpshared F
-GLIBC_2.34 pthread_create F
-GLIBC_2.34 pthread_detach F
-GLIBC_2.34 pthread_getattr_default_np F
-GLIBC_2.34 pthread_getconcurrency F
-GLIBC_2.34 pthread_getcpuclockid F
-GLIBC_2.34 pthread_getname_np F
-GLIBC_2.34 pthread_getspecific F
-GLIBC_2.34 pthread_join F
-GLIBC_2.34 pthread_key_create F
-GLIBC_2.34 pthread_key_delete F
-GLIBC_2.34 pthread_kill F
-GLIBC_2.34 pthread_mutex_clocklock F
-GLIBC_2.34 pthread_mutex_consistent F
-GLIBC_2.34 pthread_mutex_getprioceiling F
-GLIBC_2.34 pthread_mutex_setprioceiling F
-GLIBC_2.34 pthread_mutex_timedlock F
-GLIBC_2.34 pthread_mutex_trylock F
-GLIBC_2.34 pthread_mutexattr_destroy F
-GLIBC_2.34 pthread_mutexattr_getprioceiling F
-GLIBC_2.34 pthread_mutexattr_getprotocol F
-GLIBC_2.34 pthread_mutexattr_getpshared F
-GLIBC_2.34 pthread_mutexattr_getrobust F
-GLIBC_2.34 pthread_mutexattr_gettype F
-GLIBC_2.34 pthread_mutexattr_init F
-GLIBC_2.34 pthread_mutexattr_setprioceiling F
-GLIBC_2.34 pthread_mutexattr_setprotocol F
-GLIBC_2.34 pthread_mutexattr_setpshared F
-GLIBC_2.34 pthread_mutexattr_setrobust F
-GLIBC_2.34 pthread_mutexattr_settype F
-GLIBC_2.34 pthread_once F
-GLIBC_2.34 pthread_rwlock_clockrdlock F
-GLIBC_2.34 pthread_rwlock_clockwrlock F
-GLIBC_2.34 pthread_rwlock_destroy F
-GLIBC_2.34 pthread_rwlock_init F
-GLIBC_2.34 pthread_rwlock_rdlock F
-GLIBC_2.34 pthread_rwlock_timedrdlock F
-GLIBC_2.34 pthread_rwlock_timedwrlock F
-GLIBC_2.34 pthread_rwlock_tryrdlock F
-GLIBC_2.34 pthread_rwlock_trywrlock F
-GLIBC_2.34 pthread_rwlock_unlock F
-GLIBC_2.34 pthread_rwlock_wrlock F
-GLIBC_2.34 pthread_rwlockattr_destroy F
-GLIBC_2.34 pthread_rwlockattr_getkind_np F
-GLIBC_2.34 pthread_rwlockattr_getpshared F
-GLIBC_2.34 pthread_rwlockattr_init F
-GLIBC_2.34 pthread_rwlockattr_setkind_np F
-GLIBC_2.34 pthread_rwlockattr_setpshared F
-GLIBC_2.34 pthread_setaffinity_np F
-GLIBC_2.34 pthread_setattr_default_np F
-GLIBC_2.34 pthread_setconcurrency F
-GLIBC_2.34 pthread_setname_np F
-GLIBC_2.34 pthread_setschedprio F
-GLIBC_2.34 pthread_setspecific F
-GLIBC_2.34 pthread_sigqueue F
-GLIBC_2.34 pthread_spin_destroy F
-GLIBC_2.34 pthread_spin_init F
-GLIBC_2.34 pthread_spin_lock F
-GLIBC_2.34 pthread_spin_trylock F
-GLIBC_2.34 pthread_spin_unlock F
-GLIBC_2.34 pthread_testcancel F
-GLIBC_2.34 pthread_timedjoin_np F
-GLIBC_2.34 pthread_tryjoin_np F
-GLIBC_2.34 res_dnok F
-GLIBC_2.34 res_hnok F
-GLIBC_2.34 res_mailok F
-GLIBC_2.34 res_mkquery F
-GLIBC_2.34 res_nmkquery F
-GLIBC_2.34 res_nquery F
-GLIBC_2.34 res_nquerydomain F
-GLIBC_2.34 res_nsearch F
-GLIBC_2.34 res_nsend F
-GLIBC_2.34 res_ownok F
-GLIBC_2.34 res_query F
-GLIBC_2.34 res_querydomain F
-GLIBC_2.34 res_search F
-GLIBC_2.34 res_send F
-GLIBC_2.34 sem_clockwait F
-GLIBC_2.34 sem_close F
-GLIBC_2.34 sem_destroy F
-GLIBC_2.34 sem_getvalue F
-GLIBC_2.34 sem_init F
-GLIBC_2.34 sem_open F
-GLIBC_2.34 sem_post F
-GLIBC_2.34 sem_timedwait F
-GLIBC_2.34 sem_trywait F
-GLIBC_2.34 sem_unlink F
-GLIBC_2.34 sem_wait F
-GLIBC_2.34 shm_open F
-GLIBC_2.34 shm_unlink F
-GLIBC_2.34 thrd_create F
-GLIBC_2.34 thrd_detach F
-GLIBC_2.34 thrd_exit F
-GLIBC_2.34 thrd_join F
-GLIBC_2.34 timer_create F
-GLIBC_2.34 timer_delete F
-GLIBC_2.34 timer_getoverrun F
-GLIBC_2.34 timer_gettime F
-GLIBC_2.34 timer_settime F
-GLIBC_2.34 timespec_getres F
-GLIBC_2.34 tss_create F
-GLIBC_2.34 tss_delete F
-GLIBC_2.34 tss_get F
-GLIBC_2.34 tss_set F
-GLIBC_2.35 __epoll_pwait2_time64 F
-GLIBC_2.35 __memcmpeq F
-GLIBC_2.35 _dl_find_object F
-GLIBC_2.35 epoll_pwait2 F
-GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
-GLIBC_2.36 arc4random F
-GLIBC_2.36 arc4random_buf F
-GLIBC_2.36 arc4random_uniform F
-GLIBC_2.36 c8rtomb F
-GLIBC_2.36 fsconfig F
-GLIBC_2.36 fsmount F
-GLIBC_2.36 fsopen F
-GLIBC_2.36 fspick F
-GLIBC_2.36 mbrtoc8 F
-GLIBC_2.36 mount_setattr F
-GLIBC_2.36 move_mount F
-GLIBC_2.36 open_tree F
-GLIBC_2.36 pidfd_getfd F
-GLIBC_2.36 pidfd_open F
-GLIBC_2.36 pidfd_send_signal F
-GLIBC_2.36 process_madvise F
-GLIBC_2.36 process_mrelease F
-GLIBC_2.37 __ppoll64_chk F
-GLIBC_2.38 __isoc23_fscanf F
-GLIBC_2.38 __isoc23_fwscanf F
-GLIBC_2.38 __isoc23_scanf F
-GLIBC_2.38 __isoc23_sscanf F
-GLIBC_2.38 __isoc23_strtoimax F
-GLIBC_2.38 __isoc23_strtol F
-GLIBC_2.38 __isoc23_strtol_l F
-GLIBC_2.38 __isoc23_strtoll F
-GLIBC_2.38 __isoc23_strtoll_l F
-GLIBC_2.38 __isoc23_strtoul F
-GLIBC_2.38 __isoc23_strtoul_l F
-GLIBC_2.38 __isoc23_strtoull F
-GLIBC_2.38 __isoc23_strtoull_l F
-GLIBC_2.38 __isoc23_strtoumax F
-GLIBC_2.38 __isoc23_swscanf F
-GLIBC_2.38 __isoc23_vfscanf F
-GLIBC_2.38 __isoc23_vfwscanf F
-GLIBC_2.38 __isoc23_vscanf F
-GLIBC_2.38 __isoc23_vsscanf F
-GLIBC_2.38 __isoc23_vswscanf F
-GLIBC_2.38 __isoc23_vwscanf F
-GLIBC_2.38 __isoc23_wcstoimax F
-GLIBC_2.38 __isoc23_wcstol F
-GLIBC_2.38 __isoc23_wcstol_l F
-GLIBC_2.38 __isoc23_wcstoll F
-GLIBC_2.38 __isoc23_wcstoll_l F
-GLIBC_2.38 __isoc23_wcstoul F
-GLIBC_2.38 __isoc23_wcstoul_l F
-GLIBC_2.38 __isoc23_wcstoull F
-GLIBC_2.38 __isoc23_wcstoull_l F
-GLIBC_2.38 __isoc23_wcstoumax F
-GLIBC_2.38 __isoc23_wscanf F
-GLIBC_2.38 __strlcat_chk F
-GLIBC_2.38 __strlcpy_chk F
-GLIBC_2.38 __wcslcat_chk F
-GLIBC_2.38 __wcslcpy_chk F
-GLIBC_2.38 strlcat F
-GLIBC_2.38 strlcpy F
-GLIBC_2.38 wcslcat F
-GLIBC_2.38 wcslcpy F
-GLIBC_2.39 pidfd_getpid F
-GLIBC_2.39 pidfd_spawn F
-GLIBC_2.39 pidfd_spawnp F
-GLIBC_2.39 posix_spawnattr_getcgroup_np F
-GLIBC_2.39 posix_spawnattr_setcgroup_np F
-GLIBC_2.39 stdc_bit_ceil_uc F
-GLIBC_2.39 stdc_bit_ceil_ui F
-GLIBC_2.39 stdc_bit_ceil_ul F
-GLIBC_2.39 stdc_bit_ceil_ull F
-GLIBC_2.39 stdc_bit_ceil_us F
-GLIBC_2.39 stdc_bit_floor_uc F
-GLIBC_2.39 stdc_bit_floor_ui F
-GLIBC_2.39 stdc_bit_floor_ul F
-GLIBC_2.39 stdc_bit_floor_ull F
-GLIBC_2.39 stdc_bit_floor_us F
-GLIBC_2.39 stdc_bit_width_uc F
-GLIBC_2.39 stdc_bit_width_ui F
-GLIBC_2.39 stdc_bit_width_ul F
-GLIBC_2.39 stdc_bit_width_ull F
-GLIBC_2.39 stdc_bit_width_us F
-GLIBC_2.39 stdc_count_ones_uc F
-GLIBC_2.39 stdc_count_ones_ui F
-GLIBC_2.39 stdc_count_ones_ul F
-GLIBC_2.39 stdc_count_ones_ull F
-GLIBC_2.39 stdc_count_ones_us F
-GLIBC_2.39 stdc_count_zeros_uc F
-GLIBC_2.39 stdc_count_zeros_ui F
-GLIBC_2.39 stdc_count_zeros_ul F
-GLIBC_2.39 stdc_count_zeros_ull F
-GLIBC_2.39 stdc_count_zeros_us F
-GLIBC_2.39 stdc_first_leading_one_uc F
-GLIBC_2.39 stdc_first_leading_one_ui F
-GLIBC_2.39 stdc_first_leading_one_ul F
-GLIBC_2.39 stdc_first_leading_one_ull F
-GLIBC_2.39 stdc_first_leading_one_us F
-GLIBC_2.39 stdc_first_leading_zero_uc F
-GLIBC_2.39 stdc_first_leading_zero_ui F
-GLIBC_2.39 stdc_first_leading_zero_ul F
-GLIBC_2.39 stdc_first_leading_zero_ull F
-GLIBC_2.39 stdc_first_leading_zero_us F
-GLIBC_2.39 stdc_first_trailing_one_uc F
-GLIBC_2.39 stdc_first_trailing_one_ui F
-GLIBC_2.39 stdc_first_trailing_one_ul F
-GLIBC_2.39 stdc_first_trailing_one_ull F
-GLIBC_2.39 stdc_first_trailing_one_us F
-GLIBC_2.39 stdc_first_trailing_zero_uc F
-GLIBC_2.39 stdc_first_trailing_zero_ui F
-GLIBC_2.39 stdc_first_trailing_zero_ul F
-GLIBC_2.39 stdc_first_trailing_zero_ull F
-GLIBC_2.39 stdc_first_trailing_zero_us F
-GLIBC_2.39 stdc_has_single_bit_uc F
-GLIBC_2.39 stdc_has_single_bit_ui F
-GLIBC_2.39 stdc_has_single_bit_ul F
-GLIBC_2.39 stdc_has_single_bit_ull F
-GLIBC_2.39 stdc_has_single_bit_us F
-GLIBC_2.39 stdc_leading_ones_uc F
-GLIBC_2.39 stdc_leading_ones_ui F
-GLIBC_2.39 stdc_leading_ones_ul F
-GLIBC_2.39 stdc_leading_ones_ull F
-GLIBC_2.39 stdc_leading_ones_us F
-GLIBC_2.39 stdc_leading_zeros_uc F
-GLIBC_2.39 stdc_leading_zeros_ui F
-GLIBC_2.39 stdc_leading_zeros_ul F
-GLIBC_2.39 stdc_leading_zeros_ull F
-GLIBC_2.39 stdc_leading_zeros_us F
-GLIBC_2.39 stdc_trailing_ones_uc F
-GLIBC_2.39 stdc_trailing_ones_ui F
-GLIBC_2.39 stdc_trailing_ones_ul F
-GLIBC_2.39 stdc_trailing_ones_ull F
-GLIBC_2.39 stdc_trailing_ones_us F
-GLIBC_2.39 stdc_trailing_zeros_uc F
-GLIBC_2.39 stdc_trailing_zeros_ui F
-GLIBC_2.39 stdc_trailing_zeros_ul F
-GLIBC_2.39 stdc_trailing_zeros_ull F
-GLIBC_2.39 stdc_trailing_zeros_us F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
deleted file mode 100644
index de9a79a..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
+++ /dev/null
@@ -1,28 +0,0 @@
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 calloc F
-GLIBC_2.21 free F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_get_state F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_set_state F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 realloc F
-GLIBC_2.21 valloc F
-GLIBC_2.33 mallinfo2 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
deleted file mode 100644
index 70efb87..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist
deleted file mode 100644
index c0df77f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libm.abilist
+++ /dev/null
@@ -1,880 +0,0 @@
-GLIBC_2.21 _LIB_VERSION D 0x4
-GLIBC_2.21 __acos_finite F
-GLIBC_2.21 __acosf_finite F
-GLIBC_2.21 __acosh_finite F
-GLIBC_2.21 __acoshf_finite F
-GLIBC_2.21 __asin_finite F
-GLIBC_2.21 __asinf_finite F
-GLIBC_2.21 __atan2_finite F
-GLIBC_2.21 __atan2f_finite F
-GLIBC_2.21 __atanh_finite F
-GLIBC_2.21 __atanhf_finite F
-GLIBC_2.21 __clog10 F
-GLIBC_2.21 __clog10f F
-GLIBC_2.21 __clog10l F
-GLIBC_2.21 __cosh_finite F
-GLIBC_2.21 __coshf_finite F
-GLIBC_2.21 __exp10_finite F
-GLIBC_2.21 __exp10f_finite F
-GLIBC_2.21 __exp2_finite F
-GLIBC_2.21 __exp2f_finite F
-GLIBC_2.21 __exp_finite F
-GLIBC_2.21 __expf_finite F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fmod_finite F
-GLIBC_2.21 __fmodf_finite F
-GLIBC_2.21 __fpclassify F
-GLIBC_2.21 __fpclassifyf F
-GLIBC_2.21 __gamma_r_finite F
-GLIBC_2.21 __gammaf_r_finite F
-GLIBC_2.21 __hypot_finite F
-GLIBC_2.21 __hypotf_finite F
-GLIBC_2.21 __issignaling F
-GLIBC_2.21 __issignalingf F
-GLIBC_2.21 __j0_finite F
-GLIBC_2.21 __j0f_finite F
-GLIBC_2.21 __j1_finite F
-GLIBC_2.21 __j1f_finite F
-GLIBC_2.21 __jn_finite F
-GLIBC_2.21 __jnf_finite F
-GLIBC_2.21 __lgamma_r_finite F
-GLIBC_2.21 __lgammaf_r_finite F
-GLIBC_2.21 __log10_finite F
-GLIBC_2.21 __log10f_finite F
-GLIBC_2.21 __log2_finite F
-GLIBC_2.21 __log2f_finite F
-GLIBC_2.21 __log_finite F
-GLIBC_2.21 __logf_finite F
-GLIBC_2.21 __pow_finite F
-GLIBC_2.21 __powf_finite F
-GLIBC_2.21 __remainder_finite F
-GLIBC_2.21 __remainderf_finite F
-GLIBC_2.21 __scalb_finite F
-GLIBC_2.21 __scalbf_finite F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sinh_finite F
-GLIBC_2.21 __sinhf_finite F
-GLIBC_2.21 __sqrt_finite F
-GLIBC_2.21 __sqrtf_finite F
-GLIBC_2.21 __y0_finite F
-GLIBC_2.21 __y0f_finite F
-GLIBC_2.21 __y1_finite F
-GLIBC_2.21 __y1f_finite F
-GLIBC_2.21 __yn_finite F
-GLIBC_2.21 __ynf_finite F
-GLIBC_2.21 acos F
-GLIBC_2.21 acosf F
-GLIBC_2.21 acosh F
-GLIBC_2.21 acoshf F
-GLIBC_2.21 acoshl F
-GLIBC_2.21 acosl F
-GLIBC_2.21 asin F
-GLIBC_2.21 asinf F
-GLIBC_2.21 asinh F
-GLIBC_2.21 asinhf F
-GLIBC_2.21 asinhl F
-GLIBC_2.21 asinl F
-GLIBC_2.21 atan F
-GLIBC_2.21 atan2 F
-GLIBC_2.21 atan2f F
-GLIBC_2.21 atan2l F
-GLIBC_2.21 atanf F
-GLIBC_2.21 atanh F
-GLIBC_2.21 atanhf F
-GLIBC_2.21 atanhl F
-GLIBC_2.21 atanl F
-GLIBC_2.21 cabs F
-GLIBC_2.21 cabsf F
-GLIBC_2.21 cabsl F
-GLIBC_2.21 cacos F
-GLIBC_2.21 cacosf F
-GLIBC_2.21 cacosh F
-GLIBC_2.21 cacoshf F
-GLIBC_2.21 cacoshl F
-GLIBC_2.21 cacosl F
-GLIBC_2.21 carg F
-GLIBC_2.21 cargf F
-GLIBC_2.21 cargl F
-GLIBC_2.21 casin F
-GLIBC_2.21 casinf F
-GLIBC_2.21 casinh F
-GLIBC_2.21 casinhf F
-GLIBC_2.21 casinhl F
-GLIBC_2.21 casinl F
-GLIBC_2.21 catan F
-GLIBC_2.21 catanf F
-GLIBC_2.21 catanh F
-GLIBC_2.21 catanhf F
-GLIBC_2.21 catanhl F
-GLIBC_2.21 catanl F
-GLIBC_2.21 cbrt F
-GLIBC_2.21 cbrtf F
-GLIBC_2.21 cbrtl F
-GLIBC_2.21 ccos F
-GLIBC_2.21 ccosf F
-GLIBC_2.21 ccosh F
-GLIBC_2.21 ccoshf F
-GLIBC_2.21 ccoshl F
-GLIBC_2.21 ccosl F
-GLIBC_2.21 ceil F
-GLIBC_2.21 ceilf F
-GLIBC_2.21 ceill F
-GLIBC_2.21 cexp F
-GLIBC_2.21 cexpf F
-GLIBC_2.21 cexpl F
-GLIBC_2.21 cimag F
-GLIBC_2.21 cimagf F
-GLIBC_2.21 cimagl F
-GLIBC_2.21 clog F
-GLIBC_2.21 clog10 F
-GLIBC_2.21 clog10f F
-GLIBC_2.21 clog10l F
-GLIBC_2.21 clogf F
-GLIBC_2.21 clogl F
-GLIBC_2.21 conj F
-GLIBC_2.21 conjf F
-GLIBC_2.21 conjl F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 cos F
-GLIBC_2.21 cosf F
-GLIBC_2.21 cosh F
-GLIBC_2.21 coshf F
-GLIBC_2.21 coshl F
-GLIBC_2.21 cosl F
-GLIBC_2.21 cpow F
-GLIBC_2.21 cpowf F
-GLIBC_2.21 cpowl F
-GLIBC_2.21 cproj F
-GLIBC_2.21 cprojf F
-GLIBC_2.21 cprojl F
-GLIBC_2.21 creal F
-GLIBC_2.21 crealf F
-GLIBC_2.21 creall F
-GLIBC_2.21 csin F
-GLIBC_2.21 csinf F
-GLIBC_2.21 csinh F
-GLIBC_2.21 csinhf F
-GLIBC_2.21 csinhl F
-GLIBC_2.21 csinl F
-GLIBC_2.21 csqrt F
-GLIBC_2.21 csqrtf F
-GLIBC_2.21 csqrtl F
-GLIBC_2.21 ctan F
-GLIBC_2.21 ctanf F
-GLIBC_2.21 ctanh F
-GLIBC_2.21 ctanhf F
-GLIBC_2.21 ctanhl F
-GLIBC_2.21 ctanl F
-GLIBC_2.21 drem F
-GLIBC_2.21 dremf F
-GLIBC_2.21 dreml F
-GLIBC_2.21 erf F
-GLIBC_2.21 erfc F
-GLIBC_2.21 erfcf F
-GLIBC_2.21 erfcl F
-GLIBC_2.21 erff F
-GLIBC_2.21 erfl F
-GLIBC_2.21 exp F
-GLIBC_2.21 exp10 F
-GLIBC_2.21 exp10f F
-GLIBC_2.21 exp10l F
-GLIBC_2.21 exp2 F
-GLIBC_2.21 exp2f F
-GLIBC_2.21 exp2l F
-GLIBC_2.21 expf F
-GLIBC_2.21 expl F
-GLIBC_2.21 expm1 F
-GLIBC_2.21 expm1f F
-GLIBC_2.21 expm1l F
-GLIBC_2.21 fabs F
-GLIBC_2.21 fabsf F
-GLIBC_2.21 fabsl F
-GLIBC_2.21 fdim F
-GLIBC_2.21 fdimf F
-GLIBC_2.21 fdiml F
-GLIBC_2.21 feclearexcept F
-GLIBC_2.21 fedisableexcept F
-GLIBC_2.21 feenableexcept F
-GLIBC_2.21 fegetenv F
-GLIBC_2.21 fegetexcept F
-GLIBC_2.21 fegetexceptflag F
-GLIBC_2.21 fegetround F
-GLIBC_2.21 feholdexcept F
-GLIBC_2.21 feraiseexcept F
-GLIBC_2.21 fesetenv F
-GLIBC_2.21 fesetexceptflag F
-GLIBC_2.21 fesetround F
-GLIBC_2.21 fetestexcept F
-GLIBC_2.21 feupdateenv F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 floor F
-GLIBC_2.21 floorf F
-GLIBC_2.21 floorl F
-GLIBC_2.21 fma F
-GLIBC_2.21 fmaf F
-GLIBC_2.21 fmal F
-GLIBC_2.21 fmax F
-GLIBC_2.21 fmaxf F
-GLIBC_2.21 fmaxl F
-GLIBC_2.21 fmin F
-GLIBC_2.21 fminf F
-GLIBC_2.21 fminl F
-GLIBC_2.21 fmod F
-GLIBC_2.21 fmodf F
-GLIBC_2.21 fmodl F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 gamma F
-GLIBC_2.21 gammaf F
-GLIBC_2.21 gammal F
-GLIBC_2.21 hypot F
-GLIBC_2.21 hypotf F
-GLIBC_2.21 hypotl F
-GLIBC_2.21 ilogb F
-GLIBC_2.21 ilogbf F
-GLIBC_2.21 ilogbl F
-GLIBC_2.21 j0 F
-GLIBC_2.21 j0f F
-GLIBC_2.21 j0l F
-GLIBC_2.21 j1 F
-GLIBC_2.21 j1f F
-GLIBC_2.21 j1l F
-GLIBC_2.21 jn F
-GLIBC_2.21 jnf F
-GLIBC_2.21 jnl F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 lgamma F
-GLIBC_2.21 lgamma_r F
-GLIBC_2.21 lgammaf F
-GLIBC_2.21 lgammaf_r F
-GLIBC_2.21 lgammal F
-GLIBC_2.21 lgammal_r F
-GLIBC_2.21 llrint F
-GLIBC_2.21 llrintf F
-GLIBC_2.21 llrintl F
-GLIBC_2.21 llround F
-GLIBC_2.21 llroundf F
-GLIBC_2.21 llroundl F
-GLIBC_2.21 log F
-GLIBC_2.21 log10 F
-GLIBC_2.21 log10f F
-GLIBC_2.21 log10l F
-GLIBC_2.21 log1p F
-GLIBC_2.21 log1pf F
-GLIBC_2.21 log1pl F
-GLIBC_2.21 log2 F
-GLIBC_2.21 log2f F
-GLIBC_2.21 log2l F
-GLIBC_2.21 logb F
-GLIBC_2.21 logbf F
-GLIBC_2.21 logbl F
-GLIBC_2.21 logf F
-GLIBC_2.21 logl F
-GLIBC_2.21 lrint F
-GLIBC_2.21 lrintf F
-GLIBC_2.21 lrintl F
-GLIBC_2.21 lround F
-GLIBC_2.21 lroundf F
-GLIBC_2.21 lroundl F
-GLIBC_2.21 matherr F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 nan F
-GLIBC_2.21 nanf F
-GLIBC_2.21 nanl F
-GLIBC_2.21 nearbyint F
-GLIBC_2.21 nearbyintf F
-GLIBC_2.21 nearbyintl F
-GLIBC_2.21 nextafter F
-GLIBC_2.21 nextafterf F
-GLIBC_2.21 nextafterl F
-GLIBC_2.21 nexttoward F
-GLIBC_2.21 nexttowardf F
-GLIBC_2.21 nexttowardl F
-GLIBC_2.21 pow F
-GLIBC_2.21 pow10 F
-GLIBC_2.21 pow10f F
-GLIBC_2.21 pow10l F
-GLIBC_2.21 powf F
-GLIBC_2.21 powl F
-GLIBC_2.21 remainder F
-GLIBC_2.21 remainderf F
-GLIBC_2.21 remainderl F
-GLIBC_2.21 remquo F
-GLIBC_2.21 remquof F
-GLIBC_2.21 remquol F
-GLIBC_2.21 rint F
-GLIBC_2.21 rintf F
-GLIBC_2.21 rintl F
-GLIBC_2.21 round F
-GLIBC_2.21 roundf F
-GLIBC_2.21 roundl F
-GLIBC_2.21 scalb F
-GLIBC_2.21 scalbf F
-GLIBC_2.21 scalbl F
-GLIBC_2.21 scalbln F
-GLIBC_2.21 scalblnf F
-GLIBC_2.21 scalblnl F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 signgam D 0x4
-GLIBC_2.21 significand F
-GLIBC_2.21 significandf F
-GLIBC_2.21 significandl F
-GLIBC_2.21 sin F
-GLIBC_2.21 sincos F
-GLIBC_2.21 sincosf F
-GLIBC_2.21 sincosl F
-GLIBC_2.21 sinf F
-GLIBC_2.21 sinh F
-GLIBC_2.21 sinhf F
-GLIBC_2.21 sinhl F
-GLIBC_2.21 sinl F
-GLIBC_2.21 sqrt F
-GLIBC_2.21 sqrtf F
-GLIBC_2.21 sqrtl F
-GLIBC_2.21 tan F
-GLIBC_2.21 tanf F
-GLIBC_2.21 tanh F
-GLIBC_2.21 tanhf F
-GLIBC_2.21 tanhl F
-GLIBC_2.21 tanl F
-GLIBC_2.21 tgamma F
-GLIBC_2.21 tgammaf F
-GLIBC_2.21 tgammal F
-GLIBC_2.21 trunc F
-GLIBC_2.21 truncf F
-GLIBC_2.21 truncl F
-GLIBC_2.21 y0 F
-GLIBC_2.21 y0f F
-GLIBC_2.21 y0l F
-GLIBC_2.21 y1 F
-GLIBC_2.21 y1f F
-GLIBC_2.21 y1l F
-GLIBC_2.21 yn F
-GLIBC_2.21 ynf F
-GLIBC_2.21 ynl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.29 exp F
-GLIBC_2.29 exp2 F
-GLIBC_2.29 log F
-GLIBC_2.29 log2 F
-GLIBC_2.29 pow F
-GLIBC_2.31 totalorder F
-GLIBC_2.31 totalorderf F
-GLIBC_2.31 totalorderf32 F
-GLIBC_2.31 totalorderf32x F
-GLIBC_2.31 totalorderf64 F
-GLIBC_2.31 totalorderl F
-GLIBC_2.31 totalordermag F
-GLIBC_2.31 totalordermagf F
-GLIBC_2.31 totalordermagf32 F
-GLIBC_2.31 totalordermagf32x F
-GLIBC_2.31 totalordermagf64 F
-GLIBC_2.31 totalordermagl F
-GLIBC_2.32 exp10f F
-GLIBC_2.35 dfmal F
-GLIBC_2.35 dsqrtl F
-GLIBC_2.35 f32fmaf32x F
-GLIBC_2.35 f32fmaf64 F
-GLIBC_2.35 f32sqrtf32x F
-GLIBC_2.35 f32sqrtf64 F
-GLIBC_2.35 f32xfmaf64 F
-GLIBC_2.35 f32xsqrtf64 F
-GLIBC_2.35 ffma F
-GLIBC_2.35 ffmal F
-GLIBC_2.35 fmaximum F
-GLIBC_2.35 fmaximum_mag F
-GLIBC_2.35 fmaximum_mag_num F
-GLIBC_2.35 fmaximum_mag_numf F
-GLIBC_2.35 fmaximum_mag_numf32 F
-GLIBC_2.35 fmaximum_mag_numf32x F
-GLIBC_2.35 fmaximum_mag_numf64 F
-GLIBC_2.35 fmaximum_mag_numl F
-GLIBC_2.35 fmaximum_magf F
-GLIBC_2.35 fmaximum_magf32 F
-GLIBC_2.35 fmaximum_magf32x F
-GLIBC_2.35 fmaximum_magf64 F
-GLIBC_2.35 fmaximum_magl F
-GLIBC_2.35 fmaximum_num F
-GLIBC_2.35 fmaximum_numf F
-GLIBC_2.35 fmaximum_numf32 F
-GLIBC_2.35 fmaximum_numf32x F
-GLIBC_2.35 fmaximum_numf64 F
-GLIBC_2.35 fmaximum_numl F
-GLIBC_2.35 fmaximumf F
-GLIBC_2.35 fmaximumf32 F
-GLIBC_2.35 fmaximumf32x F
-GLIBC_2.35 fmaximumf64 F
-GLIBC_2.35 fmaximuml F
-GLIBC_2.35 fminimum F
-GLIBC_2.35 fminimum_mag F
-GLIBC_2.35 fminimum_mag_num F
-GLIBC_2.35 fminimum_mag_numf F
-GLIBC_2.35 fminimum_mag_numf32 F
-GLIBC_2.35 fminimum_mag_numf32x F
-GLIBC_2.35 fminimum_mag_numf64 F
-GLIBC_2.35 fminimum_mag_numl F
-GLIBC_2.35 fminimum_magf F
-GLIBC_2.35 fminimum_magf32 F
-GLIBC_2.35 fminimum_magf32x F
-GLIBC_2.35 fminimum_magf64 F
-GLIBC_2.35 fminimum_magl F
-GLIBC_2.35 fminimum_num F
-GLIBC_2.35 fminimum_numf F
-GLIBC_2.35 fminimum_numf32 F
-GLIBC_2.35 fminimum_numf32x F
-GLIBC_2.35 fminimum_numf64 F
-GLIBC_2.35 fminimum_numl F
-GLIBC_2.35 fminimumf F
-GLIBC_2.35 fminimumf32 F
-GLIBC_2.35 fminimumf32x F
-GLIBC_2.35 fminimumf64 F
-GLIBC_2.35 fminimuml F
-GLIBC_2.35 fsqrt F
-GLIBC_2.35 fsqrtl F
-GLIBC_2.35 hypot F
-GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
-GLIBC_2.39 exp10 F
-GLIBC_2.40 exp10m1 F
-GLIBC_2.40 exp10m1f F
-GLIBC_2.40 exp10m1f32 F
-GLIBC_2.40 exp10m1f32x F
-GLIBC_2.40 exp10m1f64 F
-GLIBC_2.40 exp10m1l F
-GLIBC_2.40 exp2m1 F
-GLIBC_2.40 exp2m1f F
-GLIBC_2.40 exp2m1f32 F
-GLIBC_2.40 exp2m1f32x F
-GLIBC_2.40 exp2m1f64 F
-GLIBC_2.40 exp2m1l F
-GLIBC_2.40 log10p1 F
-GLIBC_2.40 log10p1f F
-GLIBC_2.40 log10p1f32 F
-GLIBC_2.40 log10p1f32x F
-GLIBC_2.40 log10p1f64 F
-GLIBC_2.40 log10p1l F
-GLIBC_2.40 log2p1 F
-GLIBC_2.40 log2p1f F
-GLIBC_2.40 log2p1f32 F
-GLIBC_2.40 log2p1f32x F
-GLIBC_2.40 log2p1f64 F
-GLIBC_2.40 log2p1l F
-GLIBC_2.40 logp1 F
-GLIBC_2.40 logp1f F
-GLIBC_2.40 logp1f32 F
-GLIBC_2.40 logp1f32x F
-GLIBC_2.40 logp1f64 F
-GLIBC_2.40 logp1l F
diff --git a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist b/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
deleted file mode 100644
index 9a3bbb3..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
+++ /dev/null
@@ -1,121 +0,0 @@
-GLIBC_2.21 __free_fdresult F
-GLIBC_2.21 __nis_default_access F
-GLIBC_2.21 __nis_default_group F
-GLIBC_2.21 __nis_default_owner F
-GLIBC_2.21 __nis_default_ttl F
-GLIBC_2.21 __nis_finddirectory F
-GLIBC_2.21 __nis_hash F
-GLIBC_2.21 __nisbind_connect F
-GLIBC_2.21 __nisbind_create F
-GLIBC_2.21 __nisbind_destroy F
-GLIBC_2.21 __nisbind_next F
-GLIBC_2.21 __yp_check F
-GLIBC_2.21 nis_add F
-GLIBC_2.21 nis_add_entry F
-GLIBC_2.21 nis_addmember F
-GLIBC_2.21 nis_checkpoint F
-GLIBC_2.21 nis_clone_directory F
-GLIBC_2.21 nis_clone_object F
-GLIBC_2.21 nis_clone_result F
-GLIBC_2.21 nis_creategroup F
-GLIBC_2.21 nis_destroy_object F
-GLIBC_2.21 nis_destroygroup F
-GLIBC_2.21 nis_dir_cmp F
-GLIBC_2.21 nis_domain_of F
-GLIBC_2.21 nis_domain_of_r F
-GLIBC_2.21 nis_first_entry F
-GLIBC_2.21 nis_free_directory F
-GLIBC_2.21 nis_free_object F
-GLIBC_2.21 nis_free_request F
-GLIBC_2.21 nis_freenames F
-GLIBC_2.21 nis_freeresult F
-GLIBC_2.21 nis_freeservlist F
-GLIBC_2.21 nis_freetags F
-GLIBC_2.21 nis_getnames F
-GLIBC_2.21 nis_getservlist F
-GLIBC_2.21 nis_ismember F
-GLIBC_2.21 nis_leaf_of F
-GLIBC_2.21 nis_leaf_of_r F
-GLIBC_2.21 nis_lerror F
-GLIBC_2.21 nis_list F
-GLIBC_2.21 nis_local_directory F
-GLIBC_2.21 nis_local_group F
-GLIBC_2.21 nis_local_host F
-GLIBC_2.21 nis_local_principal F
-GLIBC_2.21 nis_lookup F
-GLIBC_2.21 nis_mkdir F
-GLIBC_2.21 nis_modify F
-GLIBC_2.21 nis_modify_entry F
-GLIBC_2.21 nis_name_of F
-GLIBC_2.21 nis_name_of_r F
-GLIBC_2.21 nis_next_entry F
-GLIBC_2.21 nis_perror F
-GLIBC_2.21 nis_ping F
-GLIBC_2.21 nis_print_directory F
-GLIBC_2.21 nis_print_entry F
-GLIBC_2.21 nis_print_group F
-GLIBC_2.21 nis_print_group_entry F
-GLIBC_2.21 nis_print_link F
-GLIBC_2.21 nis_print_object F
-GLIBC_2.21 nis_print_result F
-GLIBC_2.21 nis_print_rights F
-GLIBC_2.21 nis_print_table F
-GLIBC_2.21 nis_read_obj F
-GLIBC_2.21 nis_remove F
-GLIBC_2.21 nis_remove_entry F
-GLIBC_2.21 nis_removemember F
-GLIBC_2.21 nis_rmdir F
-GLIBC_2.21 nis_servstate F
-GLIBC_2.21 nis_sperrno F
-GLIBC_2.21 nis_sperror F
-GLIBC_2.21 nis_sperror_r F
-GLIBC_2.21 nis_stats F
-GLIBC_2.21 nis_verifygroup F
-GLIBC_2.21 nis_write_obj F
-GLIBC_2.21 readColdStartFile F
-GLIBC_2.21 writeColdStartFile F
-GLIBC_2.21 xdr_cback_data F
-GLIBC_2.21 xdr_domainname F
-GLIBC_2.21 xdr_keydat F
-GLIBC_2.21 xdr_mapname F
-GLIBC_2.21 xdr_obj_p F
-GLIBC_2.21 xdr_peername F
-GLIBC_2.21 xdr_valdat F
-GLIBC_2.21 xdr_yp_buf F
-GLIBC_2.21 xdr_ypall F
-GLIBC_2.21 xdr_ypbind_binding F
-GLIBC_2.21 xdr_ypbind_resp F
-GLIBC_2.21 xdr_ypbind_resptype F
-GLIBC_2.21 xdr_ypbind_setdom F
-GLIBC_2.21 xdr_ypdelete_args F
-GLIBC_2.21 xdr_ypmap_parms F
-GLIBC_2.21 xdr_ypmaplist F
-GLIBC_2.21 xdr_yppush_status F
-GLIBC_2.21 xdr_yppushresp_xfr F
-GLIBC_2.21 xdr_ypreq_key F
-GLIBC_2.21 xdr_ypreq_nokey F
-GLIBC_2.21 xdr_ypreq_xfr F
-GLIBC_2.21 xdr_ypresp_all F
-GLIBC_2.21 xdr_ypresp_key_val F
-GLIBC_2.21 xdr_ypresp_maplist F
-GLIBC_2.21 xdr_ypresp_master F
-GLIBC_2.21 xdr_ypresp_order F
-GLIBC_2.21 xdr_ypresp_val F
-GLIBC_2.21 xdr_ypresp_xfr F
-GLIBC_2.21 xdr_ypstat F
-GLIBC_2.21 xdr_ypupdate_args F
-GLIBC_2.21 xdr_ypxfrstat F
-GLIBC_2.21 yp_all F
-GLIBC_2.21 yp_bind F
-GLIBC_2.21 yp_first F
-GLIBC_2.21 yp_get_default_domain F
-GLIBC_2.21 yp_maplist F
-GLIBC_2.21 yp_master F
-GLIBC_2.21 yp_match F
-GLIBC_2.21 yp_next F
-GLIBC_2.21 yp_order F
-GLIBC_2.21 yp_unbind F
-GLIBC_2.21 yp_update F
-GLIBC_2.21 ypbinderr_string F
-GLIBC_2.21 yperr_string F
-GLIBC_2.21 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
deleted file mode 100644
index 714dfd9..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_2.21 __libpthread_version_placeholder F
-GLIBC_2.28 __libpthread_version_placeholder F
-GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
deleted file mode 100644
index e1d6065..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ /dev/null
@@ -1,67 +0,0 @@
-GLIBC_2.21 __b64_ntop F
-GLIBC_2.21 __b64_pton F
-GLIBC_2.21 __dn_count_labels F
-GLIBC_2.21 __fp_nquery F
-GLIBC_2.21 __fp_query F
-GLIBC_2.21 __fp_resstat F
-GLIBC_2.21 __hostalias F
-GLIBC_2.21 __loc_aton F
-GLIBC_2.21 __loc_ntoa F
-GLIBC_2.21 __p_cdname F
-GLIBC_2.21 __p_cdnname F
-GLIBC_2.21 __p_class F
-GLIBC_2.21 __p_class_syms D 0x54
-GLIBC_2.21 __p_fqname F
-GLIBC_2.21 __p_fqnname F
-GLIBC_2.21 __p_option F
-GLIBC_2.21 __p_query F
-GLIBC_2.21 __p_rcode F
-GLIBC_2.21 __p_secstodate F
-GLIBC_2.21 __p_time F
-GLIBC_2.21 __p_type F
-GLIBC_2.21 __p_type_syms D 0x228
-GLIBC_2.21 __putlong F
-GLIBC_2.21 __putshort F
-GLIBC_2.21 __res_close F
-GLIBC_2.21 __res_hostalias F
-GLIBC_2.21 __res_isourserver F
-GLIBC_2.21 __res_nameinquery F
-GLIBC_2.21 __res_queriesmatch F
-GLIBC_2.21 __sym_ntop F
-GLIBC_2.21 __sym_ntos F
-GLIBC_2.21 __sym_ston F
-GLIBC_2.21 _gethtbyaddr F
-GLIBC_2.21 _gethtbyname F
-GLIBC_2.21 _gethtbyname2 F
-GLIBC_2.21 _gethtent F
-GLIBC_2.21 _getlong F
-GLIBC_2.21 _getshort F
-GLIBC_2.21 _res_opcodes D 0x40
-GLIBC_2.21 _sethtent F
-GLIBC_2.21 inet_net_ntop F
-GLIBC_2.21 inet_net_pton F
-GLIBC_2.21 inet_neta F
-GLIBC_2.21 ns_datetosecs F
-GLIBC_2.21 ns_format_ttl F
-GLIBC_2.21 ns_get16 F
-GLIBC_2.21 ns_get32 F
-GLIBC_2.21 ns_initparse F
-GLIBC_2.21 ns_makecanon F
-GLIBC_2.21 ns_msg_getflag F
-GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_parse_ttl F
-GLIBC_2.21 ns_parserr F
-GLIBC_2.21 ns_put16 F
-GLIBC_2.21 ns_put32 F
-GLIBC_2.21 ns_samedomain F
-GLIBC_2.21 ns_samename F
-GLIBC_2.21 ns_skiprr F
-GLIBC_2.21 ns_sprintrr F
-GLIBC_2.21 ns_sprintrrf F
-GLIBC_2.21 ns_subdomain F
-GLIBC_2.21 res_gethostbyaddr F
-GLIBC_2.21 res_gethostbyname F
-GLIBC_2.21 res_gethostbyname2 F
-GLIBC_2.21 res_send_setqhook F
-GLIBC_2.21 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
deleted file mode 100644
index 834a4dc..0000000
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist b/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
deleted file mode 100644
index cb9e543..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
+++ /dev/null
@@ -1,40 +0,0 @@
-GLIBC_2.21 td_init F
-GLIBC_2.21 td_log F
-GLIBC_2.21 td_symbol_list F
-GLIBC_2.21 td_ta_clear_event F
-GLIBC_2.21 td_ta_delete F
-GLIBC_2.21 td_ta_enable_stats F
-GLIBC_2.21 td_ta_event_addr F
-GLIBC_2.21 td_ta_event_getmsg F
-GLIBC_2.21 td_ta_get_nthreads F
-GLIBC_2.21 td_ta_get_ph F
-GLIBC_2.21 td_ta_get_stats F
-GLIBC_2.21 td_ta_map_id2thr F
-GLIBC_2.21 td_ta_map_lwp2thr F
-GLIBC_2.21 td_ta_new F
-GLIBC_2.21 td_ta_reset_stats F
-GLIBC_2.21 td_ta_set_event F
-GLIBC_2.21 td_ta_setconcurrency F
-GLIBC_2.21 td_ta_thr_iter F
-GLIBC_2.21 td_ta_tsd_iter F
-GLIBC_2.21 td_thr_clear_event F
-GLIBC_2.21 td_thr_dbresume F
-GLIBC_2.21 td_thr_dbsuspend F
-GLIBC_2.21 td_thr_event_enable F
-GLIBC_2.21 td_thr_event_getmsg F
-GLIBC_2.21 td_thr_get_info F
-GLIBC_2.21 td_thr_getfpregs F
-GLIBC_2.21 td_thr_getgregs F
-GLIBC_2.21 td_thr_getxregs F
-GLIBC_2.21 td_thr_getxregsize F
-GLIBC_2.21 td_thr_set_event F
-GLIBC_2.21 td_thr_setfpregs F
-GLIBC_2.21 td_thr_setgregs F
-GLIBC_2.21 td_thr_setprio F
-GLIBC_2.21 td_thr_setsigpending F
-GLIBC_2.21 td_thr_setxregs F
-GLIBC_2.21 td_thr_sigsetmask F
-GLIBC_2.21 td_thr_tls_get_addr F
-GLIBC_2.21 td_thr_tlsbase F
-GLIBC_2.21 td_thr_tsd F
-GLIBC_2.21 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/nios2/libutil.abilist b/sysdeps/unix/sysv/linux/nios2/libutil.abilist
deleted file mode 100644
index 742ebe6..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libutil.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libutil_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/localplt.data b/sysdeps/unix/sysv/linux/nios2/localplt.data
deleted file mode 100644
index f502a3f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/localplt.data
+++ /dev/null
@@ -1,30 +0,0 @@
-libc.so: realloc
-libc.so: __floatsisf
-libc.so: __gtdf2 ?
-libc.so: __ltdf2
-libc.so: __gedf2
-libc.so: malloc
-libc.so: __gtsf2 ?
-libc.so: __nesf2
-libc.so: __mulsf3
-libc.so: __floatunsisf
-libc.so: __addsf3
-libc.so: __fixsfsi
-libc.so: __subsf3
-libc.so: __unorddf2 ?
-libc.so: calloc
-libc.so: __muldf3
-libc.so: __unordsf2 ?
-libc.so: free
-libc.so: __subdf3
-libc.so: __ledf2
-libc.so: __adddf3
-libc.so: __divdf3
-libc.so: __floatsidf
-libc.so: __divsf3
-libc.so: __nedf2
-libc.so: __eqdf2
-libc.so: __extendsfdf2
-libc.so: __floatundidf ?
-libc.so: __floatunsidf ?
-libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/nios2/makecontext.c b/sysdeps/unix/sysv/linux/nios2/makecontext.c
deleted file mode 100644
index d6e430c..0000000
--- a/sysdeps/unix/sysv/linux/nios2/makecontext.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Create new context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <ucontext.h>
-
-/* makecontext sets up a stack and the registers for the
- user context. The stack looks like this:
-
- +-----------------------+
- | padding as required |
- +-----------------------+
- sp -> | parameters 5 to n |
- +-----------------------+
-
- The registers are set up like this:
- r4--r7 : parameter 1 to 4
- r16 : uc_link
- sp : stack pointer.
-*/
-
-void
-__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-{
- extern void __startcontext (void);
- unsigned long *sp;
- va_list ap;
- int i;
-
- sp = (unsigned long *)
- ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-
- /* Allocate stack arguments. */
- sp -= argc < 4 ? 0 : argc - 4;
-
- /* Keep the stack aligned. */
- sp = (unsigned long*) (((uintptr_t) sp) & -4L);
-
- /* Init version field. */
- ucp->uc_mcontext.version = 2;
- /* Keep uc_link in r16. */
- ucp->uc_mcontext.regs[15] = (uintptr_t) ucp->uc_link;
- /* Return address points to __startcontext(). */
- ucp->uc_mcontext.regs[23] = (uintptr_t) &__startcontext;
- /* Frame pointer is null. */
- ucp->uc_mcontext.regs[24] = (uintptr_t) 0;
- /* Restart in user-space starting at 'func'. */
- ucp->uc_mcontext.regs[27] = (uintptr_t) func;
- /* Set stack pointer. */
- ucp->uc_mcontext.regs[28] = (uintptr_t) sp;
-
- va_start (ap, argc);
- for (i = 0; i < argc; ++i)
- if (i < 4)
- ucp->uc_mcontext.regs[i + 3] = va_arg (ap, unsigned long);
- else
- sp[i - 4] = va_arg (ap, unsigned long);
-
- va_end (ap);
-}
-
-weak_alias (__makecontext, makecontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h b/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
deleted file mode 100644
index 487fa22..0000000
--- a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Pointer obfuscation implenentation. Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef POINTER_GUARD_H
-#define POINTER_GUARD_H
-
-#if IS_IN (rtld)
-/* We cannot use the thread descriptor because in ld.so we use setjmp
- earlier than the descriptor is initialized. */
-# include <sysdeps/generic/pointer_guard.h>
-#else
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE_GUARD(guard) ldw guard, POINTER_GUARD(r23)
-# define PTR_MANGLE(dst, src, guard) xor dst, src, guard
-# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
-# else
-# include <stdint.h>
-# include <tls.h>
-# define PTR_MANGLE(var) \
- (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
-# define PTR_DEMANGLE(var) PTR_MANGLE (var)
-# endif
-#endif
-
-#endif /* POINTER_GUARD_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/send.c b/sysdeps/unix/sysv/linux/nios2/send.c
deleted file mode 100644
index c1621c8..0000000
--- a/sysdeps/unix/sysv/linux/nios2/send.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <shlib-compat.h>
-
-#include <sysdeps/unix/sysv/linux/send.c>
-
-#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_34)
-/* libpthread compat symbol: Nios2 used the generic version without the
- libc_hidden_def which lead in a non existent __send symbol in libc.so. */
-compat_symbol (libc, __libc_send, __send, GLIBC_2_21);
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/setcontext.S b/sysdeps/unix/sysv/linux/nios2/setcontext.S
deleted file mode 100644
index 2345de7..0000000
--- a/sysdeps/unix/sysv/linux/nios2/setcontext.S
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Set current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int setcontext (const ucontext_t *ucp) */
- .text
-ENTRY(__setcontext)
- ldw r5, UCONTEXT_FLAGS(r4)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- mov r10, r4
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r4, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__setcontext)
-weak_alias (__setcontext, setcontext)
-
- /* We add an NOP here to separate between __setcontext/__startcontext.
- The wanted behavior that happens is: when unwinding from a function
- called inside a makecontext() context, FDE lookup will use
- '&__startcontext - 1', then returns NULL for no FDE found,
- and immediately ends the unwind, in a normal fashion.
-
- If this NOP word does not exist, FDE lookup just repeatedly finds
- __setcontext's FDE in an infinite loop, due to the convention of
- using 'address - 1' for FDE lookup. Modifying/deleting the below
- __startcontext's FDE has no help on this. */
- nop
-
-ENTRY(__startcontext)
- mov r4, r16
- bne r4, zero, __setcontext
-
- /* If uc_link == zero, call exit. */
-#ifdef PIC
- nextpc r22
-1: movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r22, r22, r8
- ldw r8, %call(HIDDEN_JUMPTARGET(exit))(r22)
- jmp r8
-#else
- jmpi exit
-#endif
-END(__startcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/shlib-versions b/sysdeps/unix/sysv/linux/nios2/shlib-versions
deleted file mode 100644
index 443fd4d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/shlib-versions
+++ /dev/null
@@ -1,2 +0,0 @@
-DEFAULT GLIBC_2.21
-ld=ld-linux-nios2.so.1
diff --git a/sysdeps/unix/sysv/linux/nios2/swapcontext.S b/sysdeps/unix/sysv/linux/nios2/swapcontext.S
deleted file mode 100644
index 488d702..0000000
--- a/sysdeps/unix/sysv/linux/nios2/swapcontext.S
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Modify saved context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
- .text
-ENTRY(__swapcontext)
-
- /* Same as getcontext(). */
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Save ucp to non-argument syscall preserved register. */
- mov r10, r5
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
-
- /* Same as setcontext(). */
- ldw r5, UCONTEXT_FLAGS(r10)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r10, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__swapcontext)
-weak_alias (__swapcontext, swapcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
deleted file mode 100644
index 74cc119..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ucontext_t definition, Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* System V/Nios II ABI compliant context switching support. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-
-#include <bits/types/sigset_t.h>
-#include <bits/types/stack_t.h>
-
-
-/* These definitions must be in sync with the kernel. */
-
-#ifdef __USE_MISC
-# define MCONTEXT_VERSION 2
-#endif
-
-#ifdef __USE_MISC
-# define __ctx(fld) fld
-#else
-# define __ctx(fld) __ ## fld
-#endif
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- int __ctx(version);
- unsigned long __ctx(regs)[32];
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext_t
- {
- unsigned long __ctx(uc_flags);
- struct ucontext_t *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
- } ucontext_t;
-
-#undef __ctx
-
-#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/user.h b/sysdeps/unix/sysv/linux/nios2/sys/user.h
deleted file mode 100644
index ed637b5..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/user.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ptrace register data format definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_USER_H
-#define _SYS_USER_H 1
-
-/* The whole purpose of this file is for GDB and GDB only. Don't read
- too much into it. Don't use it for anything other than GDB unless
- you know what you are doing. */
-
-struct user_fpregs
-{
-};
-
-struct user_regs
-{
- unsigned long int uregs[49];
-};
-
-struct user
-{
- struct user_regs regs; /* General registers */
- int u_fpvalid; /* True if math co-processor being used. */
-
- unsigned long int u_tsize; /* Text segment size (pages). */
- unsigned long int u_dsize; /* Data segment size (pages). */
- unsigned long int u_ssize; /* Stack segment size (pages). */
-
- unsigned long start_code; /* Starting virtual address of text. */
- unsigned long start_stack; /* Starting virtual address of stack. */
-
- long int signal; /* Signal that caused the core dump. */
- int reserved; /* No longer used */
- struct user_regs *u_ar0; /* help gdb to find the general registers. */
-
- unsigned long magic; /* uniquely identify a core file */
- char u_comm[32]; /* User command that was responsible */
- int u_debugreg[8];
- struct user_fpregs u_fp; /* Floating point registers */
- struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
-};
-
-#endif /* sys/user.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/syscall.S b/sysdeps/unix/sysv/linux/nios2/syscall.S
deleted file mode 100644
index 18ac11c..0000000
--- a/sysdeps/unix/sysv/linux/nios2/syscall.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* syscall - indirect system call.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* We don't need a special syscall to implement syscall(). It won't work
- reliably with 64-bit arguments (but that is true on many modern platforms).
-*/
-
-ENTRY (syscall)
- mov r2, r4
- mov r4, r5
- mov r5, r6
- mov r6, r7
- ldw r7, 0(sp)
- ldw r8, 4(sp)
- ldw r9, 8(sp)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-PSEUDO_END (syscall)
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.S b/sysdeps/unix/sysv/linux/nios2/sysdep.S
deleted file mode 100644
index a827d41..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Static library error handling code fragment for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* The following code is only used in the static library. In the shared
- library, the error handling code is at the end of each function. */
-
-#ifndef PIC
-
-/* In the static library, the syscall stubs jump here when they detect
- an error. */
-
-# undef CALL_MCOUNT
-# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers r2. */
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
- .text
-ENTRY (__syscall_error)
- nextpc r3
-1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r3, r3, r8
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3)
- add r3, r23, r3
- stw r2, 0(r3)
- movi r2, -1
- ret
-END (__syscall_error)
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h
deleted file mode 100644
index 2ea9c3b..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Assembler macros for Nios II.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _LINUX_NIOS2_SYSDEP_H
-#define _LINUX_NIOS2_SYSDEP_H 1
-
-#include <sysdeps/unix/sysv/linux/sysdep.h>
-#include <sysdeps/unix/sysdep.h>
-#include <sysdeps/nios2/sysdep.h>
-
-/* For RTLD_PRIVATE_ERRNO. */
-#include <dl-sysdep.h>
-
-#include <tls.h>
-
-/* For Linux we can use the system call table in the header file
- /usr/include/asm/unistd.h
- of the kernel. But these symbols do not follow the SYS_* syntax
- so we have to redefine the `SYS_ify' macro here. */
-#undef SYS_ify
-#define SYS_ify(syscall_name) __NR_##syscall_name
-
-#ifdef __ASSEMBLER__
-
-#undef SYSCALL_ERROR_LABEL
-#define SYSCALL_ERROR_LABEL __local_syscall_error
-
-#undef PSEUDO
-#define PSEUDO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args) \
- bne r7, zero, SYSCALL_ERROR_LABEL; \
-
-#undef PSEUDO_END
-#define PSEUDO_END(name) \
- SYSCALL_ERROR_HANDLER \
- END (name)
-
-#undef PSEUDO_NOERRNO
-#define PSEUDO_NOERRNO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_NOERRNO
-#define PSEUDO_END_NOERRNO(name) \
- END (name)
-
-#undef ret_NOERRNO
-#define ret_NOERRNO ret
-
-#undef DO_CALL
-#define DO_CALL(syscall_name, args) \
- DOARGS_##args \
- movi r2, SYS_ify(syscall_name); \
- trap;
-
-#if defined(__PIC__) || defined(PIC)
-
-# if RTLD_PRIVATE_ERRNO
-
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(rtld_errno - 1b); \
- addi r8, r8, %lo(rtld_errno - 1b); \
- add r3, r3, r8; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# else
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(_gp_got - 1b); \
- addi r8, r8, %lo(_gp_got - 1b); \
- add r3, r3, r8; \
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3); \
- add r3, r23, r3; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# endif
-
-#else
-
-/* We can use a single error handler in the static library. */
-#define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- jmpi __syscall_error;
-
-#endif
-
-#define DOARGS_0 /* nothing */
-#define DOARGS_1 /* nothing */
-#define DOARGS_2 /* nothing */
-#define DOARGS_3 /* nothing */
-#define DOARGS_4 /* nothing */
-#define DOARGS_5 ldw r8, 0(sp);
-#define DOARGS_6 ldw r9, 4(sp); ldw r8, 0(sp);
-
-/* The function has to return the error code. */
-#undef PSEUDO_ERRVAL
-#define PSEUDO_ERRVAL(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_ERRVAL
-#define PSEUDO_END_ERRVAL(name) \
- END (name)
-
-#define ret_ERRVAL ret
-
-#else /* __ASSEMBLER__ */
-
-/* In order to get __set_errno() definition in INLINE_SYSCALL. */
-#include <errno.h>
-
-#undef INTERNAL_SYSCALL_RAW
-#define INTERNAL_SYSCALL_RAW(name, nr, args...) \
- ({ unsigned int _sys_result; \
- { \
- /* Load argument values in temporary variables
- to perform side effects like function calls
- before the call-used registers are set. */ \
- LOAD_ARGS_##nr (args) \
- LOAD_REGS_##nr \
- register int _r2 asm ("r2") = (int)(name); \
- register int _err asm ("r7"); \
- asm volatile ("trap" \
- : "+r" (_r2), "=r" (_err) \
- : ASM_ARGS_##nr \
- : __SYSCALL_CLOBBERS); \
- _sys_result = _err != 0 ? -_r2 : _r2; \
- } \
- (int) _sys_result; })
-
-#undef INTERNAL_SYSCALL
-#define INTERNAL_SYSCALL(name, nr, args...) \
- INTERNAL_SYSCALL_RAW(SYS_ify(name), nr, args)
-
-#undef INTERNAL_SYSCALL_NCS
-#define INTERNAL_SYSCALL_NCS(number, nr, args...) \
- INTERNAL_SYSCALL_RAW(number, nr, args)
-
-#define LOAD_ARGS_0()
-#define LOAD_REGS_0
-#define ASM_ARGS_0
-#define LOAD_ARGS_1(a1) \
- LOAD_ARGS_0 () \
- int __arg1 = (int) (a1);
-#define LOAD_REGS_1 \
- register int _r4 asm ("r4") = __arg1; \
- LOAD_REGS_0
-#define ASM_ARGS_1 "r" (_r4)
-#define LOAD_ARGS_2(a1, a2) \
- LOAD_ARGS_1 (a1) \
- int __arg2 = (int) (a2);
-#define LOAD_REGS_2 \
- register int _r5 asm ("r5") = __arg2; \
- LOAD_REGS_1
-#define ASM_ARGS_2 ASM_ARGS_1, "r" (_r5)
-#define LOAD_ARGS_3(a1, a2, a3) \
- LOAD_ARGS_2 (a1, a2) \
- int __arg3 = (int) (a3);
-#define LOAD_REGS_3 \
- register int _r6 asm ("r6") = __arg3; \
- LOAD_REGS_2
-#define ASM_ARGS_3 ASM_ARGS_2, "r" (_r6)
-#define LOAD_ARGS_4(a1, a2, a3, a4) \
- LOAD_ARGS_3 (a1, a2, a3) \
- int __arg4 = (int) (a4);
-#define LOAD_REGS_4 \
- register int _r7 asm ("r7") = __arg4; \
- LOAD_REGS_3
-#define ASM_ARGS_4 ASM_ARGS_3, "r" (_r7)
-#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
- LOAD_ARGS_4 (a1, a2, a3, a4) \
- int __arg5 = (int) (a5);
-#define LOAD_REGS_5 \
- register int _r8 asm ("r8") = __arg5; \
- LOAD_REGS_4
-#define ASM_ARGS_5 ASM_ARGS_4, "r" (_r8)
-#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
- LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
- int __arg6 = (int) (a6);
-#define LOAD_REGS_6 \
- register int _r9 asm ("r9") = __arg6; \
- LOAD_REGS_5
-#define ASM_ARGS_6 ASM_ARGS_5, "r" (_r9)
-
-#define __SYSCALL_CLOBBERS "memory"
-
-#undef HAVE_INTERNAL_BRK_ADDR_SYMBOL
-#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* linux/nios2/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/time64-compat.h b/sysdeps/unix/sysv/linux/nios2/time64-compat.h
deleted file mode 100644
index 700f854..0000000
--- a/sysdeps/unix/sysv/linux/nios2/time64-compat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* ABI support 64-bit in non-default mode. */
-#define TIME64_NON_DEFAULT
diff --git a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
deleted file mode 100644
index a844c96..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <inttypes.h>
-#include <signal.h>
-#include <stddef.h>
-#include <sys/ucontext.h>
-
-#include "kernel_rt_sigframe.h"
-
-SIG_BLOCK
-SIG_SETMASK
-
-_NSIG8 (_NSIG / 8)
-
-MCONTEXT_VERSION
-
--- Offsets of the fields in the kernel rt_sigframe_t structure.
-#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
-
-RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
-RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
-
--- Offsets of the fields in the ucontext_t structure.
-#define ucontext(member) offsetof (ucontext_t, member)
-
-UCONTEXT_FLAGS ucontext (uc_flags)
-UCONTEXT_LINK ucontext (uc_link)
-UCONTEXT_STACK ucontext (uc_stack)
-UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-UCONTEXT_SIGMASK ucontext (uc_sigmask)
-UCONTEXT_SIZE sizeof (ucontext_t)
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index 2a7585b..5ac6dd4 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Linux/NPTL version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,18 +27,19 @@
#include <sys/syscall.h>
#include <sys/wait.h>
#include <time.h>
+#include <sys/random.h>
/* Non cancellable open syscall. */
-__typeof (open) __open_nocancel;
+extern int __open_nocancel (const char *, int, ...);
/* Non cancellable open syscall (LFS version). */
-__typeof (open64) __open64_nocancel;
+extern int __open64_nocancel (const char *, int, ...);
/* Non cancellable openat syscall. */
-__typeof (openat) __openat_nocancel;
+extern int __openat_nocancel (int fd, const char *, int, ...);
/* Non cacellable openat syscall (LFS version). */
-__typeof (openat64) __openat64_nocancel;
+extern int __openat64_nocancel (int fd, const char *, int, ...);
/* Non cancellable read syscall. */
__typeof (__read) __read_nocancel;
@@ -52,8 +53,11 @@ __typeof (__write) __write_nocancel;
/* Uncancelable close. */
__typeof (__close) __close_nocancel;
+/* Uncancellable close that does not also set errno in case of failure. */
+void __close_nocancel_nostatus (int);
+
/* Uncancelable fcntl. */
-__typeof (__fcntl) __fcntl64_nocancel;
+int __fcntl64_nocancel (int, int, ...);
#if IS_IN (libc) || IS_IN (rtld)
hidden_proto (__open_nocancel)
@@ -64,17 +68,10 @@ hidden_proto (__read_nocancel)
hidden_proto (__pread64_nocancel)
hidden_proto (__write_nocancel)
hidden_proto (__close_nocancel)
+hidden_proto (__close_nocancel_nostatus)
hidden_proto (__fcntl64_nocancel)
#endif
-/* Non cancellable close syscall that does not also set errno in case of
- failure. */
-static inline void
-__close_nocancel_nostatus (int fd)
-{
- __close_nocancel (fd);
-}
-
/* Non cancellable writev syscall that does not also set errno in case of
failure. */
static inline void
@@ -84,15 +81,17 @@ __writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt)
}
static inline ssize_t
-__getrandom_nocancel (void *buf, size_t buflen, unsigned int flags)
+__getrandom_nocancel_direct (void *buf, size_t buflen, unsigned int flags)
{
return INLINE_SYSCALL_CALL (getrandom, buf, buflen, flags);
}
+__typeof (getrandom) __getrandom_nocancel attribute_hidden;
+
/* Non cancellable getrandom syscall that does not also set errno in case of
failure. */
static inline ssize_t
-__getrandom_nocancel_nostatus (void *buf, size_t buflen, unsigned int flags)
+__getrandom_nocancel_nostatus_direct (void *buf, size_t buflen, unsigned int flags)
{
return INTERNAL_SYSCALL_CALL (getrandom, buf, buflen, flags);
}
diff --git a/sysdeps/unix/sysv/linux/not-errno.h b/sysdeps/unix/sysv/linux/not-errno.h
index a8b8b50..32c09b2 100644
--- a/sysdeps/unix/sysv/linux/not-errno.h
+++ b/sysdeps/unix/sysv/linux/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nscd_setup_thread.c b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
index 6e5f6a4..22a3613 100644
--- a/sysdeps/unix/sysv/linux/nscd_setup_thread.c
+++ b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
@@ -1,5 +1,5 @@
/* Setup of nscd worker threads. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c
index c293a53..ad32d56 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettime.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ntp_gettimex.c b/sysdeps/unix/sysv/linux/ntp_gettimex.c
index 92df9a0..bd14e2e 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettimex.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettimex.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/old_termios.h b/sysdeps/unix/sysv/linux/old_termios.h
new file mode 100644
index 0000000..56d19ba
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/old_termios.h
@@ -0,0 +1,23 @@
+/* old_termios.h for Linux other than MIPS and SPARC
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* By default, no old termios structure */
+#define _HAVE_STRUCT_OLD_TERMIOS 0
+#define OLD_NCCS NCCS
+typedef struct termios old_termios_t;
diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h
index 239f790..b64f48d 100644
--- a/sysdeps/unix/sysv/linux/olddirent.h
+++ b/sysdeps/unix/sysv/linux/olddirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,8 +34,6 @@ extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp);
libc_hidden_proto (__old_readdir64);
extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry,
struct __old_dirent64 **__result);
-extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes)
- attribute_hidden;
int __old_scandir64 (const char * __dir,
struct __old_dirent64 *** __namelist,
int (*__selector) (const struct __old_dirent64 *),
diff --git a/sysdeps/unix/sysv/linux/open.c b/sysdeps/unix/sysv/linux/open.c
index 1ddc627..76d804f 100644
--- a/sysdeps/unix/sysv/linux/open.c
+++ b/sysdeps/unix/sysv/linux/open.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open64.c b/sysdeps/unix/sysv/linux/open64.c
index f15a921..7558be3 100644
--- a/sysdeps/unix/sysv/linux/open64.c
+++ b/sysdeps/unix/sysv/linux/open64.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open64_nocancel.c b/sysdeps/unix/sysv/linux/open64_nocancel.c
index c6b6845..7a62eba 100644
--- a/sysdeps/unix/sysv/linux/open64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open_by_handle_at.c b/sysdeps/unix/sysv/linux/open_by_handle_at.c
index 730059d..824b214 100644
--- a/sysdeps/unix/sysv/linux/open_by_handle_at.c
+++ b/sysdeps/unix/sysv/linux/open_by_handle_at.c
@@ -1,5 +1,5 @@
/* Obtain handle for an open file via a handle. Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open_nocancel.c b/sysdeps/unix/sysv/linux/open_nocancel.c
index d3412ca..98afb73 100644
--- a/sysdeps/unix/sysv/linux/open_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
index d8400f4..be8b52a 100644
--- a/sysdeps/unix/sysv/linux/openat.c
+++ b/sysdeps/unix/sysv/linux/openat.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat64.c b/sysdeps/unix/sysv/linux/openat64.c
index 3bf6730..7e71a7c 100644
--- a/sysdeps/unix/sysv/linux/openat64.c
+++ b/sysdeps/unix/sysv/linux/openat64.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat64_nocancel.c b/sysdeps/unix/sysv/linux/openat64_nocancel.c
index 4e1cbb2..80c6cb2 100644
--- a/sysdeps/unix/sysv/linux/openat64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat_nocancel.c b/sysdeps/unix/sysv/linux/openat_nocancel.c
index 5a9458d..abb2f37 100644
--- a/sysdeps/unix/sysv/linux/openat_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/opendir.c b/sysdeps/unix/sysv/linux/opendir.c
index b521813..48e3dc4 100644
--- a/sysdeps/unix/sysv/linux/opendir.c
+++ b/sysdeps/unix/sysv/linux/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/arch-syscall.h b/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
index 2d21fa2..c2a1d51 100644
--- a/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
@@ -102,6 +102,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -132,6 +133,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -181,6 +183,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_or1k_atomic 244
@@ -224,6 +227,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -285,6 +289,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/or1k/bits/procfs.h b/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
index e6a799f..23de266 100644
--- a/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/clone.c b/sysdeps/unix/sysv/linux/or1k/clone.c
index ff8b9eb..5d775bd 100644
--- a/sysdeps/unix/sysv/linux/or1k/clone.c
+++ b/sysdeps/unix/sysv/linux/or1k/clone.c
@@ -1,5 +1,5 @@
/* OpenRISC helper for the clone syscall.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/getcontext-common.S b/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
index 9187749..f867689 100644
--- a/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context. OpenRISC common version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/getcontext.S b/sysdeps/unix/sysv/linux/or1k/getcontext.S
index da69e69..692a624 100644
--- a/sysdeps/unix/sysv/linux/or1k/getcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
index 959e59e..b62d59f 100644
--- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
@@ -2259,3 +2259,22 @@ GLIBC_2.40 getcontext F
GLIBC_2.40 makecontext F
GLIBC_2.40 setcontext F
GLIBC_2.40 swapcontext F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist
index 4db8702..bef7a98 100644
--- a/sysdeps/unix/sysv/linux/or1k/libm.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist
@@ -787,3 +787,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/or1k/makecontext.c b/sysdeps/unix/sysv/linux/or1k/makecontext.c
index 7e131ba..07557e7 100644
--- a/sysdeps/unix/sysv/linux/or1k/makecontext.c
+++ b/sysdeps/unix/sysv/linux/or1k/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/mmap_internal.h b/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
index f6fb86e..320fe13 100644
--- a/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/or1k_clone.S b/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
index 7b03257..5884713 100644
--- a/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
+++ b/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
@@ -1,5 +1,5 @@
/* clone helper __or1k_clone for OpenRISC.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/prctl.c b/sysdeps/unix/sysv/linux/or1k/prctl.c
index 1aa707d..d443edd 100644
--- a/sysdeps/unix/sysv/linux/or1k/prctl.c
+++ b/sysdeps/unix/sysv/linux/or1k/prctl.c
@@ -1,5 +1,5 @@
/* prctl - Linux specific syscall. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/setcontext-common.S b/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
index 8a4f147..d0e72f2 100644
--- a/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
@@ -1,5 +1,5 @@
/* Set current context. OpenRISC common version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/setcontext.S b/sysdeps/unix/sysv/linux/or1k/setcontext.S
index a49a5c5..a64ec28 100644
--- a/sysdeps/unix/sysv/linux/or1k/setcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
index 841dbbe..8adc5af 100644
--- a/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* Profile counter helper to get PC from sigcontext. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S b/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
index b7e2d4c..d508f29 100644
--- a/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
@@ -1,5 +1,5 @@
/* Swap two contexts. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/swapcontext.S b/sysdeps/unix/sysv/linux/or1k/swapcontext.S
index 861c1e2..05ed2f8 100644
--- a/sysdeps/unix/sysv/linux/or1k/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/swapcontext.S
@@ -1,5 +1,5 @@
/* Swap two contexts. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h b/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
index 1b42859..ea7217d 100644
--- a/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
@@ -1,5 +1,5 @@
/* ucontext_t definition, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S b/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S
new file mode 100644
index 0000000..733719a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S
@@ -0,0 +1,63 @@
+/* Cancellable syscall wrapper. Linux/or1k version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+ENTRY (__syscall_cancel_arch)
+ l.addi r1, r1, -4
+ cfi_def_cfa_offset (4)
+ l.sw 0(r1), r9
+ cfi_offset (9, -4)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ l.movhi r19, hi(0)
+ l.lwz r17, 0(r3)
+ l.andi r17, r17, 8
+ l.sfeq r17, r19
+ l.bnf 1f
+
+ /* Issue a 6 argument syscall. */
+ l.or r11, r4, r4
+ l.or r3, r5, r5
+ l.or r4, r6, r6
+ l.or r5, r7, r7
+ l.or r6, r8, r8
+ l.lwz r7, 4(r1)
+ l.lwz r8, 8(r1)
+ l.sys 1
+ l.nop
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ l.lwz r9, 0(r1)
+ l.jr r9
+ l.addi r1, r1, 4
+ cfi_remember_state
+ cfi_def_cfa_offset (0)
+ cfi_restore (9)
+1:
+ cfi_restore_state
+ l.jal __syscall_do_cancel
+ l.nop
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/or1k/sysdep.c b/sysdeps/unix/sysv/linux/or1k/sysdep.c
index f9a4e15..3619995 100644
--- a/sysdeps/unix/sysv/linux/or1k/sysdep.c
+++ b/sysdeps/unix/sysv/linux/or1k/sysdep.c
@@ -1,5 +1,5 @@
/* OpenRISC wrapper for setting errno.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/or1k/sysdep.h b/sysdeps/unix/sysv/linux/or1k/sysdep.h
index ea3cf34..284d872 100644
--- a/sysdeps/unix/sysv/linux/or1k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/or1k/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler and syscall macros. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index d593712..87a0a3a 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -186,6 +186,9 @@ __statfs_link_max (int result, const struct statfs *fsbuf, const char *file,
case LUSTRE_SUPER_MAGIC:
return LUSTRE_LINK_MAX;
+ case BTRFS_SUPER_MAGIC:
+ return BTRFS_LINK_MAX;
+
default:
return LINUX_LINK_MAX;
}
diff --git a/sysdeps/unix/sysv/linux/pathconf.h b/sysdeps/unix/sysv/linux/pathconf.h
index b5c0e35..9683cf8 100644
--- a/sysdeps/unix/sysv/linux/pathconf.h
+++ b/sysdeps/unix/sysv/linux/pathconf.h
@@ -1,5 +1,5 @@
/* Common parts of Linux implementation of pathconf and fpathconf.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pause.c b/sysdeps/unix/sysv/linux/pause.c
index a29dac5..1e421ce 100644
--- a/sysdeps/unix/sysv/linux/pause.c
+++ b/sysdeps/unix/sysv/linux/pause.c
@@ -1,5 +1,5 @@
/* Linux pause syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/personality.c b/sysdeps/unix/sysv/linux/personality.c
index 3c975bf..3332fc6 100644
--- a/sysdeps/unix/sysv/linux/personality.c
+++ b/sysdeps/unix/sysv/linux/personality.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_getpid.c b/sysdeps/unix/sysv/linux/pidfd_getpid.c
index 6967477..4f16865 100644
--- a/sysdeps/unix/sysv/linux/pidfd_getpid.c
+++ b/sysdeps/unix/sysv/linux/pidfd_getpid.c
@@ -1,5 +1,5 @@
/* pidfd_getpid - Get the associated pid from the pid file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_spawn.c b/sysdeps/unix/sysv/linux/pidfd_spawn.c
index 2735315..6d5a1bd 100644
--- a/sysdeps/unix/sysv/linux/pidfd_spawn.c
+++ b/sysdeps/unix/sysv/linux/pidfd_spawn.c
@@ -1,5 +1,5 @@
/* pidfd_spawn - Spawn a process and return a PID file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_spawnp.c b/sysdeps/unix/sysv/linux/pidfd_spawnp.c
index 5175a6f..f2af942 100644
--- a/sysdeps/unix/sysv/linux/pidfd_spawnp.c
+++ b/sysdeps/unix/sysv/linux/pidfd_spawnp.c
@@ -1,5 +1,5 @@
/* pidfd_spawnp - Spawn a process and return a PID file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pipe.c b/sysdeps/unix/sysv/linux/pipe.c
index e47e3fb..2955f41 100644
--- a/sysdeps/unix/sysv/linux/pipe.c
+++ b/sysdeps/unix/sysv/linux/pipe.c
@@ -1,5 +1,5 @@
/* Create create pipe. Linux generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pkey_get.c b/sysdeps/unix/sysv/linux/pkey_get.c
index 743bd09..5036c93 100644
--- a/sysdeps/unix/sysv/linux/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/pkey_get.c
@@ -1,5 +1,5 @@
/* Obtaining the thread memory protection key, generic stub.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,13 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/pkey_mprotect.c b/sysdeps/unix/sysv/linux/pkey_mprotect.c
index b7afa79..376c728 100644
--- a/sysdeps/unix/sysv/linux/pkey_mprotect.c
+++ b/sysdeps/unix/sysv/linux/pkey_mprotect.c
@@ -1,5 +1,5 @@
/* mprotect with a memory protection key.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#include <sysdep.h>
int
-pkey_mprotect (void *addr, size_t len, int prot, int pkey)
+__pkey_mprotect (void *addr, size_t len, int prot, int pkey)
{
if (pkey == -1)
/* If the key is -1, the system call is precisely equivalent to
@@ -30,3 +30,5 @@ pkey_mprotect (void *addr, size_t len, int prot, int pkey)
return __mprotect (addr, len, prot);
return INLINE_SYSCALL_CALL (pkey_mprotect, addr, len, prot, pkey);
}
+libc_hidden_def (__pkey_mprotect)
+weak_alias (__pkey_mprotect, pkey_mprotect)
diff --git a/sysdeps/unix/sysv/linux/pkey_set.c b/sysdeps/unix/sysv/linux/pkey_set.c
index d5d59e3..a3b33ba 100644
--- a/sysdeps/unix/sysv/linux/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the thread memory protection key, generic stub.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,13 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_set (int key, unsigned int access_rights)
+__pkey_set (int key, unsigned int access_restrictions)
{
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index 76c967d..8ee6621 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,5 +1,5 @@
/* Linux poll implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
index 150f5df..33d9b02 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
index 681bc20..b2dc2f8 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate.c b/sysdeps/unix/sysv/linux/posix_fallocate.c
index fff373c..c0ab457 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate64.c b/sysdeps/unix/sysv/linux/posix_fallocate64.c
index f9b122b..8dfbcb1 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate64.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_madvise.c b/sysdeps/unix/sysv/linux/posix_madvise.c
index ae1a712..6802c3f 100644
--- a/sysdeps/unix/sysv/linux/posix_madvise.c
+++ b/sysdeps/unix/sysv/linux/posix_madvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index 24827ef..cddb624 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -13,6 +13,10 @@ gen-as-const-headers += ucontext_i.sym
endif
ifeq ($(subdir),elf)
+dl-routines += \
+ dl-hwcap-info \
+ # dl-routines
+
# Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls.
ifeq ($(have-tls-get-addr-optimize),yes)
LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
index d31d5c2..d8339e6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
index 2f17fe9..24fd3b7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
index 4044c00..267fa09 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/powerpc version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,17 +32,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 10
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- unsigned char c_line; /* line discipline */
- unsigned char c_cc[NCC]; /* control characters */
-};
-
/* modem lines */
#define TIOCM_LE 0x001
#define TIOCM_DTR 0x002
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
index d2a2b5b..0c281d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition. Linux/powerpc version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
index 2b392cc..99c8e52 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/PowerPC version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
index 21843fb..7749db6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
@@ -1,5 +1,5 @@
/* Facilities specific to the PowerPC architecture on Linux
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
index 4e21788..501464b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. PowerPC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
index 509919d..540cdbb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/PPC version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h b/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
index 85544aa..d2d6216 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux powerpc architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
index 2c198eb..17a17ce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
index 0d3e095..fee5674 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for POWER.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
index 2cf3315..f0721f9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
index c5f395a..20f1661 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
index 6607bb0..a90d581 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -35,5 +35,7 @@
#define CLOCAL 00100000
#ifdef __USE_MISC
-# define ADDRB 04000000000
+# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
index b5e066d..ef076dc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
index 9f6b0ad5..9b67040 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
index 99a0bd0..67f52df 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h
index 6862050..7bcbba4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,29 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
-# define CBAUD 0000377
-# define CBAUDEX 0000020
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
+# define CBAUD 000000377
+# define CBAUDEX 000000020
+# define CIBAUD 077600000
+# define IBSHIFT 16
#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-#define __MAX_BAUD B4000000
+#define __B57600 00020
+#define __B115200 00021
+#define __B230400 00022
+#define __B460800 00023
+#define __B500000 00024
+#define __B576000 00025
+#define __B921600 00026
+#define __B1000000 00027
+#define __B1152000 00030
+#define __B1500000 00031
+#define __B2000000 00032
+#define __B2500000 00033
+#define __B3000000 00034
+#define __B3500000 00035
+#define __B4000000 00036
+#define __BOTHER 00037
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
index aec8ac9..fe74858 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
@@ -1,5 +1,5 @@
/* termios baud platform specific definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h b/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
index d25cff2..31edb4b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/PowerPC.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
index 44ae082..43e1827 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/PowerPC implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
index ccee57c..d5c40f5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* PowerPC implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
index 58145d0..9a751fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/PowerPC implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h b/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
index 065ede2..9db989d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. PowerPC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h b/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h
new file mode 100644
index 0000000..709882d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h
@@ -0,0 +1,65 @@
+/* Architecture specific code for pthread cancellation handling.
+ Linux/PowerPC version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NPTL_CANCELLATION_PC_CHECK
+#define _NPTL_CANCELLATION_PC_CHECK
+
+#include <sigcontextinfo.h>
+
+/* For syscalls with side-effects (e.g read that might return partial read),
+ the kernel cannot restart the syscall when interrupted by a signal, it must
+ return from the call with whatever partial result. In this case, the saved
+ program counter is set just after the syscall instruction, so the SIGCANCEL
+ handler should not act on cancellation.
+
+ The __syscall_cancel_arch function, used for all cancellable syscalls,
+ contains two extra markers, __syscall_cancel_arch_start and
+ __syscall_cancel_arch_end. The former points to just before the initial
+ conditional branch that checks if the thread has received a cancellation
+ request, while former points to the instruction after the one responsible
+ to issue the syscall.
+
+ The function check if the program counter (PC) from ucontext_t CTX is
+ within the start and then end boundary from the __syscall_cancel_arch
+ bridge. Return TRUE if the PC is within the boundary, meaning the
+ syscall does not have any side effects; or FALSE otherwise. */
+
+static __always_inline bool
+cancellation_pc_check (void *ctx)
+{
+ /* Both are defined in syscall_cancel.S. */
+ extern const char __syscall_cancel_arch_start[1];
+ extern const char __syscall_cancel_arch_end_sc[1];
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ extern const char __syscall_cancel_arch_end_svc[1];
+#endif
+
+ uintptr_t pc = sigcontext_get_pc (ctx);
+
+ return pc >= (uintptr_t) __syscall_cancel_arch_start
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ && THREAD_GET_HWCAP() & PPC_FEATURE2_SCV
+ ? pc < (uintptr_t) __syscall_cancel_arch_end_sc
+ : pc < (uintptr_t) __syscall_cancel_arch_end_svc;
+#else
+ && pc < (uintptr_t) __syscall_cancel_arch_end_sc;
+#endif
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/configure b/sysdeps/unix/sysv/linux/powerpc/configure
index 61ae675..ef2055d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/configure
+++ b/sysdeps/unix/sysv/linux/powerpc/configure
@@ -40,48 +40,7 @@ fi
printf "%s\n" "$libc_cv_mlong_double_128ibm" >&6; }
if test "$libc_cv_mlong_double_128ibm" = no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5
-printf %s "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... " >&6; }
-if test ${libc_cv_mabi_ibmlongdouble+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <float.h>
-int
-main (void)
-{
-
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- libc_cv_mabi_ibmlongdouble=yes
-else case e in #(
- e) libc_cv_mabi_ibmlongdouble=no ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- CFLAGS="$save_CFLAGS" ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mabi_ibmlongdouble" >&5
-printf "%s\n" "$libc_cv_mabi_ibmlongdouble" >&6; }
-
- if test "$libc_cv_mabi_ibmlongdouble" = yes; then
- CFLAGS="$CFLAGS -mabi=ibmlongdouble"
- else
- as_fn_error $? "this configuration requires -mlong-double-128 IBM extended format support" "$LINENO" 5
- fi
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-tls-get-addr-optimize" >&5
diff --git a/sysdeps/unix/sysv/linux/powerpc/configure.ac b/sysdeps/unix/sysv/linux/powerpc/configure.ac
index 8d2ec60..42347a6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/configure.ac
+++ b/sysdeps/unix/sysv/linux/powerpc/configure.ac
@@ -16,24 +16,7 @@ long double foobar (long double x) { return x; }]])],
CFLAGS="$save_CFLAGS"])
if test "$libc_cv_mlong_double_128ibm" = no; then
- AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble,
- libc_cv_mabi_ibmlongdouble, [dnl
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <float.h>]], [[
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }]])],
- libc_cv_mabi_ibmlongdouble=yes,
- libc_cv_mabi_ibmlongdouble=no)
- CFLAGS="$save_CFLAGS"])
-
- if test "$libc_cv_mabi_ibmlongdouble" = yes; then
- CFLAGS="$CFLAGS -mabi=ibmlongdouble"
- else
- AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support])
- fi
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
fi
LIBC_LINKER_FEATURE([--no-tls-get-addr-optimize], [-Wl,--no-tls-get-addr-optimize],
diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
index a947d62..88fe55f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,19 @@
#include <cpu-features.h>
#include <elf/dl-tunables.h>
#include <dl-tunables-parse.h>
+#include <dl-hwcap-info.h>
#include <unistd.h>
#include <string.h>
+#include <ldsodefs.h>
+
+static void set_hwcap_bit (unsigned long int *hwcap, bool disable,
+ unsigned long int tcb_value, unsigned int value)
+{
+ if (disable)
+ *hwcap &= ~value;
+ else
+ *hwcap |= tcb_value & value;
+}
static void
TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
@@ -55,32 +66,27 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
continue;
size_t offset = 0;
- for (int i = 0; i < array_length (hwcap_tunables); ++i)
+ for (int i = 0; i < __dl_hwcap_info_size; ++i)
{
- const char *hwcap_name = hwcap_names + offset;
+ const char *hwcap_name = __dl_hwcap_names + offset;
size_t hwcap_name_len = strlen (hwcap_name);
/* Check the tunable name on the supported list. */
if (tunable_str_comma_strcmp (&t, hwcap_name, hwcap_name_len))
{
- /* Update the hwcap and hwcap2 bits. */
- if (t.disable)
+ switch (__dl_hwcap_info[i].hwcap)
{
- /* Id is 1 for hwcap2 tunable. */
- if (hwcap_tunables[i].id)
- cpu_features->hwcap2 &= ~(hwcap_tunables[i].mask);
- else
- cpu_features->hwcap &= ~(hwcap_tunables[i].mask);
- }
- else
- {
- /* Enable the features and also check that no unsupported
- features were enabled by user. */
- if (hwcap_tunables[i].id)
- cpu_features->hwcap2 |= (tcbv_hwcap2 & hwcap_tunables[i].mask);
- else
- cpu_features->hwcap |= (tcbv_hwcap & hwcap_tunables[i].mask);
+ case AT_HWCAP:
+ set_hwcap_bit (&cpu_features->hwcap, t.disable, tcbv_hwcap,
+ __dl_hwcap_info[i].value);
+ break;
+
+ case AT_HWCAP2:
+ set_hwcap_bit (&cpu_features->hwcap2, t.disable, tcbv_hwcap2,
+ __dl_hwcap_info[i].value);
+ break;
+
+ /* Ignore unknown values. */
}
- break;
}
offset += hwcap_name_len + 1;
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
index e9eb6a1..f15a803 100644
--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -30,103 +30,4 @@ struct cpu_features
unsigned long int hwcap4;
};
-static const char hwcap_names[] = {
- "4xxmac\0"
- "altivec\0"
- "arch_2_05\0"
- "arch_2_06\0"
- "archpmu\0"
- "booke\0"
- "cellbe\0"
- "dfp\0"
- "efpdouble\0"
- "efpsingle\0"
- "fpu\0"
- "ic_snoop\0"
- "mmu\0"
- "notb\0"
- "pa6t\0"
- "power4\0"
- "power5\0"
- "power5+\0"
- "power6x\0"
- "ppc32\0"
- "ppc601\0"
- "ppc64\0"
- "ppcle\0"
- "smt\0"
- "spe\0"
- "true_le\0"
- "ucache\0"
- "vsx\0"
- "arch_2_07\0"
- "dscr\0"
- "ebb\0"
- "htm\0"
- "htm-nosc\0"
- "htm-no-suspend\0"
- "isel\0"
- "tar\0"
- "vcrypto\0"
- "arch_3_00\0"
- "ieee128\0"
- "darn\0"
- "scv\0"
- "arch_3_1\0"
- "mma\0"
-};
-
-static const struct
-{
- unsigned int mask;
- bool id;
-} hwcap_tunables[] = {
- /* AT_HWCAP tunable masks. */
- { PPC_FEATURE_HAS_4xxMAC, 0 },
- { PPC_FEATURE_HAS_ALTIVEC, 0 },
- { PPC_FEATURE_ARCH_2_05, 0 },
- { PPC_FEATURE_ARCH_2_06, 0 },
- { PPC_FEATURE_PSERIES_PERFMON_COMPAT, 0 },
- { PPC_FEATURE_BOOKE, 0 },
- { PPC_FEATURE_CELL_BE, 0 },
- { PPC_FEATURE_HAS_DFP, 0 },
- { PPC_FEATURE_HAS_EFP_DOUBLE, 0 },
- { PPC_FEATURE_HAS_EFP_SINGLE, 0 },
- { PPC_FEATURE_HAS_FPU, 0 },
- { PPC_FEATURE_ICACHE_SNOOP, 0 },
- { PPC_FEATURE_HAS_MMU, 0 },
- { PPC_FEATURE_NO_TB, 0 },
- { PPC_FEATURE_PA6T, 0 },
- { PPC_FEATURE_POWER4, 0 },
- { PPC_FEATURE_POWER5, 0 },
- { PPC_FEATURE_POWER5_PLUS, 0 },
- { PPC_FEATURE_POWER6_EXT, 0 },
- { PPC_FEATURE_32, 0 },
- { PPC_FEATURE_601_INSTR, 0 },
- { PPC_FEATURE_64, 0 },
- { PPC_FEATURE_PPC_LE, 0 },
- { PPC_FEATURE_SMT, 0 },
- { PPC_FEATURE_HAS_SPE, 0 },
- { PPC_FEATURE_TRUE_LE, 0 },
- { PPC_FEATURE_UNIFIED_CACHE, 0 },
- { PPC_FEATURE_HAS_VSX, 0 },
-
- /* AT_HWCAP2 tunable masks. */
- { PPC_FEATURE2_ARCH_2_07, 1 },
- { PPC_FEATURE2_HAS_DSCR, 1 },
- { PPC_FEATURE2_HAS_EBB, 1 },
- { PPC_FEATURE2_HAS_HTM, 1 },
- { PPC_FEATURE2_HTM_NOSC, 1 },
- { PPC_FEATURE2_HTM_NO_SUSPEND, 1 },
- { PPC_FEATURE2_HAS_ISEL, 1 },
- { PPC_FEATURE2_HAS_TAR, 1 },
- { PPC_FEATURE2_HAS_VEC_CRYPTO, 1 },
- { PPC_FEATURE2_ARCH_3_00, 1 },
- { PPC_FEATURE2_HAS_IEEE128, 1 },
- { PPC_FEATURE2_DARN, 1 },
- { PPC_FEATURE2_SCV, 1 },
- { PPC_FEATURE2_ARCH_3_1, 1 },
- { PPC_FEATURE2_MMA, 1 },
-};
-
#endif /* __CPU_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h b/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
index e47dac6..ddb9328 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing. Linux/PPC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c
new file mode 100644
index 0000000..1178828
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c
@@ -0,0 +1,117 @@
+/* HWCAP string information. PowerPC version.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <dl-hwcap-info.h>
+
+const char __dl_hwcap_names[] = {
+ "4xxmac\0"
+ "altivec\0"
+ "arch_2_05\0"
+ "arch_2_06\0"
+ "archpmu\0"
+ "booke\0"
+ "cellbe\0"
+ "dfp\0"
+ "efpdouble\0"
+ "efpsingle\0"
+ "fpu\0"
+ "ic_snoop\0"
+ "mmu\0"
+ "notb\0"
+ "pa6t\0"
+ "power4\0"
+ "power5\0"
+ "power5+\0"
+ "power6x\0"
+ "ppc32\0"
+ "ppc601\0"
+ "ppc64\0"
+ "ppcle\0"
+ "smt\0"
+ "spe\0"
+ "true_le\0"
+ "ucache\0"
+ "vsx\0"
+ "arch_2_07\0"
+ "dscr\0"
+ "ebb\0"
+ "htm\0"
+ "htm-nosc\0"
+ "htm-no-suspend\0"
+ "isel\0"
+ "tar\0"
+ "vcrypto\0"
+ "arch_3_00\0"
+ "ieee128\0"
+ "darn\0"
+ "scv\0"
+ "arch_3_1\0"
+ "mma\0"
+};
+
+const struct hwcap_info_t __dl_hwcap_info[] =
+{
+ /* AT_HWCAP tunable masks. */
+ { PPC_FEATURE_HAS_4xxMAC, AT_HWCAP },
+ { PPC_FEATURE_HAS_ALTIVEC, AT_HWCAP },
+ { PPC_FEATURE_ARCH_2_05, AT_HWCAP },
+ { PPC_FEATURE_ARCH_2_06, AT_HWCAP },
+ { PPC_FEATURE_PSERIES_PERFMON_COMPAT, AT_HWCAP },
+ { PPC_FEATURE_BOOKE, AT_HWCAP },
+ { PPC_FEATURE_CELL_BE, AT_HWCAP },
+ { PPC_FEATURE_HAS_DFP, AT_HWCAP },
+ { PPC_FEATURE_HAS_EFP_DOUBLE, AT_HWCAP },
+ { PPC_FEATURE_HAS_EFP_SINGLE, AT_HWCAP },
+ { PPC_FEATURE_HAS_FPU, AT_HWCAP },
+ { PPC_FEATURE_ICACHE_SNOOP, AT_HWCAP },
+ { PPC_FEATURE_HAS_MMU, AT_HWCAP },
+ { PPC_FEATURE_NO_TB, AT_HWCAP },
+ { PPC_FEATURE_PA6T, AT_HWCAP },
+ { PPC_FEATURE_POWER4, AT_HWCAP },
+ { PPC_FEATURE_POWER5, AT_HWCAP },
+ { PPC_FEATURE_POWER5_PLUS, AT_HWCAP },
+ { PPC_FEATURE_POWER6_EXT, AT_HWCAP },
+ { PPC_FEATURE_32, AT_HWCAP },
+ { PPC_FEATURE_601_INSTR, AT_HWCAP },
+ { PPC_FEATURE_64, AT_HWCAP },
+ { PPC_FEATURE_PPC_LE, AT_HWCAP },
+ { PPC_FEATURE_SMT, AT_HWCAP },
+ { PPC_FEATURE_HAS_SPE, AT_HWCAP },
+ { PPC_FEATURE_TRUE_LE, AT_HWCAP },
+ { PPC_FEATURE_UNIFIED_CACHE, AT_HWCAP },
+ { PPC_FEATURE_HAS_VSX, AT_HWCAP },
+
+ /* AT_HWCAP2 tunable masks. */
+ { PPC_FEATURE2_ARCH_2_07, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_DSCR, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_EBB, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_HTM, AT_HWCAP2 },
+ { PPC_FEATURE2_HTM_NOSC, AT_HWCAP2 },
+ { PPC_FEATURE2_HTM_NO_SUSPEND, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_ISEL, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_TAR, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_VEC_CRYPTO, AT_HWCAP2 },
+ { PPC_FEATURE2_ARCH_3_00, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_IEEE128, AT_HWCAP2 },
+ { PPC_FEATURE2_DARN, AT_HWCAP2 },
+ { PPC_FEATURE2_SCV, AT_HWCAP2 },
+ { PPC_FEATURE2_ARCH_3_1, AT_HWCAP2 },
+ { PPC_FEATURE2_MMA, AT_HWCAP2 },
+};
+
+size_t __dl_hwcap_info_size = array_length (__dl_hwcap_info);
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h
index c0f2bed..194f40c 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h
@@ -1,6 +1,5 @@
-/* Optimized strcasecmp_l implementation for POWER7.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+/* HWCAP string information. PowerPC version.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -16,11 +15,20 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#ifndef _DL_HWCAP_INFO_H
+#define _DL_HWCAP_INFO_H
-#include <string.h>
+#include <stddef.h>
+#include <sys/auxv.h>
-#define __strncasecmp __strncasecmp_power7
+extern const char __dl_hwcap_names[] attribute_hidden;
-extern __typeof (strncasecmp) __strncasecmp_power7 attribute_hidden;
+struct hwcap_info_t
+{
+ unsigned int value;
+ int hwcap;
+};
+extern const struct hwcap_info_t __dl_hwcap_info[] attribute_hidden;
+extern size_t __dl_hwcap_info_size attribute_hidden;
-#include <string/strncase.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
index a85d25c..451897b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
#include <pthreadP.h>
#include <elision-conf.h>
#include <unistd.h>
-#include <dl-procinfo.h>
+#include <ldsodefs.h>
#define TUNABLE_NAMESPACE elision
#include <elf/dl-tunables.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
index bb7cbb4..11bc7ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
index 0715f69..8eb7c3e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
index 0b7d5bc..6442408 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
index 2eaa413..d252799 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
index 40322ab..7741514 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
index 12b609c..0c64a62 100644
--- a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
@@ -1,5 +1,5 @@
/* Get the frequency of the time base.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
index 41a8f4e..1ff9f1e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
index a256c65..672b197 100644
--- a/sysdeps/unix/sysv/linux/powerpc/htm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
@@ -2,7 +2,7 @@
compilers and assemblers that do not support the intrinsics and instructions
yet.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h b/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
index 6f68946..94cfd71 100644
--- a/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
+++ b/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
@@ -1,5 +1,5 @@
-/* Linux internal definitions for ioctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Linux internal definitions for ioctl. powerpc version.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,27 +17,40 @@
<https://www.gnu.org/licenses/>. */
#include <termios.h>
+#include <termios_internals.h>
+#include <assert.h>
+
+/* PowerPC quirk: on PowerPC only, ioctl() emulates the TCGETS/TCSETS*
+ ioctls with tcgetattr/tcsetattr using the glibc struct termios.
+ As struct termios2 is the same as the kernel struct termios on PowerPC,
+ simply consider the kernel ones as the termios2 interface, even
+ though the kernel doesn't call it that. */
+
+#define GLIBC_TCGETS _IOR ('t', 19, struct termios)
+#define GLIBC_TCSETS _IOW ('t', 20, struct termios)
+#define GLIBC_TCSETSW _IOW ('t', 21, struct termios)
+#define GLIBC_TCSETSF _IOW ('t', 22, struct termios)
-/* The user-visible size of struct termios has changed. Catch ioctl calls
- using the new-style struct termios, and translate them to old-style. */
static inline bool
__ioctl_arch (int *r, int fd, unsigned long request, void *arg)
{
+ static_assert (GLIBC_TCGETS != KERNEL_TCGETS2,
+ "emulation not possible due to matching ioctl constants");
switch (request)
{
- case TCGETS:
+ case GLIBC_TCGETS:
*r = __tcgetattr (fd, (struct termios *) arg);
break;
- case TCSETS:
+ case GLIBC_TCSETS:
*r = __tcsetattr (fd, TCSANOW, (struct termios *) arg);
break;
- case TCSETSW:
+ case GLIBC_TCSETSW:
*r = __tcsetattr (fd, TCSADRAIN, (struct termios *) arg);
break;
- case TCSETSF:
+ case GLIBC_TCSETSF:
*r = __tcsetattr (fd, TCSAFLUSH, (struct termios *) arg);
break;
diff --git a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
index 0d15f04..24b7202 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. PowerPC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
index 9ddfe82..6e5adb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. PowerPC version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
deleted file mode 100644
index 6047297..0000000
--- a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- cc_t c_line; /* line discipline */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
- };
-
-#define _HAVE_C_ISPEED 1
-#define _HAVE_C_OSPEED 1
-
-/* We have the kernel termios structure, so we can presume this code knows
- what it's doing... */
-
-#undef TCGETS
-#undef TCSETS
-#undef TCSETSW
-#undef TCSETSF
-#define TCGETS _IOR ('t', 19, struct __kernel_termios)
-#define TCSETS _IOW ('t', 20, struct __kernel_termios)
-#define TCSETSW _IOW ('t', 21, struct __kernel_termios)
-#define TCSETSF _IOW ('t', 22, struct __kernel_termios)
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
index 6a00cd8..852efce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.h b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
index 309eef3..f137cd3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
@@ -1,5 +1,5 @@
/* PowerPC definitions for libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
index 3fe5252..b976355 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
@@ -1,5 +1,5 @@
/* Resolve function pointers to VDSO functions.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c b/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
index 08545e3..da2467e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions for removed symbol versions. powerpc version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h b/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
index 0db0f0d..19da93d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. PowerpC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
index 9255568..fca4423 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
index 206d9fd..c371df8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
@@ -130,6 +130,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 212
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -168,6 +169,7 @@
#define __NR_listen 329
#define __NR_listmount 458
#define __NR_listxattr 215
+#define __NR_listxattrat 465
#define __NR_llistxattr 216
#define __NR_lock 53
#define __NR_lookup_dcookie 235
@@ -233,6 +235,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 346
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 286
#define __NR_openat2 437
#define __NR_pause 29
@@ -288,6 +291,7 @@
#define __NR_recvmsg 342
#define __NR_remap_file_pages 239
#define __NR_removexattr 218
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 293
#define __NR_renameat2 357
@@ -353,6 +357,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 209
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index ddd0f46..20b8f8b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
index 7137e06..1a70df5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
index 6f96a17..08dfcae 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9714305..883e66f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -3138,6 +3138,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index cbadcef..7f584d3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1025,3 +1025,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
index 34e6d07..8482e47 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context, powerpc32 common.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
index 06cf8b2..27befc7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
index 6e2a5c2..40b5163 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
index 1f6d0a1..2ab64b5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
@@ -1,5 +1,5 @@
/* Set up a context to call a function.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
index 8ee39fe..c64f9dc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0beb52c..84cd9e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -3183,6 +3183,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index d0078a4..d1cd4b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1024,3 +1024,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
index 09f3c65..e4d161e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
index 53e4c4f..053e939 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
index 7ec73cc..3c78d26 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
@@ -1,5 +1,5 @@
/* Jump to a new context powerpc32 common.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
index 6457871..98241ff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
index 5a397d7..2afd519 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
index 96e4b6f..91efdfc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
index 04ebc31..0461a3f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
index 71b381d..5ada298 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
index 4fe77a3..1f66411 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
@@ -1,5 +1,5 @@
/* Helper functions for manipulating memory protection keys, for powerpc64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
index 19f72a7..df8844d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
@@ -119,6 +119,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 212
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -156,6 +157,7 @@
#define __NR_listen 329
#define __NR_listmount 458
#define __NR_listxattr 215
+#define __NR_listxattrat 465
#define __NR_llistxattr 216
#define __NR_lock 53
#define __NR_lookup_dcookie 235
@@ -218,6 +220,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 346
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 286
#define __NR_openat2 437
#define __NR_pause 29
@@ -270,6 +273,7 @@
#define __NR_recvmsg 342
#define __NR_remap_file_pages 239
#define __NR_removexattr 218
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 293
#define __NR_renameat2 357
@@ -332,6 +336,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 209
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index cfc2ebd..8832568 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2892,6 +2892,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 86fdb9f..bfc5310 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1018,3 +1018,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index 164311d..878c807 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. PowerPC64 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -56,7 +56,6 @@ ENTRY (__clone)
/* Save fn, args, stack across syscall. */
mr r30,r3 /* Function in r30. */
- mr r29,r5 /* Flags in r29. */
mr r31,r6 /* Argument in r31. */
/* 'flags' argument is first parameter to clone syscall.
@@ -77,14 +76,12 @@ ENTRY (__clone)
CHECK_SCV_SUPPORT r28 0f
/* This is equivalent to DO_CALL_SCV, but we cannot use the macro here
because it uses CFI directives and we just called cfi_endproc. */
- mflr r9
- std r9,FRAME_LR_SAVE(r1)
+ mflr r29
.machine "push"
.machine "power9"
scv 0
.machine "pop"
- ld r9,FRAME_LR_SAVE(r1)
- mtlr r9
+ mtlr r29
/* Check for child process. */
/* When using scv, error is indicated by negative r3. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
index 900c354..332f3d9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/powerpc64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -39,14 +39,12 @@
because it uses CFI directives and we just called cfi_endproc. */
# define DO_CLONE3_SVC_CALL(jumpfalse) \
CHECK_SCV_SUPPORT r28 jumpfalse; \
- mflr r9; \
- std r9, FRAME_LR_SAVE(r1); \
+ mflr r31; \
.machine "push"; \
.machine "power9"; \
scv 0; \
.machine "pop"; \
- ld r9, FRAME_LR_SAVE(r1); \
- mtlr r9; \
+ mtlr r31; \
/* With scv an, an error is a value -4095 <= x < 0. */ \
cmpdi cr1, r3, 0; \
b 1f;
@@ -66,13 +64,15 @@ ENTRY(__clone3)
/* Save some regs in the "red zone". */
#ifdef USE_PPC_SCV
- std r28, -24(r1)
- cfi_offset (r28, -24)
+ std r28, -32(r1)
+ cfi_offset (r28, -32)
#endif
- std r29, -16(r1)
- std r30, -8(r1)
- cfi_offset (r29, -16)
- cfi_offset (r30, -8)
+ std r29, -24(r1)
+ std r30, -16(r1)
+ std r31, -8(r1)
+ cfi_offset (r29, -24)
+ cfi_offset (r30, -16)
+ cfi_offset (r31, -8)
/* Save func and arg across syscall. */
mr r30, r5 /* Function in r30. */
@@ -132,16 +132,19 @@ L(parent):
/* Parent. Restore registers & return. */
#ifdef USE_PPC_SCV
- cfi_offset (r28, -24)
- ld r28, -24(r1)
+ cfi_offset (r28, -32)
+ ld r28, -32(r1)
cfi_restore (r28)
#endif
- cfi_offset (r29,-16)
- cfi_offset (r30,-8)
- ld r29, -16(r1)
- ld r30, -8(r1)
+ cfi_offset (r29,-24)
+ cfi_offset (r30,-16)
+ cfi_offset (r31,-8)
+ ld r29, -24(r1)
+ ld r30, -16(r1)
+ ld r31, -8(r1)
cfi_restore (r29)
cfi_restore (r30)
+ cfi_restore (r31)
#ifdef USE_PPC_SCV
beq cr1, 0f
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
index a72f8ce..1b8ae1b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
index d8b938d..8714aea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc64.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
index 50e5704..4cf946d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
index 96d6005..9d8f021 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,9 @@ ENTRY(__novec_getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -139,6 +142,9 @@ ENTRY(__novec_getcontext)
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
PSEUDO_END(__novec_getcontext)
@@ -161,6 +167,9 @@ ENTRY(__getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -377,6 +386,9 @@ L(has_no_vec):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
PSEUDO_END(__getcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
index 5a4bc7f..f34e798 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8c9efc5..b6ff801 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2968,3 +2968,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 34568bd..dedfefc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1366,3 +1366,111 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 __acospiieee128 F
+GLIBC_2.41 __asinpiieee128 F
+GLIBC_2.41 __atan2piieee128 F
+GLIBC_2.41 __atanpiieee128 F
+GLIBC_2.41 __cospiieee128 F
+GLIBC_2.41 __sinpiieee128 F
+GLIBC_2.41 __tanpiieee128 F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 __compoundnieee128 F
+GLIBC_2.42 __pownieee128 F
+GLIBC_2.42 __powrieee128 F
+GLIBC_2.42 __rootnieee128 F
+GLIBC_2.42 __rsqrtieee128 F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
index d91b441..c4e2b75 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub. powerpc64le version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
index 97ea557..7d0cede 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -39,6 +39,9 @@ ENTRY (__makecontext)
addi r6,r1,FRAME_PARM_SAVE+24
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-128(r1)
cfi_adjust_cfa_offset (128)
@@ -181,6 +184,9 @@ L(gotexitcodeaddr):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
END(__makecontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
index 217ecd0..cd4635a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
@@ -1,5 +1,5 @@
/* Reading the per-thread memory protection key, powerpc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
if (key < 0 || key > PKEY_MAX)
{
@@ -40,3 +40,5 @@ pkey_get (int key)
return PKEY_DISABLE_WRITE;
return 0;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
index cc67b0a..371f827 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the per-thread memory protection key, powerpc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sys/mman.h>
int
-pkey_set (int key, unsigned int rights)
+__pkey_set (int key, unsigned int rights)
{
if (key < 0 || key > PKEY_MAX || rights > 3)
{
@@ -46,3 +46,5 @@ pkey_set (int key, unsigned int rights)
pkey_write (amr);
return 0;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
index eb83d21..bd00f43 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
@@ -1,5 +1,5 @@
/* Switch to context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,8 +38,11 @@
ENTRY(__novec_setcontext)
CALL_MCOUNT 1
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
stdu r1,-128(r1)
@@ -184,7 +187,10 @@ L(nv_error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__novec_setcontext)
@@ -197,8 +203,11 @@ compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3)
ENTRY(__setcontext)
CALL_MCOUNT 1
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
stdu r1,-128(r1)
@@ -446,7 +455,10 @@ L(error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__setcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index b7133f0..4d98b4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,8 +40,11 @@ ENTRY(__novec_swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -271,7 +274,10 @@ L(nv_error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__novec_swapcontext)
@@ -287,8 +293,11 @@ ENTRY(__swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -731,7 +740,10 @@ L(error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__swapcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
index 41c4e0a..4018c30 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
index 582aac7..5d25815 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. powerpc64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
index 4fbbc2b..1018f3e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
index d2e0e88..2996d08 100644
--- a/sysdeps/unix/sysv/linux/powerpc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
@@ -1,5 +1,5 @@
/* Special checks on libraries for ldconfig. Linux/PowerPC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
index 5ec1f2b..551f5ea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
+++ b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
@@ -1,5 +1,5 @@
/* Partial initialization of ld.so loaded via static dlopen. powerpc helper.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
index 860c2e3..a96d4d7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
index f8ab6ff..c76a426 100644
--- a/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
index 605ba3f..860a857 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/PowerPC version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index 8fe3975..0807a29 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
index 1b207a3..529110c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S
index 9d0cb54..ff33dd4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S b/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S
new file mode 100644
index 0000000..33b0b7c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S
@@ -0,0 +1,86 @@
+/* Cancellable syscall wrapper. Linux/powerpc version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [r3] __syscall_cancel_arch (int *cancelhandling [r3],
+ long int nr [r4],
+ long int arg1 [r5],
+ long int arg2 [r6],
+ long int arg3 [r7],
+ long int arg4 [r8],
+ long int arg5 [r9],
+ long int arg6 [r10]) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ lwz r0,0(r3)
+ andi. r0,r0,TCB_CANCELED_BITMASK
+ bne 1f
+
+ /* Issue a 6 argument syscall, the nr [r4] being the syscall
+ number. */
+ mr r0,r4
+ mr r3,r5
+ mr r4,r6
+ mr r5,r7
+ mr r6,r8
+ mr r7,r9
+ mr r8,r10
+
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ CHECK_SCV_SUPPORT r9 0f
+
+ stdu r1, -SCV_FRAME_SIZE(r1)
+ cfi_adjust_cfa_offset (SCV_FRAME_SIZE)
+ .machine "push"
+ .machine "power9"
+ scv 0
+ .machine "pop"
+ .globl __syscall_cancel_arch_end_svc
+__syscall_cancel_arch_end_svc:
+ ld r9, SCV_FRAME_SIZE + FRAME_LR_SAVE(r1)
+ mtlr r9
+ addi r1, r1, SCV_FRAME_SIZE
+ cfi_restore (lr)
+ li r9, -4095
+ cmpld r3, r9
+ bnslr+
+ neg r3,r3
+ blr
+0:
+#endif
+ sc
+ .globl __syscall_cancel_arch_end_sc
+__syscall_cancel_arch_end_sc:
+ bnslr+
+ neg r3,r3
+ blr
+
+ /* Although the __syscall_do_cancel do not return, we need to stack
+ being set correctly for unwind. */
+1:
+ TAIL_CALL_NO_RETURN (__syscall_do_cancel)
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysconf.c b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
index f769a21..7d2b00b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
@@ -1,5 +1,5 @@
/* Get system-specific information at run-time. Linux/powerpc version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
index a7a55c0..21d48cff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
index a69b7db..929784d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux PowerPC generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,18 @@
#undef SYS_ify
#define SYS_ify(syscall_name) __NR_##syscall_name
+#define tostring(s) #s
+#define stringify(s) tostring(s)
+
+#ifdef _ARCH_PWR4
+/* Power4 and later cpus introduced a faster instruction to copy one
+ CR field, rather than the slower microcoded mfcr which copies all
+ CR fields. */
+# define MFCR0(REG) "mfocrf " stringify(REG) ",0x80"
+#else
+# define MFCR0(REG) "mfcr " stringify(REG)
+#endif
+
/* Define a macro which expands inline into the wrapper code for a system
call. This use is for internal calls that do not need to handle errors
normally. It will never touch errno. This returns just what the kernel
@@ -52,7 +64,7 @@
__asm__ __volatile__ \
("mtctr %0\n\t" \
"bctrl\n\t" \
- "mfcr %0\n\t" \
+ MFCR0(%0) "\n\t" \
"0:" \
: "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), \
"+r" (r7), "+r" (r8) \
@@ -83,11 +95,10 @@
"scv 0\n\t" \
".machine \"pop\"\n\t" \
"0:" \
- : "=&r" (r0), \
- "=&r" (r3), "=&r" (r4), "=&r" (r5), \
- "=&r" (r6), "=&r" (r7), "=&r" (r8) \
- : ASM_INPUT_##nr \
- : "r9", "r10", "r11", "r12", \
+ : "+r" (r0), \
+ "+r" (r3), "+r" (r4), "+r" (r5), \
+ "+r" (r6), "+r" (r7), "+r" (r8) \
+ : : "r9", "r10", "r11", "r12", \
"cr0", "cr1", "cr5", "cr6", "cr7", \
"xer", "lr", "ctr", "memory"); \
r3; \
@@ -97,13 +108,12 @@
({ \
__asm__ __volatile__ \
("sc\n\t" \
- "mfcr %0\n\t" \
+ MFCR0(%0) "\n\t" \
"0:" \
- : "=&r" (r0), \
- "=&r" (r3), "=&r" (r4), "=&r" (r5), \
- "=&r" (r6), "=&r" (r7), "=&r" (r8) \
- : ASM_INPUT_##nr \
- : "r9", "r10", "r11", "r12", \
+ : "+r" (r0), \
+ "+r" (r3), "+r" (r4), "+r" (r5), \
+ "+r" (r6), "+r" (r7), "+r" (r8) \
+ : : "r9", "r10", "r11", "r12", \
"xer", "cr0", "ctr", "memory"); \
r0 & (1 << 28) ? -r3 : r3; \
})
@@ -199,14 +209,6 @@
__illegally_sized_syscall_arg6 (); \
r8 = _arg6
-#define ASM_INPUT_0 "0" (r0)
-#define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
-#define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
-#define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
-#define ASM_INPUT_4 ASM_INPUT_3, "4" (r6)
-#define ASM_INPUT_5 ASM_INPUT_4, "5" (r7)
-#define ASM_INPUT_6 ASM_INPUT_5, "6" (r8)
-
/* List of system calls which are supported as vsyscalls. */
#define VDSO_NAME "LINUX_2.6.15"
#define VDSO_HASH 123718565
@@ -223,5 +225,6 @@
#define HAVE_TIME_VSYSCALL "__kernel_time"
#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
#define HAVE_GET_TBFREQ "__kernel_get_tbfreq"
+#define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
#endif /* _LINUX_POWERPC_SYSDEP_H */
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
index 455a244..4298cab 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase_freq() for architecture changes
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
index 6610ac1..a720c54 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase_freq() for architecture changes
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
index 31d055f..2dd4770 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
@@ -1,5 +1,5 @@
/* Check use of sysconf() for cache geometries.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c
index 96ae60b..41c09c7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/time.c
+++ b/sysdeps/unix/sysv/linux/powerpc/time.c
@@ -1,5 +1,5 @@
/* time system call for Linux/PowerPC.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c b/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
index f2fee35..2b0dc45 100644
--- a/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
+++ b/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
@@ -1,5 +1,5 @@
/* Tests for powerpc GLIBC_TUNABLES=glibc.cpu.hwcaps filter.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c
index 39e7800..8067050 100644
--- a/sysdeps/unix/sysv/linux/ppoll.c
+++ b/sysdeps/unix/sysv/linux/ppoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ppoll_chk.c b/sysdeps/unix/sysv/linux/ppoll_chk.c
index 1a4a793..3a1cb5e 100644
--- a/sysdeps/unix/sysv/linux/ppoll_chk.c
+++ b/sysdeps/unix/sysv/linux/ppoll_chk.c
@@ -1,5 +1,5 @@
/* Fortify ppoll implementation. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
index ff2c5da..b3bb0dc 100644
--- a/sysdeps/unix/sysv/linux/pread.c
+++ b/sysdeps/unix/sysv/linux/pread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
index fd55c8b..5fbf14b 100644
--- a/sysdeps/unix/sysv/linux/pread64.c
+++ b/sysdeps/unix/sysv/linux/pread64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread64_nocancel.c b/sysdeps/unix/sysv/linux/pread64_nocancel.c
index bb685f2..a050f4f 100644
--- a/sysdeps/unix/sysv/linux/pread64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/pread64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux pread64() syscall implementation -- non-cancellable.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
index c58ee98..0887090 100644
--- a/sysdeps/unix/sysv/linux/preadv.c
+++ b/sysdeps/unix/sysv/linux/preadv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c
index 55f9603..7a39aff 100644
--- a/sysdeps/unix/sysv/linux/preadv2.c
+++ b/sysdeps/unix/sysv/linux/preadv2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv64.c b/sysdeps/unix/sysv/linux/preadv64.c
index 3386fdb..6039fdf 100644
--- a/sysdeps/unix/sysv/linux/preadv64.c
+++ b/sysdeps/unix/sysv/linux/preadv64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c
index 2dd52ef..2effbef 100644
--- a/sysdeps/unix/sysv/linux/preadv64v2.c
+++ b/sysdeps/unix/sysv/linux/preadv64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2 (LFS version).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prlimit.c b/sysdeps/unix/sysv/linux/prlimit.c
index 1188b3a..65b9f01 100644
--- a/sysdeps/unix/sysv/linux/prlimit.c
+++ b/sysdeps/unix/sysv/linux/prlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prlimit64.c b/sysdeps/unix/sysv/linux/prlimit64.c
index f34f536..199d639 100644
--- a/sysdeps/unix/sysv/linux/prlimit64.c
+++ b/sysdeps/unix/sysv/linux/prlimit64.c
@@ -1,5 +1,5 @@
/* Get/set resource limits. Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/process_vm_readv.c b/sysdeps/unix/sysv/linux/process_vm_readv.c
index 23e6b08..47f9857 100644
--- a/sysdeps/unix/sysv/linux/process_vm_readv.c
+++ b/sysdeps/unix/sysv/linux/process_vm_readv.c
@@ -1,5 +1,5 @@
/* process_vm_readv - Linux specific syscall.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/process_vm_writev.c b/sysdeps/unix/sysv/linux/process_vm_writev.c
index 308e9ed..09b50e6 100644
--- a/sysdeps/unix/sysv/linux/process_vm_writev.c
+++ b/sysdeps/unix/sysv/linux/process_vm_writev.c
@@ -1,5 +1,5 @@
/* process_vm_writev - Linux specific syscall.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/procutils.c b/sysdeps/unix/sysv/linux/procutils.c
index 86d3d37..7399345 100644
--- a/sysdeps/unix/sysv/linux/procutils.c
+++ b/sysdeps/unix/sysv/linux/procutils.c
@@ -1,5 +1,5 @@
/* Utilities functions to read/parse Linux procfs and sysfs.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/procutils.h b/sysdeps/unix/sysv/linux/procutils.h
index acf1ec5..7a90187 100644
--- a/sysdeps/unix/sysv/linux/procutils.h
+++ b/sysdeps/unix/sysv/linux/procutils.h
@@ -1,5 +1,5 @@
/* Utilities functions to read/parse Linux procfs and sysfs.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prof-freq.c b/sysdeps/unix/sysv/linux/prof-freq.c
index 5b35c1a..ec6effa 100644
--- a/sysdeps/unix/sysv/linux/prof-freq.c
+++ b/sysdeps/unix/sysv/linux/prof-freq.c
@@ -1,5 +1,5 @@
/* Determine realtime clock frequency.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/profil-counter.h b/sysdeps/unix/sysv/linux/profil-counter.h
index 8da7f59..85359fd 100644
--- a/sysdeps/unix/sysv/linux/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index f973726..6c50b54 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pselect32.c b/sysdeps/unix/sysv/linux/pselect32.c
index 228f551..551fc6c 100644
--- a/sysdeps/unix/sysv/linux/pselect32.c
+++ b/sysdeps/unix/sysv/linux/pselect32.c
@@ -1,5 +1,5 @@
/* Synchronous I/O multiplexing. Linux 32-bit time fallback.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c
index ed3c3a9..5b74846 100644
--- a/sysdeps/unix/sysv/linux/ptrace.c
+++ b/sysdeps/unix/sysv/linux/ptrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ptsname.c b/sysdeps/unix/sysv/linux/ptsname.c
index 98e1ba4..c8455cf 100644
--- a/sysdeps/unix/sysv/linux/ptsname.c
+++ b/sysdeps/unix/sysv/linux/ptsname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
index 812e650..864d2b3 100644
--- a/sysdeps/unix/sysv/linux/pwrite.c
+++ b/sysdeps/unix/sysv/linux/pwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
index ea83423..c1388b0 100644
--- a/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
index d2bbbc1..a277df4 100644
--- a/sysdeps/unix/sysv/linux/pwritev.c
+++ b/sysdeps/unix/sysv/linux/pwritev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c
index 7bdbe57..29c0e90 100644
--- a/sysdeps/unix/sysv/linux/pwritev2.c
+++ b/sysdeps/unix/sysv/linux/pwritev2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev64.c b/sysdeps/unix/sysv/linux/pwritev64.c
index 465f329..9593512 100644
--- a/sysdeps/unix/sysv/linux/pwritev64.c
+++ b/sysdeps/unix/sysv/linux/pwritev64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c
index 58263d0..8328bc7 100644
--- a/sysdeps/unix/sysv/linux/pwritev64v2.c
+++ b/sysdeps/unix/sysv/linux/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2 (LFS version).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/read.c b/sysdeps/unix/sysv/linux/read.c
index b0afd24..cb2f22e 100644
--- a/sysdeps/unix/sysv/linux/read.c
+++ b/sysdeps/unix/sysv/linux/read.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/read_nocancel.c b/sysdeps/unix/sysv/linux/read_nocancel.c
index 3e2e440..38c1d38 100644
--- a/sysdeps/unix/sysv/linux/read_nocancel.c
+++ b/sysdeps/unix/sysv/linux/read_nocancel.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readahead.c b/sysdeps/unix/sysv/linux/readahead.c
index c744bf4..9661cbf 100644
--- a/sysdeps/unix/sysv/linux/readahead.c
+++ b/sysdeps/unix/sysv/linux/readahead.c
@@ -1,5 +1,5 @@
/* Provide kernel hint to read ahead.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readdir.c b/sysdeps/unix/sysv/linux/readdir.c
index 33bae4b..abd1ec5 100644
--- a/sysdeps/unix/sysv/linux/readdir.c
+++ b/sysdeps/unix/sysv/linux/readdir.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux no-LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c
index e6f5108..f4b2cc0 100644
--- a/sysdeps/unix/sysv/linux/readdir64.c
+++ b/sysdeps/unix/sysv/linux/readdir64.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,17 +26,13 @@
#undef __readdir
#undef readdir
-/* Read a directory entry from DIRP. */
-struct dirent64 *
-__readdir64 (DIR *dirp)
+/* Read a directory entry from DIRP. No locking. */
+static struct dirent64 *
+__readdir64_unlocked (DIR *dirp)
{
struct dirent64 *dp;
int saved_errno = errno;
-#if IS_IN (libc)
- __libc_lock_lock (dirp->lock);
-#endif
-
if (dirp->offset >= dirp->size)
{
/* We've emptied out our buffer. Refill it. */
@@ -53,9 +49,6 @@ __readdir64 (DIR *dirp)
do not set errno in that case, to indicate success. */
if (bytes == 0 || errno == ENOENT)
__set_errno (saved_errno);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
return NULL;
}
dirp->size = (size_t) bytes;
@@ -68,10 +61,16 @@ __readdir64 (DIR *dirp)
dirp->offset += dp->d_reclen;
dirp->filepos = dp->d_off;
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
+ return dp;
+}
+/* Read a directory entry from DIRP. */
+struct dirent64 *
+__readdir64 (DIR *dirp)
+{
+ __libc_lock_lock (dirp->lock);
+ struct dirent64 *dp = __readdir64_unlocked (dirp);
+ __libc_lock_unlock (dirp->lock);
return dp;
}
libc_hidden_def (__readdir64)
@@ -99,45 +98,54 @@ __old_readdir64 (DIR *dirp)
struct __old_dirent64 *dp;
int saved_errno = errno;
-#if IS_IN (libc)
__libc_lock_lock (dirp->lock);
-#endif
- if (dirp->offset >= dirp->size)
+ while (1)
{
- /* We've emptied out our buffer. Refill it. */
+ errno = 0;
+ struct dirent64 *newdp = __readdir64_unlocked (dirp);
+ if (newdp == NULL)
+ {
+ if (errno == 0 && dirp->errcode != 0)
+ __set_errno (dirp->errcode);
+ else if (errno == 0)
+ __set_errno (saved_errno);
+ dp = NULL;
+ break;
+ }
- size_t maxread = dirp->allocation;
- ssize_t bytes;
+ /* Convert to the target layout. Use a separate struct and
+ memcpy to side-step aliasing issues. */
+ struct __old_dirent64 result;
+ result.d_ino = newdp->d_ino;
+ result.d_off = newdp->d_off;
+ result.d_reclen = newdp->d_reclen;
+ result.d_type = newdp->d_type;
- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread);
- if (bytes <= 0)
+ /* Check for ino_t overflow. */
+ if (__glibc_unlikely (result.d_ino != newdp->d_ino))
{
- /* Linux may fail with ENOENT on some file systems if the
- directory inode is marked as dead (deleted). POSIX
- treats this as a regular end-of-directory condition, so
- do not set errno in that case, to indicate success. */
- if (bytes == 0 || errno == ENOENT)
- __set_errno (saved_errno);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
- return NULL;
+ dirp->errcode = ENAMETOOLONG;
+ continue;
}
- dirp->size = (size_t) bytes;
- /* Reset the offset into the buffer. */
- dirp->offset = 0;
- }
+ /* Overwrite the fixed-sized part. */
+ dp = (struct __old_dirent64 *) newdp;
+ memcpy (dp, &result, offsetof (struct __old_dirent64, d_name));
- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset];
- dirp->offset += dp->d_reclen;
- dirp->filepos = dp->d_off;
+ /* Move the name. */
+ _Static_assert (offsetof (struct __old_dirent64, d_name)
+ <= offsetof (struct dirent64, d_name),
+ "old struct must be smaller");
+ if (offsetof (struct __old_dirent64, d_name)
+ != offsetof (struct dirent64, d_name))
+ memmove (dp->d_name, newdp->d_name, strlen (newdp->d_name) + 1);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
+ __set_errno (saved_errno);
+ break;
+ }
+ __libc_lock_unlock (dirp->lock);
return dp;
}
libc_hidden_def (__old_readdir64)
diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c
index e87882e..862e569 100644
--- a/sysdeps/unix/sysv/linux/readdir64_r.c
+++ b/sysdeps/unix/sysv/linux/readdir64_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,7 +37,7 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
__libc_lock_lock (dirp->lock);
- do
+ while (1)
{
if (dirp->offset >= dirp->size)
{
@@ -79,26 +79,21 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
dirp->filepos = dp->d_off;
- if (reclen > offsetof (struct dirent64, d_name) + NAME_MAX + 1)
+ if (reclen <= offsetof (struct dirent64, d_name) + NAME_MAX + 1)
+ break;
+
+ /* The record is very long. It could still fit into the
+ caller-supplied buffer if we can skip padding at the end. */
+ size_t namelen = _D_EXACT_NAMLEN (dp);
+ if (namelen <= NAME_MAX)
{
- /* The record is very long. It could still fit into the
- caller-supplied buffer if we can skip padding at the
- end. */
- size_t namelen = _D_EXACT_NAMLEN (dp);
- if (namelen <= NAME_MAX)
- reclen = offsetof (struct dirent64, d_name) + namelen + 1;
- else
- {
- /* The name is too long. Ignore this file. */
- dirp->errcode = ENAMETOOLONG;
- dp->d_ino = 0;
- continue;
- }
+ reclen = offsetof (struct dirent64, d_name) + namelen + 1;
+ break;
}
- /* Skip deleted and ignored files. */
+ /* The name is too long. Ignore this file. */
+ dirp->errcode = ENAMETOOLONG;
}
- while (dp->d_ino == 0);
if (dp != NULL)
{
@@ -135,91 +130,37 @@ attribute_compat_text_section
__old_readdir64_r (DIR *dirp, struct __old_dirent64 *entry,
struct __old_dirent64 **result)
{
- struct __old_dirent64 *dp;
- size_t reclen;
- const int saved_errno = errno;
- int ret;
-
- __libc_lock_lock (dirp->lock);
-
- do
+ while (1)
{
- if (dirp->offset >= dirp->size)
- {
- /* We've emptied out our buffer. Refill it. */
-
- size_t maxread = dirp->allocation;
- ssize_t bytes;
-
- maxread = dirp->allocation;
-
- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread);
- if (bytes <= 0)
- {
- /* On some systems getdents fails with ENOENT when the
- open directory has been rmdir'd already. POSIX.1
- requires that we treat this condition like normal EOF. */
- if (bytes < 0 && errno == ENOENT)
- {
- bytes = 0;
- __set_errno (saved_errno);
- }
- if (bytes < 0)
- dirp->errcode = errno;
-
- dp = NULL;
- break;
- }
- dirp->size = (size_t) bytes;
+ struct dirent64 new_entry;
+ struct dirent64 *newp;
+ int ret = __readdir64_r (dirp, &new_entry, &newp);
- /* Reset the offset into the buffer. */
- dirp->offset = 0;
+ if (ret != 0)
+ return ret;
+ else if (newp == NULL)
+ {
+ *result = NULL;
+ return 0;
}
-
- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset];
-
- reclen = dp->d_reclen;
-
- dirp->offset += reclen;
-
- dirp->filepos = dp->d_off;
-
- if (reclen > offsetof (struct __old_dirent64, d_name) + NAME_MAX + 1)
+ else
{
- /* The record is very long. It could still fit into the
- caller-supplied buffer if we can skip padding at the
- end. */
- size_t namelen = _D_EXACT_NAMLEN (dp);
- if (namelen <= NAME_MAX)
- reclen = offsetof (struct __old_dirent64, d_name) + namelen + 1;
- else
+ entry->d_ino = newp->d_ino;
+ if (entry->d_ino != newp->d_ino)
{
- /* The name is too long. Ignore this file. */
- dirp->errcode = ENAMETOOLONG;
- dp->d_ino = 0;
+ dirp->errcode = EOVERFLOW;
continue;
}
+ size_t namelen = strlen (newp->d_name);
+ entry->d_off = newp->d_off;
+ entry->d_reclen = (offsetof (struct __old_dirent64, d_name)
+ + namelen + 1);
+ entry->d_type = newp->d_type;
+ memcpy (entry->d_name, newp->d_name, namelen + 1);
+ *result = entry;
+ return 0;
}
-
- /* Skip deleted and ignored files. */
}
- while (dp->d_ino == 0);
-
- if (dp != NULL)
- {
- *result = memcpy (entry, dp, reclen);
- entry->d_reclen = reclen;
- ret = 0;
- }
- else
- {
- *result = NULL;
- ret = dirp->errcode;
- }
-
- __libc_lock_unlock (dirp->lock);
-
- return ret;
}
compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1);
diff --git a/sysdeps/unix/sysv/linux/readdir_r.c b/sysdeps/unix/sysv/linux/readdir_r.c
index ffd5262..742317f 100644
--- a/sysdeps/unix/sysv/linux/readdir_r.c
+++ b/sysdeps/unix/sysv/linux/readdir_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux no-LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,14 +25,22 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
{
struct dirent *dp;
size_t reclen;
+ int saved_errno = errno;
__libc_lock_lock (dirp->lock);
while (1)
{
+ /* If errno is changed from 0, the NULL return value indicates
+ an actual error. It overrides a pending ENAMETOOLONG error. */
+ __set_errno (0);
dp = __readdir_unlocked (dirp);
if (dp == NULL)
- break;
+ {
+ if (errno != 0)
+ dirp->errcode = errno;
+ break;
+ }
reclen = dp->d_reclen;
if (reclen <= offsetof (struct dirent, d_name) + NAME_MAX + 1)
@@ -61,6 +69,7 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
__libc_lock_unlock (dirp->lock);
+ __set_errno (saved_errno);
return dp != NULL ? 0 : dirp->errcode;
}
diff --git a/sysdeps/unix/sysv/linux/readlink.c b/sysdeps/unix/sysv/linux/readlink.c
index bb75d20..b7ef989 100644
--- a/sysdeps/unix/sysv/linux/readlink.c
+++ b/sysdeps/unix/sysv/linux/readlink.c
@@ -1,5 +1,5 @@
/* Read value of a symbolic link. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area-fallback.c
index 67975cf..c93ad2a 100644
--- a/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/sysdeps/unix/sysv/linux/readonly-area-fallback.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,11 +23,8 @@
#include <string.h>
#include "libio/libioP.h"
-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
- Return -1 if it is writable. */
-
-int
-__readonly_area (const char *ptr, size_t size)
+enum readonly_error_type
+__readonly_area_fallback (const void *ptr, size_t size)
{
const void *ptr_end = ptr + size;
@@ -42,11 +39,11 @@ __readonly_area (const char *ptr, size_t size)
to the /proc filesystem if it is set[ug]id. There has
been no willingness to change this in the kernel so
far. */
- || errno == EACCES
- /* Process has reached the maximum number of open files. */
- || errno == EMFILE)
- return 1;
- return -1;
+ || errno == EACCES)
+ return readonly_procfs_inaccessible;
+ /* Process has reached the maximum number of open files or another
+ unusual error. */
+ return readonly_procfs_open_fail;
}
/* We need no locking. */
@@ -98,7 +95,5 @@ __readonly_area (const char *ptr, size_t size)
fclose (fp);
free (line);
- /* If the whole area between ptr and ptr_end is covered by read-only
- VMAs, return 1. Otherwise return -1. */
- return size == 0 ? 1 : -1;
+ return size == 0 ? readonly_noerror : readonly_area_writable;
}
diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
index 3eae7e8..8b5c5f1 100644
--- a/sysdeps/unix/sysv/linux/readv.c
+++ b/sysdeps/unix/sysv/linux/readv.c
@@ -1,5 +1,5 @@
/* Linux implementation for readv syscall.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/reboot.c b/sysdeps/unix/sysv/linux/reboot.c
index 2dbf723..b693751 100644
--- a/sysdeps/unix/sysv/linux/reboot.c
+++ b/sysdeps/unix/sysv/linux/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recv.c b/sysdeps/unix/sysv/linux/recv.c
index 6ff79b1..24ee8f7 100644
--- a/sysdeps/unix/sysv/linux/recv.c
+++ b/sysdeps/unix/sysv/linux/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvfrom.c b/sysdeps/unix/sysv/linux/recvfrom.c
index a235355..fd47d31 100644
--- a/sysdeps/unix/sysv/linux/recvfrom.c
+++ b/sysdeps/unix/sysv/linux/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
index 16136f5..3b00bb2 100644
--- a/sysdeps/unix/sysv/linux/recvmmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvmsg.c b/sysdeps/unix/sysv/linux/recvmsg.c
index 034526e..5b4d0e1 100644
--- a/sysdeps/unix/sysv/linux/recvmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmsg.c
@@ -1,5 +1,5 @@
/* Linux recvmsg syscall wrapper.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rename.c b/sysdeps/unix/sysv/linux/rename.c
index 583dcd4..76f7558 100644
--- a/sysdeps/unix/sysv/linux/rename.c
+++ b/sysdeps/unix/sysv/linux/rename.c
@@ -1,5 +1,5 @@
/* Linux implementation for rename function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
index c9a014d..d090ea4 100644
--- a/sysdeps/unix/sysv/linux/renameat.c
+++ b/sysdeps/unix/sysv/linux/renameat.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/renameat2.c b/sysdeps/unix/sysv/linux/renameat2.c
index 0d08eca..ca4c9d7 100644
--- a/sysdeps/unix/sysv/linux/renameat2.c
+++ b/sysdeps/unix/sysv/linux/renameat2.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat2 function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rewinddir.c b/sysdeps/unix/sysv/linux/rewinddir.c
index af85000..40b5e10 100644
--- a/sysdeps/unix/sysv/linux/rewinddir.c
+++ b/sysdeps/unix/sysv/linux/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
index 90283d9..569f434 100644
--- a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. RISC-V version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/environments.h b/sysdeps/unix/sysv/linux/riscv/bits/environments.h
index 1017bf3..652a77b 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
index 8e9bf76..3300b74 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux / RISC-V.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
index 21ae5dc..ba081d7 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/rseq.h b/sysdeps/unix/sysv/linux/riscv/bits/rseq.h
new file mode 100644
index 0000000..8ba8e6c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/bits/rseq.h
@@ -0,0 +1,44 @@
+/* Restartable Sequences Linux riscv architecture header.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <bits/endian.h>
+
+#ifndef _SYS_RSEQ_H
+# error "Never use <bits/rseq.h> directly; include <sys/rseq.h> instead."
+#endif
+
+/* RSEQ_SIG is a signature required before each abort handler code.
+
+ It is a 32-bit value that maps to actual architecture code compiled
+ into applications and libraries. It needs to be defined for each
+ architecture. When choosing this value, it needs to be taken into
+ account that generating invalid instructions may have ill effects on
+ tools like objdump, and may also have impact on the CPU speculative
+ execution efficiency in some cases.
+
+ Select the instruction "csrw mhartid, x0" as the RSEQ_SIG. Unlike
+ other architectures, the ebreak instruction has no immediate field for
+ distinguishing purposes. Hence, ebreak is not suitable as RSEQ_SIG.
+ "csrw mhartid, x0" can also satisfy the RSEQ requirement because it
+ is an uncommon instruction and will raise an illegal instruction
+ exception when executed in all modes. */
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define RSEQ_SIG 0xf1401073
+#else
+/* RSEQ is currently only supported on Little-Endian. */
+#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
index 2f3ee3a..0329651 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
@@ -1,5 +1,5 @@
/* Machine-dependent signal context structure for Linux. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/time64.h b/sysdeps/unix/sysv/linux/riscv/bits/time64.h
index 3f967fe..1275475 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/time64.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/time64.h
@@ -1,5 +1,5 @@
/* bits/time64.h -- underlying types for __time64_t. RISC-V version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/clone.S b/sysdeps/unix/sysv/linux/riscv/clone.S
index b9c843e..1362dd9 100644
--- a/sysdeps/unix/sysv/linux/riscv/clone.S
+++ b/sysdeps/unix/sysv/linux/riscv/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/clone3.S b/sysdeps/unix/sysv/linux/riscv/clone3.S
index c81ee2a..34513c6 100644
--- a/sysdeps/unix/sysv/linux/riscv/clone3.S
+++ b/sysdeps/unix/sysv/linux/riscv/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/RISC-V version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
index 4b6e50f..6e09679 100644
--- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
index a7f959a..368e027 100644
--- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c
+++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing VDSO calls
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/getcontext.S b/sysdeps/unix/sysv/linux/riscv/getcontext.S
index b449d06..86e7a8f 100644
--- a/sysdeps/unix/sysv/linux/riscv/getcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/hwprobe.c b/sysdeps/unix/sysv/linux/riscv/hwprobe.c
index 9159045..bc7f6f3 100644
--- a/sysdeps/unix/sysv/linux/riscv/hwprobe.c
+++ b/sysdeps/unix/sysv/linux/riscv/hwprobe.c
@@ -1,5 +1,5 @@
/* RISC-V hardware feature probing support on Linux
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -23,13 +23,13 @@
#include <sysdep-vdso.h>
int __riscv_hwprobe (struct riscv_hwprobe *pairs, size_t pair_count,
- size_t cpu_count, unsigned long int *cpus,
+ size_t cpusetsize, __RISCV_HWPROBE_CPUS_TYPE cpus,
unsigned int flags)
{
int r;
r = INTERNAL_VSYSCALL (riscv_hwprobe, 5, pairs, pair_count,
- cpu_count, cpus, flags);
+ cpusetsize, cpus.__ul, flags);
/* Negate negative errno values to match pthreads API. */
return -r;
diff --git a/sysdeps/unix/sysv/linux/riscv/kernel-features.h b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
index 022be51..dce5083 100644
--- a/sysdeps/unix/sysv/linux/riscv/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. RISC-V version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/makecontext.c b/sysdeps/unix/sysv/linux/riscv/makecontext.c
index ef8fcb1..3da27dd 100644
--- a/sysdeps/unix/sysv/linux/riscv/makecontext.c
+++ b/sysdeps/unix/sysv/linux/riscv/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. RISC-V version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c b/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
index 9f806d7..1c1deca 100644
--- a/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
+++ b/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. RISCV version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c b/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
index 51d8ace..8544f54 100644
--- a/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
+++ b/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c
index 42a6c04..cf9d0a5 100644
--- a/sysdeps/unix/sysv/linux/riscv/readelflib.c
+++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c
@@ -1,5 +1,5 @@
/* Support for reading ELF files.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
index eb9e57b..1bae763 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
@@ -91,6 +91,7 @@
#define __NR_gettid 178
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -119,6 +120,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -166,6 +168,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -205,6 +208,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -262,6 +266,7 @@
#define __NR_setsockopt 208
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 6397a9c..1771a23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2512,3 +2512,22 @@ GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
GLIBC_2.40 __riscv_hwprobe F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
index 248ca38..9342294 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
@@ -1068,3 +1068,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h b/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
index 1eac18e..1a1ebf8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
@@ -95,6 +95,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -124,6 +125,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -173,6 +175,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -212,6 +215,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -271,6 +275,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 71bbf94..4b48352 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2712,3 +2712,22 @@ GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
GLIBC_2.40 __riscv_hwprobe F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
index c8f976c..76e74c9 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
@@ -1165,3 +1165,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/riscv/setcontext.S b/sysdeps/unix/sysv/linux/riscv/setcontext.S
index 716b8e7..a2de57b 100644
--- a/sysdeps/unix/sysv/linux/riscv/setcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
index 2fd695b..d373867 100644
--- a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* RISC-V definitions for signal handling calling conventions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/swapcontext.S b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
index 2255cca..bf5754c 100644
--- a/sysdeps/unix/sysv/linux/riscv/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
index 2ff14c7..c27e495 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing interface
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h b/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
index 8ecb43b..40415aa 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
@@ -1,5 +1,5 @@
/* RISC-V architecture probe interface
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,6 +21,7 @@
#define _SYS_HWPROBE_H 1
#include <features.h>
+#include <sched.h>
#include <stddef.h>
#include <errno.h>
#ifdef __has_include
@@ -63,22 +64,39 @@ struct riscv_hwprobe {
__BEGIN_DECLS
-extern int __riscv_hwprobe (struct riscv_hwprobe *__pairs, size_t __pair_count,
- size_t __cpu_count, unsigned long int *__cpus,
+#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
+# define __RISCV_HWPROBE_CPUS_TYPE cpu_set_t *
+#else
+/* The fourth argument to __riscv_hwprobe should be a null pointer or a
+ pointer to a cpu_set_t (either the fixed-size type or allocated with
+ CPU_ALLOC). However, early versions of this header file used the
+ argument type unsigned long int *. The transparent union allows
+ the argument to be either cpu_set_t * or unsigned long int * for
+ compatibility. The older header file requiring unsigned long int *
+ can be identified by the lack of the __RISCV_HWPROBE_CPUS_TYPE macro.
+ In C++ and with compilers that do not support transparent unions, the
+ argument type must be cpu_set_t *. */
+typedef union {
+ cpu_set_t *__cs;
+ unsigned long int *__ul;
+} __RISCV_HWPROBE_CPUS_TYPE __attribute__ ((__transparent_union__));
+# define __RISCV_HWPROBE_CPUS_TYPE __RISCV_HWPROBE_CPUS_TYPE
+#endif
+
+extern int __riscv_hwprobe (struct riscv_hwprobe *__pairs,
+ size_t __pair_count, size_t __cpusetsize,
+ __RISCV_HWPROBE_CPUS_TYPE __cpus,
unsigned int __flags)
- __nonnull ((1)) __wur
- __fortified_attr_access (__read_write__, 1, 2)
- __fortified_attr_access (__read_only__, 4, 3);
+ __THROW __nonnull ((1)) __attr_access ((__read_write__, 1, 2));
-/* A pointer to the __riscv_hwprobe vDSO function is passed as the second
+/* A pointer to the __riscv_hwprobe function is passed as the second
argument to ifunc selector routines. Include a function pointer type for
convenience in calling the function in those settings. */
-typedef int (*__riscv_hwprobe_t) (struct riscv_hwprobe *__pairs, size_t __pair_count,
- size_t __cpu_count, unsigned long int *__cpus,
+typedef int (*__riscv_hwprobe_t) (struct riscv_hwprobe *__pairs,
+ size_t __pair_count, size_t __cpusetsize,
+ __RISCV_HWPROBE_CPUS_TYPE __cpus,
unsigned int __flags)
- __nonnull ((1)) __wur
- __fortified_attr_access (__read_write__, 1, 2)
- __fortified_attr_access (__read_only__, 4, 3);
+ __nonnull ((1)) __attr_access ((__read_write__, 1, 2));
/* Helper function usable from ifunc selectors that probes a single key. */
static __inline int
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
index bf6a1b4..a572ec6 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, RISC-V version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/user.h b/sysdeps/unix/sysv/linux/riscv/sys/user.h
index 563ed86..4796e25 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/user.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall.c b/sysdeps/unix/sysv/linux/riscv/syscall.c
index 5fc2695..67eb411 100644
--- a/sysdeps/unix/sysv/linux/riscv/syscall.c
+++ b/sysdeps/unix/sysv/linux/riscv/syscall.c
@@ -1,5 +1,5 @@
/* system call interface. Linux/RISC-V version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S b/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S
new file mode 100644
index 0000000..70339a3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S
@@ -0,0 +1,67 @@
+/* Cancellable syscall wrapper. Linux/riscv version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+#ifdef SHARED
+ .option pic
+#else
+ .option nopic
+#endif
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ lw t1, 0(a0)
+ /* if (*ch & CANCELED_BITMASK) */
+ andi t1, t1, TCB_CANCELED_BITMASK
+ bne t1, zero, 1f
+
+ mv t3, a1
+ mv a0, a2
+ mv a1, a3
+ mv a2, a4
+ mv a3, a5
+ mv a4, a6
+ mv a5, a7
+ mv a7, t3
+ scall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+
+1:
+ addi sp, sp, -16
+ cfi_def_cfa_offset (16)
+ REG_S ra, (16-SZREG)(sp)
+ cfi_offset (ra, -SZREG)
+ call __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/riscv/sysconf.c b/sysdeps/unix/sysv/linux/riscv/sysconf.c
index cd79ec3..47b7b20 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysconf.c
+++ b/sysdeps/unix/sysv/linux/riscv/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.S b/sysdeps/unix/sysv/linux/riscv/sysdep.S
index b782251..b50671b 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.S
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h
index ee015df..05e0e05 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.h
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h
@@ -145,11 +145,12 @@
# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres"
# define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
# else
# define VDSO_NAME "LINUX_5.4"
# define VDSO_HASH 61765876
-/* RV32 does not support the gettime VDSO syscalls. */
+/* RV32 does not support the gettime and getrandom VDSO syscalls. */
# endif
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
index a99322f..d0955be 100644
--- a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
index 20af45b..1e39b7a 100644
--- a/sysdeps/unix/sysv/linux/riscv/vfork.S
+++ b/sysdeps/unix/sysv/linux/riscv/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Linux, RISC-V version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rmdir.c b/sysdeps/unix/sysv/linux/rmdir.c
index fba4bda..0a220a6 100644
--- a/sysdeps/unix/sysv/linux/rmdir.c
+++ b/sysdeps/unix/sysv/linux/rmdir.c
@@ -1,5 +1,5 @@
/* Delete a directory. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h
index 7ea935b..d2ab4cb 100644
--- a/sysdeps/unix/sysv/linux/rseq-internal.h
+++ b/sysdeps/unix/sysv/linux/rseq-internal.h
@@ -1,5 +1,5 @@
/* Restartable Sequences internal API. Linux implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -24,46 +24,111 @@
#include <stdbool.h>
#include <stdio.h>
#include <sys/rseq.h>
+#include <ldsodefs.h>
+#include <thread_pointer.h>
+#include <rseq-access.h>
-/* 32 is the initially required value for the area size. The
- actually used rseq size may be less (20 bytes initially). */
+/* rseq area registered with the kernel. Use a custom definition here to
+ isolate from the system provided header which could lack some fields of the
+ Extended ABI.
+
+ This is only used to get the field offsets and sizes, it should never be
+ used for direct object allocations.
+
+ Access to fields of the Extended ABI beyond the 20 bytes of the original ABI
+ (after 'flags') must be gated by a check of the feature size. */
+struct rseq_area
+{
+ /* Original ABI. */
+ uint32_t cpu_id_start;
+ uint32_t cpu_id;
+ uint64_t rseq_cs;
+ uint32_t flags;
+ /* Extended ABI. */
+ uint32_t node_id;
+ uint32_t mm_cid;
+ /* Flexible array member to discourage direct object allocations. */
+ char end[];
+};
+
+/* Minimum size of the rseq area allocation required by the syscall. The
+ actually used rseq feature size may be less (20 bytes initially). */
#define RSEQ_AREA_SIZE_INITIAL 32
+
+/* Minimum used feature size of the rseq area. */
#define RSEQ_AREA_SIZE_INITIAL_USED 20
-/* The variables are in .data.relro but are not yet write-protected. */
+/* Maximum currently used feature size of the rseq area. */
+#define RSEQ_AREA_SIZE_MAX_USED 28
+
+/* Minimum alignment of the rseq area. */
+#define RSEQ_MIN_ALIGN 32
+
+/* Alignment requirement of the rseq area.
+ Populated from the auxiliary vector with a minimum of '32'.
+ In .data.relro but not yet write-protected. */
+extern size_t _rseq_align attribute_hidden;
+
+/* Size of the active features in the rseq area.
+ Populated from the auxiliary vector with a minimum of '20'.
+ Set to '0' on registration failure of the main thread.
+ In .data.relro but not yet write-protected. */
extern unsigned int _rseq_size attribute_hidden;
+
+/* Offset from the thread pointer to the rseq area, always set to allow
+ checking the registration status by reading the 'cpu_id' field.
+ In .data.relro but not yet write-protected. */
extern ptrdiff_t _rseq_offset attribute_hidden;
+/* We want to use rtld_hidden_proto in order to call the internal aliases
+ of __rseq_size and __rseq_offset from ld.so. This avoids dynamic symbol
+ binding at run time for both variables. */
+rtld_hidden_proto (__rseq_size)
+rtld_hidden_proto (__rseq_offset)
+
+/* Returns a pointer to the current thread rseq area. */
+static inline struct rseq_area *
+RSEQ_SELF (void)
+{
+ return (struct rseq_area *) ((char *) __thread_pointer () + __rseq_offset);
+}
+
#ifdef RSEQ_SIG
static inline bool
rseq_register_current_thread (struct pthread *self, bool do_rseq)
{
if (do_rseq)
{
- unsigned int size;
-#if IS_IN (rtld)
- /* Use the hidden symbol in ld.so. */
- size = _rseq_size;
-#else
- size = __rseq_size;
-#endif
+ unsigned int size = __rseq_size;
+
+ /* The feature size can be smaller than the minimum rseq area size of 32
+ bytes accepted by the syscall, if this is the case, bump the size of
+ the registration to the minimum. The 'extra TLS' block is always at
+ least 32 bytes. */
if (size < RSEQ_AREA_SIZE_INITIAL)
- /* The initial implementation used only 20 bytes out of 32,
- but still expected size 32. */
size = RSEQ_AREA_SIZE_INITIAL;
- int ret = INTERNAL_SYSCALL_CALL (rseq, &self->rseq_area,
- size, 0, RSEQ_SIG);
+
+ /* Initialize the whole rseq area to zero prior to registration. */
+ memset (RSEQ_SELF (), 0, size);
+
+ /* Set the cpu_id field to RSEQ_CPU_ID_UNINITIALIZED, this is checked by
+ the kernel at registration when CONFIG_DEBUG_RSEQ is enabled. */
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_UNINITIALIZED);
+
+ int ret = INTERNAL_SYSCALL_CALL (rseq, RSEQ_SELF (), size, 0, RSEQ_SIG);
if (!INTERNAL_SYSCALL_ERROR_P (ret))
return true;
}
- THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+ /* When rseq is disabled by tunables or the registration fails, inform
+ userspace by setting 'cpu_id' to RSEQ_CPU_ID_REGISTRATION_FAILED. */
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
return false;
}
#else /* RSEQ_SIG */
static inline bool
rseq_register_current_thread (struct pthread *self, bool do_rseq)
{
- THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
return false;
}
#endif /* RSEQ_SIG */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
index cab779a..6867016 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/environments.h b/sysdeps/unix/sysv/linux/s390/bits/environments.h
index 0798747..55cf387 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
index 6f460a6..b113426 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
index 453408b..277c371 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
index db10952..192d39b 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. S/390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
index 3e35ff7..34736c0 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs.h b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
index fe13bc2..36f2d80 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. S/390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/rseq.h b/sysdeps/unix/sysv/linux/s390/bits/rseq.h
index b39472d..e56d877 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux s390 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
index 6b790e9..8853310 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for 31 & 64 bit S/390 sigaction.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/statfs.h b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
index b367674..e8c2beb 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
index e5c9024..c71a537 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/timesize.h b/sysdeps/unix/sysv/linux/s390/bits/timesize.h
index d128fc3..f50aad7 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/s390.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index 7451fa6..2bbf72f 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
index b657583..1296193 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
index 1f72a73..347f67f 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
@@ -1,5 +1,5 @@
/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
deleted file mode 100644
index bcae03e..0000000
--- a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Linux/s390 version of processor capability information handling macros.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_S390_PROCINFO_H
-#define _DL_S390_PROCINFO_H 1
-#include <sysdeps/s390/dl-procinfo.h>
-#include <ldsodefs.h>
-
-
-#undef _dl_procinfo
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- /* This table should match the information from arch/s390/kernel/setup.c
- in the kernel sources. */
- int i;
-
- /* Fallback to generic output mechanism. */
- if (type != AT_HWCAP)
- return -1;
-
- _dl_printf ("AT_HWCAP: ");
-
- for (i = 0; i < _DL_HWCAP_COUNT; ++i)
- if (word & (1UL << i))
- _dl_printf (" %s", _dl_s390_cap_flags[i]);
-
- _dl_printf ("\n");
-
- return 0;
-}
-#endif
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c
index 08b9028..32b9b3a 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.c
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,8 @@
#include <pthreadP.h>
#include <elision-conf.h>
#include <unistd.h>
-#include <dl-procinfo.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
#define TUNABLE_NAMESPACE elision
#include <elf/dl-tunables.h>
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.h b/sysdeps/unix/sysv/linux/s390/elision-conf.h
index f0812c4..90845de 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.h
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-lock.c b/sysdeps/unix/sysv/linux/s390/elision-lock.c
index d3de233..b22e6cd 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-lock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-timed.c b/sysdeps/unix/sysv/linux/s390/elision-timed.c
index bef1aa4..2611e9c 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-timed.c
@@ -1,5 +1,5 @@
/* Lock elision timed lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-trylock.c b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
index fa03a7a..1aa99d8 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex trylock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-unlock.c b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
index 388509f..11e96ab 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
@@ -1,5 +1,5 @@
/* Commit an elided pthread lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/htm.h b/sysdeps/unix/sysv/linux/s390/htm.h
index a0038ab..bf1a89c 100644
--- a/sysdeps/unix/sysv/linux/s390/htm.h
+++ b/sysdeps/unix/sysv/linux/s390/htm.h
@@ -1,7 +1,7 @@
/* Shared HTM header. Work around false transactional execution facility
intrinsics.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/ipc_priv.h b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
index 50bca10..27d20ef 100644
--- a/sysdeps/unix/sysv/linux/s390/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
@@ -1,5 +1,5 @@
/* Arch-specific SysV IPC definitions for Linux. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index 5f6ae39..1eedb36 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -1,5 +1,5 @@
/* Clean up stack frames unwound by longjmp. Linux/s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h
index 79363f9..4d9f223 100644
--- a/sysdeps/unix/sysv/linux/s390/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. S/390 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/ldconfig.h b/sysdeps/unix/sysv/linux/s390/ldconfig.h
index 147ca09..c15c0ea 100644
--- a/sysdeps/unix/sysv/linux/s390/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/s390/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/libpthread-compat.c b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
index 2645dfc..04c0780 100644
--- a/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
+++ b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
index 6a415ab..71195c5 100644
--- a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/mmap_call.h b/sysdeps/unix/sysv/linux/s390/mmap_call.h
index cd32a50..46e987f 100644
--- a/sysdeps/unix/sysv/linux/s390/mmap_call.h
+++ b/sysdeps/unix/sysv/linux/s390/mmap_call.h
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux/s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/readelflib.c b/sysdeps/unix/sysv/linux/s390/readelflib.c
index 39f12eb..8642189 100644
--- a/sysdeps/unix/sysv/linux/s390/readelflib.c
+++ b/sysdeps/unix/sysv/linux/s390/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
index 4f933fa..7c09b21 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
index 17f2432..a309d47 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
index 464eca5..f77f39f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
@@ -136,6 +136,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 227
+#define __NR_getxattrat 464
#define __NR_idle 112
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
@@ -173,6 +174,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 230
+#define __NR_listxattrat 465
#define __NR_llistxattr 231
#define __NR_lookup_dcookie 110
#define __NR_lremovexattr 234
@@ -230,6 +232,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 336
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -279,6 +282,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 267
#define __NR_removexattr 233
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 347
@@ -355,6 +359,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 224
+#define __NR_setxattrat 463
#define __NR_shmat 397
#define __NR_shmctl 396
#define __NR_shmdt 398
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
index a7a8632..e8dec24 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
index 1ea633a..5467be5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
index ef2319a..a2a3061 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
index fc32ae1..4b37ba9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
index 59be826..e31c0a4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
index 68c88fc..dc8cf02 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
index b202b4a..ccfa3ca 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
index 4bb59a6..c8d3999 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
index 2f48010..1979a5c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
index dc9a1c6..d0e0109 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
index 866c5b6..644cf43 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
index 1fb355a..75bf740 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
index 541fc06..952a229 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a7467e2..f0decc7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -3136,6 +3136,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 81f186f..be2d177 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1292,3 +1292,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c b/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
index 83c98b5..630e477 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
@@ -1,5 +1,5 @@
/* Placeholder compatibility symbols for libutil. s390 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login.c b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
index fe81bd8..9697d80 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
index 8c4d5fe..556184a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
index e969ed8..b46592a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
index 4588d69..3f888e5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. s390 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
index 4e7cd9f..4d0969e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
index 51f0062..c7dd975 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
index f3cd54f..2c6c273 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
index 4ef003b..32faa22 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
index b2b79cc..1e59e60 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S
new file mode 100644
index 0000000..54db44f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S
@@ -0,0 +1,62 @@
+/* Cancellable syscall wrapper. Linux/s390 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ stm %r6,%r7,24(%r15)
+ cfi_offset (%r6, -72)
+ cfi_offset (%r7, -68)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ tm 3(%r2),TCB_CANCELED_BITMASK
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%r1] being the syscall
+ number. */
+ lr %r1,%r3
+ lr %r2,%r4
+ lr %r3,%r5
+ lr %r4,%r6
+ lm %r5,%r7,96(%r15)
+ svc 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ lm %r6,%r7,24(%r15)
+ cfi_remember_state
+ cfi_restore (%r7)
+ cfi_restore (%r6)
+ br %r14
+1:
+ cfi_restore_state
+ jg __syscall_do_cancel
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
index d77c5bf..011f47e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 215b44e..f8d9290 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
index 9f8e944..0a8bd01 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
index 5c5a825..de282dc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
index 6899fd8..4cba24b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
index acf9137..bc88317 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
index 66b5a4c..39729a4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
index 30037f2..c7d4388 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
index 8fb5bd2..060b8a0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
index 39ee486..71928a5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
index ff4786e..5f0a094 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
index cdb4a64..91293f4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
index 6564824..f2c7f68 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
index 6214700..2ffa0d0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
index 5784270..65d6644 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
@@ -114,6 +114,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 199
#define __NR_getxattr 227
+#define __NR_getxattrat 464
#define __NR_idle 112
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
@@ -148,6 +149,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 230
+#define __NR_listxattrat 465
#define __NR_llistxattr 231
#define __NR_lookup_dcookie 110
#define __NR_lremovexattr 234
@@ -202,6 +204,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 336
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -248,6 +251,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 267
#define __NR_removexattr 233
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 347
@@ -313,6 +317,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 213
#define __NR_setxattr 224
+#define __NR_setxattrat 463
#define __NR_shmat 397
#define __NR_shmctl 396
#define __NR_shmdt 398
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
index c552a6b..5bf1e36 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. 64 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
index 70ae7f1..9190256 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
index e8dbadd..0367b51 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
index 8b1f002..4300079 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index fd1cb29..da8a2bf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2929,6 +2929,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index ee54f8d..7d7ba26 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1292,3 +1292,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
index 986194c..c679cfe 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
index b477ba8..1537df1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. s390x version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
index 4949945..fa5203e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
index 87ce4e8..23fa20d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
index 171104a..56ddb91 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S
new file mode 100644
index 0000000..e592ffa
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S
@@ -0,0 +1,62 @@
+/* Cancellable syscall wrapper. Linux/s390x version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ stmg %r6,%r7,48(%r15)
+ cfi_offset (%r6, -112)
+ cfi_offset (%r7, -104)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ tm 3(%r2),TCB_CANCELED_BITMASK
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%r1] being the syscall
+ number. */
+ lgr %r1,%r3
+ lgr %r2,%r4
+ lgr %r3,%r5
+ lgr %r4,%r6
+ lmg %r5,%r7,160(%r15)
+ svc 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ lmg %r6,%r7,48(%r15)
+ cfi_remember_state
+ cfi_restore (%r7)
+ cfi_restore (%r6)
+ br %r14
+1:
+ cfi_restore_state
+ jg __syscall_do_cancel
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
index 024e58d..fb3d155 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 885ab81..a282e12 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
index d70186d..70c1037 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. s390x version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
index e8f4cdf..d4abd5e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
index 8c9d52c..6ce7229 100644
--- a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/elf.h b/sysdeps/unix/sysv/linux/s390/sys/elf.h
index f49abfa..1e3581b 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
index fa99d50..3d10f44 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/S390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index cc373cd..dd0b2ef 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/user.h b/sysdeps/unix/sysv/linux/s390/sys/user.h
index ced029e..86cd391 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/user.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c
index ca25822..dcb335a 100644
--- a/sysdeps/unix/sysv/linux/s390/sysconf.c
+++ b/sysdeps/unix/sysv/linux/s390/sysconf.c
@@ -1,5 +1,5 @@
/* Get system parameters, e.g. cache information. S390/S390x version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,8 +17,9 @@
<https://www.gnu.org/licenses/>. */
#include <unistd.h>
-#include <dl-procinfo.h>
#include <cpu-features.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
static long int linux_sysconf (int name);
@@ -65,7 +66,7 @@ get_cache_info (int level, int attr, int type)
return 0L;
}
- if (!S390_IS_Z10 (features->stfle_bits))
+ if (!S390_IS_Z10 (features->stfle_orig))
{
/* We are at least on a z9 machine.
Return 256byte for LINESIZE for L1 d/i-cache,
diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h
index 9b3000c..c802980 100644
--- a/sysdeps/unix/sysv/linux/s390/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -72,6 +72,7 @@
#ifdef __s390x__
#define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres"
#define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime"
+#define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
#else
#define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres"
#define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime"
diff --git a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
index d9d2663..1f873bf 100644
--- a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
+++ b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
@@ -1,5 +1,5 @@
/* Testing s390x PTRACE_SINGLEBLOCK ptrace request.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/safe-fatal.h b/sysdeps/unix/sysv/linux/safe-fatal.h
index f6011bf..57fc27f 100644
--- a/sysdeps/unix/sysv/linux/safe-fatal.h
+++ b/sysdeps/unix/sysv/linux/safe-fatal.h
@@ -1,5 +1,5 @@
/* Crash the process immediately, without possibility of deadlock. Linux.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scandir64.c b/sysdeps/unix/sysv/linux/scandir64.c
index 5ab87b4..28523ae 100644
--- a/sysdeps/unix/sysv/linux/scandir64.c
+++ b/sysdeps/unix/sysv/linux/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sched_getaffinity.c b/sysdeps/unix/sysv/linux/sched_getaffinity.c
index f4c0e38..1c66beb 100644
--- a/sysdeps/unix/sysv/linux/sched_getaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/sched_getattr.c
index 7dcf478..a0497e4 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/sched_getattr.c
@@ -1,5 +1,5 @@
-/* Linux kernel struct rt_sigframe declaration for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Reading scheduling policy and attributes.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* This structure must have the same shape as the Linux kernel
- equivalent. */
+#include <sched.h>
+#include <sysdep.h>
-struct kernel_rt_sigframe
+int
+sched_getattr (pid_t pid, struct sched_attr *attr, unsigned int size,
+ unsigned int flags)
{
- siginfo_t info;
- ucontext_t uc;
-};
+ return INLINE_SYSCALL_CALL (sched_getattr, pid, attr, size, flags);
+}
diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c
index 72a3360..828b651 100644
--- a/sysdeps/unix/sysv/linux/sched_getcpu.c
+++ b/sysdeps/unix/sysv/linux/sched_getcpu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@
#include <sched.h>
#include <sysdep.h>
#include <sysdep-vdso.h>
+#include <rseq-internal.h>
static int
vsyscall_sched_getcpu (void)
@@ -36,6 +37,6 @@ vsyscall_sched_getcpu (void)
int
sched_getcpu (void)
{
- int cpu_id = THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id);
+ int cpu_id = RSEQ_GETMEM_ONCE (cpu_id);
return __glibc_likely (cpu_id >= 0) ? cpu_id : vsyscall_sched_getcpu ();
}
diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c b/sysdeps/unix/sysv/linux/sched_rr_gi.c
index 2dde512..590cf43 100644
--- a/sysdeps/unix/sysv/linux/sched_rr_gi.c
+++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c
@@ -1,5 +1,5 @@
/* sched_rr_get_interval -- get the scheduler's SCHED_RR policy time interval.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sched_setaffinity.c b/sysdeps/unix/sysv/linux/sched_setaffinity.c
index 21f6620..38f3287 100644
--- a/sysdeps/unix/sysv/linux/sched_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/aarch64/dl-tls.h b/sysdeps/unix/sysv/linux/sched_setattr.c
index c7c8c11..d6b6117 100644
--- a/sysdeps/aarch64/dl-tls.h
+++ b/sysdeps/unix/sysv/linux/sched_setattr.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
-
+/* Setting scheduling policy and attributes.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,12 +16,11 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
+#include <sched.h>
+#include <sysdep.h>
-extern void *__tls_get_addr (tls_index *ti);
+int
+sched_setattr (pid_t pid, struct sched_attr *attr, unsigned int flags)
+{
+ return INLINE_SYSCALL_CALL (sched_setattr, pid, attr, flags);
+}
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi.h b/sysdeps/unix/sysv/linux/scsi/scsi.h
index 5079c07..d72d6a0 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
index e56d17d..6b0bf05 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scsi/sg.h b/sysdeps/unix/sysv/linux/scsi/sg.h
index 1dcda67..ed787b3 100644
--- a/sysdeps/unix/sysv/linux/scsi/sg.h
+++ b/sysdeps/unix/sysv/linux/scsi/sg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/seekdir.c b/sysdeps/unix/sysv/linux/seekdir.c
index 5200587..facd2f9 100644
--- a/sysdeps/unix/sysv/linux/seekdir.c
+++ b/sysdeps/unix/sysv/linux/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c
index a75245c..f7b1077 100644
--- a/sysdeps/unix/sysv/linux/select.c
+++ b/sysdeps/unix/sysv/linux/select.c
@@ -1,5 +1,5 @@
/* Linux select implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
index c57fcea..feaf3fc 100644
--- a/sysdeps/unix/sysv/linux/semctl.c
+++ b/sysdeps/unix/sysv/linux/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semget.c b/sysdeps/unix/sysv/linux/semget.c
index 26d0046..ae311e6 100644
--- a/sysdeps/unix/sysv/linux/semget.c
+++ b/sysdeps/unix/sysv/linux/semget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semop.c b/sysdeps/unix/sysv/linux/semop.c
index 33f2ba5..52d79e5 100644
--- a/sysdeps/unix/sysv/linux/semop.c
+++ b/sysdeps/unix/sysv/linux/semop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
index 181289f..6478a11 100644
--- a/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/sysdeps/unix/sysv/linux/semtimedop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/send.c b/sysdeps/unix/sysv/linux/send.c
index 20dc6ea..68cdd40 100644
--- a/sysdeps/unix/sysv/linux/send.c
+++ b/sysdeps/unix/sysv/linux/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendfile.c b/sysdeps/unix/sysv/linux/sendfile.c
index a93d057..990a26a 100644
--- a/sysdeps/unix/sysv/linux/sendfile.c
+++ b/sysdeps/unix/sysv/linux/sendfile.c
@@ -1,5 +1,5 @@
/* Transfer data between file descriptors. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendfile64.c b/sysdeps/unix/sysv/linux/sendfile64.c
index a49aeac..a7e60c7 100644
--- a/sysdeps/unix/sysv/linux/sendfile64.c
+++ b/sysdeps/unix/sysv/linux/sendfile64.c
@@ -1,5 +1,5 @@
/* Transfer data between file descriptors. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c
index 50e084d..0c86002 100644
--- a/sysdeps/unix/sysv/linux/sendmmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendmsg.c b/sysdeps/unix/sysv/linux/sendmsg.c
index 45c59ec..81d2c8b 100644
--- a/sysdeps/unix/sysv/linux/sendmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmsg.c
@@ -1,5 +1,5 @@
/* Compatibility implementation of sendmsg.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendto.c b/sysdeps/unix/sysv/linux/sendto.c
index 4fb227d..dde1296 100644
--- a/sysdeps/unix/sysv/linux/sendto.c
+++ b/sysdeps/unix/sysv/linux/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/set-freeres-os.h b/sysdeps/unix/sysv/linux/set-freeres-os.h
index 041d061..1c96ca1 100644
--- a/sysdeps/unix/sysv/linux/set-freeres-os.h
+++ b/sysdeps/unix/sysv/linux/set-freeres-os.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setegid.c b/sysdeps/unix/sysv/linux/setegid.c
index 4a60853..aa87a85 100644
--- a/sysdeps/unix/sysv/linux/setegid.c
+++ b/sysdeps/unix/sysv/linux/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/seteuid.c b/sysdeps/unix/sysv/linux/seteuid.c
index 64d3c84..7b78d60 100644
--- a/sysdeps/unix/sysv/linux/seteuid.c
+++ b/sysdeps/unix/sysv/linux/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setgid.c b/sysdeps/unix/sysv/linux/setgid.c
index 51d4df8..b848ead 100644
--- a/sysdeps/unix/sysv/linux/setgid.c
+++ b/sysdeps/unix/sysv/linux/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setgroups.c b/sysdeps/unix/sysv/linux/setgroups.c
index be68f0c..2fd1dc5 100644
--- a/sysdeps/unix/sysv/linux/setgroups.c
+++ b/sysdeps/unix/sysv/linux/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
index 8009ad0..98c2edd 100644
--- a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Set IPv4 source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setitimer.c b/sysdeps/unix/sysv/linux/setitimer.c
index 2a2d59f..9478ffa 100644
--- a/sysdeps/unix/sysv/linux/setitimer.c
+++ b/sysdeps/unix/sysv/linux/setitimer.c
@@ -1,5 +1,5 @@
/* setitimer -- Set the state of an interval timer. Linux/32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setregid.c b/sysdeps/unix/sysv/linux/setregid.c
index 2e89677..6df2687 100644
--- a/sysdeps/unix/sysv/linux/setregid.c
+++ b/sysdeps/unix/sysv/linux/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setresgid.c b/sysdeps/unix/sysv/linux/setresgid.c
index 6b44503..07dbc45 100644
--- a/sysdeps/unix/sysv/linux/setresgid.c
+++ b/sysdeps/unix/sysv/linux/setresgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setresuid.c b/sysdeps/unix/sysv/linux/setresuid.c
index 3339779..3c7e543 100644
--- a/sysdeps/unix/sysv/linux/setresuid.c
+++ b/sysdeps/unix/sysv/linux/setresuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setreuid.c b/sysdeps/unix/sysv/linux/setreuid.c
index a3889b3..e40dd9f 100644
--- a/sysdeps/unix/sysv/linux/setreuid.c
+++ b/sysdeps/unix/sysv/linux/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setrlimit.c b/sysdeps/unix/sysv/linux/setrlimit.c
index 3be6f96..b635d7e 100644
--- a/sysdeps/unix/sysv/linux/setrlimit.c
+++ b/sysdeps/unix/sysv/linux/setrlimit.c
@@ -1,5 +1,5 @@
/* Linux setrlimit implementation (32 bits off_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c
index 084700c..d62ea94 100644
--- a/sysdeps/unix/sysv/linux/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/setrlimit64.c
@@ -1,5 +1,5 @@
/* Linux setrlimit64 implementation (64 bits off_t).
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
index e483c13..95734bd 100644
--- a/sysdeps/unix/sysv/linux/setsockopt.c
+++ b/sysdeps/unix/sysv/linux/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setsourcefilter.c b/sysdeps/unix/sysv/linux/setsourcefilter.c
index 316f637..6fbd04c 100644
--- a/sysdeps/unix/sysv/linux/setsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setsourcefilter.c
@@ -1,5 +1,5 @@
/* Set source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/settimeofday.c b/sysdeps/unix/sysv/linux/settimeofday.c
index 4235dc8..c74aaf2 100644
--- a/sysdeps/unix/sysv/linux/settimeofday.c
+++ b/sysdeps/unix/sysv/linux/settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- set system time - Linux version supporting 64 bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,9 +26,9 @@ int
__settimeofday64 (const struct __timeval64 *tv, const struct timezone *tz)
{
/* Backwards compatibility for setting the UTC offset. */
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
{
- if (tv != 0)
+ if (tv != NULL)
{
__set_errno (EINVAL);
return -1;
diff --git a/sysdeps/unix/sysv/linux/settimezone.c b/sysdeps/unix/sysv/linux/settimezone.c
index 1f7b157..0505533 100644
--- a/sysdeps/unix/sysv/linux/settimezone.c
+++ b/sysdeps/unix/sysv/linux/settimezone.c
@@ -1,5 +1,5 @@
/* Obsolete set system time. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setuid.c b/sysdeps/unix/sysv/linux/setuid.c
index 39d5e0c..c76beb6 100644
--- a/sysdeps/unix/sysv/linux/setuid.c
+++ b/sysdeps/unix/sysv/linux/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setvmaname.c b/sysdeps/unix/sysv/linux/setvmaname.c
index 8612efe..ea93a5f 100644
--- a/sysdeps/unix/sysv/linux/setvmaname.c
+++ b/sysdeps/unix/sysv/linux/setvmaname.c
@@ -1,5 +1,5 @@
/* Utilities functions to name memory mappings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,33 @@
#include <sysdep.h>
#include <elf/dl-tunables.h>
+static enum {
+ decorate_unknown = -1,
+ decorate_off,
+ decorate_on
+} decorate_maps = decorate_unknown;
+
+bool
+__is_decorate_maps_enabled (void)
+{
+ switch (atomic_load_relaxed (&decorate_maps))
+ {
+ case decorate_unknown:
+ if (TUNABLE_GET (glibc, mem, decorate_maps, int32_t, NULL) != 0)
+ {
+ atomic_store_relaxed (&decorate_maps, decorate_on);
+ return true;
+ }
+ atomic_store_relaxed (&decorate_maps, decorate_off);
+ return false;
+ case decorate_off:
+ return false;
+ case decorate_on:
+ return true;
+ }
+ __builtin_unreachable ();
+}
+
/* If PR_SET_VMA_ANON_NAME is not supported by the kernel, prctl returns
EINVAL. However, it also returns the same error for invalid argument.
Since it is an internal-only API, it assumes well formatted input:
@@ -31,19 +58,13 @@
void
__set_vma_name (void *start, size_t len, const char *name)
{
- static int prctl_supported = 1;
- if (atomic_load_relaxed (&prctl_supported) == 0)
- return;
-
- /* Set the prctl as not supported to avoid checking the tunable on every
- call. */
- if (TUNABLE_GET (glibc, mem, decorate_maps, int32_t, NULL) != 0)
+ if (__is_decorate_maps_enabled ())
{
int r = INTERNAL_SYSCALL_CALL (prctl, PR_SET_VMA, PR_SET_VMA_ANON_NAME,
- start, len, name);
- if (r == 0 || r != -EINVAL)
- return;
+ start, len, name);
+
+ /* Disable further attempts if not supported by the kernel. */
+ if (r == -EINVAL)
+ atomic_store_relaxed (&decorate_maps, decorate_off);
}
- atomic_store_relaxed (&prctl_supported, 0);
- return;
}
diff --git a/sysdeps/unix/sysv/linux/setvmaname.h b/sysdeps/unix/sysv/linux/setvmaname.h
index bf57351..48643d0 100644
--- a/sysdeps/unix/sysv/linux/setvmaname.h
+++ b/sysdeps/unix/sysv/linux/setvmaname.h
@@ -1,5 +1,5 @@
/* Utilities functions to name memory mappings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,9 +19,17 @@
#ifndef __SETVMANAME_H
#define __SETVMANAME_H
+/* Maximum supported name from initial kernel support, not exported
+ by user API. */
+#define ANON_VMA_NAME_MAX_LEN 80
+
/* Set the NAME to the anonymous memory map START with size of LEN.
It assumes well-formatted input. */
#if IS_IN(libc) || IS_IN(rtld)
+#include <stdbool.h>
+
+bool __is_decorate_maps_enabled (void) attribute_hidden;
+
void __set_vma_name (void *start, size_t len, const char *name)
attribute_hidden;
#else
diff --git a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
index f61db0b..4a7748b 100644
--- a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h b/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
index 604dd62..ae5d5ee 100644
--- a/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
+++ b/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
@@ -1,5 +1,5 @@
/* Maximum adaptive spin count default for sh.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/arch-syscall.h b/sysdeps/unix/sysv/linux/sh/arch-syscall.h
index 165ba01..5948ab0 100644
--- a/sysdeps/unix/sysv/linux/sh/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sh/arch-syscall.h
@@ -133,6 +133,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 291
#define __NR_inotify_init 290
@@ -166,6 +167,7 @@
#define __NR_listen 343
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lookup_dcookie 253
#define __NR_lremovexattr 236
@@ -226,6 +228,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 360
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -274,6 +277,7 @@
#define __NR_recvmsg 356
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 371
@@ -346,6 +350,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sh/atomic-machine.h b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
index 1639280..fc37d6d 100644
--- a/sysdeps/unix/sysv/linux/sh/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations used inside libc. Linux/SH version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ff6e6b1..fb30341 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2828,6 +2828,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index b21a3ba..5b0b080 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
index 64a6ddb..00b9051 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SH.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
index 220d887..7a45982 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SH version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs.h b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
index 621070b..b1a45ac 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. SH version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/shmlba.h b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
index c3a9edf..7765d6a 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. SH version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
index d47cd7b..107d833 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/sh version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/timesize.h b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
index abc59d7..173bfe8 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/sh.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/typesizes.h b/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
index 06321f9..22857ac 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. SH version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index 355a542..a2961ba 100644
--- a/sysdeps/unix/sysv/linux/sh/clone.S
+++ b/sysdeps/unix/sysv/linux/sh/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index 320faa6..dabf64b 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 449d92b..d716673 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2825,6 +2825,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index b21a3ba..5b0b080 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
index f808a74..8e35e2f 100644
--- a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
+++ b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S
index d20a630..482eaa2 100644
--- a/sysdeps/unix/sysv/linux/sh/makecontext.S
+++ b/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/pointer_guard.h b/sysdeps/unix/sysv/linux/sh/pointer_guard.h
index 3eba9eb..17334e3 100644
--- a/sysdeps/unix/sysv/linux/sh/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sh/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. Generic (no-op) version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
index 55e91df..b954915 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
index e66802a..0caa08c 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
index ef33095..ad4bf05 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
index c890ce0..329a790 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,6 +67,8 @@ ENTRY(__getcontext)
add #(oFPUL+4-124),r0
sts.l fpul, @-r0
sts.l fpscr, @-r0
+ mov #0, r6
+ lds r6, fpscr
frchg
fmov.s fr15, @-r0
fmov.s fr14, @-r0
@@ -101,6 +103,10 @@ ENTRY(__getcontext)
fmov.s fr2, @-r0
fmov.s fr1, @-r0
fmov.s fr0, @-r0
+ mov r4, r0
+ add #124, r0
+ add #(oFPSCR-124), r0
+ lds.l @r0+, fpscr
#endif /* __SH_FPU_ANY__ */
/* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask). */
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
index 0cd12af..60aff78 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,8 @@ ENTRY(__setcontext)
.Lsetcontext_restore:
#ifdef __SH_FPU_ANY__
+ mov #0, r9
+ lds r9, fpscr
mov r8, r0
add #(oFR0),r0
fmov.s @r0+, fr0
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
index a8e9028..6cf88f2 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,6 +67,8 @@ ENTRY(__swapcontext)
add #(oFPUL+4-124),r0
sts.l fpul, @-r0
sts.l fpscr, @-r0
+ mov #0, r9
+ lds r9, fpscr
frchg
fmov.s fr15, @-r0
fmov.s fr14, @-r0
diff --git a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
index 3cd9ca9..0790e60 100644
--- a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index 19fa2f9..6d3e2bd 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sys/user.h b/sysdeps/unix/sysv/linux/sh/sys/user.h
index 8cbaf1a..c2000e4 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/syscall.S b/sysdeps/unix/sysv/linux/sh/syscall.S
index 8b122e2..28c0b41 100644
--- a/sysdeps/unix/sysv/linux/sh/syscall.S
+++ b/sysdeps/unix/sysv/linux/sh/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/syscall_cancel.S b/sysdeps/unix/sysv/linux/sh/syscall_cancel.S
new file mode 100644
index 0000000..3a088ef
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/syscall_cancel.S
@@ -0,0 +1,126 @@
+/* Cancellable syscall wrapper. Linux/sh version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+#ifdef SHARED
+ mov.l r12,@-r15
+ cfi_def_cfa_offset (4)
+ cfi_offset (12, -4)
+ mova L(GT),r0
+ mov.l L(GT),r12
+ sts.l pr,@-r15
+ cfi_def_cfa_offset (8)
+ cfi_offset (17, -8)
+ add r0,r12
+#else
+ sts.l pr,@-r15
+ cfi_def_cfa_offset (4)
+ cfi_offset (17, -4)
+#endif
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ mov.l @r4,r0
+ tst #TCB_CANCELED_BITMASK,r0
+ bf/s 1f
+
+ /* Issue a 6 argument syscall. */
+ mov r5,r3
+ mov r6,r4
+ mov r7,r5
+#ifdef SHARED
+ mov.l @(8,r15),r6
+ mov.l @(12,r15),r7
+ mov.l @(16,r15),r0
+ mov.l @(20,r15),r1
+#else
+ mov.l @(4,r15),r6
+ mov.l @(8,r15),r7
+ mov.l @(12,r15),r0
+ mov.l @(16,r15),r1
+#endif
+ trapa #0x16
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ /* The additional or is a workaround for a hardware issue:
+ http://documentation.renesas.com/eng/products/mpumcu/tu/tnsh7456ae.pdf
+ */
+ or r0,r0
+ or r0,r0
+ or r0,r0
+ or r0,r0
+ or r0,r0
+
+ lds.l @r15+,pr
+ cfi_remember_state
+ cfi_restore (17)
+#ifdef SHARED
+ cfi_def_cfa_offset (4)
+ rts
+ mov.l @r15+,r12
+ cfi_def_cfa_offset (0)
+ cfi_restore (12)
+ .align 1
+1:
+ cfi_restore_state
+ mov.l L(SC),r1
+ bsrf r1
+L(M):
+ nop
+
+ .align 2
+L(GT):
+ .long _GLOBAL_OFFSET_TABLE_
+L(SC):
+ .long __syscall_do_cancel-(L(M)+2)
+#else
+ cfi_def_cfa_offset (0)
+ rts
+ nop
+
+ .align 1
+1:
+ cfi_restore_state
+ mov.l 2f,r1
+ jsr @r1
+ nop
+
+ .align 2
+2:
+ .long __syscall_do_cancel
+#endif
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
index d5d8c5e..db898e9 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.h b/sysdeps/unix/sysv/linux/sh/sysdep.h
index a394a1e..93c5b51 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/vfork.S b/sysdeps/unix/sysv/linux/sh/vfork.S
index b92cfe7..3400190 100644
--- a/sysdeps/unix/sysv/linux/sh/vfork.S
+++ b/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
index 3f6e0b9..06a8981 100644
--- a/sysdeps/unix/sysv/linux/shmat.c
+++ b/sysdeps/unix/sysv/linux/shmat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
index 5f13b57..2e8faaf 100644
--- a/sysdeps/unix/sysv/linux/shmctl.c
+++ b/sysdeps/unix/sysv/linux/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmdt.c b/sysdeps/unix/sysv/linux/shmdt.c
index 60d54ca..56c27c9 100644
--- a/sysdeps/unix/sysv/linux/shmdt.c
+++ b/sysdeps/unix/sysv/linux/shmdt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmget.c b/sysdeps/unix/sysv/linux/shmget.c
index 8f47aed..e27e9a2 100644
--- a/sysdeps/unix/sysv/linux/shmget.c
+++ b/sysdeps/unix/sysv/linux/shmget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shutdown.c b/sysdeps/unix/sysv/linux/shutdown.c
index 987ab66..29d8968 100644
--- a/sysdeps/unix/sysv/linux/shutdown.c
+++ b/sysdeps/unix/sysv/linux/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/siglist-compat.h b/sysdeps/unix/sysv/linux/siglist-compat.h
index e3b647b..6c49820 100644
--- a/sysdeps/unix/sysv/linux/siglist-compat.h
+++ b/sysdeps/unix/sysv/linux/siglist-compat.h
@@ -1,5 +1,5 @@
/* Compatibility signal numbers and their names symbols. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/signalfd.c b/sysdeps/unix/sysv/linux/signalfd.c
index 55724b8..0235386 100644
--- a/sysdeps/unix/sysv/linux/signalfd.c
+++ b/sysdeps/unix/sysv/linux/signalfd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
index 08e0779..d877e3a 100644
--- a/sysdeps/unix/sysv/linux/sigpending.c
+++ b/sysdeps/unix/sysv/linux/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
index b426aa2..481870d 100644
--- a/sysdeps/unix/sysv/linux/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
index 37d910c..274eb5a 100644
--- a/sysdeps/unix/sysv/linux/sigqueue.c
+++ b/sysdeps/unix/sysv/linux/sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
index 939e5d0..286e95e 100644
--- a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
+++ b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
@@ -1,6 +1,6 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigsetops.h b/sysdeps/unix/sysv/linux/sigsetops.h
index 33db4f7..f4abf83 100644
--- a/sysdeps/unix/sysv/linux/sigsetops.h
+++ b/sysdeps/unix/sysv/linux/sigsetops.h
@@ -1,5 +1,5 @@
/* __sigset_t manipulators. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigstack.c b/sysdeps/unix/sysv/linux/sigstack.c
index ec9e29f..b75453b 100644
--- a/sysdeps/unix/sysv/linux/sigstack.c
+++ b/sysdeps/unix/sysv/linux/sigstack.c
@@ -1,5 +1,5 @@
/* Emulate sigstack function using sigaltstack.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index 4a5de2b..7a9da02 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
index 3da4e8e..ad76628 100644
--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
index 37de8db..7809945 100644
--- a/sysdeps/unix/sysv/linux/sigwait.c
+++ b/sysdeps/unix/sysv/linux/sigwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@ __sigwait (const sigset_t *set, int *sig)
siginfo_t si;
int ret;
do
- ret = __sigtimedwait (set, &si, 0);
+ ret = __sigtimedwait (set, &si, NULL);
/* Applications do not expect sigwait to return with EINTR, and the
error code is not specified by POSIX. */
while (ret < 0 && errno == EINTR);
diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
index dba25bd..a7e2f15 100644
--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
int
__sigwaitinfo (const sigset_t *set, siginfo_t *info)
{
- return __sigtimedwait (set, info, 0);
+ return __sigtimedwait (set, info, NULL);
}
libc_hidden_def (__sigwaitinfo)
diff --git a/sysdeps/unix/sysv/linux/single-thread.h b/sysdeps/unix/sysv/linux/single-thread.h
index b651860..eecaa2d 100644
--- a/sysdeps/unix/sysv/linux/single-thread.h
+++ b/sysdeps/unix/sysv/linux/single-thread.h
@@ -1,5 +1,5 @@
/* Single thread optimization, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sizes.h b/sysdeps/unix/sysv/linux/sizes.h
index ee95da2..2b6099f 100644
--- a/sysdeps/unix/sysv/linux/sizes.h
+++ b/sysdeps/unix/sysv/linux/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socket-constants-time64.h b/sysdeps/unix/sysv/linux/socket-constants-time64.h
index 1a62054..fc7b2fc 100644
--- a/sysdeps/unix/sysv/linux/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socket.c b/sysdeps/unix/sysv/linux/socket.c
index 2cd2626..4ec2b4d 100644
--- a/sysdeps/unix/sysv/linux/socket.c
+++ b/sysdeps/unix/sysv/linux/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socketcall.h b/sysdeps/unix/sysv/linux/socketcall.h
index 537fa43..44131c2 100644
--- a/sysdeps/unix/sysv/linux/socketcall.h
+++ b/sysdeps/unix/sysv/linux/socketcall.h
@@ -1,5 +1,5 @@
/* ID for functions called via socketcall system call.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -88,14 +88,33 @@
sc_ret; \
})
-
-#define SOCKETCALL_CANCEL(name, args...) \
- ({ \
- int oldtype = LIBC_CANCEL_ASYNC (); \
- long int sc_ret = __SOCKETCALL (SOCKOP_##name, args); \
- LIBC_CANCEL_RESET (oldtype); \
- sc_ret; \
- })
+#define __SOCKETCALL_CANCEL1(__name, __a1) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [1]) { (long int) __a1 }))
+#define __SOCKETCALL_CANCEL2(__name, __a1, __a2) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [2]) { (long int) __a1, (long int) __a2 }))
+#define __SOCKETCALL_CANCEL3(__name, __a1, __a2, __a3) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [3]) { (long int) __a1, (long int) __a2, (long int) __a3 }))
+#define __SOCKETCALL_CANCEL4(__name, __a1, __a2, __a3, __a4) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [4]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4 }))
+#define __SOCKETCALL_CANCEL5(__name, __a1, __a2, __a3, __a4, __a5) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [5]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4, (long int) __a5 }))
+#define __SOCKETCALL_CANCEL6(__name, __a1, __a2, __a3, __a4, __a5, __a6) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [6]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4, (long int) __a5, (long int) __a6 }))
+
+#define __SOCKETCALL_CANCEL(...) __SOCKETCALL_DISP (__SOCKETCALL_CANCEL,\
+ __VA_ARGS__)
+
+#define SOCKETCALL_CANCEL(name, args...) \
+ __SOCKETCALL_CANCEL (SOCKOP_##name, args)
#endif /* sys/socketcall.h */
diff --git a/sysdeps/unix/sysv/linux/socketpair.c b/sysdeps/unix/sysv/linux/socketpair.c
index 8cd4301..4f2ae22 100644
--- a/sysdeps/unix/sysv/linux/socketpair.c
+++ b/sysdeps/unix/sysv/linux/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index f127bdf..7dd61a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -29,6 +29,10 @@ libc {
__getshmlba;
}
+ GLIBC_2.42 {
+ tcgetattr;
+ tcsetattr;
+ }
GLIBC_PRIVATE {
# nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
__vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
index d31d5c2..d8339e6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
index fbc003f..2e22144 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
index dc57434..dfe616c 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Sparc specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
index abd23b4..2a3de66 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
index 3beeb4b..654a96d 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SPARC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
index a2b90b6..209f178 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
index 8f78a55..68a56c7 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition. Linux/sparc version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
index 679c389..4075b18 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/SPARC version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/poll.h b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
index 70f88fa..8ad8c4a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
index 21d365a..95d6c1a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
index 615716e..f992909 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SPARC version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
index 72952ad..487d6b5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
index c6f736c..9ffb7f5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/SPARC version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/resource.h b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
index 7711e84..193c946 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/SPARC version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
index 66aa299..3f959dd 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
index a35859f..4cb2df5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. SPARC version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
index 06b36fe..f5bc349 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/SPARC sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
index c9ae8b6..64784cb 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
index 0a45883..4df5b87 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
index ab4373f..6abf08b 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
index b065216..25102e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
index e7a6b68..98aec92 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for SPARC.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
index e60a88a..e4da461 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/SPARC.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
index fcab5f4..622b8e1 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
index 87be92c..75803d6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
index d434456..ff342c3 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h
index b9b94a4..34eba18 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,30 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
# define CBAUD 0x0000100f
# define CBAUDEX 0x00001000
-# define CIBAUD 0x100f0000 /* input baud rate (not used) */
-# define CMSPAR 0x40000000 /* mark or space (stick) parity */
-# define CRTSCTS 0x80000000 /* flow control */
+# define CIBAUD 0x100f0000 /* input baud rate */
+# define IBSHIFT 16
#endif
-#define B57600 0x00001001
-#define B115200 0x00001002
-#define B230400 0x00001003
-#define B460800 0x00001004
-#define B76800 0x00001005
-#define B153600 0x00001006
-#define B307200 0x00001007
-#define B614400 0x00001008
-#define B921600 0x00001009
-#define B500000 0x0000100a
-#define B576000 0x0000100b
-#define B1000000 0x0000100c
-#define B1152000 0x0000100d
-#define B1500000 0x0000100e
-#define B2000000 0x0000100f
-#define __MAX_BAUD B2000000
+#define __B57600 0x00001001
+#define __B115200 0x00001002
+#define __B230400 0x00001003
+#define __B460800 0x00001004
+#define __B76800 0x00001005
+#define __B153600 0x00001006
+#define __B307200 0x00001007
+#define __B614400 0x00001008
+#define __B921600 0x00001009
+#define __B500000 0x0000100a
+#define __B576000 0x0000100b
+#define __B1000000 0x0000100c
+#define __B1152000 0x0000100d
+#define __B1500000 0x0000100e
+#define __B2000000 0x0000100f
+#define __BOTHER 0x00001000
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
deleted file mode 100644
index c7cdc8c..0000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* struct termios definition. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
-#endif
-
-#define NCCS 17
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
- };
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
index 532f325..e381e97 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/timesize.h b/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
index 4ba7e22..ea129aa 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/sparc.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
index ed8d47c..60b8dbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/SPARC implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
index b9e729b..95d66ca 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* Sparc implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
index 7885d2a..1289e5a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/SPARC implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 9f3842a..97e9641 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/brk_call.h b/sysdeps/unix/sysv/linux/sparc/brk_call.h
index 167295c..99361c9 100644
--- a/sysdeps/unix/sysv/linux/sparc/brk_call.h
+++ b/sysdeps/unix/sysv/linux/sparc/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Sparc version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
index cb6cc56..b1e39aa 100644
--- a/sysdeps/unix/sysv/linux/sparc/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h b/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
index c390163..9006f08 100644
--- a/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Sparc version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
index f17b1a2..fc52b7d 100644
--- a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 sparc32 implementation (64 bits rlim_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/getshmlba.c b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
index 9f502f1..cfadee7 100644
--- a/sysdeps/unix/sysv/linux/sparc/getshmlba.c
+++ b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index f7efbae..24423db 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SPARC version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h b/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
deleted file mode 100644
index 61b7e84..0000000
--- a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 17
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
index 2dcad0a..22b3ba1 100644
--- a/sysdeps/unix/sysv/linux/sparc/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. sparc version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/old_termios.h b/sysdeps/unix/sysv/linux/sparc/old_termios.h
new file mode 100644
index 0000000..d7af589
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/old_termios.h
@@ -0,0 +1,31 @@
+/* old_termios.h for SPARC.
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _HAVE_STRUCT_OLD_TERMIOS 1
+
+#define OLD_NCCS 17
+typedef struct old_termios
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[OLD_NCCS]; /* control characters */
+} old_termios_t;
diff --git a/sysdeps/unix/sysv/linux/sparc/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
index ef40359..715a361 100644
--- a/sysdeps/unix/sysv/linux/sparc/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/Sparc64 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/readelflib.c b/sysdeps/unix/sysv/linux/sparc/readelflib.c
index afd5d7c..7f3dcab 100644
--- a/sysdeps/unix/sysv/linux/sparc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/sparc/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
index 871558d..31c0bbc 100644
--- a/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
index fb77639..7fbe3c2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h b/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
index 3bad6f1..85828a8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
@@ -136,6 +136,7 @@
#define __NR_getuid 24
#define __NR_getuid32 44
#define __NR_getxattr 172
+#define __NR_getxattrat 464
#define __NR_init_module 190
#define __NR_inotify_add_watch 152
#define __NR_inotify_init 151
@@ -171,6 +172,7 @@
#define __NR_listen 354
#define __NR_listmount 458
#define __NR_listxattr 178
+#define __NR_listxattrat 465
#define __NR_llistxattr 179
#define __NR_lookup_dcookie 208
#define __NR_lremovexattr 182
@@ -228,6 +230,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 333
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 284
#define __NR_openat2 437
#define __NR_pause 29
@@ -279,6 +282,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 192
#define __NR_removexattr 181
+#define __NR_removexattrat 466
#define __NR_rename 128
#define __NR_renameat 291
#define __NR_renameat2 345
@@ -351,6 +355,7 @@
#define __NR_setuid 23
#define __NR_setuid32 87
#define __NR_setxattr 169
+#define __NR_setxattrat 463
#define __NR_sgetmask 199
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
index 8104f46..71d4332 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index c9cf9bb..79af157 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,11 @@
ENTRY (__clone)
save %sp,-96,%sp
save %sp,-96,%sp
+#ifdef __sparcv9
flushw
+#else
+ ta 3
+#endif
restore
cfi_def_cfa_register(%fp)
cfi_window_save
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
index 4004c4e..d9d2ce8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e615be7..6deedf2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -3157,6 +3157,27 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
index 96e2fe9..e232731 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 15c958e..8107101 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1299,3 +1299,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
index 62013c4..7954b9c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h b/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
index ab106f6..e6ad73c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. 32-bit SPARC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
index e86d641..fbc9aa7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
index 6fcc2f9..187ec3e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S b/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
index 21d36c5..358c844 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
@@ -1,5 +1,5 @@
/* Sigreturn stub function used on sa_restore field.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
index 56abf67..01a138c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
index 2ae0854..082e1a3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S
new file mode 100644
index 0000000..6bdd87d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S
@@ -0,0 +1,80 @@
+/* Cancellable syscall wrapper. Linux/sparc32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ save %sp, -96, %sp
+
+ cfi_window_save
+ cfi_register (%o7, %i7)
+ cfi_def_cfa_register (%fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ld [%i0], %g2
+ andcc %g2, TCB_CANCELED_BITMASK, %g0
+#ifdef __sparcv9
+ bne,pn %icc, 2f
+#else
+ bne 2f
+#endif
+ /* Issue a 6 argument syscall. */
+ mov %i2, %o0
+ mov %i3, %o1
+ mov %i4, %o2
+ mov %i5, %o3
+ ld [%fp+92], %o4
+ ld [%fp+96], %o5
+ mov %i1, %g1
+ ta 0x10
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ bcc 1f
+ nop
+ sub %g0, %o0, %o0
+1:
+ mov %o0, %i0
+#ifdef __sparcv9
+ return %i7+8
+ nop
+#else
+ jmp %i7+8
+ restore
+#endif
+
+2:
+ call __syscall_do_cancel, 0
+ nop
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index d2d68f5..9ad5192 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -107,6 +107,7 @@ ENTRY(name); \
#else /* __ASSEMBLER__ */
#define __SYSCALL_STRING \
+ "mov %[scn], %%g1;" \
"ta 0x10;" \
"bcc 1f;" \
" nop;" \
@@ -114,7 +115,7 @@ ENTRY(name); \
"1:"
#define __SYSCALL_CLOBBERS \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "g1", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
index e124b28..8e578d1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index 8379e0f..7b98592 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
index fa521a9..5c82694 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h b/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
index 98e1437..d83ecd1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
@@ -121,6 +121,7 @@
#define __NR_gettimeofday 116
#define __NR_getuid 24
#define __NR_getxattr 172
+#define __NR_getxattrat 464
#define __NR_init_module 190
#define __NR_inotify_add_watch 152
#define __NR_inotify_init 151
@@ -154,6 +155,7 @@
#define __NR_listen 354
#define __NR_listmount 458
#define __NR_listxattr 178
+#define __NR_listxattrat 465
#define __NR_llistxattr 179
#define __NR_lookup_dcookie 208
#define __NR_lremovexattr 182
@@ -209,6 +211,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 333
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 284
#define __NR_openat2 437
#define __NR_pause 29
@@ -257,6 +260,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 192
#define __NR_removexattr 181
+#define __NR_removexattrat 466
#define __NR_rename 128
#define __NR_renameat 291
#define __NR_renameat2 345
@@ -320,6 +324,7 @@
#define __NR_settimeofday 122
#define __NR_setuid 23
#define __NR_setxattr 169
+#define __NR_setxattrat 463
#define __NR_sgetmask 199
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
index 8104f46..71d4332 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 370d51f..7800d0e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
index 4f807b6..b990ff8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
index 13d4b28..e793120 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
index 9c1944e..468b987 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. x86_64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h b/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
index 2aff560..8f4f9f8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
@@ -1,5 +1,5 @@
/* Struct kernel_stat64 to stat64. Linux/SPARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index bd36431..1ce22bf 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2793,6 +2793,27 @@ GLIBC_2.4 sys_errlist D 0x430
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
index 4f92302..4f0ca3d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index bf608f5..418ed9d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
index 5c0ab82..033137f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
index ca2248d..6539387 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h b/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
index d7b6899..ab17055 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. 64-bit SPARC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
index 644a4bb..f65717b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
index 6366af4..ceba233 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
index 2eb8ff6..1f70503 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S b/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
index 8c9fbbf..02e37d8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
@@ -1,5 +1,5 @@
/* Sigreturn stub function used on sa_restore field.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
index cf74c66..380cf64 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
index ddd515d..662954b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
index 0d0d3d1..7d5d211 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S
new file mode 100644
index 0000000..59765fe
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S
@@ -0,0 +1,74 @@
+/* Cancellable syscall wrapper. Linux/sparc64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+ .register %g2, #scratch
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ save %sp, -176, %sp
+
+ cfi_window_save
+ cfi_register (%o7, %i7)
+ cfi_def_cfa_register (%fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ lduw [%i0], %g2
+ andcc %g2, TCB_CANCELED_BITMASK, %g0
+ bne,pn %xcc, 2f
+ /* Issue a 6 argument syscall. */
+ mov %i2, %o0
+ mov %i3, %o1
+ mov %i4, %o2
+ mov %i5, %o3
+ ldx [%fp + STACK_BIAS + 176], %o4
+ ldx [%fp + STACK_BIAS + 184], %o5
+ mov %i1, %g1
+ ta 0x6d
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ bcc,pt %xcc, 1f
+ nop
+ sub %g0, %o0, %o0
+1:
+ mov %o0, %i0
+ return %i7+8
+ nop
+
+2:
+ call __syscall_do_cancel, 0
+ nop
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 9604742..1781dec 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -106,6 +106,7 @@ ENTRY(name); \
#else /* __ASSEMBLER__ */
#define __SYSCALL_STRING \
+ "mov %[scn], %%g1;" \
"ta 0x6d;" \
"bcc,pt %%xcc, 1f;" \
" nop;" \
@@ -113,7 +114,7 @@ ENTRY(name); \
"1:"
#define __SYSCALL_CLOBBERS \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "g1", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
index 59de36a..f271cad 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. sparc64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
index c41a932..0723904 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
index 46084c6..53ffecb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
index 144e608..7aedf24 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
index 027000a..eb210d0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
index 20da43b..29b6422 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
index 1061b39..42c864c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/user.h b/sysdeps/unix/sysv/linux/sparc/sys/user.h
index 44e9c09..7bbe4dc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sysdep.h
index dcabb57..0051f8b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,97 +50,109 @@
#undef INTERNAL_SYSCALL_NCS
#define INTERNAL_SYSCALL_NCS(name, nr, args...) \
- internal_syscall##nr(__SYSCALL_STRING, name, args)
+ _internal_syscall##nr(__SYSCALL_STRING, "p", name, args)
-#define internal_syscall0(string,name,dummy...) \
+#define _internal_syscall0(string,nc,name,dummy...) \
({ \
- register long int __g1 __asm__ ("g1") = (name); \
register long __o0 __asm__ ("o0"); \
+ long int _name = (long int) (name); \
__asm __volatile (string : "=r" (__o0) : \
- "r" (__g1) : \
+ [scn] nc (_name) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall0(string,name,args...) \
+ _internal_syscall0(string, "i", name, args)
-#define internal_syscall1(string,name,arg1) \
+#define _internal_syscall1(string,nc,name,arg1) \
({ \
long int _arg1 = (long int) (arg1); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0) : \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall1(string,name,args...) \
+ _internal_syscall1(string, "i", name, args)
-#define internal_syscall2(string,name,arg1,arg2) \
+#define _internal_syscall2(string,nc,name,arg1,arg2) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1) : \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall2(string,name,args...) \
+ _internal_syscall2(string, "i", name, args)
-#define internal_syscall3(string,name,arg1,arg2,arg3) \
+#define _internal_syscall3(string,nc,name,arg1,arg2,arg3) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall3(string,name,args...) \
+ _internal_syscall3(string, "i", name, args)
-#define internal_syscall4(string,name,arg1,arg2,arg3,arg4) \
+#define _internal_syscall4(string,nc,name,arg1,arg2,arg3,arg4) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall4(string,name,args...) \
+ _internal_syscall4(string, "i", name, args)
-#define internal_syscall5(string,name,arg1,arg2,arg3,arg4,arg5) \
+#define _internal_syscall5(string,nc,name,arg1,arg2,arg3,arg4,arg5) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall5(string,name,args...) \
+ _internal_syscall5(string, "i", name, args)
-#define internal_syscall6(string,name,arg1,arg2,arg3,arg4,arg5,arg6) \
+#define _internal_syscall6(string,nc,name,arg1,arg2,arg3,arg4,arg5,arg6)\
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
@@ -148,20 +160,22 @@
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
long int _arg6 = (long int) (arg6); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
register long int __o5 __asm__ ("o5") = _arg6; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4), \
"r" (__o5) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall6(string,name,args...) \
+ _internal_syscall6(string, "i", name, args)
#define INLINE_CLONE_SYSCALL(arg1,arg2,arg3,arg4,arg5) \
({ \
@@ -170,15 +184,15 @@
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
+ long int _name = __NR_clone; \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
- register long int __g1 __asm__ ("g1") = __NR_clone; \
__asm __volatile (__SYSCALL_STRING : \
"=r" (__o0), "=r" (__o1) : \
- "r" (__g1), "0" (__o0), "1" (__o1), \
+ [scn] "i" (_name), "0" (__o0), "1" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4) : \
__SYSCALL_CLOBBERS); \
if (__glibc_unlikely ((unsigned long int) (__o0) > -4096UL)) \
diff --git a/sysdeps/unix/sysv/linux/spawn_int_def.h b/sysdeps/unix/sysv/linux/spawn_int_def.h
index 604f3fb..524b320 100644
--- a/sysdeps/unix/sysv/linux/spawn_int_def.h
+++ b/sysdeps/unix/sysv/linux/spawn_int_def.h
@@ -1,5 +1,5 @@
/* Internal definitions for posix_spawn functionality. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c b/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
index c8f2a80..27e6664 100644
--- a/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
+++ b/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c b/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
index 1299c48..cd17ace 100644
--- a/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
+++ b/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index f57e928..eca1a84 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -1,5 +1,5 @@
/* POSIX spawn interface. Linux version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -115,7 +115,7 @@ __spawni_child (void *arguments)
memset (&sa, '\0', sizeof (sa));
sigset_t hset;
- __sigprocmask (SIG_BLOCK, 0, &hset);
+ __sigprocmask (SIG_BLOCK, NULL, &hset);
for (int sig = 1; sig < _NSIG; ++sig)
{
if ((attr->__flags & POSIX_SPAWN_SETSIGDEF)
@@ -129,7 +129,7 @@ __spawni_child (void *arguments)
sa.sa_handler = SIG_IGN;
else
{
- __libc_sigaction (sig, 0, &sa);
+ __libc_sigaction (sig, NULL, &sa);
if (sa.sa_handler == SIG_IGN || sa.sa_handler == SIG_DFL)
continue;
sa.sa_handler = SIG_DFL;
@@ -138,7 +138,7 @@ __spawni_child (void *arguments)
else
continue;
- __libc_sigaction (sig, &sa, 0);
+ __libc_sigaction (sig, &sa, NULL);
}
#ifdef _POSIX_PRIORITY_SCHEDULING
@@ -172,7 +172,7 @@ __spawni_child (void *arguments)
goto fail;
/* Execute the file actions. */
- if (file_actions != 0)
+ if (file_actions != NULL)
{
int cnt;
struct rlimit64 fdlimit;
@@ -383,7 +383,11 @@ __spawnix (int *pid, const char *file,
args.pidfd = 0;
args.xflags = xflags;
- internal_signal_block_all (&args.oldmask);
+ /* Avoid the potential issues if caller sets a SIG_IGN for SIGABRT, calls
+ abort, and another thread issues posix_spawn just after the sigaction
+ returns. With default options (not setting POSIX_SPAWN_SETSIGDEF), the
+ process can still see SIG_DFL for SIGABRT, where it should be SIG_IGN. */
+ __abort_lock_rdlock (&args.oldmask);
/* The clone flags used will create a new child that will run in the same
memory space (CLONE_VM) and the execution of calling thread will be
@@ -474,7 +478,7 @@ __spawnix (int *pid, const char *file,
if ((ec == 0) && (pid != NULL))
*pid = use_pidfd ? args.pidfd : new_pid;
- internal_signal_restore_set (&args.oldmask);
+ __abort_lock_unlock (&args.oldmask);
__pthread_setcancelstate (state, NULL);
diff --git a/sysdeps/unix/sysv/linux/speed.c b/sysdeps/unix/sysv/linux/speed.c
index 2753b02..4efb0de 100644
--- a/sysdeps/unix/sysv/linux/speed.c
+++ b/sysdeps/unix/sysv/linux/speed.c
@@ -1,5 +1,5 @@
/* `struct termios' speed frobnication functions. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,82 +16,351 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <stddef.h>
-#include <errno.h>
-#include <termios.h>
-#include <sysdep.h>
+#include <termios_internals.h>
-/* This is a gross hack around a kernel bug. If the cfsetispeed functions
- is called with the SPEED argument set to zero this means use the same
- speed as for output. But we don't have independent input and output
- speeds and therefore cannot record this.
+/* Conversions between legacy c_cflag fields and actual baud rates */
- We use an unused bit in the `c_iflag' field to keep track of this
- use of `cfsetispeed'. The value here must correspond to the one used
- in `tcsetattr.c'. */
-#define IBAUD0 020000000000
+/* These expressions may seem complicated; the _cbix() macro
+ compresses the CBAUD field into an index in the range 0-31. On most
+ Linux platforms, the CBAUD field is 5 bits, but the topmost bit
+ indicated by CBAUDEX, is discontinous with the rest.
+
+ The resulting masks look like:
+
+ Alpha PowerPC others
+
+ CBAUD 0x001f 0x00ff 0x100f
+ CBAUDEX 0x0000 0x0010 0x1000
+
+ LOWCBAUD 0x001f 0x000f 0x000f
+ CBAUDMASK 0x001f 0x001f 0x100f
+
+ CBAUDMASK is used to test for invalid values passed to the
+ compatibility functions or in termios::c_cflag on PowerPC.
+
+ The divide-multiply sequence in the _cbix() macro gets converted
+ to shift and masks as necessary by the compiler. */
+
+#define LOWCBAUD (CBAUD & (CBAUDEX-1))
+#define _cbix(x) (((x) & LOWCBAUD) | \
+ (CBAUDEX ? ((x) & CBAUDEX)/CBAUDEX * (LOWCBAUD+1) : 0))
+#define CBAUDMASK (LOWCBAUD | CBAUDEX)
+
+/* Compile time sanity checks for broken CBAUD or CIBAUD definitions */
+#if CIBAUD != (CBAUD << IBSHIFT)
+# error "CIBAUD should == CBAUD << IBSHIFT"
+#elif CBAUDEX & (CBAUDEX-1)
+# error "CBAUDEX should either be 0 or a single bit"
+#elif !(CBAUD & 1)
+# error "The CBAUD field should start at bit 0"
+#elif CBAUDEX & ~CBAUD
+# error "CBAUD should include the CBAUDEX bit"
+#endif
+
+speed_t
+___cbaud_to_speed (tcflag_t c_cflag, speed_t other)
+{
+ static const speed_t cbaudix_to_speed [] =
+ {
+ [0 ... _cbix(CBAUDMASK)] = -1,
+ [_cbix(__B0)] = 0,
+ [_cbix(__B50)] = 50,
+ [_cbix(__B75)] = 75,
+ [_cbix(__B110)] = 110,
+ [_cbix(__B134)] = 134,
+ [_cbix(__B150)] = 150,
+ [_cbix(__B200)] = 200,
+ [_cbix(__B300)] = 300,
+ [_cbix(__B600)] = 600,
+ [_cbix(__B1200)] = 1200,
+ [_cbix(__B1800)] = 1800,
+ [_cbix(__B2400)] = 2400,
+ [_cbix(__B4800)] = 4800,
+ [_cbix(__B9600)] = 9600,
+ [_cbix(__B19200)] = 19200,
+ [_cbix(__B38400)] = 38400,
+ [_cbix(__B57600)] = 57600,
+ [_cbix(__B115200)] = 115200,
+ [_cbix(__B230400)] = 230400,
+ [_cbix(__B460800)] = 460800,
+ [_cbix(__B500000)] = 500000,
+ [_cbix(__B576000)] = 576000,
+ [_cbix(__B921600)] = 921600,
+ [_cbix(__B1000000)] = 1000000,
+ [_cbix(__B1152000)] = 1152000,
+ [_cbix(__B1500000)] = 1500000,
+ [_cbix(__B2000000)] = 2000000,
+#ifdef __B7200
+ [_cbix(__B7200)] = 7200,
+#endif
+#ifdef __B14400
+ [_cbix(__B14400)] = 14400,
+#endif
+#ifdef __B28800
+ [_cbix(__B28800)] = 28800,
+#endif
+#ifdef __B76800
+ [_cbix(__B76800)] = 76800,
+#endif
+#ifdef __B153600
+ [_cbix(__B153600)] = 153600,
+#endif
+#ifdef __B307200
+ [_cbix(__B307200)] = 307200,
+#endif
+#ifdef __B614400
+ [_cbix(__B614400)] = 614400,
+#endif
+#ifdef __B2500000
+ [_cbix(__B2500000)] = 2500000,
+#endif
+#ifdef __B3000000
+ [_cbix(__B3000000)] = 3000000,
+#endif
+#ifdef __B3500000
+ [_cbix(__B3500000)] = 3500000,
+#endif
+#ifdef __B4000000
+ [_cbix(__B4000000)] = 4000000,
+#endif
+ };
+ speed_t speed;
+
+ if (c_cflag & (tcflag_t)(~CBAUDMASK))
+ return other;
+
+ speed = cbaudix_to_speed[_cbix(c_cflag)];
+ return speed == (speed_t)-1 ? other : speed;
+}
+
+tcflag_t
+___speed_to_cbaud (speed_t speed)
+{
+ switch (speed) {
+ case 0:
+ return __B0;
+ case 50:
+ return __B50;
+ case 75:
+ return __B75;
+ case 110:
+ return __B110;
+ case 134:
+ return __B134;
+ case 150:
+ return __B150;
+ case 200:
+ return __B200;
+ case 300:
+ return __B300;
+ case 600:
+ return __B600;
+ case 1200:
+ return __B1200;
+ case 1800:
+ return __B1800;
+ case 2400:
+ return __B2400;
+ case 4800:
+ return __B4800;
+ case 9600:
+ return __B9600;
+ case 19200:
+ return __B19200;
+ case 38400:
+ return __B38400;
+ case 57600:
+ return __B57600;
+ case 115200:
+ return __B115200;
+ case 230400:
+ return __B230400;
+ case 460800:
+ return __B460800;
+ case 500000:
+ return __B500000;
+ case 576000:
+ return __B576000;
+ case 921600:
+ return __B921600;
+ case 1000000:
+ return __B1000000;
+ case 1152000:
+ return __B1152000;
+ case 1500000:
+ return __B1500000;
+ case 2000000:
+ return __B2000000;
+#ifdef __B76800
+ case 76800:
+ return __B76800;
+#endif
+#ifdef __B153600
+ case 153600:
+ return __B153600;
+#endif
+#ifdef __B307200
+ case 307200:
+ return __B307200;
+#endif
+#ifdef __B614400
+ case 614400:
+ return __B614400;
+#endif
+#ifdef __B2500000
+ case 2500000:
+ return __B2500000;
+#endif
+#ifdef __B3000000
+ case 3000000:
+ return __B3000000;
+#endif
+#ifdef __B3500000
+ case 3500000:
+ return __B3500000;
+#endif
+#ifdef __B4000000
+ case 4000000:
+ return __B4000000;
+#endif
+ default:
+ return __BOTHER;
+ }
+}
+
+
+/* Canonicalize the representation of speed fields in a kernel
+ termios2 structure. Specifically, if there is a valid legacy cbaud
+ representation (not __BOTHER), use it and propagate the
+ corresponding speed value to ispeed/ospeed, otherwise the other way
+ around if possible. Finally, if the input speed is zero, copy the
+ output speed to the input speed.
+
+ The kernel doesn't do this canonicalization, which can affect
+ legacy utilities, so do it here.
+
+ This is used by tcgetattr() and tcsetattr(). */
+void
+___termios2_canonicalize_speeds (struct termios2 *k_termios_p)
+{
+ k_termios_p->c_ospeed =
+ ___cbaud_to_speed (cbaud (k_termios_p->c_cflag), k_termios_p->c_ospeed);
+ k_termios_p->c_ispeed =
+ ___cbaud_to_speed (cibaud (k_termios_p->c_cflag), k_termios_p->c_ispeed);
+
+ if (!k_termios_p->c_ispeed)
+ k_termios_p->c_ispeed = k_termios_p->c_ospeed;
+
+ k_termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ k_termios_p->c_cflag |= ___speed_to_cbaud (k_termios_p->c_ospeed);
+ k_termios_p->c_cflag |= ___speed_to_cbaud (k_termios_p->c_ispeed) << IBSHIFT;
+}
/* Return the output baud rate stored in *TERMIOS_P. */
speed_t
-cfgetospeed (const struct termios *termios_p)
+__cfgetospeed (const struct termios *termios_p)
{
- return termios_p->c_cflag & (CBAUD | CBAUDEX);
+ return termios_p->c_ospeed;
}
+libc_hidden_def (__cfgetospeed)
+versioned_symbol (libc, __cfgetospeed, cfgetospeed, GLIBC_2_42);
-/* Return the input baud rate stored in *TERMIOS_P.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
+/* Return the input baud rate stored in *TERMIOS_P. */
speed_t
-cfgetispeed (const struct termios *termios_p)
+__cfgetispeed (const struct termios *termios_p)
{
- return ((termios_p->c_iflag & IBAUD0)
- ? 0 : termios_p->c_cflag & (CBAUD | CBAUDEX));
+ return termios_p->c_ispeed;
}
+libc_hidden_def (__cfgetispeed)
+versioned_symbol (libc, __cfgetispeed, cfgetispeed, GLIBC_2_42);
/* Set the output baud rate stored in *TERMIOS_P to SPEED. */
int
-cfsetospeed (struct termios *termios_p, speed_t speed)
+__cfsetospeed (struct termios *termios_p, speed_t speed)
{
- if ((speed & ~CBAUD) != 0
- && (speed < B57600 || speed > __MAX_BAUD))
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
-#if _HAVE_STRUCT_TERMIOS_C_OSPEED
termios_p->c_ospeed = speed;
+ termios_p->c_cflag &= ~CBAUD;
+ termios_p->c_cflag |= cbaud;
+
+ return 0;
+}
+libc_hidden_def (__cfsetospeed)
+versioned_symbol (libc, __cfsetospeed, cfsetospeed, GLIBC_2_42);
+
+/* Set the input baud rate stored in *TERMIOS_P to SPEED. */
+int
+__cfsetispeed (struct termios *termios_p, speed_t speed)
+{
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
+
+ termios_p->c_ispeed = speed;
+ termios_p->c_cflag &= ~CIBAUD;
+ termios_p->c_cflag |= cbaud << IBSHIFT;
+
+ return 0;
+}
+libc_hidden_def (__cfsetispeed)
+versioned_symbol (libc, __cfsetispeed, cfsetispeed, GLIBC_2_42);
+
+#if _TERMIOS_OLD_COMPAT
+
+/* Legacy versions which returns cbaud-encoded speed_t values */
+
+speed_t
+attribute_compat_text_section
+__old_cfgetospeed (const old_termios_t *termios_p)
+{
+ return cbaud (termios_p->c_cflag);
+}
+compat_symbol (libc, __old_cfgetospeed, cfgetospeed, GLIBC_2_0);
+
+speed_t
+attribute_compat_text_section
+__old_cfgetispeed (const old_termios_t *termios_p)
+{
+ return cibaud (termios_p->c_cflag);
+}
+compat_symbol (libc, __old_cfgetispeed, cfgetispeed, GLIBC_2_0);
+
+int
+attribute_compat_text_section
+__old_cfsetospeed (old_termios_t *termios_p, speed_t speed)
+{
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise this field doesn't exist in old_termios_t */
+ termios_p->c_ospeed = real_speed;
#endif
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
+ termios_p->c_cflag &= ~CBAUD;
termios_p->c_cflag |= speed;
return 0;
}
-libc_hidden_def (cfsetospeed)
+compat_symbol (libc, __old_cfsetospeed, cfsetospeed, GLIBC_2_0);
-
-/* Set the input baud rate stored in *TERMIOS_P to SPEED.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
int
-cfsetispeed (struct termios *termios_p, speed_t speed)
+attribute_compat_text_section
+__old_cfsetispeed (old_termios_t *termios_p, speed_t speed)
{
- if ((speed & ~CBAUD) != 0
- && (speed < B57600 || speed > __MAX_BAUD))
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-#if _HAVE_STRUCT_TERMIOS_C_ISPEED
- termios_p->c_ispeed = speed;
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise this field doesn't exist in old_termios_t */
+ termios_p->c_ispeed = real_speed;
#endif
- if (speed == 0)
- termios_p->c_iflag |= IBAUD0;
- else
- {
- termios_p->c_iflag &= ~IBAUD0;
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
- termios_p->c_cflag |= speed;
- }
+ termios_p->c_cflag &= ~CIBAUD;
+ termios_p->c_cflag |= speed << IBSHIFT;
return 0;
}
-libc_hidden_def (cfsetispeed)
+compat_symbol (libc, __old_cfsetispeed, cfsetispeed, GLIBC_2_0);
+
+#endif /* _TERMIOS_OLD_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/splice.c b/sysdeps/unix/sysv/linux/splice.c
index ab39620..9a34238 100644
--- a/sysdeps/unix/sysv/linux/splice.c
+++ b/sysdeps/unix/sysv/linux/splice.c
@@ -1,5 +1,5 @@
/* Splice data to/from a pipe Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/startup.h b/sysdeps/unix/sysv/linux/startup.h
index 0092753..0b11bc0 100644
--- a/sysdeps/unix/sysv/linux/startup.h
+++ b/sysdeps/unix/sysv/linux/startup.h
@@ -1,5 +1,5 @@
/* Linux definitions of functions used by static libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat.c b/sysdeps/unix/sysv/linux/stat.c
index 21364f6..ce5175b 100644
--- a/sysdeps/unix/sysv/linux/stat.c
+++ b/sysdeps/unix/sysv/linux/stat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat64.c b/sysdeps/unix/sysv/linux/stat64.c
index 4c8e175..61b6f5e 100644
--- a/sysdeps/unix/sysv/linux/stat64.c
+++ b/sysdeps/unix/sysv/linux/stat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat_t64_cp.c b/sysdeps/unix/sysv/linux/stat_t64_cp.c
index 3a07b78..a409f95 100644
--- a/sysdeps/unix/sysv/linux/stat_t64_cp.c
+++ b/sysdeps/unix/sysv/linux/stat_t64_cp.c
@@ -1,5 +1,5 @@
/* Struct stat/stat64 to stat/stat64 conversion for Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat_t64_cp.h b/sysdeps/unix/sysv/linux/stat_t64_cp.h
index 176b995..7f34f78 100644
--- a/sysdeps/unix/sysv/linux/stat_t64_cp.h
+++ b/sysdeps/unix/sysv/linux/stat_t64_cp.h
@@ -1,5 +1,5 @@
/* Copy to/from struct stat with and without 64-bit time_t support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statfs.c b/sysdeps/unix/sysv/linux/statfs.c
index 5330063..74b0538 100644
--- a/sysdeps/unix/sysv/linux/statfs.c
+++ b/sysdeps/unix/sysv/linux/statfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statfs64.c b/sysdeps/unix/sysv/linux/statfs64.c
index 477dc12..fa26fa8 100644
--- a/sysdeps/unix/sysv/linux/statfs64.c
+++ b/sysdeps/unix/sysv/linux/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c
index 724468c..4c7d6fc 100644
--- a/sysdeps/unix/sysv/linux/statvfs.c
+++ b/sysdeps/unix/sysv/linux/statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statvfs64.c b/sysdeps/unix/sysv/linux/statvfs64.c
index 561e916..7ede175 100644
--- a/sysdeps/unix/sysv/linux/statvfs64.c
+++ b/sysdeps/unix/sysv/linux/statvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx.c b/sysdeps/unix/sysv/linux/statx.c
index a6295a1..9581ed1 100644
--- a/sysdeps/unix/sysv/linux/statx.c
+++ b/sysdeps/unix/sysv/linux/statx.c
@@ -1,5 +1,5 @@
/* Linux statx implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx_cp.c b/sysdeps/unix/sysv/linux/statx_cp.c
index ecddf6c..1afe840 100644
--- a/sysdeps/unix/sysv/linux/statx_cp.c
+++ b/sysdeps/unix/sysv/linux/statx_cp.c
@@ -1,5 +1,5 @@
/* Struct statx to stat/stat64 conversion for Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx_cp.h b/sysdeps/unix/sysv/linux/statx_cp.h
index ee73a77..13f680c 100644
--- a/sysdeps/unix/sysv/linux/statx_cp.h
+++ b/sysdeps/unix/sysv/linux/statx_cp.h
@@ -1,5 +1,5 @@
/* Struct statx to stat/stat64 conversion for Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/struct_stat_time64.h b/sysdeps/unix/sysv/linux/struct_stat_time64.h
index 52797de..c2efdff 100644
--- a/sysdeps/unix/sysv/linux/struct_stat_time64.h
+++ b/sysdeps/unix/sysv/linux/struct_stat_time64.h
@@ -1,5 +1,5 @@
/* Struct stat with 64-bit time support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/symlink.c b/sysdeps/unix/sysv/linux/symlink.c
index 8fe2c88..ebcb8f4 100644
--- a/sysdeps/unix/sysv/linux/symlink.c
+++ b/sysdeps/unix/sysv/linux/symlink.c
@@ -1,5 +1,5 @@
/* Make a new name for a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sync_file_range.c b/sysdeps/unix/sysv/linux/sync_file_range.c
index 2a71d10..2c9f780 100644
--- a/sysdeps/unix/sysv/linux/sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/sync_file_range.c
@@ -1,5 +1,5 @@
/* Selective file content synch'ing.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index ab2bfb0..509b7ec 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h
index 45e546f..42dbe70 100644
--- a/sysdeps/unix/sysv/linux/sys/epoll.h
+++ b/sysdeps/unix/sysv/linux/sys/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/eventfd.h b/sysdeps/unix/sysv/linux/sys/eventfd.h
index 32cd267..e236cba 100644
--- a/sysdeps/unix/sysv/linux/sys/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sys/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/fanotify.h b/sysdeps/unix/sysv/linux/sys/fanotify.h
index f2e712b..d5a9afe 100644
--- a/sysdeps/unix/sysv/linux/sys/fanotify.h
+++ b/sysdeps/unix/sysv/linux/sys/fanotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h
index d51a395..3113985 100644
--- a/sysdeps/unix/sysv/linux/sys/fsuid.h
+++ b/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/inotify.h b/sysdeps/unix/sysv/linux/sys/inotify.h
index 566302a..8b23422 100644
--- a/sysdeps/unix/sysv/linux/sys/inotify.h
+++ b/sysdeps/unix/sysv/linux/sys/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/kd.h b/sysdeps/unix/sysv/linux/sys/kd.h
index 231c058..675dcd7 100644
--- a/sysdeps/unix/sysv/linux/sys/kd.h
+++ b/sysdeps/unix/sysv/linux/sys/kd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/klog.h b/sysdeps/unix/sysv/linux/sys/klog.h
index 189dd80..c3c62ed 100644
--- a/sysdeps/unix/sysv/linux/sys/klog.h
+++ b/sysdeps/unix/sysv/linux/sys/klog.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index e5964b5..b549e75 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -1,5 +1,5 @@
/* Header file for mounting/unmount Linux filesystems.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -121,7 +121,7 @@ enum
MS_ACTIVE = 1 << 30,
#define MS_ACTIVE MS_ACTIVE
#undef MS_NOUSER
- MS_NOUSER = 1 << 31
+ MS_NOUSER = 1U << 31
#define MS_NOUSER MS_NOUSER
};
diff --git a/sysdeps/unix/sysv/linux/sys/pci.h b/sysdeps/unix/sysv/linux/sys/pci.h
index dd55553..400338c 100644
--- a/sysdeps/unix/sysv/linux/sys/pci.h
+++ b/sysdeps/unix/sysv/linux/sys/pci.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/personality.h b/sysdeps/unix/sysv/linux/sys/personality.h
index 40635ba..3f8971d 100644
--- a/sysdeps/unix/sysv/linux/sys/personality.h
+++ b/sysdeps/unix/sysv/linux/sys/personality.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/pidfd.h b/sysdeps/unix/sysv/linux/sys/pidfd.h
index 9f88d29..e6fc024 100644
--- a/sysdeps/unix/sysv/linux/sys/pidfd.h
+++ b/sysdeps/unix/sysv/linux/sys/pidfd.h
@@ -1,5 +1,5 @@
/* Wrapper for file descriptors that refers to a process functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <fcntl.h>
#include <bits/types/siginfo_t.h>
+#include <sys/ioctl.h>
#define PIDFD_NONBLOCK O_NONBLOCK
#define PIDFD_THREAD O_EXCL
@@ -28,6 +29,19 @@
#define PIDFD_SIGNAL_THREAD_GROUP (1UL << 1)
#define PIDFD_SIGNAL_PROCESS_GROUP (1UL << 2)
+#define PIDFS_IOCTL_MAGIC 0xFF
+
+#define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1)
+#define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2)
+#define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3)
+#define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4)
+#define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5)
+#define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6)
+#define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7)
+#define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8)
+#define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9)
+#define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10)
+
/* Returns a file descriptor that refers to the process PID. The
close-on-exec is set on the file descriptor. */
extern int pidfd_open (__pid_t __pid, unsigned int __flags) __THROW;
diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h
index 79a9b31..d2cdf15 100644
--- a/sysdeps/unix/sysv/linux/sys/prctl.h
+++ b/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index d5ec3bf..5de91f6 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -1,5 +1,5 @@
/* Definitions for core files and libthread_db. Generic Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 6622c9c..d2ac671 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h
index 8121148..83a8653 100644
--- a/sysdeps/unix/sysv/linux/sys/quota.h
+++ b/sysdeps/unix/sysv/linux/sys/quota.h
@@ -1,5 +1,5 @@
/* This just represents the non-kernel parts of <linux/quota.h>.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/raw.h b/sysdeps/unix/sysv/linux/sys/raw.h
index 65fce10..5dfa9bd 100644
--- a/sysdeps/unix/sysv/linux/sys/raw.h
+++ b/sysdeps/unix/sysv/linux/sys/raw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/reboot.h b/sysdeps/unix/sysv/linux/sys/reboot.h
index feda785..dc46766 100644
--- a/sysdeps/unix/sysv/linux/sys/reboot.h
+++ b/sysdeps/unix/sysv/linux/sys/reboot.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/rseq.h b/sysdeps/unix/sysv/linux/sys/rseq.h
index b8afab8..38fdb27 100644
--- a/sysdeps/unix/sysv/linux/sys/rseq.h
+++ b/sysdeps/unix/sysv/linux/sys/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences exported symbols. Linux header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -152,6 +152,17 @@ struct rseq
Inhibit instruction sequence block restart on migration for
this thread. */
uint32_t flags;
+ /* Restartable sequences node_id field. Updated by the kernel. Read by
+ user-space with single-copy atomicity semantics. This field should only
+ be read by the thread which registered this data structure. Aligned on
+ 32-bit. Contains the current NUMA node ID. */
+ uint32_t node_id;
+ /* Restartable sequences mm_cid field. Updated by the kernel. Read by
+ user-space with single-copy atomicity semantics. This field should only
+ be read by the thread which registered this data structure. Aligned on
+ 32-bit. Contains the current thread's concurrency ID (allocated
+ uniquely within a memory map). */
+ uint32_t mm_cid;
} __attribute__ ((__aligned__ (32)));
#endif /* __GLIBC_HAVE_KERNEL_RSEQ */
diff --git a/sysdeps/unix/sysv/linux/sys/signalfd.h b/sysdeps/unix/sysv/linux/sys/signalfd.h
index 26313f9..736bbe0 100644
--- a/sysdeps/unix/sysv/linux/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sys/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h
index 5b06adb..6e53956 100644
--- a/sysdeps/unix/sysv/linux/sys/swap.h
+++ b/sysdeps/unix/sysv/linux/sys/swap.h
@@ -1,5 +1,5 @@
/* Calls to enable and disable swapping on specified locations. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/syscall.h b/sysdeps/unix/sysv/linux/sys/syscall.h
index 259d7a7..781f178 100644
--- a/sysdeps/unix/sysv/linux/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/sys/syscall.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/sysinfo.h b/sysdeps/unix/sysv/linux/sys/sysinfo.h
index e6a7cb9..e32d2de 100644
--- a/sysdeps/unix/sysv/linux/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/sys/sysinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/timerfd.h b/sysdeps/unix/sysv/linux/sys/timerfd.h
index f66ece3..3c181a7 100644
--- a/sysdeps/unix/sysv/linux/sys/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sys/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/timex.h b/sysdeps/unix/sysv/linux/sys/timex.h
index 568748d..db67ca2 100644
--- a/sysdeps/unix/sysv/linux/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/sys/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
index 7871f93..bde20e4 100644
--- a/sysdeps/unix/sysv/linux/syscall-names.list
+++ b/sysdeps/unix/sysv/linux/syscall-names.list
@@ -1,5 +1,5 @@
# List of all known Linux system calls.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,8 @@
# This file can list all potential system calls. The names are only
# used if the installed kernel headers also provide them.
-# The list of system calls is current as of Linux 6.10.
-kernel 6.10
+# The list of system calls is current as of Linux 6.15.
+kernel 6.15
FAST_atomic_update
FAST_cmpxchg
@@ -198,6 +198,7 @@ getuid
getuid32
getunwind
getxattr
+getxattrat
getxgid
getxpid
getxuid
@@ -241,6 +242,7 @@ linkat
listen
listmount
listxattr
+listxattrat
llistxattr
llseek
lock
@@ -314,6 +316,7 @@ olduname
open
open_by_handle_at
open_tree
+open_tree_attr
openat
openat2
or1k_atomic
@@ -482,6 +485,7 @@ recvmmsg_time64
recvmsg
remap_file_pages
removexattr
+removexattrat
rename
renameat
renameat2
@@ -572,6 +576,7 @@ settimeofday
setuid
setuid32
setxattr
+setxattrat
sgetmask
shmat
shmctl
@@ -653,6 +658,7 @@ uname
unlink
unlinkat
unshare
+uretprobe
uselib
userfaultfd
usr26
diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c
index 3cff1d9..50496c7 100644
--- a/sysdeps/unix/sysv/linux/syscall.c
+++ b/sysdeps/unix/sysv/linux/syscall.c
@@ -1,5 +1,5 @@
/* Indirect system call. Linux generic implementation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/syscall_cancel.c b/sysdeps/unix/sysv/linux/syscall_cancel.c
new file mode 100644
index 0000000..2af7245
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/syscall_cancel.c
@@ -0,0 +1,73 @@
+/* Pthread cancellation syscall bridge. Default Linux version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <pthreadP.h>
+
+#warning "This implementation should be use just as reference or for bootstrapping"
+
+/* This is the generic version of the cancellable syscall code which
+ adds the label guards (__syscall_cancel_arch_{start,end}) used on SIGCANCEL
+ handler to check if the cancelled syscall have side-effects that need to be
+ returned to the caller.
+
+ This implementation should be used as a reference one to document the
+ implementation constraints:
+
+ 1. The __syscall_cancel_arch_start should point just before the test
+ that thread is already cancelled,
+ 2. The __syscall_cancel_arch_end should point to the immediate next
+ instruction after the syscall one.
+ 3. It should return the syscall value or a negative result if is has
+ failed, similar to INTERNAL_SYSCALL_CALL.
+
+ The __syscall_cancel_arch_end one is because the kernel will signal
+ interrupted syscall with side effects by setting the signal frame program
+ counter (on the ucontext_t third argument from SA_SIGINFO signal handler)
+ right after the syscall instruction.
+
+ For some architecture, the INTERNAL_SYSCALL_NCS macro use more instructions
+ to get the error condition from kernel (as for powerpc and sparc that
+ checks for the conditional register), or uses an out of the line helper
+ (ARM thumb), or uses a kernel helper gate (i686 or ia64). In this case
+ the architecture should either adjust the macro or provide a custom
+ __syscall_cancel_arch implementation. */
+
+long int
+__syscall_cancel_arch (volatile int *ch, __syscall_arg_t nr,
+ __syscall_arg_t a1, __syscall_arg_t a2,
+ __syscall_arg_t a3, __syscall_arg_t a4,
+ __syscall_arg_t a5, __syscall_arg_t a6
+ __SYSCALL_CANCEL7_ARG_DEF)
+{
+#define ADD_LABEL(__label) \
+ asm volatile ( \
+ ".global " __label "\t\n" \
+ __label ":\n");
+
+ ADD_LABEL ("__syscall_cancel_arch_start");
+ if (__glibc_unlikely (*ch & CANCELED_BITMASK))
+ __syscall_do_cancel();
+
+ long int result = INTERNAL_SYSCALL_NCS_CALL (nr, a1, a2, a3, a4, a5, a6
+ __SYSCALL_CANCEL7_ARG7);
+ ADD_LABEL ("__syscall_cancel_arch_end");
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result)))
+ return -INTERNAL_SYSCALL_ERRNO (result);
+ return result;
+}
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 9ac42c3..f1cfe8d 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -102,8 +102,8 @@ name_to_handle_at EXTRA name_to_handle_at i:isppi name_to_handle_at
setns EXTRA setns i:ii setns
memfd_create EXTRA memfd_create i:si memfd_create
-pkey_alloc EXTRA pkey_alloc i:ii pkey_alloc
-pkey_free EXTRA pkey_free i:i pkey_free
+pkey_alloc EXTRA pkey_alloc i:ii __pkey_alloc pkey_alloc
+pkey_free EXTRA pkey_free i:i __pkey_free pkey_free
gettid EXTRA gettid Ei: __gettid gettid
tgkill EXTRA tgkill i:iii __tgkill tgkill
close_range - close_range i:iii __close_range close_range
diff --git a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h b/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
index 2a4a1eb..6cbd0b6 100644
--- a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
@@ -1,5 +1,5 @@
/* __get_pthread_stack_min (). Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysconf-sigstksz.h b/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
index 884d27f..c4e51e3 100644
--- a/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
+++ b/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
@@ -1,5 +1,5 @@
/* sysconf_sigstksz (). Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysconf.c b/sysdeps/unix/sysv/linux/sysconf.c
index 009ca9d..1245b2a 100644
--- a/sysdeps/unix/sysv/linux/sysconf.c
+++ b/sysdeps/unix/sysv/linux/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c
index 903e89c..4412382 100644
--- a/sysdeps/unix/sysv/linux/sysctl.c
+++ b/sysdeps/unix/sysv/linux/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sysdep-cancel.h
index c48a50f..96c9a90 100644
--- a/sysdeps/unix/sysv/linux/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/sysdep-cancel.h
@@ -1,5 +1,5 @@
/* Single-thread optimization definitions. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,17 +21,5 @@
#define _SYSDEP_CANCEL_H
#include <sysdep.h>
-#include <tls.h>
-#include <errno.h>
-
-/* Set cancellation mode to asynchronous. */
-extern int __pthread_enable_asynccancel (void);
-libc_hidden_proto (__pthread_enable_asynccancel)
-#define LIBC_CANCEL_ASYNC() __pthread_enable_asynccancel ()
-
-/* Reset to previous cancellation mode. */
-extern void __pthread_disable_asynccancel (int oldtype);
-libc_hidden_proto (__pthread_disable_asynccancel)
-#define LIBC_CANCEL_RESET(oldtype) __pthread_disable_asynccancel (oldtype)
#endif
diff --git a/sysdeps/unix/sysv/linux/sysdep-vdso.h b/sysdeps/unix/sysv/linux/sysdep-vdso.h
index 2f53ada..5a338718 100644
--- a/sysdeps/unix/sysv/linux/sysdep-vdso.h
+++ b/sysdeps/unix/sysv/linux/sysdep-vdso.h
@@ -1,5 +1,5 @@
/* vDSO common definition for Linux.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index bf260a7..1385082 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcdrain.c b/sysdeps/unix/sysv/linux/tcdrain.c
index 34f8c73..8acd418 100644
--- a/sysdeps/unix/sysv/linux/tcdrain.c
+++ b/sysdeps/unix/sysv/linux/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcflow.c b/sysdeps/unix/sysv/linux/tcflow.c
index 810a2eb..afc44e6 100644
--- a/sysdeps/unix/sysv/linux/tcflow.c
+++ b/sysdeps/unix/sysv/linux/tcflow.c
@@ -1,5 +1,5 @@
/* tcflow -- Suspend or restart transmission on termios file descriptor.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcflush.c b/sysdeps/unix/sysv/linux/tcflush.c
index 68b0548..587b0b9 100644
--- a/sysdeps/unix/sysv/linux/tcflush.c
+++ b/sysdeps/unix/sysv/linux/tcflush.c
@@ -1,5 +1,5 @@
/* tcflush -- Flush pending data on termios file descriptor. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c
index 68e0637..36f68a7 100644
--- a/sysdeps/unix/sysv/linux/tcgetattr.c
+++ b/sysdeps/unix/sysv/linux/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,66 +15,56 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sysdep.h>
-
-/* The difference here is that the termios structure used in the
- kernel is not the same as we use in the libc. Therefore we must
- translate it here. */
-#include <kernel_termios.h>
+#include <termios_internals.h>
/* Put the state of FD into *TERMIOS_P. */
int
__tcgetattr (int fd, struct termios *termios_p)
{
- struct __kernel_termios k_termios;
- int retval;
-
- retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
+ struct termios2 k_termios;
+ long int retval = INLINE_SYSCALL_CALL (ioctl, fd, ARCH_TCGETS, &k_termios);
- if (__glibc_likely (retval == 0))
+ if (__glibc_likely (retval != -1))
{
- termios_p->c_iflag = k_termios.c_iflag;
- termios_p->c_oflag = k_termios.c_oflag;
- termios_p->c_cflag = k_termios.c_cflag;
- termios_p->c_lflag = k_termios.c_lflag;
- termios_p->c_line = k_termios.c_line;
-#if _HAVE_STRUCT_TERMIOS_C_ISPEED
-# if _HAVE_C_ISPEED
- termios_p->c_ispeed = k_termios.c_ispeed;
-# else
- termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
-# endif
-#endif
-#if _HAVE_STRUCT_TERMIOS_C_OSPEED
-# if _HAVE_C_OSPEED
+ ___termios2_canonicalize_speeds (&k_termios);
+
+ memset (termios_p, 0, sizeof (*termios_p));
+ termios_p->c_iflag = k_termios.c_iflag;
+ termios_p->c_oflag = k_termios.c_oflag;
+ termios_p->c_cflag = k_termios.c_cflag;
+ termios_p->c_lflag = k_termios.c_lflag;
+ termios_p->c_line = k_termios.c_line;
termios_p->c_ospeed = k_termios.c_ospeed;
-# else
- termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
-# endif
-#endif
- if (sizeof (cc_t) == 1 || _POSIX_VDISABLE == 0
- || (unsigned char) _POSIX_VDISABLE == (unsigned char) -1)
- memset (__mempcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t)),
- _POSIX_VDISABLE, (NCCS - __KERNEL_NCCS) * sizeof (cc_t));
- else
- {
- memcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t));
+ termios_p->c_ispeed = k_termios.c_ispeed;
- for (size_t cnt = __KERNEL_NCCS; cnt < NCCS; ++cnt)
- termios_p->c_cc[cnt] = _POSIX_VDISABLE;
- }
+ copy_c_cc (termios_p->c_cc, NCCS, k_termios.c_cc, _TERMIOS2_NCCS);
}
return retval;
}
-
libc_hidden_def (__tcgetattr)
+
+#if _TERMIOS_OLD_COMPAT && _HAVE_STRUCT_OLD_TERMIOS
+
+versioned_symbol (libc, __tcgetattr, tcgetattr, GLIBC_2_42);
+
+/* Legacy version for shorter struct termios */
+int
+attribute_compat_text_section
+__old_tcgetattr (int fd, old_termios_t *termios_p)
+{
+ struct termios new_termios;
+ int retval = __tcgetattr (fd, &new_termios);
+ if (__glibc_likely (retval != -1))
+ {
+ memcpy (termios_p, &new_termios, sizeof (*termios_p));
+ }
+ return retval;
+}
+compat_symbol (libc, __old_tcgetattr, tcgetattr, GLIBC_2_0);
+
+#else
+
weak_alias (__tcgetattr, tcgetattr)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/tcsendbrk.c b/sysdeps/unix/sysv/linux/tcsendbrk.c
index 0ad1323..738a582 100644
--- a/sysdeps/unix/sysv/linux/tcsendbrk.c
+++ b/sysdeps/unix/sysv/linux/tcsendbrk.c
@@ -1,5 +1,5 @@
/* Send break to terminal.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
index aea74d3..ad8f2df 100644
--- a/sysdeps/unix/sysv/linux/tcsetattr.c
+++ b/sysdeps/unix/sysv/linux/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,67 +15,100 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <string.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sysdep.h>
+#include <termios_internals.h>
-/* The difference here is that the termios structure used in the
- kernel is not the same as we use in the libc. Therefore we must
- translate it here. */
-#include <kernel_termios.h>
-
-
-/* This is a gross hack around a kernel bug. If the cfsetispeed functions
- is called with the SPEED argument set to zero this means use the same
- speed as for output. But we don't have independent input and output
- speeds and therefore cannot record this.
-
- We use an unused bit in the `c_iflag' field to keep track of this
- use of `cfsetispeed'. The value here must correspond to the one used
- in `speed.c'. */
-#define IBAUD0 020000000000
+#define static_assert_equal(x,y) _Static_assert ((x) == (y), #x " != " #y)
+static_assert_equal (sizeof (struct termios2), KERNEL_TERMIOS2_SIZE);
+static_assert_equal (offsetof (struct termios2, c_cc),
+ KERNEL_TERMIOS2_CC_OFFSET);
+static_assert_equal (offsetof (struct termios2, c_line),
+ KERNEL_TERMIOS2_LINE_OFFSET);
/* Set the state of FD to *TERMIOS_P. */
int
__tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
{
- struct __kernel_termios k_termios;
- unsigned long int cmd;
+ struct termios2 k_termios;
+ unsigned long cmd;
- switch (optional_actions)
- {
- case TCSANOW:
- cmd = TCSETS;
- break;
- case TCSADRAIN:
- cmd = TCSETSW;
- break;
- case TCSAFLUSH:
- cmd = TCSETSF;
- break;
- default:
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
- }
+ memset (&k_termios, 0, sizeof k_termios);
- k_termios.c_iflag = termios_p->c_iflag & ~IBAUD0;
+ k_termios.c_iflag = termios_p->c_iflag;
k_termios.c_oflag = termios_p->c_oflag;
k_termios.c_cflag = termios_p->c_cflag;
k_termios.c_lflag = termios_p->c_lflag;
- k_termios.c_line = termios_p->c_line;
-#if _HAVE_C_ISPEED && _HAVE_STRUCT_TERMIOS_C_ISPEED
- k_termios.c_ispeed = termios_p->c_ispeed;
-#endif
-#if _HAVE_C_OSPEED && _HAVE_STRUCT_TERMIOS_C_OSPEED
+ k_termios.c_line = termios_p->c_line;
+
k_termios.c_ospeed = termios_p->c_ospeed;
-#endif
- memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t));
+ k_termios.c_ispeed = termios_p->c_ispeed;
+
+ ___termios2_canonicalize_speeds (&k_termios);
+
+ copy_c_cc (k_termios.c_cc, _TERMIOS2_NCCS, termios_p->c_cc, NCCS);
- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
+ /*
+ * Choose the proper ioctl number to invoke.
+ *
+ * Alpha got TCSETS2 late (Linux 4.20), but has the same structure
+ * format, and it only needs TCSETS2 if either it needs to use
+ * __BOTHER or split speed. All other architectures have TCSETS2 as
+ * far back as the current glibc supports. Calling TCSETS with
+ * __BOTHER causes unpredictable results on old Alpha kernels and
+ * could even crash them.
+ */
+ static_assert_equal(TCSADRAIN, TCSANOW + 1);
+ static_assert_equal(TCSAFLUSH, TCSANOW + 2);
+ static_assert_equal(KERNEL_TCSETSW2, KERNEL_TCSETS2 + 1);
+ static_assert_equal(KERNEL_TCSETSF2, KERNEL_TCSETS2 + 2);
+ static_assert_equal(KERNEL_TCSETSW, KERNEL_TCSETS + 1);
+ static_assert_equal(KERNEL_TCSETSF, KERNEL_TCSETS + 2);
+
+ cmd = (long)optional_actions - TCSANOW;
+ if (cmd > 2)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ if (__ASSUME_TERMIOS2 ||
+ k_termios.c_ospeed != k_termios.c_ispeed ||
+ cbaud (k_termios.c_cflag) == __BOTHER)
+ {
+ cmd += KERNEL_TCSETS2;
+ }
+ else
+ {
+ cmd += KERNEL_TCSETS;
+ k_termios.c_cflag &= ~CIBAUD;
+ }
+
+ return INLINE_SYSCALL_CALL (ioctl, fd, cmd, &k_termios);
}
+libc_hidden_def (__tcsetattr)
+
+#if _HAVE_STRUCT_OLD_TERMIOS && _TERMIOS_OLD_COMPAT
+
+versioned_symbol (libc, __tcsetattr, tcsetattr, GLIBC_2_42);
+
+/* Legacy version for shorter struct termios without speed fields */
+int
+attribute_compat_text_section
+__old_tcsetattr (int fd, int optional_actions, const old_termios_t *termios_p)
+{
+ struct termios new_termios;
+
+ memset (&new_termios, 0, sizeof (new_termios));
+ new_termios.c_iflag = termios_p->c_iflag;
+ new_termios.c_oflag = termios_p->c_oflag;
+ new_termios.c_cflag = termios_p->c_cflag;
+ new_termios.c_lflag = termios_p->c_lflag;
+ new_termios.c_line = termios_p->c_line;
+ copy_c_cc(new_termios.c_cc, NCCS, termios_p->c_cc, OLD_NCCS);
+
+ return __tcsetattr (fd, optional_actions, &new_termios);
+}
+compat_symbol (libc, __old_tcsetattr, tcsetattr, GLIBC_2_0);
+
+#else
+
weak_alias (__tcsetattr, tcsetattr)
-libc_hidden_def (tcsetattr)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/tee.c b/sysdeps/unix/sysv/linux/tee.c
index 50f6d05..f3fa57f 100644
--- a/sysdeps/unix/sysv/linux/tee.c
+++ b/sysdeps/unix/sysv/linux/tee.c
@@ -1,5 +1,5 @@
/* Linux duplicating pipe content implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/telldir.c b/sysdeps/unix/sysv/linux/telldir.c
index c8dff30..039d377 100644
--- a/sysdeps/unix/sysv/linux/telldir.c
+++ b/sysdeps/unix/sysv/linux/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/termio.h b/sysdeps/unix/sysv/linux/termio.h
deleted file mode 100644
index 0e610f0..0000000
--- a/sysdeps/unix/sysv/linux/termio.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Compatible <termio.h> for old `struct termio' ioctl interface.
- This is obsolete; use the POSIX.1 `struct termios' interface
- defined in <termios.h> instead. */
-
-#include <termios.h>
-#include <sys/ioctl.h>
diff --git a/sysdeps/unix/sysv/linux/termios-kernel-consts.sym b/sysdeps/unix/sysv/linux/termios-kernel-consts.sym
new file mode 100644
index 0000000..3856a8c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/termios-kernel-consts.sym
@@ -0,0 +1,26 @@
+#include <linux/termios.h>
+#include <stddef.h>
+
+#ifdef TCGETS2
+# define STRUCT_TERMIOS struct termios2
+#else
+# define TCGETS2 TCGETS
+# define TCSETS2 TCSETS
+# define TCSETSW2 TCSETSW
+# define TCSETSF2 TCSETSF
+# define STRUCT_TERMIOS struct termios
+#endif
+
+--
+KERNEL_TCGETS TCGETS
+KERNEL_TCSETS TCSETS
+KERNEL_TCSETSF TCSETSF
+KERNEL_TCSETSW TCSETSW
+KERNEL_TCGETS2 TCGETS2
+KERNEL_TCSETS2 TCSETS2
+KERNEL_TCSETSF2 TCSETSF2
+KERNEL_TCSETSW2 TCSETSW2
+KERNEL_TERMIOS2_SIZE sizeof (STRUCT_TERMIOS)
+KERNEL_TERMIOS2_CC_OFFSET offsetof (STRUCT_TERMIOS, c_cc)
+KERNEL_TERMIOS2_LINE_OFFSET offsetof (STRUCT_TERMIOS, c_line)
+_TERMIOS2_NCCS sizeof ((STRUCT_TERMIOS) { 0 }.c_cc) / sizeof (cc_t)
diff --git a/sysdeps/unix/sysv/linux/termios_internals.h b/sysdeps/unix/sysv/linux/termios_internals.h
new file mode 100644
index 0000000..b2f3f1b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/termios_internals.h
@@ -0,0 +1,129 @@
+/* termios functions internal implementation header for Linux
+
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TERMIOS_INTERNALS_H
+#define TERMIOS_INTERNALS_H 1
+
+#include <stddef.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sysdep.h>
+#include <shlib-compat.h>
+
+#include <termios-kernel-consts.h>
+
+/* Alpha got termios2 late, but TCGETS has exactly the same structure
+ format and function as TCGETS2. On all other platforms, the termios2
+ interface exists as far back as this version of glibc supports.
+
+ For TCSETS* it is more complicated; this is handled in tcsetattr.c. */
+#ifdef __ASSUME_TERMIOS2
+# define ARCH_TCGETS KERNEL_TCGETS2
+#else
+# define ARCH_TCGETS KERNEL_TCGETS
+#endif
+
+/* ---- Kernel interface definitions ---- */
+
+/* The the termios2 structure used in the kernel interfaces is not the
+ same as the termios structure we use in the libc. Therefore we
+ must translate it here. */
+
+struct termios2
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+#if KERNEL_TERMIOS2_CC_OFFSET < KERNEL_TERMIOS2_LINE_OFFSET
+ cc_t c_cc[_TERMIOS2_NCCS]; /* control characters */
+ cc_t c_line; /* line discipline */
+#else
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[_TERMIOS2_NCCS]; /* control characters */
+#endif
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+};
+
+/* ---- Application interface definitions ---- */
+
+/*
+ * Should old speed_t and struct termios (if applicable) compatibility
+ * functions be included?
+ */
+#define _TERMIOS_OLD_COMPAT SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_42)
+
+/*
+ * Old struct termios (without c_ispeed and c_ospeed fields) if
+ * applicable. The new struct termios *must* be binary identical up to
+ * the sizeof the old structure.
+ *
+ * This only applies to SPARC and MIPS; for other architectures the
+ * new and old speed_t interfaces both use the same struct termios.
+ */
+#include <old_termios.h>
+
+/* ---- Internal function definitions ---- */
+
+/*
+ * Copy a set of c_cc fields of possibly different width. If the target
+ * field is longer, then fill with _POSIX_VDISABLE == -1.
+ */
+static inline void
+copy_c_cc (cc_t *to, size_t nto, const cc_t *from, size_t nfrom)
+{
+ if (nto < nfrom)
+ nfrom = nto;
+
+ to = __mempcpy (to, from, nfrom * sizeof(cc_t));
+ if (nto > nfrom)
+ memset (to, _POSIX_VDISABLE, (nto - nfrom) * sizeof(cc_t));
+}
+
+/* Extract the output and input legacy speed fields from c_cflag. */
+static inline tcflag_t
+cbaud (tcflag_t c_cflag)
+{
+ return c_cflag & CBAUD;
+}
+
+static inline tcflag_t
+cibaud (tcflag_t c_cflag)
+{
+ return cbaud (c_cflag >> IBSHIFT);
+}
+
+extern speed_t
+___cbaud_to_speed (tcflag_t c_cflag, speed_t other)
+ __attribute_const__ attribute_hidden;
+
+extern tcflag_t
+___speed_to_cbaud (speed_t speed)
+ __attribute_const__ attribute_hidden;
+
+extern void
+___termios2_canonicalize_speeds (struct termios2 *k_termios_p)
+ attribute_hidden;
+
+#endif /* TERMIOS_INTERNALS_H */
diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c
index de8188e..3150deb 100644
--- a/sysdeps/unix/sysv/linux/test-errno-linux.c
+++ b/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -1,7 +1,7 @@
/* Test that failing system calls do set errno to the correct value.
Linux sycalls version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/thrd_priv.h b/sysdeps/unix/sysv/linux/thrd_priv.h
index dbf4472..394991d 100644
--- a/sysdeps/unix/sysv/linux/thrd_priv.h
+++ b/sysdeps/unix/sysv/linux/thrd_priv.h
@@ -1,5 +1,5 @@
/* Internal C11 threads definitions - linux version
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/thrd_sleep.c b/sysdeps/unix/sysv/linux/thrd_sleep.c
index f78776b..2dbc44f 100644
--- a/sysdeps/unix/sysv/linux/thrd_sleep.c
+++ b/sysdeps/unix/sysv/linux/thrd_sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/time-clockid.h b/sysdeps/unix/sysv/linux/time-clockid.h
index ae5bb5d..2397e2d 100644
--- a/sysdeps/unix/sysv/linux/time-clockid.h
+++ b/sysdeps/unix/sysv/linux/time-clockid.h
@@ -1,5 +1,5 @@
/* System specific time definitions. Generic Version.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/time.c b/sysdeps/unix/sysv/linux/time.c
index f8b0cee..5a72481 100644
--- a/sysdeps/unix/sysv/linux/time.c
+++ b/sysdeps/unix/sysv/linux/time.c
@@ -1,5 +1,5 @@
/* time -- Get number of seconds since Epoch. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,11 +33,10 @@ time_syscall (time_t *t)
}
# undef INIT_ARCH
-# define INIT_ARCH() \
- void *vdso_time = dl_vdso_vsym (HAVE_TIME_VSYSCALL);
+# define INIT_ARCH()
libc_ifunc (time,
- vdso_time ? VDSO_IFUNC_RET (vdso_time)
- : (void *) time_syscall);
+ GLRO(dl_vdso_time) != NULL ? VDSO_IFUNC_RET (GLRO(dl_vdso_time))
+ : (void *) time_syscall);
# else
time_t
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 2c505a5..ca377a6 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index ad397e5..69f26b2 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
index dd7ad4c..676c244 100644
--- a/sysdeps/unix/sysv/linux/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index cc7ddd3..ff3141f 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 344033d..b2affaa 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index 8986462..d53b858 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
index 4af71ed..5fbe179 100644
--- a/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timerfd_gettime.c b/sysdeps/unix/sysv/linux/timerfd_gettime.c
index 9991a93..004387d 100644
--- a/sysdeps/unix/sysv/linux/timerfd_gettime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_gettime.c
@@ -1,5 +1,5 @@
/* timerfd_gettime -- get the timer setting referred to by file descriptor.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timerfd_settime.c b/sysdeps/unix/sysv/linux/timerfd_settime.c
index 86c49d4..8a0b3d9 100644
--- a/sysdeps/unix/sysv/linux/timerfd_settime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_settime.c
@@ -1,5 +1,5 @@
/* timerfd_settime -- start or stop the timer referred to by file descriptor.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/times.c b/sysdeps/unix/sysv/linux/times.c
index 9686065..2e29269 100644
--- a/sysdeps/unix/sysv/linux/times.c
+++ b/sysdeps/unix/sysv/linux/times.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
index 778d1e3..9ed49a6 100644
--- a/sysdeps/unix/sysv/linux/timespec_get.c
+++ b/sysdeps/unix/sysv/linux/timespec_get.c
@@ -1,5 +1,5 @@
/* timespec_get -- get system time - Linux version supporting 64 bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timespec_getres.c b/sysdeps/unix/sysv/linux/timespec_getres.c
index 2eef9e5..f1c915d 100644
--- a/sysdeps/unix/sysv/linux/timespec_getres.c
+++ b/sysdeps/unix/sysv/linux/timespec_getres.c
@@ -1,5 +1,5 @@
/* Get resolution of a time base.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tls-internal.c b/sysdeps/unix/sysv/linux/tls-internal.c
index 81ebcdf..acbfe06 100644
--- a/sysdeps/unix/sysv/linux/tls-internal.c
+++ b/sysdeps/unix/sysv/linux/tls-internal.c
@@ -1,5 +1,5 @@
/* Per-thread state. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tls-internal.h b/sysdeps/unix/sysv/linux/tls-internal.h
index 8cb0d8a..5b84fdd 100644
--- a/sysdeps/unix/sysv/linux/tls-internal.h
+++ b/sysdeps/unix/sysv/linux/tls-internal.h
@@ -1,5 +1,5 @@
/* Per-thread state. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/truncate.c b/sysdeps/unix/sysv/linux/truncate.c
index 1e5e718..f6505d6 100644
--- a/sysdeps/unix/sysv/linux/truncate.c
+++ b/sysdeps/unix/sysv/linux/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/truncate64.c b/sysdeps/unix/sysv/linux/truncate64.c
index 41b469b..799a81d 100644
--- a/sysdeps/unix/sysv/linux/truncate64.c
+++ b/sysdeps/unix/sysv/linux/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-adjtimex.c b/sysdeps/unix/sysv/linux/tst-adjtimex.c
index b0e7321..945d3d9 100644
--- a/sysdeps/unix/sysv/linux/tst-adjtimex.c
+++ b/sysdeps/unix/sysv/linux/tst-adjtimex.c
@@ -1,5 +1,5 @@
/* Test for adjtimex.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-affinity-pid.c b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
index c8996ef..89bb771 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity-pid.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
@@ -1,5 +1,5 @@
/* Test for sched_getaffinity and sched_setaffinity, PID version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-affinity.c b/sysdeps/unix/sysv/linux/tst-affinity.c
index 218c02e..c0727b6 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity.c
@@ -1,5 +1,5 @@
/* Single-threaded test for sched_getaffinity and sched_setaffinity.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-align-clone-internal.c b/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
index aa06ee1..8753112 100644
--- a/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
@@ -1,5 +1,5 @@
/* Verify that the clone child stack is properly aligned.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-align-clone.c b/sysdeps/unix/sysv/linux/tst-align-clone.c
index 1f39d81..d85375a 100644
--- a/sysdeps/unix/sysv/linux/tst-align-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-align-clone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clock_adjtime.c b/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
index d37c06b..9eaf4b7 100644
--- a/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
+++ b/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
@@ -1,5 +1,5 @@
/* Test for clock_adjtime
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c b/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
index a693de1..524707d 100644
--- a/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
@@ -1,5 +1,5 @@
/* Check that clock_gettime does not clobber errno on success.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone.c b/sysdeps/unix/sysv/linux/tst-clone.c
index 2bc7124..3e7a233 100644
--- a/sysdeps/unix/sysv/linux/tst-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-clone.c
@@ -1,5 +1,5 @@
/* Test for proper error/errno handling in clone.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone2-internal.c b/sysdeps/unix/sysv/linux/tst-clone2-internal.c
index babfeb5..12f7218 100644
--- a/sysdeps/unix/sysv/linux/tst-clone2-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-clone2-internal.c
@@ -1,5 +1,5 @@
/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone2.c b/sysdeps/unix/sysv/linux/tst-clone2.c
index 683a0d7..02cd539 100644
--- a/sysdeps/unix/sysv/linux/tst-clone2.c
+++ b/sysdeps/unix/sysv/linux/tst-clone2.c
@@ -1,5 +1,5 @@
/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone3-internal.c b/sysdeps/unix/sysv/linux/tst-clone3-internal.c
index 2f0b200..5a41560 100644
--- a/sysdeps/unix/sysv/linux/tst-clone3-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-clone3-internal.c
@@ -1,5 +1,5 @@
/* Check if clone (CLONE_THREAD) does not call exit_group (BZ #21512)
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,7 +54,7 @@ f (void *a)
} while (0)
static inline int
-futex_wait (int *futexp, int val)
+futex_wait (_Atomic int *futexp, int val)
{
#ifdef __NR_futex
return syscall (__NR_futex, futexp, FUTEX_WAIT, val);
@@ -75,7 +75,7 @@ do_test (void)
/* Initialize with a known value. ctid is set to zero by the kernel after the
cloned thread has exited. */
#define CTID_INIT_VAL 1
- pid_t ctid = CTID_INIT_VAL;
+ _Atomic pid_t ctid = CTID_INIT_VAL;
pid_t tid;
struct clone_args clone_args =
diff --git a/sysdeps/unix/sysv/linux/tst-clone3.c b/sysdeps/unix/sysv/linux/tst-clone3.c
index 77b8731..98d56d5 100644
--- a/sysdeps/unix/sysv/linux/tst-clone3.c
+++ b/sysdeps/unix/sysv/linux/tst-clone3.c
@@ -1,5 +1,5 @@
/* Check if clone (CLONE_THREAD) does not call exit_group (BZ #21512)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,7 +54,7 @@ f (void *a)
} while (0)
static inline int
-futex_wait (int *futexp, int val)
+futex_wait (_Atomic int *futexp, int val)
{
#ifdef __NR_futex
return syscall (__NR_futex, futexp, FUTEX_WAIT, val);
@@ -75,7 +75,7 @@ do_test (void)
/* Initialize with a known value. ctid is set to zero by the kernel after the
cloned thread has exited. */
#define CTID_INIT_VAL 1
- pid_t ctid = CTID_INIT_VAL;
+ _Atomic pid_t ctid = CTID_INIT_VAL;
pid_t tid;
#if _STACK_GROWS_DOWN
diff --git a/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c b/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
index 618ecc4..1ad58c9 100644
--- a/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
+++ b/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux epoll ioctls.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-epoll.c b/sysdeps/unix/sysv/linux/tst-epoll.c
index 545f506..afe9d29 100644
--- a/sysdeps/unix/sysv/linux/tst-epoll.c
+++ b/sysdeps/unix/sysv/linux/tst-epoll.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux epoll_* wrappers.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate-common.c b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
index 28970df..d066712 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate-common.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate.c b/sysdeps/unix/sysv/linux/tst-fallocate.c
index e68e7da..95eb967 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate64.c b/sysdeps/unix/sysv/linux/tst-fallocate64.c
index 1b53cc2..c22325a 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate64.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate64.c
@@ -1,5 +1,5 @@
/* Basic fallocate64 test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
index 264b1de..e630544 100644
--- a/sysdeps/unix/sysv/linux/tst-fanotify.c
+++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -1,5 +1,5 @@
/* Basic fanotify test.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
index e61d67a..550a837 100644
--- a/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
+++ b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
@@ -1,5 +1,5 @@
/* Check if fdopendir fails with file descriptor opened with O_PATH (BZ 30737)
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-getauxval.c b/sysdeps/unix/sysv/linux/tst-getauxval.c
index 7979030..daf1a09 100644
--- a/sysdeps/unix/sysv/linux/tst-getauxval.c
+++ b/sysdeps/unix/sysv/linux/tst-getauxval.c
@@ -1,5 +1,5 @@
/* Basic test for getauxval.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
index 55362f6..8274958 100644
--- a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
+++ b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
@@ -59,7 +59,7 @@ send_fd (const int sock, const int fd)
{
struct cmsghdr hdr;
char buf[CMSG_SPACE (sizeof (int))];
- } cmsgbuf = {0};
+ } cmsgbuf = { };
struct cmsghdr *cmsg;
struct iovec vec;
char ch = 'A';
@@ -92,7 +92,7 @@ recv_fd (const int sock)
{
struct cmsghdr hdr;
char buf[CMSG_SPACE(sizeof(int))];
- } cmsgbuf = {0};
+ } cmsgbuf = { };
struct cmsghdr *cmsg;
struct iovec vec;
ssize_t n;
diff --git a/sysdeps/unix/sysv/linux/tst-getdents64.c b/sysdeps/unix/sysv/linux/tst-getdents64.c
index 3dd22a4..cdbd9c9 100644
--- a/sysdeps/unix/sysv/linux/tst-getdents64.c
+++ b/sysdeps/unix/sysv/linux/tst-getdents64.c
@@ -1,5 +1,5 @@
/* Test for reading directories with getdents64.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,6 +30,7 @@
#include <sys/mman.h>
#include <unistd.h>
+#if __GNUC_PREREQ (5, 0)
/* Called by large_buffer_checks below. */
static void
large_buffer_check (int fd, char *large_buffer, size_t large_buffer_size)
@@ -85,6 +86,12 @@ do_test_large_size (void)
xclose (fd);
}
+#else
+static void
+do_test_large_size (void)
+{
+}
+#endif
static void
do_test_by_size (size_t buffer_size)
@@ -96,6 +103,8 @@ do_test_by_size (size_t buffer_size)
int fd = xopen (".", O_RDONLY | O_DIRECTORY, 0);
TEST_VERIFY (fd >= 0);
+ char *data = xposix_memalign (_Alignof (struct dirent64), buffer_size);
+
/* Perform two passes, with a rewind operating between passes. */
for (int pass = 0; pass < 2; ++pass)
{
@@ -104,23 +113,15 @@ do_test_by_size (size_t buffer_size)
while (true)
{
- /* Simple way to make sure that the memcpy below does not read
- non-existing data. */
- struct
- {
- char buffer[buffer_size];
- struct dirent64 pad;
- } data;
-
- ssize_t ret = getdents64 (fd, &data.buffer, sizeof (data.buffer));
+ ssize_t ret = getdents64 (fd, data, buffer_size);
if (ret < 0)
FAIL_EXIT1 ("getdents64: %m");
if (ret == 0)
break;
++read_count;
- char *current = data.buffer;
- char *end = data.buffer + ret;
+ char *current = data;
+ char *end = data + ret;
while (current != end)
{
struct dirent64 entry;
@@ -163,6 +164,8 @@ do_test_by_size (size_t buffer_size)
rewinddir (reference);
}
+ free (data);
+
xclose (fd);
closedir (reference);
}
diff --git a/sysdeps/unix/sysv/linux/tst-getpid1-internal.c b/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
index 3f0d952..55bd615 100644
--- a/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
@@ -1,5 +1,5 @@
/* Verify that the parent pid is unchanged by __clone_internal.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettid-kill.c b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
index 01f439d..94a1221 100644
--- a/sysdeps/unix/sysv/linux/tst-gettid-kill.c
+++ b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
@@ -1,5 +1,5 @@
/* Verify the interaction of kill and thread groups.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettid.c b/sysdeps/unix/sysv/linux/tst-gettid.c
index b992a58..7ee972a 100644
--- a/sysdeps/unix/sysv/linux/tst-gettid.c
+++ b/sysdeps/unix/sysv/linux/tst-gettid.c
@@ -1,5 +1,5 @@
/* Smoke test for the gettid system call.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c b/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
index 9699d9d..ee041d4 100644
--- a/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
@@ -1,5 +1,5 @@
/* Check that gettimeofday does not clobber errno.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py b/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
index 034a67d..81ecdc9 100644
--- a/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
+++ b/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Consistency checks for glibc system call lists.
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
index 408e8af..a5dce5a 100644
--- a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
+++ b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
@@ -1,5 +1,5 @@
/* Test mremap with MREMAP_DONTUNMAP.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-memfd_create.c b/sysdeps/unix/sysv/linux/tst-memfd_create.c
index 7b8ddca..15811cb 100644
--- a/sysdeps/unix/sysv/linux/tst-memfd_create.c
+++ b/sysdeps/unix/sysv/linux/tst-memfd_create.c
@@ -1,5 +1,5 @@
/* Test for the memfd_create system call.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-misalign-clone.c b/sysdeps/unix/sysv/linux/tst-misalign-clone.c
index 55abd23..a653933 100644
--- a/sysdeps/unix/sysv/linux/tst-misalign-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-misalign-clone.c
@@ -1,5 +1,5 @@
/* Verify that the clone wrapper properly aligns the child stack.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-mlock2.c b/sysdeps/unix/sysv/linux/tst-mlock2.c
index 3f2b708..e3e7959 100644
--- a/sysdeps/unix/sysv/linux/tst-mlock2.c
+++ b/sysdeps/unix/sysv/linux/tst-mlock2.c
@@ -1,5 +1,5 @@
/* Test the mlock2 function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/tst-mman-consts.py b/sysdeps/unix/sysv/linux/tst-mman-consts.py
index a1137eb..24d5a23 100644
--- a/sysdeps/unix/sysv/linux/tst-mman-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-mman-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/mman.h constants match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -33,7 +33,7 @@ def main():
help='C compiler (including options) to use')
args = parser.parse_args()
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 13)
sys.exit(glibcextract.compare_macro_consts(
'#define _GNU_SOURCE 1\n'
'#include <sys/mman.h>\n',
diff --git a/sysdeps/unix/sysv/linux/tst-mount-compile.py b/sysdeps/unix/sysv/linux/tst-mount-compile.py
index ed24b29..1931b05 100755
--- a/sysdeps/unix/sysv/linux/tst-mount-compile.py
+++ b/sysdeps/unix/sysv/linux/tst-mount-compile.py
@@ -1,7 +1,7 @@
#!/usr/bin/python3
# Check if glibc provided sys/mount.h can be used along related kernel
# headers.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
index 675f179..9784775 100755
--- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/mount.h constants match the kernel's.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -39,10 +39,10 @@ def main():
sys.exit (77)
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- # Constants in glibc were updated to match Linux v6.10. When glibc
+ # Constants in glibc were updated to match Linux v6.13. When glibc
# constants are updated this value should be updated to match the
# released kernel version from which the constants were taken.
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 13)
def check(cte, exclude=None):
return glibcextract.compare_macro_consts(
'#include <sys/mount.h>\n',
diff --git a/sysdeps/unix/sysv/linux/tst-mount.c b/sysdeps/unix/sysv/linux/tst-mount.c
index 5eb5548..40913c7 100644
--- a/sysdeps/unix/sysv/linux/tst-mount.c
+++ b/sysdeps/unix/sysv/linux/tst-mount.c
@@ -1,5 +1,5 @@
/* Basic tests for the new Linux API added on Linux 5.2.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-nolink-libc.c b/sysdeps/unix/sysv/linux/tst-nolink-libc.c
new file mode 100644
index 0000000..817f377
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-nolink-libc.c
@@ -0,0 +1,25 @@
+/* Test program not linked against libc.so and not using any glibc functions.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+void
+_start (void)
+{
+ INTERNAL_SYSCALL_CALL (exit_group, 0);
+}
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c b/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
index d4e5a2a..f145525 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
@@ -1,5 +1,5 @@
/* Test for ntp_adjtime.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_gettime.c b/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
index fd67b55..7e33445 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
@@ -1,5 +1,5 @@
/* Test for ntp_gettime.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c b/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
index feda890..0e8da20 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
@@ -1,5 +1,5 @@
/* Test for ntp_gettimex.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-o_path-locks.c b/sysdeps/unix/sysv/linux/tst-o_path-locks.c
index f085d0f..de794f9 100644
--- a/sysdeps/unix/sysv/linux/tst-o_path-locks.c
+++ b/sysdeps/unix/sysv/linux/tst-o_path-locks.c
@@ -1,5 +1,5 @@
/* Test that closing O_PATH descriptors does not release POSIX advisory locks.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
index 484f7d7..da10d61 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
@@ -1,6 +1,6 @@
/* Check non representable OFD locks regions in non-LFS mode for compat
mode (BZ #20251)
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks.c b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
index 2fa467a..aee1b66 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
@@ -1,5 +1,5 @@
/* Check non representable OFD locks regions in non-LFS mode (BZ #20251)
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/sysdeps/unix/sysv/linux/tst-personality.c b/sysdeps/unix/sysv/linux/tst-personality.c
index 5765f23..215284d 100644
--- a/sysdeps/unix/sysv/linux/tst-personality.c
+++ b/sysdeps/unix/sysv/linux/tst-personality.c
@@ -1,6 +1,6 @@
/* BZ #19408 linux personality syscall wrapper test.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
index 9824fd2..18010fe 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/pidfd.h constants match the kernel's.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -39,7 +39,7 @@ def main():
sys.exit (77)
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 12)
sys.exit(glibcextract.compare_macro_consts(
'#include <sys/pidfd.h>\n',
'#include <asm/fcntl.h>\n'
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd.c b/sysdeps/unix/sysv/linux/tst-pidfd.c
index 2222ed5..f7e0c5d 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-pidfd.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux pidfd interfaces.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c b/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
index ef62fbe..cbccf0b 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
+++ b/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
@@ -1,5 +1,5 @@
/* Specific tests for Linux pidfd_getpid.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c
index 297a7fb..1000d8f 100644
--- a/sysdeps/unix/sysv/linux/tst-pkey.c
+++ b/sysdeps/unix/sysv/linux/tst-pkey.c
@@ -1,5 +1,5 @@
/* Tests for memory protection keys.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -120,7 +120,7 @@ sigusr1_handler (int signum)
TEST_COMPARE (signum, SIGUSR1);
for (int i = 0; i < key_count; ++i)
TEST_VERIFY (pkey_get (keys[i]) == PKEY_DISABLE_ACCESS
- || pkey_get (keys[i]) == i);
+ || (pkey_get (keys[i]) & i) == i);
sigusr1_handler_ran = 1;
}
@@ -185,12 +185,13 @@ do_test (void)
xmunmap (page, pagesize);
}
+ /* Create thread before setting up key in the current thread. */
xpthread_barrier_init (&barrier, NULL, 2);
bool delayed_thread_check_access = true;
pthread_t delayed_thread = xpthread_create
(NULL, &delayed_thread_func, &delayed_thread_check_access);
- keys[0] = pkey_alloc (0, 0);
+ keys[0] = pkey_alloc (0, PKEY_UNRESTRICTED);
if (keys[0] < 0)
{
if (errno == ENOSYS)
@@ -212,19 +213,47 @@ do_test (void)
("glibc does not support memory protection keys");
FAIL_EXIT1 ("pkey_get: %m");
}
+
+ /* Check that initial rights that are set via pkey_alloc
+ can be accessed via pkey_get. */
+ {
+ int pkey = -1;
+ pkey = pkey_alloc (0, PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
+ pkey_free (pkey);
+ pkey = pkey_alloc (0, PKEY_DISABLE_WRITE);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_WRITE, PKEY_DISABLE_WRITE);
+ pkey_free (pkey);
+ }
+
+ /* Check that unallocated pkey is not accepted by the
+ pkey_mprotect function. */
+ {
+ int pkey = -1;
+ pkey = pkey_alloc (0, PKEY_DISABLE_WRITE);
+ pkey_free (pkey);
+ int *page = xmmap (NULL, pagesize, PROT_NONE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1);
+ TEST_COMPARE (pkey_mprotect (page, pagesize, PROT_READ, pkey), -1);
+ TEST_COMPARE (errno, EINVAL);
+ xmunmap (page, pagesize);
+ }
+
for (int i = 1; i < key_count; ++i)
{
+ /* i == 1 corresponds to PKEY_DISABLE_ACCESS
+ i == 2 corresponds to PKEY_DISABLE_WRITE */
keys[i] = pkey_alloc (0, i);
if (keys[i] < 0)
FAIL_EXIT1 ("pkey_alloc (0, %d): %m", i);
/* pkey_alloc is supposed to change the current thread's access
rights for the new key. */
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
}
/* Check that all the keys have the expected access rights for the
current thread. */
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
/* Allocate a test page for each key. */
for (int i = 0; i < key_count; ++i)
@@ -241,12 +270,12 @@ do_test (void)
pthread_barrier_wait (&barrier);
struct thread_result *result = xpthread_join (delayed_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i],
- PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (result->access_rights[i] &
+ PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
struct thread_result *result2 = xpthread_join (result->next_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i],
- PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (result->access_rights[i] &
+ PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
free (result);
free (result2);
}
@@ -257,12 +286,12 @@ do_test (void)
pthread_t get_thread = xpthread_create (NULL, get_thread_func, NULL);
struct thread_result *result = xpthread_join (get_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i], i);
+ TEST_COMPARE (result->access_rights[i] & i, i);
free (result);
}
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
/* Check that in a signal handler, there is no access. */
xsignal (SIGUSR1, &sigusr1_handler);
@@ -281,7 +310,7 @@ do_test (void)
printf ("info: checking access for key %d, bits 0x%x\n",
i, pkey_get (keys[i]));
for (int j = 0; j < key_count; ++j)
- TEST_COMPARE (pkey_get (keys[j]), j);
+ TEST_COMPARE (pkey_get (keys[j]) & j, j);
if (i & PKEY_DISABLE_ACCESS)
{
TEST_VERIFY (!check_page_access (i, false));
@@ -304,7 +333,7 @@ do_test (void)
if (i == allowed_key)
{
if (do_write)
- TEST_COMPARE (pkey_set (keys[i], 0), 0);
+ TEST_COMPARE (pkey_set (keys[i], PKEY_UNRESTRICTED), 0);
else
TEST_COMPARE (pkey_set (keys[i], PKEY_DISABLE_WRITE), 0);
}
@@ -331,7 +360,7 @@ do_test (void)
inherit that access. */
for (int i = 0; i < key_count; ++i)
{
- TEST_COMPARE (pkey_set (keys[i], 0), 0);
+ TEST_COMPARE (pkey_set (keys[i], PKEY_UNRESTRICTED), 0);
TEST_VERIFY (check_page_access (i, false));
TEST_VERIFY (check_page_access (i, true));
}
@@ -355,7 +384,7 @@ do_test (void)
not what happens in practice. */
{
/* The limit is in place to avoid running indefinitely in case
- there many keys available. */
+ there are many keys available. */
int *keys_array = xcalloc (100000, sizeof (*keys_array));
int keys_allocated = 0;
while (keys_allocated < 100000)
diff --git a/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c b/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
index 30edc58..1131050 100644
--- a/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ppoll.c b/sysdeps/unix/sysv/linux/tst-ppoll.c
index 392eb32..a00b6b8 100644
--- a/sysdeps/unix/sysv/linux/tst-ppoll.c
+++ b/sysdeps/unix/sysv/linux/tst-ppoll.c
@@ -1,5 +1,5 @@
/* Test for ppoll timeout
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-prctl.c b/sysdeps/unix/sysv/linux/tst-prctl.c
index 337c502..137dd37 100644
--- a/sysdeps/unix/sysv/linux/tst-prctl.c
+++ b/sysdeps/unix/sysv/linux/tst-prctl.c
@@ -1,5 +1,5 @@
/* Smoke test for prctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-process_madvise.c b/sysdeps/unix/sysv/linux/tst-process_madvise.c
index 05599b1..34da3c4 100644
--- a/sysdeps/unix/sysv/linux/tst-process_madvise.c
+++ b/sysdeps/unix/sysv/linux/tst-process_madvise.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux process_madvise.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-process_mrelease.c b/sysdeps/unix/sysv/linux/tst-process_mrelease.c
index 35031bc..0c14a6a 100644
--- a/sysdeps/unix/sysv/linux/tst-process_mrelease.c
+++ b/sysdeps/unix/sysv/linux/tst-process_mrelease.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux process_mrelease.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-quota.c b/sysdeps/unix/sysv/linux/tst-quota.c
index 7c34f93..0205332 100644
--- a/sysdeps/unix/sysv/linux/tst-quota.c
+++ b/sysdeps/unix/sysv/linux/tst-quota.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-readdir64-compat.c b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
index 16c60d5..1075687 100644
--- a/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
@@ -1,5 +1,5 @@
/* Test readdir64 compatibility symbol.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
index 2d88c0d..a207b91 100644
--- a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
+++ b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c b/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c
new file mode 100644
index 0000000..2687d13
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-disable.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-disable.c b/sysdeps/unix/sysv/linux/tst-rseq-disable.c
index bbc655b..8e9c11f 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq-disable.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq-disable.c
@@ -1,5 +1,5 @@
/* Test disabling of rseq registration via tunable.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -26,32 +26,82 @@
#include <unistd.h>
#ifdef RSEQ_SIG
+# include <sys/auxv.h>
+# include <dl-tls.h>
+# include "tst-rseq.h"
+
+/* Used to test private registration with the rseq system call because glibc
+ rseq is disabled. */
+static __thread struct rseq local_rseq = {
+ .cpu_id = RSEQ_CPU_ID_REGISTRATION_FAILED,
+};
+
+/* Used to check if the address of the rseq area comes before or after the tls
+ blocks depending on the TLS model. */
+static __thread char tls_var __attribute__ ((tls_model ("initial-exec")));
/* Check that rseq can be registered and has not been taken by glibc. */
static void
check_rseq_disabled (void)
{
- struct pthread *pd = THREAD_SELF;
+ struct rseq *rseq_abi = (struct rseq *) ((char *) __thread_pointer () +
+ __rseq_offset);
+
+#if TLS_TCB_AT_TP
+ /* The rseq area block should come before the thread pointer and be at least
+ 32 bytes. */
+ TEST_VERIFY (__rseq_offset <= -RSEQ_AREA_SIZE_INITIAL);
+
+ /* The rseq area block should come before TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi < (intptr_t) &tls_var);
+#elif TLS_DTV_AT_TP
+ /* The rseq area block should come after the TCB, add the TLS block offset to
+ the rseq offset to get a value relative to the TCB and test that it's
+ non-negative. */
+ TEST_VERIFY (__rseq_offset + TLS_TP_OFFSET >= 0);
+
+ /* The rseq area block should come after TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi > (intptr_t) &tls_var);
+#else
+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+#endif
+ /* __rseq_flags is unused and should always be '0'. */
TEST_COMPARE (__rseq_flags, 0);
- TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset
- == (char *) &pd->rseq_area);
+
+ /* When rseq is not registered, __rseq_size should always be '0'. */
TEST_COMPARE (__rseq_size, 0);
- TEST_COMPARE ((int) pd->rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
- int ret = syscall (__NR_rseq, &pd->rseq_area, sizeof (pd->rseq_area),
- 0, RSEQ_SIG);
+ /* When rseq is not registered, the 'cpu_id' field should be set to
+ RSEQ_CPU_ID_REGISTRATION_FAILED. */
+ TEST_COMPARE ((int) rseq_abi->cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+
+ /* Test a rseq registration which should succeed since the internal
+ registration is disabled. */
+ int ret = syscall (__NR_rseq, &local_rseq, RSEQ_AREA_SIZE_INITIAL, 0, RSEQ_SIG);
if (ret == 0)
{
- ret = syscall (__NR_rseq, &pd->rseq_area, sizeof (pd->rseq_area),
+ /* A successful registration should set the cpu id. */
+ TEST_VERIFY (local_rseq.cpu_id >= 0);
+
+ /* Test we can also unregister rseq. */
+ ret = syscall (__NR_rseq, &local_rseq, RSEQ_AREA_SIZE_INITIAL,
RSEQ_FLAG_UNREGISTER, RSEQ_SIG);
TEST_COMPARE (ret, 0);
- pd->rseq_area.cpu_id = RSEQ_CPU_ID_REGISTRATION_FAILED;
}
else
{
- TEST_VERIFY (errno != -EINVAL);
- TEST_VERIFY (errno != -EBUSY);
+ /* Check if we failed with EINVAL which would mean an invalid rseq flags,
+ a mis-aligned rseq area address or an incorrect rseq size. */
+ TEST_VERIFY (errno != EINVAL);
+
+ /* Check if we failed with EBUSY which means an existing rseq
+ registration. */
+ TEST_VERIFY (errno != EBUSY);
+
+ /* Check if we failed with EFAULT which means an invalid rseq area
+ address. */
+ TEST_VERIFY (errno != EFAULT);
}
}
@@ -71,6 +121,13 @@ proc_func (void *ignored)
static int
do_test (void)
{
+ printf ("info: __rseq_size: %u\n", __rseq_size);
+ printf ("info: __rseq_offset: %td\n", __rseq_offset);
+ printf ("info: __rseq_flags: %u\n", __rseq_flags);
+ printf ("info: getauxval (AT_RSEQ_FEATURE_SIZE): %ld\n",
+ getauxval (AT_RSEQ_FEATURE_SIZE));
+ printf ("info: getauxval (AT_RSEQ_ALIGN): %ld\n", getauxval (AT_RSEQ_ALIGN));
+
puts ("info: checking main thread");
check_rseq_disabled ();
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c b/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c
new file mode 100644
index 0000000..6e2c923
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-nptl.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
index b9f4984..bbe62f8 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
@@ -1,5 +1,5 @@
/* Restartable Sequences NPTL test.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -28,6 +28,11 @@
#include <sys/rseq.h>
#include <unistd.h>
+/* Set this in 'do_test' only so as to invoke the destructor test in
+ the test process only and not 'support_test_main' parent. Otherwise
+ the test harness may hang in the destructor if something goes wrong. */
+static int run_destructor_test;
+
#ifdef RSEQ_SIG
# include <array_length.h>
# include <errno.h>
@@ -236,6 +241,9 @@ do_rseq_test (void)
static void __attribute__ ((destructor))
do_rseq_destructor_test (void)
{
+ if (!run_destructor_test)
+ return;
+
/* Cannot use deferred failure reporting after main returns. */
if (do_rseq_test ())
FAIL_EXIT1 ("rseq not registered within destructor");
@@ -254,6 +262,7 @@ do_rseq_test (void)
static int
do_test (void)
{
+ run_destructor_test = 1;
return do_rseq_test ();
}
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-static.c b/sysdeps/unix/sysv/linux/tst-rseq-static.c
new file mode 100644
index 0000000..1d97f3b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-static.c
@@ -0,0 +1 @@
+#include "tst-rseq.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c
new file mode 100644
index 0000000..165e468
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c
@@ -0,0 +1 @@
+__thread int mod_thread_var __attribute__ ((tls_model ("initial-exec")));
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c
new file mode 100644
index 0000000..5891e5f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c
@@ -0,0 +1,195 @@
+/* Verify that TLS blocks and the rseq area do not overlap.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <elf.h>
+#include <link.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+#include <sys/auxv.h>
+#include <sys/param.h>
+#include <sys/rseq.h>
+#include <thread_pointer.h>
+#include <unistd.h>
+
+/* Used to keep track of address ranges. The ranges are sorted and
+ then checked for overlap. */
+
+struct address_range
+{
+ const char *prefix;
+ const char *label;
+ uintptr_t start;
+ size_t length;
+};
+
+struct address_range ranges[20];
+size_t range_count;
+
+static void
+add_range (const char *prefix, const char *label,
+ const void *start, size_t length)
+{
+ TEST_VERIFY (start != NULL);
+ TEST_VERIFY (length > 0);
+ TEST_VERIFY_EXIT (range_count < array_length (ranges));
+ ranges[range_count].prefix = prefix;
+ ranges[range_count].label = label;
+ ranges[range_count].start = (uintptr_t) start;
+ ranges[range_count].length = length;
+ ++range_count;
+}
+
+static int
+range_compare (const void *a1, const void *b1)
+{
+ const struct address_range *a = a1;
+ const struct address_range *b = b1;
+ if (a->start < b->start)
+ return -1;
+ if (a->start > b->start)
+ return 1;
+ return 0;
+}
+
+static void
+check_for_overlap (void)
+{
+ qsort (ranges, range_count, sizeof (ranges[0]), range_compare);
+ uintptr_t previous_end = ranges[0].start + ranges[0].length - 1;
+ for (size_t i = 1; i < range_count; ++i)
+ {
+ uintptr_t this_end = ranges[i].start + ranges[i].length - 1;
+ if (ranges[i].start <= previous_end)
+ {
+ puts ("error: overlap between address ranges");
+ printf (" %s%s: [0x%lx, 0x%lx)\n",
+ ranges[i - 1].prefix, ranges[i - 1].label,
+ (unsigned long int) ranges[i - 1].start,
+ (unsigned long int) previous_end);
+ printf (" %s%s: [0x%lx, 0x%lx)\n",
+ ranges[i].prefix, ranges[i].label,
+ (unsigned long int) ranges[i].start,
+ (unsigned long int) this_end);
+ }
+ previous_end = this_end;
+ }
+}
+
+static void
+add_rseq (void)
+{
+ /* The initial size of 32 bytes is always allocated. The value
+ reported by __rseq_size does not include the alignment, which can
+ be larger than 32 if requested by the kernel through the
+ auxiliary vector. */
+ size_t size = 32;
+ if (__rseq_size > 0)
+ size = roundup (__rseq_size, MAX (getauxval (AT_RSEQ_ALIGN), 32));
+
+ printf ("info: adding rseq area of %zu bytes\n", size);
+ add_range ("", "rseq area",
+ (char *) __thread_pointer () + __rseq_offset, size);
+}
+
+/* These functions add the TLS data for all loaded modules to the
+ recorded address ranges. */
+
+static int
+dlip_callback (struct dl_phdr_info *info, size_t size, void *ignored)
+{
+ /* If the dynamic linker does not provide TLS address information,
+ there is nothing to register. */
+ if (info->dlpi_tls_data == NULL)
+ return 0;
+
+ for (int i = 0; i < info->dlpi_phnum; ++i)
+ {
+ if (info->dlpi_phdr[i].p_type == PT_TLS)
+ {
+ printf ("info: adding TLS range for \"%s\" (%zu bytes)\n",
+ info->dlpi_name, (size_t) info->dlpi_phdr[i].p_memsz);
+ add_range ("TLS for ",
+ info->dlpi_name[0] != '\0' ? info->dlpi_name : "main",
+ info->dlpi_tls_data, info->dlpi_phdr[i].p_memsz);
+ break;
+ }
+ }
+ return 0;
+}
+
+/* Returns true if any TLS ranges were found. */
+static void
+add_tls_ranges (void)
+{
+ dl_iterate_phdr (dlip_callback, NULL);
+}
+
+volatile __thread int thread_var __attribute__ ((aligned (MAIN_TLS_ALIGN)));
+
+static int
+do_test (void)
+{
+ void *original_brk = sbrk (0);
+ void *initial_allocation = malloc (16);
+
+ /* Ensure that the variable is not optimized away. */
+ thread_var = 0;
+
+ printf ("info: rseq area size: %u\n", __rseq_size);
+
+ puts ("info: checking address ranges with initially loaded modules");
+ add_range ("", "program break", original_brk, 1);
+ add_range ("", "malloc allocation", initial_allocation, 16);
+ add_rseq ();
+ add_tls_ranges ();
+ printf ("info: %zu ranges found\n", range_count);
+ check_for_overlap ();
+ range_count = 0;
+
+ puts ("info: checking address ranges after dlopen");
+ void *handle = xdlopen ("tst-rseq-tls-range-mod.so", RTLD_NOW);
+ int *mod_thread_var = xdlsym (handle, "mod_thread_var");
+ add_range ("", "program break", original_brk, 1);
+ add_range ("", "malloc allocation", initial_allocation, 16);
+ add_rseq ();
+ add_tls_ranges ();
+ {
+ bool found_objects = false;
+ for (size_t i = 0; i < range_count; ++i)
+ if (strchr (ranges[i].label, '/') != NULL)
+ found_objects = true;
+ if (!found_objects)
+ /* __tls_get_addr does not fully work with static dlopen.
+ Add some fall-back test data. */
+ add_range ("", "mod_thread_var",
+ mod_thread_var, sizeof (*mod_thread_var));
+ }
+ printf ("info: %zu ranges found\n", range_count);
+ check_for_overlap ();
+ xdlclose (handle);
+
+ free (initial_allocation);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c
index 08a9533..00181cf 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq.c
@@ -1,5 +1,5 @@
/* Restartable Sequences single-threaded tests.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,6 +19,8 @@
not linked against libpthread. */
#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xthread.h>
#include <stdio.h>
#include <sys/rseq.h>
#include <unistd.h>
@@ -32,23 +34,82 @@
# include <sys/auxv.h>
# include <thread_pointer.h>
# include <tls.h>
+# include <dl-tls.h>
+# include <sys/auxv.h>
# include "tst-rseq.h"
+/* Used to check if the address of the rseq area comes before or after the tls
+ blocks depending on the TLS model. */
+static __thread char tls_var __attribute__ ((tls_model ("initial-exec")));
+
static void
do_rseq_main_test (void)
{
- struct pthread *pd = THREAD_SELF;
+ size_t rseq_align = MAX (getauxval (AT_RSEQ_ALIGN), RSEQ_MIN_ALIGN);
+ size_t rseq_feature_size = MAX (getauxval (AT_RSEQ_FEATURE_SIZE),
+ RSEQ_AREA_SIZE_INITIAL_USED);
+ size_t rseq_alloc_size = roundup (MAX (rseq_feature_size,
+ RSEQ_AREA_SIZE_INITIAL_USED), rseq_align);
+ struct rseq *rseq_abi = __thread_pointer () + __rseq_offset;
TEST_VERIFY_EXIT (rseq_thread_registered ());
+
+ /* __rseq_flags is unused and should always be '0'. */
TEST_COMPARE (__rseq_flags, 0);
- TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset
- == (char *) &pd->rseq_area);
- /* The current implementation only supports the initial size. */
- TEST_COMPARE (__rseq_size, 20);
+
+ /* When rseq is registered, __rseq_size should report the feature size. */
+ TEST_COMPARE (__rseq_size, rseq_feature_size);
+
+ /* When rseq is registered, the 'cpu_id' field should be set to a valid cpu
+ * number. */
+ TEST_VERIFY ((int32_t) rseq_abi->cpu_id >= 0);
+
+ /* The rseq area address must be aligned. */
+ TEST_VERIFY (((unsigned long) rseq_abi % rseq_align) == 0);
+
+#if TLS_TCB_AT_TP
+ /* The rseq area block should come before the thread pointer and be at least
+ 32 bytes. */
+ TEST_VERIFY (__rseq_offset <= -RSEQ_AREA_SIZE_INITIAL);
+
+ /* The rseq area block should come before TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi < (intptr_t) &tls_var);
+#elif TLS_DTV_AT_TP
+ /* The rseq area block should come after the TCB, add the TLS block offset to
+ the rseq offset to get a value relative to the TCB and test that it's
+ non-negative. */
+ TEST_VERIFY (__rseq_offset + TLS_TP_OFFSET >= 0);
+
+ /* The rseq area block should come after TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi > (intptr_t) &tls_var);
+#else
+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+#endif
+
+ /* Test a rseq registration with the same arguments as the internal
+ registration which should fail with errno == EBUSY. */
+ TEST_VERIFY (((unsigned long) rseq_abi % rseq_align) == 0);
+ TEST_VERIFY (__rseq_size <= rseq_alloc_size);
+ int ret = syscall (__NR_rseq, rseq_abi, rseq_alloc_size, 0, RSEQ_SIG);
+ TEST_VERIFY (ret != 0);
+ TEST_COMPARE (errno, EBUSY);
+}
+
+static void *
+thread_func (void *ignored)
+{
+ do_rseq_main_test ();
+ return NULL;
}
static void
-do_rseq_test (void)
+proc_func (void *ignored)
+{
+ do_rseq_main_test ();
+}
+
+static int
+do_test (void)
{
if (!rseq_available ())
{
@@ -60,21 +121,27 @@ do_rseq_test (void)
printf ("info: getauxval (AT_RSEQ_FEATURE_SIZE): %ld\n",
getauxval (AT_RSEQ_FEATURE_SIZE));
printf ("info: getauxval (AT_RSEQ_ALIGN): %ld\n", getauxval (AT_RSEQ_ALIGN));
+
+ puts ("info: checking main thread");
+ do_rseq_main_test ();
+
+ puts ("info: checking main thread (2)");
do_rseq_main_test ();
+
+ puts ("info: checking new thread");
+ xpthread_join (xpthread_create (NULL, thread_func, NULL));
+
+ puts ("info: checking subprocess");
+ support_isolate_in_subprocess (proc_func, NULL);
+
+ return 0;
}
#else /* RSEQ_SIG */
-static void
-do_rseq_test (void)
-{
- FAIL_UNSUPPORTED ("glibc does not define RSEQ_SIG, skipping test");
-}
-#endif /* RSEQ_SIG */
-
static int
do_test (void)
{
- do_rseq_test ();
- return 0;
+ FAIL_UNSUPPORTED ("glibc does not define RSEQ_SIG, skipping test");
}
+#endif /* RSEQ_SIG */
#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.h b/sysdeps/unix/sysv/linux/tst-rseq.h
index dc60332..812accc 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq.h
+++ b/sysdeps/unix/sysv/linux/tst-rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences tests header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -23,11 +23,12 @@
#include <syscall.h>
#include <sys/rseq.h>
#include <tls.h>
+#include <rseq-internal.h>
static inline bool
rseq_thread_registered (void)
{
- return THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id) >= 0;
+ return RSEQ_GETMEM_ONCE (cpu_id) >= 0;
}
static inline int
diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c
new file mode 100644
index 0000000..8a42d27
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c
@@ -0,0 +1,72 @@
+/* CPU Affinity inheritance test - sched_{gs}etaffinity.
+ Copyright The GNU Toolchain Authors.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a
+ description of this test. */
+
+#include <sched.h>
+#include <string.h>
+#include <stdio.h>
+#include <support/check.h>
+
+static void
+set_my_affinity (size_t size, const cpu_set_t *set)
+{
+ int ret = sched_setaffinity (0, size, set);
+
+ if (ret != 0)
+ FAIL ("sched_setaffinity returned %d (%s)", ret, strerror (ret));
+}
+
+static void
+verify_my_affinity (int nproc, int nproc_configured, size_t size,
+ const cpu_set_t *expected_set)
+{
+ cpu_set_t *set = CPU_ALLOC (nproc_configured);
+ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured);
+
+ if (set == NULL || xor_set== NULL)
+ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n");
+
+ int ret = sched_getaffinity (0, size, set);
+ if (ret != 0)
+ FAIL ("sched_getaffinity returned %d (%s)", ret, strerror (ret));
+
+ CPU_XOR_S (size, xor_set, expected_set, set);
+
+ int cpucount = CPU_COUNT_S (size, xor_set);
+
+ if (cpucount > 0)
+ {
+ FAIL ("Affinity mask not inherited, "
+ "following %d CPUs mismatched in the expected and actual sets:\n",
+ cpucount);
+ for (int cur = 0; cur < nproc && cpucount >= 0; cur++)
+ if (CPU_ISSET_S (size, cur, xor_set))
+ {
+ printf ("%d ", cur);
+ cpucount--;
+ }
+ printf ("\n");
+ }
+
+ CPU_FREE (set);
+ CPU_FREE (xor_set);
+}
+
+#include <nptl/tst-skeleton-affinity-inheritance.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sched-consts.py b/sysdeps/unix/sysv/linux/tst-sched-consts.py
new file mode 100644
index 0000000..da13c5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched-consts.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python3
+# Test that glibc's sched.h constants match the kernel's.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+#
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+import glibcsyscalls
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's sched.h constants "
+ "match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+ linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
+ linux_version_glibc = (6, 13)
+ sys.exit(glibcextract.compare_macro_consts(
+ '#define _GNU_SOURCE 1\n'
+ '#include <sched.h>\n',
+ '#define _GNU_SOURCE 1\n'
+ '#include <linux/sched.h>\n'
+ '#include <linux/sched/types.h>\n',
+ args.cc,
+ 'SCHED_.*',
+ # SCHED_ISO is reserved, but not implemented in the kernel.
+ # SCHED_OTHER is the standard name for SCHED_NORMAL.
+ # SCHED_FLAG_ALL will receive more and more flags, so
+ # exposing it to userspace does not seem useful.
+ 'SCHED_ISO'
+ '|SCHED_OTHER'
+ '|SCHED_FLAG_ALL',
+ linux_version_glibc > linux_version_headers,
+ linux_version_headers > linux_version_glibc))
+
+if __name__ == '__main__':
+ main()
diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c
new file mode 100644
index 0000000..4600be9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c
@@ -0,0 +1,116 @@
+/* Test for sched_setattr, sched_getattr involving multiple threads.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <support/check.h>
+#include <support/xthread.h>
+#include <unistd.h>
+
+enum { initial_nice_value = 15 };
+
+/* Check that thread TID has nice value EXPECTED. */
+static void
+check_nice_value (int tid, int expected)
+{
+ struct sched_attr attr;
+ if (sched_getattr (tid, &attr, sizeof (attr), 0) != 0)
+ FAIL_EXIT1 ("sched_getattr (%d) failed: %m", tid);
+ TEST_COMPARE (attr.sched_policy, SCHED_OTHER);
+ int nice_value = attr.sched_nice;
+ if (attr.sched_nice != expected)
+ FAIL_EXIT1 ("thread %d: expected nice value %d, got %d"
+ " (called from thread %d)",
+ tid, expected, nice_value, (int) gettid ());
+ printf ("info: thread %d: nice value %d (called from thread %d)\n",
+ tid, nice_value, (int) gettid ());
+}
+
+/* Set the nice value for TID to VALUE. */
+static void
+set_nice_value (int tid, int value)
+{
+ struct sched_attr attr =
+ {
+ .size = sizeof (attr),
+ .sched_policy = SCHED_OTHER,
+ .sched_nice = value,
+ };
+ if (sched_setattr (tid, &attr, 0) != 0)
+ FAIL_EXIT1 ("sched_setattr (%d) failed: %m", tid);
+}
+
+static pthread_barrier_t barrier;
+
+static void *
+thread_routine (void *nice_value_ptr)
+{
+ int nice_value = *(int *) nice_value_ptr;
+ /* Check that the nice value was inherited. */
+ check_nice_value (gettid (), initial_nice_value);
+ xpthread_barrier_wait (&barrier);
+ /* Main thread sets nice value. */
+ xpthread_barrier_wait (&barrier);
+ check_nice_value (gettid (), nice_value);
+ set_nice_value (gettid (), nice_value + 2);
+ xpthread_barrier_wait (&barrier);
+ /* Main thread sets checks value. */
+ xpthread_barrier_wait (&barrier);
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ if (nice (initial_nice_value) != initial_nice_value)
+ FAIL_UNSUPPORTED ("cannot set nice value to initial_nice_value: %m");
+
+ xpthread_barrier_init (&barrier, NULL, 3);
+
+ check_nice_value (0, initial_nice_value);
+ check_nice_value (gettid (), initial_nice_value);
+
+ int nice0 = initial_nice_value + 1;
+ pthread_t thr0 = xpthread_create (NULL, thread_routine, &nice0);
+ int nice1 = initial_nice_value + 2;
+ pthread_t thr1 = xpthread_create (NULL, thread_routine, &nice1);
+ check_nice_value (pthread_gettid_np (thr0), initial_nice_value);
+ check_nice_value (pthread_gettid_np (thr1), initial_nice_value);
+ xpthread_barrier_wait (&barrier);
+ set_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr1), initial_nice_value);
+ set_nice_value (pthread_gettid_np (thr1), nice1);
+ check_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr1), nice1);
+ xpthread_barrier_wait (&barrier);
+ /* Threads set nice value. */
+ xpthread_barrier_wait (&barrier);
+ check_nice_value (pthread_gettid_np (thr0), nice0 + 2);
+ check_nice_value (pthread_gettid_np (thr1), nice1 + 2);
+ xpthread_barrier_wait (&barrier);
+
+ TEST_VERIFY (xpthread_join (thr1) == NULL);
+ TEST_VERIFY (xpthread_join (thr0) == NULL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c
new file mode 100644
index 0000000..bf8d9af
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c
@@ -0,0 +1,96 @@
+/* Tests for sched_setattr and sched_getattr.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+
+#include <errno.h>
+#include <stddef.h>
+#include <string.h>
+#include <support/check.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+/* Padding struct to detect unexpected writes. */
+union
+{
+ struct sched_attr attr;
+ /* Hopefully the kernel will never need as much. */
+ unsigned char padding[4096];
+} u;
+
+static int
+do_test (void)
+{
+ _Static_assert (SCHED_OTHER == SCHED_NORMAL,
+ "SCHED_OTHER, SCHED_NORMAL values");
+ TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u));
+
+ /* Check that reading and re-applying the current policy works. */
+ memset (&u, 0xcc, sizeof (u));
+ /* Compiler barrier to bypass write access attribute. */
+ volatile unsigned int size = sizeof (u);
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */
+
+ /* Try to switch to the SCHED_OTHER policy. */
+ memset (&u, 0, sizeof (u));
+ u.attr.size = sizeof (u); /* With padding, kernel should accept zeroes. */
+ u.attr.sched_policy = SCHED_OTHER; /* Should be the default. */
+ {
+ errno = 0;
+ int prio = getpriority (PRIO_PROCESS, 0);
+ if (errno != 0)
+ prio = 0;
+ u.attr.sched_nice = prio;
+ }
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0);
+
+ /* Non-zero values not known to the kernel result in an E2BIG error. */
+ memset (&u, 0, sizeof (u));
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ u.padding[u.attr.size] = 0xcc;
+ u.attr.size = sizeof (u);
+ errno = 0;
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), -1);
+ TEST_COMPARE (errno, E2BIG);
+
+ memset (&u, 0xcc, sizeof (u));
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER);
+
+ /* Raise the niceless level to 19 and observe its effect. */
+ TEST_COMPARE (nice (19), 19);
+ TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0);
+ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER);
+ TEST_COMPARE (u.attr.sched_nice, 19);
+
+ /* Invalid buffer arguments result in EINVAL (not EFAULT). */
+ {
+ errno = 0;
+ void *volatile null_pointer = NULL; /* compiler barrier. */
+ TEST_COMPARE (sched_setattr (0, null_pointer, 0), -1);
+ TEST_COMPARE (errno, EINVAL);
+ errno = 0;
+ TEST_COMPARE (sched_getattr (0, null_pointer, size, 0), -1);
+ TEST_COMPARE (errno, EINVAL);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-scm_rights.c b/sysdeps/unix/sysv/linux/tst-scm_rights.c
index 23ccdad..99d4c8b 100644
--- a/sysdeps/unix/sysv/linux/tst-scm_rights.c
+++ b/sysdeps/unix/sysv/linux/tst-scm_rights.c
@@ -1,5 +1,5 @@
/* Smoke test for SCM_RIGHTS.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
new file mode 100644
index 0000000..07c5434
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
@@ -0,0 +1,185 @@
+/* Test sem_getvalue across CPUs. Based on tst-skeleton-thread-affinity.c.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <support/xthread.h>
+#include <sys/time.h>
+
+struct conf;
+static bool early_test (struct conf *);
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ int ret = pthread_setaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ int ret = pthread_getaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+#include "tst-skeleton-affinity.c"
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+static sem_t sem;
+
+static void *
+tf (void *arg)
+{
+ void *ret = NULL;
+ xpthread_mutex_lock (&lock);
+ int semval;
+ if (sem_getvalue (&sem, &semval) != 0)
+ {
+ printf ("sem_getvalue failed: %m\n");
+ ret = (void *) 1;
+ }
+ else if (semval != 12345)
+ {
+ printf ("sem_getvalue returned %d not 12345\n", semval);
+ ret = (void *) 1;
+ }
+ xpthread_mutex_unlock (&lock);
+ return ret;
+}
+
+static int
+stop_and_join_threads (struct conf *conf, cpu_set_t *set,
+ pthread_t *pinned_first, pthread_t *pinned_last)
+{
+ int failed = 0;
+ for (pthread_t *p = pinned_first; p < pinned_last; ++p)
+ {
+ int cpu = p - pinned_first;
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set))
+ continue;
+
+ void *retval = (void *) 1;
+ int ret = pthread_join (*p, &retval);
+ if (ret != 0)
+ {
+ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret));
+ fflush (stdout);
+ /* Cannot shut down cleanly with threads still running. */
+ abort ();
+ }
+ if (retval != NULL)
+ failed = 1;
+ }
+ return failed;
+}
+
+static bool
+early_test (struct conf *conf)
+{
+ int ret;
+ ret = sem_init (&sem, 0, 12345);
+ if (ret != 0)
+ {
+ printf ("error: sem_init failed: %m\n");
+ return false;
+ }
+ xpthread_mutex_lock (&lock);
+ pthread_t *pinned_threads
+ = calloc (conf->last_cpu + 1, sizeof (*pinned_threads));
+ cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
+ cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+
+ if (pinned_threads == NULL || initial_set == NULL || scratch_set == NULL)
+ {
+ puts ("error: Memory allocation failure");
+ return false;
+ }
+ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), initial_set) < 0)
+ {
+ printf ("error: pthread_getaffinity_np failed: %m\n");
+ return false;
+ }
+
+ pthread_attr_t attr;
+ ret = pthread_attr_init (&attr);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_init failed: %s\n", strerror (ret));
+ return false;
+ }
+ support_set_small_thread_stack_size (&attr);
+
+ /* Spawn a thread pinned to each available CPU. */
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ CPU_SET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ ret = pthread_attr_setaffinity_np
+ (&attr, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_setaffinity_np for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ ret = pthread_create (pinned_threads + cpu, &attr,
+ tf, (void *) (uintptr_t) cpu);
+ if (ret != 0)
+ {
+ printf ("error: pthread_create for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ }
+
+ /* Main thread. */
+ xpthread_mutex_unlock (&lock);
+ int failed = stop_and_join_threads (conf, initial_set,
+ pinned_threads,
+ pinned_threads + conf->last_cpu + 1);
+
+ printf ("info: Main thread ran on %d CPU(s) of %d available CPU(s)\n",
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set),
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), initial_set));
+
+ pthread_attr_destroy (&attr);
+ CPU_FREE (scratch_set);
+ CPU_FREE (initial_set);
+ free (pinned_threads);
+ return failed == 0;
+}
diff --git a/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
index ea375f9..f895641 100644
--- a/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
+++ b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
@@ -1,5 +1,5 @@
/* Test that the GET_PC macro is consistent with the unwinder.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-signal-numbers.py b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
index 0e05036..fed2125 100644
--- a/sysdeps/unix/sysv/linux/tst-signal-numbers.py
+++ b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's signal numbers match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sigtimedwait.c b/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
index c2cb795..bfdc14b 100644
--- a/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
@@ -1,5 +1,5 @@
/* Test for sigtimedwait timeout.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
index 31a15b3..cf97c3f 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
@@ -1,5 +1,5 @@
/* Generic test case for CPU affinity functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,6 +38,7 @@
#include <sched.h>
#include <stdbool.h>
#include <stdio.h>
+#include <support/test-driver.h>
/* CPU set configuration determined. Can be used from early_test. */
struct conf
@@ -157,7 +158,7 @@ test_size (const struct conf *conf, size_t size)
if (setaffinity (kernel_size, initial_set) < 0)
{
printf ("error: size %zu: setaffinity: %m\n", size);
- return true;
+ return false;
}
/* Use one-CPU set to test switching between CPUs. */
@@ -253,12 +254,12 @@ do_test (void)
if (getaffinity (sizeof (set), &set) < 0 && errno == ENOSYS)
{
puts ("warning: getaffinity not supported, test cannot run");
- return 0;
+ return EXIT_UNSUPPORTED;
}
if (sched_getcpu () < 0 && errno == ENOSYS)
{
puts ("warning: sched_getcpu not supported, test cannot run");
- return 0;
+ return EXIT_UNSUPPORTED;
}
}
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
index 5a1e844..cf43340 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
@@ -1,5 +1,5 @@
/* Generic test for CPU affinity functions, multi-threaded variant.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,10 +45,14 @@ static int still_running;
/* 0 if no scheduling failures, 1 if failures are encountered. */
static int failed;
+/* Used to synchronize the threads. */
+static pthread_barrier_t barrier;
+
static void *
thread_burn_one_cpu (void *closure)
{
int cpu = (uintptr_t) closure;
+ xpthread_barrier_wait (&barrier);
while (__atomic_load_n (&still_running, __ATOMIC_RELAXED) == 0)
{
int current = sched_getcpu ();
@@ -61,6 +65,11 @@ thread_burn_one_cpu (void *closure)
__atomic_store_n (&still_running, 1, __ATOMIC_RELAXED);
}
}
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for cpu %d\n", cpu);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
return NULL;
}
@@ -78,6 +87,7 @@ thread_burn_any_cpu (void *closure)
{
struct burn_thread *param = closure;
+ xpthread_barrier_wait (&barrier);
/* Schedule this thread around a bit to see if it lands on another
CPU. Run this for 2 seconds, once with sched_yield, once
without. */
@@ -99,7 +109,11 @@ thread_burn_any_cpu (void *closure)
CPU_SET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size),
param->seen_set);
if (pass == 1)
- sched_yield ();
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for cpu %d\n", cpu);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
}
}
return NULL;
@@ -156,6 +170,7 @@ early_test (struct conf *conf)
= calloc (conf->last_cpu + 1, sizeof (*other_threads));
cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+ int num_available_cpus = 0;
if (pinned_threads == NULL || other_threads == NULL
|| initial_set == NULL || scratch_set == NULL)
@@ -172,6 +187,7 @@ early_test (struct conf *conf)
{
if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
continue;
+ num_available_cpus ++;
other_threads[cpu].conf = conf;
other_threads[cpu].initial_set = initial_set;
other_threads[cpu].thread = cpu;
@@ -194,6 +210,15 @@ early_test (struct conf *conf)
}
support_set_small_thread_stack_size (&attr);
+ /* This count assumes that all the threads below are created
+ successfully, and call pthread_barrier_wait(). If any threads
+ fail to be created, this function will return FALSE (failure) and
+ the waiting threads will eventually time out the whole test.
+ This is acceptable because we're not testing thread creation and
+ assume all threads will be created, and failure here implies a
+ failure outside the test's scope. */
+ xpthread_barrier_init (&barrier, NULL, num_available_cpus * 2 + 1);
+
/* Spawn a thread pinned to each available CPU. */
for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
{
@@ -245,6 +270,15 @@ early_test (struct conf *conf)
}
}
+ /* Test that sched_yield() works correctly in the main thread. This
+ also gives the kernel an opportunity to run the other threads,
+ randomizing thread startup a bit. */
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for main thread\n");
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
+
/* Main thread. */
struct burn_thread main_thread;
main_thread.conf = conf;
diff --git a/sysdeps/unix/sysv/linux/tst-socket-consts.py b/sysdeps/unix/sysv/linux/tst-socket-consts.py
index e5eab91..b7b916a 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-socket-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/socket.h SO_* constants match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c b/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
index e0fb28d..1b073c3 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
@@ -1,5 +1,5 @@
/* Check recvmsg/recvmmsg 64-bit timestamp support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -76,7 +76,7 @@ do_recvmsg_ancillary (bool use_multi_call, struct mmsghdr *mmhdr,
static void
do_test_large_buffer (bool mc)
{
- struct mmsghdr mmhdr = { 0 };
+ struct mmsghdr mmhdr = { };
/* It should be large enough for either timeval/timespec and the
64 time type as well. */
@@ -147,7 +147,7 @@ do_test_large_buffer (bool mc)
static void
do_test_small_buffer (bool mc)
{
- struct mmsghdr mmhdr = { 0 };
+ struct mmsghdr mmhdr = { };
/* Enable 32 bit timeval precision and check if no 64 bit timeval stamp
is created. */
diff --git a/sysdeps/unix/sysv/linux/tst-socket-timestamp.c b/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
index e5981f0..f8c849c 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
+++ b/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
@@ -1,5 +1,5 @@
/* Check recvmsg/recvmmsg 64-bit timestamp support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c b/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
index 3b9516f..b85dc5c 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
@@ -1,5 +1,5 @@
/* Tests for posix_spawn cgroup extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
index 94ed155..7aed4a5 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
index 81ae548..58edbaa 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
index 25e402a..94007a8 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
+++ b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
index 28d7071..5b22285 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
index bddaf9c..5e55e70 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
@@ -1,5 +1,5 @@
/* Check posix_spawn add file actions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
index 12e2a50..8146a21 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
index fb3ef0a..7b279c7 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
index c227ff0..f789219 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
index 912ef59..a2a87ca 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sync_file_range.c b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
index fdbceab..ccd05df 100644
--- a/sysdeps/unix/sysv/linux/tst-sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
@@ -1,5 +1,5 @@
/* Basic sync_file_range (not specific flag is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-list.sh b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
index 89d67b8..7bea4eb 100644
--- a/sysdeps/unix/sysv/linux/tst-syscall-list.sh
+++ b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Consistency checks for the system call list
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-restart.c b/sysdeps/unix/sysv/linux/tst-syscall-restart.c
new file mode 100644
index 0000000..73ca66a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-syscall-restart.c
@@ -0,0 +1,112 @@
+/* Test if a syscall is correctly restarted.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/check.h>
+#include <support/process_state.h>
+#include <support/xunistd.h>
+#include <support/xthread.h>
+#include <sys/wait.h>
+
+static int
+check_pid (pid_t pid)
+{
+ /* Wait until the child has called pause and it blocking on kernel. */
+ support_process_state_wait (pid, support_process_state_sleeping);
+
+ TEST_COMPARE (kill (pid, SIGSTOP), 0);
+
+ /* Adding process_state_tracing_stop ('t') allows the test to work under
+ trace programs such as ptrace. */
+ support_process_state_wait (pid, support_process_state_stopped
+ | support_process_state_tracing_stop);
+
+ TEST_COMPARE (kill (pid, SIGCONT), 0);
+
+ enum support_process_state state
+ = support_process_state_wait (pid, support_process_state_sleeping
+ | support_process_state_zombie);
+
+ TEST_COMPARE (state, support_process_state_sleeping);
+
+ TEST_COMPARE (kill (pid, SIGTERM), 0);
+
+ siginfo_t info;
+ TEST_COMPARE (waitid (P_PID, pid, &info, WEXITED), 0);
+ TEST_COMPARE (info.si_signo, SIGCHLD);
+ TEST_COMPARE (info.si_code, CLD_KILLED);
+ TEST_COMPARE (info.si_status, SIGTERM);
+ TEST_COMPARE (info.si_pid, pid);
+
+ return 0;
+}
+
+static void *
+tf (void *closure)
+{
+ pause ();
+ return NULL;
+}
+
+static void
+child_mt (void)
+{
+ /* Let only the created thread to handle signals. */
+ sigset_t set;
+ sigfillset (&set);
+ xpthread_sigmask (SIG_BLOCK, &set, NULL);
+
+ sigdelset (&set, SIGSTOP);
+ sigdelset (&set, SIGCONT);
+ sigdelset (&set, SIGTERM);
+
+ pthread_attr_t attr;
+ xpthread_attr_init (&attr);
+ TEST_COMPARE (pthread_attr_setsigmask_np (&attr, &set), 0);
+
+ xpthread_join (xpthread_create (&attr, tf, NULL));
+}
+
+static void
+do_test_syscall (bool multithread)
+{
+ pid_t pid = xfork ();
+ if (pid == 0)
+ {
+ if (multithread)
+ child_mt ();
+ else
+ pause ();
+ _exit (127);
+ }
+
+ check_pid (pid);
+}
+
+static int
+do_test (void)
+{
+ /* Check for both single and multi thread, since they use different syscall
+ mechanisms. */
+ do_test_syscall (false);
+ do_test_syscall (true);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
index 56925a0..29bf7c2 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition: Helper function to capture UAPI header value.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
index 62dbcc6..c8ff044 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition for consistency (bug 22321).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c b/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
index be10bc3..ffaaf80 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV message queue extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c b/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
index a8ed91e..94ec947 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV semaphore extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
index 5f2082b..27e6961 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV shared memory extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-termios-linux.c b/sysdeps/unix/sysv/linux/tst-termios-linux.c
new file mode 100644
index 0000000..e4b0c8b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-termios-linux.c
@@ -0,0 +1,592 @@
+/* Linux termios regression tests
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <termios.h>
+#include <unistd.h>
+
+#include <shlib-compat.h>
+#include <array_length.h>
+
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/tty.h>
+
+/* Evaluate an expression and make sure errno did not get set; return
+ the value of the expression */
+#define CHECKERR(expr) \
+ ({ \
+ errno = 0; \
+ const __typeof (expr) _val = (expr); \
+ TEST_COMPARE(errno, 0); \
+ _val; \
+ })
+
+/* Evaluate an expression and verify that is return a specific value,
+ as well as errno not having been set. */
+#define VERIFY(expr,val) TEST_COMPARE(CHECKERR(expr), val)
+/* Check for zero and errno not set */
+#define CHECKZERO(expr) VERIFY(expr, 0)
+
+/* Table of legacy speed constants */
+
+#define BOGUS ((speed_t)-1)
+#define ANY ((speed_t)-2)
+
+struct cbaud_table
+{
+ speed_t speed;
+ speed_t cbaud;
+ const char *name;
+};
+
+static const struct cbaud_table cbaud_table [] =
+{
+ { 0, __B0, "__B0" },
+ { 50, __B50, "__B50" },
+ { 75, __B75, "__B75" },
+ { 110, __B110, "__B110" },
+ { 134, __B134, "__B134" },
+ { 150, __B150, "__B150" },
+ { 200, __B200, "__B200" },
+ { 300, __B300, "__B300" },
+ { 600, __B600, "__B600" },
+ { 1200, __B1200, "__B1200" },
+ { 1800, __B1800, "__B1800" },
+ { 2400, __B2400, "__B2400" },
+ { 4800, __B4800, "__B4800" },
+#ifdef __B7200
+ { 7200, __B7200, "__B7200" },
+#endif
+ { 9600, __B9600, "__B9600" },
+#ifdef __B14400
+ { 14400, __B14400, "__B14400" },
+#endif
+ { 19200, __B19200, "__B19200" },
+#ifdef __B28800
+ { 28800, __B28800, "__B28800" },
+#endif
+ { 38400, __B38400, "__B38400" },
+ { 57600, __B57600, "__B57600" },
+#ifdef __B76800
+ { 76800, __B76800, "__B76800" },
+#endif
+ { 115200, __B115200, "__B115200" },
+#ifdef __B153600
+ { 153600, __B153600, "__B153600" },
+#endif
+ { 230400, __B230400, "__B230400" },
+#ifdef __B307200
+ { 307200, __B307200, "__B307200" },
+#endif
+ { 460800, __B460800, "__B460800" },
+ { 500000, __B500000, "__B500000" },
+ { 576000, __B576000, "__B576000" },
+#ifdef __B614400
+ { 614400, __B614400, "__B614400" },
+#endif
+ { 921600, __B921600, "__B921600" },
+ { 1000000, __B1000000, "__B1000000" },
+ { 1152000, __B1152000, "__B1152000" },
+ { 1500000, __B1500000, "__B1500000" },
+ { 2000000, __B2000000, "__B2000000" },
+#ifdef __B2500000
+ { 2500000, __B2500000, "__B2500000" },
+#endif
+#ifdef __B3000000
+ { 3000000, __B3000000, "__B3000000" },
+#endif
+#ifdef __B3500000
+ { 3500000, __B3500000, "__B3500000" },
+#endif
+#ifdef __B4000000
+ { 4000000, __B4000000, "__B4000000" },
+#endif
+ { ANY, __BOTHER, "__BOTHER" },
+ { BOGUS, BOGUS, "invalid" }
+};
+
+/* List of common speeds to test */
+
+static const speed_t test_speeds [] =
+{
+ 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400,
+ 4800, 7200, 9600, 14400, 19200, 28800, 33600, 38400, 57600,
+ 76800, 115200, 153600, 230400, 307200, 460800, 500000,
+ 576000, 614400, 921600, 1000000, 1152000, 1500000, 2000000,
+ 2500000, 3000000, 3500000, 4000000, 5000000, 10000000
+};
+
+/* Speed function tests */
+
+/* These intentionally are a separate implementation from speed.c;
+ these should be "trivially correct" and don't need to be optimized
+ in any way */
+
+/* Returns __BOTHER if there is no legacy value for this speed */
+static speed_t speed_to_cbaud (speed_t speed)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->speed != ANY; ct++)
+ {
+ if (ct->speed == speed)
+ break;
+ }
+ return ct->cbaud;
+}
+
+/* Returns ANY if cbaud is __BOTHER, or BOGUS if invalid */
+static speed_t cbaud_to_speed (speed_t cbaud)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->cbaud != BOGUS; ct++)
+ {
+ if (ct->cbaud == cbaud)
+ break;
+ }
+ return ct->speed;
+}
+
+static const char *cbaud_name (speed_t cbaud)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->cbaud != BOGUS; ct++)
+ {
+ if (ct->cbaud == cbaud)
+ break;
+ }
+ return ct->name;
+}
+
+static int check_speed (speed_t expected, speed_t speed, speed_t cbaud,
+ speed_t cfspeed, baud_t cfbaud, char io)
+{
+ speed_t want_cbaud;
+ cbaud &= CBAUD;
+
+ if (expected != ANY && speed != expected)
+ FAIL_RET ("c_%cspeed = %u, expected %u", io, speed, expected);
+
+ if (cfspeed != speed)
+ FAIL_RET ("cfget%cspeed = %u, expected %u", io, cfspeed, speed);
+
+ if (cfbaud != cfspeed)
+ FAIL_RET ("cfget%cbaud = %u, but cfget%cspeed = %u",
+ io, cfbaud, io, cfspeed);
+
+ want_cbaud = speed_to_cbaud (speed);
+
+ if (cbaud != want_cbaud)
+ FAIL_RET ("c_%cspeed = %u: %s = %s (%06o), should be %s (%06o)",
+ io, speed,
+ io == 'o' ? "CBAUD" : "CIBAUD", cbaud_name (cbaud), cbaud,
+ cbaud_name (want_cbaud), want_cbaud);
+
+ return 0;
+}
+
+/* Validate that the speeds in the struct termios are properly normalized.
+ The difference is the handling of ispeed == 0. */
+
+/* Use this after cfset* () */
+static void check_speeds_cf (const struct termios *tio_p,
+ speed_t ospeed, speed_t ispeed)
+{
+ check_speed (ospeed, tio_p->c_ospeed, tio_p->c_cflag,
+ CHECKERR (cfgetospeed (tio_p)),
+ CHECKERR (cfgetobaud (tio_p)), 'o');
+ check_speed (ispeed, tio_p->c_ispeed, tio_p->c_cflag >> IBSHIFT,
+ CHECKERR (cfgetispeed (tio_p)),
+ CHECKERR (cfgetibaud (tio_p)), 'i');
+}
+
+/* Use this after tc[gs]etattr () */
+static void check_speeds_tc (int fd, speed_t ospeed, speed_t ispeed)
+{
+ struct termios tio;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ check_speeds_cf (&tio, ospeed, ispeed ? ispeed : ospeed);
+}
+
+/* For search and replace convenience */
+#define check_bauds_cf check_speeds_cf
+#define check_bauds_tc check_speeds_tc
+
+/* Common routine for setting speeds, with checking */
+static void
+set_speeds (int fd, speed_t ospeed, speed_t ispeed)
+{
+ struct termios tio;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ CHECKZERO (cfsetospeed (&tio, ospeed));
+ CHECKZERO (cfsetispeed (&tio, ispeed));
+ check_speeds_cf (&tio, ospeed, ispeed);
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, ospeed, ispeed ? ispeed : ospeed);
+}
+
+/* Actual tests */
+
+typedef void (*speed_test_t)(int ttyfd, speed_t speed);
+static void
+run_speed_test (int fd, speed_test_t test);
+
+/* New interface cfset*speed test */
+static void
+new_cfspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t old_ospeed, old_ispeed;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_ospeed = CHECKERR (cfgetospeed (&tio));
+ old_ispeed = CHECKERR (cfgetispeed (&tio));
+
+ /* Check initial normalization */
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+
+ /* Check cfset*speed normalization */
+ CHECKZERO (cfsetospeed (&tio, speed));
+ check_speeds_cf (&tio, speed, old_ispeed);
+ CHECKZERO (cfsetispeed (&tio, speed));
+ check_speeds_cf (&tio, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ check_speeds_cf (&tio, old_ospeed, speed);
+ CHECKZERO (cfsetispeed (&tio, B0));
+ check_speeds_cf (&tio, old_ospeed, B0);
+ CHECKZERO (cfsetspeed (&tio, speed));
+ check_speeds_cf (&tio, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (cfsetispeed (&tio, old_ispeed));
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+}
+
+/* New interface cfset*speed test with tcsetattr */
+static void
+new_tcspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t old_ospeed, old_ispeed;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_ospeed = CHECKERR (cfgetospeed (&tio));
+ old_ispeed = CHECKERR (cfgetispeed (&tio));
+
+ /* Check initial normalization */
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+
+ /* Check cfset*speed normalization */
+ CHECKZERO (cfsetospeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, old_ispeed);
+ CHECKZERO (cfsetispeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, speed);
+ CHECKZERO (cfsetispeed (&tio, B0));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, B0);
+ CHECKZERO (cfsetspeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (cfsetispeed (&tio, old_ispeed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, old_ispeed);
+}
+
+/* New interface cfset*baud test */
+static void
+new_cfbaud_test (int fd, baud_t baud)
+{
+ struct termios tio;
+ baud_t old_obaud, old_ibaud;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_obaud = CHECKERR (cfgetobaud (&tio));
+ old_ibaud = CHECKERR (cfgetibaud (&tio));
+
+ /* Check initial normalization */
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+
+ /* Check cfset*baud normalization */
+ CHECKZERO (cfsetobaud (&tio, baud));
+ check_bauds_cf (&tio, baud, old_ibaud);
+ CHECKZERO (cfsetibaud (&tio, baud));
+ check_bauds_cf (&tio, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ check_bauds_cf (&tio, old_obaud, baud);
+ CHECKZERO (cfsetibaud (&tio, B0));
+ check_bauds_cf (&tio, old_obaud, B0);
+ CHECKZERO (cfsetbaud (&tio, baud));
+ check_bauds_cf (&tio, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (cfsetibaud (&tio, old_ibaud));
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+}
+
+/* New interface cfset*baud test with tcsetattr */
+static void
+new_tcbaud_test (int fd, baud_t baud)
+{
+ struct termios tio;
+ baud_t old_obaud, old_ibaud;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_obaud = CHECKERR (cfgetobaud (&tio));
+ old_ibaud = CHECKERR (cfgetibaud (&tio));
+
+ /* Check initial normalization */
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+
+ /* Check cfset*baud normalization */
+ CHECKZERO (cfsetobaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, old_ibaud);
+ CHECKZERO (cfsetibaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, baud);
+ CHECKZERO (cfsetibaud (&tio, B0));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, B0);
+ CHECKZERO (cfsetbaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (cfsetibaud (&tio, old_ibaud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, old_ibaud);
+}
+
+/*
+ * Old interface tests. This depends critically on the new struct
+ * termios being guaranteed to be a superset of the legacy struct
+ * termios.
+ */
+#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_42)
+extern int __old_cfsetospeed (struct termios *tio_p, speed_t speed);
+compat_symbol_reference (libc, __old_cfsetospeed, cfsetospeed, GLIBC_2_0);
+extern int __old_cfsetispeed (struct termios *tio_p, speed_t speed);
+compat_symbol_reference (libc, __old_cfsetispeed, cfsetispeed, GLIBC_2_0);
+extern speed_t __old_cfgetospeed (const struct termios *tio_p);
+compat_symbol_reference (libc, __old_cfgetospeed, cfgetospeed, GLIBC_2_0);
+extern speed_t __old_cfgetispeed (const struct termios *tio_p);
+compat_symbol_reference (libc, __old_cfgetispeed, cfgetispeed, GLIBC_2_0);
+extern int __old_tcsetattr (int fd, int act, const struct termios *tio_p);
+compat_symbol_reference (libc, __old_tcsetattr, tcsetattr, GLIBC_2_0);
+extern int __old_tcgetattr (int fd, struct termios *tio_p);
+compat_symbol_reference (libc, __old_tcgetattr, tcgetattr, GLIBC_2_0);
+
+static int old_tcsetattr (int fd, const struct termios *tio_p)
+{
+ struct termios old_tio = *tio_p;
+
+ /* Deliberately corrupt c_ispeed and c_ospeed */
+ old_tio.c_ispeed = 0xdeadbeef;
+ old_tio.c_ospeed = 0xfeedface;
+ return __old_tcsetattr (fd, TCSANOW, &old_tio);
+}
+static int old_tcgetattr (int fd, struct termios *tio_p)
+{
+ int rv;
+ memset (tio_p, 0xde, sizeof *tio_p);
+ rv = __old_tcgetattr (fd, tio_p);
+ if (rv)
+ return rv;
+
+ /* Deliberately corrupt c_ispeed and c_ospeed */
+ tio_p->c_ispeed = 0xdeadbeef;
+ tio_p->c_ospeed = 0xfeedface;
+ return 0;
+}
+
+/* Old interface test. This relies on the new struct termios always
+ being a binary superset of the old one.
+ This doesn't bother testing split speed, since that never worked
+ on the old glibc. */
+static void
+old_tcspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t cbaud;
+
+ if (!speed)
+ return; /* Skip B0 for this test */
+
+ cbaud = speed_to_cbaud (speed);
+ if (cbaud == __BOTHER)
+ return;
+
+ CHECKZERO (old_tcgetattr (fd, &tio));
+ CHECKZERO (__old_cfsetospeed (&tio, cbaud));
+ VERIFY (__old_cfgetospeed (&tio), cbaud);
+ CHECKZERO (__old_cfsetispeed (&tio, cbaud));
+ VERIFY (__old_cfgetispeed (&tio), cbaud);
+ CHECKZERO (old_tcsetattr (fd, &tio));
+ check_speeds_tc (fd, speed, speed);
+}
+
+/* Verify that invalid CBAUD values return error for the old interfaces */
+static void
+old_invalid_speeds_test (int fd)
+{
+ struct termios tio;
+ speed_t cbaud;
+
+ for (cbaud = 0 ; cbaud ; cbaud > 0xffff ? (cbaud <<= 1) : cbaud++) {
+ speed_t realspeed;
+ realspeed = (cbaud & ~CBAUD) ? BOGUS : cbaud_to_speed (cbaud);
+ if (realspeed >= ANY)
+ {
+ int rv;
+
+ errno = 0;
+ rv = __old_cfsetospeed (&tio, cbaud);
+ if (rv != -1 || errno != EINVAL)
+ FAIL("__old_cfsetospeed() accepted invalid value %06o", cbaud);
+
+ errno = 0;
+ rv = __old_cfsetispeed (&tio, cbaud);
+ if (rv != -1 || errno != EINVAL)
+ FAIL("__old_cfsetispeed() accepted invalid value %06o", cbaud);
+ }
+ else
+ {
+ CHECKZERO (__old_cfsetospeed (&tio, cbaud));
+ VERIFY (__old_cfgetospeed (&tio), cbaud);
+ CHECKZERO (__old_cfsetispeed (&tio, cbaud));
+ VERIFY (__old_cfgetispeed (&tio), cbaud);
+ if (cbaud)
+ {
+ CHECKZERO (old_tcsetattr (fd, &tio));
+ check_speeds_tc (fd, realspeed, realspeed);
+ }
+ }
+ }
+}
+
+static void
+compat_tests (int fd)
+{
+ run_speed_test (fd, old_tcspeed_test);
+ old_invalid_speeds_test (fd);
+}
+#else /* No TEST_COMPAT */
+#define compat_tests(fd) ((void)(fd))
+#endif
+
+static void
+run_speed_test (int fd, speed_test_t test)
+{
+ unsigned short seed [3] = { 0x1234, 0x5678, 0x9abc };
+ struct speeds {
+ speed_t ospeed, ispeed;
+ };
+ static const struct speeds initial_speeds [] = {
+ { 2400, 2400 }, /* Standard speed, non-split */
+ { 123456, 123456 }, /* Nonstandard speed, non-split */
+ { 75, 1200 }, /* Standard split speeds */
+ { 9600, 456789 }, /* One standard, one nonstandard */
+ { 54321, 1234567890 } /* Nonstandard, one very high */
+ };
+
+ array_foreach_const (is, initial_speeds)
+ {
+ /* Set up initial conditions */
+ set_speeds (fd, is->ospeed, is->ispeed);
+
+ /* Test all common speeds */
+ array_foreach_const (ts, test_speeds)
+ test (fd, *ts);
+
+ /* Test pseudorandom speeds; array_length(test_speeds)
+ here is an arbitrary value */
+ const size_t random_test_count = array_length(test_speeds);
+ for (size_t i = 0 ; i < random_test_count ; i++)
+ test (fd, (speed_t) jrand48 (seed));
+
+ /* Test power-of-2 speeds */
+ for (speed_t s = 1 ; s ; s <<= 1)
+ test (fd, s);
+
+ /* Test power of 2 multiples of 75; 75 << 25 is the maximum below 2^32 */
+ for (int i = 0 ; i < 26 ; i++)
+ test (fd, (speed_t)75 << i);
+ }
+}
+
+static void
+run_speed_tests (int fd)
+{
+ /* Test proper canonicalization using the new interface */
+ run_speed_test (fd, new_cfspeed_test);
+ run_speed_test (fd, new_tcspeed_test);
+
+ /* Try the new cfset*baud() functions */
+ run_speed_test (fd, new_cfbaud_test);
+ run_speed_test (fd, new_tcbaud_test);
+
+ /* Tests of the legacy functions */
+ compat_tests (fd);
+}
+
+/* test dispatch */
+
+static void
+run_in_chroot (void)
+{
+ /* Create a pty slave to use as a tty. Most of the termios settings,
+ including the speeds, have no impact on a pty, but they are still
+ settable like for any other tty, which makes them very convenient
+ for testing. */
+ int ptmfd, ttyfd;
+
+ support_openpty (&ptmfd, &ttyfd, NULL, NULL, NULL);
+ run_speed_tests (ttyfd);
+ close (ttyfd);
+ close (ptmfd);
+}
+
+static int
+do_test (void)
+{
+ support_become_root ();
+ run_in_chroot ();
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-tgkill.c b/sysdeps/unix/sysv/linux/tst-tgkill.c
index 054bf7f..c489155 100644
--- a/sysdeps/unix/sysv/linux/tst-tgkill.c
+++ b/sysdeps/unix/sysv/linux/tst-tgkill.c
@@ -1,5 +1,5 @@
/* Smoke test for the tgkill system call.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-time-clobber.c b/sysdeps/unix/sysv/linux/tst-time-clobber.c
index b0e40b5..707d0d6 100644
--- a/sysdeps/unix/sysv/linux/tst-time-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-time-clobber.c
@@ -1,5 +1,5 @@
/* Check that time does not clobber errno.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-timerfd.c b/sysdeps/unix/sysv/linux/tst-timerfd.c
index 2e78c8f..7c89588 100644
--- a/sysdeps/unix/sysv/linux/tst-timerfd.c
+++ b/sysdeps/unix/sysv/linux/tst-timerfd.c
@@ -1,5 +1,5 @@
/* Test for timerfd related functions
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-common.c b/sysdeps/unix/sysv/linux/tst-ttyname-common.c
index 2f2a36d..d01c8a3 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-common.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-common.c
@@ -1,5 +1,5 @@
/* Common definitions for ttyname tests.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-direct.c b/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
index 1ed87e7..87794ad 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c b/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
index 8d7a037..c003904 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
@@ -1,5 +1,5 @@
/* Tests for ttyname/ttyname_r with namespaces.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
index 55de841..9fb42f7 100644
--- a/sysdeps/unix/sysv/linux/ttyname.c
+++ b/sysdeps/unix/sysv/linux/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname.h b/sysdeps/unix/sysv/linux/ttyname.h
index bf5fca9..eb5f2df 100644
--- a/sysdeps/unix/sysv/linux/ttyname.h
+++ b/sysdeps/unix/sysv/linux/ttyname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index 13b078d..72e5d98 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tv32-compat.h b/sysdeps/unix/sysv/linux/tv32-compat.h
index b322dc3..a97fb38 100644
--- a/sysdeps/unix/sysv/linux/tv32-compat.h
+++ b/sysdeps/unix/sysv/linux/tv32-compat.h
@@ -1,5 +1,5 @@
/* Compatibility definitions for 'struct timeval' with 32-bit time_t.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/umount.c b/sysdeps/unix/sysv/linux/umount.c
index 97b3e29..865a47c 100644
--- a/sysdeps/unix/sysv/linux/umount.c
+++ b/sysdeps/unix/sysv/linux/umount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/umount2.c b/sysdeps/unix/sysv/linux/umount2.c
index 2b37c15..4d84800 100644
--- a/sysdeps/unix/sysv/linux/umount2.c
+++ b/sysdeps/unix/sysv/linux/umount2.c
@@ -1,5 +1,5 @@
/* Unmount filesystem.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/unlink.c b/sysdeps/unix/sysv/linux/unlink.c
index 932cfcf..485f131 100644
--- a/sysdeps/unix/sysv/linux/unlink.c
+++ b/sysdeps/unix/sysv/linux/unlink.c
@@ -1,5 +1,5 @@
/* Delete a name and possibly the file it refers to. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/unlockpt.c b/sysdeps/unix/sysv/linux/unlockpt.c
index be5f728..447b5fc 100644
--- a/sysdeps/unix/sysv/linux/unlockpt.c
+++ b/sysdeps/unix/sysv/linux/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/update-syscall-lists.py b/sysdeps/unix/sysv/linux/update-syscall-lists.py
index 2393e9c..5bc3c2c 100644
--- a/sysdeps/unix/sysv/linux/update-syscall-lists.py
+++ b/sysdeps/unix/sysv/linux/update-syscall-lists.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Regenerate <arch-syscall.h> and update syscall-names.list.
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/updwtmp.c b/sysdeps/unix/sysv/linux/updwtmp.c
index 1e4b5b3..015237c 100644
--- a/sysdeps/unix/sysv/linux/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c
index 0c2bcae..e1000aa 100644
--- a/sysdeps/unix/sysv/linux/ustat.c
+++ b/sysdeps/unix/sysv/linux/ustat.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics (deprecated). Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utime.c b/sysdeps/unix/sysv/linux/utime.c
index adb3145..eee1e8d 100644
--- a/sysdeps/unix/sysv/linux/utime.c
+++ b/sysdeps/unix/sysv/linux/utime.c
@@ -1,5 +1,5 @@
/* utime -- Change access and modification times of file. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c
index 991897f..b7190d2 100644
--- a/sysdeps/unix/sysv/linux/utimensat.c
+++ b/sysdeps/unix/sysv/linux/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,9 +75,6 @@ int
__utimensat64 (int fd, const char *file, const struct __timespec64 tsp64[2],
int flags)
{
- if (file == NULL)
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-
return __utimensat64_helper (fd, file, &tsp64[0], flags);
}
diff --git a/sysdeps/unix/sysv/linux/utimes.c b/sysdeps/unix/sysv/linux/utimes.c
index a094457..9fbe53a 100644
--- a/sysdeps/unix/sysv/linux/utimes.c
+++ b/sysdeps/unix/sysv/linux/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utmp_file.c b/sysdeps/unix/sysv/linux/utmp_file.c
index f2d23a5..70e3bc6 100644
--- a/sysdeps/unix/sysv/linux/utmp_file.c
+++ b/sysdeps/unix/sysv/linux/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/versionsort64.c b/sysdeps/unix/sysv/linux/versionsort64.c
index dc5863b..71177a5 100644
--- a/sysdeps/unix/sysv/linux/versionsort64.c
+++ b/sysdeps/unix/sysv/linux/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/vmsplice.c b/sysdeps/unix/sysv/linux/vmsplice.c
index dc6e1b3..e05695c 100644
--- a/sysdeps/unix/sysv/linux/vmsplice.c
+++ b/sysdeps/unix/sysv/linux/vmsplice.c
@@ -1,5 +1,5 @@
/* Splice user pages into a pipe Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/wait3.c b/sysdeps/unix/sysv/linux/wait3.c
index a06ca44..3d3d92e 100644
--- a/sysdeps/unix/sysv/linux/wait3.c
+++ b/sysdeps/unix/sysv/linux/wait3.c
@@ -1,5 +1,5 @@
/* Wait for process to change state, BSD style. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/wait4.c b/sysdeps/unix/sysv/linux/wait4.c
index 5dd0d3e..80e4d13 100644
--- a/sysdeps/unix/sysv/linux/wait4.c
+++ b/sysdeps/unix/sysv/linux/wait4.c
@@ -1,5 +1,5 @@
/* Wait for process to change state. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/waitid.c b/sysdeps/unix/sysv/linux/waitid.c
index 13fed92..78dab22 100644
--- a/sysdeps/unix/sysv/linux/waitid.c
+++ b/sysdeps/unix/sysv/linux/waitid.c
@@ -1,5 +1,5 @@
/* Linux implementation of waitid.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/write.c b/sysdeps/unix/sysv/linux/write.c
index b689a9f..dd40926 100644
--- a/sysdeps/unix/sysv/linux/write.c
+++ b/sysdeps/unix/sysv/linux/write.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/write_nocancel.c b/sysdeps/unix/sysv/linux/write_nocancel.c
index d16fda9..306bd28 100644
--- a/sysdeps/unix/sysv/linux/write_nocancel.c
+++ b/sysdeps/unix/sysv/linux/write_nocancel.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
index f06bcd5..7259592 100644
--- a/sysdeps/unix/sysv/linux/writev.c
+++ b/sysdeps/unix/sysv/linux/writev.c
@@ -1,5 +1,5 @@
/* Linux writev syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/arch-pkey.h b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
index 0b6c556..b76497b 100644
--- a/sysdeps/unix/sysv/linux/x86/arch-pkey.h
+++ b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
@@ -1,5 +1,5 @@
/* Helper functions for manipulating memory protection keys.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/environments.h b/sysdeps/unix/sysv/linux/x86/bits/environments.h
index dd7be14..66acb92 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/epoll.h b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
index a0279fc..03f3844 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
index 9a3734c..63b76c9 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/x86.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
index 93a5494..4163314 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/mman.h b/sysdeps/unix/sysv/linux/x86/bits/mman.h
index cd5ea8e..0da3ac6 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/x86_64 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/platform/features.h b/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
index 7704feb..84842c5 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
@@ -1,6 +1,6 @@
/* Inline functions for x86 CPU features.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -28,7 +28,7 @@ enum
x86_feature_1_shstk = 1U << 1
};
-static __inline__ _Bool
+static __inline__ bool
x86_cpu_cet_active (unsigned int __index)
{
#ifdef __x86_64__
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
index a64328a..a2daf70 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs.h b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
index 18e37a1..afe295c 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. x86 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/rseq.h b/sysdeps/unix/sysv/linux/x86/bits/rseq.h
index 3b76b12..0c19fdc 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux x86 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
index 773cc32..e852b9b 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
index 810d656..7edc1f0 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/timesize.h b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
index 57d83ab..09aeb73 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, x86-64 and x32 case.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
index 81867c0..db1b94e 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* x86 implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
index f4e2ec2..8ba6e7f 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h b/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
index b6bbedb..f1dd026 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
+++ b/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
@@ -1,5 +1,5 @@
/* Handle AT_HWCAP2. Linux/x86 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h b/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
index a097825..c299c17 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
+++ b/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
@@ -1,5 +1,5 @@
/* Emulate AT_MINSIGSTKSZ. Linux/x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
index d3eef75..b8a6f63 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. X86 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elf-read-prop.h b/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
index 5b34072..de0dd13 100644
--- a/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
+++ b/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties in ldconfig. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.c b/sysdeps/unix/sysv/linux/x86/elision-conf.c
index 0766306..cf120a9 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.h b/sysdeps/unix/sysv/linux/x86/elision-conf.h
index 18d0ce0..6ba8810 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-lock.c b/sysdeps/unix/sysv/linux/x86/elision-lock.c
index ecc653d..74e7482 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-timed.c b/sysdeps/unix/sysv/linux/x86/elision-timed.c
index e416c8d..50925f4 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-trylock.c b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
index 94265d7..60c4311 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-unlock.c b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
index 81301c0..67dd1e6 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/gettimeofday.c b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
index 6051556..f41999c 100644
--- a/sysdeps/unix/sysv/linux/x86/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday - get the time. Linux/x86 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/longjmp.c b/sysdeps/unix/sysv/linux/x86/longjmp.c
index 0f045e3..ad4df7a 100644
--- a/sysdeps/unix/sysv/linux/x86/longjmp.c
+++ b/sysdeps/unix/sysv/linux/x86/longjmp.c
@@ -1,5 +1,5 @@
/* __libc_siglongjmp for Linux/x86
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_get.c b/sysdeps/unix/sysv/linux/x86/pkey_get.c
index eb988a5..f0b4b3b 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_get.c
@@ -1,5 +1,5 @@
/* Reading the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <arch-pkey.h>
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
if (key < 0 || key > 15)
{
@@ -31,3 +32,5 @@ pkey_get (int key)
return (pkru >> (2 * key)) & 3;
return 0;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_set.c b/sysdeps/unix/sysv/linux/x86/pkey_set.c
index 3fd2c95..76c8f05 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <arch-pkey.h>
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_set (int key, unsigned int rights)
+__pkey_set (int key, unsigned int rights)
{
if (key < 0 || key > 15 || rights > 3)
{
@@ -33,3 +34,5 @@ pkey_set (int key, unsigned int rights)
pkey_write (pkru);
return 0;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/x86/setjmpP.h b/sysdeps/unix/sysv/linux/x86/setjmpP.h
index 1f50f3e..a103e5c 100644
--- a/sysdeps/unix/sysv/linux/x86/setjmpP.h
+++ b/sysdeps/unix/sysv/linux/x86/setjmpP.h
@@ -1,5 +1,5 @@
/* Internal header file for <setjmp.h>. Linux/x86 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
index 78ebdd6..f1b4c96 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/elf.h b/sysdeps/unix/sysv/linux/x86/sys/elf.h
index b38d423..e8108ef 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/io.h b/sysdeps/unix/sysv/linux/x86/sys/io.h
index 48cae99..d29f0fb 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/io.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/perm.h b/sysdeps/unix/sysv/linux/x86/sys/perm.h
index d5f097d..64c1748 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/perm.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/perm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
index 8dee96c..9dea188 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/x86 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86/sys/reg.h b/sysdeps/unix/sysv/linux/x86/sys/reg.h
index f66b3aa..2b28b91 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 492ae83..1ef74a7 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/user.h b/sysdeps/unix/sysv/linux/x86/sys/user.h
index a8f3052..780ab1c 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/vm86.h b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
index 52199ce..e5be645 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/vm86.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sysconf.c b/sysdeps/unix/sysv/linux/x86/sysconf.c
index 6095a58..5405290 100644
--- a/sysdeps/unix/sysv/linux/x86/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/time.c b/sysdeps/unix/sysv/linux/x86/time.c
index 067af1f..0eb302d 100644
--- a/sysdeps/unix/sysv/linux/x86/time.c
+++ b/sysdeps/unix/sysv/linux/x86/time.c
@@ -1,5 +1,5 @@
/* time -- Get number of seconds since Epoch. Linux/x86 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
index 4f7aec2..4de6b8c 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
@@ -1,5 +1,5 @@
/* Test that sigprocmask does not read from the unused part of jmpbuf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h b/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
index 5d86e75..06fbae5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
@@ -117,6 +117,7 @@
#define __NR_gettimeofday 96
#define __NR_getuid 102
#define __NR_getxattr 191
+#define __NR_getxattrat 464
#define __NR_init_module 175
#define __NR_inotify_add_watch 254
#define __NR_inotify_init 253
@@ -151,6 +152,7 @@
#define __NR_listen 50
#define __NR_listmount 458
#define __NR_listxattr 194
+#define __NR_listxattrat 465
#define __NR_llistxattr 195
#define __NR_lookup_dcookie 212
#define __NR_lremovexattr 198
@@ -205,6 +207,7 @@
#define __NR_open 2
#define __NR_open_by_handle_at 304
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 257
#define __NR_openat2 437
#define __NR_pause 34
@@ -250,6 +253,7 @@
#define __NR_recvmsg 47
#define __NR_remap_file_pages 216
#define __NR_removexattr 197
+#define __NR_removexattrat 466
#define __NR_rename 82
#define __NR_renameat 264
#define __NR_renameat2 316
@@ -313,6 +317,7 @@
#define __NR_settimeofday 164
#define __NR_setuid 105
#define __NR_setxattr 188
+#define __NR_setxattrat 463
#define __NR_shmat 30
#define __NR_shmctl 31
#define __NR_shmdt 67
@@ -359,6 +364,7 @@
#define __NR_unlink 87
#define __NR_unlinkat 263
#define __NR_unshare 272
+#define __NR_uretprobe 335
#define __NR_uselib 134
#define __NR_userfaultfd 323
#define __NR_ustat 136
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index aea7848..5648772 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2744,6 +2744,25 @@ GLIBC_2.4 sys_errlist D 0x420
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 0ba4ef5..6719814 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1222,3 +1222,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
index be32183..cb08968 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
@@ -1,5 +1,5 @@
/* Linux mmap system call. x86-64 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
index 8f8b9ba..75267a9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. x86_64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index fcbffd8..6938382 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -67,7 +67,7 @@ $(objpfx)libx86-64-isa-level.so: $(objpfx)libx86-64-isa-level-1.so
cp $< $@
endif
-ifeq (yes,$(have-mamx-tile))
+ifeq (yesgnu2,$(have-mamx-tile)$(have-test-mtls-descriptor))
tests += \
tst-gnu2-tls2-amx \
# tests
@@ -87,10 +87,10 @@ $(objpfx)tst-gnu2-tls2-amx-mod0.so: $(libsupport)
$(objpfx)tst-gnu2-tls2-amx-mod1.so: $(libsupport)
$(objpfx)tst-gnu2-tls2-amx-mod2.so: $(libsupport)
-CFLAGS-tst-gnu2-tls2-amx.c += -mamx-tile
-CFLAGS-tst-gnu2-tls2-amx-mod0.c += -mamx-tile -mtls-dialect=gnu2
-CFLAGS-tst-gnu2-tls2-amx-mod1.c += -mamx-tile -mtls-dialect=gnu2
-CFLAGS-tst-gnu2-tls2-amx-mod2.c += -mamx-tile -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx.c += -mamx-tile -DTEST_AMX
+CFLAGS-tst-gnu2-tls2-amx-mod0.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx-mod1.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx-mod2.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
endif
endif # $(subdir) == elf
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 9d9732a..b73a18b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
index 742452d..293f3ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
index 5bd1870..7e060e1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
+++ b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
@@ -1,5 +1,5 @@
/* Helper function to allocate shadow stack.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
index 2777ead..54d763e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
+++ b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
@@ -1,5 +1,5 @@
/* Helper function to allocate shadow stack.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index d0adc21..f3985e7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone3.S b/sysdeps/unix/sysv/linux/x86_64/clone3.S
index 4cc19e0..3e26bd7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone3.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/x86-64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
index b4f7e6c..773f573 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
@@ -1,5 +1,5 @@
/* Linux/x86-64 CET initializers function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h b/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
index ad637df..a28ac55 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
@@ -1,5 +1,5 @@
/* PLT rewrite helper function. Linux/x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h b/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
deleted file mode 100644
index 7b45fe4..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#if IS_IN (ldconfig)
-# include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
-#else
-# include <sysdeps/x86/dl-procinfo.h>
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c b/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
index 39b3424..378c333 100644
--- a/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
+++ b/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
@@ -1,5 +1,5 @@
/* Get CPUID feature leaf. Linux/x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/getcontext.S b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
index e588a8c..9bf3d50 100644
--- a/sysdeps/unix/sysv/linux/x86_64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
index 2681e73..7778171 100644
--- a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. x86-64 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
index 49c0c7a..ed5277e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
+++ b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
@@ -1 +1 @@
-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\264\4-x86-64\6 \2\4\6 \2x32\4-x32\6"_
diff --git a/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c b/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
index b39812f..812e023 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_flags = (act)->sa_flags | SA_RESTORER; \
+ (kact)->sa_flags |= SA_RESTORER; \
(kact)->sa_restorer = &restore_rt
#define RESET_SA_RESTORER(act, kact) \
diff --git a/sysdeps/unix/sysv/linux/x86_64/makecontext.c b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
index 8602a51..3a49aa6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h b/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
index bc02c0a..9cf79a4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. x86-64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/setcontext.S b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
index d0bcd79..2d89f89 100644
--- a/sysdeps/unix/sysv/linux/x86_64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
index 408b730..4809abc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
index b2e0f19..559f66f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscall.S b/sysdeps/unix/sysv/linux/x86_64/syscall.S
index 43af808..b211a0b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscall.S
+++ b/sysdeps/unix/sysv/linux/x86_64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S b/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S
new file mode 100644
index 0000000..fdfe80a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S
@@ -0,0 +1,57 @@
+/* Cancellable syscall wrapper. Linux/x86_64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [rax] __syscall_cancel_arch (volatile int *cancelhandling [%rdi],
+ __syscall_arg_t nr [%rsi],
+ __syscall_arg_t arg1 [%rdx],
+ __syscall_arg_t arg2 [%rcx],
+ __syscall_arg_t arg3 [%r8],
+ __syscall_arg_t arg4 [%r9],
+ __syscall_arg_t arg5 [SP+8],
+ __syscall_arg_t arg6 [SP+16]) */
+
+ENTRY (__syscall_cancel_arch)
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ mov (%rdi),%eax
+ testb $TCB_CANCELED_BITMASK, (%rdi)
+ jne __syscall_do_cancel
+
+ /* Issue a 6 argument syscall, the nr [%rax] being the syscall
+ number. */
+ mov %rdi,%r11
+ mov %rsi,%rax
+ mov %rdx,%rdi
+ mov %rcx,%rsi
+ mov %r8,%rdx
+ mov %r9,%r10
+ mov 8(%rsp),%r8
+ mov 16(%rsp),%r9
+ mov %r11,8(%rsp)
+ syscall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index a4ec142..3aa6226 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index a2b021b..1d175df 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -376,6 +376,7 @@
# define HAVE_TIME_VSYSCALL "__vdso_time"
# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres"
+# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
index e13c752..c9ad187 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
index 5274a09..5b6675a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
@@ -1,5 +1,5 @@
/* Test CET property note parser for [BZ #23467].
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
extern void bar (void);
void
-__attribute__ ((noclone, noinline))
+__attribute_optimization_barrier__
test (void (*func_p) (void))
{
func_p ();
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
index 6a8dd8b..f1f00b4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
index 388931f..4ec132f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
@@ -1,6 +1,6 @@
/* Check getcontext and setcontext on the context from makecontext
with shadow stack.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ static ucontext_t ctx[5];
static atomic_int done;
static void
-__attribute__((noinline, noclone))
+__attribute_optimization_barrier__
f2 (void)
{
printf ("start f2\n");
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
index 56d7753..3e9fe4e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
@@ -1,6 +1,6 @@
/* Verify that child of the vfork-calling function can't return when
shadow stack is in use.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
#include <x86intrin.h>
#include <support/test-driver.h>
-__attribute__ ((noclone, noinline))
+__attribute_optimization_barrier__
static void
do_test_1 (void)
{
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c b/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
index 379dd47..9293ec5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
@@ -1,5 +1,5 @@
/* Check ISA level on shared object in glibc-hwcaps subdirectories.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
index ae4dd82..794a31f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation with AMX.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ extern int arch_prctl (int, ...);
#define X86_XSTATE_TILEDATA_ID 18
/* Initialize tile config. */
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static void
init_tile_config (__tilecfg *tileinfo)
{
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
index 1845a3c..57c424a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation with AMX.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h b/sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h
new file mode 100644
index 0000000..585ca01
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h
@@ -0,0 +1,76 @@
+/* Signal frame backtracing support for SFrame on AMD, x86-64 and x86.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This code is inspired from libgcc's MD_FALLBACK_FRAME_STATE_FOR
+ implementation. See libgcc/config/i386/linux-unwind.h */
+
+#include <signal.h>
+#include <sys/ucontext.h>
+
+#ifdef __x86_64__
+
+/* SFrame is only supported by x86_64 targets. */
+
+#define MD_DECODE_SIGNAL_FRAME x86_64_decode_signal_frame
+
+#ifdef __LP64__
+#define RT_SIGRETURN_SYSCALL 0x050f0000000fc0c7ULL
+#else
+#define RT_SIGRETURN_SYSCALL 0x050f40000201c0c7ULL
+#endif
+
+static _Unwind_Reason_Code
+x86_64_decode_signal_frame (frame *frame)
+{
+ unsigned char *pc = (unsigned char *) frame->pc;
+ mcontext_t *st;
+
+ unsigned char pc0 = *(unsigned char *)(pc + 0);
+ unsigned long long pc1;
+ memcpy (&pc1, pc + 1, sizeof (unsigned long long));
+
+ /* movq $__NR_rt_sigreturn, %rax ; syscall. */
+ if ( pc0 == 0x48
+ && pc1 == RT_SIGRETURN_SYSCALL)
+ {
+ ucontext_t *uc_ = (ucontext_t *)frame->sp;
+ st = &uc_->uc_mcontext;
+ }
+ else
+ return _URC_END_OF_STACK;
+
+ frame->pc = (_Unwind_Ptr) st->gregs[REG_RIP];
+ frame->sp = (_Unwind_Ptr) st->gregs[REG_RSP];
+ frame->fp = (_Unwind_Ptr) st->gregs[REG_RBP];
+ return _URC_NO_REASON;
+}
+
+#define MD_DETECT_OUTERMOST_FRAME x86_64_detect_outermost_frame
+
+static _Unwind_Reason_Code
+x86_64_detect_outermost_frame (frame *frame)
+{
+ /* Outermost frame has the frame pointer cleared. */
+ if (frame->fp == 0)
+ return _URC_END_OF_STACK;
+
+ return _URC_NO_REASON;
+}
+
+#endif /* ifdef __x86_64__ */
diff --git a/sysdeps/unix/sysv/linux/x86_64/vfork.S b/sysdeps/unix/sysv/linux/x86_64/vfork.S
index 0d8732e..608394b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/vfork.S
+++ b/sysdeps/unix/sysv/linux/x86_64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
index 6c35068..135ef3d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
@@ -111,6 +111,7 @@
#define __NR_gettimeofday 1073741920
#define __NR_getuid 1073741926
#define __NR_getxattr 1073742015
+#define __NR_getxattrat 1073742288
#define __NR_init_module 1073741999
#define __NR_inotify_add_watch 1073742078
#define __NR_inotify_init 1073742077
@@ -145,6 +146,7 @@
#define __NR_listen 1073741874
#define __NR_listmount 1073742282
#define __NR_listxattr 1073742018
+#define __NR_listxattrat 1073742289
#define __NR_llistxattr 1073742019
#define __NR_lookup_dcookie 1073742036
#define __NR_lremovexattr 1073742022
@@ -198,6 +200,7 @@
#define __NR_open 1073741826
#define __NR_open_by_handle_at 1073742128
#define __NR_open_tree 1073742252
+#define __NR_open_tree_attr 1073742291
#define __NR_openat 1073742081
#define __NR_openat2 1073742261
#define __NR_pause 1073741858
@@ -242,6 +245,7 @@
#define __NR_recvmsg 1073742343
#define __NR_remap_file_pages 1073742040
#define __NR_removexattr 1073742021
+#define __NR_removexattrat 1073742290
#define __NR_rename 1073741906
#define __NR_renameat 1073742088
#define __NR_renameat2 1073742140
@@ -305,6 +309,7 @@
#define __NR_settimeofday 1073741988
#define __NR_setuid 1073741929
#define __NR_setxattr 1073742012
+#define __NR_setxattrat 1073742287
#define __NR_shmat 1073741854
#define __NR_shmctl 1073741855
#define __NR_shmdt 1073741891
@@ -351,6 +356,7 @@
#define __NR_unlink 1073741911
#define __NR_unlinkat 1073742087
#define __NR_unshare 1073742096
+#define __NR_uretprobe 1073742159
#define __NR_userfaultfd 1073742147
#define __NR_ustat 1073741960
#define __NR_utime 1073741956
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index efcda97..c05bfa4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -1,5 +1,5 @@
/* arch_prctl call for Linux/x32.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
index df86a95..f181124 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
index 47fa8af..0a8348d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. X32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 4ab3681..25a39d0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2763,3 +2763,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 4057115..1a1069a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1222,3 +1222,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
index 271d7e3..bf05c61 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -1,5 +1,5 @@
/* The lseek system call with 64-bit offset. Linux/x32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
index 4bf1b47..714fd28 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
@@ -1,5 +1,5 @@
/* prctl - Linux specific syscall. x86-64 x32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h b/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h
new file mode 100644
index 0000000..3c12b56
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h
@@ -0,0 +1,34 @@
+/* Types and macros used for syscall issuing. x86_64/x32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYSCALL_TYPES_H
+#define _SYSCALL_TYPES_H
+
+#include <libc-diag.h>
+
+typedef long long int __syscall_arg_t;
+
+/* Syscall arguments for x32 follows x86_64 ABI, however pointers are 32 bits
+ should be zero extended. */
+#define __SSC(__x) \
+ ({ \
+ TYPEFY (__x, __tmp) = ARGIFY (__x); \
+ (__syscall_arg_t) __tmp; \
+ })
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
index f3f9c52..707261a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/times.c b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
index 67b6fc1..edeea37 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/times.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
@@ -1,5 +1,5 @@
/* Linux times. X32 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
index 206843b..7677dbe 100644
--- a/sysdeps/unix/sysv/linux/xmknod.c
+++ b/sysdeps/unix/sysv/linux/xmknod.c
@@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
index 0535b3d..a082c69 100644
--- a/sysdeps/unix/sysv/linux/xmknodat.c
+++ b/sysdeps/unix/sysv/linux/xmknodat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
index fa327ca..c2c05b4 100644
--- a/sysdeps/unix/sysv/linux/xstat.c
+++ b/sysdeps/unix/sysv/linux/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __xstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index aa63152..153a01c 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using Linux stat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,7 +67,7 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
# else
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index 8db6001..aaf766b 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstatconv.h b/sysdeps/unix/sysv/linux/xstatconv.h
index b9d7738..7f54dbe 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstatover.h b/sysdeps/unix/sysv/linux/xstatover.h
index 7aada3b..df7d74a 100644
--- a/sysdeps/unix/sysv/linux/xstatover.h
+++ b/sysdeps/unix/sysv/linux/xstatover.h
@@ -1,5 +1,5 @@
/* Overflow tests for stat, statfs, and lseek functions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index be4fa11..a9dabc7 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/x86_64/sysdep.h b/sysdeps/unix/x86_64/sysdep.h
index 6cbb4d8..ac789a9 100644
--- a/sysdeps/unix/x86_64/sysdep.h
+++ b/sysdeps/unix/x86_64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile
new file mode 100644
index 0000000..5b5aa29
--- /dev/null
+++ b/sysdeps/wordsize-32/Makefile
@@ -0,0 +1,4 @@
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-int-convs += int long
+fmt-xscanf-uint-convs += uint ulong
+endif
diff --git a/sysdeps/wordsize-32/bits/wordsize.h b/sysdeps/wordsize-32/bits/wordsize.h
index 4a3b517..dd0ad97 100644
--- a/sysdeps/wordsize-32/bits/wordsize.h
+++ b/sysdeps/wordsize-32/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/divdi3-symbol-hacks.h b/sysdeps/wordsize-32/divdi3-symbol-hacks.h
index a876464..e51d847 100644
--- a/sysdeps/wordsize-32/divdi3-symbol-hacks.h
+++ b/sysdeps/wordsize-32/divdi3-symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for divdi3 symbol manipulation.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c
index 4c41b59..015494a 100644
--- a/sysdeps/wordsize-32/divdi3.c
+++ b/sysdeps/wordsize-32/divdi3.c
@@ -1,5 +1,5 @@
/* 64-bit multiplication and division
- Copyright (C) 1989, 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/llabs.c b/sysdeps/wordsize-32/llabs.c
index 3f36a7e..dfa55d1 100644
--- a/sysdeps/wordsize-32/llabs.c
+++ b/sysdeps/wordsize-32/llabs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/lldiv.c b/sysdeps/wordsize-32/lldiv.c
index b51f0e0..6832adf 100644
--- a/sysdeps/wordsize-32/lldiv.c
+++ b/sysdeps/wordsize-32/lldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-d.input b/sysdeps/wordsize-32/tst-scanf-format-int-d.input
new file mode 100644
index 0000000..5347e29
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-int-d.input
@@ -0,0 +1,266 @@
+%d::0:-1:
+%*d::0:-1:
+%d:-2147484882:1:11:-2147483648:
+%*d:-2147484882:0:11:
+%d:-2147483649:1:11:-2147483648:
+%*d:-2147483649:0:11:
+%d:-2147483648:1:11:-2147483648:
+%*d:-2147483648:0:11:
+%d:-123:1:4:-123:
+%*d:-123:0:4:
+%d:-1:1:2:-1:
+%*d:-1:0:2:
+%d:-0:1:2:0:
+%*d:-0:0:2:
+%d:0:1:1:0:
+%*d:0:0:1:
+%d:1:1:1:1:
+%*d:1:0:1:
+%d:42:1:2:42:
+%*d:42:0:2:
+%d:2147483647:1:10:2147483647:
+%*d:2147483647:0:10:
+%d:2147483648:1:10:2147483647:
+%*d:2147483648:0:10:
+%d:2147487889:1:10:2147483647:
+%*d:2147487889:0:10:
+%d:+0:1:2:0:
+%*d:+0:0:2:
+%d:+1:1:2:1:
+%*d:+1:0:2:
+%d:+42:1:3:42:
+%*d:+42:0:3:
+%d:+2147483647:1:11:2147483647:
+%*d:+2147483647:0:11:
+%d:+2147483648:1:11:2147483647:
+%*d:+2147483648:0:11:
+%d:+2147487889:1:11:2147483647:
+%*d:+2147487889:0:11:
+%1d::0:-1:
+%*1d::0:-1:
+%1d:-2147484882:0:-1:
+%*1d:-2147484882:0:-1:
+%1d:-2147483649:0:-1:
+%*1d:-2147483649:0:-1:
+%1d:-2147483648:0:-1:
+%*1d:-2147483648:0:-1:
+%1d:-123:0:-1:
+%*1d:-123:0:-1:
+%1d:-1:0:-1:
+%*1d:-1:0:-1:
+%1d:-0:0:-1:
+%*1d:-0:0:-1:
+%1d:0:1:1:0:
+%*1d:0:0:1:
+%1d:1:1:1:1:
+%*1d:1:0:1:
+%1d:42:1:1:4:
+%*1d:42:0:1:
+%1d:2147483647:1:1:2:
+%*1d:2147483647:0:1:
+%1d:2147483648:1:1:2:
+%*1d:2147483648:0:1:
+%1d:2147487889:1:1:2:
+%*1d:2147487889:0:1:
+%1d:+0:0:-1:
+%*1d:+0:0:-1:
+%1d:+1:0:-1:
+%*1d:+1:0:-1:
+%1d:+42:0:-1:
+%*1d:+42:0:-1:
+%1d:+2147483647:0:-1:
+%*1d:+2147483647:0:-1:
+%1d:+2147483648:0:-1:
+%*1d:+2147483648:0:-1:
+%1d:+2147487889:0:-1:
+%*1d:+2147487889:0:-1:
+%2d::0:-1:
+%*2d::0:-1:
+%2d:-2147484882:1:2:-2:
+%*2d:-2147484882:0:2:
+%2d:-2147483649:1:2:-2:
+%*2d:-2147483649:0:2:
+%2d:-2147483648:1:2:-2:
+%*2d:-2147483648:0:2:
+%2d:-123:1:2:-1:
+%*2d:-123:0:2:
+%2d:-1:1:2:-1:
+%*2d:-1:0:2:
+%2d:-0:1:2:0:
+%*2d:-0:0:2:
+%2d:0:1:1:0:
+%*2d:0:0:1:
+%2d:1:1:1:1:
+%*2d:1:0:1:
+%2d:42:1:2:42:
+%*2d:42:0:2:
+%2d:2147483647:1:2:21:
+%*2d:2147483647:0:2:
+%2d:2147483648:1:2:21:
+%*2d:2147483648:0:2:
+%2d:2147487889:1:2:21:
+%*2d:2147487889:0:2:
+%2d:+0:1:2:0:
+%*2d:+0:0:2:
+%2d:+1:1:2:1:
+%*2d:+1:0:2:
+%2d:+42:1:2:4:
+%*2d:+42:0:2:
+%2d:+2147483647:1:2:2:
+%*2d:+2147483647:0:2:
+%2d:+2147483648:1:2:2:
+%*2d:+2147483648:0:2:
+%2d:+2147487889:1:2:2:
+%*2d:+2147487889:0:2:
+%8d::0:-1:
+%*8d::0:-1:
+%8d:-2147484882:1:8:-2147484:
+%*8d:-2147484882:0:8:
+%8d:-2147483649:1:8:-2147483:
+%*8d:-2147483649:0:8:
+%8d:-2147483648:1:8:-2147483:
+%*8d:-2147483648:0:8:
+%8d:-123:1:4:-123:
+%*8d:-123:0:4:
+%8d:-1:1:2:-1:
+%*8d:-1:0:2:
+%8d:-0:1:2:0:
+%*8d:-0:0:2:
+%8d:0:1:1:0:
+%*8d:0:0:1:
+%8d:1:1:1:1:
+%*8d:1:0:1:
+%8d:42:1:2:42:
+%*8d:42:0:2:
+%8d:2147483647:1:8:21474836:
+%*8d:2147483647:0:8:
+%8d:2147483648:1:8:21474836:
+%*8d:2147483648:0:8:
+%8d:2147487889:1:8:21474878:
+%*8d:2147487889:0:8:
+%8d:+0:1:2:0:
+%*8d:+0:0:2:
+%8d:+1:1:2:1:
+%*8d:+1:0:2:
+%8d:+42:1:3:42:
+%*8d:+42:0:3:
+%8d:+2147483647:1:8:2147483:
+%*8d:+2147483647:0:8:
+%8d:+2147483648:1:8:2147483:
+%*8d:+2147483648:0:8:
+%8d:+2147487889:1:8:2147487:
+%*8d:+2147487889:0:8:
+%15d::0:-1:
+%*15d::0:-1:
+%15d:-2147484882:1:11:-2147483648:
+%*15d:-2147484882:0:11:
+%15d:-2147483649:1:11:-2147483648:
+%*15d:-2147483649:0:11:
+%15d:-2147483648:1:11:-2147483648:
+%*15d:-2147483648:0:11:
+%15d:-123:1:4:-123:
+%*15d:-123:0:4:
+%15d:-1:1:2:-1:
+%*15d:-1:0:2:
+%15d:-0:1:2:0:
+%*15d:-0:0:2:
+%15d:0:1:1:0:
+%*15d:0:0:1:
+%15d:1:1:1:1:
+%*15d:1:0:1:
+%15d:42:1:2:42:
+%*15d:42:0:2:
+%15d:2147483647:1:10:2147483647:
+%*15d:2147483647:0:10:
+%15d:2147483648:1:10:2147483647:
+%*15d:2147483648:0:10:
+%15d:2147487889:1:10:2147483647:
+%*15d:2147487889:0:10:
+%15d:+0:1:2:0:
+%*15d:+0:0:2:
+%15d:+1:1:2:1:
+%*15d:+1:0:2:
+%15d:+42:1:3:42:
+%*15d:+42:0:3:
+%15d:+2147483647:1:11:2147483647:
+%*15d:+2147483647:0:11:
+%15d:+2147483648:1:11:2147483647:
+%*15d:+2147483648:0:11:
+%15d:+2147487889:1:11:2147483647:
+%*15d:+2147487889:0:11:
+%2d: :0:-1:
+%*2d: :0:-1:
+%2d: -2147484882:1:3:-2:
+%*2d: -2147484882:0:3:
+%2d: -2147483649:1:3:-2:
+%*2d: -2147483649:0:3:
+%2d: -2147483648:1:3:-2:
+%*2d: -2147483648:0:3:
+%2d: -123:1:3:-1:
+%*2d: -123:0:3:
+%2d: -1:1:3:-1:
+%*2d: -1:0:3:
+%2d: -0:1:3:0:
+%*2d: -0:0:3:
+%2d: 0:1:2:0:
+%*2d: 0:0:2:
+%2d: 1:1:2:1:
+%*2d: 1:0:2:
+%2d: 42:1:3:42:
+%*2d: 42:0:3:
+%2d: 2147483647:1:3:21:
+%*2d: 2147483647:0:3:
+%2d: 2147483648:1:3:21:
+%*2d: 2147483648:0:3:
+%2d: 2147487889:1:3:21:
+%*2d: 2147487889:0:3:
+%2d: +0:1:3:0:
+%*2d: +0:0:3:
+%2d: +1:1:3:1:
+%*2d: +1:0:3:
+%2d: +42:1:3:4:
+%*2d: +42:0:3:
+%2d: +2147483647:1:3:2:
+%*2d: +2147483647:0:3:
+%2d: +2147483648:1:3:2:
+%*2d: +2147483648:0:3:
+%2d: +2147487889:1:3:2:
+%*2d: +2147487889:0:3:
+%15d: :0:-1:
+%*15d: :0:-1:
+%15d: -2147484882:1:12:-2147483648:
+%*15d: -2147484882:0:12:
+%15d: -2147483649:1:12:-2147483648:
+%*15d: -2147483649:0:12:
+%15d: -2147483648:1:12:-2147483648:
+%*15d: -2147483648:0:12:
+%15d: -123:1:5:-123:
+%*15d: -123:0:5:
+%15d: -1:1:3:-1:
+%*15d: -1:0:3:
+%15d: -0:1:3:0:
+%*15d: -0:0:3:
+%15d: 0:1:2:0:
+%*15d: 0:0:2:
+%15d: 1:1:2:1:
+%*15d: 1:0:2:
+%15d: 42:1:3:42:
+%*15d: 42:0:3:
+%15d: 2147483647:1:11:2147483647:
+%*15d: 2147483647:0:11:
+%15d: 2147483648:1:11:2147483647:
+%*15d: 2147483648:0:11:
+%15d: 2147487889:1:11:2147483647:
+%*15d: 2147487889:0:11:
+%15d: +0:1:3:0:
+%*15d: +0:0:3:
+%15d: +1:1:3:1:
+%*15d: +1:0:3:
+%15d: +42:1:4:42:
+%*15d: +42:0:4:
+%15d: +2147483647:1:12:2147483647:
+%*15d: +2147483647:0:12:
+%15d: +2147483648:1:12:2147483647:
+%*15d: +2147483648:0:12:
+%15d: +2147487889:1:12:2147483647:
+%*15d: +2147487889:0:12:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input
new file mode 100644
index 0000000..e71a976
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input
@@ -0,0 +1,1526 @@
+%i::0:-1:
+%*i::0:-1:
+%i:-2147484882:1:11:-2147483648:
+%*i:-2147484882:0:11:
+%i:-0X800004d2:1:11:-2147483648:
+%*i:-0X800004d2:0:11:
+%i:-0x800004D2:1:11:-2147483648:
+%*i:-0x800004D2:0:11:
+%i:-020000002322:1:13:-2147483648:
+%*i:-020000002322:0:13:
+%i:-0B10000000000000000000010011010010:1:35:-2147483648:
+%*i:-0B10000000000000000000010011010010:0:35:
+%i:-0b10000000000000000000010011010010:1:35:-2147483648:
+%*i:-0b10000000000000000000010011010010:0:35:
+%i:-2147483649:1:11:-2147483648:
+%*i:-2147483649:0:11:
+%i:-0X80000001:1:11:-2147483648:
+%*i:-0X80000001:0:11:
+%i:-0x80000001:1:11:-2147483648:
+%*i:-0x80000001:0:11:
+%i:-020000000001:1:13:-2147483648:
+%*i:-020000000001:0:13:
+%i:-0B10000000000000000000000000000001:1:35:-2147483648:
+%*i:-0B10000000000000000000000000000001:0:35:
+%i:-0b10000000000000000000000000000001:1:35:-2147483648:
+%*i:-0b10000000000000000000000000000001:0:35:
+%i:-2147483648:1:11:-2147483648:
+%*i:-2147483648:0:11:
+%i:-0X80000000:1:11:-2147483648:
+%*i:-0X80000000:0:11:
+%i:-0x80000000:1:11:-2147483648:
+%*i:-0x80000000:0:11:
+%i:-020000000000:1:13:-2147483648:
+%*i:-020000000000:0:13:
+%i:-0B10000000000000000000000000000000:1:35:-2147483648:
+%*i:-0B10000000000000000000000000000000:0:35:
+%i:-0b10000000000000000000000000000000:1:35:-2147483648:
+%*i:-0b10000000000000000000000000000000:0:35:
+%i:-123:1:4:-123:
+%*i:-123:0:4:
+%i:-0X7b:1:5:-123:
+%*i:-0X7b:0:5:
+%i:-0x7B:1:5:-123:
+%*i:-0x7B:0:5:
+%i:-0173:1:5:-123:
+%*i:-0173:0:5:
+%i:-0B1111011:1:10:-123:
+%*i:-0B1111011:0:10:
+%i:-0b1111011:1:10:-123:
+%*i:-0b1111011:0:10:
+%i:-1:1:2:-1:
+%*i:-1:0:2:
+%i:-0X1:1:4:-1:
+%*i:-0X1:0:4:
+%i:-0x1:1:4:-1:
+%*i:-0x1:0:4:
+%i:-01:1:3:-1:
+%*i:-01:0:3:
+%i:-0B1:1:4:-1:
+%*i:-0B1:0:4:
+%i:-0b1:1:4:-1:
+%*i:-0b1:0:4:
+%i:-0:1:2:0:
+%*i:-0:0:2:
+%i:-0X0:1:4:0:
+%*i:-0X0:0:4:
+%i:-0x0:1:4:0:
+%*i:-0x0:0:4:
+%i:-00:1:3:0:
+%*i:-00:0:3:
+%i:-0B0:1:4:0:
+%*i:-0B0:0:4:
+%i:-0b0:1:4:0:
+%*i:-0b0:0:4:
+%i:0:1:1:0:
+%*i:0:0:1:
+%i:0X0:1:3:0:
+%*i:0X0:0:3:
+%i:0x0:1:3:0:
+%*i:0x0:0:3:
+%i:00:1:2:0:
+%*i:00:0:2:
+%i:0B0:1:3:0:
+%*i:0B0:0:3:
+%i:0b0:1:3:0:
+%*i:0b0:0:3:
+%i:1:1:1:1:
+%*i:1:0:1:
+%i:0X1:1:3:1:
+%*i:0X1:0:3:
+%i:0x1:1:3:1:
+%*i:0x1:0:3:
+%i:01:1:2:1:
+%*i:01:0:2:
+%i:0B1:1:3:1:
+%*i:0B1:0:3:
+%i:0b1:1:3:1:
+%*i:0b1:0:3:
+%i:42:1:2:42:
+%*i:42:0:2:
+%i:0X2a:1:4:42:
+%*i:0X2a:0:4:
+%i:0x2A:1:4:42:
+%*i:0x2A:0:4:
+%i:052:1:3:42:
+%*i:052:0:3:
+%i:0B101010:1:8:42:
+%*i:0B101010:0:8:
+%i:0b101010:1:8:42:
+%*i:0b101010:0:8:
+%i:2147483647:1:10:2147483647:
+%*i:2147483647:0:10:
+%i:0X7fffffff:1:10:2147483647:
+%*i:0X7fffffff:0:10:
+%i:0x7FFFFFFF:1:10:2147483647:
+%*i:0x7FFFFFFF:0:10:
+%i:017777777777:1:12:2147483647:
+%*i:017777777777:0:12:
+%i:0B1111111111111111111111111111111:1:33:2147483647:
+%*i:0B1111111111111111111111111111111:0:33:
+%i:0b1111111111111111111111111111111:1:33:2147483647:
+%*i:0b1111111111111111111111111111111:0:33:
+%i:2147483648:1:10:2147483647:
+%*i:2147483648:0:10:
+%i:0X80000000:1:10:2147483647:
+%*i:0X80000000:0:10:
+%i:0x80000000:1:10:2147483647:
+%*i:0x80000000:0:10:
+%i:020000000000:1:12:2147483647:
+%*i:020000000000:0:12:
+%i:0B10000000000000000000000000000000:1:34:2147483647:
+%*i:0B10000000000000000000000000000000:0:34:
+%i:0b10000000000000000000000000000000:1:34:2147483647:
+%*i:0b10000000000000000000000000000000:0:34:
+%i:2147487889:1:10:2147483647:
+%*i:2147487889:0:10:
+%i:0X80001091:1:10:2147483647:
+%*i:0X80001091:0:10:
+%i:0x80001091:1:10:2147483647:
+%*i:0x80001091:0:10:
+%i:020000010221:1:12:2147483647:
+%*i:020000010221:0:12:
+%i:0B10000000000000000001000010010001:1:34:2147483647:
+%*i:0B10000000000000000001000010010001:0:34:
+%i:0b10000000000000000001000010010001:1:34:2147483647:
+%*i:0b10000000000000000001000010010001:0:34:
+%i:+0:1:2:0:
+%*i:+0:0:2:
+%i:+0X0:1:4:0:
+%*i:+0X0:0:4:
+%i:+0x0:1:4:0:
+%*i:+0x0:0:4:
+%i:+00:1:3:0:
+%*i:+00:0:3:
+%i:+0B0:1:4:0:
+%*i:+0B0:0:4:
+%i:+0b0:1:4:0:
+%*i:+0b0:0:4:
+%i:+1:1:2:1:
+%*i:+1:0:2:
+%i:+0X1:1:4:1:
+%*i:+0X1:0:4:
+%i:+0x1:1:4:1:
+%*i:+0x1:0:4:
+%i:+01:1:3:1:
+%*i:+01:0:3:
+%i:+0B1:1:4:1:
+%*i:+0B1:0:4:
+%i:+0b1:1:4:1:
+%*i:+0b1:0:4:
+%i:+42:1:3:42:
+%*i:+42:0:3:
+%i:+0X2a:1:5:42:
+%*i:+0X2a:0:5:
+%i:+0x2A:1:5:42:
+%*i:+0x2A:0:5:
+%i:+052:1:4:42:
+%*i:+052:0:4:
+%i:+0B101010:1:9:42:
+%*i:+0B101010:0:9:
+%i:+0b101010:1:9:42:
+%*i:+0b101010:0:9:
+%i:+2147483647:1:11:2147483647:
+%*i:+2147483647:0:11:
+%i:+0X7fffffff:1:11:2147483647:
+%*i:+0X7fffffff:0:11:
+%i:+0x7FFFFFFF:1:11:2147483647:
+%*i:+0x7FFFFFFF:0:11:
+%i:+017777777777:1:13:2147483647:
+%*i:+017777777777:0:13:
+%i:+0B1111111111111111111111111111111:1:34:2147483647:
+%*i:+0B1111111111111111111111111111111:0:34:
+%i:+0b1111111111111111111111111111111:1:34:2147483647:
+%*i:+0b1111111111111111111111111111111:0:34:
+%i:+2147483648:1:11:2147483647:
+%*i:+2147483648:0:11:
+%i:+0X80000000:1:11:2147483647:
+%*i:+0X80000000:0:11:
+%i:+0x80000000:1:11:2147483647:
+%*i:+0x80000000:0:11:
+%i:+020000000000:1:13:2147483647:
+%*i:+020000000000:0:13:
+%i:+0B10000000000000000000000000000000:1:35:2147483647:
+%*i:+0B10000000000000000000000000000000:0:35:
+%i:+0b10000000000000000000000000000000:1:35:2147483647:
+%*i:+0b10000000000000000000000000000000:0:35:
+%i:+2147487889:1:11:2147483647:
+%*i:+2147487889:0:11:
+%i:+0X80001091:1:11:2147483647:
+%*i:+0X80001091:0:11:
+%i:+0x80001091:1:11:2147483647:
+%*i:+0x80001091:0:11:
+%i:+020000010221:1:13:2147483647:
+%*i:+020000010221:0:13:
+%i:+0B10000000000000000001000010010001:1:35:2147483647:
+%*i:+0B10000000000000000001000010010001:0:35:
+%i:+0b10000000000000000001000010010001:1:35:2147483647:
+%*i:+0b10000000000000000001000010010001:0:35:
+%1i::0:-1:
+%*1i::0:-1:
+%1i:-2147484882:0:-1:
+%*1i:-2147484882:0:-1:
+%1i:-0X800004d2:0:-1:
+%*1i:-0X800004d2:0:-1:
+%1i:-0x800004D2:0:-1:
+%*1i:-0x800004D2:0:-1:
+%1i:-020000002322:0:-1:
+%*1i:-020000002322:0:-1:
+%1i:-0B10000000000000000000010011010010:0:-1:
+%*1i:-0B10000000000000000000010011010010:0:-1:
+%1i:-0b10000000000000000000010011010010:0:-1:
+%*1i:-0b10000000000000000000010011010010:0:-1:
+%1i:-2147483649:0:-1:
+%*1i:-2147483649:0:-1:
+%1i:-0X80000001:0:-1:
+%*1i:-0X80000001:0:-1:
+%1i:-0x80000001:0:-1:
+%*1i:-0x80000001:0:-1:
+%1i:-020000000001:0:-1:
+%*1i:-020000000001:0:-1:
+%1i:-0B10000000000000000000000000000001:0:-1:
+%*1i:-0B10000000000000000000000000000001:0:-1:
+%1i:-0b10000000000000000000000000000001:0:-1:
+%*1i:-0b10000000000000000000000000000001:0:-1:
+%1i:-2147483648:0:-1:
+%*1i:-2147483648:0:-1:
+%1i:-0X80000000:0:-1:
+%*1i:-0X80000000:0:-1:
+%1i:-0x80000000:0:-1:
+%*1i:-0x80000000:0:-1:
+%1i:-020000000000:0:-1:
+%*1i:-020000000000:0:-1:
+%1i:-0B10000000000000000000000000000000:0:-1:
+%*1i:-0B10000000000000000000000000000000:0:-1:
+%1i:-0b10000000000000000000000000000000:0:-1:
+%*1i:-0b10000000000000000000000000000000:0:-1:
+%1i:-123:0:-1:
+%*1i:-123:0:-1:
+%1i:-0X7b:0:-1:
+%*1i:-0X7b:0:-1:
+%1i:-0x7B:0:-1:
+%*1i:-0x7B:0:-1:
+%1i:-0173:0:-1:
+%*1i:-0173:0:-1:
+%1i:-0B1111011:0:-1:
+%*1i:-0B1111011:0:-1:
+%1i:-0b1111011:0:-1:
+%*1i:-0b1111011:0:-1:
+%1i:-1:0:-1:
+%*1i:-1:0:-1:
+%1i:-0X1:0:-1:
+%*1i:-0X1:0:-1:
+%1i:-0x1:0:-1:
+%*1i:-0x1:0:-1:
+%1i:-01:0:-1:
+%*1i:-01:0:-1:
+%1i:-0B1:0:-1:
+%*1i:-0B1:0:-1:
+%1i:-0b1:0:-1:
+%*1i:-0b1:0:-1:
+%1i:-0:0:-1:
+%*1i:-0:0:-1:
+%1i:-0X0:0:-1:
+%*1i:-0X0:0:-1:
+%1i:-0x0:0:-1:
+%*1i:-0x0:0:-1:
+%1i:-00:0:-1:
+%*1i:-00:0:-1:
+%1i:-0B0:0:-1:
+%*1i:-0B0:0:-1:
+%1i:-0b0:0:-1:
+%*1i:-0b0:0:-1:
+%1i:0:1:1:0:
+%*1i:0:0:1:
+%1i:0X0:1:1:0:
+%*1i:0X0:0:1:
+%1i:0x0:1:1:0:
+%*1i:0x0:0:1:
+%1i:00:1:1:0:
+%*1i:00:0:1:
+%1i:0B0:1:1:0:
+%*1i:0B0:0:1:
+%1i:0b0:1:1:0:
+%*1i:0b0:0:1:
+%1i:1:1:1:1:
+%*1i:1:0:1:
+%1i:0X1:1:1:0:
+%*1i:0X1:0:1:
+%1i:0x1:1:1:0:
+%*1i:0x1:0:1:
+%1i:01:1:1:0:
+%*1i:01:0:1:
+%1i:0B1:1:1:0:
+%*1i:0B1:0:1:
+%1i:0b1:1:1:0:
+%*1i:0b1:0:1:
+%1i:42:1:1:4:
+%*1i:42:0:1:
+%1i:0X2a:1:1:0:
+%*1i:0X2a:0:1:
+%1i:0x2A:1:1:0:
+%*1i:0x2A:0:1:
+%1i:052:1:1:0:
+%*1i:052:0:1:
+%1i:0B101010:1:1:0:
+%*1i:0B101010:0:1:
+%1i:0b101010:1:1:0:
+%*1i:0b101010:0:1:
+%1i:2147483647:1:1:2:
+%*1i:2147483647:0:1:
+%1i:0X7fffffff:1:1:0:
+%*1i:0X7fffffff:0:1:
+%1i:0x7FFFFFFF:1:1:0:
+%*1i:0x7FFFFFFF:0:1:
+%1i:017777777777:1:1:0:
+%*1i:017777777777:0:1:
+%1i:0B1111111111111111111111111111111:1:1:0:
+%*1i:0B1111111111111111111111111111111:0:1:
+%1i:0b1111111111111111111111111111111:1:1:0:
+%*1i:0b1111111111111111111111111111111:0:1:
+%1i:2147483648:1:1:2:
+%*1i:2147483648:0:1:
+%1i:0X80000000:1:1:0:
+%*1i:0X80000000:0:1:
+%1i:0x80000000:1:1:0:
+%*1i:0x80000000:0:1:
+%1i:020000000000:1:1:0:
+%*1i:020000000000:0:1:
+%1i:0B10000000000000000000000000000000:1:1:0:
+%*1i:0B10000000000000000000000000000000:0:1:
+%1i:0b10000000000000000000000000000000:1:1:0:
+%*1i:0b10000000000000000000000000000000:0:1:
+%1i:2147487889:1:1:2:
+%*1i:2147487889:0:1:
+%1i:0X80001091:1:1:0:
+%*1i:0X80001091:0:1:
+%1i:0x80001091:1:1:0:
+%*1i:0x80001091:0:1:
+%1i:020000010221:1:1:0:
+%*1i:020000010221:0:1:
+%1i:0B10000000000000000001000010010001:1:1:0:
+%*1i:0B10000000000000000001000010010001:0:1:
+%1i:0b10000000000000000001000010010001:1:1:0:
+%*1i:0b10000000000000000001000010010001:0:1:
+%1i:+0:0:-1:
+%*1i:+0:0:-1:
+%1i:+0X0:0:-1:
+%*1i:+0X0:0:-1:
+%1i:+0x0:0:-1:
+%*1i:+0x0:0:-1:
+%1i:+00:0:-1:
+%*1i:+00:0:-1:
+%1i:+0B0:0:-1:
+%*1i:+0B0:0:-1:
+%1i:+0b0:0:-1:
+%*1i:+0b0:0:-1:
+%1i:+1:0:-1:
+%*1i:+1:0:-1:
+%1i:+0X1:0:-1:
+%*1i:+0X1:0:-1:
+%1i:+0x1:0:-1:
+%*1i:+0x1:0:-1:
+%1i:+01:0:-1:
+%*1i:+01:0:-1:
+%1i:+0B1:0:-1:
+%*1i:+0B1:0:-1:
+%1i:+0b1:0:-1:
+%*1i:+0b1:0:-1:
+%1i:+42:0:-1:
+%*1i:+42:0:-1:
+%1i:+0X2a:0:-1:
+%*1i:+0X2a:0:-1:
+%1i:+0x2A:0:-1:
+%*1i:+0x2A:0:-1:
+%1i:+052:0:-1:
+%*1i:+052:0:-1:
+%1i:+0B101010:0:-1:
+%*1i:+0B101010:0:-1:
+%1i:+0b101010:0:-1:
+%*1i:+0b101010:0:-1:
+%1i:+2147483647:0:-1:
+%*1i:+2147483647:0:-1:
+%1i:+0X7fffffff:0:-1:
+%*1i:+0X7fffffff:0:-1:
+%1i:+0x7FFFFFFF:0:-1:
+%*1i:+0x7FFFFFFF:0:-1:
+%1i:+017777777777:0:-1:
+%*1i:+017777777777:0:-1:
+%1i:+0B1111111111111111111111111111111:0:-1:
+%*1i:+0B1111111111111111111111111111111:0:-1:
+%1i:+0b1111111111111111111111111111111:0:-1:
+%*1i:+0b1111111111111111111111111111111:0:-1:
+%1i:+2147483648:0:-1:
+%*1i:+2147483648:0:-1:
+%1i:+0X80000000:0:-1:
+%*1i:+0X80000000:0:-1:
+%1i:+0x80000000:0:-1:
+%*1i:+0x80000000:0:-1:
+%1i:+020000000000:0:-1:
+%*1i:+020000000000:0:-1:
+%1i:+0B10000000000000000000000000000000:0:-1:
+%*1i:+0B10000000000000000000000000000000:0:-1:
+%1i:+0b10000000000000000000000000000000:0:-1:
+%*1i:+0b10000000000000000000000000000000:0:-1:
+%1i:+2147487889:0:-1:
+%*1i:+2147487889:0:-1:
+%1i:+0X80001091:0:-1:
+%*1i:+0X80001091:0:-1:
+%1i:+0x80001091:0:-1:
+%*1i:+0x80001091:0:-1:
+%1i:+020000010221:0:-1:
+%*1i:+020000010221:0:-1:
+%1i:+0B10000000000000000001000010010001:0:-1:
+%*1i:+0B10000000000000000001000010010001:0:-1:
+%1i:+0b10000000000000000001000010010001:0:-1:
+%*1i:+0b10000000000000000001000010010001:0:-1:
+%2i::0:-1:
+%*2i::0:-1:
+%2i:-2147484882:1:2:-2:
+%*2i:-2147484882:0:2:
+%2i:-0X800004d2:1:2:0:
+%*2i:-0X800004d2:0:2:
+%2i:-0x800004D2:1:2:0:
+%*2i:-0x800004D2:0:2:
+%2i:-020000002322:1:2:0:
+%*2i:-020000002322:0:2:
+%2i:-0B10000000000000000000010011010010:1:2:0:
+%*2i:-0B10000000000000000000010011010010:0:2:
+%2i:-0b10000000000000000000010011010010:1:2:0:
+%*2i:-0b10000000000000000000010011010010:0:2:
+%2i:-2147483649:1:2:-2:
+%*2i:-2147483649:0:2:
+%2i:-0X80000001:1:2:0:
+%*2i:-0X80000001:0:2:
+%2i:-0x80000001:1:2:0:
+%*2i:-0x80000001:0:2:
+%2i:-020000000001:1:2:0:
+%*2i:-020000000001:0:2:
+%2i:-0B10000000000000000000000000000001:1:2:0:
+%*2i:-0B10000000000000000000000000000001:0:2:
+%2i:-0b10000000000000000000000000000001:1:2:0:
+%*2i:-0b10000000000000000000000000000001:0:2:
+%2i:-2147483648:1:2:-2:
+%*2i:-2147483648:0:2:
+%2i:-0X80000000:1:2:0:
+%*2i:-0X80000000:0:2:
+%2i:-0x80000000:1:2:0:
+%*2i:-0x80000000:0:2:
+%2i:-020000000000:1:2:0:
+%*2i:-020000000000:0:2:
+%2i:-0B10000000000000000000000000000000:1:2:0:
+%*2i:-0B10000000000000000000000000000000:0:2:
+%2i:-0b10000000000000000000000000000000:1:2:0:
+%*2i:-0b10000000000000000000000000000000:0:2:
+%2i:-123:1:2:-1:
+%*2i:-123:0:2:
+%2i:-0X7b:1:2:0:
+%*2i:-0X7b:0:2:
+%2i:-0x7B:1:2:0:
+%*2i:-0x7B:0:2:
+%2i:-0173:1:2:0:
+%*2i:-0173:0:2:
+%2i:-0B1111011:1:2:0:
+%*2i:-0B1111011:0:2:
+%2i:-0b1111011:1:2:0:
+%*2i:-0b1111011:0:2:
+%2i:-1:1:2:-1:
+%*2i:-1:0:2:
+%2i:-0X1:1:2:0:
+%*2i:-0X1:0:2:
+%2i:-0x1:1:2:0:
+%*2i:-0x1:0:2:
+%2i:-01:1:2:0:
+%*2i:-01:0:2:
+%2i:-0B1:1:2:0:
+%*2i:-0B1:0:2:
+%2i:-0b1:1:2:0:
+%*2i:-0b1:0:2:
+%2i:-0:1:2:0:
+%*2i:-0:0:2:
+%2i:-0X0:1:2:0:
+%*2i:-0X0:0:2:
+%2i:-0x0:1:2:0:
+%*2i:-0x0:0:2:
+%2i:-00:1:2:0:
+%*2i:-00:0:2:
+%2i:-0B0:1:2:0:
+%*2i:-0B0:0:2:
+%2i:-0b0:1:2:0:
+%*2i:-0b0:0:2:
+%2i:0:1:1:0:
+%*2i:0:0:1:
+%2i:0X0:0:-1:
+%*2i:0X0:0:-1:
+%2i:0x0:0:-1:
+%*2i:0x0:0:-1:
+%2i:00:1:2:0:
+%*2i:00:0:2:
+%2i:0B0:0:-1:
+%*2i:0B0:0:-1:
+%2i:0b0:0:-1:
+%*2i:0b0:0:-1:
+%2i:1:1:1:1:
+%*2i:1:0:1:
+%2i:0X1:0:-1:
+%*2i:0X1:0:-1:
+%2i:0x1:0:-1:
+%*2i:0x1:0:-1:
+%2i:01:1:2:1:
+%*2i:01:0:2:
+%2i:0B1:0:-1:
+%*2i:0B1:0:-1:
+%2i:0b1:0:-1:
+%*2i:0b1:0:-1:
+%2i:42:1:2:42:
+%*2i:42:0:2:
+%2i:0X2a:0:-1:
+%*2i:0X2a:0:-1:
+%2i:0x2A:0:-1:
+%*2i:0x2A:0:-1:
+%2i:052:1:2:5:
+%*2i:052:0:2:
+%2i:0B101010:0:-1:
+%*2i:0B101010:0:-1:
+%2i:0b101010:0:-1:
+%*2i:0b101010:0:-1:
+%2i:2147483647:1:2:21:
+%*2i:2147483647:0:2:
+%2i:0X7fffffff:0:-1:
+%*2i:0X7fffffff:0:-1:
+%2i:0x7FFFFFFF:0:-1:
+%*2i:0x7FFFFFFF:0:-1:
+%2i:017777777777:1:2:1:
+%*2i:017777777777:0:2:
+%2i:0B1111111111111111111111111111111:0:-1:
+%*2i:0B1111111111111111111111111111111:0:-1:
+%2i:0b1111111111111111111111111111111:0:-1:
+%*2i:0b1111111111111111111111111111111:0:-1:
+%2i:2147483648:1:2:21:
+%*2i:2147483648:0:2:
+%2i:0X80000000:0:-1:
+%*2i:0X80000000:0:-1:
+%2i:0x80000000:0:-1:
+%*2i:0x80000000:0:-1:
+%2i:020000000000:1:2:2:
+%*2i:020000000000:0:2:
+%2i:0B10000000000000000000000000000000:0:-1:
+%*2i:0B10000000000000000000000000000000:0:-1:
+%2i:0b10000000000000000000000000000000:0:-1:
+%*2i:0b10000000000000000000000000000000:0:-1:
+%2i:2147487889:1:2:21:
+%*2i:2147487889:0:2:
+%2i:0X80001091:0:-1:
+%*2i:0X80001091:0:-1:
+%2i:0x80001091:0:-1:
+%*2i:0x80001091:0:-1:
+%2i:020000010221:1:2:2:
+%*2i:020000010221:0:2:
+%2i:0B10000000000000000001000010010001:0:-1:
+%*2i:0B10000000000000000001000010010001:0:-1:
+%2i:0b10000000000000000001000010010001:0:-1:
+%*2i:0b10000000000000000001000010010001:0:-1:
+%2i:+0:1:2:0:
+%*2i:+0:0:2:
+%2i:+0X0:1:2:0:
+%*2i:+0X0:0:2:
+%2i:+0x0:1:2:0:
+%*2i:+0x0:0:2:
+%2i:+00:1:2:0:
+%*2i:+00:0:2:
+%2i:+0B0:1:2:0:
+%*2i:+0B0:0:2:
+%2i:+0b0:1:2:0:
+%*2i:+0b0:0:2:
+%2i:+1:1:2:1:
+%*2i:+1:0:2:
+%2i:+0X1:1:2:0:
+%*2i:+0X1:0:2:
+%2i:+0x1:1:2:0:
+%*2i:+0x1:0:2:
+%2i:+01:1:2:0:
+%*2i:+01:0:2:
+%2i:+0B1:1:2:0:
+%*2i:+0B1:0:2:
+%2i:+0b1:1:2:0:
+%*2i:+0b1:0:2:
+%2i:+42:1:2:4:
+%*2i:+42:0:2:
+%2i:+0X2a:1:2:0:
+%*2i:+0X2a:0:2:
+%2i:+0x2A:1:2:0:
+%*2i:+0x2A:0:2:
+%2i:+052:1:2:0:
+%*2i:+052:0:2:
+%2i:+0B101010:1:2:0:
+%*2i:+0B101010:0:2:
+%2i:+0b101010:1:2:0:
+%*2i:+0b101010:0:2:
+%2i:+2147483647:1:2:2:
+%*2i:+2147483647:0:2:
+%2i:+0X7fffffff:1:2:0:
+%*2i:+0X7fffffff:0:2:
+%2i:+0x7FFFFFFF:1:2:0:
+%*2i:+0x7FFFFFFF:0:2:
+%2i:+017777777777:1:2:0:
+%*2i:+017777777777:0:2:
+%2i:+0B1111111111111111111111111111111:1:2:0:
+%*2i:+0B1111111111111111111111111111111:0:2:
+%2i:+0b1111111111111111111111111111111:1:2:0:
+%*2i:+0b1111111111111111111111111111111:0:2:
+%2i:+2147483648:1:2:2:
+%*2i:+2147483648:0:2:
+%2i:+0X80000000:1:2:0:
+%*2i:+0X80000000:0:2:
+%2i:+0x80000000:1:2:0:
+%*2i:+0x80000000:0:2:
+%2i:+020000000000:1:2:0:
+%*2i:+020000000000:0:2:
+%2i:+0B10000000000000000000000000000000:1:2:0:
+%*2i:+0B10000000000000000000000000000000:0:2:
+%2i:+0b10000000000000000000000000000000:1:2:0:
+%*2i:+0b10000000000000000000000000000000:0:2:
+%2i:+2147487889:1:2:2:
+%*2i:+2147487889:0:2:
+%2i:+0X80001091:1:2:0:
+%*2i:+0X80001091:0:2:
+%2i:+0x80001091:1:2:0:
+%*2i:+0x80001091:0:2:
+%2i:+020000010221:1:2:0:
+%*2i:+020000010221:0:2:
+%2i:+0B10000000000000000001000010010001:1:2:0:
+%*2i:+0B10000000000000000001000010010001:0:2:
+%2i:+0b10000000000000000001000010010001:1:2:0:
+%*2i:+0b10000000000000000001000010010001:0:2:
+%8i::0:-1:
+%*8i::0:-1:
+%8i:-2147484882:1:8:-2147484:
+%*8i:-2147484882:0:8:
+%8i:-0X800004d2:1:8:-524288:
+%*8i:-0X800004d2:0:8:
+%8i:-0x800004D2:1:8:-524288:
+%*8i:-0x800004D2:0:8:
+%8i:-020000002322:1:8:-65536:
+%*8i:-020000002322:0:8:
+%8i:-0B10000000000000000000010011010010:1:8:-16:
+%*8i:-0B10000000000000000000010011010010:0:8:
+%8i:-0b10000000000000000000010011010010:1:8:-16:
+%*8i:-0b10000000000000000000010011010010:0:8:
+%8i:-2147483649:1:8:-2147483:
+%*8i:-2147483649:0:8:
+%8i:-0X80000001:1:8:-524288:
+%*8i:-0X80000001:0:8:
+%8i:-0x80000001:1:8:-524288:
+%*8i:-0x80000001:0:8:
+%8i:-020000000001:1:8:-65536:
+%*8i:-020000000001:0:8:
+%8i:-0B10000000000000000000000000000001:1:8:-16:
+%*8i:-0B10000000000000000000000000000001:0:8:
+%8i:-0b10000000000000000000000000000001:1:8:-16:
+%*8i:-0b10000000000000000000000000000001:0:8:
+%8i:-2147483648:1:8:-2147483:
+%*8i:-2147483648:0:8:
+%8i:-0X80000000:1:8:-524288:
+%*8i:-0X80000000:0:8:
+%8i:-0x80000000:1:8:-524288:
+%*8i:-0x80000000:0:8:
+%8i:-020000000000:1:8:-65536:
+%*8i:-020000000000:0:8:
+%8i:-0B10000000000000000000000000000000:1:8:-16:
+%*8i:-0B10000000000000000000000000000000:0:8:
+%8i:-0b10000000000000000000000000000000:1:8:-16:
+%*8i:-0b10000000000000000000000000000000:0:8:
+%8i:-123:1:4:-123:
+%*8i:-123:0:4:
+%8i:-0X7b:1:5:-123:
+%*8i:-0X7b:0:5:
+%8i:-0x7B:1:5:-123:
+%*8i:-0x7B:0:5:
+%8i:-0173:1:5:-123:
+%*8i:-0173:0:5:
+%8i:-0B1111011:1:8:-30:
+%*8i:-0B1111011:0:8:
+%8i:-0b1111011:1:8:-30:
+%*8i:-0b1111011:0:8:
+%8i:-1:1:2:-1:
+%*8i:-1:0:2:
+%8i:-0X1:1:4:-1:
+%*8i:-0X1:0:4:
+%8i:-0x1:1:4:-1:
+%*8i:-0x1:0:4:
+%8i:-01:1:3:-1:
+%*8i:-01:0:3:
+%8i:-0B1:1:4:-1:
+%*8i:-0B1:0:4:
+%8i:-0b1:1:4:-1:
+%*8i:-0b1:0:4:
+%8i:-0:1:2:0:
+%*8i:-0:0:2:
+%8i:-0X0:1:4:0:
+%*8i:-0X0:0:4:
+%8i:-0x0:1:4:0:
+%*8i:-0x0:0:4:
+%8i:-00:1:3:0:
+%*8i:-00:0:3:
+%8i:-0B0:1:4:0:
+%*8i:-0B0:0:4:
+%8i:-0b0:1:4:0:
+%*8i:-0b0:0:4:
+%8i:0:1:1:0:
+%*8i:0:0:1:
+%8i:0X0:1:3:0:
+%*8i:0X0:0:3:
+%8i:0x0:1:3:0:
+%*8i:0x0:0:3:
+%8i:00:1:2:0:
+%*8i:00:0:2:
+%8i:0B0:1:3:0:
+%*8i:0B0:0:3:
+%8i:0b0:1:3:0:
+%*8i:0b0:0:3:
+%8i:1:1:1:1:
+%*8i:1:0:1:
+%8i:0X1:1:3:1:
+%*8i:0X1:0:3:
+%8i:0x1:1:3:1:
+%*8i:0x1:0:3:
+%8i:01:1:2:1:
+%*8i:01:0:2:
+%8i:0B1:1:3:1:
+%*8i:0B1:0:3:
+%8i:0b1:1:3:1:
+%*8i:0b1:0:3:
+%8i:42:1:2:42:
+%*8i:42:0:2:
+%8i:0X2a:1:4:42:
+%*8i:0X2a:0:4:
+%8i:0x2A:1:4:42:
+%*8i:0x2A:0:4:
+%8i:052:1:3:42:
+%*8i:052:0:3:
+%8i:0B101010:1:8:42:
+%*8i:0B101010:0:8:
+%8i:0b101010:1:8:42:
+%*8i:0b101010:0:8:
+%8i:2147483647:1:8:21474836:
+%*8i:2147483647:0:8:
+%8i:0X7fffffff:1:8:8388607:
+%*8i:0X7fffffff:0:8:
+%8i:0x7FFFFFFF:1:8:8388607:
+%*8i:0x7FFFFFFF:0:8:
+%8i:017777777777:1:8:524287:
+%*8i:017777777777:0:8:
+%8i:0B1111111111111111111111111111111:1:8:63:
+%*8i:0B1111111111111111111111111111111:0:8:
+%8i:0b1111111111111111111111111111111:1:8:63:
+%*8i:0b1111111111111111111111111111111:0:8:
+%8i:2147483648:1:8:21474836:
+%*8i:2147483648:0:8:
+%8i:0X80000000:1:8:8388608:
+%*8i:0X80000000:0:8:
+%8i:0x80000000:1:8:8388608:
+%*8i:0x80000000:0:8:
+%8i:020000000000:1:8:524288:
+%*8i:020000000000:0:8:
+%8i:0B10000000000000000000000000000000:1:8:32:
+%*8i:0B10000000000000000000000000000000:0:8:
+%8i:0b10000000000000000000000000000000:1:8:32:
+%*8i:0b10000000000000000000000000000000:0:8:
+%8i:2147487889:1:8:21474878:
+%*8i:2147487889:0:8:
+%8i:0X80001091:1:8:8388624:
+%*8i:0X80001091:0:8:
+%8i:0x80001091:1:8:8388624:
+%*8i:0x80001091:0:8:
+%8i:020000010221:1:8:524289:
+%*8i:020000010221:0:8:
+%8i:0B10000000000000000001000010010001:1:8:32:
+%*8i:0B10000000000000000001000010010001:0:8:
+%8i:0b10000000000000000001000010010001:1:8:32:
+%*8i:0b10000000000000000001000010010001:0:8:
+%8i:+0:1:2:0:
+%*8i:+0:0:2:
+%8i:+0X0:1:4:0:
+%*8i:+0X0:0:4:
+%8i:+0x0:1:4:0:
+%*8i:+0x0:0:4:
+%8i:+00:1:3:0:
+%*8i:+00:0:3:
+%8i:+0B0:1:4:0:
+%*8i:+0B0:0:4:
+%8i:+0b0:1:4:0:
+%*8i:+0b0:0:4:
+%8i:+1:1:2:1:
+%*8i:+1:0:2:
+%8i:+0X1:1:4:1:
+%*8i:+0X1:0:4:
+%8i:+0x1:1:4:1:
+%*8i:+0x1:0:4:
+%8i:+01:1:3:1:
+%*8i:+01:0:3:
+%8i:+0B1:1:4:1:
+%*8i:+0B1:0:4:
+%8i:+0b1:1:4:1:
+%*8i:+0b1:0:4:
+%8i:+42:1:3:42:
+%*8i:+42:0:3:
+%8i:+0X2a:1:5:42:
+%*8i:+0X2a:0:5:
+%8i:+0x2A:1:5:42:
+%*8i:+0x2A:0:5:
+%8i:+052:1:4:42:
+%*8i:+052:0:4:
+%8i:+0B101010:1:8:21:
+%*8i:+0B101010:0:8:
+%8i:+0b101010:1:8:21:
+%*8i:+0b101010:0:8:
+%8i:+2147483647:1:8:2147483:
+%*8i:+2147483647:0:8:
+%8i:+0X7fffffff:1:8:524287:
+%*8i:+0X7fffffff:0:8:
+%8i:+0x7FFFFFFF:1:8:524287:
+%*8i:+0x7FFFFFFF:0:8:
+%8i:+017777777777:1:8:65535:
+%*8i:+017777777777:0:8:
+%8i:+0B1111111111111111111111111111111:1:8:31:
+%*8i:+0B1111111111111111111111111111111:0:8:
+%8i:+0b1111111111111111111111111111111:1:8:31:
+%*8i:+0b1111111111111111111111111111111:0:8:
+%8i:+2147483648:1:8:2147483:
+%*8i:+2147483648:0:8:
+%8i:+0X80000000:1:8:524288:
+%*8i:+0X80000000:0:8:
+%8i:+0x80000000:1:8:524288:
+%*8i:+0x80000000:0:8:
+%8i:+020000000000:1:8:65536:
+%*8i:+020000000000:0:8:
+%8i:+0B10000000000000000000000000000000:1:8:16:
+%*8i:+0B10000000000000000000000000000000:0:8:
+%8i:+0b10000000000000000000000000000000:1:8:16:
+%*8i:+0b10000000000000000000000000000000:0:8:
+%8i:+2147487889:1:8:2147487:
+%*8i:+2147487889:0:8:
+%8i:+0X80001091:1:8:524289:
+%*8i:+0X80001091:0:8:
+%8i:+0x80001091:1:8:524289:
+%*8i:+0x80001091:0:8:
+%8i:+020000010221:1:8:65536:
+%*8i:+020000010221:0:8:
+%8i:+0B10000000000000000001000010010001:1:8:16:
+%*8i:+0B10000000000000000001000010010001:0:8:
+%8i:+0b10000000000000000001000010010001:1:8:16:
+%*8i:+0b10000000000000000001000010010001:0:8:
+%15i::0:-1:
+%*15i::0:-1:
+%15i:-2147484882:1:11:-2147483648:
+%*15i:-2147484882:0:11:
+%15i:-0X800004d2:1:11:-2147483648:
+%*15i:-0X800004d2:0:11:
+%15i:-0x800004D2:1:11:-2147483648:
+%*15i:-0x800004D2:0:11:
+%15i:-020000002322:1:13:-2147483648:
+%*15i:-020000002322:0:13:
+%15i:-0B10000000000000000000010011010010:1:15:-2048:
+%*15i:-0B10000000000000000000010011010010:0:15:
+%15i:-0b10000000000000000000010011010010:1:15:-2048:
+%*15i:-0b10000000000000000000010011010010:0:15:
+%15i:-2147483649:1:11:-2147483648:
+%*15i:-2147483649:0:11:
+%15i:-0X80000001:1:11:-2147483648:
+%*15i:-0X80000001:0:11:
+%15i:-0x80000001:1:11:-2147483648:
+%*15i:-0x80000001:0:11:
+%15i:-020000000001:1:13:-2147483648:
+%*15i:-020000000001:0:13:
+%15i:-0B10000000000000000000000000000001:1:15:-2048:
+%*15i:-0B10000000000000000000000000000001:0:15:
+%15i:-0b10000000000000000000000000000001:1:15:-2048:
+%*15i:-0b10000000000000000000000000000001:0:15:
+%15i:-2147483648:1:11:-2147483648:
+%*15i:-2147483648:0:11:
+%15i:-0X80000000:1:11:-2147483648:
+%*15i:-0X80000000:0:11:
+%15i:-0x80000000:1:11:-2147483648:
+%*15i:-0x80000000:0:11:
+%15i:-020000000000:1:13:-2147483648:
+%*15i:-020000000000:0:13:
+%15i:-0B10000000000000000000000000000000:1:15:-2048:
+%*15i:-0B10000000000000000000000000000000:0:15:
+%15i:-0b10000000000000000000000000000000:1:15:-2048:
+%*15i:-0b10000000000000000000000000000000:0:15:
+%15i:-123:1:4:-123:
+%*15i:-123:0:4:
+%15i:-0X7b:1:5:-123:
+%*15i:-0X7b:0:5:
+%15i:-0x7B:1:5:-123:
+%*15i:-0x7B:0:5:
+%15i:-0173:1:5:-123:
+%*15i:-0173:0:5:
+%15i:-0B1111011:1:10:-123:
+%*15i:-0B1111011:0:10:
+%15i:-0b1111011:1:10:-123:
+%*15i:-0b1111011:0:10:
+%15i:-1:1:2:-1:
+%*15i:-1:0:2:
+%15i:-0X1:1:4:-1:
+%*15i:-0X1:0:4:
+%15i:-0x1:1:4:-1:
+%*15i:-0x1:0:4:
+%15i:-01:1:3:-1:
+%*15i:-01:0:3:
+%15i:-0B1:1:4:-1:
+%*15i:-0B1:0:4:
+%15i:-0b1:1:4:-1:
+%*15i:-0b1:0:4:
+%15i:-0:1:2:0:
+%*15i:-0:0:2:
+%15i:-0X0:1:4:0:
+%*15i:-0X0:0:4:
+%15i:-0x0:1:4:0:
+%*15i:-0x0:0:4:
+%15i:-00:1:3:0:
+%*15i:-00:0:3:
+%15i:-0B0:1:4:0:
+%*15i:-0B0:0:4:
+%15i:-0b0:1:4:0:
+%*15i:-0b0:0:4:
+%15i:0:1:1:0:
+%*15i:0:0:1:
+%15i:0X0:1:3:0:
+%*15i:0X0:0:3:
+%15i:0x0:1:3:0:
+%*15i:0x0:0:3:
+%15i:00:1:2:0:
+%*15i:00:0:2:
+%15i:0B0:1:3:0:
+%*15i:0B0:0:3:
+%15i:0b0:1:3:0:
+%*15i:0b0:0:3:
+%15i:1:1:1:1:
+%*15i:1:0:1:
+%15i:0X1:1:3:1:
+%*15i:0X1:0:3:
+%15i:0x1:1:3:1:
+%*15i:0x1:0:3:
+%15i:01:1:2:1:
+%*15i:01:0:2:
+%15i:0B1:1:3:1:
+%*15i:0B1:0:3:
+%15i:0b1:1:3:1:
+%*15i:0b1:0:3:
+%15i:42:1:2:42:
+%*15i:42:0:2:
+%15i:0X2a:1:4:42:
+%*15i:0X2a:0:4:
+%15i:0x2A:1:4:42:
+%*15i:0x2A:0:4:
+%15i:052:1:3:42:
+%*15i:052:0:3:
+%15i:0B101010:1:8:42:
+%*15i:0B101010:0:8:
+%15i:0b101010:1:8:42:
+%*15i:0b101010:0:8:
+%15i:2147483647:1:10:2147483647:
+%*15i:2147483647:0:10:
+%15i:0X7fffffff:1:10:2147483647:
+%*15i:0X7fffffff:0:10:
+%15i:0x7FFFFFFF:1:10:2147483647:
+%*15i:0x7FFFFFFF:0:10:
+%15i:017777777777:1:12:2147483647:
+%*15i:017777777777:0:12:
+%15i:0B1111111111111111111111111111111:1:15:8191:
+%*15i:0B1111111111111111111111111111111:0:15:
+%15i:0b1111111111111111111111111111111:1:15:8191:
+%*15i:0b1111111111111111111111111111111:0:15:
+%15i:2147483648:1:10:2147483647:
+%*15i:2147483648:0:10:
+%15i:0X80000000:1:10:2147483647:
+%*15i:0X80000000:0:10:
+%15i:0x80000000:1:10:2147483647:
+%*15i:0x80000000:0:10:
+%15i:020000000000:1:12:2147483647:
+%*15i:020000000000:0:12:
+%15i:0B10000000000000000000000000000000:1:15:4096:
+%*15i:0B10000000000000000000000000000000:0:15:
+%15i:0b10000000000000000000000000000000:1:15:4096:
+%*15i:0b10000000000000000000000000000000:0:15:
+%15i:2147487889:1:10:2147483647:
+%*15i:2147487889:0:10:
+%15i:0X80001091:1:10:2147483647:
+%*15i:0X80001091:0:10:
+%15i:0x80001091:1:10:2147483647:
+%*15i:0x80001091:0:10:
+%15i:020000010221:1:12:2147483647:
+%*15i:020000010221:0:12:
+%15i:0B10000000000000000001000010010001:1:15:4096:
+%*15i:0B10000000000000000001000010010001:0:15:
+%15i:0b10000000000000000001000010010001:1:15:4096:
+%*15i:0b10000000000000000001000010010001:0:15:
+%15i:+0:1:2:0:
+%*15i:+0:0:2:
+%15i:+0X0:1:4:0:
+%*15i:+0X0:0:4:
+%15i:+0x0:1:4:0:
+%*15i:+0x0:0:4:
+%15i:+00:1:3:0:
+%*15i:+00:0:3:
+%15i:+0B0:1:4:0:
+%*15i:+0B0:0:4:
+%15i:+0b0:1:4:0:
+%*15i:+0b0:0:4:
+%15i:+1:1:2:1:
+%*15i:+1:0:2:
+%15i:+0X1:1:4:1:
+%*15i:+0X1:0:4:
+%15i:+0x1:1:4:1:
+%*15i:+0x1:0:4:
+%15i:+01:1:3:1:
+%*15i:+01:0:3:
+%15i:+0B1:1:4:1:
+%*15i:+0B1:0:4:
+%15i:+0b1:1:4:1:
+%*15i:+0b1:0:4:
+%15i:+42:1:3:42:
+%*15i:+42:0:3:
+%15i:+0X2a:1:5:42:
+%*15i:+0X2a:0:5:
+%15i:+0x2A:1:5:42:
+%*15i:+0x2A:0:5:
+%15i:+052:1:4:42:
+%*15i:+052:0:4:
+%15i:+0B101010:1:9:42:
+%*15i:+0B101010:0:9:
+%15i:+0b101010:1:9:42:
+%*15i:+0b101010:0:9:
+%15i:+2147483647:1:11:2147483647:
+%*15i:+2147483647:0:11:
+%15i:+0X7fffffff:1:11:2147483647:
+%*15i:+0X7fffffff:0:11:
+%15i:+0x7FFFFFFF:1:11:2147483647:
+%*15i:+0x7FFFFFFF:0:11:
+%15i:+017777777777:1:13:2147483647:
+%*15i:+017777777777:0:13:
+%15i:+0B1111111111111111111111111111111:1:15:4095:
+%*15i:+0B1111111111111111111111111111111:0:15:
+%15i:+0b1111111111111111111111111111111:1:15:4095:
+%*15i:+0b1111111111111111111111111111111:0:15:
+%15i:+2147483648:1:11:2147483647:
+%*15i:+2147483648:0:11:
+%15i:+0X80000000:1:11:2147483647:
+%*15i:+0X80000000:0:11:
+%15i:+0x80000000:1:11:2147483647:
+%*15i:+0x80000000:0:11:
+%15i:+020000000000:1:13:2147483647:
+%*15i:+020000000000:0:13:
+%15i:+0B10000000000000000000000000000000:1:15:2048:
+%*15i:+0B10000000000000000000000000000000:0:15:
+%15i:+0b10000000000000000000000000000000:1:15:2048:
+%*15i:+0b10000000000000000000000000000000:0:15:
+%15i:+2147487889:1:11:2147483647:
+%*15i:+2147487889:0:11:
+%15i:+0X80001091:1:11:2147483647:
+%*15i:+0X80001091:0:11:
+%15i:+0x80001091:1:11:2147483647:
+%*15i:+0x80001091:0:11:
+%15i:+020000010221:1:13:2147483647:
+%*15i:+020000010221:0:13:
+%15i:+0B10000000000000000001000010010001:1:15:2048:
+%*15i:+0B10000000000000000001000010010001:0:15:
+%15i:+0b10000000000000000001000010010001:1:15:2048:
+%*15i:+0b10000000000000000001000010010001:0:15:
+%2i: :0:-1:
+%*2i: :0:-1:
+%2i: -2147484882:1:3:-2:
+%*2i: -2147484882:0:3:
+%2i: -0X800004d2:1:3:0:
+%*2i: -0X800004d2:0:3:
+%2i: -0x800004D2:1:3:0:
+%*2i: -0x800004D2:0:3:
+%2i: -020000002322:1:3:0:
+%*2i: -020000002322:0:3:
+%2i: -0B10000000000000000000010011010010:1:3:0:
+%*2i: -0B10000000000000000000010011010010:0:3:
+%2i: -0b10000000000000000000010011010010:1:3:0:
+%*2i: -0b10000000000000000000010011010010:0:3:
+%2i: -2147483649:1:3:-2:
+%*2i: -2147483649:0:3:
+%2i: -0X80000001:1:3:0:
+%*2i: -0X80000001:0:3:
+%2i: -0x80000001:1:3:0:
+%*2i: -0x80000001:0:3:
+%2i: -020000000001:1:3:0:
+%*2i: -020000000001:0:3:
+%2i: -0B10000000000000000000000000000001:1:3:0:
+%*2i: -0B10000000000000000000000000000001:0:3:
+%2i: -0b10000000000000000000000000000001:1:3:0:
+%*2i: -0b10000000000000000000000000000001:0:3:
+%2i: -2147483648:1:3:-2:
+%*2i: -2147483648:0:3:
+%2i: -0X80000000:1:3:0:
+%*2i: -0X80000000:0:3:
+%2i: -0x80000000:1:3:0:
+%*2i: -0x80000000:0:3:
+%2i: -020000000000:1:3:0:
+%*2i: -020000000000:0:3:
+%2i: -0B10000000000000000000000000000000:1:3:0:
+%*2i: -0B10000000000000000000000000000000:0:3:
+%2i: -0b10000000000000000000000000000000:1:3:0:
+%*2i: -0b10000000000000000000000000000000:0:3:
+%2i: -123:1:3:-1:
+%*2i: -123:0:3:
+%2i: -0X7b:1:3:0:
+%*2i: -0X7b:0:3:
+%2i: -0x7B:1:3:0:
+%*2i: -0x7B:0:3:
+%2i: -0173:1:3:0:
+%*2i: -0173:0:3:
+%2i: -0B1111011:1:3:0:
+%*2i: -0B1111011:0:3:
+%2i: -0b1111011:1:3:0:
+%*2i: -0b1111011:0:3:
+%2i: -1:1:3:-1:
+%*2i: -1:0:3:
+%2i: -0X1:1:3:0:
+%*2i: -0X1:0:3:
+%2i: -0x1:1:3:0:
+%*2i: -0x1:0:3:
+%2i: -01:1:3:0:
+%*2i: -01:0:3:
+%2i: -0B1:1:3:0:
+%*2i: -0B1:0:3:
+%2i: -0b1:1:3:0:
+%*2i: -0b1:0:3:
+%2i: -0:1:3:0:
+%*2i: -0:0:3:
+%2i: -0X0:1:3:0:
+%*2i: -0X0:0:3:
+%2i: -0x0:1:3:0:
+%*2i: -0x0:0:3:
+%2i: -00:1:3:0:
+%*2i: -00:0:3:
+%2i: -0B0:1:3:0:
+%*2i: -0B0:0:3:
+%2i: -0b0:1:3:0:
+%*2i: -0b0:0:3:
+%2i: 0:1:2:0:
+%*2i: 0:0:2:
+%2i: 0X0:0:-1:
+%*2i: 0X0:0:-1:
+%2i: 0x0:0:-1:
+%*2i: 0x0:0:-1:
+%2i: 00:1:3:0:
+%*2i: 00:0:3:
+%2i: 0B0:0:-1:
+%*2i: 0B0:0:-1:
+%2i: 0b0:0:-1:
+%*2i: 0b0:0:-1:
+%2i: 1:1:2:1:
+%*2i: 1:0:2:
+%2i: 0X1:0:-1:
+%*2i: 0X1:0:-1:
+%2i: 0x1:0:-1:
+%*2i: 0x1:0:-1:
+%2i: 01:1:3:1:
+%*2i: 01:0:3:
+%2i: 0B1:0:-1:
+%*2i: 0B1:0:-1:
+%2i: 0b1:0:-1:
+%*2i: 0b1:0:-1:
+%2i: 42:1:3:42:
+%*2i: 42:0:3:
+%2i: 0X2a:0:-1:
+%*2i: 0X2a:0:-1:
+%2i: 0x2A:0:-1:
+%*2i: 0x2A:0:-1:
+%2i: 052:1:3:5:
+%*2i: 052:0:3:
+%2i: 0B101010:0:-1:
+%*2i: 0B101010:0:-1:
+%2i: 0b101010:0:-1:
+%*2i: 0b101010:0:-1:
+%2i: 2147483647:1:3:21:
+%*2i: 2147483647:0:3:
+%2i: 0X7fffffff:0:-1:
+%*2i: 0X7fffffff:0:-1:
+%2i: 0x7FFFFFFF:0:-1:
+%*2i: 0x7FFFFFFF:0:-1:
+%2i: 017777777777:1:3:1:
+%*2i: 017777777777:0:3:
+%2i: 0B1111111111111111111111111111111:0:-1:
+%*2i: 0B1111111111111111111111111111111:0:-1:
+%2i: 0b1111111111111111111111111111111:0:-1:
+%*2i: 0b1111111111111111111111111111111:0:-1:
+%2i: 2147483648:1:3:21:
+%*2i: 2147483648:0:3:
+%2i: 0X80000000:0:-1:
+%*2i: 0X80000000:0:-1:
+%2i: 0x80000000:0:-1:
+%*2i: 0x80000000:0:-1:
+%2i: 020000000000:1:3:2:
+%*2i: 020000000000:0:3:
+%2i: 0B10000000000000000000000000000000:0:-1:
+%*2i: 0B10000000000000000000000000000000:0:-1:
+%2i: 0b10000000000000000000000000000000:0:-1:
+%*2i: 0b10000000000000000000000000000000:0:-1:
+%2i: 2147487889:1:3:21:
+%*2i: 2147487889:0:3:
+%2i: 0X80001091:0:-1:
+%*2i: 0X80001091:0:-1:
+%2i: 0x80001091:0:-1:
+%*2i: 0x80001091:0:-1:
+%2i: 020000010221:1:3:2:
+%*2i: 020000010221:0:3:
+%2i: 0B10000000000000000001000010010001:0:-1:
+%*2i: 0B10000000000000000001000010010001:0:-1:
+%2i: 0b10000000000000000001000010010001:0:-1:
+%*2i: 0b10000000000000000001000010010001:0:-1:
+%2i: +0:1:3:0:
+%*2i: +0:0:3:
+%2i: +0X0:1:3:0:
+%*2i: +0X0:0:3:
+%2i: +0x0:1:3:0:
+%*2i: +0x0:0:3:
+%2i: +00:1:3:0:
+%*2i: +00:0:3:
+%2i: +0B0:1:3:0:
+%*2i: +0B0:0:3:
+%2i: +0b0:1:3:0:
+%*2i: +0b0:0:3:
+%2i: +1:1:3:1:
+%*2i: +1:0:3:
+%2i: +0X1:1:3:0:
+%*2i: +0X1:0:3:
+%2i: +0x1:1:3:0:
+%*2i: +0x1:0:3:
+%2i: +01:1:3:0:
+%*2i: +01:0:3:
+%2i: +0B1:1:3:0:
+%*2i: +0B1:0:3:
+%2i: +0b1:1:3:0:
+%*2i: +0b1:0:3:
+%2i: +42:1:3:4:
+%*2i: +42:0:3:
+%2i: +0X2a:1:3:0:
+%*2i: +0X2a:0:3:
+%2i: +0x2A:1:3:0:
+%*2i: +0x2A:0:3:
+%2i: +052:1:3:0:
+%*2i: +052:0:3:
+%2i: +0B101010:1:3:0:
+%*2i: +0B101010:0:3:
+%2i: +0b101010:1:3:0:
+%*2i: +0b101010:0:3:
+%2i: +2147483647:1:3:2:
+%*2i: +2147483647:0:3:
+%2i: +0X7fffffff:1:3:0:
+%*2i: +0X7fffffff:0:3:
+%2i: +0x7FFFFFFF:1:3:0:
+%*2i: +0x7FFFFFFF:0:3:
+%2i: +017777777777:1:3:0:
+%*2i: +017777777777:0:3:
+%2i: +0B1111111111111111111111111111111:1:3:0:
+%*2i: +0B1111111111111111111111111111111:0:3:
+%2i: +0b1111111111111111111111111111111:1:3:0:
+%*2i: +0b1111111111111111111111111111111:0:3:
+%2i: +2147483648:1:3:2:
+%*2i: +2147483648:0:3:
+%2i: +0X80000000:1:3:0:
+%*2i: +0X80000000:0:3:
+%2i: +0x80000000:1:3:0:
+%*2i: +0x80000000:0:3:
+%2i: +020000000000:1:3:0:
+%*2i: +020000000000:0:3:
+%2i: +0B10000000000000000000000000000000:1:3:0:
+%*2i: +0B10000000000000000000000000000000:0:3:
+%2i: +0b10000000000000000000000000000000:1:3:0:
+%*2i: +0b10000000000000000000000000000000:0:3:
+%2i: +2147487889:1:3:2:
+%*2i: +2147487889:0:3:
+%2i: +0X80001091:1:3:0:
+%*2i: +0X80001091:0:3:
+%2i: +0x80001091:1:3:0:
+%*2i: +0x80001091:0:3:
+%2i: +020000010221:1:3:0:
+%*2i: +020000010221:0:3:
+%2i: +0B10000000000000000001000010010001:1:3:0:
+%*2i: +0B10000000000000000001000010010001:0:3:
+%2i: +0b10000000000000000001000010010001:1:3:0:
+%*2i: +0b10000000000000000001000010010001:0:3:
+%15i: :0:-1:
+%*15i: :0:-1:
+%15i: -2147484882:1:12:-2147483648:
+%*15i: -2147484882:0:12:
+%15i: -0X800004d2:1:12:-2147483648:
+%*15i: -0X800004d2:0:12:
+%15i: -0x800004D2:1:12:-2147483648:
+%*15i: -0x800004D2:0:12:
+%15i: -020000002322:1:14:-2147483648:
+%*15i: -020000002322:0:14:
+%15i: -0B10000000000000000000010011010010:1:16:-2048:
+%*15i: -0B10000000000000000000010011010010:0:16:
+%15i: -0b10000000000000000000010011010010:1:16:-2048:
+%*15i: -0b10000000000000000000010011010010:0:16:
+%15i: -2147483649:1:12:-2147483648:
+%*15i: -2147483649:0:12:
+%15i: -0X80000001:1:12:-2147483648:
+%*15i: -0X80000001:0:12:
+%15i: -0x80000001:1:12:-2147483648:
+%*15i: -0x80000001:0:12:
+%15i: -020000000001:1:14:-2147483648:
+%*15i: -020000000001:0:14:
+%15i: -0B10000000000000000000000000000001:1:16:-2048:
+%*15i: -0B10000000000000000000000000000001:0:16:
+%15i: -0b10000000000000000000000000000001:1:16:-2048:
+%*15i: -0b10000000000000000000000000000001:0:16:
+%15i: -2147483648:1:12:-2147483648:
+%*15i: -2147483648:0:12:
+%15i: -0X80000000:1:12:-2147483648:
+%*15i: -0X80000000:0:12:
+%15i: -0x80000000:1:12:-2147483648:
+%*15i: -0x80000000:0:12:
+%15i: -020000000000:1:14:-2147483648:
+%*15i: -020000000000:0:14:
+%15i: -0B10000000000000000000000000000000:1:16:-2048:
+%*15i: -0B10000000000000000000000000000000:0:16:
+%15i: -0b10000000000000000000000000000000:1:16:-2048:
+%*15i: -0b10000000000000000000000000000000:0:16:
+%15i: -123:1:5:-123:
+%*15i: -123:0:5:
+%15i: -0X7b:1:6:-123:
+%*15i: -0X7b:0:6:
+%15i: -0x7B:1:6:-123:
+%*15i: -0x7B:0:6:
+%15i: -0173:1:6:-123:
+%*15i: -0173:0:6:
+%15i: -0B1111011:1:11:-123:
+%*15i: -0B1111011:0:11:
+%15i: -0b1111011:1:11:-123:
+%*15i: -0b1111011:0:11:
+%15i: -1:1:3:-1:
+%*15i: -1:0:3:
+%15i: -0X1:1:5:-1:
+%*15i: -0X1:0:5:
+%15i: -0x1:1:5:-1:
+%*15i: -0x1:0:5:
+%15i: -01:1:4:-1:
+%*15i: -01:0:4:
+%15i: -0B1:1:5:-1:
+%*15i: -0B1:0:5:
+%15i: -0b1:1:5:-1:
+%*15i: -0b1:0:5:
+%15i: -0:1:3:0:
+%*15i: -0:0:3:
+%15i: -0X0:1:5:0:
+%*15i: -0X0:0:5:
+%15i: -0x0:1:5:0:
+%*15i: -0x0:0:5:
+%15i: -00:1:4:0:
+%*15i: -00:0:4:
+%15i: -0B0:1:5:0:
+%*15i: -0B0:0:5:
+%15i: -0b0:1:5:0:
+%*15i: -0b0:0:5:
+%15i: 0:1:2:0:
+%*15i: 0:0:2:
+%15i: 0X0:1:4:0:
+%*15i: 0X0:0:4:
+%15i: 0x0:1:4:0:
+%*15i: 0x0:0:4:
+%15i: 00:1:3:0:
+%*15i: 00:0:3:
+%15i: 0B0:1:4:0:
+%*15i: 0B0:0:4:
+%15i: 0b0:1:4:0:
+%*15i: 0b0:0:4:
+%15i: 1:1:2:1:
+%*15i: 1:0:2:
+%15i: 0X1:1:4:1:
+%*15i: 0X1:0:4:
+%15i: 0x1:1:4:1:
+%*15i: 0x1:0:4:
+%15i: 01:1:3:1:
+%*15i: 01:0:3:
+%15i: 0B1:1:4:1:
+%*15i: 0B1:0:4:
+%15i: 0b1:1:4:1:
+%*15i: 0b1:0:4:
+%15i: 42:1:3:42:
+%*15i: 42:0:3:
+%15i: 0X2a:1:5:42:
+%*15i: 0X2a:0:5:
+%15i: 0x2A:1:5:42:
+%*15i: 0x2A:0:5:
+%15i: 052:1:4:42:
+%*15i: 052:0:4:
+%15i: 0B101010:1:9:42:
+%*15i: 0B101010:0:9:
+%15i: 0b101010:1:9:42:
+%*15i: 0b101010:0:9:
+%15i: 2147483647:1:11:2147483647:
+%*15i: 2147483647:0:11:
+%15i: 0X7fffffff:1:11:2147483647:
+%*15i: 0X7fffffff:0:11:
+%15i: 0x7FFFFFFF:1:11:2147483647:
+%*15i: 0x7FFFFFFF:0:11:
+%15i: 017777777777:1:13:2147483647:
+%*15i: 017777777777:0:13:
+%15i: 0B1111111111111111111111111111111:1:16:8191:
+%*15i: 0B1111111111111111111111111111111:0:16:
+%15i: 0b1111111111111111111111111111111:1:16:8191:
+%*15i: 0b1111111111111111111111111111111:0:16:
+%15i: 2147483648:1:11:2147483647:
+%*15i: 2147483648:0:11:
+%15i: 0X80000000:1:11:2147483647:
+%*15i: 0X80000000:0:11:
+%15i: 0x80000000:1:11:2147483647:
+%*15i: 0x80000000:0:11:
+%15i: 020000000000:1:13:2147483647:
+%*15i: 020000000000:0:13:
+%15i: 0B10000000000000000000000000000000:1:16:4096:
+%*15i: 0B10000000000000000000000000000000:0:16:
+%15i: 0b10000000000000000000000000000000:1:16:4096:
+%*15i: 0b10000000000000000000000000000000:0:16:
+%15i: 2147487889:1:11:2147483647:
+%*15i: 2147487889:0:11:
+%15i: 0X80001091:1:11:2147483647:
+%*15i: 0X80001091:0:11:
+%15i: 0x80001091:1:11:2147483647:
+%*15i: 0x80001091:0:11:
+%15i: 020000010221:1:13:2147483647:
+%*15i: 020000010221:0:13:
+%15i: 0B10000000000000000001000010010001:1:16:4096:
+%*15i: 0B10000000000000000001000010010001:0:16:
+%15i: 0b10000000000000000001000010010001:1:16:4096:
+%*15i: 0b10000000000000000001000010010001:0:16:
+%15i: +0:1:3:0:
+%*15i: +0:0:3:
+%15i: +0X0:1:5:0:
+%*15i: +0X0:0:5:
+%15i: +0x0:1:5:0:
+%*15i: +0x0:0:5:
+%15i: +00:1:4:0:
+%*15i: +00:0:4:
+%15i: +0B0:1:5:0:
+%*15i: +0B0:0:5:
+%15i: +0b0:1:5:0:
+%*15i: +0b0:0:5:
+%15i: +1:1:3:1:
+%*15i: +1:0:3:
+%15i: +0X1:1:5:1:
+%*15i: +0X1:0:5:
+%15i: +0x1:1:5:1:
+%*15i: +0x1:0:5:
+%15i: +01:1:4:1:
+%*15i: +01:0:4:
+%15i: +0B1:1:5:1:
+%*15i: +0B1:0:5:
+%15i: +0b1:1:5:1:
+%*15i: +0b1:0:5:
+%15i: +42:1:4:42:
+%*15i: +42:0:4:
+%15i: +0X2a:1:6:42:
+%*15i: +0X2a:0:6:
+%15i: +0x2A:1:6:42:
+%*15i: +0x2A:0:6:
+%15i: +052:1:5:42:
+%*15i: +052:0:5:
+%15i: +0B101010:1:10:42:
+%*15i: +0B101010:0:10:
+%15i: +0b101010:1:10:42:
+%*15i: +0b101010:0:10:
+%15i: +2147483647:1:12:2147483647:
+%*15i: +2147483647:0:12:
+%15i: +0X7fffffff:1:12:2147483647:
+%*15i: +0X7fffffff:0:12:
+%15i: +0x7FFFFFFF:1:12:2147483647:
+%*15i: +0x7FFFFFFF:0:12:
+%15i: +017777777777:1:14:2147483647:
+%*15i: +017777777777:0:14:
+%15i: +0B1111111111111111111111111111111:1:16:4095:
+%*15i: +0B1111111111111111111111111111111:0:16:
+%15i: +0b1111111111111111111111111111111:1:16:4095:
+%*15i: +0b1111111111111111111111111111111:0:16:
+%15i: +2147483648:1:12:2147483647:
+%*15i: +2147483648:0:12:
+%15i: +0X80000000:1:12:2147483647:
+%*15i: +0X80000000:0:12:
+%15i: +0x80000000:1:12:2147483647:
+%*15i: +0x80000000:0:12:
+%15i: +020000000000:1:14:2147483647:
+%*15i: +020000000000:0:14:
+%15i: +0B10000000000000000000000000000000:1:16:2048:
+%*15i: +0B10000000000000000000000000000000:0:16:
+%15i: +0b10000000000000000000000000000000:1:16:2048:
+%*15i: +0b10000000000000000000000000000000:0:16:
+%15i: +2147487889:1:12:2147483647:
+%*15i: +2147487889:0:12:
+%15i: +0X80001091:1:12:2147483647:
+%*15i: +0X80001091:0:12:
+%15i: +0x80001091:1:12:2147483647:
+%*15i: +0x80001091:0:12:
+%15i: +020000010221:1:14:2147483647:
+%*15i: +020000010221:0:14:
+%15i: +0B10000000000000000001000010010001:1:16:2048:
+%*15i: +0B10000000000000000001000010010001:0:16:
+%15i: +0b10000000000000000001000010010001:1:16:2048:
+%*15i: +0b10000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-d.input b/sysdeps/wordsize-32/tst-scanf-format-long-d.input
new file mode 100644
index 0000000..8abbcdd
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-long-d.input
@@ -0,0 +1,266 @@
+%ld::0:-1:
+%*ld::0:-1:
+%ld:-2147484882:1:11:-2147483648:
+%*ld:-2147484882:0:11:
+%ld:-2147483649:1:11:-2147483648:
+%*ld:-2147483649:0:11:
+%ld:-2147483648:1:11:-2147483648:
+%*ld:-2147483648:0:11:
+%ld:-123:1:4:-123:
+%*ld:-123:0:4:
+%ld:-1:1:2:-1:
+%*ld:-1:0:2:
+%ld:-0:1:2:0:
+%*ld:-0:0:2:
+%ld:0:1:1:0:
+%*ld:0:0:1:
+%ld:1:1:1:1:
+%*ld:1:0:1:
+%ld:42:1:2:42:
+%*ld:42:0:2:
+%ld:2147483647:1:10:2147483647:
+%*ld:2147483647:0:10:
+%ld:2147483648:1:10:2147483647:
+%*ld:2147483648:0:10:
+%ld:2147487889:1:10:2147483647:
+%*ld:2147487889:0:10:
+%ld:+0:1:2:0:
+%*ld:+0:0:2:
+%ld:+1:1:2:1:
+%*ld:+1:0:2:
+%ld:+42:1:3:42:
+%*ld:+42:0:3:
+%ld:+2147483647:1:11:2147483647:
+%*ld:+2147483647:0:11:
+%ld:+2147483648:1:11:2147483647:
+%*ld:+2147483648:0:11:
+%ld:+2147487889:1:11:2147483647:
+%*ld:+2147487889:0:11:
+%1ld::0:-1:
+%*1ld::0:-1:
+%1ld:-2147484882:0:-1:
+%*1ld:-2147484882:0:-1:
+%1ld:-2147483649:0:-1:
+%*1ld:-2147483649:0:-1:
+%1ld:-2147483648:0:-1:
+%*1ld:-2147483648:0:-1:
+%1ld:-123:0:-1:
+%*1ld:-123:0:-1:
+%1ld:-1:0:-1:
+%*1ld:-1:0:-1:
+%1ld:-0:0:-1:
+%*1ld:-0:0:-1:
+%1ld:0:1:1:0:
+%*1ld:0:0:1:
+%1ld:1:1:1:1:
+%*1ld:1:0:1:
+%1ld:42:1:1:4:
+%*1ld:42:0:1:
+%1ld:2147483647:1:1:2:
+%*1ld:2147483647:0:1:
+%1ld:2147483648:1:1:2:
+%*1ld:2147483648:0:1:
+%1ld:2147487889:1:1:2:
+%*1ld:2147487889:0:1:
+%1ld:+0:0:-1:
+%*1ld:+0:0:-1:
+%1ld:+1:0:-1:
+%*1ld:+1:0:-1:
+%1ld:+42:0:-1:
+%*1ld:+42:0:-1:
+%1ld:+2147483647:0:-1:
+%*1ld:+2147483647:0:-1:
+%1ld:+2147483648:0:-1:
+%*1ld:+2147483648:0:-1:
+%1ld:+2147487889:0:-1:
+%*1ld:+2147487889:0:-1:
+%2ld::0:-1:
+%*2ld::0:-1:
+%2ld:-2147484882:1:2:-2:
+%*2ld:-2147484882:0:2:
+%2ld:-2147483649:1:2:-2:
+%*2ld:-2147483649:0:2:
+%2ld:-2147483648:1:2:-2:
+%*2ld:-2147483648:0:2:
+%2ld:-123:1:2:-1:
+%*2ld:-123:0:2:
+%2ld:-1:1:2:-1:
+%*2ld:-1:0:2:
+%2ld:-0:1:2:0:
+%*2ld:-0:0:2:
+%2ld:0:1:1:0:
+%*2ld:0:0:1:
+%2ld:1:1:1:1:
+%*2ld:1:0:1:
+%2ld:42:1:2:42:
+%*2ld:42:0:2:
+%2ld:2147483647:1:2:21:
+%*2ld:2147483647:0:2:
+%2ld:2147483648:1:2:21:
+%*2ld:2147483648:0:2:
+%2ld:2147487889:1:2:21:
+%*2ld:2147487889:0:2:
+%2ld:+0:1:2:0:
+%*2ld:+0:0:2:
+%2ld:+1:1:2:1:
+%*2ld:+1:0:2:
+%2ld:+42:1:2:4:
+%*2ld:+42:0:2:
+%2ld:+2147483647:1:2:2:
+%*2ld:+2147483647:0:2:
+%2ld:+2147483648:1:2:2:
+%*2ld:+2147483648:0:2:
+%2ld:+2147487889:1:2:2:
+%*2ld:+2147487889:0:2:
+%8ld::0:-1:
+%*8ld::0:-1:
+%8ld:-2147484882:1:8:-2147484:
+%*8ld:-2147484882:0:8:
+%8ld:-2147483649:1:8:-2147483:
+%*8ld:-2147483649:0:8:
+%8ld:-2147483648:1:8:-2147483:
+%*8ld:-2147483648:0:8:
+%8ld:-123:1:4:-123:
+%*8ld:-123:0:4:
+%8ld:-1:1:2:-1:
+%*8ld:-1:0:2:
+%8ld:-0:1:2:0:
+%*8ld:-0:0:2:
+%8ld:0:1:1:0:
+%*8ld:0:0:1:
+%8ld:1:1:1:1:
+%*8ld:1:0:1:
+%8ld:42:1:2:42:
+%*8ld:42:0:2:
+%8ld:2147483647:1:8:21474836:
+%*8ld:2147483647:0:8:
+%8ld:2147483648:1:8:21474836:
+%*8ld:2147483648:0:8:
+%8ld:2147487889:1:8:21474878:
+%*8ld:2147487889:0:8:
+%8ld:+0:1:2:0:
+%*8ld:+0:0:2:
+%8ld:+1:1:2:1:
+%*8ld:+1:0:2:
+%8ld:+42:1:3:42:
+%*8ld:+42:0:3:
+%8ld:+2147483647:1:8:2147483:
+%*8ld:+2147483647:0:8:
+%8ld:+2147483648:1:8:2147483:
+%*8ld:+2147483648:0:8:
+%8ld:+2147487889:1:8:2147487:
+%*8ld:+2147487889:0:8:
+%15ld::0:-1:
+%*15ld::0:-1:
+%15ld:-2147484882:1:11:-2147483648:
+%*15ld:-2147484882:0:11:
+%15ld:-2147483649:1:11:-2147483648:
+%*15ld:-2147483649:0:11:
+%15ld:-2147483648:1:11:-2147483648:
+%*15ld:-2147483648:0:11:
+%15ld:-123:1:4:-123:
+%*15ld:-123:0:4:
+%15ld:-1:1:2:-1:
+%*15ld:-1:0:2:
+%15ld:-0:1:2:0:
+%*15ld:-0:0:2:
+%15ld:0:1:1:0:
+%*15ld:0:0:1:
+%15ld:1:1:1:1:
+%*15ld:1:0:1:
+%15ld:42:1:2:42:
+%*15ld:42:0:2:
+%15ld:2147483647:1:10:2147483647:
+%*15ld:2147483647:0:10:
+%15ld:2147483648:1:10:2147483647:
+%*15ld:2147483648:0:10:
+%15ld:2147487889:1:10:2147483647:
+%*15ld:2147487889:0:10:
+%15ld:+0:1:2:0:
+%*15ld:+0:0:2:
+%15ld:+1:1:2:1:
+%*15ld:+1:0:2:
+%15ld:+42:1:3:42:
+%*15ld:+42:0:3:
+%15ld:+2147483647:1:11:2147483647:
+%*15ld:+2147483647:0:11:
+%15ld:+2147483648:1:11:2147483647:
+%*15ld:+2147483648:0:11:
+%15ld:+2147487889:1:11:2147483647:
+%*15ld:+2147487889:0:11:
+%2ld: :0:-1:
+%*2ld: :0:-1:
+%2ld: -2147484882:1:3:-2:
+%*2ld: -2147484882:0:3:
+%2ld: -2147483649:1:3:-2:
+%*2ld: -2147483649:0:3:
+%2ld: -2147483648:1:3:-2:
+%*2ld: -2147483648:0:3:
+%2ld: -123:1:3:-1:
+%*2ld: -123:0:3:
+%2ld: -1:1:3:-1:
+%*2ld: -1:0:3:
+%2ld: -0:1:3:0:
+%*2ld: -0:0:3:
+%2ld: 0:1:2:0:
+%*2ld: 0:0:2:
+%2ld: 1:1:2:1:
+%*2ld: 1:0:2:
+%2ld: 42:1:3:42:
+%*2ld: 42:0:3:
+%2ld: 2147483647:1:3:21:
+%*2ld: 2147483647:0:3:
+%2ld: 2147483648:1:3:21:
+%*2ld: 2147483648:0:3:
+%2ld: 2147487889:1:3:21:
+%*2ld: 2147487889:0:3:
+%2ld: +0:1:3:0:
+%*2ld: +0:0:3:
+%2ld: +1:1:3:1:
+%*2ld: +1:0:3:
+%2ld: +42:1:3:4:
+%*2ld: +42:0:3:
+%2ld: +2147483647:1:3:2:
+%*2ld: +2147483647:0:3:
+%2ld: +2147483648:1:3:2:
+%*2ld: +2147483648:0:3:
+%2ld: +2147487889:1:3:2:
+%*2ld: +2147487889:0:3:
+%15ld: :0:-1:
+%*15ld: :0:-1:
+%15ld: -2147484882:1:12:-2147483648:
+%*15ld: -2147484882:0:12:
+%15ld: -2147483649:1:12:-2147483648:
+%*15ld: -2147483649:0:12:
+%15ld: -2147483648:1:12:-2147483648:
+%*15ld: -2147483648:0:12:
+%15ld: -123:1:5:-123:
+%*15ld: -123:0:5:
+%15ld: -1:1:3:-1:
+%*15ld: -1:0:3:
+%15ld: -0:1:3:0:
+%*15ld: -0:0:3:
+%15ld: 0:1:2:0:
+%*15ld: 0:0:2:
+%15ld: 1:1:2:1:
+%*15ld: 1:0:2:
+%15ld: 42:1:3:42:
+%*15ld: 42:0:3:
+%15ld: 2147483647:1:11:2147483647:
+%*15ld: 2147483647:0:11:
+%15ld: 2147483648:1:11:2147483647:
+%*15ld: 2147483648:0:11:
+%15ld: 2147487889:1:11:2147483647:
+%*15ld: 2147487889:0:11:
+%15ld: +0:1:3:0:
+%*15ld: +0:0:3:
+%15ld: +1:1:3:1:
+%*15ld: +1:0:3:
+%15ld: +42:1:4:42:
+%*15ld: +42:0:4:
+%15ld: +2147483647:1:12:2147483647:
+%*15ld: +2147483647:0:12:
+%15ld: +2147483648:1:12:2147483647:
+%*15ld: +2147483648:0:12:
+%15ld: +2147487889:1:12:2147483647:
+%*15ld: +2147487889:0:12:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input
new file mode 100644
index 0000000..ccca374
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input
@@ -0,0 +1,1526 @@
+%li::0:-1:
+%*li::0:-1:
+%li:-2147484882:1:11:-2147483648:
+%*li:-2147484882:0:11:
+%li:-0X800004d2:1:11:-2147483648:
+%*li:-0X800004d2:0:11:
+%li:-0x800004D2:1:11:-2147483648:
+%*li:-0x800004D2:0:11:
+%li:-020000002322:1:13:-2147483648:
+%*li:-020000002322:0:13:
+%li:-0B10000000000000000000010011010010:1:35:-2147483648:
+%*li:-0B10000000000000000000010011010010:0:35:
+%li:-0b10000000000000000000010011010010:1:35:-2147483648:
+%*li:-0b10000000000000000000010011010010:0:35:
+%li:-2147483649:1:11:-2147483648:
+%*li:-2147483649:0:11:
+%li:-0X80000001:1:11:-2147483648:
+%*li:-0X80000001:0:11:
+%li:-0x80000001:1:11:-2147483648:
+%*li:-0x80000001:0:11:
+%li:-020000000001:1:13:-2147483648:
+%*li:-020000000001:0:13:
+%li:-0B10000000000000000000000000000001:1:35:-2147483648:
+%*li:-0B10000000000000000000000000000001:0:35:
+%li:-0b10000000000000000000000000000001:1:35:-2147483648:
+%*li:-0b10000000000000000000000000000001:0:35:
+%li:-2147483648:1:11:-2147483648:
+%*li:-2147483648:0:11:
+%li:-0X80000000:1:11:-2147483648:
+%*li:-0X80000000:0:11:
+%li:-0x80000000:1:11:-2147483648:
+%*li:-0x80000000:0:11:
+%li:-020000000000:1:13:-2147483648:
+%*li:-020000000000:0:13:
+%li:-0B10000000000000000000000000000000:1:35:-2147483648:
+%*li:-0B10000000000000000000000000000000:0:35:
+%li:-0b10000000000000000000000000000000:1:35:-2147483648:
+%*li:-0b10000000000000000000000000000000:0:35:
+%li:-123:1:4:-123:
+%*li:-123:0:4:
+%li:-0X7b:1:5:-123:
+%*li:-0X7b:0:5:
+%li:-0x7B:1:5:-123:
+%*li:-0x7B:0:5:
+%li:-0173:1:5:-123:
+%*li:-0173:0:5:
+%li:-0B1111011:1:10:-123:
+%*li:-0B1111011:0:10:
+%li:-0b1111011:1:10:-123:
+%*li:-0b1111011:0:10:
+%li:-1:1:2:-1:
+%*li:-1:0:2:
+%li:-0X1:1:4:-1:
+%*li:-0X1:0:4:
+%li:-0x1:1:4:-1:
+%*li:-0x1:0:4:
+%li:-01:1:3:-1:
+%*li:-01:0:3:
+%li:-0B1:1:4:-1:
+%*li:-0B1:0:4:
+%li:-0b1:1:4:-1:
+%*li:-0b1:0:4:
+%li:-0:1:2:0:
+%*li:-0:0:2:
+%li:-0X0:1:4:0:
+%*li:-0X0:0:4:
+%li:-0x0:1:4:0:
+%*li:-0x0:0:4:
+%li:-00:1:3:0:
+%*li:-00:0:3:
+%li:-0B0:1:4:0:
+%*li:-0B0:0:4:
+%li:-0b0:1:4:0:
+%*li:-0b0:0:4:
+%li:0:1:1:0:
+%*li:0:0:1:
+%li:0X0:1:3:0:
+%*li:0X0:0:3:
+%li:0x0:1:3:0:
+%*li:0x0:0:3:
+%li:00:1:2:0:
+%*li:00:0:2:
+%li:0B0:1:3:0:
+%*li:0B0:0:3:
+%li:0b0:1:3:0:
+%*li:0b0:0:3:
+%li:1:1:1:1:
+%*li:1:0:1:
+%li:0X1:1:3:1:
+%*li:0X1:0:3:
+%li:0x1:1:3:1:
+%*li:0x1:0:3:
+%li:01:1:2:1:
+%*li:01:0:2:
+%li:0B1:1:3:1:
+%*li:0B1:0:3:
+%li:0b1:1:3:1:
+%*li:0b1:0:3:
+%li:42:1:2:42:
+%*li:42:0:2:
+%li:0X2a:1:4:42:
+%*li:0X2a:0:4:
+%li:0x2A:1:4:42:
+%*li:0x2A:0:4:
+%li:052:1:3:42:
+%*li:052:0:3:
+%li:0B101010:1:8:42:
+%*li:0B101010:0:8:
+%li:0b101010:1:8:42:
+%*li:0b101010:0:8:
+%li:2147483647:1:10:2147483647:
+%*li:2147483647:0:10:
+%li:0X7fffffff:1:10:2147483647:
+%*li:0X7fffffff:0:10:
+%li:0x7FFFFFFF:1:10:2147483647:
+%*li:0x7FFFFFFF:0:10:
+%li:017777777777:1:12:2147483647:
+%*li:017777777777:0:12:
+%li:0B1111111111111111111111111111111:1:33:2147483647:
+%*li:0B1111111111111111111111111111111:0:33:
+%li:0b1111111111111111111111111111111:1:33:2147483647:
+%*li:0b1111111111111111111111111111111:0:33:
+%li:2147483648:1:10:2147483647:
+%*li:2147483648:0:10:
+%li:0X80000000:1:10:2147483647:
+%*li:0X80000000:0:10:
+%li:0x80000000:1:10:2147483647:
+%*li:0x80000000:0:10:
+%li:020000000000:1:12:2147483647:
+%*li:020000000000:0:12:
+%li:0B10000000000000000000000000000000:1:34:2147483647:
+%*li:0B10000000000000000000000000000000:0:34:
+%li:0b10000000000000000000000000000000:1:34:2147483647:
+%*li:0b10000000000000000000000000000000:0:34:
+%li:2147487889:1:10:2147483647:
+%*li:2147487889:0:10:
+%li:0X80001091:1:10:2147483647:
+%*li:0X80001091:0:10:
+%li:0x80001091:1:10:2147483647:
+%*li:0x80001091:0:10:
+%li:020000010221:1:12:2147483647:
+%*li:020000010221:0:12:
+%li:0B10000000000000000001000010010001:1:34:2147483647:
+%*li:0B10000000000000000001000010010001:0:34:
+%li:0b10000000000000000001000010010001:1:34:2147483647:
+%*li:0b10000000000000000001000010010001:0:34:
+%li:+0:1:2:0:
+%*li:+0:0:2:
+%li:+0X0:1:4:0:
+%*li:+0X0:0:4:
+%li:+0x0:1:4:0:
+%*li:+0x0:0:4:
+%li:+00:1:3:0:
+%*li:+00:0:3:
+%li:+0B0:1:4:0:
+%*li:+0B0:0:4:
+%li:+0b0:1:4:0:
+%*li:+0b0:0:4:
+%li:+1:1:2:1:
+%*li:+1:0:2:
+%li:+0X1:1:4:1:
+%*li:+0X1:0:4:
+%li:+0x1:1:4:1:
+%*li:+0x1:0:4:
+%li:+01:1:3:1:
+%*li:+01:0:3:
+%li:+0B1:1:4:1:
+%*li:+0B1:0:4:
+%li:+0b1:1:4:1:
+%*li:+0b1:0:4:
+%li:+42:1:3:42:
+%*li:+42:0:3:
+%li:+0X2a:1:5:42:
+%*li:+0X2a:0:5:
+%li:+0x2A:1:5:42:
+%*li:+0x2A:0:5:
+%li:+052:1:4:42:
+%*li:+052:0:4:
+%li:+0B101010:1:9:42:
+%*li:+0B101010:0:9:
+%li:+0b101010:1:9:42:
+%*li:+0b101010:0:9:
+%li:+2147483647:1:11:2147483647:
+%*li:+2147483647:0:11:
+%li:+0X7fffffff:1:11:2147483647:
+%*li:+0X7fffffff:0:11:
+%li:+0x7FFFFFFF:1:11:2147483647:
+%*li:+0x7FFFFFFF:0:11:
+%li:+017777777777:1:13:2147483647:
+%*li:+017777777777:0:13:
+%li:+0B1111111111111111111111111111111:1:34:2147483647:
+%*li:+0B1111111111111111111111111111111:0:34:
+%li:+0b1111111111111111111111111111111:1:34:2147483647:
+%*li:+0b1111111111111111111111111111111:0:34:
+%li:+2147483648:1:11:2147483647:
+%*li:+2147483648:0:11:
+%li:+0X80000000:1:11:2147483647:
+%*li:+0X80000000:0:11:
+%li:+0x80000000:1:11:2147483647:
+%*li:+0x80000000:0:11:
+%li:+020000000000:1:13:2147483647:
+%*li:+020000000000:0:13:
+%li:+0B10000000000000000000000000000000:1:35:2147483647:
+%*li:+0B10000000000000000000000000000000:0:35:
+%li:+0b10000000000000000000000000000000:1:35:2147483647:
+%*li:+0b10000000000000000000000000000000:0:35:
+%li:+2147487889:1:11:2147483647:
+%*li:+2147487889:0:11:
+%li:+0X80001091:1:11:2147483647:
+%*li:+0X80001091:0:11:
+%li:+0x80001091:1:11:2147483647:
+%*li:+0x80001091:0:11:
+%li:+020000010221:1:13:2147483647:
+%*li:+020000010221:0:13:
+%li:+0B10000000000000000001000010010001:1:35:2147483647:
+%*li:+0B10000000000000000001000010010001:0:35:
+%li:+0b10000000000000000001000010010001:1:35:2147483647:
+%*li:+0b10000000000000000001000010010001:0:35:
+%1li::0:-1:
+%*1li::0:-1:
+%1li:-2147484882:0:-1:
+%*1li:-2147484882:0:-1:
+%1li:-0X800004d2:0:-1:
+%*1li:-0X800004d2:0:-1:
+%1li:-0x800004D2:0:-1:
+%*1li:-0x800004D2:0:-1:
+%1li:-020000002322:0:-1:
+%*1li:-020000002322:0:-1:
+%1li:-0B10000000000000000000010011010010:0:-1:
+%*1li:-0B10000000000000000000010011010010:0:-1:
+%1li:-0b10000000000000000000010011010010:0:-1:
+%*1li:-0b10000000000000000000010011010010:0:-1:
+%1li:-2147483649:0:-1:
+%*1li:-2147483649:0:-1:
+%1li:-0X80000001:0:-1:
+%*1li:-0X80000001:0:-1:
+%1li:-0x80000001:0:-1:
+%*1li:-0x80000001:0:-1:
+%1li:-020000000001:0:-1:
+%*1li:-020000000001:0:-1:
+%1li:-0B10000000000000000000000000000001:0:-1:
+%*1li:-0B10000000000000000000000000000001:0:-1:
+%1li:-0b10000000000000000000000000000001:0:-1:
+%*1li:-0b10000000000000000000000000000001:0:-1:
+%1li:-2147483648:0:-1:
+%*1li:-2147483648:0:-1:
+%1li:-0X80000000:0:-1:
+%*1li:-0X80000000:0:-1:
+%1li:-0x80000000:0:-1:
+%*1li:-0x80000000:0:-1:
+%1li:-020000000000:0:-1:
+%*1li:-020000000000:0:-1:
+%1li:-0B10000000000000000000000000000000:0:-1:
+%*1li:-0B10000000000000000000000000000000:0:-1:
+%1li:-0b10000000000000000000000000000000:0:-1:
+%*1li:-0b10000000000000000000000000000000:0:-1:
+%1li:-123:0:-1:
+%*1li:-123:0:-1:
+%1li:-0X7b:0:-1:
+%*1li:-0X7b:0:-1:
+%1li:-0x7B:0:-1:
+%*1li:-0x7B:0:-1:
+%1li:-0173:0:-1:
+%*1li:-0173:0:-1:
+%1li:-0B1111011:0:-1:
+%*1li:-0B1111011:0:-1:
+%1li:-0b1111011:0:-1:
+%*1li:-0b1111011:0:-1:
+%1li:-1:0:-1:
+%*1li:-1:0:-1:
+%1li:-0X1:0:-1:
+%*1li:-0X1:0:-1:
+%1li:-0x1:0:-1:
+%*1li:-0x1:0:-1:
+%1li:-01:0:-1:
+%*1li:-01:0:-1:
+%1li:-0B1:0:-1:
+%*1li:-0B1:0:-1:
+%1li:-0b1:0:-1:
+%*1li:-0b1:0:-1:
+%1li:-0:0:-1:
+%*1li:-0:0:-1:
+%1li:-0X0:0:-1:
+%*1li:-0X0:0:-1:
+%1li:-0x0:0:-1:
+%*1li:-0x0:0:-1:
+%1li:-00:0:-1:
+%*1li:-00:0:-1:
+%1li:-0B0:0:-1:
+%*1li:-0B0:0:-1:
+%1li:-0b0:0:-1:
+%*1li:-0b0:0:-1:
+%1li:0:1:1:0:
+%*1li:0:0:1:
+%1li:0X0:1:1:0:
+%*1li:0X0:0:1:
+%1li:0x0:1:1:0:
+%*1li:0x0:0:1:
+%1li:00:1:1:0:
+%*1li:00:0:1:
+%1li:0B0:1:1:0:
+%*1li:0B0:0:1:
+%1li:0b0:1:1:0:
+%*1li:0b0:0:1:
+%1li:1:1:1:1:
+%*1li:1:0:1:
+%1li:0X1:1:1:0:
+%*1li:0X1:0:1:
+%1li:0x1:1:1:0:
+%*1li:0x1:0:1:
+%1li:01:1:1:0:
+%*1li:01:0:1:
+%1li:0B1:1:1:0:
+%*1li:0B1:0:1:
+%1li:0b1:1:1:0:
+%*1li:0b1:0:1:
+%1li:42:1:1:4:
+%*1li:42:0:1:
+%1li:0X2a:1:1:0:
+%*1li:0X2a:0:1:
+%1li:0x2A:1:1:0:
+%*1li:0x2A:0:1:
+%1li:052:1:1:0:
+%*1li:052:0:1:
+%1li:0B101010:1:1:0:
+%*1li:0B101010:0:1:
+%1li:0b101010:1:1:0:
+%*1li:0b101010:0:1:
+%1li:2147483647:1:1:2:
+%*1li:2147483647:0:1:
+%1li:0X7fffffff:1:1:0:
+%*1li:0X7fffffff:0:1:
+%1li:0x7FFFFFFF:1:1:0:
+%*1li:0x7FFFFFFF:0:1:
+%1li:017777777777:1:1:0:
+%*1li:017777777777:0:1:
+%1li:0B1111111111111111111111111111111:1:1:0:
+%*1li:0B1111111111111111111111111111111:0:1:
+%1li:0b1111111111111111111111111111111:1:1:0:
+%*1li:0b1111111111111111111111111111111:0:1:
+%1li:2147483648:1:1:2:
+%*1li:2147483648:0:1:
+%1li:0X80000000:1:1:0:
+%*1li:0X80000000:0:1:
+%1li:0x80000000:1:1:0:
+%*1li:0x80000000:0:1:
+%1li:020000000000:1:1:0:
+%*1li:020000000000:0:1:
+%1li:0B10000000000000000000000000000000:1:1:0:
+%*1li:0B10000000000000000000000000000000:0:1:
+%1li:0b10000000000000000000000000000000:1:1:0:
+%*1li:0b10000000000000000000000000000000:0:1:
+%1li:2147487889:1:1:2:
+%*1li:2147487889:0:1:
+%1li:0X80001091:1:1:0:
+%*1li:0X80001091:0:1:
+%1li:0x80001091:1:1:0:
+%*1li:0x80001091:0:1:
+%1li:020000010221:1:1:0:
+%*1li:020000010221:0:1:
+%1li:0B10000000000000000001000010010001:1:1:0:
+%*1li:0B10000000000000000001000010010001:0:1:
+%1li:0b10000000000000000001000010010001:1:1:0:
+%*1li:0b10000000000000000001000010010001:0:1:
+%1li:+0:0:-1:
+%*1li:+0:0:-1:
+%1li:+0X0:0:-1:
+%*1li:+0X0:0:-1:
+%1li:+0x0:0:-1:
+%*1li:+0x0:0:-1:
+%1li:+00:0:-1:
+%*1li:+00:0:-1:
+%1li:+0B0:0:-1:
+%*1li:+0B0:0:-1:
+%1li:+0b0:0:-1:
+%*1li:+0b0:0:-1:
+%1li:+1:0:-1:
+%*1li:+1:0:-1:
+%1li:+0X1:0:-1:
+%*1li:+0X1:0:-1:
+%1li:+0x1:0:-1:
+%*1li:+0x1:0:-1:
+%1li:+01:0:-1:
+%*1li:+01:0:-1:
+%1li:+0B1:0:-1:
+%*1li:+0B1:0:-1:
+%1li:+0b1:0:-1:
+%*1li:+0b1:0:-1:
+%1li:+42:0:-1:
+%*1li:+42:0:-1:
+%1li:+0X2a:0:-1:
+%*1li:+0X2a:0:-1:
+%1li:+0x2A:0:-1:
+%*1li:+0x2A:0:-1:
+%1li:+052:0:-1:
+%*1li:+052:0:-1:
+%1li:+0B101010:0:-1:
+%*1li:+0B101010:0:-1:
+%1li:+0b101010:0:-1:
+%*1li:+0b101010:0:-1:
+%1li:+2147483647:0:-1:
+%*1li:+2147483647:0:-1:
+%1li:+0X7fffffff:0:-1:
+%*1li:+0X7fffffff:0:-1:
+%1li:+0x7FFFFFFF:0:-1:
+%*1li:+0x7FFFFFFF:0:-1:
+%1li:+017777777777:0:-1:
+%*1li:+017777777777:0:-1:
+%1li:+0B1111111111111111111111111111111:0:-1:
+%*1li:+0B1111111111111111111111111111111:0:-1:
+%1li:+0b1111111111111111111111111111111:0:-1:
+%*1li:+0b1111111111111111111111111111111:0:-1:
+%1li:+2147483648:0:-1:
+%*1li:+2147483648:0:-1:
+%1li:+0X80000000:0:-1:
+%*1li:+0X80000000:0:-1:
+%1li:+0x80000000:0:-1:
+%*1li:+0x80000000:0:-1:
+%1li:+020000000000:0:-1:
+%*1li:+020000000000:0:-1:
+%1li:+0B10000000000000000000000000000000:0:-1:
+%*1li:+0B10000000000000000000000000000000:0:-1:
+%1li:+0b10000000000000000000000000000000:0:-1:
+%*1li:+0b10000000000000000000000000000000:0:-1:
+%1li:+2147487889:0:-1:
+%*1li:+2147487889:0:-1:
+%1li:+0X80001091:0:-1:
+%*1li:+0X80001091:0:-1:
+%1li:+0x80001091:0:-1:
+%*1li:+0x80001091:0:-1:
+%1li:+020000010221:0:-1:
+%*1li:+020000010221:0:-1:
+%1li:+0B10000000000000000001000010010001:0:-1:
+%*1li:+0B10000000000000000001000010010001:0:-1:
+%1li:+0b10000000000000000001000010010001:0:-1:
+%*1li:+0b10000000000000000001000010010001:0:-1:
+%2li::0:-1:
+%*2li::0:-1:
+%2li:-2147484882:1:2:-2:
+%*2li:-2147484882:0:2:
+%2li:-0X800004d2:1:2:0:
+%*2li:-0X800004d2:0:2:
+%2li:-0x800004D2:1:2:0:
+%*2li:-0x800004D2:0:2:
+%2li:-020000002322:1:2:0:
+%*2li:-020000002322:0:2:
+%2li:-0B10000000000000000000010011010010:1:2:0:
+%*2li:-0B10000000000000000000010011010010:0:2:
+%2li:-0b10000000000000000000010011010010:1:2:0:
+%*2li:-0b10000000000000000000010011010010:0:2:
+%2li:-2147483649:1:2:-2:
+%*2li:-2147483649:0:2:
+%2li:-0X80000001:1:2:0:
+%*2li:-0X80000001:0:2:
+%2li:-0x80000001:1:2:0:
+%*2li:-0x80000001:0:2:
+%2li:-020000000001:1:2:0:
+%*2li:-020000000001:0:2:
+%2li:-0B10000000000000000000000000000001:1:2:0:
+%*2li:-0B10000000000000000000000000000001:0:2:
+%2li:-0b10000000000000000000000000000001:1:2:0:
+%*2li:-0b10000000000000000000000000000001:0:2:
+%2li:-2147483648:1:2:-2:
+%*2li:-2147483648:0:2:
+%2li:-0X80000000:1:2:0:
+%*2li:-0X80000000:0:2:
+%2li:-0x80000000:1:2:0:
+%*2li:-0x80000000:0:2:
+%2li:-020000000000:1:2:0:
+%*2li:-020000000000:0:2:
+%2li:-0B10000000000000000000000000000000:1:2:0:
+%*2li:-0B10000000000000000000000000000000:0:2:
+%2li:-0b10000000000000000000000000000000:1:2:0:
+%*2li:-0b10000000000000000000000000000000:0:2:
+%2li:-123:1:2:-1:
+%*2li:-123:0:2:
+%2li:-0X7b:1:2:0:
+%*2li:-0X7b:0:2:
+%2li:-0x7B:1:2:0:
+%*2li:-0x7B:0:2:
+%2li:-0173:1:2:0:
+%*2li:-0173:0:2:
+%2li:-0B1111011:1:2:0:
+%*2li:-0B1111011:0:2:
+%2li:-0b1111011:1:2:0:
+%*2li:-0b1111011:0:2:
+%2li:-1:1:2:-1:
+%*2li:-1:0:2:
+%2li:-0X1:1:2:0:
+%*2li:-0X1:0:2:
+%2li:-0x1:1:2:0:
+%*2li:-0x1:0:2:
+%2li:-01:1:2:0:
+%*2li:-01:0:2:
+%2li:-0B1:1:2:0:
+%*2li:-0B1:0:2:
+%2li:-0b1:1:2:0:
+%*2li:-0b1:0:2:
+%2li:-0:1:2:0:
+%*2li:-0:0:2:
+%2li:-0X0:1:2:0:
+%*2li:-0X0:0:2:
+%2li:-0x0:1:2:0:
+%*2li:-0x0:0:2:
+%2li:-00:1:2:0:
+%*2li:-00:0:2:
+%2li:-0B0:1:2:0:
+%*2li:-0B0:0:2:
+%2li:-0b0:1:2:0:
+%*2li:-0b0:0:2:
+%2li:0:1:1:0:
+%*2li:0:0:1:
+%2li:0X0:0:-1:
+%*2li:0X0:0:-1:
+%2li:0x0:0:-1:
+%*2li:0x0:0:-1:
+%2li:00:1:2:0:
+%*2li:00:0:2:
+%2li:0B0:0:-1:
+%*2li:0B0:0:-1:
+%2li:0b0:0:-1:
+%*2li:0b0:0:-1:
+%2li:1:1:1:1:
+%*2li:1:0:1:
+%2li:0X1:0:-1:
+%*2li:0X1:0:-1:
+%2li:0x1:0:-1:
+%*2li:0x1:0:-1:
+%2li:01:1:2:1:
+%*2li:01:0:2:
+%2li:0B1:0:-1:
+%*2li:0B1:0:-1:
+%2li:0b1:0:-1:
+%*2li:0b1:0:-1:
+%2li:42:1:2:42:
+%*2li:42:0:2:
+%2li:0X2a:0:-1:
+%*2li:0X2a:0:-1:
+%2li:0x2A:0:-1:
+%*2li:0x2A:0:-1:
+%2li:052:1:2:5:
+%*2li:052:0:2:
+%2li:0B101010:0:-1:
+%*2li:0B101010:0:-1:
+%2li:0b101010:0:-1:
+%*2li:0b101010:0:-1:
+%2li:2147483647:1:2:21:
+%*2li:2147483647:0:2:
+%2li:0X7fffffff:0:-1:
+%*2li:0X7fffffff:0:-1:
+%2li:0x7FFFFFFF:0:-1:
+%*2li:0x7FFFFFFF:0:-1:
+%2li:017777777777:1:2:1:
+%*2li:017777777777:0:2:
+%2li:0B1111111111111111111111111111111:0:-1:
+%*2li:0B1111111111111111111111111111111:0:-1:
+%2li:0b1111111111111111111111111111111:0:-1:
+%*2li:0b1111111111111111111111111111111:0:-1:
+%2li:2147483648:1:2:21:
+%*2li:2147483648:0:2:
+%2li:0X80000000:0:-1:
+%*2li:0X80000000:0:-1:
+%2li:0x80000000:0:-1:
+%*2li:0x80000000:0:-1:
+%2li:020000000000:1:2:2:
+%*2li:020000000000:0:2:
+%2li:0B10000000000000000000000000000000:0:-1:
+%*2li:0B10000000000000000000000000000000:0:-1:
+%2li:0b10000000000000000000000000000000:0:-1:
+%*2li:0b10000000000000000000000000000000:0:-1:
+%2li:2147487889:1:2:21:
+%*2li:2147487889:0:2:
+%2li:0X80001091:0:-1:
+%*2li:0X80001091:0:-1:
+%2li:0x80001091:0:-1:
+%*2li:0x80001091:0:-1:
+%2li:020000010221:1:2:2:
+%*2li:020000010221:0:2:
+%2li:0B10000000000000000001000010010001:0:-1:
+%*2li:0B10000000000000000001000010010001:0:-1:
+%2li:0b10000000000000000001000010010001:0:-1:
+%*2li:0b10000000000000000001000010010001:0:-1:
+%2li:+0:1:2:0:
+%*2li:+0:0:2:
+%2li:+0X0:1:2:0:
+%*2li:+0X0:0:2:
+%2li:+0x0:1:2:0:
+%*2li:+0x0:0:2:
+%2li:+00:1:2:0:
+%*2li:+00:0:2:
+%2li:+0B0:1:2:0:
+%*2li:+0B0:0:2:
+%2li:+0b0:1:2:0:
+%*2li:+0b0:0:2:
+%2li:+1:1:2:1:
+%*2li:+1:0:2:
+%2li:+0X1:1:2:0:
+%*2li:+0X1:0:2:
+%2li:+0x1:1:2:0:
+%*2li:+0x1:0:2:
+%2li:+01:1:2:0:
+%*2li:+01:0:2:
+%2li:+0B1:1:2:0:
+%*2li:+0B1:0:2:
+%2li:+0b1:1:2:0:
+%*2li:+0b1:0:2:
+%2li:+42:1:2:4:
+%*2li:+42:0:2:
+%2li:+0X2a:1:2:0:
+%*2li:+0X2a:0:2:
+%2li:+0x2A:1:2:0:
+%*2li:+0x2A:0:2:
+%2li:+052:1:2:0:
+%*2li:+052:0:2:
+%2li:+0B101010:1:2:0:
+%*2li:+0B101010:0:2:
+%2li:+0b101010:1:2:0:
+%*2li:+0b101010:0:2:
+%2li:+2147483647:1:2:2:
+%*2li:+2147483647:0:2:
+%2li:+0X7fffffff:1:2:0:
+%*2li:+0X7fffffff:0:2:
+%2li:+0x7FFFFFFF:1:2:0:
+%*2li:+0x7FFFFFFF:0:2:
+%2li:+017777777777:1:2:0:
+%*2li:+017777777777:0:2:
+%2li:+0B1111111111111111111111111111111:1:2:0:
+%*2li:+0B1111111111111111111111111111111:0:2:
+%2li:+0b1111111111111111111111111111111:1:2:0:
+%*2li:+0b1111111111111111111111111111111:0:2:
+%2li:+2147483648:1:2:2:
+%*2li:+2147483648:0:2:
+%2li:+0X80000000:1:2:0:
+%*2li:+0X80000000:0:2:
+%2li:+0x80000000:1:2:0:
+%*2li:+0x80000000:0:2:
+%2li:+020000000000:1:2:0:
+%*2li:+020000000000:0:2:
+%2li:+0B10000000000000000000000000000000:1:2:0:
+%*2li:+0B10000000000000000000000000000000:0:2:
+%2li:+0b10000000000000000000000000000000:1:2:0:
+%*2li:+0b10000000000000000000000000000000:0:2:
+%2li:+2147487889:1:2:2:
+%*2li:+2147487889:0:2:
+%2li:+0X80001091:1:2:0:
+%*2li:+0X80001091:0:2:
+%2li:+0x80001091:1:2:0:
+%*2li:+0x80001091:0:2:
+%2li:+020000010221:1:2:0:
+%*2li:+020000010221:0:2:
+%2li:+0B10000000000000000001000010010001:1:2:0:
+%*2li:+0B10000000000000000001000010010001:0:2:
+%2li:+0b10000000000000000001000010010001:1:2:0:
+%*2li:+0b10000000000000000001000010010001:0:2:
+%8li::0:-1:
+%*8li::0:-1:
+%8li:-2147484882:1:8:-2147484:
+%*8li:-2147484882:0:8:
+%8li:-0X800004d2:1:8:-524288:
+%*8li:-0X800004d2:0:8:
+%8li:-0x800004D2:1:8:-524288:
+%*8li:-0x800004D2:0:8:
+%8li:-020000002322:1:8:-65536:
+%*8li:-020000002322:0:8:
+%8li:-0B10000000000000000000010011010010:1:8:-16:
+%*8li:-0B10000000000000000000010011010010:0:8:
+%8li:-0b10000000000000000000010011010010:1:8:-16:
+%*8li:-0b10000000000000000000010011010010:0:8:
+%8li:-2147483649:1:8:-2147483:
+%*8li:-2147483649:0:8:
+%8li:-0X80000001:1:8:-524288:
+%*8li:-0X80000001:0:8:
+%8li:-0x80000001:1:8:-524288:
+%*8li:-0x80000001:0:8:
+%8li:-020000000001:1:8:-65536:
+%*8li:-020000000001:0:8:
+%8li:-0B10000000000000000000000000000001:1:8:-16:
+%*8li:-0B10000000000000000000000000000001:0:8:
+%8li:-0b10000000000000000000000000000001:1:8:-16:
+%*8li:-0b10000000000000000000000000000001:0:8:
+%8li:-2147483648:1:8:-2147483:
+%*8li:-2147483648:0:8:
+%8li:-0X80000000:1:8:-524288:
+%*8li:-0X80000000:0:8:
+%8li:-0x80000000:1:8:-524288:
+%*8li:-0x80000000:0:8:
+%8li:-020000000000:1:8:-65536:
+%*8li:-020000000000:0:8:
+%8li:-0B10000000000000000000000000000000:1:8:-16:
+%*8li:-0B10000000000000000000000000000000:0:8:
+%8li:-0b10000000000000000000000000000000:1:8:-16:
+%*8li:-0b10000000000000000000000000000000:0:8:
+%8li:-123:1:4:-123:
+%*8li:-123:0:4:
+%8li:-0X7b:1:5:-123:
+%*8li:-0X7b:0:5:
+%8li:-0x7B:1:5:-123:
+%*8li:-0x7B:0:5:
+%8li:-0173:1:5:-123:
+%*8li:-0173:0:5:
+%8li:-0B1111011:1:8:-30:
+%*8li:-0B1111011:0:8:
+%8li:-0b1111011:1:8:-30:
+%*8li:-0b1111011:0:8:
+%8li:-1:1:2:-1:
+%*8li:-1:0:2:
+%8li:-0X1:1:4:-1:
+%*8li:-0X1:0:4:
+%8li:-0x1:1:4:-1:
+%*8li:-0x1:0:4:
+%8li:-01:1:3:-1:
+%*8li:-01:0:3:
+%8li:-0B1:1:4:-1:
+%*8li:-0B1:0:4:
+%8li:-0b1:1:4:-1:
+%*8li:-0b1:0:4:
+%8li:-0:1:2:0:
+%*8li:-0:0:2:
+%8li:-0X0:1:4:0:
+%*8li:-0X0:0:4:
+%8li:-0x0:1:4:0:
+%*8li:-0x0:0:4:
+%8li:-00:1:3:0:
+%*8li:-00:0:3:
+%8li:-0B0:1:4:0:
+%*8li:-0B0:0:4:
+%8li:-0b0:1:4:0:
+%*8li:-0b0:0:4:
+%8li:0:1:1:0:
+%*8li:0:0:1:
+%8li:0X0:1:3:0:
+%*8li:0X0:0:3:
+%8li:0x0:1:3:0:
+%*8li:0x0:0:3:
+%8li:00:1:2:0:
+%*8li:00:0:2:
+%8li:0B0:1:3:0:
+%*8li:0B0:0:3:
+%8li:0b0:1:3:0:
+%*8li:0b0:0:3:
+%8li:1:1:1:1:
+%*8li:1:0:1:
+%8li:0X1:1:3:1:
+%*8li:0X1:0:3:
+%8li:0x1:1:3:1:
+%*8li:0x1:0:3:
+%8li:01:1:2:1:
+%*8li:01:0:2:
+%8li:0B1:1:3:1:
+%*8li:0B1:0:3:
+%8li:0b1:1:3:1:
+%*8li:0b1:0:3:
+%8li:42:1:2:42:
+%*8li:42:0:2:
+%8li:0X2a:1:4:42:
+%*8li:0X2a:0:4:
+%8li:0x2A:1:4:42:
+%*8li:0x2A:0:4:
+%8li:052:1:3:42:
+%*8li:052:0:3:
+%8li:0B101010:1:8:42:
+%*8li:0B101010:0:8:
+%8li:0b101010:1:8:42:
+%*8li:0b101010:0:8:
+%8li:2147483647:1:8:21474836:
+%*8li:2147483647:0:8:
+%8li:0X7fffffff:1:8:8388607:
+%*8li:0X7fffffff:0:8:
+%8li:0x7FFFFFFF:1:8:8388607:
+%*8li:0x7FFFFFFF:0:8:
+%8li:017777777777:1:8:524287:
+%*8li:017777777777:0:8:
+%8li:0B1111111111111111111111111111111:1:8:63:
+%*8li:0B1111111111111111111111111111111:0:8:
+%8li:0b1111111111111111111111111111111:1:8:63:
+%*8li:0b1111111111111111111111111111111:0:8:
+%8li:2147483648:1:8:21474836:
+%*8li:2147483648:0:8:
+%8li:0X80000000:1:8:8388608:
+%*8li:0X80000000:0:8:
+%8li:0x80000000:1:8:8388608:
+%*8li:0x80000000:0:8:
+%8li:020000000000:1:8:524288:
+%*8li:020000000000:0:8:
+%8li:0B10000000000000000000000000000000:1:8:32:
+%*8li:0B10000000000000000000000000000000:0:8:
+%8li:0b10000000000000000000000000000000:1:8:32:
+%*8li:0b10000000000000000000000000000000:0:8:
+%8li:2147487889:1:8:21474878:
+%*8li:2147487889:0:8:
+%8li:0X80001091:1:8:8388624:
+%*8li:0X80001091:0:8:
+%8li:0x80001091:1:8:8388624:
+%*8li:0x80001091:0:8:
+%8li:020000010221:1:8:524289:
+%*8li:020000010221:0:8:
+%8li:0B10000000000000000001000010010001:1:8:32:
+%*8li:0B10000000000000000001000010010001:0:8:
+%8li:0b10000000000000000001000010010001:1:8:32:
+%*8li:0b10000000000000000001000010010001:0:8:
+%8li:+0:1:2:0:
+%*8li:+0:0:2:
+%8li:+0X0:1:4:0:
+%*8li:+0X0:0:4:
+%8li:+0x0:1:4:0:
+%*8li:+0x0:0:4:
+%8li:+00:1:3:0:
+%*8li:+00:0:3:
+%8li:+0B0:1:4:0:
+%*8li:+0B0:0:4:
+%8li:+0b0:1:4:0:
+%*8li:+0b0:0:4:
+%8li:+1:1:2:1:
+%*8li:+1:0:2:
+%8li:+0X1:1:4:1:
+%*8li:+0X1:0:4:
+%8li:+0x1:1:4:1:
+%*8li:+0x1:0:4:
+%8li:+01:1:3:1:
+%*8li:+01:0:3:
+%8li:+0B1:1:4:1:
+%*8li:+0B1:0:4:
+%8li:+0b1:1:4:1:
+%*8li:+0b1:0:4:
+%8li:+42:1:3:42:
+%*8li:+42:0:3:
+%8li:+0X2a:1:5:42:
+%*8li:+0X2a:0:5:
+%8li:+0x2A:1:5:42:
+%*8li:+0x2A:0:5:
+%8li:+052:1:4:42:
+%*8li:+052:0:4:
+%8li:+0B101010:1:8:21:
+%*8li:+0B101010:0:8:
+%8li:+0b101010:1:8:21:
+%*8li:+0b101010:0:8:
+%8li:+2147483647:1:8:2147483:
+%*8li:+2147483647:0:8:
+%8li:+0X7fffffff:1:8:524287:
+%*8li:+0X7fffffff:0:8:
+%8li:+0x7FFFFFFF:1:8:524287:
+%*8li:+0x7FFFFFFF:0:8:
+%8li:+017777777777:1:8:65535:
+%*8li:+017777777777:0:8:
+%8li:+0B1111111111111111111111111111111:1:8:31:
+%*8li:+0B1111111111111111111111111111111:0:8:
+%8li:+0b1111111111111111111111111111111:1:8:31:
+%*8li:+0b1111111111111111111111111111111:0:8:
+%8li:+2147483648:1:8:2147483:
+%*8li:+2147483648:0:8:
+%8li:+0X80000000:1:8:524288:
+%*8li:+0X80000000:0:8:
+%8li:+0x80000000:1:8:524288:
+%*8li:+0x80000000:0:8:
+%8li:+020000000000:1:8:65536:
+%*8li:+020000000000:0:8:
+%8li:+0B10000000000000000000000000000000:1:8:16:
+%*8li:+0B10000000000000000000000000000000:0:8:
+%8li:+0b10000000000000000000000000000000:1:8:16:
+%*8li:+0b10000000000000000000000000000000:0:8:
+%8li:+2147487889:1:8:2147487:
+%*8li:+2147487889:0:8:
+%8li:+0X80001091:1:8:524289:
+%*8li:+0X80001091:0:8:
+%8li:+0x80001091:1:8:524289:
+%*8li:+0x80001091:0:8:
+%8li:+020000010221:1:8:65536:
+%*8li:+020000010221:0:8:
+%8li:+0B10000000000000000001000010010001:1:8:16:
+%*8li:+0B10000000000000000001000010010001:0:8:
+%8li:+0b10000000000000000001000010010001:1:8:16:
+%*8li:+0b10000000000000000001000010010001:0:8:
+%15li::0:-1:
+%*15li::0:-1:
+%15li:-2147484882:1:11:-2147483648:
+%*15li:-2147484882:0:11:
+%15li:-0X800004d2:1:11:-2147483648:
+%*15li:-0X800004d2:0:11:
+%15li:-0x800004D2:1:11:-2147483648:
+%*15li:-0x800004D2:0:11:
+%15li:-020000002322:1:13:-2147483648:
+%*15li:-020000002322:0:13:
+%15li:-0B10000000000000000000010011010010:1:15:-2048:
+%*15li:-0B10000000000000000000010011010010:0:15:
+%15li:-0b10000000000000000000010011010010:1:15:-2048:
+%*15li:-0b10000000000000000000010011010010:0:15:
+%15li:-2147483649:1:11:-2147483648:
+%*15li:-2147483649:0:11:
+%15li:-0X80000001:1:11:-2147483648:
+%*15li:-0X80000001:0:11:
+%15li:-0x80000001:1:11:-2147483648:
+%*15li:-0x80000001:0:11:
+%15li:-020000000001:1:13:-2147483648:
+%*15li:-020000000001:0:13:
+%15li:-0B10000000000000000000000000000001:1:15:-2048:
+%*15li:-0B10000000000000000000000000000001:0:15:
+%15li:-0b10000000000000000000000000000001:1:15:-2048:
+%*15li:-0b10000000000000000000000000000001:0:15:
+%15li:-2147483648:1:11:-2147483648:
+%*15li:-2147483648:0:11:
+%15li:-0X80000000:1:11:-2147483648:
+%*15li:-0X80000000:0:11:
+%15li:-0x80000000:1:11:-2147483648:
+%*15li:-0x80000000:0:11:
+%15li:-020000000000:1:13:-2147483648:
+%*15li:-020000000000:0:13:
+%15li:-0B10000000000000000000000000000000:1:15:-2048:
+%*15li:-0B10000000000000000000000000000000:0:15:
+%15li:-0b10000000000000000000000000000000:1:15:-2048:
+%*15li:-0b10000000000000000000000000000000:0:15:
+%15li:-123:1:4:-123:
+%*15li:-123:0:4:
+%15li:-0X7b:1:5:-123:
+%*15li:-0X7b:0:5:
+%15li:-0x7B:1:5:-123:
+%*15li:-0x7B:0:5:
+%15li:-0173:1:5:-123:
+%*15li:-0173:0:5:
+%15li:-0B1111011:1:10:-123:
+%*15li:-0B1111011:0:10:
+%15li:-0b1111011:1:10:-123:
+%*15li:-0b1111011:0:10:
+%15li:-1:1:2:-1:
+%*15li:-1:0:2:
+%15li:-0X1:1:4:-1:
+%*15li:-0X1:0:4:
+%15li:-0x1:1:4:-1:
+%*15li:-0x1:0:4:
+%15li:-01:1:3:-1:
+%*15li:-01:0:3:
+%15li:-0B1:1:4:-1:
+%*15li:-0B1:0:4:
+%15li:-0b1:1:4:-1:
+%*15li:-0b1:0:4:
+%15li:-0:1:2:0:
+%*15li:-0:0:2:
+%15li:-0X0:1:4:0:
+%*15li:-0X0:0:4:
+%15li:-0x0:1:4:0:
+%*15li:-0x0:0:4:
+%15li:-00:1:3:0:
+%*15li:-00:0:3:
+%15li:-0B0:1:4:0:
+%*15li:-0B0:0:4:
+%15li:-0b0:1:4:0:
+%*15li:-0b0:0:4:
+%15li:0:1:1:0:
+%*15li:0:0:1:
+%15li:0X0:1:3:0:
+%*15li:0X0:0:3:
+%15li:0x0:1:3:0:
+%*15li:0x0:0:3:
+%15li:00:1:2:0:
+%*15li:00:0:2:
+%15li:0B0:1:3:0:
+%*15li:0B0:0:3:
+%15li:0b0:1:3:0:
+%*15li:0b0:0:3:
+%15li:1:1:1:1:
+%*15li:1:0:1:
+%15li:0X1:1:3:1:
+%*15li:0X1:0:3:
+%15li:0x1:1:3:1:
+%*15li:0x1:0:3:
+%15li:01:1:2:1:
+%*15li:01:0:2:
+%15li:0B1:1:3:1:
+%*15li:0B1:0:3:
+%15li:0b1:1:3:1:
+%*15li:0b1:0:3:
+%15li:42:1:2:42:
+%*15li:42:0:2:
+%15li:0X2a:1:4:42:
+%*15li:0X2a:0:4:
+%15li:0x2A:1:4:42:
+%*15li:0x2A:0:4:
+%15li:052:1:3:42:
+%*15li:052:0:3:
+%15li:0B101010:1:8:42:
+%*15li:0B101010:0:8:
+%15li:0b101010:1:8:42:
+%*15li:0b101010:0:8:
+%15li:2147483647:1:10:2147483647:
+%*15li:2147483647:0:10:
+%15li:0X7fffffff:1:10:2147483647:
+%*15li:0X7fffffff:0:10:
+%15li:0x7FFFFFFF:1:10:2147483647:
+%*15li:0x7FFFFFFF:0:10:
+%15li:017777777777:1:12:2147483647:
+%*15li:017777777777:0:12:
+%15li:0B1111111111111111111111111111111:1:15:8191:
+%*15li:0B1111111111111111111111111111111:0:15:
+%15li:0b1111111111111111111111111111111:1:15:8191:
+%*15li:0b1111111111111111111111111111111:0:15:
+%15li:2147483648:1:10:2147483647:
+%*15li:2147483648:0:10:
+%15li:0X80000000:1:10:2147483647:
+%*15li:0X80000000:0:10:
+%15li:0x80000000:1:10:2147483647:
+%*15li:0x80000000:0:10:
+%15li:020000000000:1:12:2147483647:
+%*15li:020000000000:0:12:
+%15li:0B10000000000000000000000000000000:1:15:4096:
+%*15li:0B10000000000000000000000000000000:0:15:
+%15li:0b10000000000000000000000000000000:1:15:4096:
+%*15li:0b10000000000000000000000000000000:0:15:
+%15li:2147487889:1:10:2147483647:
+%*15li:2147487889:0:10:
+%15li:0X80001091:1:10:2147483647:
+%*15li:0X80001091:0:10:
+%15li:0x80001091:1:10:2147483647:
+%*15li:0x80001091:0:10:
+%15li:020000010221:1:12:2147483647:
+%*15li:020000010221:0:12:
+%15li:0B10000000000000000001000010010001:1:15:4096:
+%*15li:0B10000000000000000001000010010001:0:15:
+%15li:0b10000000000000000001000010010001:1:15:4096:
+%*15li:0b10000000000000000001000010010001:0:15:
+%15li:+0:1:2:0:
+%*15li:+0:0:2:
+%15li:+0X0:1:4:0:
+%*15li:+0X0:0:4:
+%15li:+0x0:1:4:0:
+%*15li:+0x0:0:4:
+%15li:+00:1:3:0:
+%*15li:+00:0:3:
+%15li:+0B0:1:4:0:
+%*15li:+0B0:0:4:
+%15li:+0b0:1:4:0:
+%*15li:+0b0:0:4:
+%15li:+1:1:2:1:
+%*15li:+1:0:2:
+%15li:+0X1:1:4:1:
+%*15li:+0X1:0:4:
+%15li:+0x1:1:4:1:
+%*15li:+0x1:0:4:
+%15li:+01:1:3:1:
+%*15li:+01:0:3:
+%15li:+0B1:1:4:1:
+%*15li:+0B1:0:4:
+%15li:+0b1:1:4:1:
+%*15li:+0b1:0:4:
+%15li:+42:1:3:42:
+%*15li:+42:0:3:
+%15li:+0X2a:1:5:42:
+%*15li:+0X2a:0:5:
+%15li:+0x2A:1:5:42:
+%*15li:+0x2A:0:5:
+%15li:+052:1:4:42:
+%*15li:+052:0:4:
+%15li:+0B101010:1:9:42:
+%*15li:+0B101010:0:9:
+%15li:+0b101010:1:9:42:
+%*15li:+0b101010:0:9:
+%15li:+2147483647:1:11:2147483647:
+%*15li:+2147483647:0:11:
+%15li:+0X7fffffff:1:11:2147483647:
+%*15li:+0X7fffffff:0:11:
+%15li:+0x7FFFFFFF:1:11:2147483647:
+%*15li:+0x7FFFFFFF:0:11:
+%15li:+017777777777:1:13:2147483647:
+%*15li:+017777777777:0:13:
+%15li:+0B1111111111111111111111111111111:1:15:4095:
+%*15li:+0B1111111111111111111111111111111:0:15:
+%15li:+0b1111111111111111111111111111111:1:15:4095:
+%*15li:+0b1111111111111111111111111111111:0:15:
+%15li:+2147483648:1:11:2147483647:
+%*15li:+2147483648:0:11:
+%15li:+0X80000000:1:11:2147483647:
+%*15li:+0X80000000:0:11:
+%15li:+0x80000000:1:11:2147483647:
+%*15li:+0x80000000:0:11:
+%15li:+020000000000:1:13:2147483647:
+%*15li:+020000000000:0:13:
+%15li:+0B10000000000000000000000000000000:1:15:2048:
+%*15li:+0B10000000000000000000000000000000:0:15:
+%15li:+0b10000000000000000000000000000000:1:15:2048:
+%*15li:+0b10000000000000000000000000000000:0:15:
+%15li:+2147487889:1:11:2147483647:
+%*15li:+2147487889:0:11:
+%15li:+0X80001091:1:11:2147483647:
+%*15li:+0X80001091:0:11:
+%15li:+0x80001091:1:11:2147483647:
+%*15li:+0x80001091:0:11:
+%15li:+020000010221:1:13:2147483647:
+%*15li:+020000010221:0:13:
+%15li:+0B10000000000000000001000010010001:1:15:2048:
+%*15li:+0B10000000000000000001000010010001:0:15:
+%15li:+0b10000000000000000001000010010001:1:15:2048:
+%*15li:+0b10000000000000000001000010010001:0:15:
+%2li: :0:-1:
+%*2li: :0:-1:
+%2li: -2147484882:1:3:-2:
+%*2li: -2147484882:0:3:
+%2li: -0X800004d2:1:3:0:
+%*2li: -0X800004d2:0:3:
+%2li: -0x800004D2:1:3:0:
+%*2li: -0x800004D2:0:3:
+%2li: -020000002322:1:3:0:
+%*2li: -020000002322:0:3:
+%2li: -0B10000000000000000000010011010010:1:3:0:
+%*2li: -0B10000000000000000000010011010010:0:3:
+%2li: -0b10000000000000000000010011010010:1:3:0:
+%*2li: -0b10000000000000000000010011010010:0:3:
+%2li: -2147483649:1:3:-2:
+%*2li: -2147483649:0:3:
+%2li: -0X80000001:1:3:0:
+%*2li: -0X80000001:0:3:
+%2li: -0x80000001:1:3:0:
+%*2li: -0x80000001:0:3:
+%2li: -020000000001:1:3:0:
+%*2li: -020000000001:0:3:
+%2li: -0B10000000000000000000000000000001:1:3:0:
+%*2li: -0B10000000000000000000000000000001:0:3:
+%2li: -0b10000000000000000000000000000001:1:3:0:
+%*2li: -0b10000000000000000000000000000001:0:3:
+%2li: -2147483648:1:3:-2:
+%*2li: -2147483648:0:3:
+%2li: -0X80000000:1:3:0:
+%*2li: -0X80000000:0:3:
+%2li: -0x80000000:1:3:0:
+%*2li: -0x80000000:0:3:
+%2li: -020000000000:1:3:0:
+%*2li: -020000000000:0:3:
+%2li: -0B10000000000000000000000000000000:1:3:0:
+%*2li: -0B10000000000000000000000000000000:0:3:
+%2li: -0b10000000000000000000000000000000:1:3:0:
+%*2li: -0b10000000000000000000000000000000:0:3:
+%2li: -123:1:3:-1:
+%*2li: -123:0:3:
+%2li: -0X7b:1:3:0:
+%*2li: -0X7b:0:3:
+%2li: -0x7B:1:3:0:
+%*2li: -0x7B:0:3:
+%2li: -0173:1:3:0:
+%*2li: -0173:0:3:
+%2li: -0B1111011:1:3:0:
+%*2li: -0B1111011:0:3:
+%2li: -0b1111011:1:3:0:
+%*2li: -0b1111011:0:3:
+%2li: -1:1:3:-1:
+%*2li: -1:0:3:
+%2li: -0X1:1:3:0:
+%*2li: -0X1:0:3:
+%2li: -0x1:1:3:0:
+%*2li: -0x1:0:3:
+%2li: -01:1:3:0:
+%*2li: -01:0:3:
+%2li: -0B1:1:3:0:
+%*2li: -0B1:0:3:
+%2li: -0b1:1:3:0:
+%*2li: -0b1:0:3:
+%2li: -0:1:3:0:
+%*2li: -0:0:3:
+%2li: -0X0:1:3:0:
+%*2li: -0X0:0:3:
+%2li: -0x0:1:3:0:
+%*2li: -0x0:0:3:
+%2li: -00:1:3:0:
+%*2li: -00:0:3:
+%2li: -0B0:1:3:0:
+%*2li: -0B0:0:3:
+%2li: -0b0:1:3:0:
+%*2li: -0b0:0:3:
+%2li: 0:1:2:0:
+%*2li: 0:0:2:
+%2li: 0X0:0:-1:
+%*2li: 0X0:0:-1:
+%2li: 0x0:0:-1:
+%*2li: 0x0:0:-1:
+%2li: 00:1:3:0:
+%*2li: 00:0:3:
+%2li: 0B0:0:-1:
+%*2li: 0B0:0:-1:
+%2li: 0b0:0:-1:
+%*2li: 0b0:0:-1:
+%2li: 1:1:2:1:
+%*2li: 1:0:2:
+%2li: 0X1:0:-1:
+%*2li: 0X1:0:-1:
+%2li: 0x1:0:-1:
+%*2li: 0x1:0:-1:
+%2li: 01:1:3:1:
+%*2li: 01:0:3:
+%2li: 0B1:0:-1:
+%*2li: 0B1:0:-1:
+%2li: 0b1:0:-1:
+%*2li: 0b1:0:-1:
+%2li: 42:1:3:42:
+%*2li: 42:0:3:
+%2li: 0X2a:0:-1:
+%*2li: 0X2a:0:-1:
+%2li: 0x2A:0:-1:
+%*2li: 0x2A:0:-1:
+%2li: 052:1:3:5:
+%*2li: 052:0:3:
+%2li: 0B101010:0:-1:
+%*2li: 0B101010:0:-1:
+%2li: 0b101010:0:-1:
+%*2li: 0b101010:0:-1:
+%2li: 2147483647:1:3:21:
+%*2li: 2147483647:0:3:
+%2li: 0X7fffffff:0:-1:
+%*2li: 0X7fffffff:0:-1:
+%2li: 0x7FFFFFFF:0:-1:
+%*2li: 0x7FFFFFFF:0:-1:
+%2li: 017777777777:1:3:1:
+%*2li: 017777777777:0:3:
+%2li: 0B1111111111111111111111111111111:0:-1:
+%*2li: 0B1111111111111111111111111111111:0:-1:
+%2li: 0b1111111111111111111111111111111:0:-1:
+%*2li: 0b1111111111111111111111111111111:0:-1:
+%2li: 2147483648:1:3:21:
+%*2li: 2147483648:0:3:
+%2li: 0X80000000:0:-1:
+%*2li: 0X80000000:0:-1:
+%2li: 0x80000000:0:-1:
+%*2li: 0x80000000:0:-1:
+%2li: 020000000000:1:3:2:
+%*2li: 020000000000:0:3:
+%2li: 0B10000000000000000000000000000000:0:-1:
+%*2li: 0B10000000000000000000000000000000:0:-1:
+%2li: 0b10000000000000000000000000000000:0:-1:
+%*2li: 0b10000000000000000000000000000000:0:-1:
+%2li: 2147487889:1:3:21:
+%*2li: 2147487889:0:3:
+%2li: 0X80001091:0:-1:
+%*2li: 0X80001091:0:-1:
+%2li: 0x80001091:0:-1:
+%*2li: 0x80001091:0:-1:
+%2li: 020000010221:1:3:2:
+%*2li: 020000010221:0:3:
+%2li: 0B10000000000000000001000010010001:0:-1:
+%*2li: 0B10000000000000000001000010010001:0:-1:
+%2li: 0b10000000000000000001000010010001:0:-1:
+%*2li: 0b10000000000000000001000010010001:0:-1:
+%2li: +0:1:3:0:
+%*2li: +0:0:3:
+%2li: +0X0:1:3:0:
+%*2li: +0X0:0:3:
+%2li: +0x0:1:3:0:
+%*2li: +0x0:0:3:
+%2li: +00:1:3:0:
+%*2li: +00:0:3:
+%2li: +0B0:1:3:0:
+%*2li: +0B0:0:3:
+%2li: +0b0:1:3:0:
+%*2li: +0b0:0:3:
+%2li: +1:1:3:1:
+%*2li: +1:0:3:
+%2li: +0X1:1:3:0:
+%*2li: +0X1:0:3:
+%2li: +0x1:1:3:0:
+%*2li: +0x1:0:3:
+%2li: +01:1:3:0:
+%*2li: +01:0:3:
+%2li: +0B1:1:3:0:
+%*2li: +0B1:0:3:
+%2li: +0b1:1:3:0:
+%*2li: +0b1:0:3:
+%2li: +42:1:3:4:
+%*2li: +42:0:3:
+%2li: +0X2a:1:3:0:
+%*2li: +0X2a:0:3:
+%2li: +0x2A:1:3:0:
+%*2li: +0x2A:0:3:
+%2li: +052:1:3:0:
+%*2li: +052:0:3:
+%2li: +0B101010:1:3:0:
+%*2li: +0B101010:0:3:
+%2li: +0b101010:1:3:0:
+%*2li: +0b101010:0:3:
+%2li: +2147483647:1:3:2:
+%*2li: +2147483647:0:3:
+%2li: +0X7fffffff:1:3:0:
+%*2li: +0X7fffffff:0:3:
+%2li: +0x7FFFFFFF:1:3:0:
+%*2li: +0x7FFFFFFF:0:3:
+%2li: +017777777777:1:3:0:
+%*2li: +017777777777:0:3:
+%2li: +0B1111111111111111111111111111111:1:3:0:
+%*2li: +0B1111111111111111111111111111111:0:3:
+%2li: +0b1111111111111111111111111111111:1:3:0:
+%*2li: +0b1111111111111111111111111111111:0:3:
+%2li: +2147483648:1:3:2:
+%*2li: +2147483648:0:3:
+%2li: +0X80000000:1:3:0:
+%*2li: +0X80000000:0:3:
+%2li: +0x80000000:1:3:0:
+%*2li: +0x80000000:0:3:
+%2li: +020000000000:1:3:0:
+%*2li: +020000000000:0:3:
+%2li: +0B10000000000000000000000000000000:1:3:0:
+%*2li: +0B10000000000000000000000000000000:0:3:
+%2li: +0b10000000000000000000000000000000:1:3:0:
+%*2li: +0b10000000000000000000000000000000:0:3:
+%2li: +2147487889:1:3:2:
+%*2li: +2147487889:0:3:
+%2li: +0X80001091:1:3:0:
+%*2li: +0X80001091:0:3:
+%2li: +0x80001091:1:3:0:
+%*2li: +0x80001091:0:3:
+%2li: +020000010221:1:3:0:
+%*2li: +020000010221:0:3:
+%2li: +0B10000000000000000001000010010001:1:3:0:
+%*2li: +0B10000000000000000001000010010001:0:3:
+%2li: +0b10000000000000000001000010010001:1:3:0:
+%*2li: +0b10000000000000000001000010010001:0:3:
+%15li: :0:-1:
+%*15li: :0:-1:
+%15li: -2147484882:1:12:-2147483648:
+%*15li: -2147484882:0:12:
+%15li: -0X800004d2:1:12:-2147483648:
+%*15li: -0X800004d2:0:12:
+%15li: -0x800004D2:1:12:-2147483648:
+%*15li: -0x800004D2:0:12:
+%15li: -020000002322:1:14:-2147483648:
+%*15li: -020000002322:0:14:
+%15li: -0B10000000000000000000010011010010:1:16:-2048:
+%*15li: -0B10000000000000000000010011010010:0:16:
+%15li: -0b10000000000000000000010011010010:1:16:-2048:
+%*15li: -0b10000000000000000000010011010010:0:16:
+%15li: -2147483649:1:12:-2147483648:
+%*15li: -2147483649:0:12:
+%15li: -0X80000001:1:12:-2147483648:
+%*15li: -0X80000001:0:12:
+%15li: -0x80000001:1:12:-2147483648:
+%*15li: -0x80000001:0:12:
+%15li: -020000000001:1:14:-2147483648:
+%*15li: -020000000001:0:14:
+%15li: -0B10000000000000000000000000000001:1:16:-2048:
+%*15li: -0B10000000000000000000000000000001:0:16:
+%15li: -0b10000000000000000000000000000001:1:16:-2048:
+%*15li: -0b10000000000000000000000000000001:0:16:
+%15li: -2147483648:1:12:-2147483648:
+%*15li: -2147483648:0:12:
+%15li: -0X80000000:1:12:-2147483648:
+%*15li: -0X80000000:0:12:
+%15li: -0x80000000:1:12:-2147483648:
+%*15li: -0x80000000:0:12:
+%15li: -020000000000:1:14:-2147483648:
+%*15li: -020000000000:0:14:
+%15li: -0B10000000000000000000000000000000:1:16:-2048:
+%*15li: -0B10000000000000000000000000000000:0:16:
+%15li: -0b10000000000000000000000000000000:1:16:-2048:
+%*15li: -0b10000000000000000000000000000000:0:16:
+%15li: -123:1:5:-123:
+%*15li: -123:0:5:
+%15li: -0X7b:1:6:-123:
+%*15li: -0X7b:0:6:
+%15li: -0x7B:1:6:-123:
+%*15li: -0x7B:0:6:
+%15li: -0173:1:6:-123:
+%*15li: -0173:0:6:
+%15li: -0B1111011:1:11:-123:
+%*15li: -0B1111011:0:11:
+%15li: -0b1111011:1:11:-123:
+%*15li: -0b1111011:0:11:
+%15li: -1:1:3:-1:
+%*15li: -1:0:3:
+%15li: -0X1:1:5:-1:
+%*15li: -0X1:0:5:
+%15li: -0x1:1:5:-1:
+%*15li: -0x1:0:5:
+%15li: -01:1:4:-1:
+%*15li: -01:0:4:
+%15li: -0B1:1:5:-1:
+%*15li: -0B1:0:5:
+%15li: -0b1:1:5:-1:
+%*15li: -0b1:0:5:
+%15li: -0:1:3:0:
+%*15li: -0:0:3:
+%15li: -0X0:1:5:0:
+%*15li: -0X0:0:5:
+%15li: -0x0:1:5:0:
+%*15li: -0x0:0:5:
+%15li: -00:1:4:0:
+%*15li: -00:0:4:
+%15li: -0B0:1:5:0:
+%*15li: -0B0:0:5:
+%15li: -0b0:1:5:0:
+%*15li: -0b0:0:5:
+%15li: 0:1:2:0:
+%*15li: 0:0:2:
+%15li: 0X0:1:4:0:
+%*15li: 0X0:0:4:
+%15li: 0x0:1:4:0:
+%*15li: 0x0:0:4:
+%15li: 00:1:3:0:
+%*15li: 00:0:3:
+%15li: 0B0:1:4:0:
+%*15li: 0B0:0:4:
+%15li: 0b0:1:4:0:
+%*15li: 0b0:0:4:
+%15li: 1:1:2:1:
+%*15li: 1:0:2:
+%15li: 0X1:1:4:1:
+%*15li: 0X1:0:4:
+%15li: 0x1:1:4:1:
+%*15li: 0x1:0:4:
+%15li: 01:1:3:1:
+%*15li: 01:0:3:
+%15li: 0B1:1:4:1:
+%*15li: 0B1:0:4:
+%15li: 0b1:1:4:1:
+%*15li: 0b1:0:4:
+%15li: 42:1:3:42:
+%*15li: 42:0:3:
+%15li: 0X2a:1:5:42:
+%*15li: 0X2a:0:5:
+%15li: 0x2A:1:5:42:
+%*15li: 0x2A:0:5:
+%15li: 052:1:4:42:
+%*15li: 052:0:4:
+%15li: 0B101010:1:9:42:
+%*15li: 0B101010:0:9:
+%15li: 0b101010:1:9:42:
+%*15li: 0b101010:0:9:
+%15li: 2147483647:1:11:2147483647:
+%*15li: 2147483647:0:11:
+%15li: 0X7fffffff:1:11:2147483647:
+%*15li: 0X7fffffff:0:11:
+%15li: 0x7FFFFFFF:1:11:2147483647:
+%*15li: 0x7FFFFFFF:0:11:
+%15li: 017777777777:1:13:2147483647:
+%*15li: 017777777777:0:13:
+%15li: 0B1111111111111111111111111111111:1:16:8191:
+%*15li: 0B1111111111111111111111111111111:0:16:
+%15li: 0b1111111111111111111111111111111:1:16:8191:
+%*15li: 0b1111111111111111111111111111111:0:16:
+%15li: 2147483648:1:11:2147483647:
+%*15li: 2147483648:0:11:
+%15li: 0X80000000:1:11:2147483647:
+%*15li: 0X80000000:0:11:
+%15li: 0x80000000:1:11:2147483647:
+%*15li: 0x80000000:0:11:
+%15li: 020000000000:1:13:2147483647:
+%*15li: 020000000000:0:13:
+%15li: 0B10000000000000000000000000000000:1:16:4096:
+%*15li: 0B10000000000000000000000000000000:0:16:
+%15li: 0b10000000000000000000000000000000:1:16:4096:
+%*15li: 0b10000000000000000000000000000000:0:16:
+%15li: 2147487889:1:11:2147483647:
+%*15li: 2147487889:0:11:
+%15li: 0X80001091:1:11:2147483647:
+%*15li: 0X80001091:0:11:
+%15li: 0x80001091:1:11:2147483647:
+%*15li: 0x80001091:0:11:
+%15li: 020000010221:1:13:2147483647:
+%*15li: 020000010221:0:13:
+%15li: 0B10000000000000000001000010010001:1:16:4096:
+%*15li: 0B10000000000000000001000010010001:0:16:
+%15li: 0b10000000000000000001000010010001:1:16:4096:
+%*15li: 0b10000000000000000001000010010001:0:16:
+%15li: +0:1:3:0:
+%*15li: +0:0:3:
+%15li: +0X0:1:5:0:
+%*15li: +0X0:0:5:
+%15li: +0x0:1:5:0:
+%*15li: +0x0:0:5:
+%15li: +00:1:4:0:
+%*15li: +00:0:4:
+%15li: +0B0:1:5:0:
+%*15li: +0B0:0:5:
+%15li: +0b0:1:5:0:
+%*15li: +0b0:0:5:
+%15li: +1:1:3:1:
+%*15li: +1:0:3:
+%15li: +0X1:1:5:1:
+%*15li: +0X1:0:5:
+%15li: +0x1:1:5:1:
+%*15li: +0x1:0:5:
+%15li: +01:1:4:1:
+%*15li: +01:0:4:
+%15li: +0B1:1:5:1:
+%*15li: +0B1:0:5:
+%15li: +0b1:1:5:1:
+%*15li: +0b1:0:5:
+%15li: +42:1:4:42:
+%*15li: +42:0:4:
+%15li: +0X2a:1:6:42:
+%*15li: +0X2a:0:6:
+%15li: +0x2A:1:6:42:
+%*15li: +0x2A:0:6:
+%15li: +052:1:5:42:
+%*15li: +052:0:5:
+%15li: +0B101010:1:10:42:
+%*15li: +0B101010:0:10:
+%15li: +0b101010:1:10:42:
+%*15li: +0b101010:0:10:
+%15li: +2147483647:1:12:2147483647:
+%*15li: +2147483647:0:12:
+%15li: +0X7fffffff:1:12:2147483647:
+%*15li: +0X7fffffff:0:12:
+%15li: +0x7FFFFFFF:1:12:2147483647:
+%*15li: +0x7FFFFFFF:0:12:
+%15li: +017777777777:1:14:2147483647:
+%*15li: +017777777777:0:14:
+%15li: +0B1111111111111111111111111111111:1:16:4095:
+%*15li: +0B1111111111111111111111111111111:0:16:
+%15li: +0b1111111111111111111111111111111:1:16:4095:
+%*15li: +0b1111111111111111111111111111111:0:16:
+%15li: +2147483648:1:12:2147483647:
+%*15li: +2147483648:0:12:
+%15li: +0X80000000:1:12:2147483647:
+%*15li: +0X80000000:0:12:
+%15li: +0x80000000:1:12:2147483647:
+%*15li: +0x80000000:0:12:
+%15li: +020000000000:1:14:2147483647:
+%*15li: +020000000000:0:14:
+%15li: +0B10000000000000000000000000000000:1:16:2048:
+%*15li: +0B10000000000000000000000000000000:0:16:
+%15li: +0b10000000000000000000000000000000:1:16:2048:
+%*15li: +0b10000000000000000000000000000000:0:16:
+%15li: +2147487889:1:12:2147483647:
+%*15li: +2147487889:0:12:
+%15li: +0X80001091:1:12:2147483647:
+%*15li: +0X80001091:0:12:
+%15li: +0x80001091:1:12:2147483647:
+%*15li: +0x80001091:0:12:
+%15li: +020000010221:1:14:2147483647:
+%*15li: +020000010221:0:14:
+%15li: +0B10000000000000000001000010010001:1:16:2048:
+%*15li: +0B10000000000000000001000010010001:0:16:
+%15li: +0b10000000000000000001000010010001:1:16:2048:
+%*15li: +0b10000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input
new file mode 100644
index 0000000..42958cf
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input
@@ -0,0 +1,644 @@
+%b::0:-1:
+%*b::0:-1:
+%b:-1111011:1:8:4294967173:
+%*b:-1111011:0:8:
+%b:-0B1111011:1:10:4294967173:
+%*b:-0B1111011:0:10:
+%b:-0b1111011:1:10:4294967173:
+%*b:-0b1111011:0:10:
+%b:-1:1:2:4294967295:
+%*b:-1:0:2:
+%b:-0B1:1:4:4294967295:
+%*b:-0B1:0:4:
+%b:-0b1:1:4:4294967295:
+%*b:-0b1:0:4:
+%b:-0:1:2:0:
+%*b:-0:0:2:
+%b:-0B0:1:4:0:
+%*b:-0B0:0:4:
+%b:-0b0:1:4:0:
+%*b:-0b0:0:4:
+%b:0:1:1:0:
+%*b:0:0:1:
+%b:0B0:1:3:0:
+%*b:0B0:0:3:
+%b:0b0:1:3:0:
+%*b:0b0:0:3:
+%b:1:1:1:1:
+%*b:1:0:1:
+%b:0B1:1:3:1:
+%*b:0B1:0:3:
+%b:0b1:1:3:1:
+%*b:0b1:0:3:
+%b:101010:1:6:42:
+%*b:101010:0:6:
+%b:0B101010:1:8:42:
+%*b:0B101010:0:8:
+%b:0b101010:1:8:42:
+%*b:0b101010:0:8:
+%b:11111111111111111111111111111111:1:32:4294967295:
+%*b:11111111111111111111111111111111:0:32:
+%b:0B11111111111111111111111111111111:1:34:4294967295:
+%*b:0B11111111111111111111111111111111:0:34:
+%b:0b11111111111111111111111111111111:1:34:4294967295:
+%*b:0b11111111111111111111111111111111:0:34:
+%b:100000000000000000000000000000000:1:33:4294967295:
+%*b:100000000000000000000000000000000:0:33:
+%b:0B100000000000000000000000000000000:1:35:4294967295:
+%*b:0B100000000000000000000000000000000:0:35:
+%b:0b100000000000000000000000000000000:1:35:4294967295:
+%*b:0b100000000000000000000000000000000:0:35:
+%b:100000000000000000001000010010001:1:33:4294967295:
+%*b:100000000000000000001000010010001:0:33:
+%b:0B100000000000000000001000010010001:1:35:4294967295:
+%*b:0B100000000000000000001000010010001:0:35:
+%b:0b100000000000000000001000010010001:1:35:4294967295:
+%*b:0b100000000000000000001000010010001:0:35:
+%b:+0:1:2:0:
+%*b:+0:0:2:
+%b:+0B0:1:4:0:
+%*b:+0B0:0:4:
+%b:+0b0:1:4:0:
+%*b:+0b0:0:4:
+%b:+1:1:2:1:
+%*b:+1:0:2:
+%b:+0B1:1:4:1:
+%*b:+0B1:0:4:
+%b:+0b1:1:4:1:
+%*b:+0b1:0:4:
+%b:+101010:1:7:42:
+%*b:+101010:0:7:
+%b:+0B101010:1:9:42:
+%*b:+0B101010:0:9:
+%b:+0b101010:1:9:42:
+%*b:+0b101010:0:9:
+%b:+11111111111111111111111111111111:1:33:4294967295:
+%*b:+11111111111111111111111111111111:0:33:
+%b:+0B11111111111111111111111111111111:1:35:4294967295:
+%*b:+0B11111111111111111111111111111111:0:35:
+%b:+0b11111111111111111111111111111111:1:35:4294967295:
+%*b:+0b11111111111111111111111111111111:0:35:
+%b:+100000000000000000000000000000000:1:34:4294967295:
+%*b:+100000000000000000000000000000000:0:34:
+%b:+0B100000000000000000000000000000000:1:36:4294967295:
+%*b:+0B100000000000000000000000000000000:0:36:
+%b:+0b100000000000000000000000000000000:1:36:4294967295:
+%*b:+0b100000000000000000000000000000000:0:36:
+%b:+100000000000000000001000010010001:1:34:4294967295:
+%*b:+100000000000000000001000010010001:0:34:
+%b:+0B100000000000000000001000010010001:1:36:4294967295:
+%*b:+0B100000000000000000001000010010001:0:36:
+%b:+0b100000000000000000001000010010001:1:36:4294967295:
+%*b:+0b100000000000000000001000010010001:0:36:
+%1b::0:-1:
+%*1b::0:-1:
+%1b:-1111011:0:-1:
+%*1b:-1111011:0:-1:
+%1b:-0B1111011:0:-1:
+%*1b:-0B1111011:0:-1:
+%1b:-0b1111011:0:-1:
+%*1b:-0b1111011:0:-1:
+%1b:-1:0:-1:
+%*1b:-1:0:-1:
+%1b:-0B1:0:-1:
+%*1b:-0B1:0:-1:
+%1b:-0b1:0:-1:
+%*1b:-0b1:0:-1:
+%1b:-0:0:-1:
+%*1b:-0:0:-1:
+%1b:-0B0:0:-1:
+%*1b:-0B0:0:-1:
+%1b:-0b0:0:-1:
+%*1b:-0b0:0:-1:
+%1b:0:1:1:0:
+%*1b:0:0:1:
+%1b:0B0:1:1:0:
+%*1b:0B0:0:1:
+%1b:0b0:1:1:0:
+%*1b:0b0:0:1:
+%1b:1:1:1:1:
+%*1b:1:0:1:
+%1b:0B1:1:1:0:
+%*1b:0B1:0:1:
+%1b:0b1:1:1:0:
+%*1b:0b1:0:1:
+%1b:101010:1:1:1:
+%*1b:101010:0:1:
+%1b:0B101010:1:1:0:
+%*1b:0B101010:0:1:
+%1b:0b101010:1:1:0:
+%*1b:0b101010:0:1:
+%1b:11111111111111111111111111111111:1:1:1:
+%*1b:11111111111111111111111111111111:0:1:
+%1b:0B11111111111111111111111111111111:1:1:0:
+%*1b:0B11111111111111111111111111111111:0:1:
+%1b:0b11111111111111111111111111111111:1:1:0:
+%*1b:0b11111111111111111111111111111111:0:1:
+%1b:100000000000000000000000000000000:1:1:1:
+%*1b:100000000000000000000000000000000:0:1:
+%1b:0B100000000000000000000000000000000:1:1:0:
+%*1b:0B100000000000000000000000000000000:0:1:
+%1b:0b100000000000000000000000000000000:1:1:0:
+%*1b:0b100000000000000000000000000000000:0:1:
+%1b:100000000000000000001000010010001:1:1:1:
+%*1b:100000000000000000001000010010001:0:1:
+%1b:0B100000000000000000001000010010001:1:1:0:
+%*1b:0B100000000000000000001000010010001:0:1:
+%1b:0b100000000000000000001000010010001:1:1:0:
+%*1b:0b100000000000000000001000010010001:0:1:
+%1b:+0:0:-1:
+%*1b:+0:0:-1:
+%1b:+0B0:0:-1:
+%*1b:+0B0:0:-1:
+%1b:+0b0:0:-1:
+%*1b:+0b0:0:-1:
+%1b:+1:0:-1:
+%*1b:+1:0:-1:
+%1b:+0B1:0:-1:
+%*1b:+0B1:0:-1:
+%1b:+0b1:0:-1:
+%*1b:+0b1:0:-1:
+%1b:+101010:0:-1:
+%*1b:+101010:0:-1:
+%1b:+0B101010:0:-1:
+%*1b:+0B101010:0:-1:
+%1b:+0b101010:0:-1:
+%*1b:+0b101010:0:-1:
+%1b:+11111111111111111111111111111111:0:-1:
+%*1b:+11111111111111111111111111111111:0:-1:
+%1b:+0B11111111111111111111111111111111:0:-1:
+%*1b:+0B11111111111111111111111111111111:0:-1:
+%1b:+0b11111111111111111111111111111111:0:-1:
+%*1b:+0b11111111111111111111111111111111:0:-1:
+%1b:+100000000000000000000000000000000:0:-1:
+%*1b:+100000000000000000000000000000000:0:-1:
+%1b:+0B100000000000000000000000000000000:0:-1:
+%*1b:+0B100000000000000000000000000000000:0:-1:
+%1b:+0b100000000000000000000000000000000:0:-1:
+%*1b:+0b100000000000000000000000000000000:0:-1:
+%1b:+100000000000000000001000010010001:0:-1:
+%*1b:+100000000000000000001000010010001:0:-1:
+%1b:+0B100000000000000000001000010010001:0:-1:
+%*1b:+0B100000000000000000001000010010001:0:-1:
+%1b:+0b100000000000000000001000010010001:0:-1:
+%*1b:+0b100000000000000000001000010010001:0:-1:
+%2b::0:-1:
+%*2b::0:-1:
+%2b:-1111011:1:2:4294967295:
+%*2b:-1111011:0:2:
+%2b:-0B1111011:1:2:0:
+%*2b:-0B1111011:0:2:
+%2b:-0b1111011:1:2:0:
+%*2b:-0b1111011:0:2:
+%2b:-1:1:2:4294967295:
+%*2b:-1:0:2:
+%2b:-0B1:1:2:0:
+%*2b:-0B1:0:2:
+%2b:-0b1:1:2:0:
+%*2b:-0b1:0:2:
+%2b:-0:1:2:0:
+%*2b:-0:0:2:
+%2b:-0B0:1:2:0:
+%*2b:-0B0:0:2:
+%2b:-0b0:1:2:0:
+%*2b:-0b0:0:2:
+%2b:0:1:1:0:
+%*2b:0:0:1:
+%2b:0B0:0:-1:
+%*2b:0B0:0:-1:
+%2b:0b0:0:-1:
+%*2b:0b0:0:-1:
+%2b:1:1:1:1:
+%*2b:1:0:1:
+%2b:0B1:0:-1:
+%*2b:0B1:0:-1:
+%2b:0b1:0:-1:
+%*2b:0b1:0:-1:
+%2b:101010:1:2:2:
+%*2b:101010:0:2:
+%2b:0B101010:0:-1:
+%*2b:0B101010:0:-1:
+%2b:0b101010:0:-1:
+%*2b:0b101010:0:-1:
+%2b:11111111111111111111111111111111:1:2:3:
+%*2b:11111111111111111111111111111111:0:2:
+%2b:0B11111111111111111111111111111111:0:-1:
+%*2b:0B11111111111111111111111111111111:0:-1:
+%2b:0b11111111111111111111111111111111:0:-1:
+%*2b:0b11111111111111111111111111111111:0:-1:
+%2b:100000000000000000000000000000000:1:2:2:
+%*2b:100000000000000000000000000000000:0:2:
+%2b:0B100000000000000000000000000000000:0:-1:
+%*2b:0B100000000000000000000000000000000:0:-1:
+%2b:0b100000000000000000000000000000000:0:-1:
+%*2b:0b100000000000000000000000000000000:0:-1:
+%2b:100000000000000000001000010010001:1:2:2:
+%*2b:100000000000000000001000010010001:0:2:
+%2b:0B100000000000000000001000010010001:0:-1:
+%*2b:0B100000000000000000001000010010001:0:-1:
+%2b:0b100000000000000000001000010010001:0:-1:
+%*2b:0b100000000000000000001000010010001:0:-1:
+%2b:+0:1:2:0:
+%*2b:+0:0:2:
+%2b:+0B0:1:2:0:
+%*2b:+0B0:0:2:
+%2b:+0b0:1:2:0:
+%*2b:+0b0:0:2:
+%2b:+1:1:2:1:
+%*2b:+1:0:2:
+%2b:+0B1:1:2:0:
+%*2b:+0B1:0:2:
+%2b:+0b1:1:2:0:
+%*2b:+0b1:0:2:
+%2b:+101010:1:2:1:
+%*2b:+101010:0:2:
+%2b:+0B101010:1:2:0:
+%*2b:+0B101010:0:2:
+%2b:+0b101010:1:2:0:
+%*2b:+0b101010:0:2:
+%2b:+11111111111111111111111111111111:1:2:1:
+%*2b:+11111111111111111111111111111111:0:2:
+%2b:+0B11111111111111111111111111111111:1:2:0:
+%*2b:+0B11111111111111111111111111111111:0:2:
+%2b:+0b11111111111111111111111111111111:1:2:0:
+%*2b:+0b11111111111111111111111111111111:0:2:
+%2b:+100000000000000000000000000000000:1:2:1:
+%*2b:+100000000000000000000000000000000:0:2:
+%2b:+0B100000000000000000000000000000000:1:2:0:
+%*2b:+0B100000000000000000000000000000000:0:2:
+%2b:+0b100000000000000000000000000000000:1:2:0:
+%*2b:+0b100000000000000000000000000000000:0:2:
+%2b:+100000000000000000001000010010001:1:2:1:
+%*2b:+100000000000000000001000010010001:0:2:
+%2b:+0B100000000000000000001000010010001:1:2:0:
+%*2b:+0B100000000000000000001000010010001:0:2:
+%2b:+0b100000000000000000001000010010001:1:2:0:
+%*2b:+0b100000000000000000001000010010001:0:2:
+%8b::0:-1:
+%*8b::0:-1:
+%8b:-1111011:1:8:4294967173:
+%*8b:-1111011:0:8:
+%8b:-0B1111011:1:8:4294967266:
+%*8b:-0B1111011:0:8:
+%8b:-0b1111011:1:8:4294967266:
+%*8b:-0b1111011:0:8:
+%8b:-1:1:2:4294967295:
+%*8b:-1:0:2:
+%8b:-0B1:1:4:4294967295:
+%*8b:-0B1:0:4:
+%8b:-0b1:1:4:4294967295:
+%*8b:-0b1:0:4:
+%8b:-0:1:2:0:
+%*8b:-0:0:2:
+%8b:-0B0:1:4:0:
+%*8b:-0B0:0:4:
+%8b:-0b0:1:4:0:
+%*8b:-0b0:0:4:
+%8b:0:1:1:0:
+%*8b:0:0:1:
+%8b:0B0:1:3:0:
+%*8b:0B0:0:3:
+%8b:0b0:1:3:0:
+%*8b:0b0:0:3:
+%8b:1:1:1:1:
+%*8b:1:0:1:
+%8b:0B1:1:3:1:
+%*8b:0B1:0:3:
+%8b:0b1:1:3:1:
+%*8b:0b1:0:3:
+%8b:101010:1:6:42:
+%*8b:101010:0:6:
+%8b:0B101010:1:8:42:
+%*8b:0B101010:0:8:
+%8b:0b101010:1:8:42:
+%*8b:0b101010:0:8:
+%8b:11111111111111111111111111111111:1:8:255:
+%*8b:11111111111111111111111111111111:0:8:
+%8b:0B11111111111111111111111111111111:1:8:63:
+%*8b:0B11111111111111111111111111111111:0:8:
+%8b:0b11111111111111111111111111111111:1:8:63:
+%*8b:0b11111111111111111111111111111111:0:8:
+%8b:100000000000000000000000000000000:1:8:128:
+%*8b:100000000000000000000000000000000:0:8:
+%8b:0B100000000000000000000000000000000:1:8:32:
+%*8b:0B100000000000000000000000000000000:0:8:
+%8b:0b100000000000000000000000000000000:1:8:32:
+%*8b:0b100000000000000000000000000000000:0:8:
+%8b:100000000000000000001000010010001:1:8:128:
+%*8b:100000000000000000001000010010001:0:8:
+%8b:0B100000000000000000001000010010001:1:8:32:
+%*8b:0B100000000000000000001000010010001:0:8:
+%8b:0b100000000000000000001000010010001:1:8:32:
+%*8b:0b100000000000000000001000010010001:0:8:
+%8b:+0:1:2:0:
+%*8b:+0:0:2:
+%8b:+0B0:1:4:0:
+%*8b:+0B0:0:4:
+%8b:+0b0:1:4:0:
+%*8b:+0b0:0:4:
+%8b:+1:1:2:1:
+%*8b:+1:0:2:
+%8b:+0B1:1:4:1:
+%*8b:+0B1:0:4:
+%8b:+0b1:1:4:1:
+%*8b:+0b1:0:4:
+%8b:+101010:1:7:42:
+%*8b:+101010:0:7:
+%8b:+0B101010:1:8:21:
+%*8b:+0B101010:0:8:
+%8b:+0b101010:1:8:21:
+%*8b:+0b101010:0:8:
+%8b:+11111111111111111111111111111111:1:8:127:
+%*8b:+11111111111111111111111111111111:0:8:
+%8b:+0B11111111111111111111111111111111:1:8:31:
+%*8b:+0B11111111111111111111111111111111:0:8:
+%8b:+0b11111111111111111111111111111111:1:8:31:
+%*8b:+0b11111111111111111111111111111111:0:8:
+%8b:+100000000000000000000000000000000:1:8:64:
+%*8b:+100000000000000000000000000000000:0:8:
+%8b:+0B100000000000000000000000000000000:1:8:16:
+%*8b:+0B100000000000000000000000000000000:0:8:
+%8b:+0b100000000000000000000000000000000:1:8:16:
+%*8b:+0b100000000000000000000000000000000:0:8:
+%8b:+100000000000000000001000010010001:1:8:64:
+%*8b:+100000000000000000001000010010001:0:8:
+%8b:+0B100000000000000000001000010010001:1:8:16:
+%*8b:+0B100000000000000000001000010010001:0:8:
+%8b:+0b100000000000000000001000010010001:1:8:16:
+%*8b:+0b100000000000000000001000010010001:0:8:
+%15b::0:-1:
+%*15b::0:-1:
+%15b:-1111011:1:8:4294967173:
+%*15b:-1111011:0:8:
+%15b:-0B1111011:1:10:4294967173:
+%*15b:-0B1111011:0:10:
+%15b:-0b1111011:1:10:4294967173:
+%*15b:-0b1111011:0:10:
+%15b:-1:1:2:4294967295:
+%*15b:-1:0:2:
+%15b:-0B1:1:4:4294967295:
+%*15b:-0B1:0:4:
+%15b:-0b1:1:4:4294967295:
+%*15b:-0b1:0:4:
+%15b:-0:1:2:0:
+%*15b:-0:0:2:
+%15b:-0B0:1:4:0:
+%*15b:-0B0:0:4:
+%15b:-0b0:1:4:0:
+%*15b:-0b0:0:4:
+%15b:0:1:1:0:
+%*15b:0:0:1:
+%15b:0B0:1:3:0:
+%*15b:0B0:0:3:
+%15b:0b0:1:3:0:
+%*15b:0b0:0:3:
+%15b:1:1:1:1:
+%*15b:1:0:1:
+%15b:0B1:1:3:1:
+%*15b:0B1:0:3:
+%15b:0b1:1:3:1:
+%*15b:0b1:0:3:
+%15b:101010:1:6:42:
+%*15b:101010:0:6:
+%15b:0B101010:1:8:42:
+%*15b:0B101010:0:8:
+%15b:0b101010:1:8:42:
+%*15b:0b101010:0:8:
+%15b:11111111111111111111111111111111:1:15:32767:
+%*15b:11111111111111111111111111111111:0:15:
+%15b:0B11111111111111111111111111111111:1:15:8191:
+%*15b:0B11111111111111111111111111111111:0:15:
+%15b:0b11111111111111111111111111111111:1:15:8191:
+%*15b:0b11111111111111111111111111111111:0:15:
+%15b:100000000000000000000000000000000:1:15:16384:
+%*15b:100000000000000000000000000000000:0:15:
+%15b:0B100000000000000000000000000000000:1:15:4096:
+%*15b:0B100000000000000000000000000000000:0:15:
+%15b:0b100000000000000000000000000000000:1:15:4096:
+%*15b:0b100000000000000000000000000000000:0:15:
+%15b:100000000000000000001000010010001:1:15:16384:
+%*15b:100000000000000000001000010010001:0:15:
+%15b:0B100000000000000000001000010010001:1:15:4096:
+%*15b:0B100000000000000000001000010010001:0:15:
+%15b:0b100000000000000000001000010010001:1:15:4096:
+%*15b:0b100000000000000000001000010010001:0:15:
+%15b:+0:1:2:0:
+%*15b:+0:0:2:
+%15b:+0B0:1:4:0:
+%*15b:+0B0:0:4:
+%15b:+0b0:1:4:0:
+%*15b:+0b0:0:4:
+%15b:+1:1:2:1:
+%*15b:+1:0:2:
+%15b:+0B1:1:4:1:
+%*15b:+0B1:0:4:
+%15b:+0b1:1:4:1:
+%*15b:+0b1:0:4:
+%15b:+101010:1:7:42:
+%*15b:+101010:0:7:
+%15b:+0B101010:1:9:42:
+%*15b:+0B101010:0:9:
+%15b:+0b101010:1:9:42:
+%*15b:+0b101010:0:9:
+%15b:+11111111111111111111111111111111:1:15:16383:
+%*15b:+11111111111111111111111111111111:0:15:
+%15b:+0B11111111111111111111111111111111:1:15:4095:
+%*15b:+0B11111111111111111111111111111111:0:15:
+%15b:+0b11111111111111111111111111111111:1:15:4095:
+%*15b:+0b11111111111111111111111111111111:0:15:
+%15b:+100000000000000000000000000000000:1:15:8192:
+%*15b:+100000000000000000000000000000000:0:15:
+%15b:+0B100000000000000000000000000000000:1:15:2048:
+%*15b:+0B100000000000000000000000000000000:0:15:
+%15b:+0b100000000000000000000000000000000:1:15:2048:
+%*15b:+0b100000000000000000000000000000000:0:15:
+%15b:+100000000000000000001000010010001:1:15:8192:
+%*15b:+100000000000000000001000010010001:0:15:
+%15b:+0B100000000000000000001000010010001:1:15:2048:
+%*15b:+0B100000000000000000001000010010001:0:15:
+%15b:+0b100000000000000000001000010010001:1:15:2048:
+%*15b:+0b100000000000000000001000010010001:0:15:
+%2b: :0:-1:
+%*2b: :0:-1:
+%2b: -1111011:1:3:4294967295:
+%*2b: -1111011:0:3:
+%2b: -0B1111011:1:3:0:
+%*2b: -0B1111011:0:3:
+%2b: -0b1111011:1:3:0:
+%*2b: -0b1111011:0:3:
+%2b: -1:1:3:4294967295:
+%*2b: -1:0:3:
+%2b: -0B1:1:3:0:
+%*2b: -0B1:0:3:
+%2b: -0b1:1:3:0:
+%*2b: -0b1:0:3:
+%2b: -0:1:3:0:
+%*2b: -0:0:3:
+%2b: -0B0:1:3:0:
+%*2b: -0B0:0:3:
+%2b: -0b0:1:3:0:
+%*2b: -0b0:0:3:
+%2b: 0:1:2:0:
+%*2b: 0:0:2:
+%2b: 0B0:0:-1:
+%*2b: 0B0:0:-1:
+%2b: 0b0:0:-1:
+%*2b: 0b0:0:-1:
+%2b: 1:1:2:1:
+%*2b: 1:0:2:
+%2b: 0B1:0:-1:
+%*2b: 0B1:0:-1:
+%2b: 0b1:0:-1:
+%*2b: 0b1:0:-1:
+%2b: 101010:1:3:2:
+%*2b: 101010:0:3:
+%2b: 0B101010:0:-1:
+%*2b: 0B101010:0:-1:
+%2b: 0b101010:0:-1:
+%*2b: 0b101010:0:-1:
+%2b: 11111111111111111111111111111111:1:3:3:
+%*2b: 11111111111111111111111111111111:0:3:
+%2b: 0B11111111111111111111111111111111:0:-1:
+%*2b: 0B11111111111111111111111111111111:0:-1:
+%2b: 0b11111111111111111111111111111111:0:-1:
+%*2b: 0b11111111111111111111111111111111:0:-1:
+%2b: 100000000000000000000000000000000:1:3:2:
+%*2b: 100000000000000000000000000000000:0:3:
+%2b: 0B100000000000000000000000000000000:0:-1:
+%*2b: 0B100000000000000000000000000000000:0:-1:
+%2b: 0b100000000000000000000000000000000:0:-1:
+%*2b: 0b100000000000000000000000000000000:0:-1:
+%2b: 100000000000000000001000010010001:1:3:2:
+%*2b: 100000000000000000001000010010001:0:3:
+%2b: 0B100000000000000000001000010010001:0:-1:
+%*2b: 0B100000000000000000001000010010001:0:-1:
+%2b: 0b100000000000000000001000010010001:0:-1:
+%*2b: 0b100000000000000000001000010010001:0:-1:
+%2b: +0:1:3:0:
+%*2b: +0:0:3:
+%2b: +0B0:1:3:0:
+%*2b: +0B0:0:3:
+%2b: +0b0:1:3:0:
+%*2b: +0b0:0:3:
+%2b: +1:1:3:1:
+%*2b: +1:0:3:
+%2b: +0B1:1:3:0:
+%*2b: +0B1:0:3:
+%2b: +0b1:1:3:0:
+%*2b: +0b1:0:3:
+%2b: +101010:1:3:1:
+%*2b: +101010:0:3:
+%2b: +0B101010:1:3:0:
+%*2b: +0B101010:0:3:
+%2b: +0b101010:1:3:0:
+%*2b: +0b101010:0:3:
+%2b: +11111111111111111111111111111111:1:3:1:
+%*2b: +11111111111111111111111111111111:0:3:
+%2b: +0B11111111111111111111111111111111:1:3:0:
+%*2b: +0B11111111111111111111111111111111:0:3:
+%2b: +0b11111111111111111111111111111111:1:3:0:
+%*2b: +0b11111111111111111111111111111111:0:3:
+%2b: +100000000000000000000000000000000:1:3:1:
+%*2b: +100000000000000000000000000000000:0:3:
+%2b: +0B100000000000000000000000000000000:1:3:0:
+%*2b: +0B100000000000000000000000000000000:0:3:
+%2b: +0b100000000000000000000000000000000:1:3:0:
+%*2b: +0b100000000000000000000000000000000:0:3:
+%2b: +100000000000000000001000010010001:1:3:1:
+%*2b: +100000000000000000001000010010001:0:3:
+%2b: +0B100000000000000000001000010010001:1:3:0:
+%*2b: +0B100000000000000000001000010010001:0:3:
+%2b: +0b100000000000000000001000010010001:1:3:0:
+%*2b: +0b100000000000000000001000010010001:0:3:
+%15b: :0:-1:
+%*15b: :0:-1:
+%15b: -1111011:1:9:4294967173:
+%*15b: -1111011:0:9:
+%15b: -0B1111011:1:11:4294967173:
+%*15b: -0B1111011:0:11:
+%15b: -0b1111011:1:11:4294967173:
+%*15b: -0b1111011:0:11:
+%15b: -1:1:3:4294967295:
+%*15b: -1:0:3:
+%15b: -0B1:1:5:4294967295:
+%*15b: -0B1:0:5:
+%15b: -0b1:1:5:4294967295:
+%*15b: -0b1:0:5:
+%15b: -0:1:3:0:
+%*15b: -0:0:3:
+%15b: -0B0:1:5:0:
+%*15b: -0B0:0:5:
+%15b: -0b0:1:5:0:
+%*15b: -0b0:0:5:
+%15b: 0:1:2:0:
+%*15b: 0:0:2:
+%15b: 0B0:1:4:0:
+%*15b: 0B0:0:4:
+%15b: 0b0:1:4:0:
+%*15b: 0b0:0:4:
+%15b: 1:1:2:1:
+%*15b: 1:0:2:
+%15b: 0B1:1:4:1:
+%*15b: 0B1:0:4:
+%15b: 0b1:1:4:1:
+%*15b: 0b1:0:4:
+%15b: 101010:1:7:42:
+%*15b: 101010:0:7:
+%15b: 0B101010:1:9:42:
+%*15b: 0B101010:0:9:
+%15b: 0b101010:1:9:42:
+%*15b: 0b101010:0:9:
+%15b: 11111111111111111111111111111111:1:16:32767:
+%*15b: 11111111111111111111111111111111:0:16:
+%15b: 0B11111111111111111111111111111111:1:16:8191:
+%*15b: 0B11111111111111111111111111111111:0:16:
+%15b: 0b11111111111111111111111111111111:1:16:8191:
+%*15b: 0b11111111111111111111111111111111:0:16:
+%15b: 100000000000000000000000000000000:1:16:16384:
+%*15b: 100000000000000000000000000000000:0:16:
+%15b: 0B100000000000000000000000000000000:1:16:4096:
+%*15b: 0B100000000000000000000000000000000:0:16:
+%15b: 0b100000000000000000000000000000000:1:16:4096:
+%*15b: 0b100000000000000000000000000000000:0:16:
+%15b: 100000000000000000001000010010001:1:16:16384:
+%*15b: 100000000000000000001000010010001:0:16:
+%15b: 0B100000000000000000001000010010001:1:16:4096:
+%*15b: 0B100000000000000000001000010010001:0:16:
+%15b: 0b100000000000000000001000010010001:1:16:4096:
+%*15b: 0b100000000000000000001000010010001:0:16:
+%15b: +0:1:3:0:
+%*15b: +0:0:3:
+%15b: +0B0:1:5:0:
+%*15b: +0B0:0:5:
+%15b: +0b0:1:5:0:
+%*15b: +0b0:0:5:
+%15b: +1:1:3:1:
+%*15b: +1:0:3:
+%15b: +0B1:1:5:1:
+%*15b: +0B1:0:5:
+%15b: +0b1:1:5:1:
+%*15b: +0b1:0:5:
+%15b: +101010:1:8:42:
+%*15b: +101010:0:8:
+%15b: +0B101010:1:10:42:
+%*15b: +0B101010:0:10:
+%15b: +0b101010:1:10:42:
+%*15b: +0b101010:0:10:
+%15b: +11111111111111111111111111111111:1:16:16383:
+%*15b: +11111111111111111111111111111111:0:16:
+%15b: +0B11111111111111111111111111111111:1:16:4095:
+%*15b: +0B11111111111111111111111111111111:0:16:
+%15b: +0b11111111111111111111111111111111:1:16:4095:
+%*15b: +0b11111111111111111111111111111111:0:16:
+%15b: +100000000000000000000000000000000:1:16:8192:
+%*15b: +100000000000000000000000000000000:0:16:
+%15b: +0B100000000000000000000000000000000:1:16:2048:
+%*15b: +0B100000000000000000000000000000000:0:16:
+%15b: +0b100000000000000000000000000000000:1:16:2048:
+%*15b: +0b100000000000000000000000000000000:0:16:
+%15b: +100000000000000000001000010010001:1:16:8192:
+%*15b: +100000000000000000001000010010001:0:16:
+%15b: +0B100000000000000000001000010010001:1:16:2048:
+%*15b: +0B100000000000000000001000010010001:0:16:
+%15b: +0b100000000000000000001000010010001:1:16:2048:
+%*15b: +0b100000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-o.input b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input
new file mode 100644
index 0000000..1762194
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input
@@ -0,0 +1,434 @@
+%o::0:-1:
+%*o::0:-1:
+%o:-173:1:4:4294967173:
+%*o:-173:0:4:
+%o:-0173:1:5:4294967173:
+%*o:-0173:0:5:
+%o:-1:1:2:4294967295:
+%*o:-1:0:2:
+%o:-01:1:3:4294967295:
+%*o:-01:0:3:
+%o:-0:1:2:0:
+%*o:-0:0:2:
+%o:-00:1:3:0:
+%*o:-00:0:3:
+%o:0:1:1:0:
+%*o:0:0:1:
+%o:00:1:2:0:
+%*o:00:0:2:
+%o:1:1:1:1:
+%*o:1:0:1:
+%o:01:1:2:1:
+%*o:01:0:2:
+%o:52:1:2:42:
+%*o:52:0:2:
+%o:052:1:3:42:
+%*o:052:0:3:
+%o:37777777777:1:11:4294967295:
+%*o:37777777777:0:11:
+%o:037777777777:1:12:4294967295:
+%*o:037777777777:0:12:
+%o:40000000000:1:11:4294967295:
+%*o:40000000000:0:11:
+%o:040000000000:1:12:4294967295:
+%*o:040000000000:0:12:
+%o:40000010221:1:11:4294967295:
+%*o:40000010221:0:11:
+%o:040000010221:1:12:4294967295:
+%*o:040000010221:0:12:
+%o:+0:1:2:0:
+%*o:+0:0:2:
+%o:+00:1:3:0:
+%*o:+00:0:3:
+%o:+1:1:2:1:
+%*o:+1:0:2:
+%o:+01:1:3:1:
+%*o:+01:0:3:
+%o:+52:1:3:42:
+%*o:+52:0:3:
+%o:+052:1:4:42:
+%*o:+052:0:4:
+%o:+37777777777:1:12:4294967295:
+%*o:+37777777777:0:12:
+%o:+037777777777:1:13:4294967295:
+%*o:+037777777777:0:13:
+%o:+40000000000:1:12:4294967295:
+%*o:+40000000000:0:12:
+%o:+040000000000:1:13:4294967295:
+%*o:+040000000000:0:13:
+%o:+40000010221:1:12:4294967295:
+%*o:+40000010221:0:12:
+%o:+040000010221:1:13:4294967295:
+%*o:+040000010221:0:13:
+%1o::0:-1:
+%*1o::0:-1:
+%1o:-173:0:-1:
+%*1o:-173:0:-1:
+%1o:-0173:0:-1:
+%*1o:-0173:0:-1:
+%1o:-1:0:-1:
+%*1o:-1:0:-1:
+%1o:-01:0:-1:
+%*1o:-01:0:-1:
+%1o:-0:0:-1:
+%*1o:-0:0:-1:
+%1o:-00:0:-1:
+%*1o:-00:0:-1:
+%1o:0:1:1:0:
+%*1o:0:0:1:
+%1o:00:1:1:0:
+%*1o:00:0:1:
+%1o:1:1:1:1:
+%*1o:1:0:1:
+%1o:01:1:1:0:
+%*1o:01:0:1:
+%1o:52:1:1:5:
+%*1o:52:0:1:
+%1o:052:1:1:0:
+%*1o:052:0:1:
+%1o:37777777777:1:1:3:
+%*1o:37777777777:0:1:
+%1o:037777777777:1:1:0:
+%*1o:037777777777:0:1:
+%1o:40000000000:1:1:4:
+%*1o:40000000000:0:1:
+%1o:040000000000:1:1:0:
+%*1o:040000000000:0:1:
+%1o:40000010221:1:1:4:
+%*1o:40000010221:0:1:
+%1o:040000010221:1:1:0:
+%*1o:040000010221:0:1:
+%1o:+0:0:-1:
+%*1o:+0:0:-1:
+%1o:+00:0:-1:
+%*1o:+00:0:-1:
+%1o:+1:0:-1:
+%*1o:+1:0:-1:
+%1o:+01:0:-1:
+%*1o:+01:0:-1:
+%1o:+52:0:-1:
+%*1o:+52:0:-1:
+%1o:+052:0:-1:
+%*1o:+052:0:-1:
+%1o:+37777777777:0:-1:
+%*1o:+37777777777:0:-1:
+%1o:+037777777777:0:-1:
+%*1o:+037777777777:0:-1:
+%1o:+40000000000:0:-1:
+%*1o:+40000000000:0:-1:
+%1o:+040000000000:0:-1:
+%*1o:+040000000000:0:-1:
+%1o:+40000010221:0:-1:
+%*1o:+40000010221:0:-1:
+%1o:+040000010221:0:-1:
+%*1o:+040000010221:0:-1:
+%2o::0:-1:
+%*2o::0:-1:
+%2o:-173:1:2:4294967295:
+%*2o:-173:0:2:
+%2o:-0173:1:2:0:
+%*2o:-0173:0:2:
+%2o:-1:1:2:4294967295:
+%*2o:-1:0:2:
+%2o:-01:1:2:0:
+%*2o:-01:0:2:
+%2o:-0:1:2:0:
+%*2o:-0:0:2:
+%2o:-00:1:2:0:
+%*2o:-00:0:2:
+%2o:0:1:1:0:
+%*2o:0:0:1:
+%2o:00:1:2:0:
+%*2o:00:0:2:
+%2o:1:1:1:1:
+%*2o:1:0:1:
+%2o:01:1:2:1:
+%*2o:01:0:2:
+%2o:52:1:2:42:
+%*2o:52:0:2:
+%2o:052:1:2:5:
+%*2o:052:0:2:
+%2o:37777777777:1:2:31:
+%*2o:37777777777:0:2:
+%2o:037777777777:1:2:3:
+%*2o:037777777777:0:2:
+%2o:40000000000:1:2:32:
+%*2o:40000000000:0:2:
+%2o:040000000000:1:2:4:
+%*2o:040000000000:0:2:
+%2o:40000010221:1:2:32:
+%*2o:40000010221:0:2:
+%2o:040000010221:1:2:4:
+%*2o:040000010221:0:2:
+%2o:+0:1:2:0:
+%*2o:+0:0:2:
+%2o:+00:1:2:0:
+%*2o:+00:0:2:
+%2o:+1:1:2:1:
+%*2o:+1:0:2:
+%2o:+01:1:2:0:
+%*2o:+01:0:2:
+%2o:+52:1:2:5:
+%*2o:+52:0:2:
+%2o:+052:1:2:0:
+%*2o:+052:0:2:
+%2o:+37777777777:1:2:3:
+%*2o:+37777777777:0:2:
+%2o:+037777777777:1:2:0:
+%*2o:+037777777777:0:2:
+%2o:+40000000000:1:2:4:
+%*2o:+40000000000:0:2:
+%2o:+040000000000:1:2:0:
+%*2o:+040000000000:0:2:
+%2o:+40000010221:1:2:4:
+%*2o:+40000010221:0:2:
+%2o:+040000010221:1:2:0:
+%*2o:+040000010221:0:2:
+%8o::0:-1:
+%*8o::0:-1:
+%8o:-173:1:4:4294967173:
+%*8o:-173:0:4:
+%8o:-0173:1:5:4294967173:
+%*8o:-0173:0:5:
+%8o:-1:1:2:4294967295:
+%*8o:-1:0:2:
+%8o:-01:1:3:4294967295:
+%*8o:-01:0:3:
+%8o:-0:1:2:0:
+%*8o:-0:0:2:
+%8o:-00:1:3:0:
+%*8o:-00:0:3:
+%8o:0:1:1:0:
+%*8o:0:0:1:
+%8o:00:1:2:0:
+%*8o:00:0:2:
+%8o:1:1:1:1:
+%*8o:1:0:1:
+%8o:01:1:2:1:
+%*8o:01:0:2:
+%8o:52:1:2:42:
+%*8o:52:0:2:
+%8o:052:1:3:42:
+%*8o:052:0:3:
+%8o:37777777777:1:8:8388607:
+%*8o:37777777777:0:8:
+%8o:037777777777:1:8:1048575:
+%*8o:037777777777:0:8:
+%8o:40000000000:1:8:8388608:
+%*8o:40000000000:0:8:
+%8o:040000000000:1:8:1048576:
+%*8o:040000000000:0:8:
+%8o:40000010221:1:8:8388616:
+%*8o:40000010221:0:8:
+%8o:040000010221:1:8:1048577:
+%*8o:040000010221:0:8:
+%8o:+0:1:2:0:
+%*8o:+0:0:2:
+%8o:+00:1:3:0:
+%*8o:+00:0:3:
+%8o:+1:1:2:1:
+%*8o:+1:0:2:
+%8o:+01:1:3:1:
+%*8o:+01:0:3:
+%8o:+52:1:3:42:
+%*8o:+52:0:3:
+%8o:+052:1:4:42:
+%*8o:+052:0:4:
+%8o:+37777777777:1:8:1048575:
+%*8o:+37777777777:0:8:
+%8o:+037777777777:1:8:131071:
+%*8o:+037777777777:0:8:
+%8o:+40000000000:1:8:1048576:
+%*8o:+40000000000:0:8:
+%8o:+040000000000:1:8:131072:
+%*8o:+040000000000:0:8:
+%8o:+40000010221:1:8:1048577:
+%*8o:+40000010221:0:8:
+%8o:+040000010221:1:8:131072:
+%*8o:+040000010221:0:8:
+%15o::0:-1:
+%*15o::0:-1:
+%15o:-173:1:4:4294967173:
+%*15o:-173:0:4:
+%15o:-0173:1:5:4294967173:
+%*15o:-0173:0:5:
+%15o:-1:1:2:4294967295:
+%*15o:-1:0:2:
+%15o:-01:1:3:4294967295:
+%*15o:-01:0:3:
+%15o:-0:1:2:0:
+%*15o:-0:0:2:
+%15o:-00:1:3:0:
+%*15o:-00:0:3:
+%15o:0:1:1:0:
+%*15o:0:0:1:
+%15o:00:1:2:0:
+%*15o:00:0:2:
+%15o:1:1:1:1:
+%*15o:1:0:1:
+%15o:01:1:2:1:
+%*15o:01:0:2:
+%15o:52:1:2:42:
+%*15o:52:0:2:
+%15o:052:1:3:42:
+%*15o:052:0:3:
+%15o:37777777777:1:11:4294967295:
+%*15o:37777777777:0:11:
+%15o:037777777777:1:12:4294967295:
+%*15o:037777777777:0:12:
+%15o:40000000000:1:11:4294967295:
+%*15o:40000000000:0:11:
+%15o:040000000000:1:12:4294967295:
+%*15o:040000000000:0:12:
+%15o:40000010221:1:11:4294967295:
+%*15o:40000010221:0:11:
+%15o:040000010221:1:12:4294967295:
+%*15o:040000010221:0:12:
+%15o:+0:1:2:0:
+%*15o:+0:0:2:
+%15o:+00:1:3:0:
+%*15o:+00:0:3:
+%15o:+1:1:2:1:
+%*15o:+1:0:2:
+%15o:+01:1:3:1:
+%*15o:+01:0:3:
+%15o:+52:1:3:42:
+%*15o:+52:0:3:
+%15o:+052:1:4:42:
+%*15o:+052:0:4:
+%15o:+37777777777:1:12:4294967295:
+%*15o:+37777777777:0:12:
+%15o:+037777777777:1:13:4294967295:
+%*15o:+037777777777:0:13:
+%15o:+40000000000:1:12:4294967295:
+%*15o:+40000000000:0:12:
+%15o:+040000000000:1:13:4294967295:
+%*15o:+040000000000:0:13:
+%15o:+40000010221:1:12:4294967295:
+%*15o:+40000010221:0:12:
+%15o:+040000010221:1:13:4294967295:
+%*15o:+040000010221:0:13:
+%2o: :0:-1:
+%*2o: :0:-1:
+%2o: -173:1:3:4294967295:
+%*2o: -173:0:3:
+%2o: -0173:1:3:0:
+%*2o: -0173:0:3:
+%2o: -1:1:3:4294967295:
+%*2o: -1:0:3:
+%2o: -01:1:3:0:
+%*2o: -01:0:3:
+%2o: -0:1:3:0:
+%*2o: -0:0:3:
+%2o: -00:1:3:0:
+%*2o: -00:0:3:
+%2o: 0:1:2:0:
+%*2o: 0:0:2:
+%2o: 00:1:3:0:
+%*2o: 00:0:3:
+%2o: 1:1:2:1:
+%*2o: 1:0:2:
+%2o: 01:1:3:1:
+%*2o: 01:0:3:
+%2o: 52:1:3:42:
+%*2o: 52:0:3:
+%2o: 052:1:3:5:
+%*2o: 052:0:3:
+%2o: 37777777777:1:3:31:
+%*2o: 37777777777:0:3:
+%2o: 037777777777:1:3:3:
+%*2o: 037777777777:0:3:
+%2o: 40000000000:1:3:32:
+%*2o: 40000000000:0:3:
+%2o: 040000000000:1:3:4:
+%*2o: 040000000000:0:3:
+%2o: 40000010221:1:3:32:
+%*2o: 40000010221:0:3:
+%2o: 040000010221:1:3:4:
+%*2o: 040000010221:0:3:
+%2o: +0:1:3:0:
+%*2o: +0:0:3:
+%2o: +00:1:3:0:
+%*2o: +00:0:3:
+%2o: +1:1:3:1:
+%*2o: +1:0:3:
+%2o: +01:1:3:0:
+%*2o: +01:0:3:
+%2o: +52:1:3:5:
+%*2o: +52:0:3:
+%2o: +052:1:3:0:
+%*2o: +052:0:3:
+%2o: +37777777777:1:3:3:
+%*2o: +37777777777:0:3:
+%2o: +037777777777:1:3:0:
+%*2o: +037777777777:0:3:
+%2o: +40000000000:1:3:4:
+%*2o: +40000000000:0:3:
+%2o: +040000000000:1:3:0:
+%*2o: +040000000000:0:3:
+%2o: +40000010221:1:3:4:
+%*2o: +40000010221:0:3:
+%2o: +040000010221:1:3:0:
+%*2o: +040000010221:0:3:
+%15o: :0:-1:
+%*15o: :0:-1:
+%15o: -173:1:5:4294967173:
+%*15o: -173:0:5:
+%15o: -0173:1:6:4294967173:
+%*15o: -0173:0:6:
+%15o: -1:1:3:4294967295:
+%*15o: -1:0:3:
+%15o: -01:1:4:4294967295:
+%*15o: -01:0:4:
+%15o: -0:1:3:0:
+%*15o: -0:0:3:
+%15o: -00:1:4:0:
+%*15o: -00:0:4:
+%15o: 0:1:2:0:
+%*15o: 0:0:2:
+%15o: 00:1:3:0:
+%*15o: 00:0:3:
+%15o: 1:1:2:1:
+%*15o: 1:0:2:
+%15o: 01:1:3:1:
+%*15o: 01:0:3:
+%15o: 52:1:3:42:
+%*15o: 52:0:3:
+%15o: 052:1:4:42:
+%*15o: 052:0:4:
+%15o: 37777777777:1:12:4294967295:
+%*15o: 37777777777:0:12:
+%15o: 037777777777:1:13:4294967295:
+%*15o: 037777777777:0:13:
+%15o: 40000000000:1:12:4294967295:
+%*15o: 40000000000:0:12:
+%15o: 040000000000:1:13:4294967295:
+%*15o: 040000000000:0:13:
+%15o: 40000010221:1:12:4294967295:
+%*15o: 40000010221:0:12:
+%15o: 040000010221:1:13:4294967295:
+%*15o: 040000010221:0:13:
+%15o: +0:1:3:0:
+%*15o: +0:0:3:
+%15o: +00:1:4:0:
+%*15o: +00:0:4:
+%15o: +1:1:3:1:
+%*15o: +1:0:3:
+%15o: +01:1:4:1:
+%*15o: +01:0:4:
+%15o: +52:1:4:42:
+%*15o: +52:0:4:
+%15o: +052:1:5:42:
+%*15o: +052:0:5:
+%15o: +37777777777:1:13:4294967295:
+%*15o: +37777777777:0:13:
+%15o: +037777777777:1:14:4294967295:
+%*15o: +037777777777:0:14:
+%15o: +40000000000:1:13:4294967295:
+%*15o: +40000000000:0:13:
+%15o: +040000000000:1:14:4294967295:
+%*15o: +040000000000:0:14:
+%15o: +40000010221:1:13:4294967295:
+%*15o: +40000010221:0:13:
+%15o: +040000010221:1:14:4294967295:
+%*15o: +040000010221:0:14:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-u.input b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input
new file mode 100644
index 0000000..d2e04fd
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input
@@ -0,0 +1,224 @@
+%u::0:-1:
+%*u::0:-1:
+%u:-123:1:4:4294967173:
+%*u:-123:0:4:
+%u:-1:1:2:4294967295:
+%*u:-1:0:2:
+%u:-0:1:2:0:
+%*u:-0:0:2:
+%u:0:1:1:0:
+%*u:0:0:1:
+%u:1:1:1:1:
+%*u:1:0:1:
+%u:42:1:2:42:
+%*u:42:0:2:
+%u:4294967295:1:10:4294967295:
+%*u:4294967295:0:10:
+%u:4294967296:1:10:4294967295:
+%*u:4294967296:0:10:
+%u:4294971537:1:10:4294967295:
+%*u:4294971537:0:10:
+%u:+0:1:2:0:
+%*u:+0:0:2:
+%u:+1:1:2:1:
+%*u:+1:0:2:
+%u:+42:1:3:42:
+%*u:+42:0:3:
+%u:+4294967295:1:11:4294967295:
+%*u:+4294967295:0:11:
+%u:+4294967296:1:11:4294967295:
+%*u:+4294967296:0:11:
+%u:+4294971537:1:11:4294967295:
+%*u:+4294971537:0:11:
+%1u::0:-1:
+%*1u::0:-1:
+%1u:-123:0:-1:
+%*1u:-123:0:-1:
+%1u:-1:0:-1:
+%*1u:-1:0:-1:
+%1u:-0:0:-1:
+%*1u:-0:0:-1:
+%1u:0:1:1:0:
+%*1u:0:0:1:
+%1u:1:1:1:1:
+%*1u:1:0:1:
+%1u:42:1:1:4:
+%*1u:42:0:1:
+%1u:4294967295:1:1:4:
+%*1u:4294967295:0:1:
+%1u:4294967296:1:1:4:
+%*1u:4294967296:0:1:
+%1u:4294971537:1:1:4:
+%*1u:4294971537:0:1:
+%1u:+0:0:-1:
+%*1u:+0:0:-1:
+%1u:+1:0:-1:
+%*1u:+1:0:-1:
+%1u:+42:0:-1:
+%*1u:+42:0:-1:
+%1u:+4294967295:0:-1:
+%*1u:+4294967295:0:-1:
+%1u:+4294967296:0:-1:
+%*1u:+4294967296:0:-1:
+%1u:+4294971537:0:-1:
+%*1u:+4294971537:0:-1:
+%2u::0:-1:
+%*2u::0:-1:
+%2u:-123:1:2:4294967295:
+%*2u:-123:0:2:
+%2u:-1:1:2:4294967295:
+%*2u:-1:0:2:
+%2u:-0:1:2:0:
+%*2u:-0:0:2:
+%2u:0:1:1:0:
+%*2u:0:0:1:
+%2u:1:1:1:1:
+%*2u:1:0:1:
+%2u:42:1:2:42:
+%*2u:42:0:2:
+%2u:4294967295:1:2:42:
+%*2u:4294967295:0:2:
+%2u:4294967296:1:2:42:
+%*2u:4294967296:0:2:
+%2u:4294971537:1:2:42:
+%*2u:4294971537:0:2:
+%2u:+0:1:2:0:
+%*2u:+0:0:2:
+%2u:+1:1:2:1:
+%*2u:+1:0:2:
+%2u:+42:1:2:4:
+%*2u:+42:0:2:
+%2u:+4294967295:1:2:4:
+%*2u:+4294967295:0:2:
+%2u:+4294967296:1:2:4:
+%*2u:+4294967296:0:2:
+%2u:+4294971537:1:2:4:
+%*2u:+4294971537:0:2:
+%8u::0:-1:
+%*8u::0:-1:
+%8u:-123:1:4:4294967173:
+%*8u:-123:0:4:
+%8u:-1:1:2:4294967295:
+%*8u:-1:0:2:
+%8u:-0:1:2:0:
+%*8u:-0:0:2:
+%8u:0:1:1:0:
+%*8u:0:0:1:
+%8u:1:1:1:1:
+%*8u:1:0:1:
+%8u:42:1:2:42:
+%*8u:42:0:2:
+%8u:4294967295:1:8:42949672:
+%*8u:4294967295:0:8:
+%8u:4294967296:1:8:42949672:
+%*8u:4294967296:0:8:
+%8u:4294971537:1:8:42949715:
+%*8u:4294971537:0:8:
+%8u:+0:1:2:0:
+%*8u:+0:0:2:
+%8u:+1:1:2:1:
+%*8u:+1:0:2:
+%8u:+42:1:3:42:
+%*8u:+42:0:3:
+%8u:+4294967295:1:8:4294967:
+%*8u:+4294967295:0:8:
+%8u:+4294967296:1:8:4294967:
+%*8u:+4294967296:0:8:
+%8u:+4294971537:1:8:4294971:
+%*8u:+4294971537:0:8:
+%15u::0:-1:
+%*15u::0:-1:
+%15u:-123:1:4:4294967173:
+%*15u:-123:0:4:
+%15u:-1:1:2:4294967295:
+%*15u:-1:0:2:
+%15u:-0:1:2:0:
+%*15u:-0:0:2:
+%15u:0:1:1:0:
+%*15u:0:0:1:
+%15u:1:1:1:1:
+%*15u:1:0:1:
+%15u:42:1:2:42:
+%*15u:42:0:2:
+%15u:4294967295:1:10:4294967295:
+%*15u:4294967295:0:10:
+%15u:4294967296:1:10:4294967295:
+%*15u:4294967296:0:10:
+%15u:4294971537:1:10:4294967295:
+%*15u:4294971537:0:10:
+%15u:+0:1:2:0:
+%*15u:+0:0:2:
+%15u:+1:1:2:1:
+%*15u:+1:0:2:
+%15u:+42:1:3:42:
+%*15u:+42:0:3:
+%15u:+4294967295:1:11:4294967295:
+%*15u:+4294967295:0:11:
+%15u:+4294967296:1:11:4294967295:
+%*15u:+4294967296:0:11:
+%15u:+4294971537:1:11:4294967295:
+%*15u:+4294971537:0:11:
+%2u: :0:-1:
+%*2u: :0:-1:
+%2u: -123:1:3:4294967295:
+%*2u: -123:0:3:
+%2u: -1:1:3:4294967295:
+%*2u: -1:0:3:
+%2u: -0:1:3:0:
+%*2u: -0:0:3:
+%2u: 0:1:2:0:
+%*2u: 0:0:2:
+%2u: 1:1:2:1:
+%*2u: 1:0:2:
+%2u: 42:1:3:42:
+%*2u: 42:0:3:
+%2u: 4294967295:1:3:42:
+%*2u: 4294967295:0:3:
+%2u: 4294967296:1:3:42:
+%*2u: 4294967296:0:3:
+%2u: 4294971537:1:3:42:
+%*2u: 4294971537:0:3:
+%2u: +0:1:3:0:
+%*2u: +0:0:3:
+%2u: +1:1:3:1:
+%*2u: +1:0:3:
+%2u: +42:1:3:4:
+%*2u: +42:0:3:
+%2u: +4294967295:1:3:4:
+%*2u: +4294967295:0:3:
+%2u: +4294967296:1:3:4:
+%*2u: +4294967296:0:3:
+%2u: +4294971537:1:3:4:
+%*2u: +4294971537:0:3:
+%15u: :0:-1:
+%*15u: :0:-1:
+%15u: -123:1:5:4294967173:
+%*15u: -123:0:5:
+%15u: -1:1:3:4294967295:
+%*15u: -1:0:3:
+%15u: -0:1:3:0:
+%*15u: -0:0:3:
+%15u: 0:1:2:0:
+%*15u: 0:0:2:
+%15u: 1:1:2:1:
+%*15u: 1:0:2:
+%15u: 42:1:3:42:
+%*15u: 42:0:3:
+%15u: 4294967295:1:11:4294967295:
+%*15u: 4294967295:0:11:
+%15u: 4294967296:1:11:4294967295:
+%*15u: 4294967296:0:11:
+%15u: 4294971537:1:11:4294967295:
+%*15u: 4294971537:0:11:
+%15u: +0:1:3:0:
+%*15u: +0:0:3:
+%15u: +1:1:3:1:
+%*15u: +1:0:3:
+%15u: +42:1:4:42:
+%*15u: +42:0:4:
+%15u: +4294967295:1:12:4294967295:
+%*15u: +4294967295:0:12:
+%15u: +4294967296:1:12:4294967295:
+%*15u: +4294967296:0:12:
+%15u: +4294971537:1:12:4294967295:
+%*15u: +4294971537:0:12:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-x.input b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input
new file mode 100644
index 0000000..4a68400
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input
@@ -0,0 +1,714 @@
+%x::0:-1:
+%*x::0:-1:
+%x:-7b:1:3:4294967173:
+%*x:-7b:0:3:
+%x:-7B:1:3:4294967173:
+%*x:-7B:0:3:
+%x:-0X7b:1:5:4294967173:
+%*x:-0X7b:0:5:
+%x:-0x7B:1:5:4294967173:
+%*x:-0x7B:0:5:
+%x:-1:1:2:4294967295:
+%*x:-1:0:2:
+%x:-0X1:1:4:4294967295:
+%*x:-0X1:0:4:
+%x:-0x1:1:4:4294967295:
+%*x:-0x1:0:4:
+%x:-0:1:2:0:
+%*x:-0:0:2:
+%x:-0X0:1:4:0:
+%*x:-0X0:0:4:
+%x:-0x0:1:4:0:
+%*x:-0x0:0:4:
+%x:0:1:1:0:
+%*x:0:0:1:
+%x:0X0:1:3:0:
+%*x:0X0:0:3:
+%x:0x0:1:3:0:
+%*x:0x0:0:3:
+%x:1:1:1:1:
+%*x:1:0:1:
+%x:0X1:1:3:1:
+%*x:0X1:0:3:
+%x:0x1:1:3:1:
+%*x:0x1:0:3:
+%x:2a:1:2:42:
+%*x:2a:0:2:
+%x:2A:1:2:42:
+%*x:2A:0:2:
+%x:0X2a:1:4:42:
+%*x:0X2a:0:4:
+%x:0x2A:1:4:42:
+%*x:0x2A:0:4:
+%x:ffffffff:1:8:4294967295:
+%*x:ffffffff:0:8:
+%x:FFFFFFFF:1:8:4294967295:
+%*x:FFFFFFFF:0:8:
+%x:0Xffffffff:1:10:4294967295:
+%*x:0Xffffffff:0:10:
+%x:0xFFFFFFFF:1:10:4294967295:
+%*x:0xFFFFFFFF:0:10:
+%x:100000000:1:9:4294967295:
+%*x:100000000:0:9:
+%x:0X100000000:1:11:4294967295:
+%*x:0X100000000:0:11:
+%x:0x100000000:1:11:4294967295:
+%*x:0x100000000:0:11:
+%x:100001091:1:9:4294967295:
+%*x:100001091:0:9:
+%x:0X100001091:1:11:4294967295:
+%*x:0X100001091:0:11:
+%x:0x100001091:1:11:4294967295:
+%*x:0x100001091:0:11:
+%x:+0:1:2:0:
+%*x:+0:0:2:
+%x:+0X0:1:4:0:
+%*x:+0X0:0:4:
+%x:+0x0:1:4:0:
+%*x:+0x0:0:4:
+%x:+1:1:2:1:
+%*x:+1:0:2:
+%x:+0X1:1:4:1:
+%*x:+0X1:0:4:
+%x:+0x1:1:4:1:
+%*x:+0x1:0:4:
+%x:+2a:1:3:42:
+%*x:+2a:0:3:
+%x:+2A:1:3:42:
+%*x:+2A:0:3:
+%x:+0X2a:1:5:42:
+%*x:+0X2a:0:5:
+%x:+0x2A:1:5:42:
+%*x:+0x2A:0:5:
+%x:+ffffffff:1:9:4294967295:
+%*x:+ffffffff:0:9:
+%x:+FFFFFFFF:1:9:4294967295:
+%*x:+FFFFFFFF:0:9:
+%x:+0Xffffffff:1:11:4294967295:
+%*x:+0Xffffffff:0:11:
+%x:+0xFFFFFFFF:1:11:4294967295:
+%*x:+0xFFFFFFFF:0:11:
+%x:+100000000:1:10:4294967295:
+%*x:+100000000:0:10:
+%x:+0X100000000:1:12:4294967295:
+%*x:+0X100000000:0:12:
+%x:+0x100000000:1:12:4294967295:
+%*x:+0x100000000:0:12:
+%x:+100001091:1:10:4294967295:
+%*x:+100001091:0:10:
+%x:+0X100001091:1:12:4294967295:
+%*x:+0X100001091:0:12:
+%x:+0x100001091:1:12:4294967295:
+%*x:+0x100001091:0:12:
+%1x::0:-1:
+%*1x::0:-1:
+%1x:-7b:0:-1:
+%*1x:-7b:0:-1:
+%1x:-7B:0:-1:
+%*1x:-7B:0:-1:
+%1x:-0X7b:0:-1:
+%*1x:-0X7b:0:-1:
+%1x:-0x7B:0:-1:
+%*1x:-0x7B:0:-1:
+%1x:-1:0:-1:
+%*1x:-1:0:-1:
+%1x:-0X1:0:-1:
+%*1x:-0X1:0:-1:
+%1x:-0x1:0:-1:
+%*1x:-0x1:0:-1:
+%1x:-0:0:-1:
+%*1x:-0:0:-1:
+%1x:-0X0:0:-1:
+%*1x:-0X0:0:-1:
+%1x:-0x0:0:-1:
+%*1x:-0x0:0:-1:
+%1x:0:1:1:0:
+%*1x:0:0:1:
+%1x:0X0:1:1:0:
+%*1x:0X0:0:1:
+%1x:0x0:1:1:0:
+%*1x:0x0:0:1:
+%1x:1:1:1:1:
+%*1x:1:0:1:
+%1x:0X1:1:1:0:
+%*1x:0X1:0:1:
+%1x:0x1:1:1:0:
+%*1x:0x1:0:1:
+%1x:2a:1:1:2:
+%*1x:2a:0:1:
+%1x:2A:1:1:2:
+%*1x:2A:0:1:
+%1x:0X2a:1:1:0:
+%*1x:0X2a:0:1:
+%1x:0x2A:1:1:0:
+%*1x:0x2A:0:1:
+%1x:ffffffff:1:1:15:
+%*1x:ffffffff:0:1:
+%1x:FFFFFFFF:1:1:15:
+%*1x:FFFFFFFF:0:1:
+%1x:0Xffffffff:1:1:0:
+%*1x:0Xffffffff:0:1:
+%1x:0xFFFFFFFF:1:1:0:
+%*1x:0xFFFFFFFF:0:1:
+%1x:100000000:1:1:1:
+%*1x:100000000:0:1:
+%1x:0X100000000:1:1:0:
+%*1x:0X100000000:0:1:
+%1x:0x100000000:1:1:0:
+%*1x:0x100000000:0:1:
+%1x:100001091:1:1:1:
+%*1x:100001091:0:1:
+%1x:0X100001091:1:1:0:
+%*1x:0X100001091:0:1:
+%1x:0x100001091:1:1:0:
+%*1x:0x100001091:0:1:
+%1x:+0:0:-1:
+%*1x:+0:0:-1:
+%1x:+0X0:0:-1:
+%*1x:+0X0:0:-1:
+%1x:+0x0:0:-1:
+%*1x:+0x0:0:-1:
+%1x:+1:0:-1:
+%*1x:+1:0:-1:
+%1x:+0X1:0:-1:
+%*1x:+0X1:0:-1:
+%1x:+0x1:0:-1:
+%*1x:+0x1:0:-1:
+%1x:+2a:0:-1:
+%*1x:+2a:0:-1:
+%1x:+2A:0:-1:
+%*1x:+2A:0:-1:
+%1x:+0X2a:0:-1:
+%*1x:+0X2a:0:-1:
+%1x:+0x2A:0:-1:
+%*1x:+0x2A:0:-1:
+%1x:+ffffffff:0:-1:
+%*1x:+ffffffff:0:-1:
+%1x:+FFFFFFFF:0:-1:
+%*1x:+FFFFFFFF:0:-1:
+%1x:+0Xffffffff:0:-1:
+%*1x:+0Xffffffff:0:-1:
+%1x:+0xFFFFFFFF:0:-1:
+%*1x:+0xFFFFFFFF:0:-1:
+%1x:+100000000:0:-1:
+%*1x:+100000000:0:-1:
+%1x:+0X100000000:0:-1:
+%*1x:+0X100000000:0:-1:
+%1x:+0x100000000:0:-1:
+%*1x:+0x100000000:0:-1:
+%1x:+100001091:0:-1:
+%*1x:+100001091:0:-1:
+%1x:+0X100001091:0:-1:
+%*1x:+0X100001091:0:-1:
+%1x:+0x100001091:0:-1:
+%*1x:+0x100001091:0:-1:
+%2x::0:-1:
+%*2x::0:-1:
+%2x:-7b:1:2:4294967289:
+%*2x:-7b:0:2:
+%2x:-7B:1:2:4294967289:
+%*2x:-7B:0:2:
+%2x:-0X7b:1:2:0:
+%*2x:-0X7b:0:2:
+%2x:-0x7B:1:2:0:
+%*2x:-0x7B:0:2:
+%2x:-1:1:2:4294967295:
+%*2x:-1:0:2:
+%2x:-0X1:1:2:0:
+%*2x:-0X1:0:2:
+%2x:-0x1:1:2:0:
+%*2x:-0x1:0:2:
+%2x:-0:1:2:0:
+%*2x:-0:0:2:
+%2x:-0X0:1:2:0:
+%*2x:-0X0:0:2:
+%2x:-0x0:1:2:0:
+%*2x:-0x0:0:2:
+%2x:0:1:1:0:
+%*2x:0:0:1:
+%2x:0X0:0:-1:
+%*2x:0X0:0:-1:
+%2x:0x0:0:-1:
+%*2x:0x0:0:-1:
+%2x:1:1:1:1:
+%*2x:1:0:1:
+%2x:0X1:0:-1:
+%*2x:0X1:0:-1:
+%2x:0x1:0:-1:
+%*2x:0x1:0:-1:
+%2x:2a:1:2:42:
+%*2x:2a:0:2:
+%2x:2A:1:2:42:
+%*2x:2A:0:2:
+%2x:0X2a:0:-1:
+%*2x:0X2a:0:-1:
+%2x:0x2A:0:-1:
+%*2x:0x2A:0:-1:
+%2x:ffffffff:1:2:255:
+%*2x:ffffffff:0:2:
+%2x:FFFFFFFF:1:2:255:
+%*2x:FFFFFFFF:0:2:
+%2x:0Xffffffff:0:-1:
+%*2x:0Xffffffff:0:-1:
+%2x:0xFFFFFFFF:0:-1:
+%*2x:0xFFFFFFFF:0:-1:
+%2x:100000000:1:2:16:
+%*2x:100000000:0:2:
+%2x:0X100000000:0:-1:
+%*2x:0X100000000:0:-1:
+%2x:0x100000000:0:-1:
+%*2x:0x100000000:0:-1:
+%2x:100001091:1:2:16:
+%*2x:100001091:0:2:
+%2x:0X100001091:0:-1:
+%*2x:0X100001091:0:-1:
+%2x:0x100001091:0:-1:
+%*2x:0x100001091:0:-1:
+%2x:+0:1:2:0:
+%*2x:+0:0:2:
+%2x:+0X0:1:2:0:
+%*2x:+0X0:0:2:
+%2x:+0x0:1:2:0:
+%*2x:+0x0:0:2:
+%2x:+1:1:2:1:
+%*2x:+1:0:2:
+%2x:+0X1:1:2:0:
+%*2x:+0X1:0:2:
+%2x:+0x1:1:2:0:
+%*2x:+0x1:0:2:
+%2x:+2a:1:2:2:
+%*2x:+2a:0:2:
+%2x:+2A:1:2:2:
+%*2x:+2A:0:2:
+%2x:+0X2a:1:2:0:
+%*2x:+0X2a:0:2:
+%2x:+0x2A:1:2:0:
+%*2x:+0x2A:0:2:
+%2x:+ffffffff:1:2:15:
+%*2x:+ffffffff:0:2:
+%2x:+FFFFFFFF:1:2:15:
+%*2x:+FFFFFFFF:0:2:
+%2x:+0Xffffffff:1:2:0:
+%*2x:+0Xffffffff:0:2:
+%2x:+0xFFFFFFFF:1:2:0:
+%*2x:+0xFFFFFFFF:0:2:
+%2x:+100000000:1:2:1:
+%*2x:+100000000:0:2:
+%2x:+0X100000000:1:2:0:
+%*2x:+0X100000000:0:2:
+%2x:+0x100000000:1:2:0:
+%*2x:+0x100000000:0:2:
+%2x:+100001091:1:2:1:
+%*2x:+100001091:0:2:
+%2x:+0X100001091:1:2:0:
+%*2x:+0X100001091:0:2:
+%2x:+0x100001091:1:2:0:
+%*2x:+0x100001091:0:2:
+%8x::0:-1:
+%*8x::0:-1:
+%8x:-7b:1:3:4294967173:
+%*8x:-7b:0:3:
+%8x:-7B:1:3:4294967173:
+%*8x:-7B:0:3:
+%8x:-0X7b:1:5:4294967173:
+%*8x:-0X7b:0:5:
+%8x:-0x7B:1:5:4294967173:
+%*8x:-0x7B:0:5:
+%8x:-1:1:2:4294967295:
+%*8x:-1:0:2:
+%8x:-0X1:1:4:4294967295:
+%*8x:-0X1:0:4:
+%8x:-0x1:1:4:4294967295:
+%*8x:-0x1:0:4:
+%8x:-0:1:2:0:
+%*8x:-0:0:2:
+%8x:-0X0:1:4:0:
+%*8x:-0X0:0:4:
+%8x:-0x0:1:4:0:
+%*8x:-0x0:0:4:
+%8x:0:1:1:0:
+%*8x:0:0:1:
+%8x:0X0:1:3:0:
+%*8x:0X0:0:3:
+%8x:0x0:1:3:0:
+%*8x:0x0:0:3:
+%8x:1:1:1:1:
+%*8x:1:0:1:
+%8x:0X1:1:3:1:
+%*8x:0X1:0:3:
+%8x:0x1:1:3:1:
+%*8x:0x1:0:3:
+%8x:2a:1:2:42:
+%*8x:2a:0:2:
+%8x:2A:1:2:42:
+%*8x:2A:0:2:
+%8x:0X2a:1:4:42:
+%*8x:0X2a:0:4:
+%8x:0x2A:1:4:42:
+%*8x:0x2A:0:4:
+%8x:ffffffff:1:8:4294967295:
+%*8x:ffffffff:0:8:
+%8x:FFFFFFFF:1:8:4294967295:
+%*8x:FFFFFFFF:0:8:
+%8x:0Xffffffff:1:8:16777215:
+%*8x:0Xffffffff:0:8:
+%8x:0xFFFFFFFF:1:8:16777215:
+%*8x:0xFFFFFFFF:0:8:
+%8x:100000000:1:8:268435456:
+%*8x:100000000:0:8:
+%8x:0X100000000:1:8:1048576:
+%*8x:0X100000000:0:8:
+%8x:0x100000000:1:8:1048576:
+%*8x:0x100000000:0:8:
+%8x:100001091:1:8:268435721:
+%*8x:100001091:0:8:
+%8x:0X100001091:1:8:1048577:
+%*8x:0X100001091:0:8:
+%8x:0x100001091:1:8:1048577:
+%*8x:0x100001091:0:8:
+%8x:+0:1:2:0:
+%*8x:+0:0:2:
+%8x:+0X0:1:4:0:
+%*8x:+0X0:0:4:
+%8x:+0x0:1:4:0:
+%*8x:+0x0:0:4:
+%8x:+1:1:2:1:
+%*8x:+1:0:2:
+%8x:+0X1:1:4:1:
+%*8x:+0X1:0:4:
+%8x:+0x1:1:4:1:
+%*8x:+0x1:0:4:
+%8x:+2a:1:3:42:
+%*8x:+2a:0:3:
+%8x:+2A:1:3:42:
+%*8x:+2A:0:3:
+%8x:+0X2a:1:5:42:
+%*8x:+0X2a:0:5:
+%8x:+0x2A:1:5:42:
+%*8x:+0x2A:0:5:
+%8x:+ffffffff:1:8:268435455:
+%*8x:+ffffffff:0:8:
+%8x:+FFFFFFFF:1:8:268435455:
+%*8x:+FFFFFFFF:0:8:
+%8x:+0Xffffffff:1:8:1048575:
+%*8x:+0Xffffffff:0:8:
+%8x:+0xFFFFFFFF:1:8:1048575:
+%*8x:+0xFFFFFFFF:0:8:
+%8x:+100000000:1:8:16777216:
+%*8x:+100000000:0:8:
+%8x:+0X100000000:1:8:65536:
+%*8x:+0X100000000:0:8:
+%8x:+0x100000000:1:8:65536:
+%*8x:+0x100000000:0:8:
+%8x:+100001091:1:8:16777232:
+%*8x:+100001091:0:8:
+%8x:+0X100001091:1:8:65536:
+%*8x:+0X100001091:0:8:
+%8x:+0x100001091:1:8:65536:
+%*8x:+0x100001091:0:8:
+%15x::0:-1:
+%*15x::0:-1:
+%15x:-7b:1:3:4294967173:
+%*15x:-7b:0:3:
+%15x:-7B:1:3:4294967173:
+%*15x:-7B:0:3:
+%15x:-0X7b:1:5:4294967173:
+%*15x:-0X7b:0:5:
+%15x:-0x7B:1:5:4294967173:
+%*15x:-0x7B:0:5:
+%15x:-1:1:2:4294967295:
+%*15x:-1:0:2:
+%15x:-0X1:1:4:4294967295:
+%*15x:-0X1:0:4:
+%15x:-0x1:1:4:4294967295:
+%*15x:-0x1:0:4:
+%15x:-0:1:2:0:
+%*15x:-0:0:2:
+%15x:-0X0:1:4:0:
+%*15x:-0X0:0:4:
+%15x:-0x0:1:4:0:
+%*15x:-0x0:0:4:
+%15x:0:1:1:0:
+%*15x:0:0:1:
+%15x:0X0:1:3:0:
+%*15x:0X0:0:3:
+%15x:0x0:1:3:0:
+%*15x:0x0:0:3:
+%15x:1:1:1:1:
+%*15x:1:0:1:
+%15x:0X1:1:3:1:
+%*15x:0X1:0:3:
+%15x:0x1:1:3:1:
+%*15x:0x1:0:3:
+%15x:2a:1:2:42:
+%*15x:2a:0:2:
+%15x:2A:1:2:42:
+%*15x:2A:0:2:
+%15x:0X2a:1:4:42:
+%*15x:0X2a:0:4:
+%15x:0x2A:1:4:42:
+%*15x:0x2A:0:4:
+%15x:ffffffff:1:8:4294967295:
+%*15x:ffffffff:0:8:
+%15x:FFFFFFFF:1:8:4294967295:
+%*15x:FFFFFFFF:0:8:
+%15x:0Xffffffff:1:10:4294967295:
+%*15x:0Xffffffff:0:10:
+%15x:0xFFFFFFFF:1:10:4294967295:
+%*15x:0xFFFFFFFF:0:10:
+%15x:100000000:1:9:4294967295:
+%*15x:100000000:0:9:
+%15x:0X100000000:1:11:4294967295:
+%*15x:0X100000000:0:11:
+%15x:0x100000000:1:11:4294967295:
+%*15x:0x100000000:0:11:
+%15x:100001091:1:9:4294967295:
+%*15x:100001091:0:9:
+%15x:0X100001091:1:11:4294967295:
+%*15x:0X100001091:0:11:
+%15x:0x100001091:1:11:4294967295:
+%*15x:0x100001091:0:11:
+%15x:+0:1:2:0:
+%*15x:+0:0:2:
+%15x:+0X0:1:4:0:
+%*15x:+0X0:0:4:
+%15x:+0x0:1:4:0:
+%*15x:+0x0:0:4:
+%15x:+1:1:2:1:
+%*15x:+1:0:2:
+%15x:+0X1:1:4:1:
+%*15x:+0X1:0:4:
+%15x:+0x1:1:4:1:
+%*15x:+0x1:0:4:
+%15x:+2a:1:3:42:
+%*15x:+2a:0:3:
+%15x:+2A:1:3:42:
+%*15x:+2A:0:3:
+%15x:+0X2a:1:5:42:
+%*15x:+0X2a:0:5:
+%15x:+0x2A:1:5:42:
+%*15x:+0x2A:0:5:
+%15x:+ffffffff:1:9:4294967295:
+%*15x:+ffffffff:0:9:
+%15x:+FFFFFFFF:1:9:4294967295:
+%*15x:+FFFFFFFF:0:9:
+%15x:+0Xffffffff:1:11:4294967295:
+%*15x:+0Xffffffff:0:11:
+%15x:+0xFFFFFFFF:1:11:4294967295:
+%*15x:+0xFFFFFFFF:0:11:
+%15x:+100000000:1:10:4294967295:
+%*15x:+100000000:0:10:
+%15x:+0X100000000:1:12:4294967295:
+%*15x:+0X100000000:0:12:
+%15x:+0x100000000:1:12:4294967295:
+%*15x:+0x100000000:0:12:
+%15x:+100001091:1:10:4294967295:
+%*15x:+100001091:0:10:
+%15x:+0X100001091:1:12:4294967295:
+%*15x:+0X100001091:0:12:
+%15x:+0x100001091:1:12:4294967295:
+%*15x:+0x100001091:0:12:
+%2x: :0:-1:
+%*2x: :0:-1:
+%2x: -7b:1:3:4294967289:
+%*2x: -7b:0:3:
+%2x: -7B:1:3:4294967289:
+%*2x: -7B:0:3:
+%2x: -0X7b:1:3:0:
+%*2x: -0X7b:0:3:
+%2x: -0x7B:1:3:0:
+%*2x: -0x7B:0:3:
+%2x: -1:1:3:4294967295:
+%*2x: -1:0:3:
+%2x: -0X1:1:3:0:
+%*2x: -0X1:0:3:
+%2x: -0x1:1:3:0:
+%*2x: -0x1:0:3:
+%2x: -0:1:3:0:
+%*2x: -0:0:3:
+%2x: -0X0:1:3:0:
+%*2x: -0X0:0:3:
+%2x: -0x0:1:3:0:
+%*2x: -0x0:0:3:
+%2x: 0:1:2:0:
+%*2x: 0:0:2:
+%2x: 0X0:0:-1:
+%*2x: 0X0:0:-1:
+%2x: 0x0:0:-1:
+%*2x: 0x0:0:-1:
+%2x: 1:1:2:1:
+%*2x: 1:0:2:
+%2x: 0X1:0:-1:
+%*2x: 0X1:0:-1:
+%2x: 0x1:0:-1:
+%*2x: 0x1:0:-1:
+%2x: 2a:1:3:42:
+%*2x: 2a:0:3:
+%2x: 2A:1:3:42:
+%*2x: 2A:0:3:
+%2x: 0X2a:0:-1:
+%*2x: 0X2a:0:-1:
+%2x: 0x2A:0:-1:
+%*2x: 0x2A:0:-1:
+%2x: ffffffff:1:3:255:
+%*2x: ffffffff:0:3:
+%2x: FFFFFFFF:1:3:255:
+%*2x: FFFFFFFF:0:3:
+%2x: 0Xffffffff:0:-1:
+%*2x: 0Xffffffff:0:-1:
+%2x: 0xFFFFFFFF:0:-1:
+%*2x: 0xFFFFFFFF:0:-1:
+%2x: 100000000:1:3:16:
+%*2x: 100000000:0:3:
+%2x: 0X100000000:0:-1:
+%*2x: 0X100000000:0:-1:
+%2x: 0x100000000:0:-1:
+%*2x: 0x100000000:0:-1:
+%2x: 100001091:1:3:16:
+%*2x: 100001091:0:3:
+%2x: 0X100001091:0:-1:
+%*2x: 0X100001091:0:-1:
+%2x: 0x100001091:0:-1:
+%*2x: 0x100001091:0:-1:
+%2x: +0:1:3:0:
+%*2x: +0:0:3:
+%2x: +0X0:1:3:0:
+%*2x: +0X0:0:3:
+%2x: +0x0:1:3:0:
+%*2x: +0x0:0:3:
+%2x: +1:1:3:1:
+%*2x: +1:0:3:
+%2x: +0X1:1:3:0:
+%*2x: +0X1:0:3:
+%2x: +0x1:1:3:0:
+%*2x: +0x1:0:3:
+%2x: +2a:1:3:2:
+%*2x: +2a:0:3:
+%2x: +2A:1:3:2:
+%*2x: +2A:0:3:
+%2x: +0X2a:1:3:0:
+%*2x: +0X2a:0:3:
+%2x: +0x2A:1:3:0:
+%*2x: +0x2A:0:3:
+%2x: +ffffffff:1:3:15:
+%*2x: +ffffffff:0:3:
+%2x: +FFFFFFFF:1:3:15:
+%*2x: +FFFFFFFF:0:3:
+%2x: +0Xffffffff:1:3:0:
+%*2x: +0Xffffffff:0:3:
+%2x: +0xFFFFFFFF:1:3:0:
+%*2x: +0xFFFFFFFF:0:3:
+%2x: +100000000:1:3:1:
+%*2x: +100000000:0:3:
+%2x: +0X100000000:1:3:0:
+%*2x: +0X100000000:0:3:
+%2x: +0x100000000:1:3:0:
+%*2x: +0x100000000:0:3:
+%2x: +100001091:1:3:1:
+%*2x: +100001091:0:3:
+%2x: +0X100001091:1:3:0:
+%*2x: +0X100001091:0:3:
+%2x: +0x100001091:1:3:0:
+%*2x: +0x100001091:0:3:
+%15x: :0:-1:
+%*15x: :0:-1:
+%15x: -7b:1:4:4294967173:
+%*15x: -7b:0:4:
+%15x: -7B:1:4:4294967173:
+%*15x: -7B:0:4:
+%15x: -0X7b:1:6:4294967173:
+%*15x: -0X7b:0:6:
+%15x: -0x7B:1:6:4294967173:
+%*15x: -0x7B:0:6:
+%15x: -1:1:3:4294967295:
+%*15x: -1:0:3:
+%15x: -0X1:1:5:4294967295:
+%*15x: -0X1:0:5:
+%15x: -0x1:1:5:4294967295:
+%*15x: -0x1:0:5:
+%15x: -0:1:3:0:
+%*15x: -0:0:3:
+%15x: -0X0:1:5:0:
+%*15x: -0X0:0:5:
+%15x: -0x0:1:5:0:
+%*15x: -0x0:0:5:
+%15x: 0:1:2:0:
+%*15x: 0:0:2:
+%15x: 0X0:1:4:0:
+%*15x: 0X0:0:4:
+%15x: 0x0:1:4:0:
+%*15x: 0x0:0:4:
+%15x: 1:1:2:1:
+%*15x: 1:0:2:
+%15x: 0X1:1:4:1:
+%*15x: 0X1:0:4:
+%15x: 0x1:1:4:1:
+%*15x: 0x1:0:4:
+%15x: 2a:1:3:42:
+%*15x: 2a:0:3:
+%15x: 2A:1:3:42:
+%*15x: 2A:0:3:
+%15x: 0X2a:1:5:42:
+%*15x: 0X2a:0:5:
+%15x: 0x2A:1:5:42:
+%*15x: 0x2A:0:5:
+%15x: ffffffff:1:9:4294967295:
+%*15x: ffffffff:0:9:
+%15x: FFFFFFFF:1:9:4294967295:
+%*15x: FFFFFFFF:0:9:
+%15x: 0Xffffffff:1:11:4294967295:
+%*15x: 0Xffffffff:0:11:
+%15x: 0xFFFFFFFF:1:11:4294967295:
+%*15x: 0xFFFFFFFF:0:11:
+%15x: 100000000:1:10:4294967295:
+%*15x: 100000000:0:10:
+%15x: 0X100000000:1:12:4294967295:
+%*15x: 0X100000000:0:12:
+%15x: 0x100000000:1:12:4294967295:
+%*15x: 0x100000000:0:12:
+%15x: 100001091:1:10:4294967295:
+%*15x: 100001091:0:10:
+%15x: 0X100001091:1:12:4294967295:
+%*15x: 0X100001091:0:12:
+%15x: 0x100001091:1:12:4294967295:
+%*15x: 0x100001091:0:12:
+%15x: +0:1:3:0:
+%*15x: +0:0:3:
+%15x: +0X0:1:5:0:
+%*15x: +0X0:0:5:
+%15x: +0x0:1:5:0:
+%*15x: +0x0:0:5:
+%15x: +1:1:3:1:
+%*15x: +1:0:3:
+%15x: +0X1:1:5:1:
+%*15x: +0X1:0:5:
+%15x: +0x1:1:5:1:
+%*15x: +0x1:0:5:
+%15x: +2a:1:4:42:
+%*15x: +2a:0:4:
+%15x: +2A:1:4:42:
+%*15x: +2A:0:4:
+%15x: +0X2a:1:6:42:
+%*15x: +0X2a:0:6:
+%15x: +0x2A:1:6:42:
+%*15x: +0x2A:0:6:
+%15x: +ffffffff:1:10:4294967295:
+%*15x: +ffffffff:0:10:
+%15x: +FFFFFFFF:1:10:4294967295:
+%*15x: +FFFFFFFF:0:10:
+%15x: +0Xffffffff:1:12:4294967295:
+%*15x: +0Xffffffff:0:12:
+%15x: +0xFFFFFFFF:1:12:4294967295:
+%*15x: +0xFFFFFFFF:0:12:
+%15x: +100000000:1:11:4294967295:
+%*15x: +100000000:0:11:
+%15x: +0X100000000:1:13:4294967295:
+%*15x: +0X100000000:0:13:
+%15x: +0x100000000:1:13:4294967295:
+%*15x: +0x100000000:0:13:
+%15x: +100001091:1:11:4294967295:
+%*15x: +100001091:0:11:
+%15x: +0X100001091:1:13:4294967295:
+%*15x: +0X100001091:0:13:
+%15x: +0x100001091:1:13:4294967295:
+%*15x: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input
new file mode 100644
index 0000000..78f75fd
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input
@@ -0,0 +1,714 @@
+%X::0:-1:
+%*X::0:-1:
+%X:-7b:1:3:4294967173:
+%*X:-7b:0:3:
+%X:-7B:1:3:4294967173:
+%*X:-7B:0:3:
+%X:-0X7b:1:5:4294967173:
+%*X:-0X7b:0:5:
+%X:-0x7B:1:5:4294967173:
+%*X:-0x7B:0:5:
+%X:-1:1:2:4294967295:
+%*X:-1:0:2:
+%X:-0X1:1:4:4294967295:
+%*X:-0X1:0:4:
+%X:-0x1:1:4:4294967295:
+%*X:-0x1:0:4:
+%X:-0:1:2:0:
+%*X:-0:0:2:
+%X:-0X0:1:4:0:
+%*X:-0X0:0:4:
+%X:-0x0:1:4:0:
+%*X:-0x0:0:4:
+%X:0:1:1:0:
+%*X:0:0:1:
+%X:0X0:1:3:0:
+%*X:0X0:0:3:
+%X:0x0:1:3:0:
+%*X:0x0:0:3:
+%X:1:1:1:1:
+%*X:1:0:1:
+%X:0X1:1:3:1:
+%*X:0X1:0:3:
+%X:0x1:1:3:1:
+%*X:0x1:0:3:
+%X:2a:1:2:42:
+%*X:2a:0:2:
+%X:2A:1:2:42:
+%*X:2A:0:2:
+%X:0X2a:1:4:42:
+%*X:0X2a:0:4:
+%X:0x2A:1:4:42:
+%*X:0x2A:0:4:
+%X:ffffffff:1:8:4294967295:
+%*X:ffffffff:0:8:
+%X:FFFFFFFF:1:8:4294967295:
+%*X:FFFFFFFF:0:8:
+%X:0Xffffffff:1:10:4294967295:
+%*X:0Xffffffff:0:10:
+%X:0xFFFFFFFF:1:10:4294967295:
+%*X:0xFFFFFFFF:0:10:
+%X:100000000:1:9:4294967295:
+%*X:100000000:0:9:
+%X:0X100000000:1:11:4294967295:
+%*X:0X100000000:0:11:
+%X:0x100000000:1:11:4294967295:
+%*X:0x100000000:0:11:
+%X:100001091:1:9:4294967295:
+%*X:100001091:0:9:
+%X:0X100001091:1:11:4294967295:
+%*X:0X100001091:0:11:
+%X:0x100001091:1:11:4294967295:
+%*X:0x100001091:0:11:
+%X:+0:1:2:0:
+%*X:+0:0:2:
+%X:+0X0:1:4:0:
+%*X:+0X0:0:4:
+%X:+0x0:1:4:0:
+%*X:+0x0:0:4:
+%X:+1:1:2:1:
+%*X:+1:0:2:
+%X:+0X1:1:4:1:
+%*X:+0X1:0:4:
+%X:+0x1:1:4:1:
+%*X:+0x1:0:4:
+%X:+2a:1:3:42:
+%*X:+2a:0:3:
+%X:+2A:1:3:42:
+%*X:+2A:0:3:
+%X:+0X2a:1:5:42:
+%*X:+0X2a:0:5:
+%X:+0x2A:1:5:42:
+%*X:+0x2A:0:5:
+%X:+ffffffff:1:9:4294967295:
+%*X:+ffffffff:0:9:
+%X:+FFFFFFFF:1:9:4294967295:
+%*X:+FFFFFFFF:0:9:
+%X:+0Xffffffff:1:11:4294967295:
+%*X:+0Xffffffff:0:11:
+%X:+0xFFFFFFFF:1:11:4294967295:
+%*X:+0xFFFFFFFF:0:11:
+%X:+100000000:1:10:4294967295:
+%*X:+100000000:0:10:
+%X:+0X100000000:1:12:4294967295:
+%*X:+0X100000000:0:12:
+%X:+0x100000000:1:12:4294967295:
+%*X:+0x100000000:0:12:
+%X:+100001091:1:10:4294967295:
+%*X:+100001091:0:10:
+%X:+0X100001091:1:12:4294967295:
+%*X:+0X100001091:0:12:
+%X:+0x100001091:1:12:4294967295:
+%*X:+0x100001091:0:12:
+%1X::0:-1:
+%*1X::0:-1:
+%1X:-7b:0:-1:
+%*1X:-7b:0:-1:
+%1X:-7B:0:-1:
+%*1X:-7B:0:-1:
+%1X:-0X7b:0:-1:
+%*1X:-0X7b:0:-1:
+%1X:-0x7B:0:-1:
+%*1X:-0x7B:0:-1:
+%1X:-1:0:-1:
+%*1X:-1:0:-1:
+%1X:-0X1:0:-1:
+%*1X:-0X1:0:-1:
+%1X:-0x1:0:-1:
+%*1X:-0x1:0:-1:
+%1X:-0:0:-1:
+%*1X:-0:0:-1:
+%1X:-0X0:0:-1:
+%*1X:-0X0:0:-1:
+%1X:-0x0:0:-1:
+%*1X:-0x0:0:-1:
+%1X:0:1:1:0:
+%*1X:0:0:1:
+%1X:0X0:1:1:0:
+%*1X:0X0:0:1:
+%1X:0x0:1:1:0:
+%*1X:0x0:0:1:
+%1X:1:1:1:1:
+%*1X:1:0:1:
+%1X:0X1:1:1:0:
+%*1X:0X1:0:1:
+%1X:0x1:1:1:0:
+%*1X:0x1:0:1:
+%1X:2a:1:1:2:
+%*1X:2a:0:1:
+%1X:2A:1:1:2:
+%*1X:2A:0:1:
+%1X:0X2a:1:1:0:
+%*1X:0X2a:0:1:
+%1X:0x2A:1:1:0:
+%*1X:0x2A:0:1:
+%1X:ffffffff:1:1:15:
+%*1X:ffffffff:0:1:
+%1X:FFFFFFFF:1:1:15:
+%*1X:FFFFFFFF:0:1:
+%1X:0Xffffffff:1:1:0:
+%*1X:0Xffffffff:0:1:
+%1X:0xFFFFFFFF:1:1:0:
+%*1X:0xFFFFFFFF:0:1:
+%1X:100000000:1:1:1:
+%*1X:100000000:0:1:
+%1X:0X100000000:1:1:0:
+%*1X:0X100000000:0:1:
+%1X:0x100000000:1:1:0:
+%*1X:0x100000000:0:1:
+%1X:100001091:1:1:1:
+%*1X:100001091:0:1:
+%1X:0X100001091:1:1:0:
+%*1X:0X100001091:0:1:
+%1X:0x100001091:1:1:0:
+%*1X:0x100001091:0:1:
+%1X:+0:0:-1:
+%*1X:+0:0:-1:
+%1X:+0X0:0:-1:
+%*1X:+0X0:0:-1:
+%1X:+0x0:0:-1:
+%*1X:+0x0:0:-1:
+%1X:+1:0:-1:
+%*1X:+1:0:-1:
+%1X:+0X1:0:-1:
+%*1X:+0X1:0:-1:
+%1X:+0x1:0:-1:
+%*1X:+0x1:0:-1:
+%1X:+2a:0:-1:
+%*1X:+2a:0:-1:
+%1X:+2A:0:-1:
+%*1X:+2A:0:-1:
+%1X:+0X2a:0:-1:
+%*1X:+0X2a:0:-1:
+%1X:+0x2A:0:-1:
+%*1X:+0x2A:0:-1:
+%1X:+ffffffff:0:-1:
+%*1X:+ffffffff:0:-1:
+%1X:+FFFFFFFF:0:-1:
+%*1X:+FFFFFFFF:0:-1:
+%1X:+0Xffffffff:0:-1:
+%*1X:+0Xffffffff:0:-1:
+%1X:+0xFFFFFFFF:0:-1:
+%*1X:+0xFFFFFFFF:0:-1:
+%1X:+100000000:0:-1:
+%*1X:+100000000:0:-1:
+%1X:+0X100000000:0:-1:
+%*1X:+0X100000000:0:-1:
+%1X:+0x100000000:0:-1:
+%*1X:+0x100000000:0:-1:
+%1X:+100001091:0:-1:
+%*1X:+100001091:0:-1:
+%1X:+0X100001091:0:-1:
+%*1X:+0X100001091:0:-1:
+%1X:+0x100001091:0:-1:
+%*1X:+0x100001091:0:-1:
+%2X::0:-1:
+%*2X::0:-1:
+%2X:-7b:1:2:4294967289:
+%*2X:-7b:0:2:
+%2X:-7B:1:2:4294967289:
+%*2X:-7B:0:2:
+%2X:-0X7b:1:2:0:
+%*2X:-0X7b:0:2:
+%2X:-0x7B:1:2:0:
+%*2X:-0x7B:0:2:
+%2X:-1:1:2:4294967295:
+%*2X:-1:0:2:
+%2X:-0X1:1:2:0:
+%*2X:-0X1:0:2:
+%2X:-0x1:1:2:0:
+%*2X:-0x1:0:2:
+%2X:-0:1:2:0:
+%*2X:-0:0:2:
+%2X:-0X0:1:2:0:
+%*2X:-0X0:0:2:
+%2X:-0x0:1:2:0:
+%*2X:-0x0:0:2:
+%2X:0:1:1:0:
+%*2X:0:0:1:
+%2X:0X0:0:-1:
+%*2X:0X0:0:-1:
+%2X:0x0:0:-1:
+%*2X:0x0:0:-1:
+%2X:1:1:1:1:
+%*2X:1:0:1:
+%2X:0X1:0:-1:
+%*2X:0X1:0:-1:
+%2X:0x1:0:-1:
+%*2X:0x1:0:-1:
+%2X:2a:1:2:42:
+%*2X:2a:0:2:
+%2X:2A:1:2:42:
+%*2X:2A:0:2:
+%2X:0X2a:0:-1:
+%*2X:0X2a:0:-1:
+%2X:0x2A:0:-1:
+%*2X:0x2A:0:-1:
+%2X:ffffffff:1:2:255:
+%*2X:ffffffff:0:2:
+%2X:FFFFFFFF:1:2:255:
+%*2X:FFFFFFFF:0:2:
+%2X:0Xffffffff:0:-1:
+%*2X:0Xffffffff:0:-1:
+%2X:0xFFFFFFFF:0:-1:
+%*2X:0xFFFFFFFF:0:-1:
+%2X:100000000:1:2:16:
+%*2X:100000000:0:2:
+%2X:0X100000000:0:-1:
+%*2X:0X100000000:0:-1:
+%2X:0x100000000:0:-1:
+%*2X:0x100000000:0:-1:
+%2X:100001091:1:2:16:
+%*2X:100001091:0:2:
+%2X:0X100001091:0:-1:
+%*2X:0X100001091:0:-1:
+%2X:0x100001091:0:-1:
+%*2X:0x100001091:0:-1:
+%2X:+0:1:2:0:
+%*2X:+0:0:2:
+%2X:+0X0:1:2:0:
+%*2X:+0X0:0:2:
+%2X:+0x0:1:2:0:
+%*2X:+0x0:0:2:
+%2X:+1:1:2:1:
+%*2X:+1:0:2:
+%2X:+0X1:1:2:0:
+%*2X:+0X1:0:2:
+%2X:+0x1:1:2:0:
+%*2X:+0x1:0:2:
+%2X:+2a:1:2:2:
+%*2X:+2a:0:2:
+%2X:+2A:1:2:2:
+%*2X:+2A:0:2:
+%2X:+0X2a:1:2:0:
+%*2X:+0X2a:0:2:
+%2X:+0x2A:1:2:0:
+%*2X:+0x2A:0:2:
+%2X:+ffffffff:1:2:15:
+%*2X:+ffffffff:0:2:
+%2X:+FFFFFFFF:1:2:15:
+%*2X:+FFFFFFFF:0:2:
+%2X:+0Xffffffff:1:2:0:
+%*2X:+0Xffffffff:0:2:
+%2X:+0xFFFFFFFF:1:2:0:
+%*2X:+0xFFFFFFFF:0:2:
+%2X:+100000000:1:2:1:
+%*2X:+100000000:0:2:
+%2X:+0X100000000:1:2:0:
+%*2X:+0X100000000:0:2:
+%2X:+0x100000000:1:2:0:
+%*2X:+0x100000000:0:2:
+%2X:+100001091:1:2:1:
+%*2X:+100001091:0:2:
+%2X:+0X100001091:1:2:0:
+%*2X:+0X100001091:0:2:
+%2X:+0x100001091:1:2:0:
+%*2X:+0x100001091:0:2:
+%8X::0:-1:
+%*8X::0:-1:
+%8X:-7b:1:3:4294967173:
+%*8X:-7b:0:3:
+%8X:-7B:1:3:4294967173:
+%*8X:-7B:0:3:
+%8X:-0X7b:1:5:4294967173:
+%*8X:-0X7b:0:5:
+%8X:-0x7B:1:5:4294967173:
+%*8X:-0x7B:0:5:
+%8X:-1:1:2:4294967295:
+%*8X:-1:0:2:
+%8X:-0X1:1:4:4294967295:
+%*8X:-0X1:0:4:
+%8X:-0x1:1:4:4294967295:
+%*8X:-0x1:0:4:
+%8X:-0:1:2:0:
+%*8X:-0:0:2:
+%8X:-0X0:1:4:0:
+%*8X:-0X0:0:4:
+%8X:-0x0:1:4:0:
+%*8X:-0x0:0:4:
+%8X:0:1:1:0:
+%*8X:0:0:1:
+%8X:0X0:1:3:0:
+%*8X:0X0:0:3:
+%8X:0x0:1:3:0:
+%*8X:0x0:0:3:
+%8X:1:1:1:1:
+%*8X:1:0:1:
+%8X:0X1:1:3:1:
+%*8X:0X1:0:3:
+%8X:0x1:1:3:1:
+%*8X:0x1:0:3:
+%8X:2a:1:2:42:
+%*8X:2a:0:2:
+%8X:2A:1:2:42:
+%*8X:2A:0:2:
+%8X:0X2a:1:4:42:
+%*8X:0X2a:0:4:
+%8X:0x2A:1:4:42:
+%*8X:0x2A:0:4:
+%8X:ffffffff:1:8:4294967295:
+%*8X:ffffffff:0:8:
+%8X:FFFFFFFF:1:8:4294967295:
+%*8X:FFFFFFFF:0:8:
+%8X:0Xffffffff:1:8:16777215:
+%*8X:0Xffffffff:0:8:
+%8X:0xFFFFFFFF:1:8:16777215:
+%*8X:0xFFFFFFFF:0:8:
+%8X:100000000:1:8:268435456:
+%*8X:100000000:0:8:
+%8X:0X100000000:1:8:1048576:
+%*8X:0X100000000:0:8:
+%8X:0x100000000:1:8:1048576:
+%*8X:0x100000000:0:8:
+%8X:100001091:1:8:268435721:
+%*8X:100001091:0:8:
+%8X:0X100001091:1:8:1048577:
+%*8X:0X100001091:0:8:
+%8X:0x100001091:1:8:1048577:
+%*8X:0x100001091:0:8:
+%8X:+0:1:2:0:
+%*8X:+0:0:2:
+%8X:+0X0:1:4:0:
+%*8X:+0X0:0:4:
+%8X:+0x0:1:4:0:
+%*8X:+0x0:0:4:
+%8X:+1:1:2:1:
+%*8X:+1:0:2:
+%8X:+0X1:1:4:1:
+%*8X:+0X1:0:4:
+%8X:+0x1:1:4:1:
+%*8X:+0x1:0:4:
+%8X:+2a:1:3:42:
+%*8X:+2a:0:3:
+%8X:+2A:1:3:42:
+%*8X:+2A:0:3:
+%8X:+0X2a:1:5:42:
+%*8X:+0X2a:0:5:
+%8X:+0x2A:1:5:42:
+%*8X:+0x2A:0:5:
+%8X:+ffffffff:1:8:268435455:
+%*8X:+ffffffff:0:8:
+%8X:+FFFFFFFF:1:8:268435455:
+%*8X:+FFFFFFFF:0:8:
+%8X:+0Xffffffff:1:8:1048575:
+%*8X:+0Xffffffff:0:8:
+%8X:+0xFFFFFFFF:1:8:1048575:
+%*8X:+0xFFFFFFFF:0:8:
+%8X:+100000000:1:8:16777216:
+%*8X:+100000000:0:8:
+%8X:+0X100000000:1:8:65536:
+%*8X:+0X100000000:0:8:
+%8X:+0x100000000:1:8:65536:
+%*8X:+0x100000000:0:8:
+%8X:+100001091:1:8:16777232:
+%*8X:+100001091:0:8:
+%8X:+0X100001091:1:8:65536:
+%*8X:+0X100001091:0:8:
+%8X:+0x100001091:1:8:65536:
+%*8X:+0x100001091:0:8:
+%15X::0:-1:
+%*15X::0:-1:
+%15X:-7b:1:3:4294967173:
+%*15X:-7b:0:3:
+%15X:-7B:1:3:4294967173:
+%*15X:-7B:0:3:
+%15X:-0X7b:1:5:4294967173:
+%*15X:-0X7b:0:5:
+%15X:-0x7B:1:5:4294967173:
+%*15X:-0x7B:0:5:
+%15X:-1:1:2:4294967295:
+%*15X:-1:0:2:
+%15X:-0X1:1:4:4294967295:
+%*15X:-0X1:0:4:
+%15X:-0x1:1:4:4294967295:
+%*15X:-0x1:0:4:
+%15X:-0:1:2:0:
+%*15X:-0:0:2:
+%15X:-0X0:1:4:0:
+%*15X:-0X0:0:4:
+%15X:-0x0:1:4:0:
+%*15X:-0x0:0:4:
+%15X:0:1:1:0:
+%*15X:0:0:1:
+%15X:0X0:1:3:0:
+%*15X:0X0:0:3:
+%15X:0x0:1:3:0:
+%*15X:0x0:0:3:
+%15X:1:1:1:1:
+%*15X:1:0:1:
+%15X:0X1:1:3:1:
+%*15X:0X1:0:3:
+%15X:0x1:1:3:1:
+%*15X:0x1:0:3:
+%15X:2a:1:2:42:
+%*15X:2a:0:2:
+%15X:2A:1:2:42:
+%*15X:2A:0:2:
+%15X:0X2a:1:4:42:
+%*15X:0X2a:0:4:
+%15X:0x2A:1:4:42:
+%*15X:0x2A:0:4:
+%15X:ffffffff:1:8:4294967295:
+%*15X:ffffffff:0:8:
+%15X:FFFFFFFF:1:8:4294967295:
+%*15X:FFFFFFFF:0:8:
+%15X:0Xffffffff:1:10:4294967295:
+%*15X:0Xffffffff:0:10:
+%15X:0xFFFFFFFF:1:10:4294967295:
+%*15X:0xFFFFFFFF:0:10:
+%15X:100000000:1:9:4294967295:
+%*15X:100000000:0:9:
+%15X:0X100000000:1:11:4294967295:
+%*15X:0X100000000:0:11:
+%15X:0x100000000:1:11:4294967295:
+%*15X:0x100000000:0:11:
+%15X:100001091:1:9:4294967295:
+%*15X:100001091:0:9:
+%15X:0X100001091:1:11:4294967295:
+%*15X:0X100001091:0:11:
+%15X:0x100001091:1:11:4294967295:
+%*15X:0x100001091:0:11:
+%15X:+0:1:2:0:
+%*15X:+0:0:2:
+%15X:+0X0:1:4:0:
+%*15X:+0X0:0:4:
+%15X:+0x0:1:4:0:
+%*15X:+0x0:0:4:
+%15X:+1:1:2:1:
+%*15X:+1:0:2:
+%15X:+0X1:1:4:1:
+%*15X:+0X1:0:4:
+%15X:+0x1:1:4:1:
+%*15X:+0x1:0:4:
+%15X:+2a:1:3:42:
+%*15X:+2a:0:3:
+%15X:+2A:1:3:42:
+%*15X:+2A:0:3:
+%15X:+0X2a:1:5:42:
+%*15X:+0X2a:0:5:
+%15X:+0x2A:1:5:42:
+%*15X:+0x2A:0:5:
+%15X:+ffffffff:1:9:4294967295:
+%*15X:+ffffffff:0:9:
+%15X:+FFFFFFFF:1:9:4294967295:
+%*15X:+FFFFFFFF:0:9:
+%15X:+0Xffffffff:1:11:4294967295:
+%*15X:+0Xffffffff:0:11:
+%15X:+0xFFFFFFFF:1:11:4294967295:
+%*15X:+0xFFFFFFFF:0:11:
+%15X:+100000000:1:10:4294967295:
+%*15X:+100000000:0:10:
+%15X:+0X100000000:1:12:4294967295:
+%*15X:+0X100000000:0:12:
+%15X:+0x100000000:1:12:4294967295:
+%*15X:+0x100000000:0:12:
+%15X:+100001091:1:10:4294967295:
+%*15X:+100001091:0:10:
+%15X:+0X100001091:1:12:4294967295:
+%*15X:+0X100001091:0:12:
+%15X:+0x100001091:1:12:4294967295:
+%*15X:+0x100001091:0:12:
+%2X: :0:-1:
+%*2X: :0:-1:
+%2X: -7b:1:3:4294967289:
+%*2X: -7b:0:3:
+%2X: -7B:1:3:4294967289:
+%*2X: -7B:0:3:
+%2X: -0X7b:1:3:0:
+%*2X: -0X7b:0:3:
+%2X: -0x7B:1:3:0:
+%*2X: -0x7B:0:3:
+%2X: -1:1:3:4294967295:
+%*2X: -1:0:3:
+%2X: -0X1:1:3:0:
+%*2X: -0X1:0:3:
+%2X: -0x1:1:3:0:
+%*2X: -0x1:0:3:
+%2X: -0:1:3:0:
+%*2X: -0:0:3:
+%2X: -0X0:1:3:0:
+%*2X: -0X0:0:3:
+%2X: -0x0:1:3:0:
+%*2X: -0x0:0:3:
+%2X: 0:1:2:0:
+%*2X: 0:0:2:
+%2X: 0X0:0:-1:
+%*2X: 0X0:0:-1:
+%2X: 0x0:0:-1:
+%*2X: 0x0:0:-1:
+%2X: 1:1:2:1:
+%*2X: 1:0:2:
+%2X: 0X1:0:-1:
+%*2X: 0X1:0:-1:
+%2X: 0x1:0:-1:
+%*2X: 0x1:0:-1:
+%2X: 2a:1:3:42:
+%*2X: 2a:0:3:
+%2X: 2A:1:3:42:
+%*2X: 2A:0:3:
+%2X: 0X2a:0:-1:
+%*2X: 0X2a:0:-1:
+%2X: 0x2A:0:-1:
+%*2X: 0x2A:0:-1:
+%2X: ffffffff:1:3:255:
+%*2X: ffffffff:0:3:
+%2X: FFFFFFFF:1:3:255:
+%*2X: FFFFFFFF:0:3:
+%2X: 0Xffffffff:0:-1:
+%*2X: 0Xffffffff:0:-1:
+%2X: 0xFFFFFFFF:0:-1:
+%*2X: 0xFFFFFFFF:0:-1:
+%2X: 100000000:1:3:16:
+%*2X: 100000000:0:3:
+%2X: 0X100000000:0:-1:
+%*2X: 0X100000000:0:-1:
+%2X: 0x100000000:0:-1:
+%*2X: 0x100000000:0:-1:
+%2X: 100001091:1:3:16:
+%*2X: 100001091:0:3:
+%2X: 0X100001091:0:-1:
+%*2X: 0X100001091:0:-1:
+%2X: 0x100001091:0:-1:
+%*2X: 0x100001091:0:-1:
+%2X: +0:1:3:0:
+%*2X: +0:0:3:
+%2X: +0X0:1:3:0:
+%*2X: +0X0:0:3:
+%2X: +0x0:1:3:0:
+%*2X: +0x0:0:3:
+%2X: +1:1:3:1:
+%*2X: +1:0:3:
+%2X: +0X1:1:3:0:
+%*2X: +0X1:0:3:
+%2X: +0x1:1:3:0:
+%*2X: +0x1:0:3:
+%2X: +2a:1:3:2:
+%*2X: +2a:0:3:
+%2X: +2A:1:3:2:
+%*2X: +2A:0:3:
+%2X: +0X2a:1:3:0:
+%*2X: +0X2a:0:3:
+%2X: +0x2A:1:3:0:
+%*2X: +0x2A:0:3:
+%2X: +ffffffff:1:3:15:
+%*2X: +ffffffff:0:3:
+%2X: +FFFFFFFF:1:3:15:
+%*2X: +FFFFFFFF:0:3:
+%2X: +0Xffffffff:1:3:0:
+%*2X: +0Xffffffff:0:3:
+%2X: +0xFFFFFFFF:1:3:0:
+%*2X: +0xFFFFFFFF:0:3:
+%2X: +100000000:1:3:1:
+%*2X: +100000000:0:3:
+%2X: +0X100000000:1:3:0:
+%*2X: +0X100000000:0:3:
+%2X: +0x100000000:1:3:0:
+%*2X: +0x100000000:0:3:
+%2X: +100001091:1:3:1:
+%*2X: +100001091:0:3:
+%2X: +0X100001091:1:3:0:
+%*2X: +0X100001091:0:3:
+%2X: +0x100001091:1:3:0:
+%*2X: +0x100001091:0:3:
+%15X: :0:-1:
+%*15X: :0:-1:
+%15X: -7b:1:4:4294967173:
+%*15X: -7b:0:4:
+%15X: -7B:1:4:4294967173:
+%*15X: -7B:0:4:
+%15X: -0X7b:1:6:4294967173:
+%*15X: -0X7b:0:6:
+%15X: -0x7B:1:6:4294967173:
+%*15X: -0x7B:0:6:
+%15X: -1:1:3:4294967295:
+%*15X: -1:0:3:
+%15X: -0X1:1:5:4294967295:
+%*15X: -0X1:0:5:
+%15X: -0x1:1:5:4294967295:
+%*15X: -0x1:0:5:
+%15X: -0:1:3:0:
+%*15X: -0:0:3:
+%15X: -0X0:1:5:0:
+%*15X: -0X0:0:5:
+%15X: -0x0:1:5:0:
+%*15X: -0x0:0:5:
+%15X: 0:1:2:0:
+%*15X: 0:0:2:
+%15X: 0X0:1:4:0:
+%*15X: 0X0:0:4:
+%15X: 0x0:1:4:0:
+%*15X: 0x0:0:4:
+%15X: 1:1:2:1:
+%*15X: 1:0:2:
+%15X: 0X1:1:4:1:
+%*15X: 0X1:0:4:
+%15X: 0x1:1:4:1:
+%*15X: 0x1:0:4:
+%15X: 2a:1:3:42:
+%*15X: 2a:0:3:
+%15X: 2A:1:3:42:
+%*15X: 2A:0:3:
+%15X: 0X2a:1:5:42:
+%*15X: 0X2a:0:5:
+%15X: 0x2A:1:5:42:
+%*15X: 0x2A:0:5:
+%15X: ffffffff:1:9:4294967295:
+%*15X: ffffffff:0:9:
+%15X: FFFFFFFF:1:9:4294967295:
+%*15X: FFFFFFFF:0:9:
+%15X: 0Xffffffff:1:11:4294967295:
+%*15X: 0Xffffffff:0:11:
+%15X: 0xFFFFFFFF:1:11:4294967295:
+%*15X: 0xFFFFFFFF:0:11:
+%15X: 100000000:1:10:4294967295:
+%*15X: 100000000:0:10:
+%15X: 0X100000000:1:12:4294967295:
+%*15X: 0X100000000:0:12:
+%15X: 0x100000000:1:12:4294967295:
+%*15X: 0x100000000:0:12:
+%15X: 100001091:1:10:4294967295:
+%*15X: 100001091:0:10:
+%15X: 0X100001091:1:12:4294967295:
+%*15X: 0X100001091:0:12:
+%15X: 0x100001091:1:12:4294967295:
+%*15X: 0x100001091:0:12:
+%15X: +0:1:3:0:
+%*15X: +0:0:3:
+%15X: +0X0:1:5:0:
+%*15X: +0X0:0:5:
+%15X: +0x0:1:5:0:
+%*15X: +0x0:0:5:
+%15X: +1:1:3:1:
+%*15X: +1:0:3:
+%15X: +0X1:1:5:1:
+%*15X: +0X1:0:5:
+%15X: +0x1:1:5:1:
+%*15X: +0x1:0:5:
+%15X: +2a:1:4:42:
+%*15X: +2a:0:4:
+%15X: +2A:1:4:42:
+%*15X: +2A:0:4:
+%15X: +0X2a:1:6:42:
+%*15X: +0X2a:0:6:
+%15X: +0x2A:1:6:42:
+%*15X: +0x2A:0:6:
+%15X: +ffffffff:1:10:4294967295:
+%*15X: +ffffffff:0:10:
+%15X: +FFFFFFFF:1:10:4294967295:
+%*15X: +FFFFFFFF:0:10:
+%15X: +0Xffffffff:1:12:4294967295:
+%*15X: +0Xffffffff:0:12:
+%15X: +0xFFFFFFFF:1:12:4294967295:
+%*15X: +0xFFFFFFFF:0:12:
+%15X: +100000000:1:11:4294967295:
+%*15X: +100000000:0:11:
+%15X: +0X100000000:1:13:4294967295:
+%*15X: +0X100000000:0:13:
+%15X: +0x100000000:1:13:4294967295:
+%*15X: +0x100000000:0:13:
+%15X: +100001091:1:11:4294967295:
+%*15X: +100001091:0:11:
+%15X: +0X100001091:1:13:4294967295:
+%*15X: +0X100001091:0:13:
+%15X: +0x100001091:1:13:4294967295:
+%*15X: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input
new file mode 100644
index 0000000..7f76847
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input
@@ -0,0 +1,644 @@
+%lb::0:-1:
+%*lb::0:-1:
+%lb:-1111011:1:8:4294967173:
+%*lb:-1111011:0:8:
+%lb:-0B1111011:1:10:4294967173:
+%*lb:-0B1111011:0:10:
+%lb:-0b1111011:1:10:4294967173:
+%*lb:-0b1111011:0:10:
+%lb:-1:1:2:4294967295:
+%*lb:-1:0:2:
+%lb:-0B1:1:4:4294967295:
+%*lb:-0B1:0:4:
+%lb:-0b1:1:4:4294967295:
+%*lb:-0b1:0:4:
+%lb:-0:1:2:0:
+%*lb:-0:0:2:
+%lb:-0B0:1:4:0:
+%*lb:-0B0:0:4:
+%lb:-0b0:1:4:0:
+%*lb:-0b0:0:4:
+%lb:0:1:1:0:
+%*lb:0:0:1:
+%lb:0B0:1:3:0:
+%*lb:0B0:0:3:
+%lb:0b0:1:3:0:
+%*lb:0b0:0:3:
+%lb:1:1:1:1:
+%*lb:1:0:1:
+%lb:0B1:1:3:1:
+%*lb:0B1:0:3:
+%lb:0b1:1:3:1:
+%*lb:0b1:0:3:
+%lb:101010:1:6:42:
+%*lb:101010:0:6:
+%lb:0B101010:1:8:42:
+%*lb:0B101010:0:8:
+%lb:0b101010:1:8:42:
+%*lb:0b101010:0:8:
+%lb:11111111111111111111111111111111:1:32:4294967295:
+%*lb:11111111111111111111111111111111:0:32:
+%lb:0B11111111111111111111111111111111:1:34:4294967295:
+%*lb:0B11111111111111111111111111111111:0:34:
+%lb:0b11111111111111111111111111111111:1:34:4294967295:
+%*lb:0b11111111111111111111111111111111:0:34:
+%lb:100000000000000000000000000000000:1:33:4294967295:
+%*lb:100000000000000000000000000000000:0:33:
+%lb:0B100000000000000000000000000000000:1:35:4294967295:
+%*lb:0B100000000000000000000000000000000:0:35:
+%lb:0b100000000000000000000000000000000:1:35:4294967295:
+%*lb:0b100000000000000000000000000000000:0:35:
+%lb:100000000000000000001000010010001:1:33:4294967295:
+%*lb:100000000000000000001000010010001:0:33:
+%lb:0B100000000000000000001000010010001:1:35:4294967295:
+%*lb:0B100000000000000000001000010010001:0:35:
+%lb:0b100000000000000000001000010010001:1:35:4294967295:
+%*lb:0b100000000000000000001000010010001:0:35:
+%lb:+0:1:2:0:
+%*lb:+0:0:2:
+%lb:+0B0:1:4:0:
+%*lb:+0B0:0:4:
+%lb:+0b0:1:4:0:
+%*lb:+0b0:0:4:
+%lb:+1:1:2:1:
+%*lb:+1:0:2:
+%lb:+0B1:1:4:1:
+%*lb:+0B1:0:4:
+%lb:+0b1:1:4:1:
+%*lb:+0b1:0:4:
+%lb:+101010:1:7:42:
+%*lb:+101010:0:7:
+%lb:+0B101010:1:9:42:
+%*lb:+0B101010:0:9:
+%lb:+0b101010:1:9:42:
+%*lb:+0b101010:0:9:
+%lb:+11111111111111111111111111111111:1:33:4294967295:
+%*lb:+11111111111111111111111111111111:0:33:
+%lb:+0B11111111111111111111111111111111:1:35:4294967295:
+%*lb:+0B11111111111111111111111111111111:0:35:
+%lb:+0b11111111111111111111111111111111:1:35:4294967295:
+%*lb:+0b11111111111111111111111111111111:0:35:
+%lb:+100000000000000000000000000000000:1:34:4294967295:
+%*lb:+100000000000000000000000000000000:0:34:
+%lb:+0B100000000000000000000000000000000:1:36:4294967295:
+%*lb:+0B100000000000000000000000000000000:0:36:
+%lb:+0b100000000000000000000000000000000:1:36:4294967295:
+%*lb:+0b100000000000000000000000000000000:0:36:
+%lb:+100000000000000000001000010010001:1:34:4294967295:
+%*lb:+100000000000000000001000010010001:0:34:
+%lb:+0B100000000000000000001000010010001:1:36:4294967295:
+%*lb:+0B100000000000000000001000010010001:0:36:
+%lb:+0b100000000000000000001000010010001:1:36:4294967295:
+%*lb:+0b100000000000000000001000010010001:0:36:
+%1lb::0:-1:
+%*1lb::0:-1:
+%1lb:-1111011:0:-1:
+%*1lb:-1111011:0:-1:
+%1lb:-0B1111011:0:-1:
+%*1lb:-0B1111011:0:-1:
+%1lb:-0b1111011:0:-1:
+%*1lb:-0b1111011:0:-1:
+%1lb:-1:0:-1:
+%*1lb:-1:0:-1:
+%1lb:-0B1:0:-1:
+%*1lb:-0B1:0:-1:
+%1lb:-0b1:0:-1:
+%*1lb:-0b1:0:-1:
+%1lb:-0:0:-1:
+%*1lb:-0:0:-1:
+%1lb:-0B0:0:-1:
+%*1lb:-0B0:0:-1:
+%1lb:-0b0:0:-1:
+%*1lb:-0b0:0:-1:
+%1lb:0:1:1:0:
+%*1lb:0:0:1:
+%1lb:0B0:1:1:0:
+%*1lb:0B0:0:1:
+%1lb:0b0:1:1:0:
+%*1lb:0b0:0:1:
+%1lb:1:1:1:1:
+%*1lb:1:0:1:
+%1lb:0B1:1:1:0:
+%*1lb:0B1:0:1:
+%1lb:0b1:1:1:0:
+%*1lb:0b1:0:1:
+%1lb:101010:1:1:1:
+%*1lb:101010:0:1:
+%1lb:0B101010:1:1:0:
+%*1lb:0B101010:0:1:
+%1lb:0b101010:1:1:0:
+%*1lb:0b101010:0:1:
+%1lb:11111111111111111111111111111111:1:1:1:
+%*1lb:11111111111111111111111111111111:0:1:
+%1lb:0B11111111111111111111111111111111:1:1:0:
+%*1lb:0B11111111111111111111111111111111:0:1:
+%1lb:0b11111111111111111111111111111111:1:1:0:
+%*1lb:0b11111111111111111111111111111111:0:1:
+%1lb:100000000000000000000000000000000:1:1:1:
+%*1lb:100000000000000000000000000000000:0:1:
+%1lb:0B100000000000000000000000000000000:1:1:0:
+%*1lb:0B100000000000000000000000000000000:0:1:
+%1lb:0b100000000000000000000000000000000:1:1:0:
+%*1lb:0b100000000000000000000000000000000:0:1:
+%1lb:100000000000000000001000010010001:1:1:1:
+%*1lb:100000000000000000001000010010001:0:1:
+%1lb:0B100000000000000000001000010010001:1:1:0:
+%*1lb:0B100000000000000000001000010010001:0:1:
+%1lb:0b100000000000000000001000010010001:1:1:0:
+%*1lb:0b100000000000000000001000010010001:0:1:
+%1lb:+0:0:-1:
+%*1lb:+0:0:-1:
+%1lb:+0B0:0:-1:
+%*1lb:+0B0:0:-1:
+%1lb:+0b0:0:-1:
+%*1lb:+0b0:0:-1:
+%1lb:+1:0:-1:
+%*1lb:+1:0:-1:
+%1lb:+0B1:0:-1:
+%*1lb:+0B1:0:-1:
+%1lb:+0b1:0:-1:
+%*1lb:+0b1:0:-1:
+%1lb:+101010:0:-1:
+%*1lb:+101010:0:-1:
+%1lb:+0B101010:0:-1:
+%*1lb:+0B101010:0:-1:
+%1lb:+0b101010:0:-1:
+%*1lb:+0b101010:0:-1:
+%1lb:+11111111111111111111111111111111:0:-1:
+%*1lb:+11111111111111111111111111111111:0:-1:
+%1lb:+0B11111111111111111111111111111111:0:-1:
+%*1lb:+0B11111111111111111111111111111111:0:-1:
+%1lb:+0b11111111111111111111111111111111:0:-1:
+%*1lb:+0b11111111111111111111111111111111:0:-1:
+%1lb:+100000000000000000000000000000000:0:-1:
+%*1lb:+100000000000000000000000000000000:0:-1:
+%1lb:+0B100000000000000000000000000000000:0:-1:
+%*1lb:+0B100000000000000000000000000000000:0:-1:
+%1lb:+0b100000000000000000000000000000000:0:-1:
+%*1lb:+0b100000000000000000000000000000000:0:-1:
+%1lb:+100000000000000000001000010010001:0:-1:
+%*1lb:+100000000000000000001000010010001:0:-1:
+%1lb:+0B100000000000000000001000010010001:0:-1:
+%*1lb:+0B100000000000000000001000010010001:0:-1:
+%1lb:+0b100000000000000000001000010010001:0:-1:
+%*1lb:+0b100000000000000000001000010010001:0:-1:
+%2lb::0:-1:
+%*2lb::0:-1:
+%2lb:-1111011:1:2:4294967295:
+%*2lb:-1111011:0:2:
+%2lb:-0B1111011:1:2:0:
+%*2lb:-0B1111011:0:2:
+%2lb:-0b1111011:1:2:0:
+%*2lb:-0b1111011:0:2:
+%2lb:-1:1:2:4294967295:
+%*2lb:-1:0:2:
+%2lb:-0B1:1:2:0:
+%*2lb:-0B1:0:2:
+%2lb:-0b1:1:2:0:
+%*2lb:-0b1:0:2:
+%2lb:-0:1:2:0:
+%*2lb:-0:0:2:
+%2lb:-0B0:1:2:0:
+%*2lb:-0B0:0:2:
+%2lb:-0b0:1:2:0:
+%*2lb:-0b0:0:2:
+%2lb:0:1:1:0:
+%*2lb:0:0:1:
+%2lb:0B0:0:-1:
+%*2lb:0B0:0:-1:
+%2lb:0b0:0:-1:
+%*2lb:0b0:0:-1:
+%2lb:1:1:1:1:
+%*2lb:1:0:1:
+%2lb:0B1:0:-1:
+%*2lb:0B1:0:-1:
+%2lb:0b1:0:-1:
+%*2lb:0b1:0:-1:
+%2lb:101010:1:2:2:
+%*2lb:101010:0:2:
+%2lb:0B101010:0:-1:
+%*2lb:0B101010:0:-1:
+%2lb:0b101010:0:-1:
+%*2lb:0b101010:0:-1:
+%2lb:11111111111111111111111111111111:1:2:3:
+%*2lb:11111111111111111111111111111111:0:2:
+%2lb:0B11111111111111111111111111111111:0:-1:
+%*2lb:0B11111111111111111111111111111111:0:-1:
+%2lb:0b11111111111111111111111111111111:0:-1:
+%*2lb:0b11111111111111111111111111111111:0:-1:
+%2lb:100000000000000000000000000000000:1:2:2:
+%*2lb:100000000000000000000000000000000:0:2:
+%2lb:0B100000000000000000000000000000000:0:-1:
+%*2lb:0B100000000000000000000000000000000:0:-1:
+%2lb:0b100000000000000000000000000000000:0:-1:
+%*2lb:0b100000000000000000000000000000000:0:-1:
+%2lb:100000000000000000001000010010001:1:2:2:
+%*2lb:100000000000000000001000010010001:0:2:
+%2lb:0B100000000000000000001000010010001:0:-1:
+%*2lb:0B100000000000000000001000010010001:0:-1:
+%2lb:0b100000000000000000001000010010001:0:-1:
+%*2lb:0b100000000000000000001000010010001:0:-1:
+%2lb:+0:1:2:0:
+%*2lb:+0:0:2:
+%2lb:+0B0:1:2:0:
+%*2lb:+0B0:0:2:
+%2lb:+0b0:1:2:0:
+%*2lb:+0b0:0:2:
+%2lb:+1:1:2:1:
+%*2lb:+1:0:2:
+%2lb:+0B1:1:2:0:
+%*2lb:+0B1:0:2:
+%2lb:+0b1:1:2:0:
+%*2lb:+0b1:0:2:
+%2lb:+101010:1:2:1:
+%*2lb:+101010:0:2:
+%2lb:+0B101010:1:2:0:
+%*2lb:+0B101010:0:2:
+%2lb:+0b101010:1:2:0:
+%*2lb:+0b101010:0:2:
+%2lb:+11111111111111111111111111111111:1:2:1:
+%*2lb:+11111111111111111111111111111111:0:2:
+%2lb:+0B11111111111111111111111111111111:1:2:0:
+%*2lb:+0B11111111111111111111111111111111:0:2:
+%2lb:+0b11111111111111111111111111111111:1:2:0:
+%*2lb:+0b11111111111111111111111111111111:0:2:
+%2lb:+100000000000000000000000000000000:1:2:1:
+%*2lb:+100000000000000000000000000000000:0:2:
+%2lb:+0B100000000000000000000000000000000:1:2:0:
+%*2lb:+0B100000000000000000000000000000000:0:2:
+%2lb:+0b100000000000000000000000000000000:1:2:0:
+%*2lb:+0b100000000000000000000000000000000:0:2:
+%2lb:+100000000000000000001000010010001:1:2:1:
+%*2lb:+100000000000000000001000010010001:0:2:
+%2lb:+0B100000000000000000001000010010001:1:2:0:
+%*2lb:+0B100000000000000000001000010010001:0:2:
+%2lb:+0b100000000000000000001000010010001:1:2:0:
+%*2lb:+0b100000000000000000001000010010001:0:2:
+%8lb::0:-1:
+%*8lb::0:-1:
+%8lb:-1111011:1:8:4294967173:
+%*8lb:-1111011:0:8:
+%8lb:-0B1111011:1:8:4294967266:
+%*8lb:-0B1111011:0:8:
+%8lb:-0b1111011:1:8:4294967266:
+%*8lb:-0b1111011:0:8:
+%8lb:-1:1:2:4294967295:
+%*8lb:-1:0:2:
+%8lb:-0B1:1:4:4294967295:
+%*8lb:-0B1:0:4:
+%8lb:-0b1:1:4:4294967295:
+%*8lb:-0b1:0:4:
+%8lb:-0:1:2:0:
+%*8lb:-0:0:2:
+%8lb:-0B0:1:4:0:
+%*8lb:-0B0:0:4:
+%8lb:-0b0:1:4:0:
+%*8lb:-0b0:0:4:
+%8lb:0:1:1:0:
+%*8lb:0:0:1:
+%8lb:0B0:1:3:0:
+%*8lb:0B0:0:3:
+%8lb:0b0:1:3:0:
+%*8lb:0b0:0:3:
+%8lb:1:1:1:1:
+%*8lb:1:0:1:
+%8lb:0B1:1:3:1:
+%*8lb:0B1:0:3:
+%8lb:0b1:1:3:1:
+%*8lb:0b1:0:3:
+%8lb:101010:1:6:42:
+%*8lb:101010:0:6:
+%8lb:0B101010:1:8:42:
+%*8lb:0B101010:0:8:
+%8lb:0b101010:1:8:42:
+%*8lb:0b101010:0:8:
+%8lb:11111111111111111111111111111111:1:8:255:
+%*8lb:11111111111111111111111111111111:0:8:
+%8lb:0B11111111111111111111111111111111:1:8:63:
+%*8lb:0B11111111111111111111111111111111:0:8:
+%8lb:0b11111111111111111111111111111111:1:8:63:
+%*8lb:0b11111111111111111111111111111111:0:8:
+%8lb:100000000000000000000000000000000:1:8:128:
+%*8lb:100000000000000000000000000000000:0:8:
+%8lb:0B100000000000000000000000000000000:1:8:32:
+%*8lb:0B100000000000000000000000000000000:0:8:
+%8lb:0b100000000000000000000000000000000:1:8:32:
+%*8lb:0b100000000000000000000000000000000:0:8:
+%8lb:100000000000000000001000010010001:1:8:128:
+%*8lb:100000000000000000001000010010001:0:8:
+%8lb:0B100000000000000000001000010010001:1:8:32:
+%*8lb:0B100000000000000000001000010010001:0:8:
+%8lb:0b100000000000000000001000010010001:1:8:32:
+%*8lb:0b100000000000000000001000010010001:0:8:
+%8lb:+0:1:2:0:
+%*8lb:+0:0:2:
+%8lb:+0B0:1:4:0:
+%*8lb:+0B0:0:4:
+%8lb:+0b0:1:4:0:
+%*8lb:+0b0:0:4:
+%8lb:+1:1:2:1:
+%*8lb:+1:0:2:
+%8lb:+0B1:1:4:1:
+%*8lb:+0B1:0:4:
+%8lb:+0b1:1:4:1:
+%*8lb:+0b1:0:4:
+%8lb:+101010:1:7:42:
+%*8lb:+101010:0:7:
+%8lb:+0B101010:1:8:21:
+%*8lb:+0B101010:0:8:
+%8lb:+0b101010:1:8:21:
+%*8lb:+0b101010:0:8:
+%8lb:+11111111111111111111111111111111:1:8:127:
+%*8lb:+11111111111111111111111111111111:0:8:
+%8lb:+0B11111111111111111111111111111111:1:8:31:
+%*8lb:+0B11111111111111111111111111111111:0:8:
+%8lb:+0b11111111111111111111111111111111:1:8:31:
+%*8lb:+0b11111111111111111111111111111111:0:8:
+%8lb:+100000000000000000000000000000000:1:8:64:
+%*8lb:+100000000000000000000000000000000:0:8:
+%8lb:+0B100000000000000000000000000000000:1:8:16:
+%*8lb:+0B100000000000000000000000000000000:0:8:
+%8lb:+0b100000000000000000000000000000000:1:8:16:
+%*8lb:+0b100000000000000000000000000000000:0:8:
+%8lb:+100000000000000000001000010010001:1:8:64:
+%*8lb:+100000000000000000001000010010001:0:8:
+%8lb:+0B100000000000000000001000010010001:1:8:16:
+%*8lb:+0B100000000000000000001000010010001:0:8:
+%8lb:+0b100000000000000000001000010010001:1:8:16:
+%*8lb:+0b100000000000000000001000010010001:0:8:
+%15lb::0:-1:
+%*15lb::0:-1:
+%15lb:-1111011:1:8:4294967173:
+%*15lb:-1111011:0:8:
+%15lb:-0B1111011:1:10:4294967173:
+%*15lb:-0B1111011:0:10:
+%15lb:-0b1111011:1:10:4294967173:
+%*15lb:-0b1111011:0:10:
+%15lb:-1:1:2:4294967295:
+%*15lb:-1:0:2:
+%15lb:-0B1:1:4:4294967295:
+%*15lb:-0B1:0:4:
+%15lb:-0b1:1:4:4294967295:
+%*15lb:-0b1:0:4:
+%15lb:-0:1:2:0:
+%*15lb:-0:0:2:
+%15lb:-0B0:1:4:0:
+%*15lb:-0B0:0:4:
+%15lb:-0b0:1:4:0:
+%*15lb:-0b0:0:4:
+%15lb:0:1:1:0:
+%*15lb:0:0:1:
+%15lb:0B0:1:3:0:
+%*15lb:0B0:0:3:
+%15lb:0b0:1:3:0:
+%*15lb:0b0:0:3:
+%15lb:1:1:1:1:
+%*15lb:1:0:1:
+%15lb:0B1:1:3:1:
+%*15lb:0B1:0:3:
+%15lb:0b1:1:3:1:
+%*15lb:0b1:0:3:
+%15lb:101010:1:6:42:
+%*15lb:101010:0:6:
+%15lb:0B101010:1:8:42:
+%*15lb:0B101010:0:8:
+%15lb:0b101010:1:8:42:
+%*15lb:0b101010:0:8:
+%15lb:11111111111111111111111111111111:1:15:32767:
+%*15lb:11111111111111111111111111111111:0:15:
+%15lb:0B11111111111111111111111111111111:1:15:8191:
+%*15lb:0B11111111111111111111111111111111:0:15:
+%15lb:0b11111111111111111111111111111111:1:15:8191:
+%*15lb:0b11111111111111111111111111111111:0:15:
+%15lb:100000000000000000000000000000000:1:15:16384:
+%*15lb:100000000000000000000000000000000:0:15:
+%15lb:0B100000000000000000000000000000000:1:15:4096:
+%*15lb:0B100000000000000000000000000000000:0:15:
+%15lb:0b100000000000000000000000000000000:1:15:4096:
+%*15lb:0b100000000000000000000000000000000:0:15:
+%15lb:100000000000000000001000010010001:1:15:16384:
+%*15lb:100000000000000000001000010010001:0:15:
+%15lb:0B100000000000000000001000010010001:1:15:4096:
+%*15lb:0B100000000000000000001000010010001:0:15:
+%15lb:0b100000000000000000001000010010001:1:15:4096:
+%*15lb:0b100000000000000000001000010010001:0:15:
+%15lb:+0:1:2:0:
+%*15lb:+0:0:2:
+%15lb:+0B0:1:4:0:
+%*15lb:+0B0:0:4:
+%15lb:+0b0:1:4:0:
+%*15lb:+0b0:0:4:
+%15lb:+1:1:2:1:
+%*15lb:+1:0:2:
+%15lb:+0B1:1:4:1:
+%*15lb:+0B1:0:4:
+%15lb:+0b1:1:4:1:
+%*15lb:+0b1:0:4:
+%15lb:+101010:1:7:42:
+%*15lb:+101010:0:7:
+%15lb:+0B101010:1:9:42:
+%*15lb:+0B101010:0:9:
+%15lb:+0b101010:1:9:42:
+%*15lb:+0b101010:0:9:
+%15lb:+11111111111111111111111111111111:1:15:16383:
+%*15lb:+11111111111111111111111111111111:0:15:
+%15lb:+0B11111111111111111111111111111111:1:15:4095:
+%*15lb:+0B11111111111111111111111111111111:0:15:
+%15lb:+0b11111111111111111111111111111111:1:15:4095:
+%*15lb:+0b11111111111111111111111111111111:0:15:
+%15lb:+100000000000000000000000000000000:1:15:8192:
+%*15lb:+100000000000000000000000000000000:0:15:
+%15lb:+0B100000000000000000000000000000000:1:15:2048:
+%*15lb:+0B100000000000000000000000000000000:0:15:
+%15lb:+0b100000000000000000000000000000000:1:15:2048:
+%*15lb:+0b100000000000000000000000000000000:0:15:
+%15lb:+100000000000000000001000010010001:1:15:8192:
+%*15lb:+100000000000000000001000010010001:0:15:
+%15lb:+0B100000000000000000001000010010001:1:15:2048:
+%*15lb:+0B100000000000000000001000010010001:0:15:
+%15lb:+0b100000000000000000001000010010001:1:15:2048:
+%*15lb:+0b100000000000000000001000010010001:0:15:
+%2lb: :0:-1:
+%*2lb: :0:-1:
+%2lb: -1111011:1:3:4294967295:
+%*2lb: -1111011:0:3:
+%2lb: -0B1111011:1:3:0:
+%*2lb: -0B1111011:0:3:
+%2lb: -0b1111011:1:3:0:
+%*2lb: -0b1111011:0:3:
+%2lb: -1:1:3:4294967295:
+%*2lb: -1:0:3:
+%2lb: -0B1:1:3:0:
+%*2lb: -0B1:0:3:
+%2lb: -0b1:1:3:0:
+%*2lb: -0b1:0:3:
+%2lb: -0:1:3:0:
+%*2lb: -0:0:3:
+%2lb: -0B0:1:3:0:
+%*2lb: -0B0:0:3:
+%2lb: -0b0:1:3:0:
+%*2lb: -0b0:0:3:
+%2lb: 0:1:2:0:
+%*2lb: 0:0:2:
+%2lb: 0B0:0:-1:
+%*2lb: 0B0:0:-1:
+%2lb: 0b0:0:-1:
+%*2lb: 0b0:0:-1:
+%2lb: 1:1:2:1:
+%*2lb: 1:0:2:
+%2lb: 0B1:0:-1:
+%*2lb: 0B1:0:-1:
+%2lb: 0b1:0:-1:
+%*2lb: 0b1:0:-1:
+%2lb: 101010:1:3:2:
+%*2lb: 101010:0:3:
+%2lb: 0B101010:0:-1:
+%*2lb: 0B101010:0:-1:
+%2lb: 0b101010:0:-1:
+%*2lb: 0b101010:0:-1:
+%2lb: 11111111111111111111111111111111:1:3:3:
+%*2lb: 11111111111111111111111111111111:0:3:
+%2lb: 0B11111111111111111111111111111111:0:-1:
+%*2lb: 0B11111111111111111111111111111111:0:-1:
+%2lb: 0b11111111111111111111111111111111:0:-1:
+%*2lb: 0b11111111111111111111111111111111:0:-1:
+%2lb: 100000000000000000000000000000000:1:3:2:
+%*2lb: 100000000000000000000000000000000:0:3:
+%2lb: 0B100000000000000000000000000000000:0:-1:
+%*2lb: 0B100000000000000000000000000000000:0:-1:
+%2lb: 0b100000000000000000000000000000000:0:-1:
+%*2lb: 0b100000000000000000000000000000000:0:-1:
+%2lb: 100000000000000000001000010010001:1:3:2:
+%*2lb: 100000000000000000001000010010001:0:3:
+%2lb: 0B100000000000000000001000010010001:0:-1:
+%*2lb: 0B100000000000000000001000010010001:0:-1:
+%2lb: 0b100000000000000000001000010010001:0:-1:
+%*2lb: 0b100000000000000000001000010010001:0:-1:
+%2lb: +0:1:3:0:
+%*2lb: +0:0:3:
+%2lb: +0B0:1:3:0:
+%*2lb: +0B0:0:3:
+%2lb: +0b0:1:3:0:
+%*2lb: +0b0:0:3:
+%2lb: +1:1:3:1:
+%*2lb: +1:0:3:
+%2lb: +0B1:1:3:0:
+%*2lb: +0B1:0:3:
+%2lb: +0b1:1:3:0:
+%*2lb: +0b1:0:3:
+%2lb: +101010:1:3:1:
+%*2lb: +101010:0:3:
+%2lb: +0B101010:1:3:0:
+%*2lb: +0B101010:0:3:
+%2lb: +0b101010:1:3:0:
+%*2lb: +0b101010:0:3:
+%2lb: +11111111111111111111111111111111:1:3:1:
+%*2lb: +11111111111111111111111111111111:0:3:
+%2lb: +0B11111111111111111111111111111111:1:3:0:
+%*2lb: +0B11111111111111111111111111111111:0:3:
+%2lb: +0b11111111111111111111111111111111:1:3:0:
+%*2lb: +0b11111111111111111111111111111111:0:3:
+%2lb: +100000000000000000000000000000000:1:3:1:
+%*2lb: +100000000000000000000000000000000:0:3:
+%2lb: +0B100000000000000000000000000000000:1:3:0:
+%*2lb: +0B100000000000000000000000000000000:0:3:
+%2lb: +0b100000000000000000000000000000000:1:3:0:
+%*2lb: +0b100000000000000000000000000000000:0:3:
+%2lb: +100000000000000000001000010010001:1:3:1:
+%*2lb: +100000000000000000001000010010001:0:3:
+%2lb: +0B100000000000000000001000010010001:1:3:0:
+%*2lb: +0B100000000000000000001000010010001:0:3:
+%2lb: +0b100000000000000000001000010010001:1:3:0:
+%*2lb: +0b100000000000000000001000010010001:0:3:
+%15lb: :0:-1:
+%*15lb: :0:-1:
+%15lb: -1111011:1:9:4294967173:
+%*15lb: -1111011:0:9:
+%15lb: -0B1111011:1:11:4294967173:
+%*15lb: -0B1111011:0:11:
+%15lb: -0b1111011:1:11:4294967173:
+%*15lb: -0b1111011:0:11:
+%15lb: -1:1:3:4294967295:
+%*15lb: -1:0:3:
+%15lb: -0B1:1:5:4294967295:
+%*15lb: -0B1:0:5:
+%15lb: -0b1:1:5:4294967295:
+%*15lb: -0b1:0:5:
+%15lb: -0:1:3:0:
+%*15lb: -0:0:3:
+%15lb: -0B0:1:5:0:
+%*15lb: -0B0:0:5:
+%15lb: -0b0:1:5:0:
+%*15lb: -0b0:0:5:
+%15lb: 0:1:2:0:
+%*15lb: 0:0:2:
+%15lb: 0B0:1:4:0:
+%*15lb: 0B0:0:4:
+%15lb: 0b0:1:4:0:
+%*15lb: 0b0:0:4:
+%15lb: 1:1:2:1:
+%*15lb: 1:0:2:
+%15lb: 0B1:1:4:1:
+%*15lb: 0B1:0:4:
+%15lb: 0b1:1:4:1:
+%*15lb: 0b1:0:4:
+%15lb: 101010:1:7:42:
+%*15lb: 101010:0:7:
+%15lb: 0B101010:1:9:42:
+%*15lb: 0B101010:0:9:
+%15lb: 0b101010:1:9:42:
+%*15lb: 0b101010:0:9:
+%15lb: 11111111111111111111111111111111:1:16:32767:
+%*15lb: 11111111111111111111111111111111:0:16:
+%15lb: 0B11111111111111111111111111111111:1:16:8191:
+%*15lb: 0B11111111111111111111111111111111:0:16:
+%15lb: 0b11111111111111111111111111111111:1:16:8191:
+%*15lb: 0b11111111111111111111111111111111:0:16:
+%15lb: 100000000000000000000000000000000:1:16:16384:
+%*15lb: 100000000000000000000000000000000:0:16:
+%15lb: 0B100000000000000000000000000000000:1:16:4096:
+%*15lb: 0B100000000000000000000000000000000:0:16:
+%15lb: 0b100000000000000000000000000000000:1:16:4096:
+%*15lb: 0b100000000000000000000000000000000:0:16:
+%15lb: 100000000000000000001000010010001:1:16:16384:
+%*15lb: 100000000000000000001000010010001:0:16:
+%15lb: 0B100000000000000000001000010010001:1:16:4096:
+%*15lb: 0B100000000000000000001000010010001:0:16:
+%15lb: 0b100000000000000000001000010010001:1:16:4096:
+%*15lb: 0b100000000000000000001000010010001:0:16:
+%15lb: +0:1:3:0:
+%*15lb: +0:0:3:
+%15lb: +0B0:1:5:0:
+%*15lb: +0B0:0:5:
+%15lb: +0b0:1:5:0:
+%*15lb: +0b0:0:5:
+%15lb: +1:1:3:1:
+%*15lb: +1:0:3:
+%15lb: +0B1:1:5:1:
+%*15lb: +0B1:0:5:
+%15lb: +0b1:1:5:1:
+%*15lb: +0b1:0:5:
+%15lb: +101010:1:8:42:
+%*15lb: +101010:0:8:
+%15lb: +0B101010:1:10:42:
+%*15lb: +0B101010:0:10:
+%15lb: +0b101010:1:10:42:
+%*15lb: +0b101010:0:10:
+%15lb: +11111111111111111111111111111111:1:16:16383:
+%*15lb: +11111111111111111111111111111111:0:16:
+%15lb: +0B11111111111111111111111111111111:1:16:4095:
+%*15lb: +0B11111111111111111111111111111111:0:16:
+%15lb: +0b11111111111111111111111111111111:1:16:4095:
+%*15lb: +0b11111111111111111111111111111111:0:16:
+%15lb: +100000000000000000000000000000000:1:16:8192:
+%*15lb: +100000000000000000000000000000000:0:16:
+%15lb: +0B100000000000000000000000000000000:1:16:2048:
+%*15lb: +0B100000000000000000000000000000000:0:16:
+%15lb: +0b100000000000000000000000000000000:1:16:2048:
+%*15lb: +0b100000000000000000000000000000000:0:16:
+%15lb: +100000000000000000001000010010001:1:16:8192:
+%*15lb: +100000000000000000001000010010001:0:16:
+%15lb: +0B100000000000000000001000010010001:1:16:2048:
+%*15lb: +0B100000000000000000001000010010001:0:16:
+%15lb: +0b100000000000000000001000010010001:1:16:2048:
+%*15lb: +0b100000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input
new file mode 100644
index 0000000..b350aa9
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input
@@ -0,0 +1,434 @@
+%lo::0:-1:
+%*lo::0:-1:
+%lo:-173:1:4:4294967173:
+%*lo:-173:0:4:
+%lo:-0173:1:5:4294967173:
+%*lo:-0173:0:5:
+%lo:-1:1:2:4294967295:
+%*lo:-1:0:2:
+%lo:-01:1:3:4294967295:
+%*lo:-01:0:3:
+%lo:-0:1:2:0:
+%*lo:-0:0:2:
+%lo:-00:1:3:0:
+%*lo:-00:0:3:
+%lo:0:1:1:0:
+%*lo:0:0:1:
+%lo:00:1:2:0:
+%*lo:00:0:2:
+%lo:1:1:1:1:
+%*lo:1:0:1:
+%lo:01:1:2:1:
+%*lo:01:0:2:
+%lo:52:1:2:42:
+%*lo:52:0:2:
+%lo:052:1:3:42:
+%*lo:052:0:3:
+%lo:37777777777:1:11:4294967295:
+%*lo:37777777777:0:11:
+%lo:037777777777:1:12:4294967295:
+%*lo:037777777777:0:12:
+%lo:40000000000:1:11:4294967295:
+%*lo:40000000000:0:11:
+%lo:040000000000:1:12:4294967295:
+%*lo:040000000000:0:12:
+%lo:40000010221:1:11:4294967295:
+%*lo:40000010221:0:11:
+%lo:040000010221:1:12:4294967295:
+%*lo:040000010221:0:12:
+%lo:+0:1:2:0:
+%*lo:+0:0:2:
+%lo:+00:1:3:0:
+%*lo:+00:0:3:
+%lo:+1:1:2:1:
+%*lo:+1:0:2:
+%lo:+01:1:3:1:
+%*lo:+01:0:3:
+%lo:+52:1:3:42:
+%*lo:+52:0:3:
+%lo:+052:1:4:42:
+%*lo:+052:0:4:
+%lo:+37777777777:1:12:4294967295:
+%*lo:+37777777777:0:12:
+%lo:+037777777777:1:13:4294967295:
+%*lo:+037777777777:0:13:
+%lo:+40000000000:1:12:4294967295:
+%*lo:+40000000000:0:12:
+%lo:+040000000000:1:13:4294967295:
+%*lo:+040000000000:0:13:
+%lo:+40000010221:1:12:4294967295:
+%*lo:+40000010221:0:12:
+%lo:+040000010221:1:13:4294967295:
+%*lo:+040000010221:0:13:
+%1lo::0:-1:
+%*1lo::0:-1:
+%1lo:-173:0:-1:
+%*1lo:-173:0:-1:
+%1lo:-0173:0:-1:
+%*1lo:-0173:0:-1:
+%1lo:-1:0:-1:
+%*1lo:-1:0:-1:
+%1lo:-01:0:-1:
+%*1lo:-01:0:-1:
+%1lo:-0:0:-1:
+%*1lo:-0:0:-1:
+%1lo:-00:0:-1:
+%*1lo:-00:0:-1:
+%1lo:0:1:1:0:
+%*1lo:0:0:1:
+%1lo:00:1:1:0:
+%*1lo:00:0:1:
+%1lo:1:1:1:1:
+%*1lo:1:0:1:
+%1lo:01:1:1:0:
+%*1lo:01:0:1:
+%1lo:52:1:1:5:
+%*1lo:52:0:1:
+%1lo:052:1:1:0:
+%*1lo:052:0:1:
+%1lo:37777777777:1:1:3:
+%*1lo:37777777777:0:1:
+%1lo:037777777777:1:1:0:
+%*1lo:037777777777:0:1:
+%1lo:40000000000:1:1:4:
+%*1lo:40000000000:0:1:
+%1lo:040000000000:1:1:0:
+%*1lo:040000000000:0:1:
+%1lo:40000010221:1:1:4:
+%*1lo:40000010221:0:1:
+%1lo:040000010221:1:1:0:
+%*1lo:040000010221:0:1:
+%1lo:+0:0:-1:
+%*1lo:+0:0:-1:
+%1lo:+00:0:-1:
+%*1lo:+00:0:-1:
+%1lo:+1:0:-1:
+%*1lo:+1:0:-1:
+%1lo:+01:0:-1:
+%*1lo:+01:0:-1:
+%1lo:+52:0:-1:
+%*1lo:+52:0:-1:
+%1lo:+052:0:-1:
+%*1lo:+052:0:-1:
+%1lo:+37777777777:0:-1:
+%*1lo:+37777777777:0:-1:
+%1lo:+037777777777:0:-1:
+%*1lo:+037777777777:0:-1:
+%1lo:+40000000000:0:-1:
+%*1lo:+40000000000:0:-1:
+%1lo:+040000000000:0:-1:
+%*1lo:+040000000000:0:-1:
+%1lo:+40000010221:0:-1:
+%*1lo:+40000010221:0:-1:
+%1lo:+040000010221:0:-1:
+%*1lo:+040000010221:0:-1:
+%2lo::0:-1:
+%*2lo::0:-1:
+%2lo:-173:1:2:4294967295:
+%*2lo:-173:0:2:
+%2lo:-0173:1:2:0:
+%*2lo:-0173:0:2:
+%2lo:-1:1:2:4294967295:
+%*2lo:-1:0:2:
+%2lo:-01:1:2:0:
+%*2lo:-01:0:2:
+%2lo:-0:1:2:0:
+%*2lo:-0:0:2:
+%2lo:-00:1:2:0:
+%*2lo:-00:0:2:
+%2lo:0:1:1:0:
+%*2lo:0:0:1:
+%2lo:00:1:2:0:
+%*2lo:00:0:2:
+%2lo:1:1:1:1:
+%*2lo:1:0:1:
+%2lo:01:1:2:1:
+%*2lo:01:0:2:
+%2lo:52:1:2:42:
+%*2lo:52:0:2:
+%2lo:052:1:2:5:
+%*2lo:052:0:2:
+%2lo:37777777777:1:2:31:
+%*2lo:37777777777:0:2:
+%2lo:037777777777:1:2:3:
+%*2lo:037777777777:0:2:
+%2lo:40000000000:1:2:32:
+%*2lo:40000000000:0:2:
+%2lo:040000000000:1:2:4:
+%*2lo:040000000000:0:2:
+%2lo:40000010221:1:2:32:
+%*2lo:40000010221:0:2:
+%2lo:040000010221:1:2:4:
+%*2lo:040000010221:0:2:
+%2lo:+0:1:2:0:
+%*2lo:+0:0:2:
+%2lo:+00:1:2:0:
+%*2lo:+00:0:2:
+%2lo:+1:1:2:1:
+%*2lo:+1:0:2:
+%2lo:+01:1:2:0:
+%*2lo:+01:0:2:
+%2lo:+52:1:2:5:
+%*2lo:+52:0:2:
+%2lo:+052:1:2:0:
+%*2lo:+052:0:2:
+%2lo:+37777777777:1:2:3:
+%*2lo:+37777777777:0:2:
+%2lo:+037777777777:1:2:0:
+%*2lo:+037777777777:0:2:
+%2lo:+40000000000:1:2:4:
+%*2lo:+40000000000:0:2:
+%2lo:+040000000000:1:2:0:
+%*2lo:+040000000000:0:2:
+%2lo:+40000010221:1:2:4:
+%*2lo:+40000010221:0:2:
+%2lo:+040000010221:1:2:0:
+%*2lo:+040000010221:0:2:
+%8lo::0:-1:
+%*8lo::0:-1:
+%8lo:-173:1:4:4294967173:
+%*8lo:-173:0:4:
+%8lo:-0173:1:5:4294967173:
+%*8lo:-0173:0:5:
+%8lo:-1:1:2:4294967295:
+%*8lo:-1:0:2:
+%8lo:-01:1:3:4294967295:
+%*8lo:-01:0:3:
+%8lo:-0:1:2:0:
+%*8lo:-0:0:2:
+%8lo:-00:1:3:0:
+%*8lo:-00:0:3:
+%8lo:0:1:1:0:
+%*8lo:0:0:1:
+%8lo:00:1:2:0:
+%*8lo:00:0:2:
+%8lo:1:1:1:1:
+%*8lo:1:0:1:
+%8lo:01:1:2:1:
+%*8lo:01:0:2:
+%8lo:52:1:2:42:
+%*8lo:52:0:2:
+%8lo:052:1:3:42:
+%*8lo:052:0:3:
+%8lo:37777777777:1:8:8388607:
+%*8lo:37777777777:0:8:
+%8lo:037777777777:1:8:1048575:
+%*8lo:037777777777:0:8:
+%8lo:40000000000:1:8:8388608:
+%*8lo:40000000000:0:8:
+%8lo:040000000000:1:8:1048576:
+%*8lo:040000000000:0:8:
+%8lo:40000010221:1:8:8388616:
+%*8lo:40000010221:0:8:
+%8lo:040000010221:1:8:1048577:
+%*8lo:040000010221:0:8:
+%8lo:+0:1:2:0:
+%*8lo:+0:0:2:
+%8lo:+00:1:3:0:
+%*8lo:+00:0:3:
+%8lo:+1:1:2:1:
+%*8lo:+1:0:2:
+%8lo:+01:1:3:1:
+%*8lo:+01:0:3:
+%8lo:+52:1:3:42:
+%*8lo:+52:0:3:
+%8lo:+052:1:4:42:
+%*8lo:+052:0:4:
+%8lo:+37777777777:1:8:1048575:
+%*8lo:+37777777777:0:8:
+%8lo:+037777777777:1:8:131071:
+%*8lo:+037777777777:0:8:
+%8lo:+40000000000:1:8:1048576:
+%*8lo:+40000000000:0:8:
+%8lo:+040000000000:1:8:131072:
+%*8lo:+040000000000:0:8:
+%8lo:+40000010221:1:8:1048577:
+%*8lo:+40000010221:0:8:
+%8lo:+040000010221:1:8:131072:
+%*8lo:+040000010221:0:8:
+%15lo::0:-1:
+%*15lo::0:-1:
+%15lo:-173:1:4:4294967173:
+%*15lo:-173:0:4:
+%15lo:-0173:1:5:4294967173:
+%*15lo:-0173:0:5:
+%15lo:-1:1:2:4294967295:
+%*15lo:-1:0:2:
+%15lo:-01:1:3:4294967295:
+%*15lo:-01:0:3:
+%15lo:-0:1:2:0:
+%*15lo:-0:0:2:
+%15lo:-00:1:3:0:
+%*15lo:-00:0:3:
+%15lo:0:1:1:0:
+%*15lo:0:0:1:
+%15lo:00:1:2:0:
+%*15lo:00:0:2:
+%15lo:1:1:1:1:
+%*15lo:1:0:1:
+%15lo:01:1:2:1:
+%*15lo:01:0:2:
+%15lo:52:1:2:42:
+%*15lo:52:0:2:
+%15lo:052:1:3:42:
+%*15lo:052:0:3:
+%15lo:37777777777:1:11:4294967295:
+%*15lo:37777777777:0:11:
+%15lo:037777777777:1:12:4294967295:
+%*15lo:037777777777:0:12:
+%15lo:40000000000:1:11:4294967295:
+%*15lo:40000000000:0:11:
+%15lo:040000000000:1:12:4294967295:
+%*15lo:040000000000:0:12:
+%15lo:40000010221:1:11:4294967295:
+%*15lo:40000010221:0:11:
+%15lo:040000010221:1:12:4294967295:
+%*15lo:040000010221:0:12:
+%15lo:+0:1:2:0:
+%*15lo:+0:0:2:
+%15lo:+00:1:3:0:
+%*15lo:+00:0:3:
+%15lo:+1:1:2:1:
+%*15lo:+1:0:2:
+%15lo:+01:1:3:1:
+%*15lo:+01:0:3:
+%15lo:+52:1:3:42:
+%*15lo:+52:0:3:
+%15lo:+052:1:4:42:
+%*15lo:+052:0:4:
+%15lo:+37777777777:1:12:4294967295:
+%*15lo:+37777777777:0:12:
+%15lo:+037777777777:1:13:4294967295:
+%*15lo:+037777777777:0:13:
+%15lo:+40000000000:1:12:4294967295:
+%*15lo:+40000000000:0:12:
+%15lo:+040000000000:1:13:4294967295:
+%*15lo:+040000000000:0:13:
+%15lo:+40000010221:1:12:4294967295:
+%*15lo:+40000010221:0:12:
+%15lo:+040000010221:1:13:4294967295:
+%*15lo:+040000010221:0:13:
+%2lo: :0:-1:
+%*2lo: :0:-1:
+%2lo: -173:1:3:4294967295:
+%*2lo: -173:0:3:
+%2lo: -0173:1:3:0:
+%*2lo: -0173:0:3:
+%2lo: -1:1:3:4294967295:
+%*2lo: -1:0:3:
+%2lo: -01:1:3:0:
+%*2lo: -01:0:3:
+%2lo: -0:1:3:0:
+%*2lo: -0:0:3:
+%2lo: -00:1:3:0:
+%*2lo: -00:0:3:
+%2lo: 0:1:2:0:
+%*2lo: 0:0:2:
+%2lo: 00:1:3:0:
+%*2lo: 00:0:3:
+%2lo: 1:1:2:1:
+%*2lo: 1:0:2:
+%2lo: 01:1:3:1:
+%*2lo: 01:0:3:
+%2lo: 52:1:3:42:
+%*2lo: 52:0:3:
+%2lo: 052:1:3:5:
+%*2lo: 052:0:3:
+%2lo: 37777777777:1:3:31:
+%*2lo: 37777777777:0:3:
+%2lo: 037777777777:1:3:3:
+%*2lo: 037777777777:0:3:
+%2lo: 40000000000:1:3:32:
+%*2lo: 40000000000:0:3:
+%2lo: 040000000000:1:3:4:
+%*2lo: 040000000000:0:3:
+%2lo: 40000010221:1:3:32:
+%*2lo: 40000010221:0:3:
+%2lo: 040000010221:1:3:4:
+%*2lo: 040000010221:0:3:
+%2lo: +0:1:3:0:
+%*2lo: +0:0:3:
+%2lo: +00:1:3:0:
+%*2lo: +00:0:3:
+%2lo: +1:1:3:1:
+%*2lo: +1:0:3:
+%2lo: +01:1:3:0:
+%*2lo: +01:0:3:
+%2lo: +52:1:3:5:
+%*2lo: +52:0:3:
+%2lo: +052:1:3:0:
+%*2lo: +052:0:3:
+%2lo: +37777777777:1:3:3:
+%*2lo: +37777777777:0:3:
+%2lo: +037777777777:1:3:0:
+%*2lo: +037777777777:0:3:
+%2lo: +40000000000:1:3:4:
+%*2lo: +40000000000:0:3:
+%2lo: +040000000000:1:3:0:
+%*2lo: +040000000000:0:3:
+%2lo: +40000010221:1:3:4:
+%*2lo: +40000010221:0:3:
+%2lo: +040000010221:1:3:0:
+%*2lo: +040000010221:0:3:
+%15lo: :0:-1:
+%*15lo: :0:-1:
+%15lo: -173:1:5:4294967173:
+%*15lo: -173:0:5:
+%15lo: -0173:1:6:4294967173:
+%*15lo: -0173:0:6:
+%15lo: -1:1:3:4294967295:
+%*15lo: -1:0:3:
+%15lo: -01:1:4:4294967295:
+%*15lo: -01:0:4:
+%15lo: -0:1:3:0:
+%*15lo: -0:0:3:
+%15lo: -00:1:4:0:
+%*15lo: -00:0:4:
+%15lo: 0:1:2:0:
+%*15lo: 0:0:2:
+%15lo: 00:1:3:0:
+%*15lo: 00:0:3:
+%15lo: 1:1:2:1:
+%*15lo: 1:0:2:
+%15lo: 01:1:3:1:
+%*15lo: 01:0:3:
+%15lo: 52:1:3:42:
+%*15lo: 52:0:3:
+%15lo: 052:1:4:42:
+%*15lo: 052:0:4:
+%15lo: 37777777777:1:12:4294967295:
+%*15lo: 37777777777:0:12:
+%15lo: 037777777777:1:13:4294967295:
+%*15lo: 037777777777:0:13:
+%15lo: 40000000000:1:12:4294967295:
+%*15lo: 40000000000:0:12:
+%15lo: 040000000000:1:13:4294967295:
+%*15lo: 040000000000:0:13:
+%15lo: 40000010221:1:12:4294967295:
+%*15lo: 40000010221:0:12:
+%15lo: 040000010221:1:13:4294967295:
+%*15lo: 040000010221:0:13:
+%15lo: +0:1:3:0:
+%*15lo: +0:0:3:
+%15lo: +00:1:4:0:
+%*15lo: +00:0:4:
+%15lo: +1:1:3:1:
+%*15lo: +1:0:3:
+%15lo: +01:1:4:1:
+%*15lo: +01:0:4:
+%15lo: +52:1:4:42:
+%*15lo: +52:0:4:
+%15lo: +052:1:5:42:
+%*15lo: +052:0:5:
+%15lo: +37777777777:1:13:4294967295:
+%*15lo: +37777777777:0:13:
+%15lo: +037777777777:1:14:4294967295:
+%*15lo: +037777777777:0:14:
+%15lo: +40000000000:1:13:4294967295:
+%*15lo: +40000000000:0:13:
+%15lo: +040000000000:1:14:4294967295:
+%*15lo: +040000000000:0:14:
+%15lo: +40000010221:1:13:4294967295:
+%*15lo: +40000010221:0:13:
+%15lo: +040000010221:1:14:4294967295:
+%*15lo: +040000010221:0:14:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input
new file mode 100644
index 0000000..5895e3d
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input
@@ -0,0 +1,224 @@
+%lu::0:-1:
+%*lu::0:-1:
+%lu:-123:1:4:4294967173:
+%*lu:-123:0:4:
+%lu:-1:1:2:4294967295:
+%*lu:-1:0:2:
+%lu:-0:1:2:0:
+%*lu:-0:0:2:
+%lu:0:1:1:0:
+%*lu:0:0:1:
+%lu:1:1:1:1:
+%*lu:1:0:1:
+%lu:42:1:2:42:
+%*lu:42:0:2:
+%lu:4294967295:1:10:4294967295:
+%*lu:4294967295:0:10:
+%lu:4294967296:1:10:4294967295:
+%*lu:4294967296:0:10:
+%lu:4294971537:1:10:4294967295:
+%*lu:4294971537:0:10:
+%lu:+0:1:2:0:
+%*lu:+0:0:2:
+%lu:+1:1:2:1:
+%*lu:+1:0:2:
+%lu:+42:1:3:42:
+%*lu:+42:0:3:
+%lu:+4294967295:1:11:4294967295:
+%*lu:+4294967295:0:11:
+%lu:+4294967296:1:11:4294967295:
+%*lu:+4294967296:0:11:
+%lu:+4294971537:1:11:4294967295:
+%*lu:+4294971537:0:11:
+%1lu::0:-1:
+%*1lu::0:-1:
+%1lu:-123:0:-1:
+%*1lu:-123:0:-1:
+%1lu:-1:0:-1:
+%*1lu:-1:0:-1:
+%1lu:-0:0:-1:
+%*1lu:-0:0:-1:
+%1lu:0:1:1:0:
+%*1lu:0:0:1:
+%1lu:1:1:1:1:
+%*1lu:1:0:1:
+%1lu:42:1:1:4:
+%*1lu:42:0:1:
+%1lu:4294967295:1:1:4:
+%*1lu:4294967295:0:1:
+%1lu:4294967296:1:1:4:
+%*1lu:4294967296:0:1:
+%1lu:4294971537:1:1:4:
+%*1lu:4294971537:0:1:
+%1lu:+0:0:-1:
+%*1lu:+0:0:-1:
+%1lu:+1:0:-1:
+%*1lu:+1:0:-1:
+%1lu:+42:0:-1:
+%*1lu:+42:0:-1:
+%1lu:+4294967295:0:-1:
+%*1lu:+4294967295:0:-1:
+%1lu:+4294967296:0:-1:
+%*1lu:+4294967296:0:-1:
+%1lu:+4294971537:0:-1:
+%*1lu:+4294971537:0:-1:
+%2lu::0:-1:
+%*2lu::0:-1:
+%2lu:-123:1:2:4294967295:
+%*2lu:-123:0:2:
+%2lu:-1:1:2:4294967295:
+%*2lu:-1:0:2:
+%2lu:-0:1:2:0:
+%*2lu:-0:0:2:
+%2lu:0:1:1:0:
+%*2lu:0:0:1:
+%2lu:1:1:1:1:
+%*2lu:1:0:1:
+%2lu:42:1:2:42:
+%*2lu:42:0:2:
+%2lu:4294967295:1:2:42:
+%*2lu:4294967295:0:2:
+%2lu:4294967296:1:2:42:
+%*2lu:4294967296:0:2:
+%2lu:4294971537:1:2:42:
+%*2lu:4294971537:0:2:
+%2lu:+0:1:2:0:
+%*2lu:+0:0:2:
+%2lu:+1:1:2:1:
+%*2lu:+1:0:2:
+%2lu:+42:1:2:4:
+%*2lu:+42:0:2:
+%2lu:+4294967295:1:2:4:
+%*2lu:+4294967295:0:2:
+%2lu:+4294967296:1:2:4:
+%*2lu:+4294967296:0:2:
+%2lu:+4294971537:1:2:4:
+%*2lu:+4294971537:0:2:
+%8lu::0:-1:
+%*8lu::0:-1:
+%8lu:-123:1:4:4294967173:
+%*8lu:-123:0:4:
+%8lu:-1:1:2:4294967295:
+%*8lu:-1:0:2:
+%8lu:-0:1:2:0:
+%*8lu:-0:0:2:
+%8lu:0:1:1:0:
+%*8lu:0:0:1:
+%8lu:1:1:1:1:
+%*8lu:1:0:1:
+%8lu:42:1:2:42:
+%*8lu:42:0:2:
+%8lu:4294967295:1:8:42949672:
+%*8lu:4294967295:0:8:
+%8lu:4294967296:1:8:42949672:
+%*8lu:4294967296:0:8:
+%8lu:4294971537:1:8:42949715:
+%*8lu:4294971537:0:8:
+%8lu:+0:1:2:0:
+%*8lu:+0:0:2:
+%8lu:+1:1:2:1:
+%*8lu:+1:0:2:
+%8lu:+42:1:3:42:
+%*8lu:+42:0:3:
+%8lu:+4294967295:1:8:4294967:
+%*8lu:+4294967295:0:8:
+%8lu:+4294967296:1:8:4294967:
+%*8lu:+4294967296:0:8:
+%8lu:+4294971537:1:8:4294971:
+%*8lu:+4294971537:0:8:
+%15lu::0:-1:
+%*15lu::0:-1:
+%15lu:-123:1:4:4294967173:
+%*15lu:-123:0:4:
+%15lu:-1:1:2:4294967295:
+%*15lu:-1:0:2:
+%15lu:-0:1:2:0:
+%*15lu:-0:0:2:
+%15lu:0:1:1:0:
+%*15lu:0:0:1:
+%15lu:1:1:1:1:
+%*15lu:1:0:1:
+%15lu:42:1:2:42:
+%*15lu:42:0:2:
+%15lu:4294967295:1:10:4294967295:
+%*15lu:4294967295:0:10:
+%15lu:4294967296:1:10:4294967295:
+%*15lu:4294967296:0:10:
+%15lu:4294971537:1:10:4294967295:
+%*15lu:4294971537:0:10:
+%15lu:+0:1:2:0:
+%*15lu:+0:0:2:
+%15lu:+1:1:2:1:
+%*15lu:+1:0:2:
+%15lu:+42:1:3:42:
+%*15lu:+42:0:3:
+%15lu:+4294967295:1:11:4294967295:
+%*15lu:+4294967295:0:11:
+%15lu:+4294967296:1:11:4294967295:
+%*15lu:+4294967296:0:11:
+%15lu:+4294971537:1:11:4294967295:
+%*15lu:+4294971537:0:11:
+%2lu: :0:-1:
+%*2lu: :0:-1:
+%2lu: -123:1:3:4294967295:
+%*2lu: -123:0:3:
+%2lu: -1:1:3:4294967295:
+%*2lu: -1:0:3:
+%2lu: -0:1:3:0:
+%*2lu: -0:0:3:
+%2lu: 0:1:2:0:
+%*2lu: 0:0:2:
+%2lu: 1:1:2:1:
+%*2lu: 1:0:2:
+%2lu: 42:1:3:42:
+%*2lu: 42:0:3:
+%2lu: 4294967295:1:3:42:
+%*2lu: 4294967295:0:3:
+%2lu: 4294967296:1:3:42:
+%*2lu: 4294967296:0:3:
+%2lu: 4294971537:1:3:42:
+%*2lu: 4294971537:0:3:
+%2lu: +0:1:3:0:
+%*2lu: +0:0:3:
+%2lu: +1:1:3:1:
+%*2lu: +1:0:3:
+%2lu: +42:1:3:4:
+%*2lu: +42:0:3:
+%2lu: +4294967295:1:3:4:
+%*2lu: +4294967295:0:3:
+%2lu: +4294967296:1:3:4:
+%*2lu: +4294967296:0:3:
+%2lu: +4294971537:1:3:4:
+%*2lu: +4294971537:0:3:
+%15lu: :0:-1:
+%*15lu: :0:-1:
+%15lu: -123:1:5:4294967173:
+%*15lu: -123:0:5:
+%15lu: -1:1:3:4294967295:
+%*15lu: -1:0:3:
+%15lu: -0:1:3:0:
+%*15lu: -0:0:3:
+%15lu: 0:1:2:0:
+%*15lu: 0:0:2:
+%15lu: 1:1:2:1:
+%*15lu: 1:0:2:
+%15lu: 42:1:3:42:
+%*15lu: 42:0:3:
+%15lu: 4294967295:1:11:4294967295:
+%*15lu: 4294967295:0:11:
+%15lu: 4294967296:1:11:4294967295:
+%*15lu: 4294967296:0:11:
+%15lu: 4294971537:1:11:4294967295:
+%*15lu: 4294971537:0:11:
+%15lu: +0:1:3:0:
+%*15lu: +0:0:3:
+%15lu: +1:1:3:1:
+%*15lu: +1:0:3:
+%15lu: +42:1:4:42:
+%*15lu: +42:0:4:
+%15lu: +4294967295:1:12:4294967295:
+%*15lu: +4294967295:0:12:
+%15lu: +4294967296:1:12:4294967295:
+%*15lu: +4294967296:0:12:
+%15lu: +4294971537:1:12:4294967295:
+%*15lu: +4294971537:0:12:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input
new file mode 100644
index 0000000..086d452
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input
@@ -0,0 +1,714 @@
+%lx::0:-1:
+%*lx::0:-1:
+%lx:-7b:1:3:4294967173:
+%*lx:-7b:0:3:
+%lx:-7B:1:3:4294967173:
+%*lx:-7B:0:3:
+%lx:-0X7b:1:5:4294967173:
+%*lx:-0X7b:0:5:
+%lx:-0x7B:1:5:4294967173:
+%*lx:-0x7B:0:5:
+%lx:-1:1:2:4294967295:
+%*lx:-1:0:2:
+%lx:-0X1:1:4:4294967295:
+%*lx:-0X1:0:4:
+%lx:-0x1:1:4:4294967295:
+%*lx:-0x1:0:4:
+%lx:-0:1:2:0:
+%*lx:-0:0:2:
+%lx:-0X0:1:4:0:
+%*lx:-0X0:0:4:
+%lx:-0x0:1:4:0:
+%*lx:-0x0:0:4:
+%lx:0:1:1:0:
+%*lx:0:0:1:
+%lx:0X0:1:3:0:
+%*lx:0X0:0:3:
+%lx:0x0:1:3:0:
+%*lx:0x0:0:3:
+%lx:1:1:1:1:
+%*lx:1:0:1:
+%lx:0X1:1:3:1:
+%*lx:0X1:0:3:
+%lx:0x1:1:3:1:
+%*lx:0x1:0:3:
+%lx:2a:1:2:42:
+%*lx:2a:0:2:
+%lx:2A:1:2:42:
+%*lx:2A:0:2:
+%lx:0X2a:1:4:42:
+%*lx:0X2a:0:4:
+%lx:0x2A:1:4:42:
+%*lx:0x2A:0:4:
+%lx:ffffffff:1:8:4294967295:
+%*lx:ffffffff:0:8:
+%lx:FFFFFFFF:1:8:4294967295:
+%*lx:FFFFFFFF:0:8:
+%lx:0Xffffffff:1:10:4294967295:
+%*lx:0Xffffffff:0:10:
+%lx:0xFFFFFFFF:1:10:4294967295:
+%*lx:0xFFFFFFFF:0:10:
+%lx:100000000:1:9:4294967295:
+%*lx:100000000:0:9:
+%lx:0X100000000:1:11:4294967295:
+%*lx:0X100000000:0:11:
+%lx:0x100000000:1:11:4294967295:
+%*lx:0x100000000:0:11:
+%lx:100001091:1:9:4294967295:
+%*lx:100001091:0:9:
+%lx:0X100001091:1:11:4294967295:
+%*lx:0X100001091:0:11:
+%lx:0x100001091:1:11:4294967295:
+%*lx:0x100001091:0:11:
+%lx:+0:1:2:0:
+%*lx:+0:0:2:
+%lx:+0X0:1:4:0:
+%*lx:+0X0:0:4:
+%lx:+0x0:1:4:0:
+%*lx:+0x0:0:4:
+%lx:+1:1:2:1:
+%*lx:+1:0:2:
+%lx:+0X1:1:4:1:
+%*lx:+0X1:0:4:
+%lx:+0x1:1:4:1:
+%*lx:+0x1:0:4:
+%lx:+2a:1:3:42:
+%*lx:+2a:0:3:
+%lx:+2A:1:3:42:
+%*lx:+2A:0:3:
+%lx:+0X2a:1:5:42:
+%*lx:+0X2a:0:5:
+%lx:+0x2A:1:5:42:
+%*lx:+0x2A:0:5:
+%lx:+ffffffff:1:9:4294967295:
+%*lx:+ffffffff:0:9:
+%lx:+FFFFFFFF:1:9:4294967295:
+%*lx:+FFFFFFFF:0:9:
+%lx:+0Xffffffff:1:11:4294967295:
+%*lx:+0Xffffffff:0:11:
+%lx:+0xFFFFFFFF:1:11:4294967295:
+%*lx:+0xFFFFFFFF:0:11:
+%lx:+100000000:1:10:4294967295:
+%*lx:+100000000:0:10:
+%lx:+0X100000000:1:12:4294967295:
+%*lx:+0X100000000:0:12:
+%lx:+0x100000000:1:12:4294967295:
+%*lx:+0x100000000:0:12:
+%lx:+100001091:1:10:4294967295:
+%*lx:+100001091:0:10:
+%lx:+0X100001091:1:12:4294967295:
+%*lx:+0X100001091:0:12:
+%lx:+0x100001091:1:12:4294967295:
+%*lx:+0x100001091:0:12:
+%1lx::0:-1:
+%*1lx::0:-1:
+%1lx:-7b:0:-1:
+%*1lx:-7b:0:-1:
+%1lx:-7B:0:-1:
+%*1lx:-7B:0:-1:
+%1lx:-0X7b:0:-1:
+%*1lx:-0X7b:0:-1:
+%1lx:-0x7B:0:-1:
+%*1lx:-0x7B:0:-1:
+%1lx:-1:0:-1:
+%*1lx:-1:0:-1:
+%1lx:-0X1:0:-1:
+%*1lx:-0X1:0:-1:
+%1lx:-0x1:0:-1:
+%*1lx:-0x1:0:-1:
+%1lx:-0:0:-1:
+%*1lx:-0:0:-1:
+%1lx:-0X0:0:-1:
+%*1lx:-0X0:0:-1:
+%1lx:-0x0:0:-1:
+%*1lx:-0x0:0:-1:
+%1lx:0:1:1:0:
+%*1lx:0:0:1:
+%1lx:0X0:1:1:0:
+%*1lx:0X0:0:1:
+%1lx:0x0:1:1:0:
+%*1lx:0x0:0:1:
+%1lx:1:1:1:1:
+%*1lx:1:0:1:
+%1lx:0X1:1:1:0:
+%*1lx:0X1:0:1:
+%1lx:0x1:1:1:0:
+%*1lx:0x1:0:1:
+%1lx:2a:1:1:2:
+%*1lx:2a:0:1:
+%1lx:2A:1:1:2:
+%*1lx:2A:0:1:
+%1lx:0X2a:1:1:0:
+%*1lx:0X2a:0:1:
+%1lx:0x2A:1:1:0:
+%*1lx:0x2A:0:1:
+%1lx:ffffffff:1:1:15:
+%*1lx:ffffffff:0:1:
+%1lx:FFFFFFFF:1:1:15:
+%*1lx:FFFFFFFF:0:1:
+%1lx:0Xffffffff:1:1:0:
+%*1lx:0Xffffffff:0:1:
+%1lx:0xFFFFFFFF:1:1:0:
+%*1lx:0xFFFFFFFF:0:1:
+%1lx:100000000:1:1:1:
+%*1lx:100000000:0:1:
+%1lx:0X100000000:1:1:0:
+%*1lx:0X100000000:0:1:
+%1lx:0x100000000:1:1:0:
+%*1lx:0x100000000:0:1:
+%1lx:100001091:1:1:1:
+%*1lx:100001091:0:1:
+%1lx:0X100001091:1:1:0:
+%*1lx:0X100001091:0:1:
+%1lx:0x100001091:1:1:0:
+%*1lx:0x100001091:0:1:
+%1lx:+0:0:-1:
+%*1lx:+0:0:-1:
+%1lx:+0X0:0:-1:
+%*1lx:+0X0:0:-1:
+%1lx:+0x0:0:-1:
+%*1lx:+0x0:0:-1:
+%1lx:+1:0:-1:
+%*1lx:+1:0:-1:
+%1lx:+0X1:0:-1:
+%*1lx:+0X1:0:-1:
+%1lx:+0x1:0:-1:
+%*1lx:+0x1:0:-1:
+%1lx:+2a:0:-1:
+%*1lx:+2a:0:-1:
+%1lx:+2A:0:-1:
+%*1lx:+2A:0:-1:
+%1lx:+0X2a:0:-1:
+%*1lx:+0X2a:0:-1:
+%1lx:+0x2A:0:-1:
+%*1lx:+0x2A:0:-1:
+%1lx:+ffffffff:0:-1:
+%*1lx:+ffffffff:0:-1:
+%1lx:+FFFFFFFF:0:-1:
+%*1lx:+FFFFFFFF:0:-1:
+%1lx:+0Xffffffff:0:-1:
+%*1lx:+0Xffffffff:0:-1:
+%1lx:+0xFFFFFFFF:0:-1:
+%*1lx:+0xFFFFFFFF:0:-1:
+%1lx:+100000000:0:-1:
+%*1lx:+100000000:0:-1:
+%1lx:+0X100000000:0:-1:
+%*1lx:+0X100000000:0:-1:
+%1lx:+0x100000000:0:-1:
+%*1lx:+0x100000000:0:-1:
+%1lx:+100001091:0:-1:
+%*1lx:+100001091:0:-1:
+%1lx:+0X100001091:0:-1:
+%*1lx:+0X100001091:0:-1:
+%1lx:+0x100001091:0:-1:
+%*1lx:+0x100001091:0:-1:
+%2lx::0:-1:
+%*2lx::0:-1:
+%2lx:-7b:1:2:4294967289:
+%*2lx:-7b:0:2:
+%2lx:-7B:1:2:4294967289:
+%*2lx:-7B:0:2:
+%2lx:-0X7b:1:2:0:
+%*2lx:-0X7b:0:2:
+%2lx:-0x7B:1:2:0:
+%*2lx:-0x7B:0:2:
+%2lx:-1:1:2:4294967295:
+%*2lx:-1:0:2:
+%2lx:-0X1:1:2:0:
+%*2lx:-0X1:0:2:
+%2lx:-0x1:1:2:0:
+%*2lx:-0x1:0:2:
+%2lx:-0:1:2:0:
+%*2lx:-0:0:2:
+%2lx:-0X0:1:2:0:
+%*2lx:-0X0:0:2:
+%2lx:-0x0:1:2:0:
+%*2lx:-0x0:0:2:
+%2lx:0:1:1:0:
+%*2lx:0:0:1:
+%2lx:0X0:0:-1:
+%*2lx:0X0:0:-1:
+%2lx:0x0:0:-1:
+%*2lx:0x0:0:-1:
+%2lx:1:1:1:1:
+%*2lx:1:0:1:
+%2lx:0X1:0:-1:
+%*2lx:0X1:0:-1:
+%2lx:0x1:0:-1:
+%*2lx:0x1:0:-1:
+%2lx:2a:1:2:42:
+%*2lx:2a:0:2:
+%2lx:2A:1:2:42:
+%*2lx:2A:0:2:
+%2lx:0X2a:0:-1:
+%*2lx:0X2a:0:-1:
+%2lx:0x2A:0:-1:
+%*2lx:0x2A:0:-1:
+%2lx:ffffffff:1:2:255:
+%*2lx:ffffffff:0:2:
+%2lx:FFFFFFFF:1:2:255:
+%*2lx:FFFFFFFF:0:2:
+%2lx:0Xffffffff:0:-1:
+%*2lx:0Xffffffff:0:-1:
+%2lx:0xFFFFFFFF:0:-1:
+%*2lx:0xFFFFFFFF:0:-1:
+%2lx:100000000:1:2:16:
+%*2lx:100000000:0:2:
+%2lx:0X100000000:0:-1:
+%*2lx:0X100000000:0:-1:
+%2lx:0x100000000:0:-1:
+%*2lx:0x100000000:0:-1:
+%2lx:100001091:1:2:16:
+%*2lx:100001091:0:2:
+%2lx:0X100001091:0:-1:
+%*2lx:0X100001091:0:-1:
+%2lx:0x100001091:0:-1:
+%*2lx:0x100001091:0:-1:
+%2lx:+0:1:2:0:
+%*2lx:+0:0:2:
+%2lx:+0X0:1:2:0:
+%*2lx:+0X0:0:2:
+%2lx:+0x0:1:2:0:
+%*2lx:+0x0:0:2:
+%2lx:+1:1:2:1:
+%*2lx:+1:0:2:
+%2lx:+0X1:1:2:0:
+%*2lx:+0X1:0:2:
+%2lx:+0x1:1:2:0:
+%*2lx:+0x1:0:2:
+%2lx:+2a:1:2:2:
+%*2lx:+2a:0:2:
+%2lx:+2A:1:2:2:
+%*2lx:+2A:0:2:
+%2lx:+0X2a:1:2:0:
+%*2lx:+0X2a:0:2:
+%2lx:+0x2A:1:2:0:
+%*2lx:+0x2A:0:2:
+%2lx:+ffffffff:1:2:15:
+%*2lx:+ffffffff:0:2:
+%2lx:+FFFFFFFF:1:2:15:
+%*2lx:+FFFFFFFF:0:2:
+%2lx:+0Xffffffff:1:2:0:
+%*2lx:+0Xffffffff:0:2:
+%2lx:+0xFFFFFFFF:1:2:0:
+%*2lx:+0xFFFFFFFF:0:2:
+%2lx:+100000000:1:2:1:
+%*2lx:+100000000:0:2:
+%2lx:+0X100000000:1:2:0:
+%*2lx:+0X100000000:0:2:
+%2lx:+0x100000000:1:2:0:
+%*2lx:+0x100000000:0:2:
+%2lx:+100001091:1:2:1:
+%*2lx:+100001091:0:2:
+%2lx:+0X100001091:1:2:0:
+%*2lx:+0X100001091:0:2:
+%2lx:+0x100001091:1:2:0:
+%*2lx:+0x100001091:0:2:
+%8lx::0:-1:
+%*8lx::0:-1:
+%8lx:-7b:1:3:4294967173:
+%*8lx:-7b:0:3:
+%8lx:-7B:1:3:4294967173:
+%*8lx:-7B:0:3:
+%8lx:-0X7b:1:5:4294967173:
+%*8lx:-0X7b:0:5:
+%8lx:-0x7B:1:5:4294967173:
+%*8lx:-0x7B:0:5:
+%8lx:-1:1:2:4294967295:
+%*8lx:-1:0:2:
+%8lx:-0X1:1:4:4294967295:
+%*8lx:-0X1:0:4:
+%8lx:-0x1:1:4:4294967295:
+%*8lx:-0x1:0:4:
+%8lx:-0:1:2:0:
+%*8lx:-0:0:2:
+%8lx:-0X0:1:4:0:
+%*8lx:-0X0:0:4:
+%8lx:-0x0:1:4:0:
+%*8lx:-0x0:0:4:
+%8lx:0:1:1:0:
+%*8lx:0:0:1:
+%8lx:0X0:1:3:0:
+%*8lx:0X0:0:3:
+%8lx:0x0:1:3:0:
+%*8lx:0x0:0:3:
+%8lx:1:1:1:1:
+%*8lx:1:0:1:
+%8lx:0X1:1:3:1:
+%*8lx:0X1:0:3:
+%8lx:0x1:1:3:1:
+%*8lx:0x1:0:3:
+%8lx:2a:1:2:42:
+%*8lx:2a:0:2:
+%8lx:2A:1:2:42:
+%*8lx:2A:0:2:
+%8lx:0X2a:1:4:42:
+%*8lx:0X2a:0:4:
+%8lx:0x2A:1:4:42:
+%*8lx:0x2A:0:4:
+%8lx:ffffffff:1:8:4294967295:
+%*8lx:ffffffff:0:8:
+%8lx:FFFFFFFF:1:8:4294967295:
+%*8lx:FFFFFFFF:0:8:
+%8lx:0Xffffffff:1:8:16777215:
+%*8lx:0Xffffffff:0:8:
+%8lx:0xFFFFFFFF:1:8:16777215:
+%*8lx:0xFFFFFFFF:0:8:
+%8lx:100000000:1:8:268435456:
+%*8lx:100000000:0:8:
+%8lx:0X100000000:1:8:1048576:
+%*8lx:0X100000000:0:8:
+%8lx:0x100000000:1:8:1048576:
+%*8lx:0x100000000:0:8:
+%8lx:100001091:1:8:268435721:
+%*8lx:100001091:0:8:
+%8lx:0X100001091:1:8:1048577:
+%*8lx:0X100001091:0:8:
+%8lx:0x100001091:1:8:1048577:
+%*8lx:0x100001091:0:8:
+%8lx:+0:1:2:0:
+%*8lx:+0:0:2:
+%8lx:+0X0:1:4:0:
+%*8lx:+0X0:0:4:
+%8lx:+0x0:1:4:0:
+%*8lx:+0x0:0:4:
+%8lx:+1:1:2:1:
+%*8lx:+1:0:2:
+%8lx:+0X1:1:4:1:
+%*8lx:+0X1:0:4:
+%8lx:+0x1:1:4:1:
+%*8lx:+0x1:0:4:
+%8lx:+2a:1:3:42:
+%*8lx:+2a:0:3:
+%8lx:+2A:1:3:42:
+%*8lx:+2A:0:3:
+%8lx:+0X2a:1:5:42:
+%*8lx:+0X2a:0:5:
+%8lx:+0x2A:1:5:42:
+%*8lx:+0x2A:0:5:
+%8lx:+ffffffff:1:8:268435455:
+%*8lx:+ffffffff:0:8:
+%8lx:+FFFFFFFF:1:8:268435455:
+%*8lx:+FFFFFFFF:0:8:
+%8lx:+0Xffffffff:1:8:1048575:
+%*8lx:+0Xffffffff:0:8:
+%8lx:+0xFFFFFFFF:1:8:1048575:
+%*8lx:+0xFFFFFFFF:0:8:
+%8lx:+100000000:1:8:16777216:
+%*8lx:+100000000:0:8:
+%8lx:+0X100000000:1:8:65536:
+%*8lx:+0X100000000:0:8:
+%8lx:+0x100000000:1:8:65536:
+%*8lx:+0x100000000:0:8:
+%8lx:+100001091:1:8:16777232:
+%*8lx:+100001091:0:8:
+%8lx:+0X100001091:1:8:65536:
+%*8lx:+0X100001091:0:8:
+%8lx:+0x100001091:1:8:65536:
+%*8lx:+0x100001091:0:8:
+%15lx::0:-1:
+%*15lx::0:-1:
+%15lx:-7b:1:3:4294967173:
+%*15lx:-7b:0:3:
+%15lx:-7B:1:3:4294967173:
+%*15lx:-7B:0:3:
+%15lx:-0X7b:1:5:4294967173:
+%*15lx:-0X7b:0:5:
+%15lx:-0x7B:1:5:4294967173:
+%*15lx:-0x7B:0:5:
+%15lx:-1:1:2:4294967295:
+%*15lx:-1:0:2:
+%15lx:-0X1:1:4:4294967295:
+%*15lx:-0X1:0:4:
+%15lx:-0x1:1:4:4294967295:
+%*15lx:-0x1:0:4:
+%15lx:-0:1:2:0:
+%*15lx:-0:0:2:
+%15lx:-0X0:1:4:0:
+%*15lx:-0X0:0:4:
+%15lx:-0x0:1:4:0:
+%*15lx:-0x0:0:4:
+%15lx:0:1:1:0:
+%*15lx:0:0:1:
+%15lx:0X0:1:3:0:
+%*15lx:0X0:0:3:
+%15lx:0x0:1:3:0:
+%*15lx:0x0:0:3:
+%15lx:1:1:1:1:
+%*15lx:1:0:1:
+%15lx:0X1:1:3:1:
+%*15lx:0X1:0:3:
+%15lx:0x1:1:3:1:
+%*15lx:0x1:0:3:
+%15lx:2a:1:2:42:
+%*15lx:2a:0:2:
+%15lx:2A:1:2:42:
+%*15lx:2A:0:2:
+%15lx:0X2a:1:4:42:
+%*15lx:0X2a:0:4:
+%15lx:0x2A:1:4:42:
+%*15lx:0x2A:0:4:
+%15lx:ffffffff:1:8:4294967295:
+%*15lx:ffffffff:0:8:
+%15lx:FFFFFFFF:1:8:4294967295:
+%*15lx:FFFFFFFF:0:8:
+%15lx:0Xffffffff:1:10:4294967295:
+%*15lx:0Xffffffff:0:10:
+%15lx:0xFFFFFFFF:1:10:4294967295:
+%*15lx:0xFFFFFFFF:0:10:
+%15lx:100000000:1:9:4294967295:
+%*15lx:100000000:0:9:
+%15lx:0X100000000:1:11:4294967295:
+%*15lx:0X100000000:0:11:
+%15lx:0x100000000:1:11:4294967295:
+%*15lx:0x100000000:0:11:
+%15lx:100001091:1:9:4294967295:
+%*15lx:100001091:0:9:
+%15lx:0X100001091:1:11:4294967295:
+%*15lx:0X100001091:0:11:
+%15lx:0x100001091:1:11:4294967295:
+%*15lx:0x100001091:0:11:
+%15lx:+0:1:2:0:
+%*15lx:+0:0:2:
+%15lx:+0X0:1:4:0:
+%*15lx:+0X0:0:4:
+%15lx:+0x0:1:4:0:
+%*15lx:+0x0:0:4:
+%15lx:+1:1:2:1:
+%*15lx:+1:0:2:
+%15lx:+0X1:1:4:1:
+%*15lx:+0X1:0:4:
+%15lx:+0x1:1:4:1:
+%*15lx:+0x1:0:4:
+%15lx:+2a:1:3:42:
+%*15lx:+2a:0:3:
+%15lx:+2A:1:3:42:
+%*15lx:+2A:0:3:
+%15lx:+0X2a:1:5:42:
+%*15lx:+0X2a:0:5:
+%15lx:+0x2A:1:5:42:
+%*15lx:+0x2A:0:5:
+%15lx:+ffffffff:1:9:4294967295:
+%*15lx:+ffffffff:0:9:
+%15lx:+FFFFFFFF:1:9:4294967295:
+%*15lx:+FFFFFFFF:0:9:
+%15lx:+0Xffffffff:1:11:4294967295:
+%*15lx:+0Xffffffff:0:11:
+%15lx:+0xFFFFFFFF:1:11:4294967295:
+%*15lx:+0xFFFFFFFF:0:11:
+%15lx:+100000000:1:10:4294967295:
+%*15lx:+100000000:0:10:
+%15lx:+0X100000000:1:12:4294967295:
+%*15lx:+0X100000000:0:12:
+%15lx:+0x100000000:1:12:4294967295:
+%*15lx:+0x100000000:0:12:
+%15lx:+100001091:1:10:4294967295:
+%*15lx:+100001091:0:10:
+%15lx:+0X100001091:1:12:4294967295:
+%*15lx:+0X100001091:0:12:
+%15lx:+0x100001091:1:12:4294967295:
+%*15lx:+0x100001091:0:12:
+%2lx: :0:-1:
+%*2lx: :0:-1:
+%2lx: -7b:1:3:4294967289:
+%*2lx: -7b:0:3:
+%2lx: -7B:1:3:4294967289:
+%*2lx: -7B:0:3:
+%2lx: -0X7b:1:3:0:
+%*2lx: -0X7b:0:3:
+%2lx: -0x7B:1:3:0:
+%*2lx: -0x7B:0:3:
+%2lx: -1:1:3:4294967295:
+%*2lx: -1:0:3:
+%2lx: -0X1:1:3:0:
+%*2lx: -0X1:0:3:
+%2lx: -0x1:1:3:0:
+%*2lx: -0x1:0:3:
+%2lx: -0:1:3:0:
+%*2lx: -0:0:3:
+%2lx: -0X0:1:3:0:
+%*2lx: -0X0:0:3:
+%2lx: -0x0:1:3:0:
+%*2lx: -0x0:0:3:
+%2lx: 0:1:2:0:
+%*2lx: 0:0:2:
+%2lx: 0X0:0:-1:
+%*2lx: 0X0:0:-1:
+%2lx: 0x0:0:-1:
+%*2lx: 0x0:0:-1:
+%2lx: 1:1:2:1:
+%*2lx: 1:0:2:
+%2lx: 0X1:0:-1:
+%*2lx: 0X1:0:-1:
+%2lx: 0x1:0:-1:
+%*2lx: 0x1:0:-1:
+%2lx: 2a:1:3:42:
+%*2lx: 2a:0:3:
+%2lx: 2A:1:3:42:
+%*2lx: 2A:0:3:
+%2lx: 0X2a:0:-1:
+%*2lx: 0X2a:0:-1:
+%2lx: 0x2A:0:-1:
+%*2lx: 0x2A:0:-1:
+%2lx: ffffffff:1:3:255:
+%*2lx: ffffffff:0:3:
+%2lx: FFFFFFFF:1:3:255:
+%*2lx: FFFFFFFF:0:3:
+%2lx: 0Xffffffff:0:-1:
+%*2lx: 0Xffffffff:0:-1:
+%2lx: 0xFFFFFFFF:0:-1:
+%*2lx: 0xFFFFFFFF:0:-1:
+%2lx: 100000000:1:3:16:
+%*2lx: 100000000:0:3:
+%2lx: 0X100000000:0:-1:
+%*2lx: 0X100000000:0:-1:
+%2lx: 0x100000000:0:-1:
+%*2lx: 0x100000000:0:-1:
+%2lx: 100001091:1:3:16:
+%*2lx: 100001091:0:3:
+%2lx: 0X100001091:0:-1:
+%*2lx: 0X100001091:0:-1:
+%2lx: 0x100001091:0:-1:
+%*2lx: 0x100001091:0:-1:
+%2lx: +0:1:3:0:
+%*2lx: +0:0:3:
+%2lx: +0X0:1:3:0:
+%*2lx: +0X0:0:3:
+%2lx: +0x0:1:3:0:
+%*2lx: +0x0:0:3:
+%2lx: +1:1:3:1:
+%*2lx: +1:0:3:
+%2lx: +0X1:1:3:0:
+%*2lx: +0X1:0:3:
+%2lx: +0x1:1:3:0:
+%*2lx: +0x1:0:3:
+%2lx: +2a:1:3:2:
+%*2lx: +2a:0:3:
+%2lx: +2A:1:3:2:
+%*2lx: +2A:0:3:
+%2lx: +0X2a:1:3:0:
+%*2lx: +0X2a:0:3:
+%2lx: +0x2A:1:3:0:
+%*2lx: +0x2A:0:3:
+%2lx: +ffffffff:1:3:15:
+%*2lx: +ffffffff:0:3:
+%2lx: +FFFFFFFF:1:3:15:
+%*2lx: +FFFFFFFF:0:3:
+%2lx: +0Xffffffff:1:3:0:
+%*2lx: +0Xffffffff:0:3:
+%2lx: +0xFFFFFFFF:1:3:0:
+%*2lx: +0xFFFFFFFF:0:3:
+%2lx: +100000000:1:3:1:
+%*2lx: +100000000:0:3:
+%2lx: +0X100000000:1:3:0:
+%*2lx: +0X100000000:0:3:
+%2lx: +0x100000000:1:3:0:
+%*2lx: +0x100000000:0:3:
+%2lx: +100001091:1:3:1:
+%*2lx: +100001091:0:3:
+%2lx: +0X100001091:1:3:0:
+%*2lx: +0X100001091:0:3:
+%2lx: +0x100001091:1:3:0:
+%*2lx: +0x100001091:0:3:
+%15lx: :0:-1:
+%*15lx: :0:-1:
+%15lx: -7b:1:4:4294967173:
+%*15lx: -7b:0:4:
+%15lx: -7B:1:4:4294967173:
+%*15lx: -7B:0:4:
+%15lx: -0X7b:1:6:4294967173:
+%*15lx: -0X7b:0:6:
+%15lx: -0x7B:1:6:4294967173:
+%*15lx: -0x7B:0:6:
+%15lx: -1:1:3:4294967295:
+%*15lx: -1:0:3:
+%15lx: -0X1:1:5:4294967295:
+%*15lx: -0X1:0:5:
+%15lx: -0x1:1:5:4294967295:
+%*15lx: -0x1:0:5:
+%15lx: -0:1:3:0:
+%*15lx: -0:0:3:
+%15lx: -0X0:1:5:0:
+%*15lx: -0X0:0:5:
+%15lx: -0x0:1:5:0:
+%*15lx: -0x0:0:5:
+%15lx: 0:1:2:0:
+%*15lx: 0:0:2:
+%15lx: 0X0:1:4:0:
+%*15lx: 0X0:0:4:
+%15lx: 0x0:1:4:0:
+%*15lx: 0x0:0:4:
+%15lx: 1:1:2:1:
+%*15lx: 1:0:2:
+%15lx: 0X1:1:4:1:
+%*15lx: 0X1:0:4:
+%15lx: 0x1:1:4:1:
+%*15lx: 0x1:0:4:
+%15lx: 2a:1:3:42:
+%*15lx: 2a:0:3:
+%15lx: 2A:1:3:42:
+%*15lx: 2A:0:3:
+%15lx: 0X2a:1:5:42:
+%*15lx: 0X2a:0:5:
+%15lx: 0x2A:1:5:42:
+%*15lx: 0x2A:0:5:
+%15lx: ffffffff:1:9:4294967295:
+%*15lx: ffffffff:0:9:
+%15lx: FFFFFFFF:1:9:4294967295:
+%*15lx: FFFFFFFF:0:9:
+%15lx: 0Xffffffff:1:11:4294967295:
+%*15lx: 0Xffffffff:0:11:
+%15lx: 0xFFFFFFFF:1:11:4294967295:
+%*15lx: 0xFFFFFFFF:0:11:
+%15lx: 100000000:1:10:4294967295:
+%*15lx: 100000000:0:10:
+%15lx: 0X100000000:1:12:4294967295:
+%*15lx: 0X100000000:0:12:
+%15lx: 0x100000000:1:12:4294967295:
+%*15lx: 0x100000000:0:12:
+%15lx: 100001091:1:10:4294967295:
+%*15lx: 100001091:0:10:
+%15lx: 0X100001091:1:12:4294967295:
+%*15lx: 0X100001091:0:12:
+%15lx: 0x100001091:1:12:4294967295:
+%*15lx: 0x100001091:0:12:
+%15lx: +0:1:3:0:
+%*15lx: +0:0:3:
+%15lx: +0X0:1:5:0:
+%*15lx: +0X0:0:5:
+%15lx: +0x0:1:5:0:
+%*15lx: +0x0:0:5:
+%15lx: +1:1:3:1:
+%*15lx: +1:0:3:
+%15lx: +0X1:1:5:1:
+%*15lx: +0X1:0:5:
+%15lx: +0x1:1:5:1:
+%*15lx: +0x1:0:5:
+%15lx: +2a:1:4:42:
+%*15lx: +2a:0:4:
+%15lx: +2A:1:4:42:
+%*15lx: +2A:0:4:
+%15lx: +0X2a:1:6:42:
+%*15lx: +0X2a:0:6:
+%15lx: +0x2A:1:6:42:
+%*15lx: +0x2A:0:6:
+%15lx: +ffffffff:1:10:4294967295:
+%*15lx: +ffffffff:0:10:
+%15lx: +FFFFFFFF:1:10:4294967295:
+%*15lx: +FFFFFFFF:0:10:
+%15lx: +0Xffffffff:1:12:4294967295:
+%*15lx: +0Xffffffff:0:12:
+%15lx: +0xFFFFFFFF:1:12:4294967295:
+%*15lx: +0xFFFFFFFF:0:12:
+%15lx: +100000000:1:11:4294967295:
+%*15lx: +100000000:0:11:
+%15lx: +0X100000000:1:13:4294967295:
+%*15lx: +0X100000000:0:13:
+%15lx: +0x100000000:1:13:4294967295:
+%*15lx: +0x100000000:0:13:
+%15lx: +100001091:1:11:4294967295:
+%*15lx: +100001091:0:11:
+%15lx: +0X100001091:1:13:4294967295:
+%*15lx: +0X100001091:0:13:
+%15lx: +0x100001091:1:13:4294967295:
+%*15lx: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input
new file mode 100644
index 0000000..7e272ef
--- /dev/null
+++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input
@@ -0,0 +1,714 @@
+%lX::0:-1:
+%*lX::0:-1:
+%lX:-7b:1:3:4294967173:
+%*lX:-7b:0:3:
+%lX:-7B:1:3:4294967173:
+%*lX:-7B:0:3:
+%lX:-0X7b:1:5:4294967173:
+%*lX:-0X7b:0:5:
+%lX:-0x7B:1:5:4294967173:
+%*lX:-0x7B:0:5:
+%lX:-1:1:2:4294967295:
+%*lX:-1:0:2:
+%lX:-0X1:1:4:4294967295:
+%*lX:-0X1:0:4:
+%lX:-0x1:1:4:4294967295:
+%*lX:-0x1:0:4:
+%lX:-0:1:2:0:
+%*lX:-0:0:2:
+%lX:-0X0:1:4:0:
+%*lX:-0X0:0:4:
+%lX:-0x0:1:4:0:
+%*lX:-0x0:0:4:
+%lX:0:1:1:0:
+%*lX:0:0:1:
+%lX:0X0:1:3:0:
+%*lX:0X0:0:3:
+%lX:0x0:1:3:0:
+%*lX:0x0:0:3:
+%lX:1:1:1:1:
+%*lX:1:0:1:
+%lX:0X1:1:3:1:
+%*lX:0X1:0:3:
+%lX:0x1:1:3:1:
+%*lX:0x1:0:3:
+%lX:2a:1:2:42:
+%*lX:2a:0:2:
+%lX:2A:1:2:42:
+%*lX:2A:0:2:
+%lX:0X2a:1:4:42:
+%*lX:0X2a:0:4:
+%lX:0x2A:1:4:42:
+%*lX:0x2A:0:4:
+%lX:ffffffff:1:8:4294967295:
+%*lX:ffffffff:0:8:
+%lX:FFFFFFFF:1:8:4294967295:
+%*lX:FFFFFFFF:0:8:
+%lX:0Xffffffff:1:10:4294967295:
+%*lX:0Xffffffff:0:10:
+%lX:0xFFFFFFFF:1:10:4294967295:
+%*lX:0xFFFFFFFF:0:10:
+%lX:100000000:1:9:4294967295:
+%*lX:100000000:0:9:
+%lX:0X100000000:1:11:4294967295:
+%*lX:0X100000000:0:11:
+%lX:0x100000000:1:11:4294967295:
+%*lX:0x100000000:0:11:
+%lX:100001091:1:9:4294967295:
+%*lX:100001091:0:9:
+%lX:0X100001091:1:11:4294967295:
+%*lX:0X100001091:0:11:
+%lX:0x100001091:1:11:4294967295:
+%*lX:0x100001091:0:11:
+%lX:+0:1:2:0:
+%*lX:+0:0:2:
+%lX:+0X0:1:4:0:
+%*lX:+0X0:0:4:
+%lX:+0x0:1:4:0:
+%*lX:+0x0:0:4:
+%lX:+1:1:2:1:
+%*lX:+1:0:2:
+%lX:+0X1:1:4:1:
+%*lX:+0X1:0:4:
+%lX:+0x1:1:4:1:
+%*lX:+0x1:0:4:
+%lX:+2a:1:3:42:
+%*lX:+2a:0:3:
+%lX:+2A:1:3:42:
+%*lX:+2A:0:3:
+%lX:+0X2a:1:5:42:
+%*lX:+0X2a:0:5:
+%lX:+0x2A:1:5:42:
+%*lX:+0x2A:0:5:
+%lX:+ffffffff:1:9:4294967295:
+%*lX:+ffffffff:0:9:
+%lX:+FFFFFFFF:1:9:4294967295:
+%*lX:+FFFFFFFF:0:9:
+%lX:+0Xffffffff:1:11:4294967295:
+%*lX:+0Xffffffff:0:11:
+%lX:+0xFFFFFFFF:1:11:4294967295:
+%*lX:+0xFFFFFFFF:0:11:
+%lX:+100000000:1:10:4294967295:
+%*lX:+100000000:0:10:
+%lX:+0X100000000:1:12:4294967295:
+%*lX:+0X100000000:0:12:
+%lX:+0x100000000:1:12:4294967295:
+%*lX:+0x100000000:0:12:
+%lX:+100001091:1:10:4294967295:
+%*lX:+100001091:0:10:
+%lX:+0X100001091:1:12:4294967295:
+%*lX:+0X100001091:0:12:
+%lX:+0x100001091:1:12:4294967295:
+%*lX:+0x100001091:0:12:
+%1lX::0:-1:
+%*1lX::0:-1:
+%1lX:-7b:0:-1:
+%*1lX:-7b:0:-1:
+%1lX:-7B:0:-1:
+%*1lX:-7B:0:-1:
+%1lX:-0X7b:0:-1:
+%*1lX:-0X7b:0:-1:
+%1lX:-0x7B:0:-1:
+%*1lX:-0x7B:0:-1:
+%1lX:-1:0:-1:
+%*1lX:-1:0:-1:
+%1lX:-0X1:0:-1:
+%*1lX:-0X1:0:-1:
+%1lX:-0x1:0:-1:
+%*1lX:-0x1:0:-1:
+%1lX:-0:0:-1:
+%*1lX:-0:0:-1:
+%1lX:-0X0:0:-1:
+%*1lX:-0X0:0:-1:
+%1lX:-0x0:0:-1:
+%*1lX:-0x0:0:-1:
+%1lX:0:1:1:0:
+%*1lX:0:0:1:
+%1lX:0X0:1:1:0:
+%*1lX:0X0:0:1:
+%1lX:0x0:1:1:0:
+%*1lX:0x0:0:1:
+%1lX:1:1:1:1:
+%*1lX:1:0:1:
+%1lX:0X1:1:1:0:
+%*1lX:0X1:0:1:
+%1lX:0x1:1:1:0:
+%*1lX:0x1:0:1:
+%1lX:2a:1:1:2:
+%*1lX:2a:0:1:
+%1lX:2A:1:1:2:
+%*1lX:2A:0:1:
+%1lX:0X2a:1:1:0:
+%*1lX:0X2a:0:1:
+%1lX:0x2A:1:1:0:
+%*1lX:0x2A:0:1:
+%1lX:ffffffff:1:1:15:
+%*1lX:ffffffff:0:1:
+%1lX:FFFFFFFF:1:1:15:
+%*1lX:FFFFFFFF:0:1:
+%1lX:0Xffffffff:1:1:0:
+%*1lX:0Xffffffff:0:1:
+%1lX:0xFFFFFFFF:1:1:0:
+%*1lX:0xFFFFFFFF:0:1:
+%1lX:100000000:1:1:1:
+%*1lX:100000000:0:1:
+%1lX:0X100000000:1:1:0:
+%*1lX:0X100000000:0:1:
+%1lX:0x100000000:1:1:0:
+%*1lX:0x100000000:0:1:
+%1lX:100001091:1:1:1:
+%*1lX:100001091:0:1:
+%1lX:0X100001091:1:1:0:
+%*1lX:0X100001091:0:1:
+%1lX:0x100001091:1:1:0:
+%*1lX:0x100001091:0:1:
+%1lX:+0:0:-1:
+%*1lX:+0:0:-1:
+%1lX:+0X0:0:-1:
+%*1lX:+0X0:0:-1:
+%1lX:+0x0:0:-1:
+%*1lX:+0x0:0:-1:
+%1lX:+1:0:-1:
+%*1lX:+1:0:-1:
+%1lX:+0X1:0:-1:
+%*1lX:+0X1:0:-1:
+%1lX:+0x1:0:-1:
+%*1lX:+0x1:0:-1:
+%1lX:+2a:0:-1:
+%*1lX:+2a:0:-1:
+%1lX:+2A:0:-1:
+%*1lX:+2A:0:-1:
+%1lX:+0X2a:0:-1:
+%*1lX:+0X2a:0:-1:
+%1lX:+0x2A:0:-1:
+%*1lX:+0x2A:0:-1:
+%1lX:+ffffffff:0:-1:
+%*1lX:+ffffffff:0:-1:
+%1lX:+FFFFFFFF:0:-1:
+%*1lX:+FFFFFFFF:0:-1:
+%1lX:+0Xffffffff:0:-1:
+%*1lX:+0Xffffffff:0:-1:
+%1lX:+0xFFFFFFFF:0:-1:
+%*1lX:+0xFFFFFFFF:0:-1:
+%1lX:+100000000:0:-1:
+%*1lX:+100000000:0:-1:
+%1lX:+0X100000000:0:-1:
+%*1lX:+0X100000000:0:-1:
+%1lX:+0x100000000:0:-1:
+%*1lX:+0x100000000:0:-1:
+%1lX:+100001091:0:-1:
+%*1lX:+100001091:0:-1:
+%1lX:+0X100001091:0:-1:
+%*1lX:+0X100001091:0:-1:
+%1lX:+0x100001091:0:-1:
+%*1lX:+0x100001091:0:-1:
+%2lX::0:-1:
+%*2lX::0:-1:
+%2lX:-7b:1:2:4294967289:
+%*2lX:-7b:0:2:
+%2lX:-7B:1:2:4294967289:
+%*2lX:-7B:0:2:
+%2lX:-0X7b:1:2:0:
+%*2lX:-0X7b:0:2:
+%2lX:-0x7B:1:2:0:
+%*2lX:-0x7B:0:2:
+%2lX:-1:1:2:4294967295:
+%*2lX:-1:0:2:
+%2lX:-0X1:1:2:0:
+%*2lX:-0X1:0:2:
+%2lX:-0x1:1:2:0:
+%*2lX:-0x1:0:2:
+%2lX:-0:1:2:0:
+%*2lX:-0:0:2:
+%2lX:-0X0:1:2:0:
+%*2lX:-0X0:0:2:
+%2lX:-0x0:1:2:0:
+%*2lX:-0x0:0:2:
+%2lX:0:1:1:0:
+%*2lX:0:0:1:
+%2lX:0X0:0:-1:
+%*2lX:0X0:0:-1:
+%2lX:0x0:0:-1:
+%*2lX:0x0:0:-1:
+%2lX:1:1:1:1:
+%*2lX:1:0:1:
+%2lX:0X1:0:-1:
+%*2lX:0X1:0:-1:
+%2lX:0x1:0:-1:
+%*2lX:0x1:0:-1:
+%2lX:2a:1:2:42:
+%*2lX:2a:0:2:
+%2lX:2A:1:2:42:
+%*2lX:2A:0:2:
+%2lX:0X2a:0:-1:
+%*2lX:0X2a:0:-1:
+%2lX:0x2A:0:-1:
+%*2lX:0x2A:0:-1:
+%2lX:ffffffff:1:2:255:
+%*2lX:ffffffff:0:2:
+%2lX:FFFFFFFF:1:2:255:
+%*2lX:FFFFFFFF:0:2:
+%2lX:0Xffffffff:0:-1:
+%*2lX:0Xffffffff:0:-1:
+%2lX:0xFFFFFFFF:0:-1:
+%*2lX:0xFFFFFFFF:0:-1:
+%2lX:100000000:1:2:16:
+%*2lX:100000000:0:2:
+%2lX:0X100000000:0:-1:
+%*2lX:0X100000000:0:-1:
+%2lX:0x100000000:0:-1:
+%*2lX:0x100000000:0:-1:
+%2lX:100001091:1:2:16:
+%*2lX:100001091:0:2:
+%2lX:0X100001091:0:-1:
+%*2lX:0X100001091:0:-1:
+%2lX:0x100001091:0:-1:
+%*2lX:0x100001091:0:-1:
+%2lX:+0:1:2:0:
+%*2lX:+0:0:2:
+%2lX:+0X0:1:2:0:
+%*2lX:+0X0:0:2:
+%2lX:+0x0:1:2:0:
+%*2lX:+0x0:0:2:
+%2lX:+1:1:2:1:
+%*2lX:+1:0:2:
+%2lX:+0X1:1:2:0:
+%*2lX:+0X1:0:2:
+%2lX:+0x1:1:2:0:
+%*2lX:+0x1:0:2:
+%2lX:+2a:1:2:2:
+%*2lX:+2a:0:2:
+%2lX:+2A:1:2:2:
+%*2lX:+2A:0:2:
+%2lX:+0X2a:1:2:0:
+%*2lX:+0X2a:0:2:
+%2lX:+0x2A:1:2:0:
+%*2lX:+0x2A:0:2:
+%2lX:+ffffffff:1:2:15:
+%*2lX:+ffffffff:0:2:
+%2lX:+FFFFFFFF:1:2:15:
+%*2lX:+FFFFFFFF:0:2:
+%2lX:+0Xffffffff:1:2:0:
+%*2lX:+0Xffffffff:0:2:
+%2lX:+0xFFFFFFFF:1:2:0:
+%*2lX:+0xFFFFFFFF:0:2:
+%2lX:+100000000:1:2:1:
+%*2lX:+100000000:0:2:
+%2lX:+0X100000000:1:2:0:
+%*2lX:+0X100000000:0:2:
+%2lX:+0x100000000:1:2:0:
+%*2lX:+0x100000000:0:2:
+%2lX:+100001091:1:2:1:
+%*2lX:+100001091:0:2:
+%2lX:+0X100001091:1:2:0:
+%*2lX:+0X100001091:0:2:
+%2lX:+0x100001091:1:2:0:
+%*2lX:+0x100001091:0:2:
+%8lX::0:-1:
+%*8lX::0:-1:
+%8lX:-7b:1:3:4294967173:
+%*8lX:-7b:0:3:
+%8lX:-7B:1:3:4294967173:
+%*8lX:-7B:0:3:
+%8lX:-0X7b:1:5:4294967173:
+%*8lX:-0X7b:0:5:
+%8lX:-0x7B:1:5:4294967173:
+%*8lX:-0x7B:0:5:
+%8lX:-1:1:2:4294967295:
+%*8lX:-1:0:2:
+%8lX:-0X1:1:4:4294967295:
+%*8lX:-0X1:0:4:
+%8lX:-0x1:1:4:4294967295:
+%*8lX:-0x1:0:4:
+%8lX:-0:1:2:0:
+%*8lX:-0:0:2:
+%8lX:-0X0:1:4:0:
+%*8lX:-0X0:0:4:
+%8lX:-0x0:1:4:0:
+%*8lX:-0x0:0:4:
+%8lX:0:1:1:0:
+%*8lX:0:0:1:
+%8lX:0X0:1:3:0:
+%*8lX:0X0:0:3:
+%8lX:0x0:1:3:0:
+%*8lX:0x0:0:3:
+%8lX:1:1:1:1:
+%*8lX:1:0:1:
+%8lX:0X1:1:3:1:
+%*8lX:0X1:0:3:
+%8lX:0x1:1:3:1:
+%*8lX:0x1:0:3:
+%8lX:2a:1:2:42:
+%*8lX:2a:0:2:
+%8lX:2A:1:2:42:
+%*8lX:2A:0:2:
+%8lX:0X2a:1:4:42:
+%*8lX:0X2a:0:4:
+%8lX:0x2A:1:4:42:
+%*8lX:0x2A:0:4:
+%8lX:ffffffff:1:8:4294967295:
+%*8lX:ffffffff:0:8:
+%8lX:FFFFFFFF:1:8:4294967295:
+%*8lX:FFFFFFFF:0:8:
+%8lX:0Xffffffff:1:8:16777215:
+%*8lX:0Xffffffff:0:8:
+%8lX:0xFFFFFFFF:1:8:16777215:
+%*8lX:0xFFFFFFFF:0:8:
+%8lX:100000000:1:8:268435456:
+%*8lX:100000000:0:8:
+%8lX:0X100000000:1:8:1048576:
+%*8lX:0X100000000:0:8:
+%8lX:0x100000000:1:8:1048576:
+%*8lX:0x100000000:0:8:
+%8lX:100001091:1:8:268435721:
+%*8lX:100001091:0:8:
+%8lX:0X100001091:1:8:1048577:
+%*8lX:0X100001091:0:8:
+%8lX:0x100001091:1:8:1048577:
+%*8lX:0x100001091:0:8:
+%8lX:+0:1:2:0:
+%*8lX:+0:0:2:
+%8lX:+0X0:1:4:0:
+%*8lX:+0X0:0:4:
+%8lX:+0x0:1:4:0:
+%*8lX:+0x0:0:4:
+%8lX:+1:1:2:1:
+%*8lX:+1:0:2:
+%8lX:+0X1:1:4:1:
+%*8lX:+0X1:0:4:
+%8lX:+0x1:1:4:1:
+%*8lX:+0x1:0:4:
+%8lX:+2a:1:3:42:
+%*8lX:+2a:0:3:
+%8lX:+2A:1:3:42:
+%*8lX:+2A:0:3:
+%8lX:+0X2a:1:5:42:
+%*8lX:+0X2a:0:5:
+%8lX:+0x2A:1:5:42:
+%*8lX:+0x2A:0:5:
+%8lX:+ffffffff:1:8:268435455:
+%*8lX:+ffffffff:0:8:
+%8lX:+FFFFFFFF:1:8:268435455:
+%*8lX:+FFFFFFFF:0:8:
+%8lX:+0Xffffffff:1:8:1048575:
+%*8lX:+0Xffffffff:0:8:
+%8lX:+0xFFFFFFFF:1:8:1048575:
+%*8lX:+0xFFFFFFFF:0:8:
+%8lX:+100000000:1:8:16777216:
+%*8lX:+100000000:0:8:
+%8lX:+0X100000000:1:8:65536:
+%*8lX:+0X100000000:0:8:
+%8lX:+0x100000000:1:8:65536:
+%*8lX:+0x100000000:0:8:
+%8lX:+100001091:1:8:16777232:
+%*8lX:+100001091:0:8:
+%8lX:+0X100001091:1:8:65536:
+%*8lX:+0X100001091:0:8:
+%8lX:+0x100001091:1:8:65536:
+%*8lX:+0x100001091:0:8:
+%15lX::0:-1:
+%*15lX::0:-1:
+%15lX:-7b:1:3:4294967173:
+%*15lX:-7b:0:3:
+%15lX:-7B:1:3:4294967173:
+%*15lX:-7B:0:3:
+%15lX:-0X7b:1:5:4294967173:
+%*15lX:-0X7b:0:5:
+%15lX:-0x7B:1:5:4294967173:
+%*15lX:-0x7B:0:5:
+%15lX:-1:1:2:4294967295:
+%*15lX:-1:0:2:
+%15lX:-0X1:1:4:4294967295:
+%*15lX:-0X1:0:4:
+%15lX:-0x1:1:4:4294967295:
+%*15lX:-0x1:0:4:
+%15lX:-0:1:2:0:
+%*15lX:-0:0:2:
+%15lX:-0X0:1:4:0:
+%*15lX:-0X0:0:4:
+%15lX:-0x0:1:4:0:
+%*15lX:-0x0:0:4:
+%15lX:0:1:1:0:
+%*15lX:0:0:1:
+%15lX:0X0:1:3:0:
+%*15lX:0X0:0:3:
+%15lX:0x0:1:3:0:
+%*15lX:0x0:0:3:
+%15lX:1:1:1:1:
+%*15lX:1:0:1:
+%15lX:0X1:1:3:1:
+%*15lX:0X1:0:3:
+%15lX:0x1:1:3:1:
+%*15lX:0x1:0:3:
+%15lX:2a:1:2:42:
+%*15lX:2a:0:2:
+%15lX:2A:1:2:42:
+%*15lX:2A:0:2:
+%15lX:0X2a:1:4:42:
+%*15lX:0X2a:0:4:
+%15lX:0x2A:1:4:42:
+%*15lX:0x2A:0:4:
+%15lX:ffffffff:1:8:4294967295:
+%*15lX:ffffffff:0:8:
+%15lX:FFFFFFFF:1:8:4294967295:
+%*15lX:FFFFFFFF:0:8:
+%15lX:0Xffffffff:1:10:4294967295:
+%*15lX:0Xffffffff:0:10:
+%15lX:0xFFFFFFFF:1:10:4294967295:
+%*15lX:0xFFFFFFFF:0:10:
+%15lX:100000000:1:9:4294967295:
+%*15lX:100000000:0:9:
+%15lX:0X100000000:1:11:4294967295:
+%*15lX:0X100000000:0:11:
+%15lX:0x100000000:1:11:4294967295:
+%*15lX:0x100000000:0:11:
+%15lX:100001091:1:9:4294967295:
+%*15lX:100001091:0:9:
+%15lX:0X100001091:1:11:4294967295:
+%*15lX:0X100001091:0:11:
+%15lX:0x100001091:1:11:4294967295:
+%*15lX:0x100001091:0:11:
+%15lX:+0:1:2:0:
+%*15lX:+0:0:2:
+%15lX:+0X0:1:4:0:
+%*15lX:+0X0:0:4:
+%15lX:+0x0:1:4:0:
+%*15lX:+0x0:0:4:
+%15lX:+1:1:2:1:
+%*15lX:+1:0:2:
+%15lX:+0X1:1:4:1:
+%*15lX:+0X1:0:4:
+%15lX:+0x1:1:4:1:
+%*15lX:+0x1:0:4:
+%15lX:+2a:1:3:42:
+%*15lX:+2a:0:3:
+%15lX:+2A:1:3:42:
+%*15lX:+2A:0:3:
+%15lX:+0X2a:1:5:42:
+%*15lX:+0X2a:0:5:
+%15lX:+0x2A:1:5:42:
+%*15lX:+0x2A:0:5:
+%15lX:+ffffffff:1:9:4294967295:
+%*15lX:+ffffffff:0:9:
+%15lX:+FFFFFFFF:1:9:4294967295:
+%*15lX:+FFFFFFFF:0:9:
+%15lX:+0Xffffffff:1:11:4294967295:
+%*15lX:+0Xffffffff:0:11:
+%15lX:+0xFFFFFFFF:1:11:4294967295:
+%*15lX:+0xFFFFFFFF:0:11:
+%15lX:+100000000:1:10:4294967295:
+%*15lX:+100000000:0:10:
+%15lX:+0X100000000:1:12:4294967295:
+%*15lX:+0X100000000:0:12:
+%15lX:+0x100000000:1:12:4294967295:
+%*15lX:+0x100000000:0:12:
+%15lX:+100001091:1:10:4294967295:
+%*15lX:+100001091:0:10:
+%15lX:+0X100001091:1:12:4294967295:
+%*15lX:+0X100001091:0:12:
+%15lX:+0x100001091:1:12:4294967295:
+%*15lX:+0x100001091:0:12:
+%2lX: :0:-1:
+%*2lX: :0:-1:
+%2lX: -7b:1:3:4294967289:
+%*2lX: -7b:0:3:
+%2lX: -7B:1:3:4294967289:
+%*2lX: -7B:0:3:
+%2lX: -0X7b:1:3:0:
+%*2lX: -0X7b:0:3:
+%2lX: -0x7B:1:3:0:
+%*2lX: -0x7B:0:3:
+%2lX: -1:1:3:4294967295:
+%*2lX: -1:0:3:
+%2lX: -0X1:1:3:0:
+%*2lX: -0X1:0:3:
+%2lX: -0x1:1:3:0:
+%*2lX: -0x1:0:3:
+%2lX: -0:1:3:0:
+%*2lX: -0:0:3:
+%2lX: -0X0:1:3:0:
+%*2lX: -0X0:0:3:
+%2lX: -0x0:1:3:0:
+%*2lX: -0x0:0:3:
+%2lX: 0:1:2:0:
+%*2lX: 0:0:2:
+%2lX: 0X0:0:-1:
+%*2lX: 0X0:0:-1:
+%2lX: 0x0:0:-1:
+%*2lX: 0x0:0:-1:
+%2lX: 1:1:2:1:
+%*2lX: 1:0:2:
+%2lX: 0X1:0:-1:
+%*2lX: 0X1:0:-1:
+%2lX: 0x1:0:-1:
+%*2lX: 0x1:0:-1:
+%2lX: 2a:1:3:42:
+%*2lX: 2a:0:3:
+%2lX: 2A:1:3:42:
+%*2lX: 2A:0:3:
+%2lX: 0X2a:0:-1:
+%*2lX: 0X2a:0:-1:
+%2lX: 0x2A:0:-1:
+%*2lX: 0x2A:0:-1:
+%2lX: ffffffff:1:3:255:
+%*2lX: ffffffff:0:3:
+%2lX: FFFFFFFF:1:3:255:
+%*2lX: FFFFFFFF:0:3:
+%2lX: 0Xffffffff:0:-1:
+%*2lX: 0Xffffffff:0:-1:
+%2lX: 0xFFFFFFFF:0:-1:
+%*2lX: 0xFFFFFFFF:0:-1:
+%2lX: 100000000:1:3:16:
+%*2lX: 100000000:0:3:
+%2lX: 0X100000000:0:-1:
+%*2lX: 0X100000000:0:-1:
+%2lX: 0x100000000:0:-1:
+%*2lX: 0x100000000:0:-1:
+%2lX: 100001091:1:3:16:
+%*2lX: 100001091:0:3:
+%2lX: 0X100001091:0:-1:
+%*2lX: 0X100001091:0:-1:
+%2lX: 0x100001091:0:-1:
+%*2lX: 0x100001091:0:-1:
+%2lX: +0:1:3:0:
+%*2lX: +0:0:3:
+%2lX: +0X0:1:3:0:
+%*2lX: +0X0:0:3:
+%2lX: +0x0:1:3:0:
+%*2lX: +0x0:0:3:
+%2lX: +1:1:3:1:
+%*2lX: +1:0:3:
+%2lX: +0X1:1:3:0:
+%*2lX: +0X1:0:3:
+%2lX: +0x1:1:3:0:
+%*2lX: +0x1:0:3:
+%2lX: +2a:1:3:2:
+%*2lX: +2a:0:3:
+%2lX: +2A:1:3:2:
+%*2lX: +2A:0:3:
+%2lX: +0X2a:1:3:0:
+%*2lX: +0X2a:0:3:
+%2lX: +0x2A:1:3:0:
+%*2lX: +0x2A:0:3:
+%2lX: +ffffffff:1:3:15:
+%*2lX: +ffffffff:0:3:
+%2lX: +FFFFFFFF:1:3:15:
+%*2lX: +FFFFFFFF:0:3:
+%2lX: +0Xffffffff:1:3:0:
+%*2lX: +0Xffffffff:0:3:
+%2lX: +0xFFFFFFFF:1:3:0:
+%*2lX: +0xFFFFFFFF:0:3:
+%2lX: +100000000:1:3:1:
+%*2lX: +100000000:0:3:
+%2lX: +0X100000000:1:3:0:
+%*2lX: +0X100000000:0:3:
+%2lX: +0x100000000:1:3:0:
+%*2lX: +0x100000000:0:3:
+%2lX: +100001091:1:3:1:
+%*2lX: +100001091:0:3:
+%2lX: +0X100001091:1:3:0:
+%*2lX: +0X100001091:0:3:
+%2lX: +0x100001091:1:3:0:
+%*2lX: +0x100001091:0:3:
+%15lX: :0:-1:
+%*15lX: :0:-1:
+%15lX: -7b:1:4:4294967173:
+%*15lX: -7b:0:4:
+%15lX: -7B:1:4:4294967173:
+%*15lX: -7B:0:4:
+%15lX: -0X7b:1:6:4294967173:
+%*15lX: -0X7b:0:6:
+%15lX: -0x7B:1:6:4294967173:
+%*15lX: -0x7B:0:6:
+%15lX: -1:1:3:4294967295:
+%*15lX: -1:0:3:
+%15lX: -0X1:1:5:4294967295:
+%*15lX: -0X1:0:5:
+%15lX: -0x1:1:5:4294967295:
+%*15lX: -0x1:0:5:
+%15lX: -0:1:3:0:
+%*15lX: -0:0:3:
+%15lX: -0X0:1:5:0:
+%*15lX: -0X0:0:5:
+%15lX: -0x0:1:5:0:
+%*15lX: -0x0:0:5:
+%15lX: 0:1:2:0:
+%*15lX: 0:0:2:
+%15lX: 0X0:1:4:0:
+%*15lX: 0X0:0:4:
+%15lX: 0x0:1:4:0:
+%*15lX: 0x0:0:4:
+%15lX: 1:1:2:1:
+%*15lX: 1:0:2:
+%15lX: 0X1:1:4:1:
+%*15lX: 0X1:0:4:
+%15lX: 0x1:1:4:1:
+%*15lX: 0x1:0:4:
+%15lX: 2a:1:3:42:
+%*15lX: 2a:0:3:
+%15lX: 2A:1:3:42:
+%*15lX: 2A:0:3:
+%15lX: 0X2a:1:5:42:
+%*15lX: 0X2a:0:5:
+%15lX: 0x2A:1:5:42:
+%*15lX: 0x2A:0:5:
+%15lX: ffffffff:1:9:4294967295:
+%*15lX: ffffffff:0:9:
+%15lX: FFFFFFFF:1:9:4294967295:
+%*15lX: FFFFFFFF:0:9:
+%15lX: 0Xffffffff:1:11:4294967295:
+%*15lX: 0Xffffffff:0:11:
+%15lX: 0xFFFFFFFF:1:11:4294967295:
+%*15lX: 0xFFFFFFFF:0:11:
+%15lX: 100000000:1:10:4294967295:
+%*15lX: 100000000:0:10:
+%15lX: 0X100000000:1:12:4294967295:
+%*15lX: 0X100000000:0:12:
+%15lX: 0x100000000:1:12:4294967295:
+%*15lX: 0x100000000:0:12:
+%15lX: 100001091:1:10:4294967295:
+%*15lX: 100001091:0:10:
+%15lX: 0X100001091:1:12:4294967295:
+%*15lX: 0X100001091:0:12:
+%15lX: 0x100001091:1:12:4294967295:
+%*15lX: 0x100001091:0:12:
+%15lX: +0:1:3:0:
+%*15lX: +0:0:3:
+%15lX: +0X0:1:5:0:
+%*15lX: +0X0:0:5:
+%15lX: +0x0:1:5:0:
+%*15lX: +0x0:0:5:
+%15lX: +1:1:3:1:
+%*15lX: +1:0:3:
+%15lX: +0X1:1:5:1:
+%*15lX: +0X1:0:5:
+%15lX: +0x1:1:5:1:
+%*15lX: +0x1:0:5:
+%15lX: +2a:1:4:42:
+%*15lX: +2a:0:4:
+%15lX: +2A:1:4:42:
+%*15lX: +2A:0:4:
+%15lX: +0X2a:1:6:42:
+%*15lX: +0X2a:0:6:
+%15lX: +0x2A:1:6:42:
+%*15lX: +0x2A:0:6:
+%15lX: +ffffffff:1:10:4294967295:
+%*15lX: +ffffffff:0:10:
+%15lX: +FFFFFFFF:1:10:4294967295:
+%*15lX: +FFFFFFFF:0:10:
+%15lX: +0Xffffffff:1:12:4294967295:
+%*15lX: +0Xffffffff:0:12:
+%15lX: +0xFFFFFFFF:1:12:4294967295:
+%*15lX: +0xFFFFFFFF:0:12:
+%15lX: +100000000:1:11:4294967295:
+%*15lX: +100000000:0:11:
+%15lX: +0X100000000:1:13:4294967295:
+%*15lX: +0X100000000:0:13:
+%15lX: +0x100000000:1:13:4294967295:
+%*15lX: +0x100000000:0:13:
+%15lX: +100001091:1:11:4294967295:
+%*15lX: +100001091:0:11:
+%15lX: +0X100001091:1:13:4294967295:
+%*15lX: +0X100001091:0:13:
+%15lX: +0x100001091:1:13:4294967295:
+%*15lX: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile
index db7764f..6a84d0f 100644
--- a/sysdeps/wordsize-64/Makefile
+++ b/sysdeps/wordsize-64/Makefile
@@ -2,6 +2,11 @@ ifeq ($(subdir),misc)
tests += tst-writev
endif
+ifeq ($(subdir),stdio-common)
+fmt-xscanf-int-convs += int long
+fmt-xscanf-uint-convs += uint ulong
+endif
+
# strtol is aliased to stroll
CFLAGS-strtol.c += -fno-builtin-strtoll $(config-cflags-wno-ignored-attributes)
# strtoul is aliased to strtoull
diff --git a/sysdeps/wordsize-64/bits/wordsize.h b/sysdeps/wordsize-64/bits/wordsize.h
index 0bfa074..456d2e5 100644
--- a/sysdeps/wordsize-64/bits/wordsize.h
+++ b/sysdeps/wordsize-64/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-64/labs.c b/sysdeps/wordsize-64/labs.c
index 54783f7..49e9c7e 100644
--- a/sysdeps/wordsize-64/labs.c
+++ b/sysdeps/wordsize-64/labs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-64/ldiv.c b/sysdeps/wordsize-64/ldiv.c
index ea783e3..68fb0f0 100644
--- a/sysdeps/wordsize-64/ldiv.c
+++ b/sysdeps/wordsize-64/ldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-d.input b/sysdeps/wordsize-64/tst-scanf-format-int-d.input
new file mode 100644
index 0000000..d8c2b10
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-int-d.input
@@ -0,0 +1,266 @@
+%d::0:-1:
+%*d::0:-1:
+%d:-2147484882:1:11:2147482414:
+%*d:-2147484882:0:11:
+%d:-2147483649:1:11:2147483647:
+%*d:-2147483649:0:11:
+%d:-2147483648:1:11:-2147483648:
+%*d:-2147483648:0:11:
+%d:-123:1:4:-123:
+%*d:-123:0:4:
+%d:-1:1:2:-1:
+%*d:-1:0:2:
+%d:-0:1:2:0:
+%*d:-0:0:2:
+%d:0:1:1:0:
+%*d:0:0:1:
+%d:1:1:1:1:
+%*d:1:0:1:
+%d:42:1:2:42:
+%*d:42:0:2:
+%d:2147483647:1:10:2147483647:
+%*d:2147483647:0:10:
+%d:2147483648:1:10:-2147483648:
+%*d:2147483648:0:10:
+%d:2147487889:1:10:-2147479407:
+%*d:2147487889:0:10:
+%d:+0:1:2:0:
+%*d:+0:0:2:
+%d:+1:1:2:1:
+%*d:+1:0:2:
+%d:+42:1:3:42:
+%*d:+42:0:3:
+%d:+2147483647:1:11:2147483647:
+%*d:+2147483647:0:11:
+%d:+2147483648:1:11:-2147483648:
+%*d:+2147483648:0:11:
+%d:+2147487889:1:11:-2147479407:
+%*d:+2147487889:0:11:
+%1d::0:-1:
+%*1d::0:-1:
+%1d:-2147484882:0:-1:
+%*1d:-2147484882:0:-1:
+%1d:-2147483649:0:-1:
+%*1d:-2147483649:0:-1:
+%1d:-2147483648:0:-1:
+%*1d:-2147483648:0:-1:
+%1d:-123:0:-1:
+%*1d:-123:0:-1:
+%1d:-1:0:-1:
+%*1d:-1:0:-1:
+%1d:-0:0:-1:
+%*1d:-0:0:-1:
+%1d:0:1:1:0:
+%*1d:0:0:1:
+%1d:1:1:1:1:
+%*1d:1:0:1:
+%1d:42:1:1:4:
+%*1d:42:0:1:
+%1d:2147483647:1:1:2:
+%*1d:2147483647:0:1:
+%1d:2147483648:1:1:2:
+%*1d:2147483648:0:1:
+%1d:2147487889:1:1:2:
+%*1d:2147487889:0:1:
+%1d:+0:0:-1:
+%*1d:+0:0:-1:
+%1d:+1:0:-1:
+%*1d:+1:0:-1:
+%1d:+42:0:-1:
+%*1d:+42:0:-1:
+%1d:+2147483647:0:-1:
+%*1d:+2147483647:0:-1:
+%1d:+2147483648:0:-1:
+%*1d:+2147483648:0:-1:
+%1d:+2147487889:0:-1:
+%*1d:+2147487889:0:-1:
+%2d::0:-1:
+%*2d::0:-1:
+%2d:-2147484882:1:2:-2:
+%*2d:-2147484882:0:2:
+%2d:-2147483649:1:2:-2:
+%*2d:-2147483649:0:2:
+%2d:-2147483648:1:2:-2:
+%*2d:-2147483648:0:2:
+%2d:-123:1:2:-1:
+%*2d:-123:0:2:
+%2d:-1:1:2:-1:
+%*2d:-1:0:2:
+%2d:-0:1:2:0:
+%*2d:-0:0:2:
+%2d:0:1:1:0:
+%*2d:0:0:1:
+%2d:1:1:1:1:
+%*2d:1:0:1:
+%2d:42:1:2:42:
+%*2d:42:0:2:
+%2d:2147483647:1:2:21:
+%*2d:2147483647:0:2:
+%2d:2147483648:1:2:21:
+%*2d:2147483648:0:2:
+%2d:2147487889:1:2:21:
+%*2d:2147487889:0:2:
+%2d:+0:1:2:0:
+%*2d:+0:0:2:
+%2d:+1:1:2:1:
+%*2d:+1:0:2:
+%2d:+42:1:2:4:
+%*2d:+42:0:2:
+%2d:+2147483647:1:2:2:
+%*2d:+2147483647:0:2:
+%2d:+2147483648:1:2:2:
+%*2d:+2147483648:0:2:
+%2d:+2147487889:1:2:2:
+%*2d:+2147487889:0:2:
+%8d::0:-1:
+%*8d::0:-1:
+%8d:-2147484882:1:8:-2147484:
+%*8d:-2147484882:0:8:
+%8d:-2147483649:1:8:-2147483:
+%*8d:-2147483649:0:8:
+%8d:-2147483648:1:8:-2147483:
+%*8d:-2147483648:0:8:
+%8d:-123:1:4:-123:
+%*8d:-123:0:4:
+%8d:-1:1:2:-1:
+%*8d:-1:0:2:
+%8d:-0:1:2:0:
+%*8d:-0:0:2:
+%8d:0:1:1:0:
+%*8d:0:0:1:
+%8d:1:1:1:1:
+%*8d:1:0:1:
+%8d:42:1:2:42:
+%*8d:42:0:2:
+%8d:2147483647:1:8:21474836:
+%*8d:2147483647:0:8:
+%8d:2147483648:1:8:21474836:
+%*8d:2147483648:0:8:
+%8d:2147487889:1:8:21474878:
+%*8d:2147487889:0:8:
+%8d:+0:1:2:0:
+%*8d:+0:0:2:
+%8d:+1:1:2:1:
+%*8d:+1:0:2:
+%8d:+42:1:3:42:
+%*8d:+42:0:3:
+%8d:+2147483647:1:8:2147483:
+%*8d:+2147483647:0:8:
+%8d:+2147483648:1:8:2147483:
+%*8d:+2147483648:0:8:
+%8d:+2147487889:1:8:2147487:
+%*8d:+2147487889:0:8:
+%15d::0:-1:
+%*15d::0:-1:
+%15d:-2147484882:1:11:2147482414:
+%*15d:-2147484882:0:11:
+%15d:-2147483649:1:11:2147483647:
+%*15d:-2147483649:0:11:
+%15d:-2147483648:1:11:-2147483648:
+%*15d:-2147483648:0:11:
+%15d:-123:1:4:-123:
+%*15d:-123:0:4:
+%15d:-1:1:2:-1:
+%*15d:-1:0:2:
+%15d:-0:1:2:0:
+%*15d:-0:0:2:
+%15d:0:1:1:0:
+%*15d:0:0:1:
+%15d:1:1:1:1:
+%*15d:1:0:1:
+%15d:42:1:2:42:
+%*15d:42:0:2:
+%15d:2147483647:1:10:2147483647:
+%*15d:2147483647:0:10:
+%15d:2147483648:1:10:-2147483648:
+%*15d:2147483648:0:10:
+%15d:2147487889:1:10:-2147479407:
+%*15d:2147487889:0:10:
+%15d:+0:1:2:0:
+%*15d:+0:0:2:
+%15d:+1:1:2:1:
+%*15d:+1:0:2:
+%15d:+42:1:3:42:
+%*15d:+42:0:3:
+%15d:+2147483647:1:11:2147483647:
+%*15d:+2147483647:0:11:
+%15d:+2147483648:1:11:-2147483648:
+%*15d:+2147483648:0:11:
+%15d:+2147487889:1:11:-2147479407:
+%*15d:+2147487889:0:11:
+%2d: :0:-1:
+%*2d: :0:-1:
+%2d: -2147484882:1:3:-2:
+%*2d: -2147484882:0:3:
+%2d: -2147483649:1:3:-2:
+%*2d: -2147483649:0:3:
+%2d: -2147483648:1:3:-2:
+%*2d: -2147483648:0:3:
+%2d: -123:1:3:-1:
+%*2d: -123:0:3:
+%2d: -1:1:3:-1:
+%*2d: -1:0:3:
+%2d: -0:1:3:0:
+%*2d: -0:0:3:
+%2d: 0:1:2:0:
+%*2d: 0:0:2:
+%2d: 1:1:2:1:
+%*2d: 1:0:2:
+%2d: 42:1:3:42:
+%*2d: 42:0:3:
+%2d: 2147483647:1:3:21:
+%*2d: 2147483647:0:3:
+%2d: 2147483648:1:3:21:
+%*2d: 2147483648:0:3:
+%2d: 2147487889:1:3:21:
+%*2d: 2147487889:0:3:
+%2d: +0:1:3:0:
+%*2d: +0:0:3:
+%2d: +1:1:3:1:
+%*2d: +1:0:3:
+%2d: +42:1:3:4:
+%*2d: +42:0:3:
+%2d: +2147483647:1:3:2:
+%*2d: +2147483647:0:3:
+%2d: +2147483648:1:3:2:
+%*2d: +2147483648:0:3:
+%2d: +2147487889:1:3:2:
+%*2d: +2147487889:0:3:
+%15d: :0:-1:
+%*15d: :0:-1:
+%15d: -2147484882:1:12:2147482414:
+%*15d: -2147484882:0:12:
+%15d: -2147483649:1:12:2147483647:
+%*15d: -2147483649:0:12:
+%15d: -2147483648:1:12:-2147483648:
+%*15d: -2147483648:0:12:
+%15d: -123:1:5:-123:
+%*15d: -123:0:5:
+%15d: -1:1:3:-1:
+%*15d: -1:0:3:
+%15d: -0:1:3:0:
+%*15d: -0:0:3:
+%15d: 0:1:2:0:
+%*15d: 0:0:2:
+%15d: 1:1:2:1:
+%*15d: 1:0:2:
+%15d: 42:1:3:42:
+%*15d: 42:0:3:
+%15d: 2147483647:1:11:2147483647:
+%*15d: 2147483647:0:11:
+%15d: 2147483648:1:11:-2147483648:
+%*15d: 2147483648:0:11:
+%15d: 2147487889:1:11:-2147479407:
+%*15d: 2147487889:0:11:
+%15d: +0:1:3:0:
+%*15d: +0:0:3:
+%15d: +1:1:3:1:
+%*15d: +1:0:3:
+%15d: +42:1:4:42:
+%*15d: +42:0:4:
+%15d: +2147483647:1:12:2147483647:
+%*15d: +2147483647:0:12:
+%15d: +2147483648:1:12:-2147483648:
+%*15d: +2147483648:0:12:
+%15d: +2147487889:1:12:-2147479407:
+%*15d: +2147487889:0:12:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input
new file mode 100644
index 0000000..a0644b7
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input
@@ -0,0 +1,1526 @@
+%i::0:-1:
+%*i::0:-1:
+%i:-2147484882:1:11:2147482414:
+%*i:-2147484882:0:11:
+%i:-0X800004d2:1:11:2147482414:
+%*i:-0X800004d2:0:11:
+%i:-0x800004D2:1:11:2147482414:
+%*i:-0x800004D2:0:11:
+%i:-020000002322:1:13:2147482414:
+%*i:-020000002322:0:13:
+%i:-0B10000000000000000000010011010010:1:35:2147482414:
+%*i:-0B10000000000000000000010011010010:0:35:
+%i:-0b10000000000000000000010011010010:1:35:2147482414:
+%*i:-0b10000000000000000000010011010010:0:35:
+%i:-2147483649:1:11:2147483647:
+%*i:-2147483649:0:11:
+%i:-0X80000001:1:11:2147483647:
+%*i:-0X80000001:0:11:
+%i:-0x80000001:1:11:2147483647:
+%*i:-0x80000001:0:11:
+%i:-020000000001:1:13:2147483647:
+%*i:-020000000001:0:13:
+%i:-0B10000000000000000000000000000001:1:35:2147483647:
+%*i:-0B10000000000000000000000000000001:0:35:
+%i:-0b10000000000000000000000000000001:1:35:2147483647:
+%*i:-0b10000000000000000000000000000001:0:35:
+%i:-2147483648:1:11:-2147483648:
+%*i:-2147483648:0:11:
+%i:-0X80000000:1:11:-2147483648:
+%*i:-0X80000000:0:11:
+%i:-0x80000000:1:11:-2147483648:
+%*i:-0x80000000:0:11:
+%i:-020000000000:1:13:-2147483648:
+%*i:-020000000000:0:13:
+%i:-0B10000000000000000000000000000000:1:35:-2147483648:
+%*i:-0B10000000000000000000000000000000:0:35:
+%i:-0b10000000000000000000000000000000:1:35:-2147483648:
+%*i:-0b10000000000000000000000000000000:0:35:
+%i:-123:1:4:-123:
+%*i:-123:0:4:
+%i:-0X7b:1:5:-123:
+%*i:-0X7b:0:5:
+%i:-0x7B:1:5:-123:
+%*i:-0x7B:0:5:
+%i:-0173:1:5:-123:
+%*i:-0173:0:5:
+%i:-0B1111011:1:10:-123:
+%*i:-0B1111011:0:10:
+%i:-0b1111011:1:10:-123:
+%*i:-0b1111011:0:10:
+%i:-1:1:2:-1:
+%*i:-1:0:2:
+%i:-0X1:1:4:-1:
+%*i:-0X1:0:4:
+%i:-0x1:1:4:-1:
+%*i:-0x1:0:4:
+%i:-01:1:3:-1:
+%*i:-01:0:3:
+%i:-0B1:1:4:-1:
+%*i:-0B1:0:4:
+%i:-0b1:1:4:-1:
+%*i:-0b1:0:4:
+%i:-0:1:2:0:
+%*i:-0:0:2:
+%i:-0X0:1:4:0:
+%*i:-0X0:0:4:
+%i:-0x0:1:4:0:
+%*i:-0x0:0:4:
+%i:-00:1:3:0:
+%*i:-00:0:3:
+%i:-0B0:1:4:0:
+%*i:-0B0:0:4:
+%i:-0b0:1:4:0:
+%*i:-0b0:0:4:
+%i:0:1:1:0:
+%*i:0:0:1:
+%i:0X0:1:3:0:
+%*i:0X0:0:3:
+%i:0x0:1:3:0:
+%*i:0x0:0:3:
+%i:00:1:2:0:
+%*i:00:0:2:
+%i:0B0:1:3:0:
+%*i:0B0:0:3:
+%i:0b0:1:3:0:
+%*i:0b0:0:3:
+%i:1:1:1:1:
+%*i:1:0:1:
+%i:0X1:1:3:1:
+%*i:0X1:0:3:
+%i:0x1:1:3:1:
+%*i:0x1:0:3:
+%i:01:1:2:1:
+%*i:01:0:2:
+%i:0B1:1:3:1:
+%*i:0B1:0:3:
+%i:0b1:1:3:1:
+%*i:0b1:0:3:
+%i:42:1:2:42:
+%*i:42:0:2:
+%i:0X2a:1:4:42:
+%*i:0X2a:0:4:
+%i:0x2A:1:4:42:
+%*i:0x2A:0:4:
+%i:052:1:3:42:
+%*i:052:0:3:
+%i:0B101010:1:8:42:
+%*i:0B101010:0:8:
+%i:0b101010:1:8:42:
+%*i:0b101010:0:8:
+%i:2147483647:1:10:2147483647:
+%*i:2147483647:0:10:
+%i:0X7fffffff:1:10:2147483647:
+%*i:0X7fffffff:0:10:
+%i:0x7FFFFFFF:1:10:2147483647:
+%*i:0x7FFFFFFF:0:10:
+%i:017777777777:1:12:2147483647:
+%*i:017777777777:0:12:
+%i:0B1111111111111111111111111111111:1:33:2147483647:
+%*i:0B1111111111111111111111111111111:0:33:
+%i:0b1111111111111111111111111111111:1:33:2147483647:
+%*i:0b1111111111111111111111111111111:0:33:
+%i:2147483648:1:10:-2147483648:
+%*i:2147483648:0:10:
+%i:0X80000000:1:10:-2147483648:
+%*i:0X80000000:0:10:
+%i:0x80000000:1:10:-2147483648:
+%*i:0x80000000:0:10:
+%i:020000000000:1:12:-2147483648:
+%*i:020000000000:0:12:
+%i:0B10000000000000000000000000000000:1:34:-2147483648:
+%*i:0B10000000000000000000000000000000:0:34:
+%i:0b10000000000000000000000000000000:1:34:-2147483648:
+%*i:0b10000000000000000000000000000000:0:34:
+%i:2147487889:1:10:-2147479407:
+%*i:2147487889:0:10:
+%i:0X80001091:1:10:-2147479407:
+%*i:0X80001091:0:10:
+%i:0x80001091:1:10:-2147479407:
+%*i:0x80001091:0:10:
+%i:020000010221:1:12:-2147479407:
+%*i:020000010221:0:12:
+%i:0B10000000000000000001000010010001:1:34:-2147479407:
+%*i:0B10000000000000000001000010010001:0:34:
+%i:0b10000000000000000001000010010001:1:34:-2147479407:
+%*i:0b10000000000000000001000010010001:0:34:
+%i:+0:1:2:0:
+%*i:+0:0:2:
+%i:+0X0:1:4:0:
+%*i:+0X0:0:4:
+%i:+0x0:1:4:0:
+%*i:+0x0:0:4:
+%i:+00:1:3:0:
+%*i:+00:0:3:
+%i:+0B0:1:4:0:
+%*i:+0B0:0:4:
+%i:+0b0:1:4:0:
+%*i:+0b0:0:4:
+%i:+1:1:2:1:
+%*i:+1:0:2:
+%i:+0X1:1:4:1:
+%*i:+0X1:0:4:
+%i:+0x1:1:4:1:
+%*i:+0x1:0:4:
+%i:+01:1:3:1:
+%*i:+01:0:3:
+%i:+0B1:1:4:1:
+%*i:+0B1:0:4:
+%i:+0b1:1:4:1:
+%*i:+0b1:0:4:
+%i:+42:1:3:42:
+%*i:+42:0:3:
+%i:+0X2a:1:5:42:
+%*i:+0X2a:0:5:
+%i:+0x2A:1:5:42:
+%*i:+0x2A:0:5:
+%i:+052:1:4:42:
+%*i:+052:0:4:
+%i:+0B101010:1:9:42:
+%*i:+0B101010:0:9:
+%i:+0b101010:1:9:42:
+%*i:+0b101010:0:9:
+%i:+2147483647:1:11:2147483647:
+%*i:+2147483647:0:11:
+%i:+0X7fffffff:1:11:2147483647:
+%*i:+0X7fffffff:0:11:
+%i:+0x7FFFFFFF:1:11:2147483647:
+%*i:+0x7FFFFFFF:0:11:
+%i:+017777777777:1:13:2147483647:
+%*i:+017777777777:0:13:
+%i:+0B1111111111111111111111111111111:1:34:2147483647:
+%*i:+0B1111111111111111111111111111111:0:34:
+%i:+0b1111111111111111111111111111111:1:34:2147483647:
+%*i:+0b1111111111111111111111111111111:0:34:
+%i:+2147483648:1:11:-2147483648:
+%*i:+2147483648:0:11:
+%i:+0X80000000:1:11:-2147483648:
+%*i:+0X80000000:0:11:
+%i:+0x80000000:1:11:-2147483648:
+%*i:+0x80000000:0:11:
+%i:+020000000000:1:13:-2147483648:
+%*i:+020000000000:0:13:
+%i:+0B10000000000000000000000000000000:1:35:-2147483648:
+%*i:+0B10000000000000000000000000000000:0:35:
+%i:+0b10000000000000000000000000000000:1:35:-2147483648:
+%*i:+0b10000000000000000000000000000000:0:35:
+%i:+2147487889:1:11:-2147479407:
+%*i:+2147487889:0:11:
+%i:+0X80001091:1:11:-2147479407:
+%*i:+0X80001091:0:11:
+%i:+0x80001091:1:11:-2147479407:
+%*i:+0x80001091:0:11:
+%i:+020000010221:1:13:-2147479407:
+%*i:+020000010221:0:13:
+%i:+0B10000000000000000001000010010001:1:35:-2147479407:
+%*i:+0B10000000000000000001000010010001:0:35:
+%i:+0b10000000000000000001000010010001:1:35:-2147479407:
+%*i:+0b10000000000000000001000010010001:0:35:
+%1i::0:-1:
+%*1i::0:-1:
+%1i:-2147484882:0:-1:
+%*1i:-2147484882:0:-1:
+%1i:-0X800004d2:0:-1:
+%*1i:-0X800004d2:0:-1:
+%1i:-0x800004D2:0:-1:
+%*1i:-0x800004D2:0:-1:
+%1i:-020000002322:0:-1:
+%*1i:-020000002322:0:-1:
+%1i:-0B10000000000000000000010011010010:0:-1:
+%*1i:-0B10000000000000000000010011010010:0:-1:
+%1i:-0b10000000000000000000010011010010:0:-1:
+%*1i:-0b10000000000000000000010011010010:0:-1:
+%1i:-2147483649:0:-1:
+%*1i:-2147483649:0:-1:
+%1i:-0X80000001:0:-1:
+%*1i:-0X80000001:0:-1:
+%1i:-0x80000001:0:-1:
+%*1i:-0x80000001:0:-1:
+%1i:-020000000001:0:-1:
+%*1i:-020000000001:0:-1:
+%1i:-0B10000000000000000000000000000001:0:-1:
+%*1i:-0B10000000000000000000000000000001:0:-1:
+%1i:-0b10000000000000000000000000000001:0:-1:
+%*1i:-0b10000000000000000000000000000001:0:-1:
+%1i:-2147483648:0:-1:
+%*1i:-2147483648:0:-1:
+%1i:-0X80000000:0:-1:
+%*1i:-0X80000000:0:-1:
+%1i:-0x80000000:0:-1:
+%*1i:-0x80000000:0:-1:
+%1i:-020000000000:0:-1:
+%*1i:-020000000000:0:-1:
+%1i:-0B10000000000000000000000000000000:0:-1:
+%*1i:-0B10000000000000000000000000000000:0:-1:
+%1i:-0b10000000000000000000000000000000:0:-1:
+%*1i:-0b10000000000000000000000000000000:0:-1:
+%1i:-123:0:-1:
+%*1i:-123:0:-1:
+%1i:-0X7b:0:-1:
+%*1i:-0X7b:0:-1:
+%1i:-0x7B:0:-1:
+%*1i:-0x7B:0:-1:
+%1i:-0173:0:-1:
+%*1i:-0173:0:-1:
+%1i:-0B1111011:0:-1:
+%*1i:-0B1111011:0:-1:
+%1i:-0b1111011:0:-1:
+%*1i:-0b1111011:0:-1:
+%1i:-1:0:-1:
+%*1i:-1:0:-1:
+%1i:-0X1:0:-1:
+%*1i:-0X1:0:-1:
+%1i:-0x1:0:-1:
+%*1i:-0x1:0:-1:
+%1i:-01:0:-1:
+%*1i:-01:0:-1:
+%1i:-0B1:0:-1:
+%*1i:-0B1:0:-1:
+%1i:-0b1:0:-1:
+%*1i:-0b1:0:-1:
+%1i:-0:0:-1:
+%*1i:-0:0:-1:
+%1i:-0X0:0:-1:
+%*1i:-0X0:0:-1:
+%1i:-0x0:0:-1:
+%*1i:-0x0:0:-1:
+%1i:-00:0:-1:
+%*1i:-00:0:-1:
+%1i:-0B0:0:-1:
+%*1i:-0B0:0:-1:
+%1i:-0b0:0:-1:
+%*1i:-0b0:0:-1:
+%1i:0:1:1:0:
+%*1i:0:0:1:
+%1i:0X0:1:1:0:
+%*1i:0X0:0:1:
+%1i:0x0:1:1:0:
+%*1i:0x0:0:1:
+%1i:00:1:1:0:
+%*1i:00:0:1:
+%1i:0B0:1:1:0:
+%*1i:0B0:0:1:
+%1i:0b0:1:1:0:
+%*1i:0b0:0:1:
+%1i:1:1:1:1:
+%*1i:1:0:1:
+%1i:0X1:1:1:0:
+%*1i:0X1:0:1:
+%1i:0x1:1:1:0:
+%*1i:0x1:0:1:
+%1i:01:1:1:0:
+%*1i:01:0:1:
+%1i:0B1:1:1:0:
+%*1i:0B1:0:1:
+%1i:0b1:1:1:0:
+%*1i:0b1:0:1:
+%1i:42:1:1:4:
+%*1i:42:0:1:
+%1i:0X2a:1:1:0:
+%*1i:0X2a:0:1:
+%1i:0x2A:1:1:0:
+%*1i:0x2A:0:1:
+%1i:052:1:1:0:
+%*1i:052:0:1:
+%1i:0B101010:1:1:0:
+%*1i:0B101010:0:1:
+%1i:0b101010:1:1:0:
+%*1i:0b101010:0:1:
+%1i:2147483647:1:1:2:
+%*1i:2147483647:0:1:
+%1i:0X7fffffff:1:1:0:
+%*1i:0X7fffffff:0:1:
+%1i:0x7FFFFFFF:1:1:0:
+%*1i:0x7FFFFFFF:0:1:
+%1i:017777777777:1:1:0:
+%*1i:017777777777:0:1:
+%1i:0B1111111111111111111111111111111:1:1:0:
+%*1i:0B1111111111111111111111111111111:0:1:
+%1i:0b1111111111111111111111111111111:1:1:0:
+%*1i:0b1111111111111111111111111111111:0:1:
+%1i:2147483648:1:1:2:
+%*1i:2147483648:0:1:
+%1i:0X80000000:1:1:0:
+%*1i:0X80000000:0:1:
+%1i:0x80000000:1:1:0:
+%*1i:0x80000000:0:1:
+%1i:020000000000:1:1:0:
+%*1i:020000000000:0:1:
+%1i:0B10000000000000000000000000000000:1:1:0:
+%*1i:0B10000000000000000000000000000000:0:1:
+%1i:0b10000000000000000000000000000000:1:1:0:
+%*1i:0b10000000000000000000000000000000:0:1:
+%1i:2147487889:1:1:2:
+%*1i:2147487889:0:1:
+%1i:0X80001091:1:1:0:
+%*1i:0X80001091:0:1:
+%1i:0x80001091:1:1:0:
+%*1i:0x80001091:0:1:
+%1i:020000010221:1:1:0:
+%*1i:020000010221:0:1:
+%1i:0B10000000000000000001000010010001:1:1:0:
+%*1i:0B10000000000000000001000010010001:0:1:
+%1i:0b10000000000000000001000010010001:1:1:0:
+%*1i:0b10000000000000000001000010010001:0:1:
+%1i:+0:0:-1:
+%*1i:+0:0:-1:
+%1i:+0X0:0:-1:
+%*1i:+0X0:0:-1:
+%1i:+0x0:0:-1:
+%*1i:+0x0:0:-1:
+%1i:+00:0:-1:
+%*1i:+00:0:-1:
+%1i:+0B0:0:-1:
+%*1i:+0B0:0:-1:
+%1i:+0b0:0:-1:
+%*1i:+0b0:0:-1:
+%1i:+1:0:-1:
+%*1i:+1:0:-1:
+%1i:+0X1:0:-1:
+%*1i:+0X1:0:-1:
+%1i:+0x1:0:-1:
+%*1i:+0x1:0:-1:
+%1i:+01:0:-1:
+%*1i:+01:0:-1:
+%1i:+0B1:0:-1:
+%*1i:+0B1:0:-1:
+%1i:+0b1:0:-1:
+%*1i:+0b1:0:-1:
+%1i:+42:0:-1:
+%*1i:+42:0:-1:
+%1i:+0X2a:0:-1:
+%*1i:+0X2a:0:-1:
+%1i:+0x2A:0:-1:
+%*1i:+0x2A:0:-1:
+%1i:+052:0:-1:
+%*1i:+052:0:-1:
+%1i:+0B101010:0:-1:
+%*1i:+0B101010:0:-1:
+%1i:+0b101010:0:-1:
+%*1i:+0b101010:0:-1:
+%1i:+2147483647:0:-1:
+%*1i:+2147483647:0:-1:
+%1i:+0X7fffffff:0:-1:
+%*1i:+0X7fffffff:0:-1:
+%1i:+0x7FFFFFFF:0:-1:
+%*1i:+0x7FFFFFFF:0:-1:
+%1i:+017777777777:0:-1:
+%*1i:+017777777777:0:-1:
+%1i:+0B1111111111111111111111111111111:0:-1:
+%*1i:+0B1111111111111111111111111111111:0:-1:
+%1i:+0b1111111111111111111111111111111:0:-1:
+%*1i:+0b1111111111111111111111111111111:0:-1:
+%1i:+2147483648:0:-1:
+%*1i:+2147483648:0:-1:
+%1i:+0X80000000:0:-1:
+%*1i:+0X80000000:0:-1:
+%1i:+0x80000000:0:-1:
+%*1i:+0x80000000:0:-1:
+%1i:+020000000000:0:-1:
+%*1i:+020000000000:0:-1:
+%1i:+0B10000000000000000000000000000000:0:-1:
+%*1i:+0B10000000000000000000000000000000:0:-1:
+%1i:+0b10000000000000000000000000000000:0:-1:
+%*1i:+0b10000000000000000000000000000000:0:-1:
+%1i:+2147487889:0:-1:
+%*1i:+2147487889:0:-1:
+%1i:+0X80001091:0:-1:
+%*1i:+0X80001091:0:-1:
+%1i:+0x80001091:0:-1:
+%*1i:+0x80001091:0:-1:
+%1i:+020000010221:0:-1:
+%*1i:+020000010221:0:-1:
+%1i:+0B10000000000000000001000010010001:0:-1:
+%*1i:+0B10000000000000000001000010010001:0:-1:
+%1i:+0b10000000000000000001000010010001:0:-1:
+%*1i:+0b10000000000000000001000010010001:0:-1:
+%2i::0:-1:
+%*2i::0:-1:
+%2i:-2147484882:1:2:-2:
+%*2i:-2147484882:0:2:
+%2i:-0X800004d2:1:2:0:
+%*2i:-0X800004d2:0:2:
+%2i:-0x800004D2:1:2:0:
+%*2i:-0x800004D2:0:2:
+%2i:-020000002322:1:2:0:
+%*2i:-020000002322:0:2:
+%2i:-0B10000000000000000000010011010010:1:2:0:
+%*2i:-0B10000000000000000000010011010010:0:2:
+%2i:-0b10000000000000000000010011010010:1:2:0:
+%*2i:-0b10000000000000000000010011010010:0:2:
+%2i:-2147483649:1:2:-2:
+%*2i:-2147483649:0:2:
+%2i:-0X80000001:1:2:0:
+%*2i:-0X80000001:0:2:
+%2i:-0x80000001:1:2:0:
+%*2i:-0x80000001:0:2:
+%2i:-020000000001:1:2:0:
+%*2i:-020000000001:0:2:
+%2i:-0B10000000000000000000000000000001:1:2:0:
+%*2i:-0B10000000000000000000000000000001:0:2:
+%2i:-0b10000000000000000000000000000001:1:2:0:
+%*2i:-0b10000000000000000000000000000001:0:2:
+%2i:-2147483648:1:2:-2:
+%*2i:-2147483648:0:2:
+%2i:-0X80000000:1:2:0:
+%*2i:-0X80000000:0:2:
+%2i:-0x80000000:1:2:0:
+%*2i:-0x80000000:0:2:
+%2i:-020000000000:1:2:0:
+%*2i:-020000000000:0:2:
+%2i:-0B10000000000000000000000000000000:1:2:0:
+%*2i:-0B10000000000000000000000000000000:0:2:
+%2i:-0b10000000000000000000000000000000:1:2:0:
+%*2i:-0b10000000000000000000000000000000:0:2:
+%2i:-123:1:2:-1:
+%*2i:-123:0:2:
+%2i:-0X7b:1:2:0:
+%*2i:-0X7b:0:2:
+%2i:-0x7B:1:2:0:
+%*2i:-0x7B:0:2:
+%2i:-0173:1:2:0:
+%*2i:-0173:0:2:
+%2i:-0B1111011:1:2:0:
+%*2i:-0B1111011:0:2:
+%2i:-0b1111011:1:2:0:
+%*2i:-0b1111011:0:2:
+%2i:-1:1:2:-1:
+%*2i:-1:0:2:
+%2i:-0X1:1:2:0:
+%*2i:-0X1:0:2:
+%2i:-0x1:1:2:0:
+%*2i:-0x1:0:2:
+%2i:-01:1:2:0:
+%*2i:-01:0:2:
+%2i:-0B1:1:2:0:
+%*2i:-0B1:0:2:
+%2i:-0b1:1:2:0:
+%*2i:-0b1:0:2:
+%2i:-0:1:2:0:
+%*2i:-0:0:2:
+%2i:-0X0:1:2:0:
+%*2i:-0X0:0:2:
+%2i:-0x0:1:2:0:
+%*2i:-0x0:0:2:
+%2i:-00:1:2:0:
+%*2i:-00:0:2:
+%2i:-0B0:1:2:0:
+%*2i:-0B0:0:2:
+%2i:-0b0:1:2:0:
+%*2i:-0b0:0:2:
+%2i:0:1:1:0:
+%*2i:0:0:1:
+%2i:0X0:0:-1:
+%*2i:0X0:0:-1:
+%2i:0x0:0:-1:
+%*2i:0x0:0:-1:
+%2i:00:1:2:0:
+%*2i:00:0:2:
+%2i:0B0:0:-1:
+%*2i:0B0:0:-1:
+%2i:0b0:0:-1:
+%*2i:0b0:0:-1:
+%2i:1:1:1:1:
+%*2i:1:0:1:
+%2i:0X1:0:-1:
+%*2i:0X1:0:-1:
+%2i:0x1:0:-1:
+%*2i:0x1:0:-1:
+%2i:01:1:2:1:
+%*2i:01:0:2:
+%2i:0B1:0:-1:
+%*2i:0B1:0:-1:
+%2i:0b1:0:-1:
+%*2i:0b1:0:-1:
+%2i:42:1:2:42:
+%*2i:42:0:2:
+%2i:0X2a:0:-1:
+%*2i:0X2a:0:-1:
+%2i:0x2A:0:-1:
+%*2i:0x2A:0:-1:
+%2i:052:1:2:5:
+%*2i:052:0:2:
+%2i:0B101010:0:-1:
+%*2i:0B101010:0:-1:
+%2i:0b101010:0:-1:
+%*2i:0b101010:0:-1:
+%2i:2147483647:1:2:21:
+%*2i:2147483647:0:2:
+%2i:0X7fffffff:0:-1:
+%*2i:0X7fffffff:0:-1:
+%2i:0x7FFFFFFF:0:-1:
+%*2i:0x7FFFFFFF:0:-1:
+%2i:017777777777:1:2:1:
+%*2i:017777777777:0:2:
+%2i:0B1111111111111111111111111111111:0:-1:
+%*2i:0B1111111111111111111111111111111:0:-1:
+%2i:0b1111111111111111111111111111111:0:-1:
+%*2i:0b1111111111111111111111111111111:0:-1:
+%2i:2147483648:1:2:21:
+%*2i:2147483648:0:2:
+%2i:0X80000000:0:-1:
+%*2i:0X80000000:0:-1:
+%2i:0x80000000:0:-1:
+%*2i:0x80000000:0:-1:
+%2i:020000000000:1:2:2:
+%*2i:020000000000:0:2:
+%2i:0B10000000000000000000000000000000:0:-1:
+%*2i:0B10000000000000000000000000000000:0:-1:
+%2i:0b10000000000000000000000000000000:0:-1:
+%*2i:0b10000000000000000000000000000000:0:-1:
+%2i:2147487889:1:2:21:
+%*2i:2147487889:0:2:
+%2i:0X80001091:0:-1:
+%*2i:0X80001091:0:-1:
+%2i:0x80001091:0:-1:
+%*2i:0x80001091:0:-1:
+%2i:020000010221:1:2:2:
+%*2i:020000010221:0:2:
+%2i:0B10000000000000000001000010010001:0:-1:
+%*2i:0B10000000000000000001000010010001:0:-1:
+%2i:0b10000000000000000001000010010001:0:-1:
+%*2i:0b10000000000000000001000010010001:0:-1:
+%2i:+0:1:2:0:
+%*2i:+0:0:2:
+%2i:+0X0:1:2:0:
+%*2i:+0X0:0:2:
+%2i:+0x0:1:2:0:
+%*2i:+0x0:0:2:
+%2i:+00:1:2:0:
+%*2i:+00:0:2:
+%2i:+0B0:1:2:0:
+%*2i:+0B0:0:2:
+%2i:+0b0:1:2:0:
+%*2i:+0b0:0:2:
+%2i:+1:1:2:1:
+%*2i:+1:0:2:
+%2i:+0X1:1:2:0:
+%*2i:+0X1:0:2:
+%2i:+0x1:1:2:0:
+%*2i:+0x1:0:2:
+%2i:+01:1:2:0:
+%*2i:+01:0:2:
+%2i:+0B1:1:2:0:
+%*2i:+0B1:0:2:
+%2i:+0b1:1:2:0:
+%*2i:+0b1:0:2:
+%2i:+42:1:2:4:
+%*2i:+42:0:2:
+%2i:+0X2a:1:2:0:
+%*2i:+0X2a:0:2:
+%2i:+0x2A:1:2:0:
+%*2i:+0x2A:0:2:
+%2i:+052:1:2:0:
+%*2i:+052:0:2:
+%2i:+0B101010:1:2:0:
+%*2i:+0B101010:0:2:
+%2i:+0b101010:1:2:0:
+%*2i:+0b101010:0:2:
+%2i:+2147483647:1:2:2:
+%*2i:+2147483647:0:2:
+%2i:+0X7fffffff:1:2:0:
+%*2i:+0X7fffffff:0:2:
+%2i:+0x7FFFFFFF:1:2:0:
+%*2i:+0x7FFFFFFF:0:2:
+%2i:+017777777777:1:2:0:
+%*2i:+017777777777:0:2:
+%2i:+0B1111111111111111111111111111111:1:2:0:
+%*2i:+0B1111111111111111111111111111111:0:2:
+%2i:+0b1111111111111111111111111111111:1:2:0:
+%*2i:+0b1111111111111111111111111111111:0:2:
+%2i:+2147483648:1:2:2:
+%*2i:+2147483648:0:2:
+%2i:+0X80000000:1:2:0:
+%*2i:+0X80000000:0:2:
+%2i:+0x80000000:1:2:0:
+%*2i:+0x80000000:0:2:
+%2i:+020000000000:1:2:0:
+%*2i:+020000000000:0:2:
+%2i:+0B10000000000000000000000000000000:1:2:0:
+%*2i:+0B10000000000000000000000000000000:0:2:
+%2i:+0b10000000000000000000000000000000:1:2:0:
+%*2i:+0b10000000000000000000000000000000:0:2:
+%2i:+2147487889:1:2:2:
+%*2i:+2147487889:0:2:
+%2i:+0X80001091:1:2:0:
+%*2i:+0X80001091:0:2:
+%2i:+0x80001091:1:2:0:
+%*2i:+0x80001091:0:2:
+%2i:+020000010221:1:2:0:
+%*2i:+020000010221:0:2:
+%2i:+0B10000000000000000001000010010001:1:2:0:
+%*2i:+0B10000000000000000001000010010001:0:2:
+%2i:+0b10000000000000000001000010010001:1:2:0:
+%*2i:+0b10000000000000000001000010010001:0:2:
+%8i::0:-1:
+%*8i::0:-1:
+%8i:-2147484882:1:8:-2147484:
+%*8i:-2147484882:0:8:
+%8i:-0X800004d2:1:8:-524288:
+%*8i:-0X800004d2:0:8:
+%8i:-0x800004D2:1:8:-524288:
+%*8i:-0x800004D2:0:8:
+%8i:-020000002322:1:8:-65536:
+%*8i:-020000002322:0:8:
+%8i:-0B10000000000000000000010011010010:1:8:-16:
+%*8i:-0B10000000000000000000010011010010:0:8:
+%8i:-0b10000000000000000000010011010010:1:8:-16:
+%*8i:-0b10000000000000000000010011010010:0:8:
+%8i:-2147483649:1:8:-2147483:
+%*8i:-2147483649:0:8:
+%8i:-0X80000001:1:8:-524288:
+%*8i:-0X80000001:0:8:
+%8i:-0x80000001:1:8:-524288:
+%*8i:-0x80000001:0:8:
+%8i:-020000000001:1:8:-65536:
+%*8i:-020000000001:0:8:
+%8i:-0B10000000000000000000000000000001:1:8:-16:
+%*8i:-0B10000000000000000000000000000001:0:8:
+%8i:-0b10000000000000000000000000000001:1:8:-16:
+%*8i:-0b10000000000000000000000000000001:0:8:
+%8i:-2147483648:1:8:-2147483:
+%*8i:-2147483648:0:8:
+%8i:-0X80000000:1:8:-524288:
+%*8i:-0X80000000:0:8:
+%8i:-0x80000000:1:8:-524288:
+%*8i:-0x80000000:0:8:
+%8i:-020000000000:1:8:-65536:
+%*8i:-020000000000:0:8:
+%8i:-0B10000000000000000000000000000000:1:8:-16:
+%*8i:-0B10000000000000000000000000000000:0:8:
+%8i:-0b10000000000000000000000000000000:1:8:-16:
+%*8i:-0b10000000000000000000000000000000:0:8:
+%8i:-123:1:4:-123:
+%*8i:-123:0:4:
+%8i:-0X7b:1:5:-123:
+%*8i:-0X7b:0:5:
+%8i:-0x7B:1:5:-123:
+%*8i:-0x7B:0:5:
+%8i:-0173:1:5:-123:
+%*8i:-0173:0:5:
+%8i:-0B1111011:1:8:-30:
+%*8i:-0B1111011:0:8:
+%8i:-0b1111011:1:8:-30:
+%*8i:-0b1111011:0:8:
+%8i:-1:1:2:-1:
+%*8i:-1:0:2:
+%8i:-0X1:1:4:-1:
+%*8i:-0X1:0:4:
+%8i:-0x1:1:4:-1:
+%*8i:-0x1:0:4:
+%8i:-01:1:3:-1:
+%*8i:-01:0:3:
+%8i:-0B1:1:4:-1:
+%*8i:-0B1:0:4:
+%8i:-0b1:1:4:-1:
+%*8i:-0b1:0:4:
+%8i:-0:1:2:0:
+%*8i:-0:0:2:
+%8i:-0X0:1:4:0:
+%*8i:-0X0:0:4:
+%8i:-0x0:1:4:0:
+%*8i:-0x0:0:4:
+%8i:-00:1:3:0:
+%*8i:-00:0:3:
+%8i:-0B0:1:4:0:
+%*8i:-0B0:0:4:
+%8i:-0b0:1:4:0:
+%*8i:-0b0:0:4:
+%8i:0:1:1:0:
+%*8i:0:0:1:
+%8i:0X0:1:3:0:
+%*8i:0X0:0:3:
+%8i:0x0:1:3:0:
+%*8i:0x0:0:3:
+%8i:00:1:2:0:
+%*8i:00:0:2:
+%8i:0B0:1:3:0:
+%*8i:0B0:0:3:
+%8i:0b0:1:3:0:
+%*8i:0b0:0:3:
+%8i:1:1:1:1:
+%*8i:1:0:1:
+%8i:0X1:1:3:1:
+%*8i:0X1:0:3:
+%8i:0x1:1:3:1:
+%*8i:0x1:0:3:
+%8i:01:1:2:1:
+%*8i:01:0:2:
+%8i:0B1:1:3:1:
+%*8i:0B1:0:3:
+%8i:0b1:1:3:1:
+%*8i:0b1:0:3:
+%8i:42:1:2:42:
+%*8i:42:0:2:
+%8i:0X2a:1:4:42:
+%*8i:0X2a:0:4:
+%8i:0x2A:1:4:42:
+%*8i:0x2A:0:4:
+%8i:052:1:3:42:
+%*8i:052:0:3:
+%8i:0B101010:1:8:42:
+%*8i:0B101010:0:8:
+%8i:0b101010:1:8:42:
+%*8i:0b101010:0:8:
+%8i:2147483647:1:8:21474836:
+%*8i:2147483647:0:8:
+%8i:0X7fffffff:1:8:8388607:
+%*8i:0X7fffffff:0:8:
+%8i:0x7FFFFFFF:1:8:8388607:
+%*8i:0x7FFFFFFF:0:8:
+%8i:017777777777:1:8:524287:
+%*8i:017777777777:0:8:
+%8i:0B1111111111111111111111111111111:1:8:63:
+%*8i:0B1111111111111111111111111111111:0:8:
+%8i:0b1111111111111111111111111111111:1:8:63:
+%*8i:0b1111111111111111111111111111111:0:8:
+%8i:2147483648:1:8:21474836:
+%*8i:2147483648:0:8:
+%8i:0X80000000:1:8:8388608:
+%*8i:0X80000000:0:8:
+%8i:0x80000000:1:8:8388608:
+%*8i:0x80000000:0:8:
+%8i:020000000000:1:8:524288:
+%*8i:020000000000:0:8:
+%8i:0B10000000000000000000000000000000:1:8:32:
+%*8i:0B10000000000000000000000000000000:0:8:
+%8i:0b10000000000000000000000000000000:1:8:32:
+%*8i:0b10000000000000000000000000000000:0:8:
+%8i:2147487889:1:8:21474878:
+%*8i:2147487889:0:8:
+%8i:0X80001091:1:8:8388624:
+%*8i:0X80001091:0:8:
+%8i:0x80001091:1:8:8388624:
+%*8i:0x80001091:0:8:
+%8i:020000010221:1:8:524289:
+%*8i:020000010221:0:8:
+%8i:0B10000000000000000001000010010001:1:8:32:
+%*8i:0B10000000000000000001000010010001:0:8:
+%8i:0b10000000000000000001000010010001:1:8:32:
+%*8i:0b10000000000000000001000010010001:0:8:
+%8i:+0:1:2:0:
+%*8i:+0:0:2:
+%8i:+0X0:1:4:0:
+%*8i:+0X0:0:4:
+%8i:+0x0:1:4:0:
+%*8i:+0x0:0:4:
+%8i:+00:1:3:0:
+%*8i:+00:0:3:
+%8i:+0B0:1:4:0:
+%*8i:+0B0:0:4:
+%8i:+0b0:1:4:0:
+%*8i:+0b0:0:4:
+%8i:+1:1:2:1:
+%*8i:+1:0:2:
+%8i:+0X1:1:4:1:
+%*8i:+0X1:0:4:
+%8i:+0x1:1:4:1:
+%*8i:+0x1:0:4:
+%8i:+01:1:3:1:
+%*8i:+01:0:3:
+%8i:+0B1:1:4:1:
+%*8i:+0B1:0:4:
+%8i:+0b1:1:4:1:
+%*8i:+0b1:0:4:
+%8i:+42:1:3:42:
+%*8i:+42:0:3:
+%8i:+0X2a:1:5:42:
+%*8i:+0X2a:0:5:
+%8i:+0x2A:1:5:42:
+%*8i:+0x2A:0:5:
+%8i:+052:1:4:42:
+%*8i:+052:0:4:
+%8i:+0B101010:1:8:21:
+%*8i:+0B101010:0:8:
+%8i:+0b101010:1:8:21:
+%*8i:+0b101010:0:8:
+%8i:+2147483647:1:8:2147483:
+%*8i:+2147483647:0:8:
+%8i:+0X7fffffff:1:8:524287:
+%*8i:+0X7fffffff:0:8:
+%8i:+0x7FFFFFFF:1:8:524287:
+%*8i:+0x7FFFFFFF:0:8:
+%8i:+017777777777:1:8:65535:
+%*8i:+017777777777:0:8:
+%8i:+0B1111111111111111111111111111111:1:8:31:
+%*8i:+0B1111111111111111111111111111111:0:8:
+%8i:+0b1111111111111111111111111111111:1:8:31:
+%*8i:+0b1111111111111111111111111111111:0:8:
+%8i:+2147483648:1:8:2147483:
+%*8i:+2147483648:0:8:
+%8i:+0X80000000:1:8:524288:
+%*8i:+0X80000000:0:8:
+%8i:+0x80000000:1:8:524288:
+%*8i:+0x80000000:0:8:
+%8i:+020000000000:1:8:65536:
+%*8i:+020000000000:0:8:
+%8i:+0B10000000000000000000000000000000:1:8:16:
+%*8i:+0B10000000000000000000000000000000:0:8:
+%8i:+0b10000000000000000000000000000000:1:8:16:
+%*8i:+0b10000000000000000000000000000000:0:8:
+%8i:+2147487889:1:8:2147487:
+%*8i:+2147487889:0:8:
+%8i:+0X80001091:1:8:524289:
+%*8i:+0X80001091:0:8:
+%8i:+0x80001091:1:8:524289:
+%*8i:+0x80001091:0:8:
+%8i:+020000010221:1:8:65536:
+%*8i:+020000010221:0:8:
+%8i:+0B10000000000000000001000010010001:1:8:16:
+%*8i:+0B10000000000000000001000010010001:0:8:
+%8i:+0b10000000000000000001000010010001:1:8:16:
+%*8i:+0b10000000000000000001000010010001:0:8:
+%15i::0:-1:
+%*15i::0:-1:
+%15i:-2147484882:1:11:2147482414:
+%*15i:-2147484882:0:11:
+%15i:-0X800004d2:1:11:2147482414:
+%*15i:-0X800004d2:0:11:
+%15i:-0x800004D2:1:11:2147482414:
+%*15i:-0x800004D2:0:11:
+%15i:-020000002322:1:13:2147482414:
+%*15i:-020000002322:0:13:
+%15i:-0B10000000000000000000010011010010:1:15:-2048:
+%*15i:-0B10000000000000000000010011010010:0:15:
+%15i:-0b10000000000000000000010011010010:1:15:-2048:
+%*15i:-0b10000000000000000000010011010010:0:15:
+%15i:-2147483649:1:11:2147483647:
+%*15i:-2147483649:0:11:
+%15i:-0X80000001:1:11:2147483647:
+%*15i:-0X80000001:0:11:
+%15i:-0x80000001:1:11:2147483647:
+%*15i:-0x80000001:0:11:
+%15i:-020000000001:1:13:2147483647:
+%*15i:-020000000001:0:13:
+%15i:-0B10000000000000000000000000000001:1:15:-2048:
+%*15i:-0B10000000000000000000000000000001:0:15:
+%15i:-0b10000000000000000000000000000001:1:15:-2048:
+%*15i:-0b10000000000000000000000000000001:0:15:
+%15i:-2147483648:1:11:-2147483648:
+%*15i:-2147483648:0:11:
+%15i:-0X80000000:1:11:-2147483648:
+%*15i:-0X80000000:0:11:
+%15i:-0x80000000:1:11:-2147483648:
+%*15i:-0x80000000:0:11:
+%15i:-020000000000:1:13:-2147483648:
+%*15i:-020000000000:0:13:
+%15i:-0B10000000000000000000000000000000:1:15:-2048:
+%*15i:-0B10000000000000000000000000000000:0:15:
+%15i:-0b10000000000000000000000000000000:1:15:-2048:
+%*15i:-0b10000000000000000000000000000000:0:15:
+%15i:-123:1:4:-123:
+%*15i:-123:0:4:
+%15i:-0X7b:1:5:-123:
+%*15i:-0X7b:0:5:
+%15i:-0x7B:1:5:-123:
+%*15i:-0x7B:0:5:
+%15i:-0173:1:5:-123:
+%*15i:-0173:0:5:
+%15i:-0B1111011:1:10:-123:
+%*15i:-0B1111011:0:10:
+%15i:-0b1111011:1:10:-123:
+%*15i:-0b1111011:0:10:
+%15i:-1:1:2:-1:
+%*15i:-1:0:2:
+%15i:-0X1:1:4:-1:
+%*15i:-0X1:0:4:
+%15i:-0x1:1:4:-1:
+%*15i:-0x1:0:4:
+%15i:-01:1:3:-1:
+%*15i:-01:0:3:
+%15i:-0B1:1:4:-1:
+%*15i:-0B1:0:4:
+%15i:-0b1:1:4:-1:
+%*15i:-0b1:0:4:
+%15i:-0:1:2:0:
+%*15i:-0:0:2:
+%15i:-0X0:1:4:0:
+%*15i:-0X0:0:4:
+%15i:-0x0:1:4:0:
+%*15i:-0x0:0:4:
+%15i:-00:1:3:0:
+%*15i:-00:0:3:
+%15i:-0B0:1:4:0:
+%*15i:-0B0:0:4:
+%15i:-0b0:1:4:0:
+%*15i:-0b0:0:4:
+%15i:0:1:1:0:
+%*15i:0:0:1:
+%15i:0X0:1:3:0:
+%*15i:0X0:0:3:
+%15i:0x0:1:3:0:
+%*15i:0x0:0:3:
+%15i:00:1:2:0:
+%*15i:00:0:2:
+%15i:0B0:1:3:0:
+%*15i:0B0:0:3:
+%15i:0b0:1:3:0:
+%*15i:0b0:0:3:
+%15i:1:1:1:1:
+%*15i:1:0:1:
+%15i:0X1:1:3:1:
+%*15i:0X1:0:3:
+%15i:0x1:1:3:1:
+%*15i:0x1:0:3:
+%15i:01:1:2:1:
+%*15i:01:0:2:
+%15i:0B1:1:3:1:
+%*15i:0B1:0:3:
+%15i:0b1:1:3:1:
+%*15i:0b1:0:3:
+%15i:42:1:2:42:
+%*15i:42:0:2:
+%15i:0X2a:1:4:42:
+%*15i:0X2a:0:4:
+%15i:0x2A:1:4:42:
+%*15i:0x2A:0:4:
+%15i:052:1:3:42:
+%*15i:052:0:3:
+%15i:0B101010:1:8:42:
+%*15i:0B101010:0:8:
+%15i:0b101010:1:8:42:
+%*15i:0b101010:0:8:
+%15i:2147483647:1:10:2147483647:
+%*15i:2147483647:0:10:
+%15i:0X7fffffff:1:10:2147483647:
+%*15i:0X7fffffff:0:10:
+%15i:0x7FFFFFFF:1:10:2147483647:
+%*15i:0x7FFFFFFF:0:10:
+%15i:017777777777:1:12:2147483647:
+%*15i:017777777777:0:12:
+%15i:0B1111111111111111111111111111111:1:15:8191:
+%*15i:0B1111111111111111111111111111111:0:15:
+%15i:0b1111111111111111111111111111111:1:15:8191:
+%*15i:0b1111111111111111111111111111111:0:15:
+%15i:2147483648:1:10:-2147483648:
+%*15i:2147483648:0:10:
+%15i:0X80000000:1:10:-2147483648:
+%*15i:0X80000000:0:10:
+%15i:0x80000000:1:10:-2147483648:
+%*15i:0x80000000:0:10:
+%15i:020000000000:1:12:-2147483648:
+%*15i:020000000000:0:12:
+%15i:0B10000000000000000000000000000000:1:15:4096:
+%*15i:0B10000000000000000000000000000000:0:15:
+%15i:0b10000000000000000000000000000000:1:15:4096:
+%*15i:0b10000000000000000000000000000000:0:15:
+%15i:2147487889:1:10:-2147479407:
+%*15i:2147487889:0:10:
+%15i:0X80001091:1:10:-2147479407:
+%*15i:0X80001091:0:10:
+%15i:0x80001091:1:10:-2147479407:
+%*15i:0x80001091:0:10:
+%15i:020000010221:1:12:-2147479407:
+%*15i:020000010221:0:12:
+%15i:0B10000000000000000001000010010001:1:15:4096:
+%*15i:0B10000000000000000001000010010001:0:15:
+%15i:0b10000000000000000001000010010001:1:15:4096:
+%*15i:0b10000000000000000001000010010001:0:15:
+%15i:+0:1:2:0:
+%*15i:+0:0:2:
+%15i:+0X0:1:4:0:
+%*15i:+0X0:0:4:
+%15i:+0x0:1:4:0:
+%*15i:+0x0:0:4:
+%15i:+00:1:3:0:
+%*15i:+00:0:3:
+%15i:+0B0:1:4:0:
+%*15i:+0B0:0:4:
+%15i:+0b0:1:4:0:
+%*15i:+0b0:0:4:
+%15i:+1:1:2:1:
+%*15i:+1:0:2:
+%15i:+0X1:1:4:1:
+%*15i:+0X1:0:4:
+%15i:+0x1:1:4:1:
+%*15i:+0x1:0:4:
+%15i:+01:1:3:1:
+%*15i:+01:0:3:
+%15i:+0B1:1:4:1:
+%*15i:+0B1:0:4:
+%15i:+0b1:1:4:1:
+%*15i:+0b1:0:4:
+%15i:+42:1:3:42:
+%*15i:+42:0:3:
+%15i:+0X2a:1:5:42:
+%*15i:+0X2a:0:5:
+%15i:+0x2A:1:5:42:
+%*15i:+0x2A:0:5:
+%15i:+052:1:4:42:
+%*15i:+052:0:4:
+%15i:+0B101010:1:9:42:
+%*15i:+0B101010:0:9:
+%15i:+0b101010:1:9:42:
+%*15i:+0b101010:0:9:
+%15i:+2147483647:1:11:2147483647:
+%*15i:+2147483647:0:11:
+%15i:+0X7fffffff:1:11:2147483647:
+%*15i:+0X7fffffff:0:11:
+%15i:+0x7FFFFFFF:1:11:2147483647:
+%*15i:+0x7FFFFFFF:0:11:
+%15i:+017777777777:1:13:2147483647:
+%*15i:+017777777777:0:13:
+%15i:+0B1111111111111111111111111111111:1:15:4095:
+%*15i:+0B1111111111111111111111111111111:0:15:
+%15i:+0b1111111111111111111111111111111:1:15:4095:
+%*15i:+0b1111111111111111111111111111111:0:15:
+%15i:+2147483648:1:11:-2147483648:
+%*15i:+2147483648:0:11:
+%15i:+0X80000000:1:11:-2147483648:
+%*15i:+0X80000000:0:11:
+%15i:+0x80000000:1:11:-2147483648:
+%*15i:+0x80000000:0:11:
+%15i:+020000000000:1:13:-2147483648:
+%*15i:+020000000000:0:13:
+%15i:+0B10000000000000000000000000000000:1:15:2048:
+%*15i:+0B10000000000000000000000000000000:0:15:
+%15i:+0b10000000000000000000000000000000:1:15:2048:
+%*15i:+0b10000000000000000000000000000000:0:15:
+%15i:+2147487889:1:11:-2147479407:
+%*15i:+2147487889:0:11:
+%15i:+0X80001091:1:11:-2147479407:
+%*15i:+0X80001091:0:11:
+%15i:+0x80001091:1:11:-2147479407:
+%*15i:+0x80001091:0:11:
+%15i:+020000010221:1:13:-2147479407:
+%*15i:+020000010221:0:13:
+%15i:+0B10000000000000000001000010010001:1:15:2048:
+%*15i:+0B10000000000000000001000010010001:0:15:
+%15i:+0b10000000000000000001000010010001:1:15:2048:
+%*15i:+0b10000000000000000001000010010001:0:15:
+%2i: :0:-1:
+%*2i: :0:-1:
+%2i: -2147484882:1:3:-2:
+%*2i: -2147484882:0:3:
+%2i: -0X800004d2:1:3:0:
+%*2i: -0X800004d2:0:3:
+%2i: -0x800004D2:1:3:0:
+%*2i: -0x800004D2:0:3:
+%2i: -020000002322:1:3:0:
+%*2i: -020000002322:0:3:
+%2i: -0B10000000000000000000010011010010:1:3:0:
+%*2i: -0B10000000000000000000010011010010:0:3:
+%2i: -0b10000000000000000000010011010010:1:3:0:
+%*2i: -0b10000000000000000000010011010010:0:3:
+%2i: -2147483649:1:3:-2:
+%*2i: -2147483649:0:3:
+%2i: -0X80000001:1:3:0:
+%*2i: -0X80000001:0:3:
+%2i: -0x80000001:1:3:0:
+%*2i: -0x80000001:0:3:
+%2i: -020000000001:1:3:0:
+%*2i: -020000000001:0:3:
+%2i: -0B10000000000000000000000000000001:1:3:0:
+%*2i: -0B10000000000000000000000000000001:0:3:
+%2i: -0b10000000000000000000000000000001:1:3:0:
+%*2i: -0b10000000000000000000000000000001:0:3:
+%2i: -2147483648:1:3:-2:
+%*2i: -2147483648:0:3:
+%2i: -0X80000000:1:3:0:
+%*2i: -0X80000000:0:3:
+%2i: -0x80000000:1:3:0:
+%*2i: -0x80000000:0:3:
+%2i: -020000000000:1:3:0:
+%*2i: -020000000000:0:3:
+%2i: -0B10000000000000000000000000000000:1:3:0:
+%*2i: -0B10000000000000000000000000000000:0:3:
+%2i: -0b10000000000000000000000000000000:1:3:0:
+%*2i: -0b10000000000000000000000000000000:0:3:
+%2i: -123:1:3:-1:
+%*2i: -123:0:3:
+%2i: -0X7b:1:3:0:
+%*2i: -0X7b:0:3:
+%2i: -0x7B:1:3:0:
+%*2i: -0x7B:0:3:
+%2i: -0173:1:3:0:
+%*2i: -0173:0:3:
+%2i: -0B1111011:1:3:0:
+%*2i: -0B1111011:0:3:
+%2i: -0b1111011:1:3:0:
+%*2i: -0b1111011:0:3:
+%2i: -1:1:3:-1:
+%*2i: -1:0:3:
+%2i: -0X1:1:3:0:
+%*2i: -0X1:0:3:
+%2i: -0x1:1:3:0:
+%*2i: -0x1:0:3:
+%2i: -01:1:3:0:
+%*2i: -01:0:3:
+%2i: -0B1:1:3:0:
+%*2i: -0B1:0:3:
+%2i: -0b1:1:3:0:
+%*2i: -0b1:0:3:
+%2i: -0:1:3:0:
+%*2i: -0:0:3:
+%2i: -0X0:1:3:0:
+%*2i: -0X0:0:3:
+%2i: -0x0:1:3:0:
+%*2i: -0x0:0:3:
+%2i: -00:1:3:0:
+%*2i: -00:0:3:
+%2i: -0B0:1:3:0:
+%*2i: -0B0:0:3:
+%2i: -0b0:1:3:0:
+%*2i: -0b0:0:3:
+%2i: 0:1:2:0:
+%*2i: 0:0:2:
+%2i: 0X0:0:-1:
+%*2i: 0X0:0:-1:
+%2i: 0x0:0:-1:
+%*2i: 0x0:0:-1:
+%2i: 00:1:3:0:
+%*2i: 00:0:3:
+%2i: 0B0:0:-1:
+%*2i: 0B0:0:-1:
+%2i: 0b0:0:-1:
+%*2i: 0b0:0:-1:
+%2i: 1:1:2:1:
+%*2i: 1:0:2:
+%2i: 0X1:0:-1:
+%*2i: 0X1:0:-1:
+%2i: 0x1:0:-1:
+%*2i: 0x1:0:-1:
+%2i: 01:1:3:1:
+%*2i: 01:0:3:
+%2i: 0B1:0:-1:
+%*2i: 0B1:0:-1:
+%2i: 0b1:0:-1:
+%*2i: 0b1:0:-1:
+%2i: 42:1:3:42:
+%*2i: 42:0:3:
+%2i: 0X2a:0:-1:
+%*2i: 0X2a:0:-1:
+%2i: 0x2A:0:-1:
+%*2i: 0x2A:0:-1:
+%2i: 052:1:3:5:
+%*2i: 052:0:3:
+%2i: 0B101010:0:-1:
+%*2i: 0B101010:0:-1:
+%2i: 0b101010:0:-1:
+%*2i: 0b101010:0:-1:
+%2i: 2147483647:1:3:21:
+%*2i: 2147483647:0:3:
+%2i: 0X7fffffff:0:-1:
+%*2i: 0X7fffffff:0:-1:
+%2i: 0x7FFFFFFF:0:-1:
+%*2i: 0x7FFFFFFF:0:-1:
+%2i: 017777777777:1:3:1:
+%*2i: 017777777777:0:3:
+%2i: 0B1111111111111111111111111111111:0:-1:
+%*2i: 0B1111111111111111111111111111111:0:-1:
+%2i: 0b1111111111111111111111111111111:0:-1:
+%*2i: 0b1111111111111111111111111111111:0:-1:
+%2i: 2147483648:1:3:21:
+%*2i: 2147483648:0:3:
+%2i: 0X80000000:0:-1:
+%*2i: 0X80000000:0:-1:
+%2i: 0x80000000:0:-1:
+%*2i: 0x80000000:0:-1:
+%2i: 020000000000:1:3:2:
+%*2i: 020000000000:0:3:
+%2i: 0B10000000000000000000000000000000:0:-1:
+%*2i: 0B10000000000000000000000000000000:0:-1:
+%2i: 0b10000000000000000000000000000000:0:-1:
+%*2i: 0b10000000000000000000000000000000:0:-1:
+%2i: 2147487889:1:3:21:
+%*2i: 2147487889:0:3:
+%2i: 0X80001091:0:-1:
+%*2i: 0X80001091:0:-1:
+%2i: 0x80001091:0:-1:
+%*2i: 0x80001091:0:-1:
+%2i: 020000010221:1:3:2:
+%*2i: 020000010221:0:3:
+%2i: 0B10000000000000000001000010010001:0:-1:
+%*2i: 0B10000000000000000001000010010001:0:-1:
+%2i: 0b10000000000000000001000010010001:0:-1:
+%*2i: 0b10000000000000000001000010010001:0:-1:
+%2i: +0:1:3:0:
+%*2i: +0:0:3:
+%2i: +0X0:1:3:0:
+%*2i: +0X0:0:3:
+%2i: +0x0:1:3:0:
+%*2i: +0x0:0:3:
+%2i: +00:1:3:0:
+%*2i: +00:0:3:
+%2i: +0B0:1:3:0:
+%*2i: +0B0:0:3:
+%2i: +0b0:1:3:0:
+%*2i: +0b0:0:3:
+%2i: +1:1:3:1:
+%*2i: +1:0:3:
+%2i: +0X1:1:3:0:
+%*2i: +0X1:0:3:
+%2i: +0x1:1:3:0:
+%*2i: +0x1:0:3:
+%2i: +01:1:3:0:
+%*2i: +01:0:3:
+%2i: +0B1:1:3:0:
+%*2i: +0B1:0:3:
+%2i: +0b1:1:3:0:
+%*2i: +0b1:0:3:
+%2i: +42:1:3:4:
+%*2i: +42:0:3:
+%2i: +0X2a:1:3:0:
+%*2i: +0X2a:0:3:
+%2i: +0x2A:1:3:0:
+%*2i: +0x2A:0:3:
+%2i: +052:1:3:0:
+%*2i: +052:0:3:
+%2i: +0B101010:1:3:0:
+%*2i: +0B101010:0:3:
+%2i: +0b101010:1:3:0:
+%*2i: +0b101010:0:3:
+%2i: +2147483647:1:3:2:
+%*2i: +2147483647:0:3:
+%2i: +0X7fffffff:1:3:0:
+%*2i: +0X7fffffff:0:3:
+%2i: +0x7FFFFFFF:1:3:0:
+%*2i: +0x7FFFFFFF:0:3:
+%2i: +017777777777:1:3:0:
+%*2i: +017777777777:0:3:
+%2i: +0B1111111111111111111111111111111:1:3:0:
+%*2i: +0B1111111111111111111111111111111:0:3:
+%2i: +0b1111111111111111111111111111111:1:3:0:
+%*2i: +0b1111111111111111111111111111111:0:3:
+%2i: +2147483648:1:3:2:
+%*2i: +2147483648:0:3:
+%2i: +0X80000000:1:3:0:
+%*2i: +0X80000000:0:3:
+%2i: +0x80000000:1:3:0:
+%*2i: +0x80000000:0:3:
+%2i: +020000000000:1:3:0:
+%*2i: +020000000000:0:3:
+%2i: +0B10000000000000000000000000000000:1:3:0:
+%*2i: +0B10000000000000000000000000000000:0:3:
+%2i: +0b10000000000000000000000000000000:1:3:0:
+%*2i: +0b10000000000000000000000000000000:0:3:
+%2i: +2147487889:1:3:2:
+%*2i: +2147487889:0:3:
+%2i: +0X80001091:1:3:0:
+%*2i: +0X80001091:0:3:
+%2i: +0x80001091:1:3:0:
+%*2i: +0x80001091:0:3:
+%2i: +020000010221:1:3:0:
+%*2i: +020000010221:0:3:
+%2i: +0B10000000000000000001000010010001:1:3:0:
+%*2i: +0B10000000000000000001000010010001:0:3:
+%2i: +0b10000000000000000001000010010001:1:3:0:
+%*2i: +0b10000000000000000001000010010001:0:3:
+%15i: :0:-1:
+%*15i: :0:-1:
+%15i: -2147484882:1:12:2147482414:
+%*15i: -2147484882:0:12:
+%15i: -0X800004d2:1:12:2147482414:
+%*15i: -0X800004d2:0:12:
+%15i: -0x800004D2:1:12:2147482414:
+%*15i: -0x800004D2:0:12:
+%15i: -020000002322:1:14:2147482414:
+%*15i: -020000002322:0:14:
+%15i: -0B10000000000000000000010011010010:1:16:-2048:
+%*15i: -0B10000000000000000000010011010010:0:16:
+%15i: -0b10000000000000000000010011010010:1:16:-2048:
+%*15i: -0b10000000000000000000010011010010:0:16:
+%15i: -2147483649:1:12:2147483647:
+%*15i: -2147483649:0:12:
+%15i: -0X80000001:1:12:2147483647:
+%*15i: -0X80000001:0:12:
+%15i: -0x80000001:1:12:2147483647:
+%*15i: -0x80000001:0:12:
+%15i: -020000000001:1:14:2147483647:
+%*15i: -020000000001:0:14:
+%15i: -0B10000000000000000000000000000001:1:16:-2048:
+%*15i: -0B10000000000000000000000000000001:0:16:
+%15i: -0b10000000000000000000000000000001:1:16:-2048:
+%*15i: -0b10000000000000000000000000000001:0:16:
+%15i: -2147483648:1:12:-2147483648:
+%*15i: -2147483648:0:12:
+%15i: -0X80000000:1:12:-2147483648:
+%*15i: -0X80000000:0:12:
+%15i: -0x80000000:1:12:-2147483648:
+%*15i: -0x80000000:0:12:
+%15i: -020000000000:1:14:-2147483648:
+%*15i: -020000000000:0:14:
+%15i: -0B10000000000000000000000000000000:1:16:-2048:
+%*15i: -0B10000000000000000000000000000000:0:16:
+%15i: -0b10000000000000000000000000000000:1:16:-2048:
+%*15i: -0b10000000000000000000000000000000:0:16:
+%15i: -123:1:5:-123:
+%*15i: -123:0:5:
+%15i: -0X7b:1:6:-123:
+%*15i: -0X7b:0:6:
+%15i: -0x7B:1:6:-123:
+%*15i: -0x7B:0:6:
+%15i: -0173:1:6:-123:
+%*15i: -0173:0:6:
+%15i: -0B1111011:1:11:-123:
+%*15i: -0B1111011:0:11:
+%15i: -0b1111011:1:11:-123:
+%*15i: -0b1111011:0:11:
+%15i: -1:1:3:-1:
+%*15i: -1:0:3:
+%15i: -0X1:1:5:-1:
+%*15i: -0X1:0:5:
+%15i: -0x1:1:5:-1:
+%*15i: -0x1:0:5:
+%15i: -01:1:4:-1:
+%*15i: -01:0:4:
+%15i: -0B1:1:5:-1:
+%*15i: -0B1:0:5:
+%15i: -0b1:1:5:-1:
+%*15i: -0b1:0:5:
+%15i: -0:1:3:0:
+%*15i: -0:0:3:
+%15i: -0X0:1:5:0:
+%*15i: -0X0:0:5:
+%15i: -0x0:1:5:0:
+%*15i: -0x0:0:5:
+%15i: -00:1:4:0:
+%*15i: -00:0:4:
+%15i: -0B0:1:5:0:
+%*15i: -0B0:0:5:
+%15i: -0b0:1:5:0:
+%*15i: -0b0:0:5:
+%15i: 0:1:2:0:
+%*15i: 0:0:2:
+%15i: 0X0:1:4:0:
+%*15i: 0X0:0:4:
+%15i: 0x0:1:4:0:
+%*15i: 0x0:0:4:
+%15i: 00:1:3:0:
+%*15i: 00:0:3:
+%15i: 0B0:1:4:0:
+%*15i: 0B0:0:4:
+%15i: 0b0:1:4:0:
+%*15i: 0b0:0:4:
+%15i: 1:1:2:1:
+%*15i: 1:0:2:
+%15i: 0X1:1:4:1:
+%*15i: 0X1:0:4:
+%15i: 0x1:1:4:1:
+%*15i: 0x1:0:4:
+%15i: 01:1:3:1:
+%*15i: 01:0:3:
+%15i: 0B1:1:4:1:
+%*15i: 0B1:0:4:
+%15i: 0b1:1:4:1:
+%*15i: 0b1:0:4:
+%15i: 42:1:3:42:
+%*15i: 42:0:3:
+%15i: 0X2a:1:5:42:
+%*15i: 0X2a:0:5:
+%15i: 0x2A:1:5:42:
+%*15i: 0x2A:0:5:
+%15i: 052:1:4:42:
+%*15i: 052:0:4:
+%15i: 0B101010:1:9:42:
+%*15i: 0B101010:0:9:
+%15i: 0b101010:1:9:42:
+%*15i: 0b101010:0:9:
+%15i: 2147483647:1:11:2147483647:
+%*15i: 2147483647:0:11:
+%15i: 0X7fffffff:1:11:2147483647:
+%*15i: 0X7fffffff:0:11:
+%15i: 0x7FFFFFFF:1:11:2147483647:
+%*15i: 0x7FFFFFFF:0:11:
+%15i: 017777777777:1:13:2147483647:
+%*15i: 017777777777:0:13:
+%15i: 0B1111111111111111111111111111111:1:16:8191:
+%*15i: 0B1111111111111111111111111111111:0:16:
+%15i: 0b1111111111111111111111111111111:1:16:8191:
+%*15i: 0b1111111111111111111111111111111:0:16:
+%15i: 2147483648:1:11:-2147483648:
+%*15i: 2147483648:0:11:
+%15i: 0X80000000:1:11:-2147483648:
+%*15i: 0X80000000:0:11:
+%15i: 0x80000000:1:11:-2147483648:
+%*15i: 0x80000000:0:11:
+%15i: 020000000000:1:13:-2147483648:
+%*15i: 020000000000:0:13:
+%15i: 0B10000000000000000000000000000000:1:16:4096:
+%*15i: 0B10000000000000000000000000000000:0:16:
+%15i: 0b10000000000000000000000000000000:1:16:4096:
+%*15i: 0b10000000000000000000000000000000:0:16:
+%15i: 2147487889:1:11:-2147479407:
+%*15i: 2147487889:0:11:
+%15i: 0X80001091:1:11:-2147479407:
+%*15i: 0X80001091:0:11:
+%15i: 0x80001091:1:11:-2147479407:
+%*15i: 0x80001091:0:11:
+%15i: 020000010221:1:13:-2147479407:
+%*15i: 020000010221:0:13:
+%15i: 0B10000000000000000001000010010001:1:16:4096:
+%*15i: 0B10000000000000000001000010010001:0:16:
+%15i: 0b10000000000000000001000010010001:1:16:4096:
+%*15i: 0b10000000000000000001000010010001:0:16:
+%15i: +0:1:3:0:
+%*15i: +0:0:3:
+%15i: +0X0:1:5:0:
+%*15i: +0X0:0:5:
+%15i: +0x0:1:5:0:
+%*15i: +0x0:0:5:
+%15i: +00:1:4:0:
+%*15i: +00:0:4:
+%15i: +0B0:1:5:0:
+%*15i: +0B0:0:5:
+%15i: +0b0:1:5:0:
+%*15i: +0b0:0:5:
+%15i: +1:1:3:1:
+%*15i: +1:0:3:
+%15i: +0X1:1:5:1:
+%*15i: +0X1:0:5:
+%15i: +0x1:1:5:1:
+%*15i: +0x1:0:5:
+%15i: +01:1:4:1:
+%*15i: +01:0:4:
+%15i: +0B1:1:5:1:
+%*15i: +0B1:0:5:
+%15i: +0b1:1:5:1:
+%*15i: +0b1:0:5:
+%15i: +42:1:4:42:
+%*15i: +42:0:4:
+%15i: +0X2a:1:6:42:
+%*15i: +0X2a:0:6:
+%15i: +0x2A:1:6:42:
+%*15i: +0x2A:0:6:
+%15i: +052:1:5:42:
+%*15i: +052:0:5:
+%15i: +0B101010:1:10:42:
+%*15i: +0B101010:0:10:
+%15i: +0b101010:1:10:42:
+%*15i: +0b101010:0:10:
+%15i: +2147483647:1:12:2147483647:
+%*15i: +2147483647:0:12:
+%15i: +0X7fffffff:1:12:2147483647:
+%*15i: +0X7fffffff:0:12:
+%15i: +0x7FFFFFFF:1:12:2147483647:
+%*15i: +0x7FFFFFFF:0:12:
+%15i: +017777777777:1:14:2147483647:
+%*15i: +017777777777:0:14:
+%15i: +0B1111111111111111111111111111111:1:16:4095:
+%*15i: +0B1111111111111111111111111111111:0:16:
+%15i: +0b1111111111111111111111111111111:1:16:4095:
+%*15i: +0b1111111111111111111111111111111:0:16:
+%15i: +2147483648:1:12:-2147483648:
+%*15i: +2147483648:0:12:
+%15i: +0X80000000:1:12:-2147483648:
+%*15i: +0X80000000:0:12:
+%15i: +0x80000000:1:12:-2147483648:
+%*15i: +0x80000000:0:12:
+%15i: +020000000000:1:14:-2147483648:
+%*15i: +020000000000:0:14:
+%15i: +0B10000000000000000000000000000000:1:16:2048:
+%*15i: +0B10000000000000000000000000000000:0:16:
+%15i: +0b10000000000000000000000000000000:1:16:2048:
+%*15i: +0b10000000000000000000000000000000:0:16:
+%15i: +2147487889:1:12:-2147479407:
+%*15i: +2147487889:0:12:
+%15i: +0X80001091:1:12:-2147479407:
+%*15i: +0X80001091:0:12:
+%15i: +0x80001091:1:12:-2147479407:
+%*15i: +0x80001091:0:12:
+%15i: +020000010221:1:14:-2147479407:
+%*15i: +020000010221:0:14:
+%15i: +0B10000000000000000001000010010001:1:16:2048:
+%*15i: +0B10000000000000000001000010010001:0:16:
+%15i: +0b10000000000000000001000010010001:1:16:2048:
+%*15i: +0b10000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-d.input b/sysdeps/wordsize-64/tst-scanf-format-long-d.input
new file mode 100644
index 0000000..8da1fb4
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-long-d.input
@@ -0,0 +1,266 @@
+%ld::0:-1:
+%*ld::0:-1:
+%ld:-9223372036867121486:1:20:-9223372036854775808:
+%*ld:-9223372036867121486:0:20:
+%ld:-9223372036854775809:1:20:-9223372036854775808:
+%*ld:-9223372036854775809:0:20:
+%ld:-9223372036854775808:1:20:-9223372036854775808:
+%*ld:-9223372036854775808:0:20:
+%ld:-123:1:4:-123:
+%*ld:-123:0:4:
+%ld:-1:1:2:-1:
+%*ld:-1:0:2:
+%ld:-0:1:2:0:
+%*ld:-0:0:2:
+%ld:0:1:1:0:
+%*ld:0:0:1:
+%ld:1:1:1:1:
+%*ld:1:0:1:
+%ld:42:1:2:42:
+%*ld:42:0:2:
+%ld:9223372036854775807:1:19:9223372036854775807:
+%*ld:9223372036854775807:0:19:
+%ld:9223372036854775808:1:19:9223372036854775807:
+%*ld:9223372036854775808:0:19:
+%ld:9223372036897200049:1:19:9223372036854775807:
+%*ld:9223372036897200049:0:19:
+%ld:+0:1:2:0:
+%*ld:+0:0:2:
+%ld:+1:1:2:1:
+%*ld:+1:0:2:
+%ld:+42:1:3:42:
+%*ld:+42:0:3:
+%ld:+9223372036854775807:1:20:9223372036854775807:
+%*ld:+9223372036854775807:0:20:
+%ld:+9223372036854775808:1:20:9223372036854775807:
+%*ld:+9223372036854775808:0:20:
+%ld:+9223372036897200049:1:20:9223372036854775807:
+%*ld:+9223372036897200049:0:20:
+%1ld::0:-1:
+%*1ld::0:-1:
+%1ld:-9223372036867121486:0:-1:
+%*1ld:-9223372036867121486:0:-1:
+%1ld:-9223372036854775809:0:-1:
+%*1ld:-9223372036854775809:0:-1:
+%1ld:-9223372036854775808:0:-1:
+%*1ld:-9223372036854775808:0:-1:
+%1ld:-123:0:-1:
+%*1ld:-123:0:-1:
+%1ld:-1:0:-1:
+%*1ld:-1:0:-1:
+%1ld:-0:0:-1:
+%*1ld:-0:0:-1:
+%1ld:0:1:1:0:
+%*1ld:0:0:1:
+%1ld:1:1:1:1:
+%*1ld:1:0:1:
+%1ld:42:1:1:4:
+%*1ld:42:0:1:
+%1ld:9223372036854775807:1:1:9:
+%*1ld:9223372036854775807:0:1:
+%1ld:9223372036854775808:1:1:9:
+%*1ld:9223372036854775808:0:1:
+%1ld:9223372036897200049:1:1:9:
+%*1ld:9223372036897200049:0:1:
+%1ld:+0:0:-1:
+%*1ld:+0:0:-1:
+%1ld:+1:0:-1:
+%*1ld:+1:0:-1:
+%1ld:+42:0:-1:
+%*1ld:+42:0:-1:
+%1ld:+9223372036854775807:0:-1:
+%*1ld:+9223372036854775807:0:-1:
+%1ld:+9223372036854775808:0:-1:
+%*1ld:+9223372036854775808:0:-1:
+%1ld:+9223372036897200049:0:-1:
+%*1ld:+9223372036897200049:0:-1:
+%2ld::0:-1:
+%*2ld::0:-1:
+%2ld:-9223372036867121486:1:2:-9:
+%*2ld:-9223372036867121486:0:2:
+%2ld:-9223372036854775809:1:2:-9:
+%*2ld:-9223372036854775809:0:2:
+%2ld:-9223372036854775808:1:2:-9:
+%*2ld:-9223372036854775808:0:2:
+%2ld:-123:1:2:-1:
+%*2ld:-123:0:2:
+%2ld:-1:1:2:-1:
+%*2ld:-1:0:2:
+%2ld:-0:1:2:0:
+%*2ld:-0:0:2:
+%2ld:0:1:1:0:
+%*2ld:0:0:1:
+%2ld:1:1:1:1:
+%*2ld:1:0:1:
+%2ld:42:1:2:42:
+%*2ld:42:0:2:
+%2ld:9223372036854775807:1:2:92:
+%*2ld:9223372036854775807:0:2:
+%2ld:9223372036854775808:1:2:92:
+%*2ld:9223372036854775808:0:2:
+%2ld:9223372036897200049:1:2:92:
+%*2ld:9223372036897200049:0:2:
+%2ld:+0:1:2:0:
+%*2ld:+0:0:2:
+%2ld:+1:1:2:1:
+%*2ld:+1:0:2:
+%2ld:+42:1:2:4:
+%*2ld:+42:0:2:
+%2ld:+9223372036854775807:1:2:9:
+%*2ld:+9223372036854775807:0:2:
+%2ld:+9223372036854775808:1:2:9:
+%*2ld:+9223372036854775808:0:2:
+%2ld:+9223372036897200049:1:2:9:
+%*2ld:+9223372036897200049:0:2:
+%15ld::0:-1:
+%*15ld::0:-1:
+%15ld:-9223372036867121486:1:15:-92233720368671:
+%*15ld:-9223372036867121486:0:15:
+%15ld:-9223372036854775809:1:15:-92233720368547:
+%*15ld:-9223372036854775809:0:15:
+%15ld:-9223372036854775808:1:15:-92233720368547:
+%*15ld:-9223372036854775808:0:15:
+%15ld:-123:1:4:-123:
+%*15ld:-123:0:4:
+%15ld:-1:1:2:-1:
+%*15ld:-1:0:2:
+%15ld:-0:1:2:0:
+%*15ld:-0:0:2:
+%15ld:0:1:1:0:
+%*15ld:0:0:1:
+%15ld:1:1:1:1:
+%*15ld:1:0:1:
+%15ld:42:1:2:42:
+%*15ld:42:0:2:
+%15ld:9223372036854775807:1:15:922337203685477:
+%*15ld:9223372036854775807:0:15:
+%15ld:9223372036854775808:1:15:922337203685477:
+%*15ld:9223372036854775808:0:15:
+%15ld:9223372036897200049:1:15:922337203689720:
+%*15ld:9223372036897200049:0:15:
+%15ld:+0:1:2:0:
+%*15ld:+0:0:2:
+%15ld:+1:1:2:1:
+%*15ld:+1:0:2:
+%15ld:+42:1:3:42:
+%*15ld:+42:0:3:
+%15ld:+9223372036854775807:1:15:92233720368547:
+%*15ld:+9223372036854775807:0:15:
+%15ld:+9223372036854775808:1:15:92233720368547:
+%*15ld:+9223372036854775808:0:15:
+%15ld:+9223372036897200049:1:15:92233720368972:
+%*15ld:+9223372036897200049:0:15:
+%25ld::0:-1:
+%*25ld::0:-1:
+%25ld:-9223372036867121486:1:20:-9223372036854775808:
+%*25ld:-9223372036867121486:0:20:
+%25ld:-9223372036854775809:1:20:-9223372036854775808:
+%*25ld:-9223372036854775809:0:20:
+%25ld:-9223372036854775808:1:20:-9223372036854775808:
+%*25ld:-9223372036854775808:0:20:
+%25ld:-123:1:4:-123:
+%*25ld:-123:0:4:
+%25ld:-1:1:2:-1:
+%*25ld:-1:0:2:
+%25ld:-0:1:2:0:
+%*25ld:-0:0:2:
+%25ld:0:1:1:0:
+%*25ld:0:0:1:
+%25ld:1:1:1:1:
+%*25ld:1:0:1:
+%25ld:42:1:2:42:
+%*25ld:42:0:2:
+%25ld:9223372036854775807:1:19:9223372036854775807:
+%*25ld:9223372036854775807:0:19:
+%25ld:9223372036854775808:1:19:9223372036854775807:
+%*25ld:9223372036854775808:0:19:
+%25ld:9223372036897200049:1:19:9223372036854775807:
+%*25ld:9223372036897200049:0:19:
+%25ld:+0:1:2:0:
+%*25ld:+0:0:2:
+%25ld:+1:1:2:1:
+%*25ld:+1:0:2:
+%25ld:+42:1:3:42:
+%*25ld:+42:0:3:
+%25ld:+9223372036854775807:1:20:9223372036854775807:
+%*25ld:+9223372036854775807:0:20:
+%25ld:+9223372036854775808:1:20:9223372036854775807:
+%*25ld:+9223372036854775808:0:20:
+%25ld:+9223372036897200049:1:20:9223372036854775807:
+%*25ld:+9223372036897200049:0:20:
+%2ld: :0:-1:
+%*2ld: :0:-1:
+%2ld: -9223372036867121486:1:3:-9:
+%*2ld: -9223372036867121486:0:3:
+%2ld: -9223372036854775809:1:3:-9:
+%*2ld: -9223372036854775809:0:3:
+%2ld: -9223372036854775808:1:3:-9:
+%*2ld: -9223372036854775808:0:3:
+%2ld: -123:1:3:-1:
+%*2ld: -123:0:3:
+%2ld: -1:1:3:-1:
+%*2ld: -1:0:3:
+%2ld: -0:1:3:0:
+%*2ld: -0:0:3:
+%2ld: 0:1:2:0:
+%*2ld: 0:0:2:
+%2ld: 1:1:2:1:
+%*2ld: 1:0:2:
+%2ld: 42:1:3:42:
+%*2ld: 42:0:3:
+%2ld: 9223372036854775807:1:3:92:
+%*2ld: 9223372036854775807:0:3:
+%2ld: 9223372036854775808:1:3:92:
+%*2ld: 9223372036854775808:0:3:
+%2ld: 9223372036897200049:1:3:92:
+%*2ld: 9223372036897200049:0:3:
+%2ld: +0:1:3:0:
+%*2ld: +0:0:3:
+%2ld: +1:1:3:1:
+%*2ld: +1:0:3:
+%2ld: +42:1:3:4:
+%*2ld: +42:0:3:
+%2ld: +9223372036854775807:1:3:9:
+%*2ld: +9223372036854775807:0:3:
+%2ld: +9223372036854775808:1:3:9:
+%*2ld: +9223372036854775808:0:3:
+%2ld: +9223372036897200049:1:3:9:
+%*2ld: +9223372036897200049:0:3:
+%25ld: :0:-1:
+%*25ld: :0:-1:
+%25ld: -9223372036867121486:1:21:-9223372036854775808:
+%*25ld: -9223372036867121486:0:21:
+%25ld: -9223372036854775809:1:21:-9223372036854775808:
+%*25ld: -9223372036854775809:0:21:
+%25ld: -9223372036854775808:1:21:-9223372036854775808:
+%*25ld: -9223372036854775808:0:21:
+%25ld: -123:1:5:-123:
+%*25ld: -123:0:5:
+%25ld: -1:1:3:-1:
+%*25ld: -1:0:3:
+%25ld: -0:1:3:0:
+%*25ld: -0:0:3:
+%25ld: 0:1:2:0:
+%*25ld: 0:0:2:
+%25ld: 1:1:2:1:
+%*25ld: 1:0:2:
+%25ld: 42:1:3:42:
+%*25ld: 42:0:3:
+%25ld: 9223372036854775807:1:20:9223372036854775807:
+%*25ld: 9223372036854775807:0:20:
+%25ld: 9223372036854775808:1:20:9223372036854775807:
+%*25ld: 9223372036854775808:0:20:
+%25ld: 9223372036897200049:1:20:9223372036854775807:
+%*25ld: 9223372036897200049:0:20:
+%25ld: +0:1:3:0:
+%*25ld: +0:0:3:
+%25ld: +1:1:3:1:
+%*25ld: +1:0:3:
+%25ld: +42:1:4:42:
+%*25ld: +42:0:4:
+%25ld: +9223372036854775807:1:21:9223372036854775807:
+%*25ld: +9223372036854775807:0:21:
+%25ld: +9223372036854775808:1:21:9223372036854775807:
+%*25ld: +9223372036854775808:0:21:
+%25ld: +9223372036897200049:1:21:9223372036854775807:
+%*25ld: +9223372036897200049:0:21:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input
new file mode 100644
index 0000000..66ca752
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input
@@ -0,0 +1,1526 @@
+%li::0:-1:
+%*li::0:-1:
+%li:-9223372036867121486:1:20:-9223372036854775808:
+%*li:-9223372036867121486:0:20:
+%li:-0X8000000000bc614e:1:19:-9223372036854775808:
+%*li:-0X8000000000bc614e:0:19:
+%li:-0x8000000000BC614E:1:19:-9223372036854775808:
+%*li:-0x8000000000BC614E:0:19:
+%li:-01000000000000057060516:1:24:-9223372036854775808:
+%*li:-01000000000000057060516:0:24:
+%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808:
+%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67:
+%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808:
+%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67:
+%li:-9223372036854775809:1:20:-9223372036854775808:
+%*li:-9223372036854775809:0:20:
+%li:-0X8000000000000001:1:19:-9223372036854775808:
+%*li:-0X8000000000000001:0:19:
+%li:-0x8000000000000001:1:19:-9223372036854775808:
+%*li:-0x8000000000000001:0:19:
+%li:-01000000000000000000001:1:24:-9223372036854775808:
+%*li:-01000000000000000000001:0:24:
+%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808:
+%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67:
+%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808:
+%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67:
+%li:-9223372036854775808:1:20:-9223372036854775808:
+%*li:-9223372036854775808:0:20:
+%li:-0X8000000000000000:1:19:-9223372036854775808:
+%*li:-0X8000000000000000:0:19:
+%li:-0x8000000000000000:1:19:-9223372036854775808:
+%*li:-0x8000000000000000:0:19:
+%li:-01000000000000000000000:1:24:-9223372036854775808:
+%*li:-01000000000000000000000:0:24:
+%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808:
+%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67:
+%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808:
+%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67:
+%li:-123:1:4:-123:
+%*li:-123:0:4:
+%li:-0X7b:1:5:-123:
+%*li:-0X7b:0:5:
+%li:-0x7B:1:5:-123:
+%*li:-0x7B:0:5:
+%li:-0173:1:5:-123:
+%*li:-0173:0:5:
+%li:-0B1111011:1:10:-123:
+%*li:-0B1111011:0:10:
+%li:-0b1111011:1:10:-123:
+%*li:-0b1111011:0:10:
+%li:-1:1:2:-1:
+%*li:-1:0:2:
+%li:-0X1:1:4:-1:
+%*li:-0X1:0:4:
+%li:-0x1:1:4:-1:
+%*li:-0x1:0:4:
+%li:-01:1:3:-1:
+%*li:-01:0:3:
+%li:-0B1:1:4:-1:
+%*li:-0B1:0:4:
+%li:-0b1:1:4:-1:
+%*li:-0b1:0:4:
+%li:-0:1:2:0:
+%*li:-0:0:2:
+%li:-0X0:1:4:0:
+%*li:-0X0:0:4:
+%li:-0x0:1:4:0:
+%*li:-0x0:0:4:
+%li:-00:1:3:0:
+%*li:-00:0:3:
+%li:-0B0:1:4:0:
+%*li:-0B0:0:4:
+%li:-0b0:1:4:0:
+%*li:-0b0:0:4:
+%li:0:1:1:0:
+%*li:0:0:1:
+%li:0X0:1:3:0:
+%*li:0X0:0:3:
+%li:0x0:1:3:0:
+%*li:0x0:0:3:
+%li:00:1:2:0:
+%*li:00:0:2:
+%li:0B0:1:3:0:
+%*li:0B0:0:3:
+%li:0b0:1:3:0:
+%*li:0b0:0:3:
+%li:1:1:1:1:
+%*li:1:0:1:
+%li:0X1:1:3:1:
+%*li:0X1:0:3:
+%li:0x1:1:3:1:
+%*li:0x1:0:3:
+%li:01:1:2:1:
+%*li:01:0:2:
+%li:0B1:1:3:1:
+%*li:0B1:0:3:
+%li:0b1:1:3:1:
+%*li:0b1:0:3:
+%li:42:1:2:42:
+%*li:42:0:2:
+%li:0X2a:1:4:42:
+%*li:0X2a:0:4:
+%li:0x2A:1:4:42:
+%*li:0x2A:0:4:
+%li:052:1:3:42:
+%*li:052:0:3:
+%li:0B101010:1:8:42:
+%*li:0B101010:0:8:
+%li:0b101010:1:8:42:
+%*li:0b101010:0:8:
+%li:9223372036854775807:1:19:9223372036854775807:
+%*li:9223372036854775807:0:19:
+%li:0X7fffffffffffffff:1:18:9223372036854775807:
+%*li:0X7fffffffffffffff:0:18:
+%li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807:
+%*li:0x7FFFFFFFFFFFFFFF:0:18:
+%li:0777777777777777777777:1:22:9223372036854775807:
+%*li:0777777777777777777777:0:22:
+%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807:
+%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65:
+%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807:
+%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65:
+%li:9223372036854775808:1:19:9223372036854775807:
+%*li:9223372036854775808:0:19:
+%li:0X8000000000000000:1:18:9223372036854775807:
+%*li:0X8000000000000000:0:18:
+%li:0x8000000000000000:1:18:9223372036854775807:
+%*li:0x8000000000000000:0:18:
+%li:01000000000000000000000:1:23:9223372036854775807:
+%*li:01000000000000000000000:0:23:
+%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807:
+%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66:
+%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807:
+%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66:
+%li:9223372036897200049:1:19:9223372036854775807:
+%*li:9223372036897200049:0:19:
+%li:0X80000000028757b1:1:18:9223372036854775807:
+%*li:0X80000000028757b1:0:18:
+%li:0x80000000028757B1:1:18:9223372036854775807:
+%*li:0x80000000028757B1:0:18:
+%li:01000000000000241653661:1:23:9223372036854775807:
+%*li:01000000000000241653661:0:23:
+%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807:
+%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66:
+%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807:
+%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66:
+%li:+0:1:2:0:
+%*li:+0:0:2:
+%li:+0X0:1:4:0:
+%*li:+0X0:0:4:
+%li:+0x0:1:4:0:
+%*li:+0x0:0:4:
+%li:+00:1:3:0:
+%*li:+00:0:3:
+%li:+0B0:1:4:0:
+%*li:+0B0:0:4:
+%li:+0b0:1:4:0:
+%*li:+0b0:0:4:
+%li:+1:1:2:1:
+%*li:+1:0:2:
+%li:+0X1:1:4:1:
+%*li:+0X1:0:4:
+%li:+0x1:1:4:1:
+%*li:+0x1:0:4:
+%li:+01:1:3:1:
+%*li:+01:0:3:
+%li:+0B1:1:4:1:
+%*li:+0B1:0:4:
+%li:+0b1:1:4:1:
+%*li:+0b1:0:4:
+%li:+42:1:3:42:
+%*li:+42:0:3:
+%li:+0X2a:1:5:42:
+%*li:+0X2a:0:5:
+%li:+0x2A:1:5:42:
+%*li:+0x2A:0:5:
+%li:+052:1:4:42:
+%*li:+052:0:4:
+%li:+0B101010:1:9:42:
+%*li:+0B101010:0:9:
+%li:+0b101010:1:9:42:
+%*li:+0b101010:0:9:
+%li:+9223372036854775807:1:20:9223372036854775807:
+%*li:+9223372036854775807:0:20:
+%li:+0X7fffffffffffffff:1:19:9223372036854775807:
+%*li:+0X7fffffffffffffff:0:19:
+%li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807:
+%*li:+0x7FFFFFFFFFFFFFFF:0:19:
+%li:+0777777777777777777777:1:23:9223372036854775807:
+%*li:+0777777777777777777777:0:23:
+%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807:
+%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66:
+%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807:
+%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66:
+%li:+9223372036854775808:1:20:9223372036854775807:
+%*li:+9223372036854775808:0:20:
+%li:+0X8000000000000000:1:19:9223372036854775807:
+%*li:+0X8000000000000000:0:19:
+%li:+0x8000000000000000:1:19:9223372036854775807:
+%*li:+0x8000000000000000:0:19:
+%li:+01000000000000000000000:1:24:9223372036854775807:
+%*li:+01000000000000000000000:0:24:
+%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807:
+%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67:
+%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807:
+%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67:
+%li:+9223372036897200049:1:20:9223372036854775807:
+%*li:+9223372036897200049:0:20:
+%li:+0X80000000028757b1:1:19:9223372036854775807:
+%*li:+0X80000000028757b1:0:19:
+%li:+0x80000000028757B1:1:19:9223372036854775807:
+%*li:+0x80000000028757B1:0:19:
+%li:+01000000000000241653661:1:24:9223372036854775807:
+%*li:+01000000000000241653661:0:24:
+%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807:
+%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67:
+%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807:
+%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67:
+%1li::0:-1:
+%*1li::0:-1:
+%1li:-9223372036867121486:0:-1:
+%*1li:-9223372036867121486:0:-1:
+%1li:-0X8000000000bc614e:0:-1:
+%*1li:-0X8000000000bc614e:0:-1:
+%1li:-0x8000000000BC614E:0:-1:
+%*1li:-0x8000000000BC614E:0:-1:
+%1li:-01000000000000057060516:0:-1:
+%*1li:-01000000000000057060516:0:-1:
+%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1:
+%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1:
+%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1:
+%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1:
+%1li:-9223372036854775809:0:-1:
+%*1li:-9223372036854775809:0:-1:
+%1li:-0X8000000000000001:0:-1:
+%*1li:-0X8000000000000001:0:-1:
+%1li:-0x8000000000000001:0:-1:
+%*1li:-0x8000000000000001:0:-1:
+%1li:-01000000000000000000001:0:-1:
+%*1li:-01000000000000000000001:0:-1:
+%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1:
+%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1:
+%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1:
+%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1:
+%1li:-9223372036854775808:0:-1:
+%*1li:-9223372036854775808:0:-1:
+%1li:-0X8000000000000000:0:-1:
+%*1li:-0X8000000000000000:0:-1:
+%1li:-0x8000000000000000:0:-1:
+%*1li:-0x8000000000000000:0:-1:
+%1li:-01000000000000000000000:0:-1:
+%*1li:-01000000000000000000000:0:-1:
+%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1li:-123:0:-1:
+%*1li:-123:0:-1:
+%1li:-0X7b:0:-1:
+%*1li:-0X7b:0:-1:
+%1li:-0x7B:0:-1:
+%*1li:-0x7B:0:-1:
+%1li:-0173:0:-1:
+%*1li:-0173:0:-1:
+%1li:-0B1111011:0:-1:
+%*1li:-0B1111011:0:-1:
+%1li:-0b1111011:0:-1:
+%*1li:-0b1111011:0:-1:
+%1li:-1:0:-1:
+%*1li:-1:0:-1:
+%1li:-0X1:0:-1:
+%*1li:-0X1:0:-1:
+%1li:-0x1:0:-1:
+%*1li:-0x1:0:-1:
+%1li:-01:0:-1:
+%*1li:-01:0:-1:
+%1li:-0B1:0:-1:
+%*1li:-0B1:0:-1:
+%1li:-0b1:0:-1:
+%*1li:-0b1:0:-1:
+%1li:-0:0:-1:
+%*1li:-0:0:-1:
+%1li:-0X0:0:-1:
+%*1li:-0X0:0:-1:
+%1li:-0x0:0:-1:
+%*1li:-0x0:0:-1:
+%1li:-00:0:-1:
+%*1li:-00:0:-1:
+%1li:-0B0:0:-1:
+%*1li:-0B0:0:-1:
+%1li:-0b0:0:-1:
+%*1li:-0b0:0:-1:
+%1li:0:1:1:0:
+%*1li:0:0:1:
+%1li:0X0:1:1:0:
+%*1li:0X0:0:1:
+%1li:0x0:1:1:0:
+%*1li:0x0:0:1:
+%1li:00:1:1:0:
+%*1li:00:0:1:
+%1li:0B0:1:1:0:
+%*1li:0B0:0:1:
+%1li:0b0:1:1:0:
+%*1li:0b0:0:1:
+%1li:1:1:1:1:
+%*1li:1:0:1:
+%1li:0X1:1:1:0:
+%*1li:0X1:0:1:
+%1li:0x1:1:1:0:
+%*1li:0x1:0:1:
+%1li:01:1:1:0:
+%*1li:01:0:1:
+%1li:0B1:1:1:0:
+%*1li:0B1:0:1:
+%1li:0b1:1:1:0:
+%*1li:0b1:0:1:
+%1li:42:1:1:4:
+%*1li:42:0:1:
+%1li:0X2a:1:1:0:
+%*1li:0X2a:0:1:
+%1li:0x2A:1:1:0:
+%*1li:0x2A:0:1:
+%1li:052:1:1:0:
+%*1li:052:0:1:
+%1li:0B101010:1:1:0:
+%*1li:0B101010:0:1:
+%1li:0b101010:1:1:0:
+%*1li:0b101010:0:1:
+%1li:9223372036854775807:1:1:9:
+%*1li:9223372036854775807:0:1:
+%1li:0X7fffffffffffffff:1:1:0:
+%*1li:0X7fffffffffffffff:0:1:
+%1li:0x7FFFFFFFFFFFFFFF:1:1:0:
+%*1li:0x7FFFFFFFFFFFFFFF:0:1:
+%1li:0777777777777777777777:1:1:0:
+%*1li:0777777777777777777777:0:1:
+%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0:
+%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1:
+%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0:
+%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1:
+%1li:9223372036854775808:1:1:9:
+%*1li:9223372036854775808:0:1:
+%1li:0X8000000000000000:1:1:0:
+%*1li:0X8000000000000000:0:1:
+%1li:0x8000000000000000:1:1:0:
+%*1li:0x8000000000000000:0:1:
+%1li:01000000000000000000000:1:1:0:
+%*1li:01000000000000000000000:0:1:
+%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0:
+%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1:
+%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0:
+%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1:
+%1li:9223372036897200049:1:1:9:
+%*1li:9223372036897200049:0:1:
+%1li:0X80000000028757b1:1:1:0:
+%*1li:0X80000000028757b1:0:1:
+%1li:0x80000000028757B1:1:1:0:
+%*1li:0x80000000028757B1:0:1:
+%1li:01000000000000241653661:1:1:0:
+%*1li:01000000000000241653661:0:1:
+%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0:
+%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1:
+%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0:
+%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1:
+%1li:+0:0:-1:
+%*1li:+0:0:-1:
+%1li:+0X0:0:-1:
+%*1li:+0X0:0:-1:
+%1li:+0x0:0:-1:
+%*1li:+0x0:0:-1:
+%1li:+00:0:-1:
+%*1li:+00:0:-1:
+%1li:+0B0:0:-1:
+%*1li:+0B0:0:-1:
+%1li:+0b0:0:-1:
+%*1li:+0b0:0:-1:
+%1li:+1:0:-1:
+%*1li:+1:0:-1:
+%1li:+0X1:0:-1:
+%*1li:+0X1:0:-1:
+%1li:+0x1:0:-1:
+%*1li:+0x1:0:-1:
+%1li:+01:0:-1:
+%*1li:+01:0:-1:
+%1li:+0B1:0:-1:
+%*1li:+0B1:0:-1:
+%1li:+0b1:0:-1:
+%*1li:+0b1:0:-1:
+%1li:+42:0:-1:
+%*1li:+42:0:-1:
+%1li:+0X2a:0:-1:
+%*1li:+0X2a:0:-1:
+%1li:+0x2A:0:-1:
+%*1li:+0x2A:0:-1:
+%1li:+052:0:-1:
+%*1li:+052:0:-1:
+%1li:+0B101010:0:-1:
+%*1li:+0B101010:0:-1:
+%1li:+0b101010:0:-1:
+%*1li:+0b101010:0:-1:
+%1li:+9223372036854775807:0:-1:
+%*1li:+9223372036854775807:0:-1:
+%1li:+0X7fffffffffffffff:0:-1:
+%*1li:+0X7fffffffffffffff:0:-1:
+%1li:+0x7FFFFFFFFFFFFFFF:0:-1:
+%*1li:+0x7FFFFFFFFFFFFFFF:0:-1:
+%1li:+0777777777777777777777:0:-1:
+%*1li:+0777777777777777777777:0:-1:
+%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%1li:+9223372036854775808:0:-1:
+%*1li:+9223372036854775808:0:-1:
+%1li:+0X8000000000000000:0:-1:
+%*1li:+0X8000000000000000:0:-1:
+%1li:+0x8000000000000000:0:-1:
+%*1li:+0x8000000000000000:0:-1:
+%1li:+01000000000000000000000:0:-1:
+%*1li:+01000000000000000000000:0:-1:
+%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1li:+9223372036897200049:0:-1:
+%*1li:+9223372036897200049:0:-1:
+%1li:+0X80000000028757b1:0:-1:
+%*1li:+0X80000000028757b1:0:-1:
+%1li:+0x80000000028757B1:0:-1:
+%*1li:+0x80000000028757B1:0:-1:
+%1li:+01000000000000241653661:0:-1:
+%*1li:+01000000000000241653661:0:-1:
+%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2li::0:-1:
+%*2li::0:-1:
+%2li:-9223372036867121486:1:2:-9:
+%*2li:-9223372036867121486:0:2:
+%2li:-0X8000000000bc614e:1:2:0:
+%*2li:-0X8000000000bc614e:0:2:
+%2li:-0x8000000000BC614E:1:2:0:
+%*2li:-0x8000000000BC614E:0:2:
+%2li:-01000000000000057060516:1:2:0:
+%*2li:-01000000000000057060516:0:2:
+%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0:
+%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2:
+%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0:
+%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2:
+%2li:-9223372036854775809:1:2:-9:
+%*2li:-9223372036854775809:0:2:
+%2li:-0X8000000000000001:1:2:0:
+%*2li:-0X8000000000000001:0:2:
+%2li:-0x8000000000000001:1:2:0:
+%*2li:-0x8000000000000001:0:2:
+%2li:-01000000000000000000001:1:2:0:
+%*2li:-01000000000000000000001:0:2:
+%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0:
+%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2:
+%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0:
+%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2:
+%2li:-9223372036854775808:1:2:-9:
+%*2li:-9223372036854775808:0:2:
+%2li:-0X8000000000000000:1:2:0:
+%*2li:-0X8000000000000000:0:2:
+%2li:-0x8000000000000000:1:2:0:
+%*2li:-0x8000000000000000:0:2:
+%2li:-01000000000000000000000:1:2:0:
+%*2li:-01000000000000000000000:0:2:
+%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2li:-123:1:2:-1:
+%*2li:-123:0:2:
+%2li:-0X7b:1:2:0:
+%*2li:-0X7b:0:2:
+%2li:-0x7B:1:2:0:
+%*2li:-0x7B:0:2:
+%2li:-0173:1:2:0:
+%*2li:-0173:0:2:
+%2li:-0B1111011:1:2:0:
+%*2li:-0B1111011:0:2:
+%2li:-0b1111011:1:2:0:
+%*2li:-0b1111011:0:2:
+%2li:-1:1:2:-1:
+%*2li:-1:0:2:
+%2li:-0X1:1:2:0:
+%*2li:-0X1:0:2:
+%2li:-0x1:1:2:0:
+%*2li:-0x1:0:2:
+%2li:-01:1:2:0:
+%*2li:-01:0:2:
+%2li:-0B1:1:2:0:
+%*2li:-0B1:0:2:
+%2li:-0b1:1:2:0:
+%*2li:-0b1:0:2:
+%2li:-0:1:2:0:
+%*2li:-0:0:2:
+%2li:-0X0:1:2:0:
+%*2li:-0X0:0:2:
+%2li:-0x0:1:2:0:
+%*2li:-0x0:0:2:
+%2li:-00:1:2:0:
+%*2li:-00:0:2:
+%2li:-0B0:1:2:0:
+%*2li:-0B0:0:2:
+%2li:-0b0:1:2:0:
+%*2li:-0b0:0:2:
+%2li:0:1:1:0:
+%*2li:0:0:1:
+%2li:0X0:0:-1:
+%*2li:0X0:0:-1:
+%2li:0x0:0:-1:
+%*2li:0x0:0:-1:
+%2li:00:1:2:0:
+%*2li:00:0:2:
+%2li:0B0:0:-1:
+%*2li:0B0:0:-1:
+%2li:0b0:0:-1:
+%*2li:0b0:0:-1:
+%2li:1:1:1:1:
+%*2li:1:0:1:
+%2li:0X1:0:-1:
+%*2li:0X1:0:-1:
+%2li:0x1:0:-1:
+%*2li:0x1:0:-1:
+%2li:01:1:2:1:
+%*2li:01:0:2:
+%2li:0B1:0:-1:
+%*2li:0B1:0:-1:
+%2li:0b1:0:-1:
+%*2li:0b1:0:-1:
+%2li:42:1:2:42:
+%*2li:42:0:2:
+%2li:0X2a:0:-1:
+%*2li:0X2a:0:-1:
+%2li:0x2A:0:-1:
+%*2li:0x2A:0:-1:
+%2li:052:1:2:5:
+%*2li:052:0:2:
+%2li:0B101010:0:-1:
+%*2li:0B101010:0:-1:
+%2li:0b101010:0:-1:
+%*2li:0b101010:0:-1:
+%2li:9223372036854775807:1:2:92:
+%*2li:9223372036854775807:0:2:
+%2li:0X7fffffffffffffff:0:-1:
+%*2li:0X7fffffffffffffff:0:-1:
+%2li:0x7FFFFFFFFFFFFFFF:0:-1:
+%*2li:0x7FFFFFFFFFFFFFFF:0:-1:
+%2li:0777777777777777777777:1:2:7:
+%*2li:0777777777777777777777:0:2:
+%2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2li:9223372036854775808:1:2:92:
+%*2li:9223372036854775808:0:2:
+%2li:0X8000000000000000:0:-1:
+%*2li:0X8000000000000000:0:-1:
+%2li:0x8000000000000000:0:-1:
+%*2li:0x8000000000000000:0:-1:
+%2li:01000000000000000000000:1:2:1:
+%*2li:01000000000000000000000:0:2:
+%2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2li:9223372036897200049:1:2:92:
+%*2li:9223372036897200049:0:2:
+%2li:0X80000000028757b1:0:-1:
+%*2li:0X80000000028757b1:0:-1:
+%2li:0x80000000028757B1:0:-1:
+%*2li:0x80000000028757B1:0:-1:
+%2li:01000000000000241653661:1:2:1:
+%*2li:01000000000000241653661:0:2:
+%2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2li:+0:1:2:0:
+%*2li:+0:0:2:
+%2li:+0X0:1:2:0:
+%*2li:+0X0:0:2:
+%2li:+0x0:1:2:0:
+%*2li:+0x0:0:2:
+%2li:+00:1:2:0:
+%*2li:+00:0:2:
+%2li:+0B0:1:2:0:
+%*2li:+0B0:0:2:
+%2li:+0b0:1:2:0:
+%*2li:+0b0:0:2:
+%2li:+1:1:2:1:
+%*2li:+1:0:2:
+%2li:+0X1:1:2:0:
+%*2li:+0X1:0:2:
+%2li:+0x1:1:2:0:
+%*2li:+0x1:0:2:
+%2li:+01:1:2:0:
+%*2li:+01:0:2:
+%2li:+0B1:1:2:0:
+%*2li:+0B1:0:2:
+%2li:+0b1:1:2:0:
+%*2li:+0b1:0:2:
+%2li:+42:1:2:4:
+%*2li:+42:0:2:
+%2li:+0X2a:1:2:0:
+%*2li:+0X2a:0:2:
+%2li:+0x2A:1:2:0:
+%*2li:+0x2A:0:2:
+%2li:+052:1:2:0:
+%*2li:+052:0:2:
+%2li:+0B101010:1:2:0:
+%*2li:+0B101010:0:2:
+%2li:+0b101010:1:2:0:
+%*2li:+0b101010:0:2:
+%2li:+9223372036854775807:1:2:9:
+%*2li:+9223372036854775807:0:2:
+%2li:+0X7fffffffffffffff:1:2:0:
+%*2li:+0X7fffffffffffffff:0:2:
+%2li:+0x7FFFFFFFFFFFFFFF:1:2:0:
+%*2li:+0x7FFFFFFFFFFFFFFF:0:2:
+%2li:+0777777777777777777777:1:2:0:
+%*2li:+0777777777777777777777:0:2:
+%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0:
+%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0:
+%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2li:+9223372036854775808:1:2:9:
+%*2li:+9223372036854775808:0:2:
+%2li:+0X8000000000000000:1:2:0:
+%*2li:+0X8000000000000000:0:2:
+%2li:+0x8000000000000000:1:2:0:
+%*2li:+0x8000000000000000:0:2:
+%2li:+01000000000000000000000:1:2:0:
+%*2li:+01000000000000000000000:0:2:
+%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2li:+9223372036897200049:1:2:9:
+%*2li:+9223372036897200049:0:2:
+%2li:+0X80000000028757b1:1:2:0:
+%*2li:+0X80000000028757b1:0:2:
+%2li:+0x80000000028757B1:1:2:0:
+%*2li:+0x80000000028757B1:0:2:
+%2li:+01000000000000241653661:1:2:0:
+%*2li:+01000000000000241653661:0:2:
+%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0:
+%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2:
+%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0:
+%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2:
+%15li::0:-1:
+%*15li::0:-1:
+%15li:-9223372036867121486:1:15:-92233720368671:
+%*15li:-9223372036867121486:0:15:
+%15li:-0X8000000000bc614e:1:15:-140737488355516:
+%*15li:-0X8000000000bc614e:0:15:
+%15li:-0x8000000000BC614E:1:15:-140737488355516:
+%*15li:-0x8000000000BC614E:0:15:
+%15li:-01000000000000057060516:1:15:-68719476736:
+%*15li:-01000000000000057060516:0:15:
+%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048:
+%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15:
+%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048:
+%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15:
+%15li:-9223372036854775809:1:15:-92233720368547:
+%*15li:-9223372036854775809:0:15:
+%15li:-0X8000000000000001:1:15:-140737488355328:
+%*15li:-0X8000000000000001:0:15:
+%15li:-0x8000000000000001:1:15:-140737488355328:
+%*15li:-0x8000000000000001:0:15:
+%15li:-01000000000000000000001:1:15:-68719476736:
+%*15li:-01000000000000000000001:0:15:
+%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048:
+%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15:
+%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048:
+%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15:
+%15li:-9223372036854775808:1:15:-92233720368547:
+%*15li:-9223372036854775808:0:15:
+%15li:-0X8000000000000000:1:15:-140737488355328:
+%*15li:-0X8000000000000000:0:15:
+%15li:-0x8000000000000000:1:15:-140737488355328:
+%*15li:-0x8000000000000000:0:15:
+%15li:-01000000000000000000000:1:15:-68719476736:
+%*15li:-01000000000000000000000:0:15:
+%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048:
+%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048:
+%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:-123:1:4:-123:
+%*15li:-123:0:4:
+%15li:-0X7b:1:5:-123:
+%*15li:-0X7b:0:5:
+%15li:-0x7B:1:5:-123:
+%*15li:-0x7B:0:5:
+%15li:-0173:1:5:-123:
+%*15li:-0173:0:5:
+%15li:-0B1111011:1:10:-123:
+%*15li:-0B1111011:0:10:
+%15li:-0b1111011:1:10:-123:
+%*15li:-0b1111011:0:10:
+%15li:-1:1:2:-1:
+%*15li:-1:0:2:
+%15li:-0X1:1:4:-1:
+%*15li:-0X1:0:4:
+%15li:-0x1:1:4:-1:
+%*15li:-0x1:0:4:
+%15li:-01:1:3:-1:
+%*15li:-01:0:3:
+%15li:-0B1:1:4:-1:
+%*15li:-0B1:0:4:
+%15li:-0b1:1:4:-1:
+%*15li:-0b1:0:4:
+%15li:-0:1:2:0:
+%*15li:-0:0:2:
+%15li:-0X0:1:4:0:
+%*15li:-0X0:0:4:
+%15li:-0x0:1:4:0:
+%*15li:-0x0:0:4:
+%15li:-00:1:3:0:
+%*15li:-00:0:3:
+%15li:-0B0:1:4:0:
+%*15li:-0B0:0:4:
+%15li:-0b0:1:4:0:
+%*15li:-0b0:0:4:
+%15li:0:1:1:0:
+%*15li:0:0:1:
+%15li:0X0:1:3:0:
+%*15li:0X0:0:3:
+%15li:0x0:1:3:0:
+%*15li:0x0:0:3:
+%15li:00:1:2:0:
+%*15li:00:0:2:
+%15li:0B0:1:3:0:
+%*15li:0B0:0:3:
+%15li:0b0:1:3:0:
+%*15li:0b0:0:3:
+%15li:1:1:1:1:
+%*15li:1:0:1:
+%15li:0X1:1:3:1:
+%*15li:0X1:0:3:
+%15li:0x1:1:3:1:
+%*15li:0x1:0:3:
+%15li:01:1:2:1:
+%*15li:01:0:2:
+%15li:0B1:1:3:1:
+%*15li:0B1:0:3:
+%15li:0b1:1:3:1:
+%*15li:0b1:0:3:
+%15li:42:1:2:42:
+%*15li:42:0:2:
+%15li:0X2a:1:4:42:
+%*15li:0X2a:0:4:
+%15li:0x2A:1:4:42:
+%*15li:0x2A:0:4:
+%15li:052:1:3:42:
+%*15li:052:0:3:
+%15li:0B101010:1:8:42:
+%*15li:0B101010:0:8:
+%15li:0b101010:1:8:42:
+%*15li:0b101010:0:8:
+%15li:9223372036854775807:1:15:922337203685477:
+%*15li:9223372036854775807:0:15:
+%15li:0X7fffffffffffffff:1:15:2251799813685247:
+%*15li:0X7fffffffffffffff:0:15:
+%15li:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247:
+%*15li:0x7FFFFFFFFFFFFFFF:0:15:
+%15li:0777777777777777777777:1:15:4398046511103:
+%*15li:0777777777777777777777:0:15:
+%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191:
+%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191:
+%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15li:9223372036854775808:1:15:922337203685477:
+%*15li:9223372036854775808:0:15:
+%15li:0X8000000000000000:1:15:2251799813685248:
+%*15li:0X8000000000000000:0:15:
+%15li:0x8000000000000000:1:15:2251799813685248:
+%*15li:0x8000000000000000:0:15:
+%15li:01000000000000000000000:1:15:549755813888:
+%*15li:01000000000000000000000:0:15:
+%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096:
+%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096:
+%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:9223372036897200049:1:15:922337203689720:
+%*15li:9223372036897200049:0:15:
+%15li:0X80000000028757b1:1:15:2251799813695605:
+%*15li:0X80000000028757b1:0:15:
+%15li:0x80000000028757B1:1:15:2251799813695605:
+%*15li:0x80000000028757B1:0:15:
+%15li:01000000000000241653661:1:15:549755813890:
+%*15li:01000000000000241653661:0:15:
+%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096:
+%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096:
+%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15li:+0:1:2:0:
+%*15li:+0:0:2:
+%15li:+0X0:1:4:0:
+%*15li:+0X0:0:4:
+%15li:+0x0:1:4:0:
+%*15li:+0x0:0:4:
+%15li:+00:1:3:0:
+%*15li:+00:0:3:
+%15li:+0B0:1:4:0:
+%*15li:+0B0:0:4:
+%15li:+0b0:1:4:0:
+%*15li:+0b0:0:4:
+%15li:+1:1:2:1:
+%*15li:+1:0:2:
+%15li:+0X1:1:4:1:
+%*15li:+0X1:0:4:
+%15li:+0x1:1:4:1:
+%*15li:+0x1:0:4:
+%15li:+01:1:3:1:
+%*15li:+01:0:3:
+%15li:+0B1:1:4:1:
+%*15li:+0B1:0:4:
+%15li:+0b1:1:4:1:
+%*15li:+0b1:0:4:
+%15li:+42:1:3:42:
+%*15li:+42:0:3:
+%15li:+0X2a:1:5:42:
+%*15li:+0X2a:0:5:
+%15li:+0x2A:1:5:42:
+%*15li:+0x2A:0:5:
+%15li:+052:1:4:42:
+%*15li:+052:0:4:
+%15li:+0B101010:1:9:42:
+%*15li:+0B101010:0:9:
+%15li:+0b101010:1:9:42:
+%*15li:+0b101010:0:9:
+%15li:+9223372036854775807:1:15:92233720368547:
+%*15li:+9223372036854775807:0:15:
+%15li:+0X7fffffffffffffff:1:15:140737488355327:
+%*15li:+0X7fffffffffffffff:0:15:
+%15li:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327:
+%*15li:+0x7FFFFFFFFFFFFFFF:0:15:
+%15li:+0777777777777777777777:1:15:549755813887:
+%*15li:+0777777777777777777777:0:15:
+%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095:
+%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095:
+%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15li:+9223372036854775808:1:15:92233720368547:
+%*15li:+9223372036854775808:0:15:
+%15li:+0X8000000000000000:1:15:140737488355328:
+%*15li:+0X8000000000000000:0:15:
+%15li:+0x8000000000000000:1:15:140737488355328:
+%*15li:+0x8000000000000000:0:15:
+%15li:+01000000000000000000000:1:15:68719476736:
+%*15li:+01000000000000000000000:0:15:
+%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048:
+%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048:
+%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15li:+9223372036897200049:1:15:92233720368972:
+%*15li:+9223372036897200049:0:15:
+%15li:+0X80000000028757b1:1:15:140737488355975:
+%*15li:+0X80000000028757b1:0:15:
+%15li:+0x80000000028757B1:1:15:140737488355975:
+%*15li:+0x80000000028757B1:0:15:
+%15li:+01000000000000241653661:1:15:68719476736:
+%*15li:+01000000000000241653661:0:15:
+%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048:
+%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048:
+%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15:
+%25li::0:-1:
+%*25li::0:-1:
+%25li:-9223372036867121486:1:20:-9223372036854775808:
+%*25li:-9223372036867121486:0:20:
+%25li:-0X8000000000bc614e:1:19:-9223372036854775808:
+%*25li:-0X8000000000bc614e:0:19:
+%25li:-0x8000000000BC614E:1:19:-9223372036854775808:
+%*25li:-0x8000000000BC614E:0:19:
+%25li:-01000000000000057060516:1:24:-9223372036854775808:
+%*25li:-01000000000000057060516:0:24:
+%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152:
+%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25:
+%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152:
+%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25:
+%25li:-9223372036854775809:1:20:-9223372036854775808:
+%*25li:-9223372036854775809:0:20:
+%25li:-0X8000000000000001:1:19:-9223372036854775808:
+%*25li:-0X8000000000000001:0:19:
+%25li:-0x8000000000000001:1:19:-9223372036854775808:
+%*25li:-0x8000000000000001:0:19:
+%25li:-01000000000000000000001:1:24:-9223372036854775808:
+%*25li:-01000000000000000000001:0:24:
+%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152:
+%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25:
+%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152:
+%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25:
+%25li:-9223372036854775808:1:20:-9223372036854775808:
+%*25li:-9223372036854775808:0:20:
+%25li:-0X8000000000000000:1:19:-9223372036854775808:
+%*25li:-0X8000000000000000:0:19:
+%25li:-0x8000000000000000:1:19:-9223372036854775808:
+%*25li:-0x8000000000000000:0:19:
+%25li:-01000000000000000000000:1:24:-9223372036854775808:
+%*25li:-01000000000000000000000:0:24:
+%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152:
+%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152:
+%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:-123:1:4:-123:
+%*25li:-123:0:4:
+%25li:-0X7b:1:5:-123:
+%*25li:-0X7b:0:5:
+%25li:-0x7B:1:5:-123:
+%*25li:-0x7B:0:5:
+%25li:-0173:1:5:-123:
+%*25li:-0173:0:5:
+%25li:-0B1111011:1:10:-123:
+%*25li:-0B1111011:0:10:
+%25li:-0b1111011:1:10:-123:
+%*25li:-0b1111011:0:10:
+%25li:-1:1:2:-1:
+%*25li:-1:0:2:
+%25li:-0X1:1:4:-1:
+%*25li:-0X1:0:4:
+%25li:-0x1:1:4:-1:
+%*25li:-0x1:0:4:
+%25li:-01:1:3:-1:
+%*25li:-01:0:3:
+%25li:-0B1:1:4:-1:
+%*25li:-0B1:0:4:
+%25li:-0b1:1:4:-1:
+%*25li:-0b1:0:4:
+%25li:-0:1:2:0:
+%*25li:-0:0:2:
+%25li:-0X0:1:4:0:
+%*25li:-0X0:0:4:
+%25li:-0x0:1:4:0:
+%*25li:-0x0:0:4:
+%25li:-00:1:3:0:
+%*25li:-00:0:3:
+%25li:-0B0:1:4:0:
+%*25li:-0B0:0:4:
+%25li:-0b0:1:4:0:
+%*25li:-0b0:0:4:
+%25li:0:1:1:0:
+%*25li:0:0:1:
+%25li:0X0:1:3:0:
+%*25li:0X0:0:3:
+%25li:0x0:1:3:0:
+%*25li:0x0:0:3:
+%25li:00:1:2:0:
+%*25li:00:0:2:
+%25li:0B0:1:3:0:
+%*25li:0B0:0:3:
+%25li:0b0:1:3:0:
+%*25li:0b0:0:3:
+%25li:1:1:1:1:
+%*25li:1:0:1:
+%25li:0X1:1:3:1:
+%*25li:0X1:0:3:
+%25li:0x1:1:3:1:
+%*25li:0x1:0:3:
+%25li:01:1:2:1:
+%*25li:01:0:2:
+%25li:0B1:1:3:1:
+%*25li:0B1:0:3:
+%25li:0b1:1:3:1:
+%*25li:0b1:0:3:
+%25li:42:1:2:42:
+%*25li:42:0:2:
+%25li:0X2a:1:4:42:
+%*25li:0X2a:0:4:
+%25li:0x2A:1:4:42:
+%*25li:0x2A:0:4:
+%25li:052:1:3:42:
+%*25li:052:0:3:
+%25li:0B101010:1:8:42:
+%*25li:0B101010:0:8:
+%25li:0b101010:1:8:42:
+%*25li:0b101010:0:8:
+%25li:9223372036854775807:1:19:9223372036854775807:
+%*25li:9223372036854775807:0:19:
+%25li:0X7fffffffffffffff:1:18:9223372036854775807:
+%*25li:0X7fffffffffffffff:0:18:
+%25li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807:
+%*25li:0x7FFFFFFFFFFFFFFF:0:18:
+%25li:0777777777777777777777:1:22:9223372036854775807:
+%*25li:0777777777777777777777:0:22:
+%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607:
+%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607:
+%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25li:9223372036854775808:1:19:9223372036854775807:
+%*25li:9223372036854775808:0:19:
+%25li:0X8000000000000000:1:18:9223372036854775807:
+%*25li:0X8000000000000000:0:18:
+%25li:0x8000000000000000:1:18:9223372036854775807:
+%*25li:0x8000000000000000:0:18:
+%25li:01000000000000000000000:1:23:9223372036854775807:
+%*25li:01000000000000000000000:0:23:
+%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304:
+%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304:
+%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:9223372036897200049:1:19:9223372036854775807:
+%*25li:9223372036897200049:0:19:
+%25li:0X80000000028757b1:1:18:9223372036854775807:
+%*25li:0X80000000028757b1:0:18:
+%25li:0x80000000028757B1:1:18:9223372036854775807:
+%*25li:0x80000000028757B1:0:18:
+%25li:01000000000000241653661:1:23:9223372036854775807:
+%*25li:01000000000000241653661:0:23:
+%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304:
+%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304:
+%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25li:+0:1:2:0:
+%*25li:+0:0:2:
+%25li:+0X0:1:4:0:
+%*25li:+0X0:0:4:
+%25li:+0x0:1:4:0:
+%*25li:+0x0:0:4:
+%25li:+00:1:3:0:
+%*25li:+00:0:3:
+%25li:+0B0:1:4:0:
+%*25li:+0B0:0:4:
+%25li:+0b0:1:4:0:
+%*25li:+0b0:0:4:
+%25li:+1:1:2:1:
+%*25li:+1:0:2:
+%25li:+0X1:1:4:1:
+%*25li:+0X1:0:4:
+%25li:+0x1:1:4:1:
+%*25li:+0x1:0:4:
+%25li:+01:1:3:1:
+%*25li:+01:0:3:
+%25li:+0B1:1:4:1:
+%*25li:+0B1:0:4:
+%25li:+0b1:1:4:1:
+%*25li:+0b1:0:4:
+%25li:+42:1:3:42:
+%*25li:+42:0:3:
+%25li:+0X2a:1:5:42:
+%*25li:+0X2a:0:5:
+%25li:+0x2A:1:5:42:
+%*25li:+0x2A:0:5:
+%25li:+052:1:4:42:
+%*25li:+052:0:4:
+%25li:+0B101010:1:9:42:
+%*25li:+0B101010:0:9:
+%25li:+0b101010:1:9:42:
+%*25li:+0b101010:0:9:
+%25li:+9223372036854775807:1:20:9223372036854775807:
+%*25li:+9223372036854775807:0:20:
+%25li:+0X7fffffffffffffff:1:19:9223372036854775807:
+%*25li:+0X7fffffffffffffff:0:19:
+%25li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807:
+%*25li:+0x7FFFFFFFFFFFFFFF:0:19:
+%25li:+0777777777777777777777:1:23:9223372036854775807:
+%*25li:+0777777777777777777777:0:23:
+%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303:
+%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303:
+%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25li:+9223372036854775808:1:20:9223372036854775807:
+%*25li:+9223372036854775808:0:20:
+%25li:+0X8000000000000000:1:19:9223372036854775807:
+%*25li:+0X8000000000000000:0:19:
+%25li:+0x8000000000000000:1:19:9223372036854775807:
+%*25li:+0x8000000000000000:0:19:
+%25li:+01000000000000000000000:1:24:9223372036854775807:
+%*25li:+01000000000000000000000:0:24:
+%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152:
+%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152:
+%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25li:+9223372036897200049:1:20:9223372036854775807:
+%*25li:+9223372036897200049:0:20:
+%25li:+0X80000000028757b1:1:19:9223372036854775807:
+%*25li:+0X80000000028757b1:0:19:
+%25li:+0x80000000028757B1:1:19:9223372036854775807:
+%*25li:+0x80000000028757B1:0:19:
+%25li:+01000000000000241653661:1:24:9223372036854775807:
+%*25li:+01000000000000241653661:0:24:
+%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152:
+%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152:
+%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25:
+%2li: :0:-1:
+%*2li: :0:-1:
+%2li: -9223372036867121486:1:3:-9:
+%*2li: -9223372036867121486:0:3:
+%2li: -0X8000000000bc614e:1:3:0:
+%*2li: -0X8000000000bc614e:0:3:
+%2li: -0x8000000000BC614E:1:3:0:
+%*2li: -0x8000000000BC614E:0:3:
+%2li: -01000000000000057060516:1:3:0:
+%*2li: -01000000000000057060516:0:3:
+%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0:
+%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3:
+%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0:
+%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3:
+%2li: -9223372036854775809:1:3:-9:
+%*2li: -9223372036854775809:0:3:
+%2li: -0X8000000000000001:1:3:0:
+%*2li: -0X8000000000000001:0:3:
+%2li: -0x8000000000000001:1:3:0:
+%*2li: -0x8000000000000001:0:3:
+%2li: -01000000000000000000001:1:3:0:
+%*2li: -01000000000000000000001:0:3:
+%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0:
+%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3:
+%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0:
+%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3:
+%2li: -9223372036854775808:1:3:-9:
+%*2li: -9223372036854775808:0:3:
+%2li: -0X8000000000000000:1:3:0:
+%*2li: -0X8000000000000000:0:3:
+%2li: -0x8000000000000000:1:3:0:
+%*2li: -0x8000000000000000:0:3:
+%2li: -01000000000000000000000:1:3:0:
+%*2li: -01000000000000000000000:0:3:
+%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2li: -123:1:3:-1:
+%*2li: -123:0:3:
+%2li: -0X7b:1:3:0:
+%*2li: -0X7b:0:3:
+%2li: -0x7B:1:3:0:
+%*2li: -0x7B:0:3:
+%2li: -0173:1:3:0:
+%*2li: -0173:0:3:
+%2li: -0B1111011:1:3:0:
+%*2li: -0B1111011:0:3:
+%2li: -0b1111011:1:3:0:
+%*2li: -0b1111011:0:3:
+%2li: -1:1:3:-1:
+%*2li: -1:0:3:
+%2li: -0X1:1:3:0:
+%*2li: -0X1:0:3:
+%2li: -0x1:1:3:0:
+%*2li: -0x1:0:3:
+%2li: -01:1:3:0:
+%*2li: -01:0:3:
+%2li: -0B1:1:3:0:
+%*2li: -0B1:0:3:
+%2li: -0b1:1:3:0:
+%*2li: -0b1:0:3:
+%2li: -0:1:3:0:
+%*2li: -0:0:3:
+%2li: -0X0:1:3:0:
+%*2li: -0X0:0:3:
+%2li: -0x0:1:3:0:
+%*2li: -0x0:0:3:
+%2li: -00:1:3:0:
+%*2li: -00:0:3:
+%2li: -0B0:1:3:0:
+%*2li: -0B0:0:3:
+%2li: -0b0:1:3:0:
+%*2li: -0b0:0:3:
+%2li: 0:1:2:0:
+%*2li: 0:0:2:
+%2li: 0X0:0:-1:
+%*2li: 0X0:0:-1:
+%2li: 0x0:0:-1:
+%*2li: 0x0:0:-1:
+%2li: 00:1:3:0:
+%*2li: 00:0:3:
+%2li: 0B0:0:-1:
+%*2li: 0B0:0:-1:
+%2li: 0b0:0:-1:
+%*2li: 0b0:0:-1:
+%2li: 1:1:2:1:
+%*2li: 1:0:2:
+%2li: 0X1:0:-1:
+%*2li: 0X1:0:-1:
+%2li: 0x1:0:-1:
+%*2li: 0x1:0:-1:
+%2li: 01:1:3:1:
+%*2li: 01:0:3:
+%2li: 0B1:0:-1:
+%*2li: 0B1:0:-1:
+%2li: 0b1:0:-1:
+%*2li: 0b1:0:-1:
+%2li: 42:1:3:42:
+%*2li: 42:0:3:
+%2li: 0X2a:0:-1:
+%*2li: 0X2a:0:-1:
+%2li: 0x2A:0:-1:
+%*2li: 0x2A:0:-1:
+%2li: 052:1:3:5:
+%*2li: 052:0:3:
+%2li: 0B101010:0:-1:
+%*2li: 0B101010:0:-1:
+%2li: 0b101010:0:-1:
+%*2li: 0b101010:0:-1:
+%2li: 9223372036854775807:1:3:92:
+%*2li: 9223372036854775807:0:3:
+%2li: 0X7fffffffffffffff:0:-1:
+%*2li: 0X7fffffffffffffff:0:-1:
+%2li: 0x7FFFFFFFFFFFFFFF:0:-1:
+%*2li: 0x7FFFFFFFFFFFFFFF:0:-1:
+%2li: 0777777777777777777777:1:3:7:
+%*2li: 0777777777777777777777:0:3:
+%2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2li: 9223372036854775808:1:3:92:
+%*2li: 9223372036854775808:0:3:
+%2li: 0X8000000000000000:0:-1:
+%*2li: 0X8000000000000000:0:-1:
+%2li: 0x8000000000000000:0:-1:
+%*2li: 0x8000000000000000:0:-1:
+%2li: 01000000000000000000000:1:3:1:
+%*2li: 01000000000000000000000:0:3:
+%2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2li: 9223372036897200049:1:3:92:
+%*2li: 9223372036897200049:0:3:
+%2li: 0X80000000028757b1:0:-1:
+%*2li: 0X80000000028757b1:0:-1:
+%2li: 0x80000000028757B1:0:-1:
+%*2li: 0x80000000028757B1:0:-1:
+%2li: 01000000000000241653661:1:3:1:
+%*2li: 01000000000000241653661:0:3:
+%2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2li: +0:1:3:0:
+%*2li: +0:0:3:
+%2li: +0X0:1:3:0:
+%*2li: +0X0:0:3:
+%2li: +0x0:1:3:0:
+%*2li: +0x0:0:3:
+%2li: +00:1:3:0:
+%*2li: +00:0:3:
+%2li: +0B0:1:3:0:
+%*2li: +0B0:0:3:
+%2li: +0b0:1:3:0:
+%*2li: +0b0:0:3:
+%2li: +1:1:3:1:
+%*2li: +1:0:3:
+%2li: +0X1:1:3:0:
+%*2li: +0X1:0:3:
+%2li: +0x1:1:3:0:
+%*2li: +0x1:0:3:
+%2li: +01:1:3:0:
+%*2li: +01:0:3:
+%2li: +0B1:1:3:0:
+%*2li: +0B1:0:3:
+%2li: +0b1:1:3:0:
+%*2li: +0b1:0:3:
+%2li: +42:1:3:4:
+%*2li: +42:0:3:
+%2li: +0X2a:1:3:0:
+%*2li: +0X2a:0:3:
+%2li: +0x2A:1:3:0:
+%*2li: +0x2A:0:3:
+%2li: +052:1:3:0:
+%*2li: +052:0:3:
+%2li: +0B101010:1:3:0:
+%*2li: +0B101010:0:3:
+%2li: +0b101010:1:3:0:
+%*2li: +0b101010:0:3:
+%2li: +9223372036854775807:1:3:9:
+%*2li: +9223372036854775807:0:3:
+%2li: +0X7fffffffffffffff:1:3:0:
+%*2li: +0X7fffffffffffffff:0:3:
+%2li: +0x7FFFFFFFFFFFFFFF:1:3:0:
+%*2li: +0x7FFFFFFFFFFFFFFF:0:3:
+%2li: +0777777777777777777777:1:3:0:
+%*2li: +0777777777777777777777:0:3:
+%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0:
+%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0:
+%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2li: +9223372036854775808:1:3:9:
+%*2li: +9223372036854775808:0:3:
+%2li: +0X8000000000000000:1:3:0:
+%*2li: +0X8000000000000000:0:3:
+%2li: +0x8000000000000000:1:3:0:
+%*2li: +0x8000000000000000:0:3:
+%2li: +01000000000000000000000:1:3:0:
+%*2li: +01000000000000000000000:0:3:
+%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2li: +9223372036897200049:1:3:9:
+%*2li: +9223372036897200049:0:3:
+%2li: +0X80000000028757b1:1:3:0:
+%*2li: +0X80000000028757b1:0:3:
+%2li: +0x80000000028757B1:1:3:0:
+%*2li: +0x80000000028757B1:0:3:
+%2li: +01000000000000241653661:1:3:0:
+%*2li: +01000000000000241653661:0:3:
+%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0:
+%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3:
+%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0:
+%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3:
+%25li: :0:-1:
+%*25li: :0:-1:
+%25li: -9223372036867121486:1:21:-9223372036854775808:
+%*25li: -9223372036867121486:0:21:
+%25li: -0X8000000000bc614e:1:20:-9223372036854775808:
+%*25li: -0X8000000000bc614e:0:20:
+%25li: -0x8000000000BC614E:1:20:-9223372036854775808:
+%*25li: -0x8000000000BC614E:0:20:
+%25li: -01000000000000057060516:1:25:-9223372036854775808:
+%*25li: -01000000000000057060516:0:25:
+%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152:
+%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26:
+%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152:
+%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26:
+%25li: -9223372036854775809:1:21:-9223372036854775808:
+%*25li: -9223372036854775809:0:21:
+%25li: -0X8000000000000001:1:20:-9223372036854775808:
+%*25li: -0X8000000000000001:0:20:
+%25li: -0x8000000000000001:1:20:-9223372036854775808:
+%*25li: -0x8000000000000001:0:20:
+%25li: -01000000000000000000001:1:25:-9223372036854775808:
+%*25li: -01000000000000000000001:0:25:
+%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152:
+%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26:
+%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152:
+%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26:
+%25li: -9223372036854775808:1:21:-9223372036854775808:
+%*25li: -9223372036854775808:0:21:
+%25li: -0X8000000000000000:1:20:-9223372036854775808:
+%*25li: -0X8000000000000000:0:20:
+%25li: -0x8000000000000000:1:20:-9223372036854775808:
+%*25li: -0x8000000000000000:0:20:
+%25li: -01000000000000000000000:1:25:-9223372036854775808:
+%*25li: -01000000000000000000000:0:25:
+%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152:
+%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152:
+%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: -123:1:5:-123:
+%*25li: -123:0:5:
+%25li: -0X7b:1:6:-123:
+%*25li: -0X7b:0:6:
+%25li: -0x7B:1:6:-123:
+%*25li: -0x7B:0:6:
+%25li: -0173:1:6:-123:
+%*25li: -0173:0:6:
+%25li: -0B1111011:1:11:-123:
+%*25li: -0B1111011:0:11:
+%25li: -0b1111011:1:11:-123:
+%*25li: -0b1111011:0:11:
+%25li: -1:1:3:-1:
+%*25li: -1:0:3:
+%25li: -0X1:1:5:-1:
+%*25li: -0X1:0:5:
+%25li: -0x1:1:5:-1:
+%*25li: -0x1:0:5:
+%25li: -01:1:4:-1:
+%*25li: -01:0:4:
+%25li: -0B1:1:5:-1:
+%*25li: -0B1:0:5:
+%25li: -0b1:1:5:-1:
+%*25li: -0b1:0:5:
+%25li: -0:1:3:0:
+%*25li: -0:0:3:
+%25li: -0X0:1:5:0:
+%*25li: -0X0:0:5:
+%25li: -0x0:1:5:0:
+%*25li: -0x0:0:5:
+%25li: -00:1:4:0:
+%*25li: -00:0:4:
+%25li: -0B0:1:5:0:
+%*25li: -0B0:0:5:
+%25li: -0b0:1:5:0:
+%*25li: -0b0:0:5:
+%25li: 0:1:2:0:
+%*25li: 0:0:2:
+%25li: 0X0:1:4:0:
+%*25li: 0X0:0:4:
+%25li: 0x0:1:4:0:
+%*25li: 0x0:0:4:
+%25li: 00:1:3:0:
+%*25li: 00:0:3:
+%25li: 0B0:1:4:0:
+%*25li: 0B0:0:4:
+%25li: 0b0:1:4:0:
+%*25li: 0b0:0:4:
+%25li: 1:1:2:1:
+%*25li: 1:0:2:
+%25li: 0X1:1:4:1:
+%*25li: 0X1:0:4:
+%25li: 0x1:1:4:1:
+%*25li: 0x1:0:4:
+%25li: 01:1:3:1:
+%*25li: 01:0:3:
+%25li: 0B1:1:4:1:
+%*25li: 0B1:0:4:
+%25li: 0b1:1:4:1:
+%*25li: 0b1:0:4:
+%25li: 42:1:3:42:
+%*25li: 42:0:3:
+%25li: 0X2a:1:5:42:
+%*25li: 0X2a:0:5:
+%25li: 0x2A:1:5:42:
+%*25li: 0x2A:0:5:
+%25li: 052:1:4:42:
+%*25li: 052:0:4:
+%25li: 0B101010:1:9:42:
+%*25li: 0B101010:0:9:
+%25li: 0b101010:1:9:42:
+%*25li: 0b101010:0:9:
+%25li: 9223372036854775807:1:20:9223372036854775807:
+%*25li: 9223372036854775807:0:20:
+%25li: 0X7fffffffffffffff:1:19:9223372036854775807:
+%*25li: 0X7fffffffffffffff:0:19:
+%25li: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807:
+%*25li: 0x7FFFFFFFFFFFFFFF:0:19:
+%25li: 0777777777777777777777:1:23:9223372036854775807:
+%*25li: 0777777777777777777777:0:23:
+%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607:
+%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607:
+%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25li: 9223372036854775808:1:20:9223372036854775807:
+%*25li: 9223372036854775808:0:20:
+%25li: 0X8000000000000000:1:19:9223372036854775807:
+%*25li: 0X8000000000000000:0:19:
+%25li: 0x8000000000000000:1:19:9223372036854775807:
+%*25li: 0x8000000000000000:0:19:
+%25li: 01000000000000000000000:1:24:9223372036854775807:
+%*25li: 01000000000000000000000:0:24:
+%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304:
+%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304:
+%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: 9223372036897200049:1:20:9223372036854775807:
+%*25li: 9223372036897200049:0:20:
+%25li: 0X80000000028757b1:1:19:9223372036854775807:
+%*25li: 0X80000000028757b1:0:19:
+%25li: 0x80000000028757B1:1:19:9223372036854775807:
+%*25li: 0x80000000028757B1:0:19:
+%25li: 01000000000000241653661:1:24:9223372036854775807:
+%*25li: 01000000000000241653661:0:24:
+%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304:
+%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304:
+%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25li: +0:1:3:0:
+%*25li: +0:0:3:
+%25li: +0X0:1:5:0:
+%*25li: +0X0:0:5:
+%25li: +0x0:1:5:0:
+%*25li: +0x0:0:5:
+%25li: +00:1:4:0:
+%*25li: +00:0:4:
+%25li: +0B0:1:5:0:
+%*25li: +0B0:0:5:
+%25li: +0b0:1:5:0:
+%*25li: +0b0:0:5:
+%25li: +1:1:3:1:
+%*25li: +1:0:3:
+%25li: +0X1:1:5:1:
+%*25li: +0X1:0:5:
+%25li: +0x1:1:5:1:
+%*25li: +0x1:0:5:
+%25li: +01:1:4:1:
+%*25li: +01:0:4:
+%25li: +0B1:1:5:1:
+%*25li: +0B1:0:5:
+%25li: +0b1:1:5:1:
+%*25li: +0b1:0:5:
+%25li: +42:1:4:42:
+%*25li: +42:0:4:
+%25li: +0X2a:1:6:42:
+%*25li: +0X2a:0:6:
+%25li: +0x2A:1:6:42:
+%*25li: +0x2A:0:6:
+%25li: +052:1:5:42:
+%*25li: +052:0:5:
+%25li: +0B101010:1:10:42:
+%*25li: +0B101010:0:10:
+%25li: +0b101010:1:10:42:
+%*25li: +0b101010:0:10:
+%25li: +9223372036854775807:1:21:9223372036854775807:
+%*25li: +9223372036854775807:0:21:
+%25li: +0X7fffffffffffffff:1:20:9223372036854775807:
+%*25li: +0X7fffffffffffffff:0:20:
+%25li: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807:
+%*25li: +0x7FFFFFFFFFFFFFFF:0:20:
+%25li: +0777777777777777777777:1:24:9223372036854775807:
+%*25li: +0777777777777777777777:0:24:
+%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303:
+%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303:
+%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25li: +9223372036854775808:1:21:9223372036854775807:
+%*25li: +9223372036854775808:0:21:
+%25li: +0X8000000000000000:1:20:9223372036854775807:
+%*25li: +0X8000000000000000:0:20:
+%25li: +0x8000000000000000:1:20:9223372036854775807:
+%*25li: +0x8000000000000000:0:20:
+%25li: +01000000000000000000000:1:25:9223372036854775807:
+%*25li: +01000000000000000000000:0:25:
+%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152:
+%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152:
+%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25li: +9223372036897200049:1:21:9223372036854775807:
+%*25li: +9223372036897200049:0:21:
+%25li: +0X80000000028757b1:1:20:9223372036854775807:
+%*25li: +0X80000000028757b1:0:20:
+%25li: +0x80000000028757B1:1:20:9223372036854775807:
+%*25li: +0x80000000028757B1:0:20:
+%25li: +01000000000000241653661:1:25:9223372036854775807:
+%*25li: +01000000000000241653661:0:25:
+%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152:
+%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152:
+%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input
new file mode 100644
index 0000000..75636f0
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input
@@ -0,0 +1,644 @@
+%b::0:-1:
+%*b::0:-1:
+%b:-1111011:1:8:4294967173:
+%*b:-1111011:0:8:
+%b:-0B1111011:1:10:4294967173:
+%*b:-0B1111011:0:10:
+%b:-0b1111011:1:10:4294967173:
+%*b:-0b1111011:0:10:
+%b:-1:1:2:4294967295:
+%*b:-1:0:2:
+%b:-0B1:1:4:4294967295:
+%*b:-0B1:0:4:
+%b:-0b1:1:4:4294967295:
+%*b:-0b1:0:4:
+%b:-0:1:2:0:
+%*b:-0:0:2:
+%b:-0B0:1:4:0:
+%*b:-0B0:0:4:
+%b:-0b0:1:4:0:
+%*b:-0b0:0:4:
+%b:0:1:1:0:
+%*b:0:0:1:
+%b:0B0:1:3:0:
+%*b:0B0:0:3:
+%b:0b0:1:3:0:
+%*b:0b0:0:3:
+%b:1:1:1:1:
+%*b:1:0:1:
+%b:0B1:1:3:1:
+%*b:0B1:0:3:
+%b:0b1:1:3:1:
+%*b:0b1:0:3:
+%b:101010:1:6:42:
+%*b:101010:0:6:
+%b:0B101010:1:8:42:
+%*b:0B101010:0:8:
+%b:0b101010:1:8:42:
+%*b:0b101010:0:8:
+%b:11111111111111111111111111111111:1:32:4294967295:
+%*b:11111111111111111111111111111111:0:32:
+%b:0B11111111111111111111111111111111:1:34:4294967295:
+%*b:0B11111111111111111111111111111111:0:34:
+%b:0b11111111111111111111111111111111:1:34:4294967295:
+%*b:0b11111111111111111111111111111111:0:34:
+%b:100000000000000000000000000000000:1:33:0:
+%*b:100000000000000000000000000000000:0:33:
+%b:0B100000000000000000000000000000000:1:35:0:
+%*b:0B100000000000000000000000000000000:0:35:
+%b:0b100000000000000000000000000000000:1:35:0:
+%*b:0b100000000000000000000000000000000:0:35:
+%b:100000000000000000001000010010001:1:33:4241:
+%*b:100000000000000000001000010010001:0:33:
+%b:0B100000000000000000001000010010001:1:35:4241:
+%*b:0B100000000000000000001000010010001:0:35:
+%b:0b100000000000000000001000010010001:1:35:4241:
+%*b:0b100000000000000000001000010010001:0:35:
+%b:+0:1:2:0:
+%*b:+0:0:2:
+%b:+0B0:1:4:0:
+%*b:+0B0:0:4:
+%b:+0b0:1:4:0:
+%*b:+0b0:0:4:
+%b:+1:1:2:1:
+%*b:+1:0:2:
+%b:+0B1:1:4:1:
+%*b:+0B1:0:4:
+%b:+0b1:1:4:1:
+%*b:+0b1:0:4:
+%b:+101010:1:7:42:
+%*b:+101010:0:7:
+%b:+0B101010:1:9:42:
+%*b:+0B101010:0:9:
+%b:+0b101010:1:9:42:
+%*b:+0b101010:0:9:
+%b:+11111111111111111111111111111111:1:33:4294967295:
+%*b:+11111111111111111111111111111111:0:33:
+%b:+0B11111111111111111111111111111111:1:35:4294967295:
+%*b:+0B11111111111111111111111111111111:0:35:
+%b:+0b11111111111111111111111111111111:1:35:4294967295:
+%*b:+0b11111111111111111111111111111111:0:35:
+%b:+100000000000000000000000000000000:1:34:0:
+%*b:+100000000000000000000000000000000:0:34:
+%b:+0B100000000000000000000000000000000:1:36:0:
+%*b:+0B100000000000000000000000000000000:0:36:
+%b:+0b100000000000000000000000000000000:1:36:0:
+%*b:+0b100000000000000000000000000000000:0:36:
+%b:+100000000000000000001000010010001:1:34:4241:
+%*b:+100000000000000000001000010010001:0:34:
+%b:+0B100000000000000000001000010010001:1:36:4241:
+%*b:+0B100000000000000000001000010010001:0:36:
+%b:+0b100000000000000000001000010010001:1:36:4241:
+%*b:+0b100000000000000000001000010010001:0:36:
+%1b::0:-1:
+%*1b::0:-1:
+%1b:-1111011:0:-1:
+%*1b:-1111011:0:-1:
+%1b:-0B1111011:0:-1:
+%*1b:-0B1111011:0:-1:
+%1b:-0b1111011:0:-1:
+%*1b:-0b1111011:0:-1:
+%1b:-1:0:-1:
+%*1b:-1:0:-1:
+%1b:-0B1:0:-1:
+%*1b:-0B1:0:-1:
+%1b:-0b1:0:-1:
+%*1b:-0b1:0:-1:
+%1b:-0:0:-1:
+%*1b:-0:0:-1:
+%1b:-0B0:0:-1:
+%*1b:-0B0:0:-1:
+%1b:-0b0:0:-1:
+%*1b:-0b0:0:-1:
+%1b:0:1:1:0:
+%*1b:0:0:1:
+%1b:0B0:1:1:0:
+%*1b:0B0:0:1:
+%1b:0b0:1:1:0:
+%*1b:0b0:0:1:
+%1b:1:1:1:1:
+%*1b:1:0:1:
+%1b:0B1:1:1:0:
+%*1b:0B1:0:1:
+%1b:0b1:1:1:0:
+%*1b:0b1:0:1:
+%1b:101010:1:1:1:
+%*1b:101010:0:1:
+%1b:0B101010:1:1:0:
+%*1b:0B101010:0:1:
+%1b:0b101010:1:1:0:
+%*1b:0b101010:0:1:
+%1b:11111111111111111111111111111111:1:1:1:
+%*1b:11111111111111111111111111111111:0:1:
+%1b:0B11111111111111111111111111111111:1:1:0:
+%*1b:0B11111111111111111111111111111111:0:1:
+%1b:0b11111111111111111111111111111111:1:1:0:
+%*1b:0b11111111111111111111111111111111:0:1:
+%1b:100000000000000000000000000000000:1:1:1:
+%*1b:100000000000000000000000000000000:0:1:
+%1b:0B100000000000000000000000000000000:1:1:0:
+%*1b:0B100000000000000000000000000000000:0:1:
+%1b:0b100000000000000000000000000000000:1:1:0:
+%*1b:0b100000000000000000000000000000000:0:1:
+%1b:100000000000000000001000010010001:1:1:1:
+%*1b:100000000000000000001000010010001:0:1:
+%1b:0B100000000000000000001000010010001:1:1:0:
+%*1b:0B100000000000000000001000010010001:0:1:
+%1b:0b100000000000000000001000010010001:1:1:0:
+%*1b:0b100000000000000000001000010010001:0:1:
+%1b:+0:0:-1:
+%*1b:+0:0:-1:
+%1b:+0B0:0:-1:
+%*1b:+0B0:0:-1:
+%1b:+0b0:0:-1:
+%*1b:+0b0:0:-1:
+%1b:+1:0:-1:
+%*1b:+1:0:-1:
+%1b:+0B1:0:-1:
+%*1b:+0B1:0:-1:
+%1b:+0b1:0:-1:
+%*1b:+0b1:0:-1:
+%1b:+101010:0:-1:
+%*1b:+101010:0:-1:
+%1b:+0B101010:0:-1:
+%*1b:+0B101010:0:-1:
+%1b:+0b101010:0:-1:
+%*1b:+0b101010:0:-1:
+%1b:+11111111111111111111111111111111:0:-1:
+%*1b:+11111111111111111111111111111111:0:-1:
+%1b:+0B11111111111111111111111111111111:0:-1:
+%*1b:+0B11111111111111111111111111111111:0:-1:
+%1b:+0b11111111111111111111111111111111:0:-1:
+%*1b:+0b11111111111111111111111111111111:0:-1:
+%1b:+100000000000000000000000000000000:0:-1:
+%*1b:+100000000000000000000000000000000:0:-1:
+%1b:+0B100000000000000000000000000000000:0:-1:
+%*1b:+0B100000000000000000000000000000000:0:-1:
+%1b:+0b100000000000000000000000000000000:0:-1:
+%*1b:+0b100000000000000000000000000000000:0:-1:
+%1b:+100000000000000000001000010010001:0:-1:
+%*1b:+100000000000000000001000010010001:0:-1:
+%1b:+0B100000000000000000001000010010001:0:-1:
+%*1b:+0B100000000000000000001000010010001:0:-1:
+%1b:+0b100000000000000000001000010010001:0:-1:
+%*1b:+0b100000000000000000001000010010001:0:-1:
+%2b::0:-1:
+%*2b::0:-1:
+%2b:-1111011:1:2:4294967295:
+%*2b:-1111011:0:2:
+%2b:-0B1111011:1:2:0:
+%*2b:-0B1111011:0:2:
+%2b:-0b1111011:1:2:0:
+%*2b:-0b1111011:0:2:
+%2b:-1:1:2:4294967295:
+%*2b:-1:0:2:
+%2b:-0B1:1:2:0:
+%*2b:-0B1:0:2:
+%2b:-0b1:1:2:0:
+%*2b:-0b1:0:2:
+%2b:-0:1:2:0:
+%*2b:-0:0:2:
+%2b:-0B0:1:2:0:
+%*2b:-0B0:0:2:
+%2b:-0b0:1:2:0:
+%*2b:-0b0:0:2:
+%2b:0:1:1:0:
+%*2b:0:0:1:
+%2b:0B0:0:-1:
+%*2b:0B0:0:-1:
+%2b:0b0:0:-1:
+%*2b:0b0:0:-1:
+%2b:1:1:1:1:
+%*2b:1:0:1:
+%2b:0B1:0:-1:
+%*2b:0B1:0:-1:
+%2b:0b1:0:-1:
+%*2b:0b1:0:-1:
+%2b:101010:1:2:2:
+%*2b:101010:0:2:
+%2b:0B101010:0:-1:
+%*2b:0B101010:0:-1:
+%2b:0b101010:0:-1:
+%*2b:0b101010:0:-1:
+%2b:11111111111111111111111111111111:1:2:3:
+%*2b:11111111111111111111111111111111:0:2:
+%2b:0B11111111111111111111111111111111:0:-1:
+%*2b:0B11111111111111111111111111111111:0:-1:
+%2b:0b11111111111111111111111111111111:0:-1:
+%*2b:0b11111111111111111111111111111111:0:-1:
+%2b:100000000000000000000000000000000:1:2:2:
+%*2b:100000000000000000000000000000000:0:2:
+%2b:0B100000000000000000000000000000000:0:-1:
+%*2b:0B100000000000000000000000000000000:0:-1:
+%2b:0b100000000000000000000000000000000:0:-1:
+%*2b:0b100000000000000000000000000000000:0:-1:
+%2b:100000000000000000001000010010001:1:2:2:
+%*2b:100000000000000000001000010010001:0:2:
+%2b:0B100000000000000000001000010010001:0:-1:
+%*2b:0B100000000000000000001000010010001:0:-1:
+%2b:0b100000000000000000001000010010001:0:-1:
+%*2b:0b100000000000000000001000010010001:0:-1:
+%2b:+0:1:2:0:
+%*2b:+0:0:2:
+%2b:+0B0:1:2:0:
+%*2b:+0B0:0:2:
+%2b:+0b0:1:2:0:
+%*2b:+0b0:0:2:
+%2b:+1:1:2:1:
+%*2b:+1:0:2:
+%2b:+0B1:1:2:0:
+%*2b:+0B1:0:2:
+%2b:+0b1:1:2:0:
+%*2b:+0b1:0:2:
+%2b:+101010:1:2:1:
+%*2b:+101010:0:2:
+%2b:+0B101010:1:2:0:
+%*2b:+0B101010:0:2:
+%2b:+0b101010:1:2:0:
+%*2b:+0b101010:0:2:
+%2b:+11111111111111111111111111111111:1:2:1:
+%*2b:+11111111111111111111111111111111:0:2:
+%2b:+0B11111111111111111111111111111111:1:2:0:
+%*2b:+0B11111111111111111111111111111111:0:2:
+%2b:+0b11111111111111111111111111111111:1:2:0:
+%*2b:+0b11111111111111111111111111111111:0:2:
+%2b:+100000000000000000000000000000000:1:2:1:
+%*2b:+100000000000000000000000000000000:0:2:
+%2b:+0B100000000000000000000000000000000:1:2:0:
+%*2b:+0B100000000000000000000000000000000:0:2:
+%2b:+0b100000000000000000000000000000000:1:2:0:
+%*2b:+0b100000000000000000000000000000000:0:2:
+%2b:+100000000000000000001000010010001:1:2:1:
+%*2b:+100000000000000000001000010010001:0:2:
+%2b:+0B100000000000000000001000010010001:1:2:0:
+%*2b:+0B100000000000000000001000010010001:0:2:
+%2b:+0b100000000000000000001000010010001:1:2:0:
+%*2b:+0b100000000000000000001000010010001:0:2:
+%8b::0:-1:
+%*8b::0:-1:
+%8b:-1111011:1:8:4294967173:
+%*8b:-1111011:0:8:
+%8b:-0B1111011:1:8:4294967266:
+%*8b:-0B1111011:0:8:
+%8b:-0b1111011:1:8:4294967266:
+%*8b:-0b1111011:0:8:
+%8b:-1:1:2:4294967295:
+%*8b:-1:0:2:
+%8b:-0B1:1:4:4294967295:
+%*8b:-0B1:0:4:
+%8b:-0b1:1:4:4294967295:
+%*8b:-0b1:0:4:
+%8b:-0:1:2:0:
+%*8b:-0:0:2:
+%8b:-0B0:1:4:0:
+%*8b:-0B0:0:4:
+%8b:-0b0:1:4:0:
+%*8b:-0b0:0:4:
+%8b:0:1:1:0:
+%*8b:0:0:1:
+%8b:0B0:1:3:0:
+%*8b:0B0:0:3:
+%8b:0b0:1:3:0:
+%*8b:0b0:0:3:
+%8b:1:1:1:1:
+%*8b:1:0:1:
+%8b:0B1:1:3:1:
+%*8b:0B1:0:3:
+%8b:0b1:1:3:1:
+%*8b:0b1:0:3:
+%8b:101010:1:6:42:
+%*8b:101010:0:6:
+%8b:0B101010:1:8:42:
+%*8b:0B101010:0:8:
+%8b:0b101010:1:8:42:
+%*8b:0b101010:0:8:
+%8b:11111111111111111111111111111111:1:8:255:
+%*8b:11111111111111111111111111111111:0:8:
+%8b:0B11111111111111111111111111111111:1:8:63:
+%*8b:0B11111111111111111111111111111111:0:8:
+%8b:0b11111111111111111111111111111111:1:8:63:
+%*8b:0b11111111111111111111111111111111:0:8:
+%8b:100000000000000000000000000000000:1:8:128:
+%*8b:100000000000000000000000000000000:0:8:
+%8b:0B100000000000000000000000000000000:1:8:32:
+%*8b:0B100000000000000000000000000000000:0:8:
+%8b:0b100000000000000000000000000000000:1:8:32:
+%*8b:0b100000000000000000000000000000000:0:8:
+%8b:100000000000000000001000010010001:1:8:128:
+%*8b:100000000000000000001000010010001:0:8:
+%8b:0B100000000000000000001000010010001:1:8:32:
+%*8b:0B100000000000000000001000010010001:0:8:
+%8b:0b100000000000000000001000010010001:1:8:32:
+%*8b:0b100000000000000000001000010010001:0:8:
+%8b:+0:1:2:0:
+%*8b:+0:0:2:
+%8b:+0B0:1:4:0:
+%*8b:+0B0:0:4:
+%8b:+0b0:1:4:0:
+%*8b:+0b0:0:4:
+%8b:+1:1:2:1:
+%*8b:+1:0:2:
+%8b:+0B1:1:4:1:
+%*8b:+0B1:0:4:
+%8b:+0b1:1:4:1:
+%*8b:+0b1:0:4:
+%8b:+101010:1:7:42:
+%*8b:+101010:0:7:
+%8b:+0B101010:1:8:21:
+%*8b:+0B101010:0:8:
+%8b:+0b101010:1:8:21:
+%*8b:+0b101010:0:8:
+%8b:+11111111111111111111111111111111:1:8:127:
+%*8b:+11111111111111111111111111111111:0:8:
+%8b:+0B11111111111111111111111111111111:1:8:31:
+%*8b:+0B11111111111111111111111111111111:0:8:
+%8b:+0b11111111111111111111111111111111:1:8:31:
+%*8b:+0b11111111111111111111111111111111:0:8:
+%8b:+100000000000000000000000000000000:1:8:64:
+%*8b:+100000000000000000000000000000000:0:8:
+%8b:+0B100000000000000000000000000000000:1:8:16:
+%*8b:+0B100000000000000000000000000000000:0:8:
+%8b:+0b100000000000000000000000000000000:1:8:16:
+%*8b:+0b100000000000000000000000000000000:0:8:
+%8b:+100000000000000000001000010010001:1:8:64:
+%*8b:+100000000000000000001000010010001:0:8:
+%8b:+0B100000000000000000001000010010001:1:8:16:
+%*8b:+0B100000000000000000001000010010001:0:8:
+%8b:+0b100000000000000000001000010010001:1:8:16:
+%*8b:+0b100000000000000000001000010010001:0:8:
+%15b::0:-1:
+%*15b::0:-1:
+%15b:-1111011:1:8:4294967173:
+%*15b:-1111011:0:8:
+%15b:-0B1111011:1:10:4294967173:
+%*15b:-0B1111011:0:10:
+%15b:-0b1111011:1:10:4294967173:
+%*15b:-0b1111011:0:10:
+%15b:-1:1:2:4294967295:
+%*15b:-1:0:2:
+%15b:-0B1:1:4:4294967295:
+%*15b:-0B1:0:4:
+%15b:-0b1:1:4:4294967295:
+%*15b:-0b1:0:4:
+%15b:-0:1:2:0:
+%*15b:-0:0:2:
+%15b:-0B0:1:4:0:
+%*15b:-0B0:0:4:
+%15b:-0b0:1:4:0:
+%*15b:-0b0:0:4:
+%15b:0:1:1:0:
+%*15b:0:0:1:
+%15b:0B0:1:3:0:
+%*15b:0B0:0:3:
+%15b:0b0:1:3:0:
+%*15b:0b0:0:3:
+%15b:1:1:1:1:
+%*15b:1:0:1:
+%15b:0B1:1:3:1:
+%*15b:0B1:0:3:
+%15b:0b1:1:3:1:
+%*15b:0b1:0:3:
+%15b:101010:1:6:42:
+%*15b:101010:0:6:
+%15b:0B101010:1:8:42:
+%*15b:0B101010:0:8:
+%15b:0b101010:1:8:42:
+%*15b:0b101010:0:8:
+%15b:11111111111111111111111111111111:1:15:32767:
+%*15b:11111111111111111111111111111111:0:15:
+%15b:0B11111111111111111111111111111111:1:15:8191:
+%*15b:0B11111111111111111111111111111111:0:15:
+%15b:0b11111111111111111111111111111111:1:15:8191:
+%*15b:0b11111111111111111111111111111111:0:15:
+%15b:100000000000000000000000000000000:1:15:16384:
+%*15b:100000000000000000000000000000000:0:15:
+%15b:0B100000000000000000000000000000000:1:15:4096:
+%*15b:0B100000000000000000000000000000000:0:15:
+%15b:0b100000000000000000000000000000000:1:15:4096:
+%*15b:0b100000000000000000000000000000000:0:15:
+%15b:100000000000000000001000010010001:1:15:16384:
+%*15b:100000000000000000001000010010001:0:15:
+%15b:0B100000000000000000001000010010001:1:15:4096:
+%*15b:0B100000000000000000001000010010001:0:15:
+%15b:0b100000000000000000001000010010001:1:15:4096:
+%*15b:0b100000000000000000001000010010001:0:15:
+%15b:+0:1:2:0:
+%*15b:+0:0:2:
+%15b:+0B0:1:4:0:
+%*15b:+0B0:0:4:
+%15b:+0b0:1:4:0:
+%*15b:+0b0:0:4:
+%15b:+1:1:2:1:
+%*15b:+1:0:2:
+%15b:+0B1:1:4:1:
+%*15b:+0B1:0:4:
+%15b:+0b1:1:4:1:
+%*15b:+0b1:0:4:
+%15b:+101010:1:7:42:
+%*15b:+101010:0:7:
+%15b:+0B101010:1:9:42:
+%*15b:+0B101010:0:9:
+%15b:+0b101010:1:9:42:
+%*15b:+0b101010:0:9:
+%15b:+11111111111111111111111111111111:1:15:16383:
+%*15b:+11111111111111111111111111111111:0:15:
+%15b:+0B11111111111111111111111111111111:1:15:4095:
+%*15b:+0B11111111111111111111111111111111:0:15:
+%15b:+0b11111111111111111111111111111111:1:15:4095:
+%*15b:+0b11111111111111111111111111111111:0:15:
+%15b:+100000000000000000000000000000000:1:15:8192:
+%*15b:+100000000000000000000000000000000:0:15:
+%15b:+0B100000000000000000000000000000000:1:15:2048:
+%*15b:+0B100000000000000000000000000000000:0:15:
+%15b:+0b100000000000000000000000000000000:1:15:2048:
+%*15b:+0b100000000000000000000000000000000:0:15:
+%15b:+100000000000000000001000010010001:1:15:8192:
+%*15b:+100000000000000000001000010010001:0:15:
+%15b:+0B100000000000000000001000010010001:1:15:2048:
+%*15b:+0B100000000000000000001000010010001:0:15:
+%15b:+0b100000000000000000001000010010001:1:15:2048:
+%*15b:+0b100000000000000000001000010010001:0:15:
+%2b: :0:-1:
+%*2b: :0:-1:
+%2b: -1111011:1:3:4294967295:
+%*2b: -1111011:0:3:
+%2b: -0B1111011:1:3:0:
+%*2b: -0B1111011:0:3:
+%2b: -0b1111011:1:3:0:
+%*2b: -0b1111011:0:3:
+%2b: -1:1:3:4294967295:
+%*2b: -1:0:3:
+%2b: -0B1:1:3:0:
+%*2b: -0B1:0:3:
+%2b: -0b1:1:3:0:
+%*2b: -0b1:0:3:
+%2b: -0:1:3:0:
+%*2b: -0:0:3:
+%2b: -0B0:1:3:0:
+%*2b: -0B0:0:3:
+%2b: -0b0:1:3:0:
+%*2b: -0b0:0:3:
+%2b: 0:1:2:0:
+%*2b: 0:0:2:
+%2b: 0B0:0:-1:
+%*2b: 0B0:0:-1:
+%2b: 0b0:0:-1:
+%*2b: 0b0:0:-1:
+%2b: 1:1:2:1:
+%*2b: 1:0:2:
+%2b: 0B1:0:-1:
+%*2b: 0B1:0:-1:
+%2b: 0b1:0:-1:
+%*2b: 0b1:0:-1:
+%2b: 101010:1:3:2:
+%*2b: 101010:0:3:
+%2b: 0B101010:0:-1:
+%*2b: 0B101010:0:-1:
+%2b: 0b101010:0:-1:
+%*2b: 0b101010:0:-1:
+%2b: 11111111111111111111111111111111:1:3:3:
+%*2b: 11111111111111111111111111111111:0:3:
+%2b: 0B11111111111111111111111111111111:0:-1:
+%*2b: 0B11111111111111111111111111111111:0:-1:
+%2b: 0b11111111111111111111111111111111:0:-1:
+%*2b: 0b11111111111111111111111111111111:0:-1:
+%2b: 100000000000000000000000000000000:1:3:2:
+%*2b: 100000000000000000000000000000000:0:3:
+%2b: 0B100000000000000000000000000000000:0:-1:
+%*2b: 0B100000000000000000000000000000000:0:-1:
+%2b: 0b100000000000000000000000000000000:0:-1:
+%*2b: 0b100000000000000000000000000000000:0:-1:
+%2b: 100000000000000000001000010010001:1:3:2:
+%*2b: 100000000000000000001000010010001:0:3:
+%2b: 0B100000000000000000001000010010001:0:-1:
+%*2b: 0B100000000000000000001000010010001:0:-1:
+%2b: 0b100000000000000000001000010010001:0:-1:
+%*2b: 0b100000000000000000001000010010001:0:-1:
+%2b: +0:1:3:0:
+%*2b: +0:0:3:
+%2b: +0B0:1:3:0:
+%*2b: +0B0:0:3:
+%2b: +0b0:1:3:0:
+%*2b: +0b0:0:3:
+%2b: +1:1:3:1:
+%*2b: +1:0:3:
+%2b: +0B1:1:3:0:
+%*2b: +0B1:0:3:
+%2b: +0b1:1:3:0:
+%*2b: +0b1:0:3:
+%2b: +101010:1:3:1:
+%*2b: +101010:0:3:
+%2b: +0B101010:1:3:0:
+%*2b: +0B101010:0:3:
+%2b: +0b101010:1:3:0:
+%*2b: +0b101010:0:3:
+%2b: +11111111111111111111111111111111:1:3:1:
+%*2b: +11111111111111111111111111111111:0:3:
+%2b: +0B11111111111111111111111111111111:1:3:0:
+%*2b: +0B11111111111111111111111111111111:0:3:
+%2b: +0b11111111111111111111111111111111:1:3:0:
+%*2b: +0b11111111111111111111111111111111:0:3:
+%2b: +100000000000000000000000000000000:1:3:1:
+%*2b: +100000000000000000000000000000000:0:3:
+%2b: +0B100000000000000000000000000000000:1:3:0:
+%*2b: +0B100000000000000000000000000000000:0:3:
+%2b: +0b100000000000000000000000000000000:1:3:0:
+%*2b: +0b100000000000000000000000000000000:0:3:
+%2b: +100000000000000000001000010010001:1:3:1:
+%*2b: +100000000000000000001000010010001:0:3:
+%2b: +0B100000000000000000001000010010001:1:3:0:
+%*2b: +0B100000000000000000001000010010001:0:3:
+%2b: +0b100000000000000000001000010010001:1:3:0:
+%*2b: +0b100000000000000000001000010010001:0:3:
+%15b: :0:-1:
+%*15b: :0:-1:
+%15b: -1111011:1:9:4294967173:
+%*15b: -1111011:0:9:
+%15b: -0B1111011:1:11:4294967173:
+%*15b: -0B1111011:0:11:
+%15b: -0b1111011:1:11:4294967173:
+%*15b: -0b1111011:0:11:
+%15b: -1:1:3:4294967295:
+%*15b: -1:0:3:
+%15b: -0B1:1:5:4294967295:
+%*15b: -0B1:0:5:
+%15b: -0b1:1:5:4294967295:
+%*15b: -0b1:0:5:
+%15b: -0:1:3:0:
+%*15b: -0:0:3:
+%15b: -0B0:1:5:0:
+%*15b: -0B0:0:5:
+%15b: -0b0:1:5:0:
+%*15b: -0b0:0:5:
+%15b: 0:1:2:0:
+%*15b: 0:0:2:
+%15b: 0B0:1:4:0:
+%*15b: 0B0:0:4:
+%15b: 0b0:1:4:0:
+%*15b: 0b0:0:4:
+%15b: 1:1:2:1:
+%*15b: 1:0:2:
+%15b: 0B1:1:4:1:
+%*15b: 0B1:0:4:
+%15b: 0b1:1:4:1:
+%*15b: 0b1:0:4:
+%15b: 101010:1:7:42:
+%*15b: 101010:0:7:
+%15b: 0B101010:1:9:42:
+%*15b: 0B101010:0:9:
+%15b: 0b101010:1:9:42:
+%*15b: 0b101010:0:9:
+%15b: 11111111111111111111111111111111:1:16:32767:
+%*15b: 11111111111111111111111111111111:0:16:
+%15b: 0B11111111111111111111111111111111:1:16:8191:
+%*15b: 0B11111111111111111111111111111111:0:16:
+%15b: 0b11111111111111111111111111111111:1:16:8191:
+%*15b: 0b11111111111111111111111111111111:0:16:
+%15b: 100000000000000000000000000000000:1:16:16384:
+%*15b: 100000000000000000000000000000000:0:16:
+%15b: 0B100000000000000000000000000000000:1:16:4096:
+%*15b: 0B100000000000000000000000000000000:0:16:
+%15b: 0b100000000000000000000000000000000:1:16:4096:
+%*15b: 0b100000000000000000000000000000000:0:16:
+%15b: 100000000000000000001000010010001:1:16:16384:
+%*15b: 100000000000000000001000010010001:0:16:
+%15b: 0B100000000000000000001000010010001:1:16:4096:
+%*15b: 0B100000000000000000001000010010001:0:16:
+%15b: 0b100000000000000000001000010010001:1:16:4096:
+%*15b: 0b100000000000000000001000010010001:0:16:
+%15b: +0:1:3:0:
+%*15b: +0:0:3:
+%15b: +0B0:1:5:0:
+%*15b: +0B0:0:5:
+%15b: +0b0:1:5:0:
+%*15b: +0b0:0:5:
+%15b: +1:1:3:1:
+%*15b: +1:0:3:
+%15b: +0B1:1:5:1:
+%*15b: +0B1:0:5:
+%15b: +0b1:1:5:1:
+%*15b: +0b1:0:5:
+%15b: +101010:1:8:42:
+%*15b: +101010:0:8:
+%15b: +0B101010:1:10:42:
+%*15b: +0B101010:0:10:
+%15b: +0b101010:1:10:42:
+%*15b: +0b101010:0:10:
+%15b: +11111111111111111111111111111111:1:16:16383:
+%*15b: +11111111111111111111111111111111:0:16:
+%15b: +0B11111111111111111111111111111111:1:16:4095:
+%*15b: +0B11111111111111111111111111111111:0:16:
+%15b: +0b11111111111111111111111111111111:1:16:4095:
+%*15b: +0b11111111111111111111111111111111:0:16:
+%15b: +100000000000000000000000000000000:1:16:8192:
+%*15b: +100000000000000000000000000000000:0:16:
+%15b: +0B100000000000000000000000000000000:1:16:2048:
+%*15b: +0B100000000000000000000000000000000:0:16:
+%15b: +0b100000000000000000000000000000000:1:16:2048:
+%*15b: +0b100000000000000000000000000000000:0:16:
+%15b: +100000000000000000001000010010001:1:16:8192:
+%*15b: +100000000000000000001000010010001:0:16:
+%15b: +0B100000000000000000001000010010001:1:16:2048:
+%*15b: +0B100000000000000000001000010010001:0:16:
+%15b: +0b100000000000000000001000010010001:1:16:2048:
+%*15b: +0b100000000000000000001000010010001:0:16:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-o.input b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input
new file mode 100644
index 0000000..75ae283
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input
@@ -0,0 +1,434 @@
+%o::0:-1:
+%*o::0:-1:
+%o:-173:1:4:4294967173:
+%*o:-173:0:4:
+%o:-0173:1:5:4294967173:
+%*o:-0173:0:5:
+%o:-1:1:2:4294967295:
+%*o:-1:0:2:
+%o:-01:1:3:4294967295:
+%*o:-01:0:3:
+%o:-0:1:2:0:
+%*o:-0:0:2:
+%o:-00:1:3:0:
+%*o:-00:0:3:
+%o:0:1:1:0:
+%*o:0:0:1:
+%o:00:1:2:0:
+%*o:00:0:2:
+%o:1:1:1:1:
+%*o:1:0:1:
+%o:01:1:2:1:
+%*o:01:0:2:
+%o:52:1:2:42:
+%*o:52:0:2:
+%o:052:1:3:42:
+%*o:052:0:3:
+%o:37777777777:1:11:4294967295:
+%*o:37777777777:0:11:
+%o:037777777777:1:12:4294967295:
+%*o:037777777777:0:12:
+%o:40000000000:1:11:0:
+%*o:40000000000:0:11:
+%o:040000000000:1:12:0:
+%*o:040000000000:0:12:
+%o:40000010221:1:11:4241:
+%*o:40000010221:0:11:
+%o:040000010221:1:12:4241:
+%*o:040000010221:0:12:
+%o:+0:1:2:0:
+%*o:+0:0:2:
+%o:+00:1:3:0:
+%*o:+00:0:3:
+%o:+1:1:2:1:
+%*o:+1:0:2:
+%o:+01:1:3:1:
+%*o:+01:0:3:
+%o:+52:1:3:42:
+%*o:+52:0:3:
+%o:+052:1:4:42:
+%*o:+052:0:4:
+%o:+37777777777:1:12:4294967295:
+%*o:+37777777777:0:12:
+%o:+037777777777:1:13:4294967295:
+%*o:+037777777777:0:13:
+%o:+40000000000:1:12:0:
+%*o:+40000000000:0:12:
+%o:+040000000000:1:13:0:
+%*o:+040000000000:0:13:
+%o:+40000010221:1:12:4241:
+%*o:+40000010221:0:12:
+%o:+040000010221:1:13:4241:
+%*o:+040000010221:0:13:
+%1o::0:-1:
+%*1o::0:-1:
+%1o:-173:0:-1:
+%*1o:-173:0:-1:
+%1o:-0173:0:-1:
+%*1o:-0173:0:-1:
+%1o:-1:0:-1:
+%*1o:-1:0:-1:
+%1o:-01:0:-1:
+%*1o:-01:0:-1:
+%1o:-0:0:-1:
+%*1o:-0:0:-1:
+%1o:-00:0:-1:
+%*1o:-00:0:-1:
+%1o:0:1:1:0:
+%*1o:0:0:1:
+%1o:00:1:1:0:
+%*1o:00:0:1:
+%1o:1:1:1:1:
+%*1o:1:0:1:
+%1o:01:1:1:0:
+%*1o:01:0:1:
+%1o:52:1:1:5:
+%*1o:52:0:1:
+%1o:052:1:1:0:
+%*1o:052:0:1:
+%1o:37777777777:1:1:3:
+%*1o:37777777777:0:1:
+%1o:037777777777:1:1:0:
+%*1o:037777777777:0:1:
+%1o:40000000000:1:1:4:
+%*1o:40000000000:0:1:
+%1o:040000000000:1:1:0:
+%*1o:040000000000:0:1:
+%1o:40000010221:1:1:4:
+%*1o:40000010221:0:1:
+%1o:040000010221:1:1:0:
+%*1o:040000010221:0:1:
+%1o:+0:0:-1:
+%*1o:+0:0:-1:
+%1o:+00:0:-1:
+%*1o:+00:0:-1:
+%1o:+1:0:-1:
+%*1o:+1:0:-1:
+%1o:+01:0:-1:
+%*1o:+01:0:-1:
+%1o:+52:0:-1:
+%*1o:+52:0:-1:
+%1o:+052:0:-1:
+%*1o:+052:0:-1:
+%1o:+37777777777:0:-1:
+%*1o:+37777777777:0:-1:
+%1o:+037777777777:0:-1:
+%*1o:+037777777777:0:-1:
+%1o:+40000000000:0:-1:
+%*1o:+40000000000:0:-1:
+%1o:+040000000000:0:-1:
+%*1o:+040000000000:0:-1:
+%1o:+40000010221:0:-1:
+%*1o:+40000010221:0:-1:
+%1o:+040000010221:0:-1:
+%*1o:+040000010221:0:-1:
+%2o::0:-1:
+%*2o::0:-1:
+%2o:-173:1:2:4294967295:
+%*2o:-173:0:2:
+%2o:-0173:1:2:0:
+%*2o:-0173:0:2:
+%2o:-1:1:2:4294967295:
+%*2o:-1:0:2:
+%2o:-01:1:2:0:
+%*2o:-01:0:2:
+%2o:-0:1:2:0:
+%*2o:-0:0:2:
+%2o:-00:1:2:0:
+%*2o:-00:0:2:
+%2o:0:1:1:0:
+%*2o:0:0:1:
+%2o:00:1:2:0:
+%*2o:00:0:2:
+%2o:1:1:1:1:
+%*2o:1:0:1:
+%2o:01:1:2:1:
+%*2o:01:0:2:
+%2o:52:1:2:42:
+%*2o:52:0:2:
+%2o:052:1:2:5:
+%*2o:052:0:2:
+%2o:37777777777:1:2:31:
+%*2o:37777777777:0:2:
+%2o:037777777777:1:2:3:
+%*2o:037777777777:0:2:
+%2o:40000000000:1:2:32:
+%*2o:40000000000:0:2:
+%2o:040000000000:1:2:4:
+%*2o:040000000000:0:2:
+%2o:40000010221:1:2:32:
+%*2o:40000010221:0:2:
+%2o:040000010221:1:2:4:
+%*2o:040000010221:0:2:
+%2o:+0:1:2:0:
+%*2o:+0:0:2:
+%2o:+00:1:2:0:
+%*2o:+00:0:2:
+%2o:+1:1:2:1:
+%*2o:+1:0:2:
+%2o:+01:1:2:0:
+%*2o:+01:0:2:
+%2o:+52:1:2:5:
+%*2o:+52:0:2:
+%2o:+052:1:2:0:
+%*2o:+052:0:2:
+%2o:+37777777777:1:2:3:
+%*2o:+37777777777:0:2:
+%2o:+037777777777:1:2:0:
+%*2o:+037777777777:0:2:
+%2o:+40000000000:1:2:4:
+%*2o:+40000000000:0:2:
+%2o:+040000000000:1:2:0:
+%*2o:+040000000000:0:2:
+%2o:+40000010221:1:2:4:
+%*2o:+40000010221:0:2:
+%2o:+040000010221:1:2:0:
+%*2o:+040000010221:0:2:
+%8o::0:-1:
+%*8o::0:-1:
+%8o:-173:1:4:4294967173:
+%*8o:-173:0:4:
+%8o:-0173:1:5:4294967173:
+%*8o:-0173:0:5:
+%8o:-1:1:2:4294967295:
+%*8o:-1:0:2:
+%8o:-01:1:3:4294967295:
+%*8o:-01:0:3:
+%8o:-0:1:2:0:
+%*8o:-0:0:2:
+%8o:-00:1:3:0:
+%*8o:-00:0:3:
+%8o:0:1:1:0:
+%*8o:0:0:1:
+%8o:00:1:2:0:
+%*8o:00:0:2:
+%8o:1:1:1:1:
+%*8o:1:0:1:
+%8o:01:1:2:1:
+%*8o:01:0:2:
+%8o:52:1:2:42:
+%*8o:52:0:2:
+%8o:052:1:3:42:
+%*8o:052:0:3:
+%8o:37777777777:1:8:8388607:
+%*8o:37777777777:0:8:
+%8o:037777777777:1:8:1048575:
+%*8o:037777777777:0:8:
+%8o:40000000000:1:8:8388608:
+%*8o:40000000000:0:8:
+%8o:040000000000:1:8:1048576:
+%*8o:040000000000:0:8:
+%8o:40000010221:1:8:8388616:
+%*8o:40000010221:0:8:
+%8o:040000010221:1:8:1048577:
+%*8o:040000010221:0:8:
+%8o:+0:1:2:0:
+%*8o:+0:0:2:
+%8o:+00:1:3:0:
+%*8o:+00:0:3:
+%8o:+1:1:2:1:
+%*8o:+1:0:2:
+%8o:+01:1:3:1:
+%*8o:+01:0:3:
+%8o:+52:1:3:42:
+%*8o:+52:0:3:
+%8o:+052:1:4:42:
+%*8o:+052:0:4:
+%8o:+37777777777:1:8:1048575:
+%*8o:+37777777777:0:8:
+%8o:+037777777777:1:8:131071:
+%*8o:+037777777777:0:8:
+%8o:+40000000000:1:8:1048576:
+%*8o:+40000000000:0:8:
+%8o:+040000000000:1:8:131072:
+%*8o:+040000000000:0:8:
+%8o:+40000010221:1:8:1048577:
+%*8o:+40000010221:0:8:
+%8o:+040000010221:1:8:131072:
+%*8o:+040000010221:0:8:
+%15o::0:-1:
+%*15o::0:-1:
+%15o:-173:1:4:4294967173:
+%*15o:-173:0:4:
+%15o:-0173:1:5:4294967173:
+%*15o:-0173:0:5:
+%15o:-1:1:2:4294967295:
+%*15o:-1:0:2:
+%15o:-01:1:3:4294967295:
+%*15o:-01:0:3:
+%15o:-0:1:2:0:
+%*15o:-0:0:2:
+%15o:-00:1:3:0:
+%*15o:-00:0:3:
+%15o:0:1:1:0:
+%*15o:0:0:1:
+%15o:00:1:2:0:
+%*15o:00:0:2:
+%15o:1:1:1:1:
+%*15o:1:0:1:
+%15o:01:1:2:1:
+%*15o:01:0:2:
+%15o:52:1:2:42:
+%*15o:52:0:2:
+%15o:052:1:3:42:
+%*15o:052:0:3:
+%15o:37777777777:1:11:4294967295:
+%*15o:37777777777:0:11:
+%15o:037777777777:1:12:4294967295:
+%*15o:037777777777:0:12:
+%15o:40000000000:1:11:0:
+%*15o:40000000000:0:11:
+%15o:040000000000:1:12:0:
+%*15o:040000000000:0:12:
+%15o:40000010221:1:11:4241:
+%*15o:40000010221:0:11:
+%15o:040000010221:1:12:4241:
+%*15o:040000010221:0:12:
+%15o:+0:1:2:0:
+%*15o:+0:0:2:
+%15o:+00:1:3:0:
+%*15o:+00:0:3:
+%15o:+1:1:2:1:
+%*15o:+1:0:2:
+%15o:+01:1:3:1:
+%*15o:+01:0:3:
+%15o:+52:1:3:42:
+%*15o:+52:0:3:
+%15o:+052:1:4:42:
+%*15o:+052:0:4:
+%15o:+37777777777:1:12:4294967295:
+%*15o:+37777777777:0:12:
+%15o:+037777777777:1:13:4294967295:
+%*15o:+037777777777:0:13:
+%15o:+40000000000:1:12:0:
+%*15o:+40000000000:0:12:
+%15o:+040000000000:1:13:0:
+%*15o:+040000000000:0:13:
+%15o:+40000010221:1:12:4241:
+%*15o:+40000010221:0:12:
+%15o:+040000010221:1:13:4241:
+%*15o:+040000010221:0:13:
+%2o: :0:-1:
+%*2o: :0:-1:
+%2o: -173:1:3:4294967295:
+%*2o: -173:0:3:
+%2o: -0173:1:3:0:
+%*2o: -0173:0:3:
+%2o: -1:1:3:4294967295:
+%*2o: -1:0:3:
+%2o: -01:1:3:0:
+%*2o: -01:0:3:
+%2o: -0:1:3:0:
+%*2o: -0:0:3:
+%2o: -00:1:3:0:
+%*2o: -00:0:3:
+%2o: 0:1:2:0:
+%*2o: 0:0:2:
+%2o: 00:1:3:0:
+%*2o: 00:0:3:
+%2o: 1:1:2:1:
+%*2o: 1:0:2:
+%2o: 01:1:3:1:
+%*2o: 01:0:3:
+%2o: 52:1:3:42:
+%*2o: 52:0:3:
+%2o: 052:1:3:5:
+%*2o: 052:0:3:
+%2o: 37777777777:1:3:31:
+%*2o: 37777777777:0:3:
+%2o: 037777777777:1:3:3:
+%*2o: 037777777777:0:3:
+%2o: 40000000000:1:3:32:
+%*2o: 40000000000:0:3:
+%2o: 040000000000:1:3:4:
+%*2o: 040000000000:0:3:
+%2o: 40000010221:1:3:32:
+%*2o: 40000010221:0:3:
+%2o: 040000010221:1:3:4:
+%*2o: 040000010221:0:3:
+%2o: +0:1:3:0:
+%*2o: +0:0:3:
+%2o: +00:1:3:0:
+%*2o: +00:0:3:
+%2o: +1:1:3:1:
+%*2o: +1:0:3:
+%2o: +01:1:3:0:
+%*2o: +01:0:3:
+%2o: +52:1:3:5:
+%*2o: +52:0:3:
+%2o: +052:1:3:0:
+%*2o: +052:0:3:
+%2o: +37777777777:1:3:3:
+%*2o: +37777777777:0:3:
+%2o: +037777777777:1:3:0:
+%*2o: +037777777777:0:3:
+%2o: +40000000000:1:3:4:
+%*2o: +40000000000:0:3:
+%2o: +040000000000:1:3:0:
+%*2o: +040000000000:0:3:
+%2o: +40000010221:1:3:4:
+%*2o: +40000010221:0:3:
+%2o: +040000010221:1:3:0:
+%*2o: +040000010221:0:3:
+%15o: :0:-1:
+%*15o: :0:-1:
+%15o: -173:1:5:4294967173:
+%*15o: -173:0:5:
+%15o: -0173:1:6:4294967173:
+%*15o: -0173:0:6:
+%15o: -1:1:3:4294967295:
+%*15o: -1:0:3:
+%15o: -01:1:4:4294967295:
+%*15o: -01:0:4:
+%15o: -0:1:3:0:
+%*15o: -0:0:3:
+%15o: -00:1:4:0:
+%*15o: -00:0:4:
+%15o: 0:1:2:0:
+%*15o: 0:0:2:
+%15o: 00:1:3:0:
+%*15o: 00:0:3:
+%15o: 1:1:2:1:
+%*15o: 1:0:2:
+%15o: 01:1:3:1:
+%*15o: 01:0:3:
+%15o: 52:1:3:42:
+%*15o: 52:0:3:
+%15o: 052:1:4:42:
+%*15o: 052:0:4:
+%15o: 37777777777:1:12:4294967295:
+%*15o: 37777777777:0:12:
+%15o: 037777777777:1:13:4294967295:
+%*15o: 037777777777:0:13:
+%15o: 40000000000:1:12:0:
+%*15o: 40000000000:0:12:
+%15o: 040000000000:1:13:0:
+%*15o: 040000000000:0:13:
+%15o: 40000010221:1:12:4241:
+%*15o: 40000010221:0:12:
+%15o: 040000010221:1:13:4241:
+%*15o: 040000010221:0:13:
+%15o: +0:1:3:0:
+%*15o: +0:0:3:
+%15o: +00:1:4:0:
+%*15o: +00:0:4:
+%15o: +1:1:3:1:
+%*15o: +1:0:3:
+%15o: +01:1:4:1:
+%*15o: +01:0:4:
+%15o: +52:1:4:42:
+%*15o: +52:0:4:
+%15o: +052:1:5:42:
+%*15o: +052:0:5:
+%15o: +37777777777:1:13:4294967295:
+%*15o: +37777777777:0:13:
+%15o: +037777777777:1:14:4294967295:
+%*15o: +037777777777:0:14:
+%15o: +40000000000:1:13:0:
+%*15o: +40000000000:0:13:
+%15o: +040000000000:1:14:0:
+%*15o: +040000000000:0:14:
+%15o: +40000010221:1:13:4241:
+%*15o: +40000010221:0:13:
+%15o: +040000010221:1:14:4241:
+%*15o: +040000010221:0:14:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-u.input b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input
new file mode 100644
index 0000000..944806f
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input
@@ -0,0 +1,224 @@
+%u::0:-1:
+%*u::0:-1:
+%u:-123:1:4:4294967173:
+%*u:-123:0:4:
+%u:-1:1:2:4294967295:
+%*u:-1:0:2:
+%u:-0:1:2:0:
+%*u:-0:0:2:
+%u:0:1:1:0:
+%*u:0:0:1:
+%u:1:1:1:1:
+%*u:1:0:1:
+%u:42:1:2:42:
+%*u:42:0:2:
+%u:4294967295:1:10:4294967295:
+%*u:4294967295:0:10:
+%u:4294967296:1:10:0:
+%*u:4294967296:0:10:
+%u:4294971537:1:10:4241:
+%*u:4294971537:0:10:
+%u:+0:1:2:0:
+%*u:+0:0:2:
+%u:+1:1:2:1:
+%*u:+1:0:2:
+%u:+42:1:3:42:
+%*u:+42:0:3:
+%u:+4294967295:1:11:4294967295:
+%*u:+4294967295:0:11:
+%u:+4294967296:1:11:0:
+%*u:+4294967296:0:11:
+%u:+4294971537:1:11:4241:
+%*u:+4294971537:0:11:
+%1u::0:-1:
+%*1u::0:-1:
+%1u:-123:0:-1:
+%*1u:-123:0:-1:
+%1u:-1:0:-1:
+%*1u:-1:0:-1:
+%1u:-0:0:-1:
+%*1u:-0:0:-1:
+%1u:0:1:1:0:
+%*1u:0:0:1:
+%1u:1:1:1:1:
+%*1u:1:0:1:
+%1u:42:1:1:4:
+%*1u:42:0:1:
+%1u:4294967295:1:1:4:
+%*1u:4294967295:0:1:
+%1u:4294967296:1:1:4:
+%*1u:4294967296:0:1:
+%1u:4294971537:1:1:4:
+%*1u:4294971537:0:1:
+%1u:+0:0:-1:
+%*1u:+0:0:-1:
+%1u:+1:0:-1:
+%*1u:+1:0:-1:
+%1u:+42:0:-1:
+%*1u:+42:0:-1:
+%1u:+4294967295:0:-1:
+%*1u:+4294967295:0:-1:
+%1u:+4294967296:0:-1:
+%*1u:+4294967296:0:-1:
+%1u:+4294971537:0:-1:
+%*1u:+4294971537:0:-1:
+%2u::0:-1:
+%*2u::0:-1:
+%2u:-123:1:2:4294967295:
+%*2u:-123:0:2:
+%2u:-1:1:2:4294967295:
+%*2u:-1:0:2:
+%2u:-0:1:2:0:
+%*2u:-0:0:2:
+%2u:0:1:1:0:
+%*2u:0:0:1:
+%2u:1:1:1:1:
+%*2u:1:0:1:
+%2u:42:1:2:42:
+%*2u:42:0:2:
+%2u:4294967295:1:2:42:
+%*2u:4294967295:0:2:
+%2u:4294967296:1:2:42:
+%*2u:4294967296:0:2:
+%2u:4294971537:1:2:42:
+%*2u:4294971537:0:2:
+%2u:+0:1:2:0:
+%*2u:+0:0:2:
+%2u:+1:1:2:1:
+%*2u:+1:0:2:
+%2u:+42:1:2:4:
+%*2u:+42:0:2:
+%2u:+4294967295:1:2:4:
+%*2u:+4294967295:0:2:
+%2u:+4294967296:1:2:4:
+%*2u:+4294967296:0:2:
+%2u:+4294971537:1:2:4:
+%*2u:+4294971537:0:2:
+%8u::0:-1:
+%*8u::0:-1:
+%8u:-123:1:4:4294967173:
+%*8u:-123:0:4:
+%8u:-1:1:2:4294967295:
+%*8u:-1:0:2:
+%8u:-0:1:2:0:
+%*8u:-0:0:2:
+%8u:0:1:1:0:
+%*8u:0:0:1:
+%8u:1:1:1:1:
+%*8u:1:0:1:
+%8u:42:1:2:42:
+%*8u:42:0:2:
+%8u:4294967295:1:8:42949672:
+%*8u:4294967295:0:8:
+%8u:4294967296:1:8:42949672:
+%*8u:4294967296:0:8:
+%8u:4294971537:1:8:42949715:
+%*8u:4294971537:0:8:
+%8u:+0:1:2:0:
+%*8u:+0:0:2:
+%8u:+1:1:2:1:
+%*8u:+1:0:2:
+%8u:+42:1:3:42:
+%*8u:+42:0:3:
+%8u:+4294967295:1:8:4294967:
+%*8u:+4294967295:0:8:
+%8u:+4294967296:1:8:4294967:
+%*8u:+4294967296:0:8:
+%8u:+4294971537:1:8:4294971:
+%*8u:+4294971537:0:8:
+%15u::0:-1:
+%*15u::0:-1:
+%15u:-123:1:4:4294967173:
+%*15u:-123:0:4:
+%15u:-1:1:2:4294967295:
+%*15u:-1:0:2:
+%15u:-0:1:2:0:
+%*15u:-0:0:2:
+%15u:0:1:1:0:
+%*15u:0:0:1:
+%15u:1:1:1:1:
+%*15u:1:0:1:
+%15u:42:1:2:42:
+%*15u:42:0:2:
+%15u:4294967295:1:10:4294967295:
+%*15u:4294967295:0:10:
+%15u:4294967296:1:10:0:
+%*15u:4294967296:0:10:
+%15u:4294971537:1:10:4241:
+%*15u:4294971537:0:10:
+%15u:+0:1:2:0:
+%*15u:+0:0:2:
+%15u:+1:1:2:1:
+%*15u:+1:0:2:
+%15u:+42:1:3:42:
+%*15u:+42:0:3:
+%15u:+4294967295:1:11:4294967295:
+%*15u:+4294967295:0:11:
+%15u:+4294967296:1:11:0:
+%*15u:+4294967296:0:11:
+%15u:+4294971537:1:11:4241:
+%*15u:+4294971537:0:11:
+%2u: :0:-1:
+%*2u: :0:-1:
+%2u: -123:1:3:4294967295:
+%*2u: -123:0:3:
+%2u: -1:1:3:4294967295:
+%*2u: -1:0:3:
+%2u: -0:1:3:0:
+%*2u: -0:0:3:
+%2u: 0:1:2:0:
+%*2u: 0:0:2:
+%2u: 1:1:2:1:
+%*2u: 1:0:2:
+%2u: 42:1:3:42:
+%*2u: 42:0:3:
+%2u: 4294967295:1:3:42:
+%*2u: 4294967295:0:3:
+%2u: 4294967296:1:3:42:
+%*2u: 4294967296:0:3:
+%2u: 4294971537:1:3:42:
+%*2u: 4294971537:0:3:
+%2u: +0:1:3:0:
+%*2u: +0:0:3:
+%2u: +1:1:3:1:
+%*2u: +1:0:3:
+%2u: +42:1:3:4:
+%*2u: +42:0:3:
+%2u: +4294967295:1:3:4:
+%*2u: +4294967295:0:3:
+%2u: +4294967296:1:3:4:
+%*2u: +4294967296:0:3:
+%2u: +4294971537:1:3:4:
+%*2u: +4294971537:0:3:
+%15u: :0:-1:
+%*15u: :0:-1:
+%15u: -123:1:5:4294967173:
+%*15u: -123:0:5:
+%15u: -1:1:3:4294967295:
+%*15u: -1:0:3:
+%15u: -0:1:3:0:
+%*15u: -0:0:3:
+%15u: 0:1:2:0:
+%*15u: 0:0:2:
+%15u: 1:1:2:1:
+%*15u: 1:0:2:
+%15u: 42:1:3:42:
+%*15u: 42:0:3:
+%15u: 4294967295:1:11:4294967295:
+%*15u: 4294967295:0:11:
+%15u: 4294967296:1:11:0:
+%*15u: 4294967296:0:11:
+%15u: 4294971537:1:11:4241:
+%*15u: 4294971537:0:11:
+%15u: +0:1:3:0:
+%*15u: +0:0:3:
+%15u: +1:1:3:1:
+%*15u: +1:0:3:
+%15u: +42:1:4:42:
+%*15u: +42:0:4:
+%15u: +4294967295:1:12:4294967295:
+%*15u: +4294967295:0:12:
+%15u: +4294967296:1:12:0:
+%*15u: +4294967296:0:12:
+%15u: +4294971537:1:12:4241:
+%*15u: +4294971537:0:12:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-x.input b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input
new file mode 100644
index 0000000..a9c1d77
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input
@@ -0,0 +1,714 @@
+%x::0:-1:
+%*x::0:-1:
+%x:-7b:1:3:4294967173:
+%*x:-7b:0:3:
+%x:-7B:1:3:4294967173:
+%*x:-7B:0:3:
+%x:-0X7b:1:5:4294967173:
+%*x:-0X7b:0:5:
+%x:-0x7B:1:5:4294967173:
+%*x:-0x7B:0:5:
+%x:-1:1:2:4294967295:
+%*x:-1:0:2:
+%x:-0X1:1:4:4294967295:
+%*x:-0X1:0:4:
+%x:-0x1:1:4:4294967295:
+%*x:-0x1:0:4:
+%x:-0:1:2:0:
+%*x:-0:0:2:
+%x:-0X0:1:4:0:
+%*x:-0X0:0:4:
+%x:-0x0:1:4:0:
+%*x:-0x0:0:4:
+%x:0:1:1:0:
+%*x:0:0:1:
+%x:0X0:1:3:0:
+%*x:0X0:0:3:
+%x:0x0:1:3:0:
+%*x:0x0:0:3:
+%x:1:1:1:1:
+%*x:1:0:1:
+%x:0X1:1:3:1:
+%*x:0X1:0:3:
+%x:0x1:1:3:1:
+%*x:0x1:0:3:
+%x:2a:1:2:42:
+%*x:2a:0:2:
+%x:2A:1:2:42:
+%*x:2A:0:2:
+%x:0X2a:1:4:42:
+%*x:0X2a:0:4:
+%x:0x2A:1:4:42:
+%*x:0x2A:0:4:
+%x:ffffffff:1:8:4294967295:
+%*x:ffffffff:0:8:
+%x:FFFFFFFF:1:8:4294967295:
+%*x:FFFFFFFF:0:8:
+%x:0Xffffffff:1:10:4294967295:
+%*x:0Xffffffff:0:10:
+%x:0xFFFFFFFF:1:10:4294967295:
+%*x:0xFFFFFFFF:0:10:
+%x:100000000:1:9:0:
+%*x:100000000:0:9:
+%x:0X100000000:1:11:0:
+%*x:0X100000000:0:11:
+%x:0x100000000:1:11:0:
+%*x:0x100000000:0:11:
+%x:100001091:1:9:4241:
+%*x:100001091:0:9:
+%x:0X100001091:1:11:4241:
+%*x:0X100001091:0:11:
+%x:0x100001091:1:11:4241:
+%*x:0x100001091:0:11:
+%x:+0:1:2:0:
+%*x:+0:0:2:
+%x:+0X0:1:4:0:
+%*x:+0X0:0:4:
+%x:+0x0:1:4:0:
+%*x:+0x0:0:4:
+%x:+1:1:2:1:
+%*x:+1:0:2:
+%x:+0X1:1:4:1:
+%*x:+0X1:0:4:
+%x:+0x1:1:4:1:
+%*x:+0x1:0:4:
+%x:+2a:1:3:42:
+%*x:+2a:0:3:
+%x:+2A:1:3:42:
+%*x:+2A:0:3:
+%x:+0X2a:1:5:42:
+%*x:+0X2a:0:5:
+%x:+0x2A:1:5:42:
+%*x:+0x2A:0:5:
+%x:+ffffffff:1:9:4294967295:
+%*x:+ffffffff:0:9:
+%x:+FFFFFFFF:1:9:4294967295:
+%*x:+FFFFFFFF:0:9:
+%x:+0Xffffffff:1:11:4294967295:
+%*x:+0Xffffffff:0:11:
+%x:+0xFFFFFFFF:1:11:4294967295:
+%*x:+0xFFFFFFFF:0:11:
+%x:+100000000:1:10:0:
+%*x:+100000000:0:10:
+%x:+0X100000000:1:12:0:
+%*x:+0X100000000:0:12:
+%x:+0x100000000:1:12:0:
+%*x:+0x100000000:0:12:
+%x:+100001091:1:10:4241:
+%*x:+100001091:0:10:
+%x:+0X100001091:1:12:4241:
+%*x:+0X100001091:0:12:
+%x:+0x100001091:1:12:4241:
+%*x:+0x100001091:0:12:
+%1x::0:-1:
+%*1x::0:-1:
+%1x:-7b:0:-1:
+%*1x:-7b:0:-1:
+%1x:-7B:0:-1:
+%*1x:-7B:0:-1:
+%1x:-0X7b:0:-1:
+%*1x:-0X7b:0:-1:
+%1x:-0x7B:0:-1:
+%*1x:-0x7B:0:-1:
+%1x:-1:0:-1:
+%*1x:-1:0:-1:
+%1x:-0X1:0:-1:
+%*1x:-0X1:0:-1:
+%1x:-0x1:0:-1:
+%*1x:-0x1:0:-1:
+%1x:-0:0:-1:
+%*1x:-0:0:-1:
+%1x:-0X0:0:-1:
+%*1x:-0X0:0:-1:
+%1x:-0x0:0:-1:
+%*1x:-0x0:0:-1:
+%1x:0:1:1:0:
+%*1x:0:0:1:
+%1x:0X0:1:1:0:
+%*1x:0X0:0:1:
+%1x:0x0:1:1:0:
+%*1x:0x0:0:1:
+%1x:1:1:1:1:
+%*1x:1:0:1:
+%1x:0X1:1:1:0:
+%*1x:0X1:0:1:
+%1x:0x1:1:1:0:
+%*1x:0x1:0:1:
+%1x:2a:1:1:2:
+%*1x:2a:0:1:
+%1x:2A:1:1:2:
+%*1x:2A:0:1:
+%1x:0X2a:1:1:0:
+%*1x:0X2a:0:1:
+%1x:0x2A:1:1:0:
+%*1x:0x2A:0:1:
+%1x:ffffffff:1:1:15:
+%*1x:ffffffff:0:1:
+%1x:FFFFFFFF:1:1:15:
+%*1x:FFFFFFFF:0:1:
+%1x:0Xffffffff:1:1:0:
+%*1x:0Xffffffff:0:1:
+%1x:0xFFFFFFFF:1:1:0:
+%*1x:0xFFFFFFFF:0:1:
+%1x:100000000:1:1:1:
+%*1x:100000000:0:1:
+%1x:0X100000000:1:1:0:
+%*1x:0X100000000:0:1:
+%1x:0x100000000:1:1:0:
+%*1x:0x100000000:0:1:
+%1x:100001091:1:1:1:
+%*1x:100001091:0:1:
+%1x:0X100001091:1:1:0:
+%*1x:0X100001091:0:1:
+%1x:0x100001091:1:1:0:
+%*1x:0x100001091:0:1:
+%1x:+0:0:-1:
+%*1x:+0:0:-1:
+%1x:+0X0:0:-1:
+%*1x:+0X0:0:-1:
+%1x:+0x0:0:-1:
+%*1x:+0x0:0:-1:
+%1x:+1:0:-1:
+%*1x:+1:0:-1:
+%1x:+0X1:0:-1:
+%*1x:+0X1:0:-1:
+%1x:+0x1:0:-1:
+%*1x:+0x1:0:-1:
+%1x:+2a:0:-1:
+%*1x:+2a:0:-1:
+%1x:+2A:0:-1:
+%*1x:+2A:0:-1:
+%1x:+0X2a:0:-1:
+%*1x:+0X2a:0:-1:
+%1x:+0x2A:0:-1:
+%*1x:+0x2A:0:-1:
+%1x:+ffffffff:0:-1:
+%*1x:+ffffffff:0:-1:
+%1x:+FFFFFFFF:0:-1:
+%*1x:+FFFFFFFF:0:-1:
+%1x:+0Xffffffff:0:-1:
+%*1x:+0Xffffffff:0:-1:
+%1x:+0xFFFFFFFF:0:-1:
+%*1x:+0xFFFFFFFF:0:-1:
+%1x:+100000000:0:-1:
+%*1x:+100000000:0:-1:
+%1x:+0X100000000:0:-1:
+%*1x:+0X100000000:0:-1:
+%1x:+0x100000000:0:-1:
+%*1x:+0x100000000:0:-1:
+%1x:+100001091:0:-1:
+%*1x:+100001091:0:-1:
+%1x:+0X100001091:0:-1:
+%*1x:+0X100001091:0:-1:
+%1x:+0x100001091:0:-1:
+%*1x:+0x100001091:0:-1:
+%2x::0:-1:
+%*2x::0:-1:
+%2x:-7b:1:2:4294967289:
+%*2x:-7b:0:2:
+%2x:-7B:1:2:4294967289:
+%*2x:-7B:0:2:
+%2x:-0X7b:1:2:0:
+%*2x:-0X7b:0:2:
+%2x:-0x7B:1:2:0:
+%*2x:-0x7B:0:2:
+%2x:-1:1:2:4294967295:
+%*2x:-1:0:2:
+%2x:-0X1:1:2:0:
+%*2x:-0X1:0:2:
+%2x:-0x1:1:2:0:
+%*2x:-0x1:0:2:
+%2x:-0:1:2:0:
+%*2x:-0:0:2:
+%2x:-0X0:1:2:0:
+%*2x:-0X0:0:2:
+%2x:-0x0:1:2:0:
+%*2x:-0x0:0:2:
+%2x:0:1:1:0:
+%*2x:0:0:1:
+%2x:0X0:0:-1:
+%*2x:0X0:0:-1:
+%2x:0x0:0:-1:
+%*2x:0x0:0:-1:
+%2x:1:1:1:1:
+%*2x:1:0:1:
+%2x:0X1:0:-1:
+%*2x:0X1:0:-1:
+%2x:0x1:0:-1:
+%*2x:0x1:0:-1:
+%2x:2a:1:2:42:
+%*2x:2a:0:2:
+%2x:2A:1:2:42:
+%*2x:2A:0:2:
+%2x:0X2a:0:-1:
+%*2x:0X2a:0:-1:
+%2x:0x2A:0:-1:
+%*2x:0x2A:0:-1:
+%2x:ffffffff:1:2:255:
+%*2x:ffffffff:0:2:
+%2x:FFFFFFFF:1:2:255:
+%*2x:FFFFFFFF:0:2:
+%2x:0Xffffffff:0:-1:
+%*2x:0Xffffffff:0:-1:
+%2x:0xFFFFFFFF:0:-1:
+%*2x:0xFFFFFFFF:0:-1:
+%2x:100000000:1:2:16:
+%*2x:100000000:0:2:
+%2x:0X100000000:0:-1:
+%*2x:0X100000000:0:-1:
+%2x:0x100000000:0:-1:
+%*2x:0x100000000:0:-1:
+%2x:100001091:1:2:16:
+%*2x:100001091:0:2:
+%2x:0X100001091:0:-1:
+%*2x:0X100001091:0:-1:
+%2x:0x100001091:0:-1:
+%*2x:0x100001091:0:-1:
+%2x:+0:1:2:0:
+%*2x:+0:0:2:
+%2x:+0X0:1:2:0:
+%*2x:+0X0:0:2:
+%2x:+0x0:1:2:0:
+%*2x:+0x0:0:2:
+%2x:+1:1:2:1:
+%*2x:+1:0:2:
+%2x:+0X1:1:2:0:
+%*2x:+0X1:0:2:
+%2x:+0x1:1:2:0:
+%*2x:+0x1:0:2:
+%2x:+2a:1:2:2:
+%*2x:+2a:0:2:
+%2x:+2A:1:2:2:
+%*2x:+2A:0:2:
+%2x:+0X2a:1:2:0:
+%*2x:+0X2a:0:2:
+%2x:+0x2A:1:2:0:
+%*2x:+0x2A:0:2:
+%2x:+ffffffff:1:2:15:
+%*2x:+ffffffff:0:2:
+%2x:+FFFFFFFF:1:2:15:
+%*2x:+FFFFFFFF:0:2:
+%2x:+0Xffffffff:1:2:0:
+%*2x:+0Xffffffff:0:2:
+%2x:+0xFFFFFFFF:1:2:0:
+%*2x:+0xFFFFFFFF:0:2:
+%2x:+100000000:1:2:1:
+%*2x:+100000000:0:2:
+%2x:+0X100000000:1:2:0:
+%*2x:+0X100000000:0:2:
+%2x:+0x100000000:1:2:0:
+%*2x:+0x100000000:0:2:
+%2x:+100001091:1:2:1:
+%*2x:+100001091:0:2:
+%2x:+0X100001091:1:2:0:
+%*2x:+0X100001091:0:2:
+%2x:+0x100001091:1:2:0:
+%*2x:+0x100001091:0:2:
+%8x::0:-1:
+%*8x::0:-1:
+%8x:-7b:1:3:4294967173:
+%*8x:-7b:0:3:
+%8x:-7B:1:3:4294967173:
+%*8x:-7B:0:3:
+%8x:-0X7b:1:5:4294967173:
+%*8x:-0X7b:0:5:
+%8x:-0x7B:1:5:4294967173:
+%*8x:-0x7B:0:5:
+%8x:-1:1:2:4294967295:
+%*8x:-1:0:2:
+%8x:-0X1:1:4:4294967295:
+%*8x:-0X1:0:4:
+%8x:-0x1:1:4:4294967295:
+%*8x:-0x1:0:4:
+%8x:-0:1:2:0:
+%*8x:-0:0:2:
+%8x:-0X0:1:4:0:
+%*8x:-0X0:0:4:
+%8x:-0x0:1:4:0:
+%*8x:-0x0:0:4:
+%8x:0:1:1:0:
+%*8x:0:0:1:
+%8x:0X0:1:3:0:
+%*8x:0X0:0:3:
+%8x:0x0:1:3:0:
+%*8x:0x0:0:3:
+%8x:1:1:1:1:
+%*8x:1:0:1:
+%8x:0X1:1:3:1:
+%*8x:0X1:0:3:
+%8x:0x1:1:3:1:
+%*8x:0x1:0:3:
+%8x:2a:1:2:42:
+%*8x:2a:0:2:
+%8x:2A:1:2:42:
+%*8x:2A:0:2:
+%8x:0X2a:1:4:42:
+%*8x:0X2a:0:4:
+%8x:0x2A:1:4:42:
+%*8x:0x2A:0:4:
+%8x:ffffffff:1:8:4294967295:
+%*8x:ffffffff:0:8:
+%8x:FFFFFFFF:1:8:4294967295:
+%*8x:FFFFFFFF:0:8:
+%8x:0Xffffffff:1:8:16777215:
+%*8x:0Xffffffff:0:8:
+%8x:0xFFFFFFFF:1:8:16777215:
+%*8x:0xFFFFFFFF:0:8:
+%8x:100000000:1:8:268435456:
+%*8x:100000000:0:8:
+%8x:0X100000000:1:8:1048576:
+%*8x:0X100000000:0:8:
+%8x:0x100000000:1:8:1048576:
+%*8x:0x100000000:0:8:
+%8x:100001091:1:8:268435721:
+%*8x:100001091:0:8:
+%8x:0X100001091:1:8:1048577:
+%*8x:0X100001091:0:8:
+%8x:0x100001091:1:8:1048577:
+%*8x:0x100001091:0:8:
+%8x:+0:1:2:0:
+%*8x:+0:0:2:
+%8x:+0X0:1:4:0:
+%*8x:+0X0:0:4:
+%8x:+0x0:1:4:0:
+%*8x:+0x0:0:4:
+%8x:+1:1:2:1:
+%*8x:+1:0:2:
+%8x:+0X1:1:4:1:
+%*8x:+0X1:0:4:
+%8x:+0x1:1:4:1:
+%*8x:+0x1:0:4:
+%8x:+2a:1:3:42:
+%*8x:+2a:0:3:
+%8x:+2A:1:3:42:
+%*8x:+2A:0:3:
+%8x:+0X2a:1:5:42:
+%*8x:+0X2a:0:5:
+%8x:+0x2A:1:5:42:
+%*8x:+0x2A:0:5:
+%8x:+ffffffff:1:8:268435455:
+%*8x:+ffffffff:0:8:
+%8x:+FFFFFFFF:1:8:268435455:
+%*8x:+FFFFFFFF:0:8:
+%8x:+0Xffffffff:1:8:1048575:
+%*8x:+0Xffffffff:0:8:
+%8x:+0xFFFFFFFF:1:8:1048575:
+%*8x:+0xFFFFFFFF:0:8:
+%8x:+100000000:1:8:16777216:
+%*8x:+100000000:0:8:
+%8x:+0X100000000:1:8:65536:
+%*8x:+0X100000000:0:8:
+%8x:+0x100000000:1:8:65536:
+%*8x:+0x100000000:0:8:
+%8x:+100001091:1:8:16777232:
+%*8x:+100001091:0:8:
+%8x:+0X100001091:1:8:65536:
+%*8x:+0X100001091:0:8:
+%8x:+0x100001091:1:8:65536:
+%*8x:+0x100001091:0:8:
+%15x::0:-1:
+%*15x::0:-1:
+%15x:-7b:1:3:4294967173:
+%*15x:-7b:0:3:
+%15x:-7B:1:3:4294967173:
+%*15x:-7B:0:3:
+%15x:-0X7b:1:5:4294967173:
+%*15x:-0X7b:0:5:
+%15x:-0x7B:1:5:4294967173:
+%*15x:-0x7B:0:5:
+%15x:-1:1:2:4294967295:
+%*15x:-1:0:2:
+%15x:-0X1:1:4:4294967295:
+%*15x:-0X1:0:4:
+%15x:-0x1:1:4:4294967295:
+%*15x:-0x1:0:4:
+%15x:-0:1:2:0:
+%*15x:-0:0:2:
+%15x:-0X0:1:4:0:
+%*15x:-0X0:0:4:
+%15x:-0x0:1:4:0:
+%*15x:-0x0:0:4:
+%15x:0:1:1:0:
+%*15x:0:0:1:
+%15x:0X0:1:3:0:
+%*15x:0X0:0:3:
+%15x:0x0:1:3:0:
+%*15x:0x0:0:3:
+%15x:1:1:1:1:
+%*15x:1:0:1:
+%15x:0X1:1:3:1:
+%*15x:0X1:0:3:
+%15x:0x1:1:3:1:
+%*15x:0x1:0:3:
+%15x:2a:1:2:42:
+%*15x:2a:0:2:
+%15x:2A:1:2:42:
+%*15x:2A:0:2:
+%15x:0X2a:1:4:42:
+%*15x:0X2a:0:4:
+%15x:0x2A:1:4:42:
+%*15x:0x2A:0:4:
+%15x:ffffffff:1:8:4294967295:
+%*15x:ffffffff:0:8:
+%15x:FFFFFFFF:1:8:4294967295:
+%*15x:FFFFFFFF:0:8:
+%15x:0Xffffffff:1:10:4294967295:
+%*15x:0Xffffffff:0:10:
+%15x:0xFFFFFFFF:1:10:4294967295:
+%*15x:0xFFFFFFFF:0:10:
+%15x:100000000:1:9:0:
+%*15x:100000000:0:9:
+%15x:0X100000000:1:11:0:
+%*15x:0X100000000:0:11:
+%15x:0x100000000:1:11:0:
+%*15x:0x100000000:0:11:
+%15x:100001091:1:9:4241:
+%*15x:100001091:0:9:
+%15x:0X100001091:1:11:4241:
+%*15x:0X100001091:0:11:
+%15x:0x100001091:1:11:4241:
+%*15x:0x100001091:0:11:
+%15x:+0:1:2:0:
+%*15x:+0:0:2:
+%15x:+0X0:1:4:0:
+%*15x:+0X0:0:4:
+%15x:+0x0:1:4:0:
+%*15x:+0x0:0:4:
+%15x:+1:1:2:1:
+%*15x:+1:0:2:
+%15x:+0X1:1:4:1:
+%*15x:+0X1:0:4:
+%15x:+0x1:1:4:1:
+%*15x:+0x1:0:4:
+%15x:+2a:1:3:42:
+%*15x:+2a:0:3:
+%15x:+2A:1:3:42:
+%*15x:+2A:0:3:
+%15x:+0X2a:1:5:42:
+%*15x:+0X2a:0:5:
+%15x:+0x2A:1:5:42:
+%*15x:+0x2A:0:5:
+%15x:+ffffffff:1:9:4294967295:
+%*15x:+ffffffff:0:9:
+%15x:+FFFFFFFF:1:9:4294967295:
+%*15x:+FFFFFFFF:0:9:
+%15x:+0Xffffffff:1:11:4294967295:
+%*15x:+0Xffffffff:0:11:
+%15x:+0xFFFFFFFF:1:11:4294967295:
+%*15x:+0xFFFFFFFF:0:11:
+%15x:+100000000:1:10:0:
+%*15x:+100000000:0:10:
+%15x:+0X100000000:1:12:0:
+%*15x:+0X100000000:0:12:
+%15x:+0x100000000:1:12:0:
+%*15x:+0x100000000:0:12:
+%15x:+100001091:1:10:4241:
+%*15x:+100001091:0:10:
+%15x:+0X100001091:1:12:4241:
+%*15x:+0X100001091:0:12:
+%15x:+0x100001091:1:12:4241:
+%*15x:+0x100001091:0:12:
+%2x: :0:-1:
+%*2x: :0:-1:
+%2x: -7b:1:3:4294967289:
+%*2x: -7b:0:3:
+%2x: -7B:1:3:4294967289:
+%*2x: -7B:0:3:
+%2x: -0X7b:1:3:0:
+%*2x: -0X7b:0:3:
+%2x: -0x7B:1:3:0:
+%*2x: -0x7B:0:3:
+%2x: -1:1:3:4294967295:
+%*2x: -1:0:3:
+%2x: -0X1:1:3:0:
+%*2x: -0X1:0:3:
+%2x: -0x1:1:3:0:
+%*2x: -0x1:0:3:
+%2x: -0:1:3:0:
+%*2x: -0:0:3:
+%2x: -0X0:1:3:0:
+%*2x: -0X0:0:3:
+%2x: -0x0:1:3:0:
+%*2x: -0x0:0:3:
+%2x: 0:1:2:0:
+%*2x: 0:0:2:
+%2x: 0X0:0:-1:
+%*2x: 0X0:0:-1:
+%2x: 0x0:0:-1:
+%*2x: 0x0:0:-1:
+%2x: 1:1:2:1:
+%*2x: 1:0:2:
+%2x: 0X1:0:-1:
+%*2x: 0X1:0:-1:
+%2x: 0x1:0:-1:
+%*2x: 0x1:0:-1:
+%2x: 2a:1:3:42:
+%*2x: 2a:0:3:
+%2x: 2A:1:3:42:
+%*2x: 2A:0:3:
+%2x: 0X2a:0:-1:
+%*2x: 0X2a:0:-1:
+%2x: 0x2A:0:-1:
+%*2x: 0x2A:0:-1:
+%2x: ffffffff:1:3:255:
+%*2x: ffffffff:0:3:
+%2x: FFFFFFFF:1:3:255:
+%*2x: FFFFFFFF:0:3:
+%2x: 0Xffffffff:0:-1:
+%*2x: 0Xffffffff:0:-1:
+%2x: 0xFFFFFFFF:0:-1:
+%*2x: 0xFFFFFFFF:0:-1:
+%2x: 100000000:1:3:16:
+%*2x: 100000000:0:3:
+%2x: 0X100000000:0:-1:
+%*2x: 0X100000000:0:-1:
+%2x: 0x100000000:0:-1:
+%*2x: 0x100000000:0:-1:
+%2x: 100001091:1:3:16:
+%*2x: 100001091:0:3:
+%2x: 0X100001091:0:-1:
+%*2x: 0X100001091:0:-1:
+%2x: 0x100001091:0:-1:
+%*2x: 0x100001091:0:-1:
+%2x: +0:1:3:0:
+%*2x: +0:0:3:
+%2x: +0X0:1:3:0:
+%*2x: +0X0:0:3:
+%2x: +0x0:1:3:0:
+%*2x: +0x0:0:3:
+%2x: +1:1:3:1:
+%*2x: +1:0:3:
+%2x: +0X1:1:3:0:
+%*2x: +0X1:0:3:
+%2x: +0x1:1:3:0:
+%*2x: +0x1:0:3:
+%2x: +2a:1:3:2:
+%*2x: +2a:0:3:
+%2x: +2A:1:3:2:
+%*2x: +2A:0:3:
+%2x: +0X2a:1:3:0:
+%*2x: +0X2a:0:3:
+%2x: +0x2A:1:3:0:
+%*2x: +0x2A:0:3:
+%2x: +ffffffff:1:3:15:
+%*2x: +ffffffff:0:3:
+%2x: +FFFFFFFF:1:3:15:
+%*2x: +FFFFFFFF:0:3:
+%2x: +0Xffffffff:1:3:0:
+%*2x: +0Xffffffff:0:3:
+%2x: +0xFFFFFFFF:1:3:0:
+%*2x: +0xFFFFFFFF:0:3:
+%2x: +100000000:1:3:1:
+%*2x: +100000000:0:3:
+%2x: +0X100000000:1:3:0:
+%*2x: +0X100000000:0:3:
+%2x: +0x100000000:1:3:0:
+%*2x: +0x100000000:0:3:
+%2x: +100001091:1:3:1:
+%*2x: +100001091:0:3:
+%2x: +0X100001091:1:3:0:
+%*2x: +0X100001091:0:3:
+%2x: +0x100001091:1:3:0:
+%*2x: +0x100001091:0:3:
+%15x: :0:-1:
+%*15x: :0:-1:
+%15x: -7b:1:4:4294967173:
+%*15x: -7b:0:4:
+%15x: -7B:1:4:4294967173:
+%*15x: -7B:0:4:
+%15x: -0X7b:1:6:4294967173:
+%*15x: -0X7b:0:6:
+%15x: -0x7B:1:6:4294967173:
+%*15x: -0x7B:0:6:
+%15x: -1:1:3:4294967295:
+%*15x: -1:0:3:
+%15x: -0X1:1:5:4294967295:
+%*15x: -0X1:0:5:
+%15x: -0x1:1:5:4294967295:
+%*15x: -0x1:0:5:
+%15x: -0:1:3:0:
+%*15x: -0:0:3:
+%15x: -0X0:1:5:0:
+%*15x: -0X0:0:5:
+%15x: -0x0:1:5:0:
+%*15x: -0x0:0:5:
+%15x: 0:1:2:0:
+%*15x: 0:0:2:
+%15x: 0X0:1:4:0:
+%*15x: 0X0:0:4:
+%15x: 0x0:1:4:0:
+%*15x: 0x0:0:4:
+%15x: 1:1:2:1:
+%*15x: 1:0:2:
+%15x: 0X1:1:4:1:
+%*15x: 0X1:0:4:
+%15x: 0x1:1:4:1:
+%*15x: 0x1:0:4:
+%15x: 2a:1:3:42:
+%*15x: 2a:0:3:
+%15x: 2A:1:3:42:
+%*15x: 2A:0:3:
+%15x: 0X2a:1:5:42:
+%*15x: 0X2a:0:5:
+%15x: 0x2A:1:5:42:
+%*15x: 0x2A:0:5:
+%15x: ffffffff:1:9:4294967295:
+%*15x: ffffffff:0:9:
+%15x: FFFFFFFF:1:9:4294967295:
+%*15x: FFFFFFFF:0:9:
+%15x: 0Xffffffff:1:11:4294967295:
+%*15x: 0Xffffffff:0:11:
+%15x: 0xFFFFFFFF:1:11:4294967295:
+%*15x: 0xFFFFFFFF:0:11:
+%15x: 100000000:1:10:0:
+%*15x: 100000000:0:10:
+%15x: 0X100000000:1:12:0:
+%*15x: 0X100000000:0:12:
+%15x: 0x100000000:1:12:0:
+%*15x: 0x100000000:0:12:
+%15x: 100001091:1:10:4241:
+%*15x: 100001091:0:10:
+%15x: 0X100001091:1:12:4241:
+%*15x: 0X100001091:0:12:
+%15x: 0x100001091:1:12:4241:
+%*15x: 0x100001091:0:12:
+%15x: +0:1:3:0:
+%*15x: +0:0:3:
+%15x: +0X0:1:5:0:
+%*15x: +0X0:0:5:
+%15x: +0x0:1:5:0:
+%*15x: +0x0:0:5:
+%15x: +1:1:3:1:
+%*15x: +1:0:3:
+%15x: +0X1:1:5:1:
+%*15x: +0X1:0:5:
+%15x: +0x1:1:5:1:
+%*15x: +0x1:0:5:
+%15x: +2a:1:4:42:
+%*15x: +2a:0:4:
+%15x: +2A:1:4:42:
+%*15x: +2A:0:4:
+%15x: +0X2a:1:6:42:
+%*15x: +0X2a:0:6:
+%15x: +0x2A:1:6:42:
+%*15x: +0x2A:0:6:
+%15x: +ffffffff:1:10:4294967295:
+%*15x: +ffffffff:0:10:
+%15x: +FFFFFFFF:1:10:4294967295:
+%*15x: +FFFFFFFF:0:10:
+%15x: +0Xffffffff:1:12:4294967295:
+%*15x: +0Xffffffff:0:12:
+%15x: +0xFFFFFFFF:1:12:4294967295:
+%*15x: +0xFFFFFFFF:0:12:
+%15x: +100000000:1:11:0:
+%*15x: +100000000:0:11:
+%15x: +0X100000000:1:13:0:
+%*15x: +0X100000000:0:13:
+%15x: +0x100000000:1:13:0:
+%*15x: +0x100000000:0:13:
+%15x: +100001091:1:11:4241:
+%*15x: +100001091:0:11:
+%15x: +0X100001091:1:13:4241:
+%*15x: +0X100001091:0:13:
+%15x: +0x100001091:1:13:4241:
+%*15x: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input
new file mode 100644
index 0000000..736de7b
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input
@@ -0,0 +1,714 @@
+%X::0:-1:
+%*X::0:-1:
+%X:-7b:1:3:4294967173:
+%*X:-7b:0:3:
+%X:-7B:1:3:4294967173:
+%*X:-7B:0:3:
+%X:-0X7b:1:5:4294967173:
+%*X:-0X7b:0:5:
+%X:-0x7B:1:5:4294967173:
+%*X:-0x7B:0:5:
+%X:-1:1:2:4294967295:
+%*X:-1:0:2:
+%X:-0X1:1:4:4294967295:
+%*X:-0X1:0:4:
+%X:-0x1:1:4:4294967295:
+%*X:-0x1:0:4:
+%X:-0:1:2:0:
+%*X:-0:0:2:
+%X:-0X0:1:4:0:
+%*X:-0X0:0:4:
+%X:-0x0:1:4:0:
+%*X:-0x0:0:4:
+%X:0:1:1:0:
+%*X:0:0:1:
+%X:0X0:1:3:0:
+%*X:0X0:0:3:
+%X:0x0:1:3:0:
+%*X:0x0:0:3:
+%X:1:1:1:1:
+%*X:1:0:1:
+%X:0X1:1:3:1:
+%*X:0X1:0:3:
+%X:0x1:1:3:1:
+%*X:0x1:0:3:
+%X:2a:1:2:42:
+%*X:2a:0:2:
+%X:2A:1:2:42:
+%*X:2A:0:2:
+%X:0X2a:1:4:42:
+%*X:0X2a:0:4:
+%X:0x2A:1:4:42:
+%*X:0x2A:0:4:
+%X:ffffffff:1:8:4294967295:
+%*X:ffffffff:0:8:
+%X:FFFFFFFF:1:8:4294967295:
+%*X:FFFFFFFF:0:8:
+%X:0Xffffffff:1:10:4294967295:
+%*X:0Xffffffff:0:10:
+%X:0xFFFFFFFF:1:10:4294967295:
+%*X:0xFFFFFFFF:0:10:
+%X:100000000:1:9:0:
+%*X:100000000:0:9:
+%X:0X100000000:1:11:0:
+%*X:0X100000000:0:11:
+%X:0x100000000:1:11:0:
+%*X:0x100000000:0:11:
+%X:100001091:1:9:4241:
+%*X:100001091:0:9:
+%X:0X100001091:1:11:4241:
+%*X:0X100001091:0:11:
+%X:0x100001091:1:11:4241:
+%*X:0x100001091:0:11:
+%X:+0:1:2:0:
+%*X:+0:0:2:
+%X:+0X0:1:4:0:
+%*X:+0X0:0:4:
+%X:+0x0:1:4:0:
+%*X:+0x0:0:4:
+%X:+1:1:2:1:
+%*X:+1:0:2:
+%X:+0X1:1:4:1:
+%*X:+0X1:0:4:
+%X:+0x1:1:4:1:
+%*X:+0x1:0:4:
+%X:+2a:1:3:42:
+%*X:+2a:0:3:
+%X:+2A:1:3:42:
+%*X:+2A:0:3:
+%X:+0X2a:1:5:42:
+%*X:+0X2a:0:5:
+%X:+0x2A:1:5:42:
+%*X:+0x2A:0:5:
+%X:+ffffffff:1:9:4294967295:
+%*X:+ffffffff:0:9:
+%X:+FFFFFFFF:1:9:4294967295:
+%*X:+FFFFFFFF:0:9:
+%X:+0Xffffffff:1:11:4294967295:
+%*X:+0Xffffffff:0:11:
+%X:+0xFFFFFFFF:1:11:4294967295:
+%*X:+0xFFFFFFFF:0:11:
+%X:+100000000:1:10:0:
+%*X:+100000000:0:10:
+%X:+0X100000000:1:12:0:
+%*X:+0X100000000:0:12:
+%X:+0x100000000:1:12:0:
+%*X:+0x100000000:0:12:
+%X:+100001091:1:10:4241:
+%*X:+100001091:0:10:
+%X:+0X100001091:1:12:4241:
+%*X:+0X100001091:0:12:
+%X:+0x100001091:1:12:4241:
+%*X:+0x100001091:0:12:
+%1X::0:-1:
+%*1X::0:-1:
+%1X:-7b:0:-1:
+%*1X:-7b:0:-1:
+%1X:-7B:0:-1:
+%*1X:-7B:0:-1:
+%1X:-0X7b:0:-1:
+%*1X:-0X7b:0:-1:
+%1X:-0x7B:0:-1:
+%*1X:-0x7B:0:-1:
+%1X:-1:0:-1:
+%*1X:-1:0:-1:
+%1X:-0X1:0:-1:
+%*1X:-0X1:0:-1:
+%1X:-0x1:0:-1:
+%*1X:-0x1:0:-1:
+%1X:-0:0:-1:
+%*1X:-0:0:-1:
+%1X:-0X0:0:-1:
+%*1X:-0X0:0:-1:
+%1X:-0x0:0:-1:
+%*1X:-0x0:0:-1:
+%1X:0:1:1:0:
+%*1X:0:0:1:
+%1X:0X0:1:1:0:
+%*1X:0X0:0:1:
+%1X:0x0:1:1:0:
+%*1X:0x0:0:1:
+%1X:1:1:1:1:
+%*1X:1:0:1:
+%1X:0X1:1:1:0:
+%*1X:0X1:0:1:
+%1X:0x1:1:1:0:
+%*1X:0x1:0:1:
+%1X:2a:1:1:2:
+%*1X:2a:0:1:
+%1X:2A:1:1:2:
+%*1X:2A:0:1:
+%1X:0X2a:1:1:0:
+%*1X:0X2a:0:1:
+%1X:0x2A:1:1:0:
+%*1X:0x2A:0:1:
+%1X:ffffffff:1:1:15:
+%*1X:ffffffff:0:1:
+%1X:FFFFFFFF:1:1:15:
+%*1X:FFFFFFFF:0:1:
+%1X:0Xffffffff:1:1:0:
+%*1X:0Xffffffff:0:1:
+%1X:0xFFFFFFFF:1:1:0:
+%*1X:0xFFFFFFFF:0:1:
+%1X:100000000:1:1:1:
+%*1X:100000000:0:1:
+%1X:0X100000000:1:1:0:
+%*1X:0X100000000:0:1:
+%1X:0x100000000:1:1:0:
+%*1X:0x100000000:0:1:
+%1X:100001091:1:1:1:
+%*1X:100001091:0:1:
+%1X:0X100001091:1:1:0:
+%*1X:0X100001091:0:1:
+%1X:0x100001091:1:1:0:
+%*1X:0x100001091:0:1:
+%1X:+0:0:-1:
+%*1X:+0:0:-1:
+%1X:+0X0:0:-1:
+%*1X:+0X0:0:-1:
+%1X:+0x0:0:-1:
+%*1X:+0x0:0:-1:
+%1X:+1:0:-1:
+%*1X:+1:0:-1:
+%1X:+0X1:0:-1:
+%*1X:+0X1:0:-1:
+%1X:+0x1:0:-1:
+%*1X:+0x1:0:-1:
+%1X:+2a:0:-1:
+%*1X:+2a:0:-1:
+%1X:+2A:0:-1:
+%*1X:+2A:0:-1:
+%1X:+0X2a:0:-1:
+%*1X:+0X2a:0:-1:
+%1X:+0x2A:0:-1:
+%*1X:+0x2A:0:-1:
+%1X:+ffffffff:0:-1:
+%*1X:+ffffffff:0:-1:
+%1X:+FFFFFFFF:0:-1:
+%*1X:+FFFFFFFF:0:-1:
+%1X:+0Xffffffff:0:-1:
+%*1X:+0Xffffffff:0:-1:
+%1X:+0xFFFFFFFF:0:-1:
+%*1X:+0xFFFFFFFF:0:-1:
+%1X:+100000000:0:-1:
+%*1X:+100000000:0:-1:
+%1X:+0X100000000:0:-1:
+%*1X:+0X100000000:0:-1:
+%1X:+0x100000000:0:-1:
+%*1X:+0x100000000:0:-1:
+%1X:+100001091:0:-1:
+%*1X:+100001091:0:-1:
+%1X:+0X100001091:0:-1:
+%*1X:+0X100001091:0:-1:
+%1X:+0x100001091:0:-1:
+%*1X:+0x100001091:0:-1:
+%2X::0:-1:
+%*2X::0:-1:
+%2X:-7b:1:2:4294967289:
+%*2X:-7b:0:2:
+%2X:-7B:1:2:4294967289:
+%*2X:-7B:0:2:
+%2X:-0X7b:1:2:0:
+%*2X:-0X7b:0:2:
+%2X:-0x7B:1:2:0:
+%*2X:-0x7B:0:2:
+%2X:-1:1:2:4294967295:
+%*2X:-1:0:2:
+%2X:-0X1:1:2:0:
+%*2X:-0X1:0:2:
+%2X:-0x1:1:2:0:
+%*2X:-0x1:0:2:
+%2X:-0:1:2:0:
+%*2X:-0:0:2:
+%2X:-0X0:1:2:0:
+%*2X:-0X0:0:2:
+%2X:-0x0:1:2:0:
+%*2X:-0x0:0:2:
+%2X:0:1:1:0:
+%*2X:0:0:1:
+%2X:0X0:0:-1:
+%*2X:0X0:0:-1:
+%2X:0x0:0:-1:
+%*2X:0x0:0:-1:
+%2X:1:1:1:1:
+%*2X:1:0:1:
+%2X:0X1:0:-1:
+%*2X:0X1:0:-1:
+%2X:0x1:0:-1:
+%*2X:0x1:0:-1:
+%2X:2a:1:2:42:
+%*2X:2a:0:2:
+%2X:2A:1:2:42:
+%*2X:2A:0:2:
+%2X:0X2a:0:-1:
+%*2X:0X2a:0:-1:
+%2X:0x2A:0:-1:
+%*2X:0x2A:0:-1:
+%2X:ffffffff:1:2:255:
+%*2X:ffffffff:0:2:
+%2X:FFFFFFFF:1:2:255:
+%*2X:FFFFFFFF:0:2:
+%2X:0Xffffffff:0:-1:
+%*2X:0Xffffffff:0:-1:
+%2X:0xFFFFFFFF:0:-1:
+%*2X:0xFFFFFFFF:0:-1:
+%2X:100000000:1:2:16:
+%*2X:100000000:0:2:
+%2X:0X100000000:0:-1:
+%*2X:0X100000000:0:-1:
+%2X:0x100000000:0:-1:
+%*2X:0x100000000:0:-1:
+%2X:100001091:1:2:16:
+%*2X:100001091:0:2:
+%2X:0X100001091:0:-1:
+%*2X:0X100001091:0:-1:
+%2X:0x100001091:0:-1:
+%*2X:0x100001091:0:-1:
+%2X:+0:1:2:0:
+%*2X:+0:0:2:
+%2X:+0X0:1:2:0:
+%*2X:+0X0:0:2:
+%2X:+0x0:1:2:0:
+%*2X:+0x0:0:2:
+%2X:+1:1:2:1:
+%*2X:+1:0:2:
+%2X:+0X1:1:2:0:
+%*2X:+0X1:0:2:
+%2X:+0x1:1:2:0:
+%*2X:+0x1:0:2:
+%2X:+2a:1:2:2:
+%*2X:+2a:0:2:
+%2X:+2A:1:2:2:
+%*2X:+2A:0:2:
+%2X:+0X2a:1:2:0:
+%*2X:+0X2a:0:2:
+%2X:+0x2A:1:2:0:
+%*2X:+0x2A:0:2:
+%2X:+ffffffff:1:2:15:
+%*2X:+ffffffff:0:2:
+%2X:+FFFFFFFF:1:2:15:
+%*2X:+FFFFFFFF:0:2:
+%2X:+0Xffffffff:1:2:0:
+%*2X:+0Xffffffff:0:2:
+%2X:+0xFFFFFFFF:1:2:0:
+%*2X:+0xFFFFFFFF:0:2:
+%2X:+100000000:1:2:1:
+%*2X:+100000000:0:2:
+%2X:+0X100000000:1:2:0:
+%*2X:+0X100000000:0:2:
+%2X:+0x100000000:1:2:0:
+%*2X:+0x100000000:0:2:
+%2X:+100001091:1:2:1:
+%*2X:+100001091:0:2:
+%2X:+0X100001091:1:2:0:
+%*2X:+0X100001091:0:2:
+%2X:+0x100001091:1:2:0:
+%*2X:+0x100001091:0:2:
+%8X::0:-1:
+%*8X::0:-1:
+%8X:-7b:1:3:4294967173:
+%*8X:-7b:0:3:
+%8X:-7B:1:3:4294967173:
+%*8X:-7B:0:3:
+%8X:-0X7b:1:5:4294967173:
+%*8X:-0X7b:0:5:
+%8X:-0x7B:1:5:4294967173:
+%*8X:-0x7B:0:5:
+%8X:-1:1:2:4294967295:
+%*8X:-1:0:2:
+%8X:-0X1:1:4:4294967295:
+%*8X:-0X1:0:4:
+%8X:-0x1:1:4:4294967295:
+%*8X:-0x1:0:4:
+%8X:-0:1:2:0:
+%*8X:-0:0:2:
+%8X:-0X0:1:4:0:
+%*8X:-0X0:0:4:
+%8X:-0x0:1:4:0:
+%*8X:-0x0:0:4:
+%8X:0:1:1:0:
+%*8X:0:0:1:
+%8X:0X0:1:3:0:
+%*8X:0X0:0:3:
+%8X:0x0:1:3:0:
+%*8X:0x0:0:3:
+%8X:1:1:1:1:
+%*8X:1:0:1:
+%8X:0X1:1:3:1:
+%*8X:0X1:0:3:
+%8X:0x1:1:3:1:
+%*8X:0x1:0:3:
+%8X:2a:1:2:42:
+%*8X:2a:0:2:
+%8X:2A:1:2:42:
+%*8X:2A:0:2:
+%8X:0X2a:1:4:42:
+%*8X:0X2a:0:4:
+%8X:0x2A:1:4:42:
+%*8X:0x2A:0:4:
+%8X:ffffffff:1:8:4294967295:
+%*8X:ffffffff:0:8:
+%8X:FFFFFFFF:1:8:4294967295:
+%*8X:FFFFFFFF:0:8:
+%8X:0Xffffffff:1:8:16777215:
+%*8X:0Xffffffff:0:8:
+%8X:0xFFFFFFFF:1:8:16777215:
+%*8X:0xFFFFFFFF:0:8:
+%8X:100000000:1:8:268435456:
+%*8X:100000000:0:8:
+%8X:0X100000000:1:8:1048576:
+%*8X:0X100000000:0:8:
+%8X:0x100000000:1:8:1048576:
+%*8X:0x100000000:0:8:
+%8X:100001091:1:8:268435721:
+%*8X:100001091:0:8:
+%8X:0X100001091:1:8:1048577:
+%*8X:0X100001091:0:8:
+%8X:0x100001091:1:8:1048577:
+%*8X:0x100001091:0:8:
+%8X:+0:1:2:0:
+%*8X:+0:0:2:
+%8X:+0X0:1:4:0:
+%*8X:+0X0:0:4:
+%8X:+0x0:1:4:0:
+%*8X:+0x0:0:4:
+%8X:+1:1:2:1:
+%*8X:+1:0:2:
+%8X:+0X1:1:4:1:
+%*8X:+0X1:0:4:
+%8X:+0x1:1:4:1:
+%*8X:+0x1:0:4:
+%8X:+2a:1:3:42:
+%*8X:+2a:0:3:
+%8X:+2A:1:3:42:
+%*8X:+2A:0:3:
+%8X:+0X2a:1:5:42:
+%*8X:+0X2a:0:5:
+%8X:+0x2A:1:5:42:
+%*8X:+0x2A:0:5:
+%8X:+ffffffff:1:8:268435455:
+%*8X:+ffffffff:0:8:
+%8X:+FFFFFFFF:1:8:268435455:
+%*8X:+FFFFFFFF:0:8:
+%8X:+0Xffffffff:1:8:1048575:
+%*8X:+0Xffffffff:0:8:
+%8X:+0xFFFFFFFF:1:8:1048575:
+%*8X:+0xFFFFFFFF:0:8:
+%8X:+100000000:1:8:16777216:
+%*8X:+100000000:0:8:
+%8X:+0X100000000:1:8:65536:
+%*8X:+0X100000000:0:8:
+%8X:+0x100000000:1:8:65536:
+%*8X:+0x100000000:0:8:
+%8X:+100001091:1:8:16777232:
+%*8X:+100001091:0:8:
+%8X:+0X100001091:1:8:65536:
+%*8X:+0X100001091:0:8:
+%8X:+0x100001091:1:8:65536:
+%*8X:+0x100001091:0:8:
+%15X::0:-1:
+%*15X::0:-1:
+%15X:-7b:1:3:4294967173:
+%*15X:-7b:0:3:
+%15X:-7B:1:3:4294967173:
+%*15X:-7B:0:3:
+%15X:-0X7b:1:5:4294967173:
+%*15X:-0X7b:0:5:
+%15X:-0x7B:1:5:4294967173:
+%*15X:-0x7B:0:5:
+%15X:-1:1:2:4294967295:
+%*15X:-1:0:2:
+%15X:-0X1:1:4:4294967295:
+%*15X:-0X1:0:4:
+%15X:-0x1:1:4:4294967295:
+%*15X:-0x1:0:4:
+%15X:-0:1:2:0:
+%*15X:-0:0:2:
+%15X:-0X0:1:4:0:
+%*15X:-0X0:0:4:
+%15X:-0x0:1:4:0:
+%*15X:-0x0:0:4:
+%15X:0:1:1:0:
+%*15X:0:0:1:
+%15X:0X0:1:3:0:
+%*15X:0X0:0:3:
+%15X:0x0:1:3:0:
+%*15X:0x0:0:3:
+%15X:1:1:1:1:
+%*15X:1:0:1:
+%15X:0X1:1:3:1:
+%*15X:0X1:0:3:
+%15X:0x1:1:3:1:
+%*15X:0x1:0:3:
+%15X:2a:1:2:42:
+%*15X:2a:0:2:
+%15X:2A:1:2:42:
+%*15X:2A:0:2:
+%15X:0X2a:1:4:42:
+%*15X:0X2a:0:4:
+%15X:0x2A:1:4:42:
+%*15X:0x2A:0:4:
+%15X:ffffffff:1:8:4294967295:
+%*15X:ffffffff:0:8:
+%15X:FFFFFFFF:1:8:4294967295:
+%*15X:FFFFFFFF:0:8:
+%15X:0Xffffffff:1:10:4294967295:
+%*15X:0Xffffffff:0:10:
+%15X:0xFFFFFFFF:1:10:4294967295:
+%*15X:0xFFFFFFFF:0:10:
+%15X:100000000:1:9:0:
+%*15X:100000000:0:9:
+%15X:0X100000000:1:11:0:
+%*15X:0X100000000:0:11:
+%15X:0x100000000:1:11:0:
+%*15X:0x100000000:0:11:
+%15X:100001091:1:9:4241:
+%*15X:100001091:0:9:
+%15X:0X100001091:1:11:4241:
+%*15X:0X100001091:0:11:
+%15X:0x100001091:1:11:4241:
+%*15X:0x100001091:0:11:
+%15X:+0:1:2:0:
+%*15X:+0:0:2:
+%15X:+0X0:1:4:0:
+%*15X:+0X0:0:4:
+%15X:+0x0:1:4:0:
+%*15X:+0x0:0:4:
+%15X:+1:1:2:1:
+%*15X:+1:0:2:
+%15X:+0X1:1:4:1:
+%*15X:+0X1:0:4:
+%15X:+0x1:1:4:1:
+%*15X:+0x1:0:4:
+%15X:+2a:1:3:42:
+%*15X:+2a:0:3:
+%15X:+2A:1:3:42:
+%*15X:+2A:0:3:
+%15X:+0X2a:1:5:42:
+%*15X:+0X2a:0:5:
+%15X:+0x2A:1:5:42:
+%*15X:+0x2A:0:5:
+%15X:+ffffffff:1:9:4294967295:
+%*15X:+ffffffff:0:9:
+%15X:+FFFFFFFF:1:9:4294967295:
+%*15X:+FFFFFFFF:0:9:
+%15X:+0Xffffffff:1:11:4294967295:
+%*15X:+0Xffffffff:0:11:
+%15X:+0xFFFFFFFF:1:11:4294967295:
+%*15X:+0xFFFFFFFF:0:11:
+%15X:+100000000:1:10:0:
+%*15X:+100000000:0:10:
+%15X:+0X100000000:1:12:0:
+%*15X:+0X100000000:0:12:
+%15X:+0x100000000:1:12:0:
+%*15X:+0x100000000:0:12:
+%15X:+100001091:1:10:4241:
+%*15X:+100001091:0:10:
+%15X:+0X100001091:1:12:4241:
+%*15X:+0X100001091:0:12:
+%15X:+0x100001091:1:12:4241:
+%*15X:+0x100001091:0:12:
+%2X: :0:-1:
+%*2X: :0:-1:
+%2X: -7b:1:3:4294967289:
+%*2X: -7b:0:3:
+%2X: -7B:1:3:4294967289:
+%*2X: -7B:0:3:
+%2X: -0X7b:1:3:0:
+%*2X: -0X7b:0:3:
+%2X: -0x7B:1:3:0:
+%*2X: -0x7B:0:3:
+%2X: -1:1:3:4294967295:
+%*2X: -1:0:3:
+%2X: -0X1:1:3:0:
+%*2X: -0X1:0:3:
+%2X: -0x1:1:3:0:
+%*2X: -0x1:0:3:
+%2X: -0:1:3:0:
+%*2X: -0:0:3:
+%2X: -0X0:1:3:0:
+%*2X: -0X0:0:3:
+%2X: -0x0:1:3:0:
+%*2X: -0x0:0:3:
+%2X: 0:1:2:0:
+%*2X: 0:0:2:
+%2X: 0X0:0:-1:
+%*2X: 0X0:0:-1:
+%2X: 0x0:0:-1:
+%*2X: 0x0:0:-1:
+%2X: 1:1:2:1:
+%*2X: 1:0:2:
+%2X: 0X1:0:-1:
+%*2X: 0X1:0:-1:
+%2X: 0x1:0:-1:
+%*2X: 0x1:0:-1:
+%2X: 2a:1:3:42:
+%*2X: 2a:0:3:
+%2X: 2A:1:3:42:
+%*2X: 2A:0:3:
+%2X: 0X2a:0:-1:
+%*2X: 0X2a:0:-1:
+%2X: 0x2A:0:-1:
+%*2X: 0x2A:0:-1:
+%2X: ffffffff:1:3:255:
+%*2X: ffffffff:0:3:
+%2X: FFFFFFFF:1:3:255:
+%*2X: FFFFFFFF:0:3:
+%2X: 0Xffffffff:0:-1:
+%*2X: 0Xffffffff:0:-1:
+%2X: 0xFFFFFFFF:0:-1:
+%*2X: 0xFFFFFFFF:0:-1:
+%2X: 100000000:1:3:16:
+%*2X: 100000000:0:3:
+%2X: 0X100000000:0:-1:
+%*2X: 0X100000000:0:-1:
+%2X: 0x100000000:0:-1:
+%*2X: 0x100000000:0:-1:
+%2X: 100001091:1:3:16:
+%*2X: 100001091:0:3:
+%2X: 0X100001091:0:-1:
+%*2X: 0X100001091:0:-1:
+%2X: 0x100001091:0:-1:
+%*2X: 0x100001091:0:-1:
+%2X: +0:1:3:0:
+%*2X: +0:0:3:
+%2X: +0X0:1:3:0:
+%*2X: +0X0:0:3:
+%2X: +0x0:1:3:0:
+%*2X: +0x0:0:3:
+%2X: +1:1:3:1:
+%*2X: +1:0:3:
+%2X: +0X1:1:3:0:
+%*2X: +0X1:0:3:
+%2X: +0x1:1:3:0:
+%*2X: +0x1:0:3:
+%2X: +2a:1:3:2:
+%*2X: +2a:0:3:
+%2X: +2A:1:3:2:
+%*2X: +2A:0:3:
+%2X: +0X2a:1:3:0:
+%*2X: +0X2a:0:3:
+%2X: +0x2A:1:3:0:
+%*2X: +0x2A:0:3:
+%2X: +ffffffff:1:3:15:
+%*2X: +ffffffff:0:3:
+%2X: +FFFFFFFF:1:3:15:
+%*2X: +FFFFFFFF:0:3:
+%2X: +0Xffffffff:1:3:0:
+%*2X: +0Xffffffff:0:3:
+%2X: +0xFFFFFFFF:1:3:0:
+%*2X: +0xFFFFFFFF:0:3:
+%2X: +100000000:1:3:1:
+%*2X: +100000000:0:3:
+%2X: +0X100000000:1:3:0:
+%*2X: +0X100000000:0:3:
+%2X: +0x100000000:1:3:0:
+%*2X: +0x100000000:0:3:
+%2X: +100001091:1:3:1:
+%*2X: +100001091:0:3:
+%2X: +0X100001091:1:3:0:
+%*2X: +0X100001091:0:3:
+%2X: +0x100001091:1:3:0:
+%*2X: +0x100001091:0:3:
+%15X: :0:-1:
+%*15X: :0:-1:
+%15X: -7b:1:4:4294967173:
+%*15X: -7b:0:4:
+%15X: -7B:1:4:4294967173:
+%*15X: -7B:0:4:
+%15X: -0X7b:1:6:4294967173:
+%*15X: -0X7b:0:6:
+%15X: -0x7B:1:6:4294967173:
+%*15X: -0x7B:0:6:
+%15X: -1:1:3:4294967295:
+%*15X: -1:0:3:
+%15X: -0X1:1:5:4294967295:
+%*15X: -0X1:0:5:
+%15X: -0x1:1:5:4294967295:
+%*15X: -0x1:0:5:
+%15X: -0:1:3:0:
+%*15X: -0:0:3:
+%15X: -0X0:1:5:0:
+%*15X: -0X0:0:5:
+%15X: -0x0:1:5:0:
+%*15X: -0x0:0:5:
+%15X: 0:1:2:0:
+%*15X: 0:0:2:
+%15X: 0X0:1:4:0:
+%*15X: 0X0:0:4:
+%15X: 0x0:1:4:0:
+%*15X: 0x0:0:4:
+%15X: 1:1:2:1:
+%*15X: 1:0:2:
+%15X: 0X1:1:4:1:
+%*15X: 0X1:0:4:
+%15X: 0x1:1:4:1:
+%*15X: 0x1:0:4:
+%15X: 2a:1:3:42:
+%*15X: 2a:0:3:
+%15X: 2A:1:3:42:
+%*15X: 2A:0:3:
+%15X: 0X2a:1:5:42:
+%*15X: 0X2a:0:5:
+%15X: 0x2A:1:5:42:
+%*15X: 0x2A:0:5:
+%15X: ffffffff:1:9:4294967295:
+%*15X: ffffffff:0:9:
+%15X: FFFFFFFF:1:9:4294967295:
+%*15X: FFFFFFFF:0:9:
+%15X: 0Xffffffff:1:11:4294967295:
+%*15X: 0Xffffffff:0:11:
+%15X: 0xFFFFFFFF:1:11:4294967295:
+%*15X: 0xFFFFFFFF:0:11:
+%15X: 100000000:1:10:0:
+%*15X: 100000000:0:10:
+%15X: 0X100000000:1:12:0:
+%*15X: 0X100000000:0:12:
+%15X: 0x100000000:1:12:0:
+%*15X: 0x100000000:0:12:
+%15X: 100001091:1:10:4241:
+%*15X: 100001091:0:10:
+%15X: 0X100001091:1:12:4241:
+%*15X: 0X100001091:0:12:
+%15X: 0x100001091:1:12:4241:
+%*15X: 0x100001091:0:12:
+%15X: +0:1:3:0:
+%*15X: +0:0:3:
+%15X: +0X0:1:5:0:
+%*15X: +0X0:0:5:
+%15X: +0x0:1:5:0:
+%*15X: +0x0:0:5:
+%15X: +1:1:3:1:
+%*15X: +1:0:3:
+%15X: +0X1:1:5:1:
+%*15X: +0X1:0:5:
+%15X: +0x1:1:5:1:
+%*15X: +0x1:0:5:
+%15X: +2a:1:4:42:
+%*15X: +2a:0:4:
+%15X: +2A:1:4:42:
+%*15X: +2A:0:4:
+%15X: +0X2a:1:6:42:
+%*15X: +0X2a:0:6:
+%15X: +0x2A:1:6:42:
+%*15X: +0x2A:0:6:
+%15X: +ffffffff:1:10:4294967295:
+%*15X: +ffffffff:0:10:
+%15X: +FFFFFFFF:1:10:4294967295:
+%*15X: +FFFFFFFF:0:10:
+%15X: +0Xffffffff:1:12:4294967295:
+%*15X: +0Xffffffff:0:12:
+%15X: +0xFFFFFFFF:1:12:4294967295:
+%*15X: +0xFFFFFFFF:0:12:
+%15X: +100000000:1:11:0:
+%*15X: +100000000:0:11:
+%15X: +0X100000000:1:13:0:
+%*15X: +0X100000000:0:13:
+%15X: +0x100000000:1:13:0:
+%*15X: +0x100000000:0:13:
+%15X: +100001091:1:11:4241:
+%*15X: +100001091:0:11:
+%15X: +0X100001091:1:13:4241:
+%*15X: +0X100001091:0:13:
+%15X: +0x100001091:1:13:4241:
+%*15X: +0x100001091:0:13:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input
new file mode 100644
index 0000000..fe5b910
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input
@@ -0,0 +1,644 @@
+%lb::0:-1:
+%*lb::0:-1:
+%lb:-1111011:1:8:-123:
+%*lb:-1111011:0:8:
+%lb:-0B1111011:1:10:-123:
+%*lb:-0B1111011:0:10:
+%lb:-0b1111011:1:10:-123:
+%*lb:-0b1111011:0:10:
+%lb:-1:1:2:-1:
+%*lb:-1:0:2:
+%lb:-0B1:1:4:-1:
+%*lb:-0B1:0:4:
+%lb:-0b1:1:4:-1:
+%*lb:-0b1:0:4:
+%lb:-0:1:2:0:
+%*lb:-0:0:2:
+%lb:-0B0:1:4:0:
+%*lb:-0B0:0:4:
+%lb:-0b0:1:4:0:
+%*lb:-0b0:0:4:
+%lb:0:1:1:0:
+%*lb:0:0:1:
+%lb:0B0:1:3:0:
+%*lb:0B0:0:3:
+%lb:0b0:1:3:0:
+%*lb:0b0:0:3:
+%lb:1:1:1:1:
+%*lb:1:0:1:
+%lb:0B1:1:3:1:
+%*lb:0B1:0:3:
+%lb:0b1:1:3:1:
+%*lb:0b1:0:3:
+%lb:101010:1:6:42:
+%*lb:101010:0:6:
+%lb:0B101010:1:8:42:
+%*lb:0B101010:0:8:
+%lb:0b101010:1:8:42:
+%*lb:0b101010:0:8:
+%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615:
+%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64:
+%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615:
+%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66:
+%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615:
+%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66:
+%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615:
+%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65:
+%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615:
+%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67:
+%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615:
+%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67:
+%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615:
+%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65:
+%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615:
+%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67:
+%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615:
+%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67:
+%lb:+0:1:2:0:
+%*lb:+0:0:2:
+%lb:+0B0:1:4:0:
+%*lb:+0B0:0:4:
+%lb:+0b0:1:4:0:
+%*lb:+0b0:0:4:
+%lb:+1:1:2:1:
+%*lb:+1:0:2:
+%lb:+0B1:1:4:1:
+%*lb:+0B1:0:4:
+%lb:+0b1:1:4:1:
+%*lb:+0b1:0:4:
+%lb:+101010:1:7:42:
+%*lb:+101010:0:7:
+%lb:+0B101010:1:9:42:
+%*lb:+0B101010:0:9:
+%lb:+0b101010:1:9:42:
+%*lb:+0b101010:0:9:
+%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615:
+%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65:
+%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615:
+%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67:
+%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615:
+%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67:
+%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615:
+%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66:
+%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615:
+%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68:
+%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615:
+%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68:
+%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615:
+%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66:
+%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615:
+%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68:
+%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615:
+%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68:
+%1lb::0:-1:
+%*1lb::0:-1:
+%1lb:-1111011:0:-1:
+%*1lb:-1111011:0:-1:
+%1lb:-0B1111011:0:-1:
+%*1lb:-0B1111011:0:-1:
+%1lb:-0b1111011:0:-1:
+%*1lb:-0b1111011:0:-1:
+%1lb:-1:0:-1:
+%*1lb:-1:0:-1:
+%1lb:-0B1:0:-1:
+%*1lb:-0B1:0:-1:
+%1lb:-0b1:0:-1:
+%*1lb:-0b1:0:-1:
+%1lb:-0:0:-1:
+%*1lb:-0:0:-1:
+%1lb:-0B0:0:-1:
+%*1lb:-0B0:0:-1:
+%1lb:-0b0:0:-1:
+%*1lb:-0b0:0:-1:
+%1lb:0:1:1:0:
+%*1lb:0:0:1:
+%1lb:0B0:1:1:0:
+%*1lb:0B0:0:1:
+%1lb:0b0:1:1:0:
+%*1lb:0b0:0:1:
+%1lb:1:1:1:1:
+%*1lb:1:0:1:
+%1lb:0B1:1:1:0:
+%*1lb:0B1:0:1:
+%1lb:0b1:1:1:0:
+%*1lb:0b1:0:1:
+%1lb:101010:1:1:1:
+%*1lb:101010:0:1:
+%1lb:0B101010:1:1:0:
+%*1lb:0B101010:0:1:
+%1lb:0b101010:1:1:0:
+%*1lb:0b101010:0:1:
+%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1:
+%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1:
+%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0:
+%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1:
+%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0:
+%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1:
+%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1:
+%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1:
+%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0:
+%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1:
+%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0:
+%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1:
+%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1:
+%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1:
+%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0:
+%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1:
+%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0:
+%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1:
+%1lb:+0:0:-1:
+%*1lb:+0:0:-1:
+%1lb:+0B0:0:-1:
+%*1lb:+0B0:0:-1:
+%1lb:+0b0:0:-1:
+%*1lb:+0b0:0:-1:
+%1lb:+1:0:-1:
+%*1lb:+1:0:-1:
+%1lb:+0B1:0:-1:
+%*1lb:+0B1:0:-1:
+%1lb:+0b1:0:-1:
+%*1lb:+0b1:0:-1:
+%1lb:+101010:0:-1:
+%*1lb:+101010:0:-1:
+%1lb:+0B101010:0:-1:
+%*1lb:+0B101010:0:-1:
+%1lb:+0b101010:0:-1:
+%*1lb:+0b101010:0:-1:
+%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2lb::0:-1:
+%*2lb::0:-1:
+%2lb:-1111011:1:2:-1:
+%*2lb:-1111011:0:2:
+%2lb:-0B1111011:1:2:0:
+%*2lb:-0B1111011:0:2:
+%2lb:-0b1111011:1:2:0:
+%*2lb:-0b1111011:0:2:
+%2lb:-1:1:2:-1:
+%*2lb:-1:0:2:
+%2lb:-0B1:1:2:0:
+%*2lb:-0B1:0:2:
+%2lb:-0b1:1:2:0:
+%*2lb:-0b1:0:2:
+%2lb:-0:1:2:0:
+%*2lb:-0:0:2:
+%2lb:-0B0:1:2:0:
+%*2lb:-0B0:0:2:
+%2lb:-0b0:1:2:0:
+%*2lb:-0b0:0:2:
+%2lb:0:1:1:0:
+%*2lb:0:0:1:
+%2lb:0B0:0:-1:
+%*2lb:0B0:0:-1:
+%2lb:0b0:0:-1:
+%*2lb:0b0:0:-1:
+%2lb:1:1:1:1:
+%*2lb:1:0:1:
+%2lb:0B1:0:-1:
+%*2lb:0B1:0:-1:
+%2lb:0b1:0:-1:
+%*2lb:0b1:0:-1:
+%2lb:101010:1:2:2:
+%*2lb:101010:0:2:
+%2lb:0B101010:0:-1:
+%*2lb:0B101010:0:-1:
+%2lb:0b101010:0:-1:
+%*2lb:0b101010:0:-1:
+%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3:
+%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2:
+%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2:
+%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2:
+%2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2lb:+0:1:2:0:
+%*2lb:+0:0:2:
+%2lb:+0B0:1:2:0:
+%*2lb:+0B0:0:2:
+%2lb:+0b0:1:2:0:
+%*2lb:+0b0:0:2:
+%2lb:+1:1:2:1:
+%*2lb:+1:0:2:
+%2lb:+0B1:1:2:0:
+%*2lb:+0B1:0:2:
+%2lb:+0b1:1:2:0:
+%*2lb:+0b1:0:2:
+%2lb:+101010:1:2:1:
+%*2lb:+101010:0:2:
+%2lb:+0B101010:1:2:0:
+%*2lb:+0B101010:0:2:
+%2lb:+0b101010:1:2:0:
+%*2lb:+0b101010:0:2:
+%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1:
+%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0:
+%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0:
+%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2:
+%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1:
+%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0:
+%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2:
+%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1:
+%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2:
+%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0:
+%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2:
+%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0:
+%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2:
+%15lb::0:-1:
+%*15lb::0:-1:
+%15lb:-1111011:1:8:-123:
+%*15lb:-1111011:0:8:
+%15lb:-0B1111011:1:10:-123:
+%*15lb:-0B1111011:0:10:
+%15lb:-0b1111011:1:10:-123:
+%*15lb:-0b1111011:0:10:
+%15lb:-1:1:2:-1:
+%*15lb:-1:0:2:
+%15lb:-0B1:1:4:-1:
+%*15lb:-0B1:0:4:
+%15lb:-0b1:1:4:-1:
+%*15lb:-0b1:0:4:
+%15lb:-0:1:2:0:
+%*15lb:-0:0:2:
+%15lb:-0B0:1:4:0:
+%*15lb:-0B0:0:4:
+%15lb:-0b0:1:4:0:
+%*15lb:-0b0:0:4:
+%15lb:0:1:1:0:
+%*15lb:0:0:1:
+%15lb:0B0:1:3:0:
+%*15lb:0B0:0:3:
+%15lb:0b0:1:3:0:
+%*15lb:0b0:0:3:
+%15lb:1:1:1:1:
+%*15lb:1:0:1:
+%15lb:0B1:1:3:1:
+%*15lb:0B1:0:3:
+%15lb:0b1:1:3:1:
+%*15lb:0b1:0:3:
+%15lb:101010:1:6:42:
+%*15lb:101010:0:6:
+%15lb:0B101010:1:8:42:
+%*15lb:0B101010:0:8:
+%15lb:0b101010:1:8:42:
+%*15lb:0b101010:0:8:
+%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767:
+%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191:
+%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191:
+%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384:
+%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096:
+%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096:
+%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384:
+%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096:
+%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096:
+%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15lb:+0:1:2:0:
+%*15lb:+0:0:2:
+%15lb:+0B0:1:4:0:
+%*15lb:+0B0:0:4:
+%15lb:+0b0:1:4:0:
+%*15lb:+0b0:0:4:
+%15lb:+1:1:2:1:
+%*15lb:+1:0:2:
+%15lb:+0B1:1:4:1:
+%*15lb:+0B1:0:4:
+%15lb:+0b1:1:4:1:
+%*15lb:+0b1:0:4:
+%15lb:+101010:1:7:42:
+%*15lb:+101010:0:7:
+%15lb:+0B101010:1:9:42:
+%*15lb:+0B101010:0:9:
+%15lb:+0b101010:1:9:42:
+%*15lb:+0b101010:0:9:
+%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383:
+%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095:
+%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095:
+%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15:
+%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192:
+%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048:
+%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048:
+%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15:
+%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192:
+%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048:
+%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048:
+%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15:
+%25lb::0:-1:
+%*25lb::0:-1:
+%25lb:-1111011:1:8:-123:
+%*25lb:-1111011:0:8:
+%25lb:-0B1111011:1:10:-123:
+%*25lb:-0B1111011:0:10:
+%25lb:-0b1111011:1:10:-123:
+%*25lb:-0b1111011:0:10:
+%25lb:-1:1:2:-1:
+%*25lb:-1:0:2:
+%25lb:-0B1:1:4:-1:
+%*25lb:-0B1:0:4:
+%25lb:-0b1:1:4:-1:
+%*25lb:-0b1:0:4:
+%25lb:-0:1:2:0:
+%*25lb:-0:0:2:
+%25lb:-0B0:1:4:0:
+%*25lb:-0B0:0:4:
+%25lb:-0b0:1:4:0:
+%*25lb:-0b0:0:4:
+%25lb:0:1:1:0:
+%*25lb:0:0:1:
+%25lb:0B0:1:3:0:
+%*25lb:0B0:0:3:
+%25lb:0b0:1:3:0:
+%*25lb:0b0:0:3:
+%25lb:1:1:1:1:
+%*25lb:1:0:1:
+%25lb:0B1:1:3:1:
+%*25lb:0B1:0:3:
+%25lb:0b1:1:3:1:
+%*25lb:0b1:0:3:
+%25lb:101010:1:6:42:
+%*25lb:101010:0:6:
+%25lb:0B101010:1:8:42:
+%*25lb:0B101010:0:8:
+%25lb:0b101010:1:8:42:
+%*25lb:0b101010:0:8:
+%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431:
+%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607:
+%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607:
+%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216:
+%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304:
+%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304:
+%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216:
+%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304:
+%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304:
+%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25lb:+0:1:2:0:
+%*25lb:+0:0:2:
+%25lb:+0B0:1:4:0:
+%*25lb:+0B0:0:4:
+%25lb:+0b0:1:4:0:
+%*25lb:+0b0:0:4:
+%25lb:+1:1:2:1:
+%*25lb:+1:0:2:
+%25lb:+0B1:1:4:1:
+%*25lb:+0B1:0:4:
+%25lb:+0b1:1:4:1:
+%*25lb:+0b1:0:4:
+%25lb:+101010:1:7:42:
+%*25lb:+101010:0:7:
+%25lb:+0B101010:1:9:42:
+%*25lb:+0B101010:0:9:
+%25lb:+0b101010:1:9:42:
+%*25lb:+0b101010:0:9:
+%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215:
+%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303:
+%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303:
+%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25:
+%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608:
+%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152:
+%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152:
+%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25:
+%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608:
+%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152:
+%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152:
+%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25:
+%2lb: :0:-1:
+%*2lb: :0:-1:
+%2lb: -1111011:1:3:-1:
+%*2lb: -1111011:0:3:
+%2lb: -0B1111011:1:3:0:
+%*2lb: -0B1111011:0:3:
+%2lb: -0b1111011:1:3:0:
+%*2lb: -0b1111011:0:3:
+%2lb: -1:1:3:-1:
+%*2lb: -1:0:3:
+%2lb: -0B1:1:3:0:
+%*2lb: -0B1:0:3:
+%2lb: -0b1:1:3:0:
+%*2lb: -0b1:0:3:
+%2lb: -0:1:3:0:
+%*2lb: -0:0:3:
+%2lb: -0B0:1:3:0:
+%*2lb: -0B0:0:3:
+%2lb: -0b0:1:3:0:
+%*2lb: -0b0:0:3:
+%2lb: 0:1:2:0:
+%*2lb: 0:0:2:
+%2lb: 0B0:0:-1:
+%*2lb: 0B0:0:-1:
+%2lb: 0b0:0:-1:
+%*2lb: 0b0:0:-1:
+%2lb: 1:1:2:1:
+%*2lb: 1:0:2:
+%2lb: 0B1:0:-1:
+%*2lb: 0B1:0:-1:
+%2lb: 0b1:0:-1:
+%*2lb: 0b1:0:-1:
+%2lb: 101010:1:3:2:
+%*2lb: 101010:0:3:
+%2lb: 0B101010:0:-1:
+%*2lb: 0B101010:0:-1:
+%2lb: 0b101010:0:-1:
+%*2lb: 0b101010:0:-1:
+%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3:
+%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1:
+%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2:
+%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1:
+%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2:
+%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3:
+%2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1:
+%2lb: +0:1:3:0:
+%*2lb: +0:0:3:
+%2lb: +0B0:1:3:0:
+%*2lb: +0B0:0:3:
+%2lb: +0b0:1:3:0:
+%*2lb: +0b0:0:3:
+%2lb: +1:1:3:1:
+%*2lb: +1:0:3:
+%2lb: +0B1:1:3:0:
+%*2lb: +0B1:0:3:
+%2lb: +0b1:1:3:0:
+%*2lb: +0b1:0:3:
+%2lb: +101010:1:3:1:
+%*2lb: +101010:0:3:
+%2lb: +0B101010:1:3:0:
+%*2lb: +0B101010:0:3:
+%2lb: +0b101010:1:3:0:
+%*2lb: +0b101010:0:3:
+%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1:
+%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0:
+%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0:
+%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3:
+%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1:
+%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0:
+%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3:
+%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1:
+%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3:
+%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0:
+%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3:
+%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0:
+%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3:
+%25lb: :0:-1:
+%*25lb: :0:-1:
+%25lb: -1111011:1:9:-123:
+%*25lb: -1111011:0:9:
+%25lb: -0B1111011:1:11:-123:
+%*25lb: -0B1111011:0:11:
+%25lb: -0b1111011:1:11:-123:
+%*25lb: -0b1111011:0:11:
+%25lb: -1:1:3:-1:
+%*25lb: -1:0:3:
+%25lb: -0B1:1:5:-1:
+%*25lb: -0B1:0:5:
+%25lb: -0b1:1:5:-1:
+%*25lb: -0b1:0:5:
+%25lb: -0:1:3:0:
+%*25lb: -0:0:3:
+%25lb: -0B0:1:5:0:
+%*25lb: -0B0:0:5:
+%25lb: -0b0:1:5:0:
+%*25lb: -0b0:0:5:
+%25lb: 0:1:2:0:
+%*25lb: 0:0:2:
+%25lb: 0B0:1:4:0:
+%*25lb: 0B0:0:4:
+%25lb: 0b0:1:4:0:
+%*25lb: 0b0:0:4:
+%25lb: 1:1:2:1:
+%*25lb: 1:0:2:
+%25lb: 0B1:1:4:1:
+%*25lb: 0B1:0:4:
+%25lb: 0b1:1:4:1:
+%*25lb: 0b1:0:4:
+%25lb: 101010:1:7:42:
+%*25lb: 101010:0:7:
+%25lb: 0B101010:1:9:42:
+%*25lb: 0B101010:0:9:
+%25lb: 0b101010:1:9:42:
+%*25lb: 0b101010:0:9:
+%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431:
+%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607:
+%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607:
+%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216:
+%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304:
+%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304:
+%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216:
+%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304:
+%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304:
+%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25lb: +0:1:3:0:
+%*25lb: +0:0:3:
+%25lb: +0B0:1:5:0:
+%*25lb: +0B0:0:5:
+%25lb: +0b0:1:5:0:
+%*25lb: +0b0:0:5:
+%25lb: +1:1:3:1:
+%*25lb: +1:0:3:
+%25lb: +0B1:1:5:1:
+%*25lb: +0B1:0:5:
+%25lb: +0b1:1:5:1:
+%*25lb: +0b1:0:5:
+%25lb: +101010:1:8:42:
+%*25lb: +101010:0:8:
+%25lb: +0B101010:1:10:42:
+%*25lb: +0B101010:0:10:
+%25lb: +0b101010:1:10:42:
+%*25lb: +0b101010:0:10:
+%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215:
+%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303:
+%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303:
+%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26:
+%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608:
+%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152:
+%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152:
+%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26:
+%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608:
+%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152:
+%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26:
+%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152:
+%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input
new file mode 100644
index 0000000..dba0c62
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input
@@ -0,0 +1,434 @@
+%lo::0:-1:
+%*lo::0:-1:
+%lo:-173:1:4:-123:
+%*lo:-173:0:4:
+%lo:-0173:1:5:-123:
+%*lo:-0173:0:5:
+%lo:-1:1:2:-1:
+%*lo:-1:0:2:
+%lo:-01:1:3:-1:
+%*lo:-01:0:3:
+%lo:-0:1:2:0:
+%*lo:-0:0:2:
+%lo:-00:1:3:0:
+%*lo:-00:0:3:
+%lo:0:1:1:0:
+%*lo:0:0:1:
+%lo:00:1:2:0:
+%*lo:00:0:2:
+%lo:1:1:1:1:
+%*lo:1:0:1:
+%lo:01:1:2:1:
+%*lo:01:0:2:
+%lo:52:1:2:42:
+%*lo:52:0:2:
+%lo:052:1:3:42:
+%*lo:052:0:3:
+%lo:1777777777777777777777:1:22:18446744073709551615:
+%*lo:1777777777777777777777:0:22:
+%lo:01777777777777777777777:1:23:18446744073709551615:
+%*lo:01777777777777777777777:0:23:
+%lo:2000000000000000000000:1:22:18446744073709551615:
+%*lo:2000000000000000000000:0:22:
+%lo:02000000000000000000000:1:23:18446744073709551615:
+%*lo:02000000000000000000000:0:23:
+%lo:2000000000000241653661:1:22:18446744073709551615:
+%*lo:2000000000000241653661:0:22:
+%lo:02000000000000241653661:1:23:18446744073709551615:
+%*lo:02000000000000241653661:0:23:
+%lo:+0:1:2:0:
+%*lo:+0:0:2:
+%lo:+00:1:3:0:
+%*lo:+00:0:3:
+%lo:+1:1:2:1:
+%*lo:+1:0:2:
+%lo:+01:1:3:1:
+%*lo:+01:0:3:
+%lo:+52:1:3:42:
+%*lo:+52:0:3:
+%lo:+052:1:4:42:
+%*lo:+052:0:4:
+%lo:+1777777777777777777777:1:23:18446744073709551615:
+%*lo:+1777777777777777777777:0:23:
+%lo:+01777777777777777777777:1:24:18446744073709551615:
+%*lo:+01777777777777777777777:0:24:
+%lo:+2000000000000000000000:1:23:18446744073709551615:
+%*lo:+2000000000000000000000:0:23:
+%lo:+02000000000000000000000:1:24:18446744073709551615:
+%*lo:+02000000000000000000000:0:24:
+%lo:+2000000000000241653661:1:23:18446744073709551615:
+%*lo:+2000000000000241653661:0:23:
+%lo:+02000000000000241653661:1:24:18446744073709551615:
+%*lo:+02000000000000241653661:0:24:
+%1lo::0:-1:
+%*1lo::0:-1:
+%1lo:-173:0:-1:
+%*1lo:-173:0:-1:
+%1lo:-0173:0:-1:
+%*1lo:-0173:0:-1:
+%1lo:-1:0:-1:
+%*1lo:-1:0:-1:
+%1lo:-01:0:-1:
+%*1lo:-01:0:-1:
+%1lo:-0:0:-1:
+%*1lo:-0:0:-1:
+%1lo:-00:0:-1:
+%*1lo:-00:0:-1:
+%1lo:0:1:1:0:
+%*1lo:0:0:1:
+%1lo:00:1:1:0:
+%*1lo:00:0:1:
+%1lo:1:1:1:1:
+%*1lo:1:0:1:
+%1lo:01:1:1:0:
+%*1lo:01:0:1:
+%1lo:52:1:1:5:
+%*1lo:52:0:1:
+%1lo:052:1:1:0:
+%*1lo:052:0:1:
+%1lo:1777777777777777777777:1:1:1:
+%*1lo:1777777777777777777777:0:1:
+%1lo:01777777777777777777777:1:1:0:
+%*1lo:01777777777777777777777:0:1:
+%1lo:2000000000000000000000:1:1:2:
+%*1lo:2000000000000000000000:0:1:
+%1lo:02000000000000000000000:1:1:0:
+%*1lo:02000000000000000000000:0:1:
+%1lo:2000000000000241653661:1:1:2:
+%*1lo:2000000000000241653661:0:1:
+%1lo:02000000000000241653661:1:1:0:
+%*1lo:02000000000000241653661:0:1:
+%1lo:+0:0:-1:
+%*1lo:+0:0:-1:
+%1lo:+00:0:-1:
+%*1lo:+00:0:-1:
+%1lo:+1:0:-1:
+%*1lo:+1:0:-1:
+%1lo:+01:0:-1:
+%*1lo:+01:0:-1:
+%1lo:+52:0:-1:
+%*1lo:+52:0:-1:
+%1lo:+052:0:-1:
+%*1lo:+052:0:-1:
+%1lo:+1777777777777777777777:0:-1:
+%*1lo:+1777777777777777777777:0:-1:
+%1lo:+01777777777777777777777:0:-1:
+%*1lo:+01777777777777777777777:0:-1:
+%1lo:+2000000000000000000000:0:-1:
+%*1lo:+2000000000000000000000:0:-1:
+%1lo:+02000000000000000000000:0:-1:
+%*1lo:+02000000000000000000000:0:-1:
+%1lo:+2000000000000241653661:0:-1:
+%*1lo:+2000000000000241653661:0:-1:
+%1lo:+02000000000000241653661:0:-1:
+%*1lo:+02000000000000241653661:0:-1:
+%2lo::0:-1:
+%*2lo::0:-1:
+%2lo:-173:1:2:-1:
+%*2lo:-173:0:2:
+%2lo:-0173:1:2:0:
+%*2lo:-0173:0:2:
+%2lo:-1:1:2:-1:
+%*2lo:-1:0:2:
+%2lo:-01:1:2:0:
+%*2lo:-01:0:2:
+%2lo:-0:1:2:0:
+%*2lo:-0:0:2:
+%2lo:-00:1:2:0:
+%*2lo:-00:0:2:
+%2lo:0:1:1:0:
+%*2lo:0:0:1:
+%2lo:00:1:2:0:
+%*2lo:00:0:2:
+%2lo:1:1:1:1:
+%*2lo:1:0:1:
+%2lo:01:1:2:1:
+%*2lo:01:0:2:
+%2lo:52:1:2:42:
+%*2lo:52:0:2:
+%2lo:052:1:2:5:
+%*2lo:052:0:2:
+%2lo:1777777777777777777777:1:2:15:
+%*2lo:1777777777777777777777:0:2:
+%2lo:01777777777777777777777:1:2:1:
+%*2lo:01777777777777777777777:0:2:
+%2lo:2000000000000000000000:1:2:16:
+%*2lo:2000000000000000000000:0:2:
+%2lo:02000000000000000000000:1:2:2:
+%*2lo:02000000000000000000000:0:2:
+%2lo:2000000000000241653661:1:2:16:
+%*2lo:2000000000000241653661:0:2:
+%2lo:02000000000000241653661:1:2:2:
+%*2lo:02000000000000241653661:0:2:
+%2lo:+0:1:2:0:
+%*2lo:+0:0:2:
+%2lo:+00:1:2:0:
+%*2lo:+00:0:2:
+%2lo:+1:1:2:1:
+%*2lo:+1:0:2:
+%2lo:+01:1:2:0:
+%*2lo:+01:0:2:
+%2lo:+52:1:2:5:
+%*2lo:+52:0:2:
+%2lo:+052:1:2:0:
+%*2lo:+052:0:2:
+%2lo:+1777777777777777777777:1:2:1:
+%*2lo:+1777777777777777777777:0:2:
+%2lo:+01777777777777777777777:1:2:0:
+%*2lo:+01777777777777777777777:0:2:
+%2lo:+2000000000000000000000:1:2:2:
+%*2lo:+2000000000000000000000:0:2:
+%2lo:+02000000000000000000000:1:2:0:
+%*2lo:+02000000000000000000000:0:2:
+%2lo:+2000000000000241653661:1:2:2:
+%*2lo:+2000000000000241653661:0:2:
+%2lo:+02000000000000241653661:1:2:0:
+%*2lo:+02000000000000241653661:0:2:
+%15lo::0:-1:
+%*15lo::0:-1:
+%15lo:-173:1:4:-123:
+%*15lo:-173:0:4:
+%15lo:-0173:1:5:-123:
+%*15lo:-0173:0:5:
+%15lo:-1:1:2:-1:
+%*15lo:-1:0:2:
+%15lo:-01:1:3:-1:
+%*15lo:-01:0:3:
+%15lo:-0:1:2:0:
+%*15lo:-0:0:2:
+%15lo:-00:1:3:0:
+%*15lo:-00:0:3:
+%15lo:0:1:1:0:
+%*15lo:0:0:1:
+%15lo:00:1:2:0:
+%*15lo:00:0:2:
+%15lo:1:1:1:1:
+%*15lo:1:0:1:
+%15lo:01:1:2:1:
+%*15lo:01:0:2:
+%15lo:52:1:2:42:
+%*15lo:52:0:2:
+%15lo:052:1:3:42:
+%*15lo:052:0:3:
+%15lo:1777777777777777777777:1:15:8796093022207:
+%*15lo:1777777777777777777777:0:15:
+%15lo:01777777777777777777777:1:15:1099511627775:
+%*15lo:01777777777777777777777:0:15:
+%15lo:2000000000000000000000:1:15:8796093022208:
+%*15lo:2000000000000000000000:0:15:
+%15lo:02000000000000000000000:1:15:1099511627776:
+%*15lo:02000000000000000000000:0:15:
+%15lo:2000000000000241653661:1:15:8796093022228:
+%*15lo:2000000000000241653661:0:15:
+%15lo:02000000000000241653661:1:15:1099511627778:
+%*15lo:02000000000000241653661:0:15:
+%15lo:+0:1:2:0:
+%*15lo:+0:0:2:
+%15lo:+00:1:3:0:
+%*15lo:+00:0:3:
+%15lo:+1:1:2:1:
+%*15lo:+1:0:2:
+%15lo:+01:1:3:1:
+%*15lo:+01:0:3:
+%15lo:+52:1:3:42:
+%*15lo:+52:0:3:
+%15lo:+052:1:4:42:
+%*15lo:+052:0:4:
+%15lo:+1777777777777777777777:1:15:1099511627775:
+%*15lo:+1777777777777777777777:0:15:
+%15lo:+01777777777777777777777:1:15:137438953471:
+%*15lo:+01777777777777777777777:0:15:
+%15lo:+2000000000000000000000:1:15:1099511627776:
+%*15lo:+2000000000000000000000:0:15:
+%15lo:+02000000000000000000000:1:15:137438953472:
+%*15lo:+02000000000000000000000:0:15:
+%15lo:+2000000000000241653661:1:15:1099511627778:
+%*15lo:+2000000000000241653661:0:15:
+%15lo:+02000000000000241653661:1:15:137438953472:
+%*15lo:+02000000000000241653661:0:15:
+%25lo::0:-1:
+%*25lo::0:-1:
+%25lo:-173:1:4:-123:
+%*25lo:-173:0:4:
+%25lo:-0173:1:5:-123:
+%*25lo:-0173:0:5:
+%25lo:-1:1:2:-1:
+%*25lo:-1:0:2:
+%25lo:-01:1:3:-1:
+%*25lo:-01:0:3:
+%25lo:-0:1:2:0:
+%*25lo:-0:0:2:
+%25lo:-00:1:3:0:
+%*25lo:-00:0:3:
+%25lo:0:1:1:0:
+%*25lo:0:0:1:
+%25lo:00:1:2:0:
+%*25lo:00:0:2:
+%25lo:1:1:1:1:
+%*25lo:1:0:1:
+%25lo:01:1:2:1:
+%*25lo:01:0:2:
+%25lo:52:1:2:42:
+%*25lo:52:0:2:
+%25lo:052:1:3:42:
+%*25lo:052:0:3:
+%25lo:1777777777777777777777:1:22:18446744073709551615:
+%*25lo:1777777777777777777777:0:22:
+%25lo:01777777777777777777777:1:23:18446744073709551615:
+%*25lo:01777777777777777777777:0:23:
+%25lo:2000000000000000000000:1:22:18446744073709551615:
+%*25lo:2000000000000000000000:0:22:
+%25lo:02000000000000000000000:1:23:18446744073709551615:
+%*25lo:02000000000000000000000:0:23:
+%25lo:2000000000000241653661:1:22:18446744073709551615:
+%*25lo:2000000000000241653661:0:22:
+%25lo:02000000000000241653661:1:23:18446744073709551615:
+%*25lo:02000000000000241653661:0:23:
+%25lo:+0:1:2:0:
+%*25lo:+0:0:2:
+%25lo:+00:1:3:0:
+%*25lo:+00:0:3:
+%25lo:+1:1:2:1:
+%*25lo:+1:0:2:
+%25lo:+01:1:3:1:
+%*25lo:+01:0:3:
+%25lo:+52:1:3:42:
+%*25lo:+52:0:3:
+%25lo:+052:1:4:42:
+%*25lo:+052:0:4:
+%25lo:+1777777777777777777777:1:23:18446744073709551615:
+%*25lo:+1777777777777777777777:0:23:
+%25lo:+01777777777777777777777:1:24:18446744073709551615:
+%*25lo:+01777777777777777777777:0:24:
+%25lo:+2000000000000000000000:1:23:18446744073709551615:
+%*25lo:+2000000000000000000000:0:23:
+%25lo:+02000000000000000000000:1:24:18446744073709551615:
+%*25lo:+02000000000000000000000:0:24:
+%25lo:+2000000000000241653661:1:23:18446744073709551615:
+%*25lo:+2000000000000241653661:0:23:
+%25lo:+02000000000000241653661:1:24:18446744073709551615:
+%*25lo:+02000000000000241653661:0:24:
+%2lo: :0:-1:
+%*2lo: :0:-1:
+%2lo: -173:1:3:-1:
+%*2lo: -173:0:3:
+%2lo: -0173:1:3:0:
+%*2lo: -0173:0:3:
+%2lo: -1:1:3:-1:
+%*2lo: -1:0:3:
+%2lo: -01:1:3:0:
+%*2lo: -01:0:3:
+%2lo: -0:1:3:0:
+%*2lo: -0:0:3:
+%2lo: -00:1:3:0:
+%*2lo: -00:0:3:
+%2lo: 0:1:2:0:
+%*2lo: 0:0:2:
+%2lo: 00:1:3:0:
+%*2lo: 00:0:3:
+%2lo: 1:1:2:1:
+%*2lo: 1:0:2:
+%2lo: 01:1:3:1:
+%*2lo: 01:0:3:
+%2lo: 52:1:3:42:
+%*2lo: 52:0:3:
+%2lo: 052:1:3:5:
+%*2lo: 052:0:3:
+%2lo: 1777777777777777777777:1:3:15:
+%*2lo: 1777777777777777777777:0:3:
+%2lo: 01777777777777777777777:1:3:1:
+%*2lo: 01777777777777777777777:0:3:
+%2lo: 2000000000000000000000:1:3:16:
+%*2lo: 2000000000000000000000:0:3:
+%2lo: 02000000000000000000000:1:3:2:
+%*2lo: 02000000000000000000000:0:3:
+%2lo: 2000000000000241653661:1:3:16:
+%*2lo: 2000000000000241653661:0:3:
+%2lo: 02000000000000241653661:1:3:2:
+%*2lo: 02000000000000241653661:0:3:
+%2lo: +0:1:3:0:
+%*2lo: +0:0:3:
+%2lo: +00:1:3:0:
+%*2lo: +00:0:3:
+%2lo: +1:1:3:1:
+%*2lo: +1:0:3:
+%2lo: +01:1:3:0:
+%*2lo: +01:0:3:
+%2lo: +52:1:3:5:
+%*2lo: +52:0:3:
+%2lo: +052:1:3:0:
+%*2lo: +052:0:3:
+%2lo: +1777777777777777777777:1:3:1:
+%*2lo: +1777777777777777777777:0:3:
+%2lo: +01777777777777777777777:1:3:0:
+%*2lo: +01777777777777777777777:0:3:
+%2lo: +2000000000000000000000:1:3:2:
+%*2lo: +2000000000000000000000:0:3:
+%2lo: +02000000000000000000000:1:3:0:
+%*2lo: +02000000000000000000000:0:3:
+%2lo: +2000000000000241653661:1:3:2:
+%*2lo: +2000000000000241653661:0:3:
+%2lo: +02000000000000241653661:1:3:0:
+%*2lo: +02000000000000241653661:0:3:
+%25lo: :0:-1:
+%*25lo: :0:-1:
+%25lo: -173:1:5:-123:
+%*25lo: -173:0:5:
+%25lo: -0173:1:6:-123:
+%*25lo: -0173:0:6:
+%25lo: -1:1:3:-1:
+%*25lo: -1:0:3:
+%25lo: -01:1:4:-1:
+%*25lo: -01:0:4:
+%25lo: -0:1:3:0:
+%*25lo: -0:0:3:
+%25lo: -00:1:4:0:
+%*25lo: -00:0:4:
+%25lo: 0:1:2:0:
+%*25lo: 0:0:2:
+%25lo: 00:1:3:0:
+%*25lo: 00:0:3:
+%25lo: 1:1:2:1:
+%*25lo: 1:0:2:
+%25lo: 01:1:3:1:
+%*25lo: 01:0:3:
+%25lo: 52:1:3:42:
+%*25lo: 52:0:3:
+%25lo: 052:1:4:42:
+%*25lo: 052:0:4:
+%25lo: 1777777777777777777777:1:23:18446744073709551615:
+%*25lo: 1777777777777777777777:0:23:
+%25lo: 01777777777777777777777:1:24:18446744073709551615:
+%*25lo: 01777777777777777777777:0:24:
+%25lo: 2000000000000000000000:1:23:18446744073709551615:
+%*25lo: 2000000000000000000000:0:23:
+%25lo: 02000000000000000000000:1:24:18446744073709551615:
+%*25lo: 02000000000000000000000:0:24:
+%25lo: 2000000000000241653661:1:23:18446744073709551615:
+%*25lo: 2000000000000241653661:0:23:
+%25lo: 02000000000000241653661:1:24:18446744073709551615:
+%*25lo: 02000000000000241653661:0:24:
+%25lo: +0:1:3:0:
+%*25lo: +0:0:3:
+%25lo: +00:1:4:0:
+%*25lo: +00:0:4:
+%25lo: +1:1:3:1:
+%*25lo: +1:0:3:
+%25lo: +01:1:4:1:
+%*25lo: +01:0:4:
+%25lo: +52:1:4:42:
+%*25lo: +52:0:4:
+%25lo: +052:1:5:42:
+%*25lo: +052:0:5:
+%25lo: +1777777777777777777777:1:24:18446744073709551615:
+%*25lo: +1777777777777777777777:0:24:
+%25lo: +01777777777777777777777:1:25:18446744073709551615:
+%*25lo: +01777777777777777777777:0:25:
+%25lo: +2000000000000000000000:1:24:18446744073709551615:
+%*25lo: +2000000000000000000000:0:24:
+%25lo: +02000000000000000000000:1:25:18446744073709551615:
+%*25lo: +02000000000000000000000:0:25:
+%25lo: +2000000000000241653661:1:24:18446744073709551615:
+%*25lo: +2000000000000241653661:0:24:
+%25lo: +02000000000000241653661:1:25:18446744073709551615:
+%*25lo: +02000000000000241653661:0:25:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input
new file mode 100644
index 0000000..6f42e20
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input
@@ -0,0 +1,224 @@
+%lu::0:-1:
+%*lu::0:-1:
+%lu:-123:1:4:18446744073709551493:
+%*lu:-123:0:4:
+%lu:-1:1:2:18446744073709551615:
+%*lu:-1:0:2:
+%lu:-0:1:2:0:
+%*lu:-0:0:2:
+%lu:0:1:1:0:
+%*lu:0:0:1:
+%lu:1:1:1:1:
+%*lu:1:0:1:
+%lu:42:1:2:42:
+%*lu:42:0:2:
+%lu:18446744073709551615:1:20:18446744073709551615:
+%*lu:18446744073709551615:0:20:
+%lu:18446744073709551616:1:20:18446744073709551615:
+%*lu:18446744073709551616:0:20:
+%lu:18446744073751975857:1:20:18446744073709551615:
+%*lu:18446744073751975857:0:20:
+%lu:+0:1:2:0:
+%*lu:+0:0:2:
+%lu:+1:1:2:1:
+%*lu:+1:0:2:
+%lu:+42:1:3:42:
+%*lu:+42:0:3:
+%lu:+18446744073709551615:1:21:18446744073709551615:
+%*lu:+18446744073709551615:0:21:
+%lu:+18446744073709551616:1:21:18446744073709551615:
+%*lu:+18446744073709551616:0:21:
+%lu:+18446744073751975857:1:21:18446744073709551615:
+%*lu:+18446744073751975857:0:21:
+%1lu::0:-1:
+%*1lu::0:-1:
+%1lu:-123:0:-1:
+%*1lu:-123:0:-1:
+%1lu:-1:0:-1:
+%*1lu:-1:0:-1:
+%1lu:-0:0:-1:
+%*1lu:-0:0:-1:
+%1lu:0:1:1:0:
+%*1lu:0:0:1:
+%1lu:1:1:1:1:
+%*1lu:1:0:1:
+%1lu:42:1:1:4:
+%*1lu:42:0:1:
+%1lu:18446744073709551615:1:1:1:
+%*1lu:18446744073709551615:0:1:
+%1lu:18446744073709551616:1:1:1:
+%*1lu:18446744073709551616:0:1:
+%1lu:18446744073751975857:1:1:1:
+%*1lu:18446744073751975857:0:1:
+%1lu:+0:0:-1:
+%*1lu:+0:0:-1:
+%1lu:+1:0:-1:
+%*1lu:+1:0:-1:
+%1lu:+42:0:-1:
+%*1lu:+42:0:-1:
+%1lu:+18446744073709551615:0:-1:
+%*1lu:+18446744073709551615:0:-1:
+%1lu:+18446744073709551616:0:-1:
+%*1lu:+18446744073709551616:0:-1:
+%1lu:+18446744073751975857:0:-1:
+%*1lu:+18446744073751975857:0:-1:
+%2lu::0:-1:
+%*2lu::0:-1:
+%2lu:-123:1:2:18446744073709551615:
+%*2lu:-123:0:2:
+%2lu:-1:1:2:18446744073709551615:
+%*2lu:-1:0:2:
+%2lu:-0:1:2:0:
+%*2lu:-0:0:2:
+%2lu:0:1:1:0:
+%*2lu:0:0:1:
+%2lu:1:1:1:1:
+%*2lu:1:0:1:
+%2lu:42:1:2:42:
+%*2lu:42:0:2:
+%2lu:18446744073709551615:1:2:18:
+%*2lu:18446744073709551615:0:2:
+%2lu:18446744073709551616:1:2:18:
+%*2lu:18446744073709551616:0:2:
+%2lu:18446744073751975857:1:2:18:
+%*2lu:18446744073751975857:0:2:
+%2lu:+0:1:2:0:
+%*2lu:+0:0:2:
+%2lu:+1:1:2:1:
+%*2lu:+1:0:2:
+%2lu:+42:1:2:4:
+%*2lu:+42:0:2:
+%2lu:+18446744073709551615:1:2:1:
+%*2lu:+18446744073709551615:0:2:
+%2lu:+18446744073709551616:1:2:1:
+%*2lu:+18446744073709551616:0:2:
+%2lu:+18446744073751975857:1:2:1:
+%*2lu:+18446744073751975857:0:2:
+%15lu::0:-1:
+%*15lu::0:-1:
+%15lu:-123:1:4:18446744073709551493:
+%*15lu:-123:0:4:
+%15lu:-1:1:2:18446744073709551615:
+%*15lu:-1:0:2:
+%15lu:-0:1:2:0:
+%*15lu:-0:0:2:
+%15lu:0:1:1:0:
+%*15lu:0:0:1:
+%15lu:1:1:1:1:
+%*15lu:1:0:1:
+%15lu:42:1:2:42:
+%*15lu:42:0:2:
+%15lu:18446744073709551615:1:15:184467440737095:
+%*15lu:18446744073709551615:0:15:
+%15lu:18446744073709551616:1:15:184467440737095:
+%*15lu:18446744073709551616:0:15:
+%15lu:18446744073751975857:1:15:184467440737519:
+%*15lu:18446744073751975857:0:15:
+%15lu:+0:1:2:0:
+%*15lu:+0:0:2:
+%15lu:+1:1:2:1:
+%*15lu:+1:0:2:
+%15lu:+42:1:3:42:
+%*15lu:+42:0:3:
+%15lu:+18446744073709551615:1:15:18446744073709:
+%*15lu:+18446744073709551615:0:15:
+%15lu:+18446744073709551616:1:15:18446744073709:
+%*15lu:+18446744073709551616:0:15:
+%15lu:+18446744073751975857:1:15:18446744073751:
+%*15lu:+18446744073751975857:0:15:
+%25lu::0:-1:
+%*25lu::0:-1:
+%25lu:-123:1:4:18446744073709551493:
+%*25lu:-123:0:4:
+%25lu:-1:1:2:18446744073709551615:
+%*25lu:-1:0:2:
+%25lu:-0:1:2:0:
+%*25lu:-0:0:2:
+%25lu:0:1:1:0:
+%*25lu:0:0:1:
+%25lu:1:1:1:1:
+%*25lu:1:0:1:
+%25lu:42:1:2:42:
+%*25lu:42:0:2:
+%25lu:18446744073709551615:1:20:18446744073709551615:
+%*25lu:18446744073709551615:0:20:
+%25lu:18446744073709551616:1:20:18446744073709551615:
+%*25lu:18446744073709551616:0:20:
+%25lu:18446744073751975857:1:20:18446744073709551615:
+%*25lu:18446744073751975857:0:20:
+%25lu:+0:1:2:0:
+%*25lu:+0:0:2:
+%25lu:+1:1:2:1:
+%*25lu:+1:0:2:
+%25lu:+42:1:3:42:
+%*25lu:+42:0:3:
+%25lu:+18446744073709551615:1:21:18446744073709551615:
+%*25lu:+18446744073709551615:0:21:
+%25lu:+18446744073709551616:1:21:18446744073709551615:
+%*25lu:+18446744073709551616:0:21:
+%25lu:+18446744073751975857:1:21:18446744073709551615:
+%*25lu:+18446744073751975857:0:21:
+%2lu: :0:-1:
+%*2lu: :0:-1:
+%2lu: -123:1:3:18446744073709551615:
+%*2lu: -123:0:3:
+%2lu: -1:1:3:18446744073709551615:
+%*2lu: -1:0:3:
+%2lu: -0:1:3:0:
+%*2lu: -0:0:3:
+%2lu: 0:1:2:0:
+%*2lu: 0:0:2:
+%2lu: 1:1:2:1:
+%*2lu: 1:0:2:
+%2lu: 42:1:3:42:
+%*2lu: 42:0:3:
+%2lu: 18446744073709551615:1:3:18:
+%*2lu: 18446744073709551615:0:3:
+%2lu: 18446744073709551616:1:3:18:
+%*2lu: 18446744073709551616:0:3:
+%2lu: 18446744073751975857:1:3:18:
+%*2lu: 18446744073751975857:0:3:
+%2lu: +0:1:3:0:
+%*2lu: +0:0:3:
+%2lu: +1:1:3:1:
+%*2lu: +1:0:3:
+%2lu: +42:1:3:4:
+%*2lu: +42:0:3:
+%2lu: +18446744073709551615:1:3:1:
+%*2lu: +18446744073709551615:0:3:
+%2lu: +18446744073709551616:1:3:1:
+%*2lu: +18446744073709551616:0:3:
+%2lu: +18446744073751975857:1:3:1:
+%*2lu: +18446744073751975857:0:3:
+%25lu: :0:-1:
+%*25lu: :0:-1:
+%25lu: -123:1:5:18446744073709551493:
+%*25lu: -123:0:5:
+%25lu: -1:1:3:18446744073709551615:
+%*25lu: -1:0:3:
+%25lu: -0:1:3:0:
+%*25lu: -0:0:3:
+%25lu: 0:1:2:0:
+%*25lu: 0:0:2:
+%25lu: 1:1:2:1:
+%*25lu: 1:0:2:
+%25lu: 42:1:3:42:
+%*25lu: 42:0:3:
+%25lu: 18446744073709551615:1:21:18446744073709551615:
+%*25lu: 18446744073709551615:0:21:
+%25lu: 18446744073709551616:1:21:18446744073709551615:
+%*25lu: 18446744073709551616:0:21:
+%25lu: 18446744073751975857:1:21:18446744073709551615:
+%*25lu: 18446744073751975857:0:21:
+%25lu: +0:1:3:0:
+%*25lu: +0:0:3:
+%25lu: +1:1:3:1:
+%*25lu: +1:0:3:
+%25lu: +42:1:4:42:
+%*25lu: +42:0:4:
+%25lu: +18446744073709551615:1:22:18446744073709551615:
+%*25lu: +18446744073709551615:0:22:
+%25lu: +18446744073709551616:1:22:18446744073709551615:
+%*25lu: +18446744073709551616:0:22:
+%25lu: +18446744073751975857:1:22:18446744073709551615:
+%*25lu: +18446744073751975857:0:22:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input
new file mode 100644
index 0000000..fca475c
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input
@@ -0,0 +1,742 @@
+%lx::0:-1:
+%*lx::0:-1:
+%lx:-7b:1:3:18446744073709551493:
+%*lx:-7b:0:3:
+%lx:-7B:1:3:18446744073709551493:
+%*lx:-7B:0:3:
+%lx:-0X7b:1:5:18446744073709551493:
+%*lx:-0X7b:0:5:
+%lx:-0x7B:1:5:18446744073709551493:
+%*lx:-0x7B:0:5:
+%lx:-1:1:2:18446744073709551615:
+%*lx:-1:0:2:
+%lx:-0X1:1:4:18446744073709551615:
+%*lx:-0X1:0:4:
+%lx:-0x1:1:4:18446744073709551615:
+%*lx:-0x1:0:4:
+%lx:-0:1:2:0:
+%*lx:-0:0:2:
+%lx:-0X0:1:4:0:
+%*lx:-0X0:0:4:
+%lx:-0x0:1:4:0:
+%*lx:-0x0:0:4:
+%lx:0:1:1:0:
+%*lx:0:0:1:
+%lx:0X0:1:3:0:
+%*lx:0X0:0:3:
+%lx:0x0:1:3:0:
+%*lx:0x0:0:3:
+%lx:1:1:1:1:
+%*lx:1:0:1:
+%lx:0X1:1:3:1:
+%*lx:0X1:0:3:
+%lx:0x1:1:3:1:
+%*lx:0x1:0:3:
+%lx:2a:1:2:42:
+%*lx:2a:0:2:
+%lx:2A:1:2:42:
+%*lx:2A:0:2:
+%lx:0X2a:1:4:42:
+%*lx:0X2a:0:4:
+%lx:0x2A:1:4:42:
+%*lx:0x2A:0:4:
+%lx:ffffffffffffffff:1:16:18446744073709551615:
+%*lx:ffffffffffffffff:0:16:
+%lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615:
+%*lx:FFFFFFFFFFFFFFFF:0:16:
+%lx:0Xffffffffffffffff:1:18:18446744073709551615:
+%*lx:0Xffffffffffffffff:0:18:
+%lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*lx:0xFFFFFFFFFFFFFFFF:0:18:
+%lx:10000000000000000:1:17:18446744073709551615:
+%*lx:10000000000000000:0:17:
+%lx:0X10000000000000000:1:19:18446744073709551615:
+%*lx:0X10000000000000000:0:19:
+%lx:0x10000000000000000:1:19:18446744073709551615:
+%*lx:0x10000000000000000:0:19:
+%lx:100000000028757b1:1:17:18446744073709551615:
+%*lx:100000000028757b1:0:17:
+%lx:100000000028757B1:1:17:18446744073709551615:
+%*lx:100000000028757B1:0:17:
+%lx:0X100000000028757b1:1:19:18446744073709551615:
+%*lx:0X100000000028757b1:0:19:
+%lx:0x100000000028757B1:1:19:18446744073709551615:
+%*lx:0x100000000028757B1:0:19:
+%lx:+0:1:2:0:
+%*lx:+0:0:2:
+%lx:+0X0:1:4:0:
+%*lx:+0X0:0:4:
+%lx:+0x0:1:4:0:
+%*lx:+0x0:0:4:
+%lx:+1:1:2:1:
+%*lx:+1:0:2:
+%lx:+0X1:1:4:1:
+%*lx:+0X1:0:4:
+%lx:+0x1:1:4:1:
+%*lx:+0x1:0:4:
+%lx:+2a:1:3:42:
+%*lx:+2a:0:3:
+%lx:+2A:1:3:42:
+%*lx:+2A:0:3:
+%lx:+0X2a:1:5:42:
+%*lx:+0X2a:0:5:
+%lx:+0x2A:1:5:42:
+%*lx:+0x2A:0:5:
+%lx:+ffffffffffffffff:1:17:18446744073709551615:
+%*lx:+ffffffffffffffff:0:17:
+%lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*lx:+FFFFFFFFFFFFFFFF:0:17:
+%lx:+0Xffffffffffffffff:1:19:18446744073709551615:
+%*lx:+0Xffffffffffffffff:0:19:
+%lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*lx:+0xFFFFFFFFFFFFFFFF:0:19:
+%lx:+10000000000000000:1:18:18446744073709551615:
+%*lx:+10000000000000000:0:18:
+%lx:+0X10000000000000000:1:20:18446744073709551615:
+%*lx:+0X10000000000000000:0:20:
+%lx:+0x10000000000000000:1:20:18446744073709551615:
+%*lx:+0x10000000000000000:0:20:
+%lx:+100000000028757b1:1:18:18446744073709551615:
+%*lx:+100000000028757b1:0:18:
+%lx:+100000000028757B1:1:18:18446744073709551615:
+%*lx:+100000000028757B1:0:18:
+%lx:+0X100000000028757b1:1:20:18446744073709551615:
+%*lx:+0X100000000028757b1:0:20:
+%lx:+0x100000000028757B1:1:20:18446744073709551615:
+%*lx:+0x100000000028757B1:0:20:
+%1lx::0:-1:
+%*1lx::0:-1:
+%1lx:-7b:0:-1:
+%*1lx:-7b:0:-1:
+%1lx:-7B:0:-1:
+%*1lx:-7B:0:-1:
+%1lx:-0X7b:0:-1:
+%*1lx:-0X7b:0:-1:
+%1lx:-0x7B:0:-1:
+%*1lx:-0x7B:0:-1:
+%1lx:-1:0:-1:
+%*1lx:-1:0:-1:
+%1lx:-0X1:0:-1:
+%*1lx:-0X1:0:-1:
+%1lx:-0x1:0:-1:
+%*1lx:-0x1:0:-1:
+%1lx:-0:0:-1:
+%*1lx:-0:0:-1:
+%1lx:-0X0:0:-1:
+%*1lx:-0X0:0:-1:
+%1lx:-0x0:0:-1:
+%*1lx:-0x0:0:-1:
+%1lx:0:1:1:0:
+%*1lx:0:0:1:
+%1lx:0X0:1:1:0:
+%*1lx:0X0:0:1:
+%1lx:0x0:1:1:0:
+%*1lx:0x0:0:1:
+%1lx:1:1:1:1:
+%*1lx:1:0:1:
+%1lx:0X1:1:1:0:
+%*1lx:0X1:0:1:
+%1lx:0x1:1:1:0:
+%*1lx:0x1:0:1:
+%1lx:2a:1:1:2:
+%*1lx:2a:0:1:
+%1lx:2A:1:1:2:
+%*1lx:2A:0:1:
+%1lx:0X2a:1:1:0:
+%*1lx:0X2a:0:1:
+%1lx:0x2A:1:1:0:
+%*1lx:0x2A:0:1:
+%1lx:ffffffffffffffff:1:1:15:
+%*1lx:ffffffffffffffff:0:1:
+%1lx:FFFFFFFFFFFFFFFF:1:1:15:
+%*1lx:FFFFFFFFFFFFFFFF:0:1:
+%1lx:0Xffffffffffffffff:1:1:0:
+%*1lx:0Xffffffffffffffff:0:1:
+%1lx:0xFFFFFFFFFFFFFFFF:1:1:0:
+%*1lx:0xFFFFFFFFFFFFFFFF:0:1:
+%1lx:10000000000000000:1:1:1:
+%*1lx:10000000000000000:0:1:
+%1lx:0X10000000000000000:1:1:0:
+%*1lx:0X10000000000000000:0:1:
+%1lx:0x10000000000000000:1:1:0:
+%*1lx:0x10000000000000000:0:1:
+%1lx:100000000028757b1:1:1:1:
+%*1lx:100000000028757b1:0:1:
+%1lx:100000000028757B1:1:1:1:
+%*1lx:100000000028757B1:0:1:
+%1lx:0X100000000028757b1:1:1:0:
+%*1lx:0X100000000028757b1:0:1:
+%1lx:0x100000000028757B1:1:1:0:
+%*1lx:0x100000000028757B1:0:1:
+%1lx:+0:0:-1:
+%*1lx:+0:0:-1:
+%1lx:+0X0:0:-1:
+%*1lx:+0X0:0:-1:
+%1lx:+0x0:0:-1:
+%*1lx:+0x0:0:-1:
+%1lx:+1:0:-1:
+%*1lx:+1:0:-1:
+%1lx:+0X1:0:-1:
+%*1lx:+0X1:0:-1:
+%1lx:+0x1:0:-1:
+%*1lx:+0x1:0:-1:
+%1lx:+2a:0:-1:
+%*1lx:+2a:0:-1:
+%1lx:+2A:0:-1:
+%*1lx:+2A:0:-1:
+%1lx:+0X2a:0:-1:
+%*1lx:+0X2a:0:-1:
+%1lx:+0x2A:0:-1:
+%*1lx:+0x2A:0:-1:
+%1lx:+ffffffffffffffff:0:-1:
+%*1lx:+ffffffffffffffff:0:-1:
+%1lx:+FFFFFFFFFFFFFFFF:0:-1:
+%*1lx:+FFFFFFFFFFFFFFFF:0:-1:
+%1lx:+0Xffffffffffffffff:0:-1:
+%*1lx:+0Xffffffffffffffff:0:-1:
+%1lx:+0xFFFFFFFFFFFFFFFF:0:-1:
+%*1lx:+0xFFFFFFFFFFFFFFFF:0:-1:
+%1lx:+10000000000000000:0:-1:
+%*1lx:+10000000000000000:0:-1:
+%1lx:+0X10000000000000000:0:-1:
+%*1lx:+0X10000000000000000:0:-1:
+%1lx:+0x10000000000000000:0:-1:
+%*1lx:+0x10000000000000000:0:-1:
+%1lx:+100000000028757b1:0:-1:
+%*1lx:+100000000028757b1:0:-1:
+%1lx:+100000000028757B1:0:-1:
+%*1lx:+100000000028757B1:0:-1:
+%1lx:+0X100000000028757b1:0:-1:
+%*1lx:+0X100000000028757b1:0:-1:
+%1lx:+0x100000000028757B1:0:-1:
+%*1lx:+0x100000000028757B1:0:-1:
+%2lx::0:-1:
+%*2lx::0:-1:
+%2lx:-7b:1:2:18446744073709551609:
+%*2lx:-7b:0:2:
+%2lx:-7B:1:2:18446744073709551609:
+%*2lx:-7B:0:2:
+%2lx:-0X7b:1:2:0:
+%*2lx:-0X7b:0:2:
+%2lx:-0x7B:1:2:0:
+%*2lx:-0x7B:0:2:
+%2lx:-1:1:2:18446744073709551615:
+%*2lx:-1:0:2:
+%2lx:-0X1:1:2:0:
+%*2lx:-0X1:0:2:
+%2lx:-0x1:1:2:0:
+%*2lx:-0x1:0:2:
+%2lx:-0:1:2:0:
+%*2lx:-0:0:2:
+%2lx:-0X0:1:2:0:
+%*2lx:-0X0:0:2:
+%2lx:-0x0:1:2:0:
+%*2lx:-0x0:0:2:
+%2lx:0:1:1:0:
+%*2lx:0:0:1:
+%2lx:0X0:0:-1:
+%*2lx:0X0:0:-1:
+%2lx:0x0:0:-1:
+%*2lx:0x0:0:-1:
+%2lx:1:1:1:1:
+%*2lx:1:0:1:
+%2lx:0X1:0:-1:
+%*2lx:0X1:0:-1:
+%2lx:0x1:0:-1:
+%*2lx:0x1:0:-1:
+%2lx:2a:1:2:42:
+%*2lx:2a:0:2:
+%2lx:2A:1:2:42:
+%*2lx:2A:0:2:
+%2lx:0X2a:0:-1:
+%*2lx:0X2a:0:-1:
+%2lx:0x2A:0:-1:
+%*2lx:0x2A:0:-1:
+%2lx:ffffffffffffffff:1:2:255:
+%*2lx:ffffffffffffffff:0:2:
+%2lx:FFFFFFFFFFFFFFFF:1:2:255:
+%*2lx:FFFFFFFFFFFFFFFF:0:2:
+%2lx:0Xffffffffffffffff:0:-1:
+%*2lx:0Xffffffffffffffff:0:-1:
+%2lx:0xFFFFFFFFFFFFFFFF:0:-1:
+%*2lx:0xFFFFFFFFFFFFFFFF:0:-1:
+%2lx:10000000000000000:1:2:16:
+%*2lx:10000000000000000:0:2:
+%2lx:0X10000000000000000:0:-1:
+%*2lx:0X10000000000000000:0:-1:
+%2lx:0x10000000000000000:0:-1:
+%*2lx:0x10000000000000000:0:-1:
+%2lx:100000000028757b1:1:2:16:
+%*2lx:100000000028757b1:0:2:
+%2lx:100000000028757B1:1:2:16:
+%*2lx:100000000028757B1:0:2:
+%2lx:0X100000000028757b1:0:-1:
+%*2lx:0X100000000028757b1:0:-1:
+%2lx:0x100000000028757B1:0:-1:
+%*2lx:0x100000000028757B1:0:-1:
+%2lx:+0:1:2:0:
+%*2lx:+0:0:2:
+%2lx:+0X0:1:2:0:
+%*2lx:+0X0:0:2:
+%2lx:+0x0:1:2:0:
+%*2lx:+0x0:0:2:
+%2lx:+1:1:2:1:
+%*2lx:+1:0:2:
+%2lx:+0X1:1:2:0:
+%*2lx:+0X1:0:2:
+%2lx:+0x1:1:2:0:
+%*2lx:+0x1:0:2:
+%2lx:+2a:1:2:2:
+%*2lx:+2a:0:2:
+%2lx:+2A:1:2:2:
+%*2lx:+2A:0:2:
+%2lx:+0X2a:1:2:0:
+%*2lx:+0X2a:0:2:
+%2lx:+0x2A:1:2:0:
+%*2lx:+0x2A:0:2:
+%2lx:+ffffffffffffffff:1:2:15:
+%*2lx:+ffffffffffffffff:0:2:
+%2lx:+FFFFFFFFFFFFFFFF:1:2:15:
+%*2lx:+FFFFFFFFFFFFFFFF:0:2:
+%2lx:+0Xffffffffffffffff:1:2:0:
+%*2lx:+0Xffffffffffffffff:0:2:
+%2lx:+0xFFFFFFFFFFFFFFFF:1:2:0:
+%*2lx:+0xFFFFFFFFFFFFFFFF:0:2:
+%2lx:+10000000000000000:1:2:1:
+%*2lx:+10000000000000000:0:2:
+%2lx:+0X10000000000000000:1:2:0:
+%*2lx:+0X10000000000000000:0:2:
+%2lx:+0x10000000000000000:1:2:0:
+%*2lx:+0x10000000000000000:0:2:
+%2lx:+100000000028757b1:1:2:1:
+%*2lx:+100000000028757b1:0:2:
+%2lx:+100000000028757B1:1:2:1:
+%*2lx:+100000000028757B1:0:2:
+%2lx:+0X100000000028757b1:1:2:0:
+%*2lx:+0X100000000028757b1:0:2:
+%2lx:+0x100000000028757B1:1:2:0:
+%*2lx:+0x100000000028757B1:0:2:
+%15lx::0:-1:
+%*15lx::0:-1:
+%15lx:-7b:1:3:18446744073709551493:
+%*15lx:-7b:0:3:
+%15lx:-7B:1:3:18446744073709551493:
+%*15lx:-7B:0:3:
+%15lx:-0X7b:1:5:18446744073709551493:
+%*15lx:-0X7b:0:5:
+%15lx:-0x7B:1:5:18446744073709551493:
+%*15lx:-0x7B:0:5:
+%15lx:-1:1:2:18446744073709551615:
+%*15lx:-1:0:2:
+%15lx:-0X1:1:4:18446744073709551615:
+%*15lx:-0X1:0:4:
+%15lx:-0x1:1:4:18446744073709551615:
+%*15lx:-0x1:0:4:
+%15lx:-0:1:2:0:
+%*15lx:-0:0:2:
+%15lx:-0X0:1:4:0:
+%*15lx:-0X0:0:4:
+%15lx:-0x0:1:4:0:
+%*15lx:-0x0:0:4:
+%15lx:0:1:1:0:
+%*15lx:0:0:1:
+%15lx:0X0:1:3:0:
+%*15lx:0X0:0:3:
+%15lx:0x0:1:3:0:
+%*15lx:0x0:0:3:
+%15lx:1:1:1:1:
+%*15lx:1:0:1:
+%15lx:0X1:1:3:1:
+%*15lx:0X1:0:3:
+%15lx:0x1:1:3:1:
+%*15lx:0x1:0:3:
+%15lx:2a:1:2:42:
+%*15lx:2a:0:2:
+%15lx:2A:1:2:42:
+%*15lx:2A:0:2:
+%15lx:0X2a:1:4:42:
+%*15lx:0X2a:0:4:
+%15lx:0x2A:1:4:42:
+%*15lx:0x2A:0:4:
+%15lx:ffffffffffffffff:1:15:1152921504606846975:
+%*15lx:ffffffffffffffff:0:15:
+%15lx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975:
+%*15lx:FFFFFFFFFFFFFFFF:0:15:
+%15lx:0Xffffffffffffffff:1:15:4503599627370495:
+%*15lx:0Xffffffffffffffff:0:15:
+%15lx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495:
+%*15lx:0xFFFFFFFFFFFFFFFF:0:15:
+%15lx:10000000000000000:1:15:72057594037927936:
+%*15lx:10000000000000000:0:15:
+%15lx:0X10000000000000000:1:15:281474976710656:
+%*15lx:0X10000000000000000:0:15:
+%15lx:0x10000000000000000:1:15:281474976710656:
+%*15lx:0x10000000000000000:0:15:
+%15lx:100000000028757b1:1:15:72057594038093655:
+%*15lx:100000000028757b1:0:15:
+%15lx:100000000028757B1:1:15:72057594038093655:
+%*15lx:100000000028757B1:0:15:
+%15lx:0X100000000028757b1:1:15:281474976711303:
+%*15lx:0X100000000028757b1:0:15:
+%15lx:0x100000000028757B1:1:15:281474976711303:
+%*15lx:0x100000000028757B1:0:15:
+%15lx:+0:1:2:0:
+%*15lx:+0:0:2:
+%15lx:+0X0:1:4:0:
+%*15lx:+0X0:0:4:
+%15lx:+0x0:1:4:0:
+%*15lx:+0x0:0:4:
+%15lx:+1:1:2:1:
+%*15lx:+1:0:2:
+%15lx:+0X1:1:4:1:
+%*15lx:+0X1:0:4:
+%15lx:+0x1:1:4:1:
+%*15lx:+0x1:0:4:
+%15lx:+2a:1:3:42:
+%*15lx:+2a:0:3:
+%15lx:+2A:1:3:42:
+%*15lx:+2A:0:3:
+%15lx:+0X2a:1:5:42:
+%*15lx:+0X2a:0:5:
+%15lx:+0x2A:1:5:42:
+%*15lx:+0x2A:0:5:
+%15lx:+ffffffffffffffff:1:15:72057594037927935:
+%*15lx:+ffffffffffffffff:0:15:
+%15lx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935:
+%*15lx:+FFFFFFFFFFFFFFFF:0:15:
+%15lx:+0Xffffffffffffffff:1:15:281474976710655:
+%*15lx:+0Xffffffffffffffff:0:15:
+%15lx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655:
+%*15lx:+0xFFFFFFFFFFFFFFFF:0:15:
+%15lx:+10000000000000000:1:15:4503599627370496:
+%*15lx:+10000000000000000:0:15:
+%15lx:+0X10000000000000000:1:15:17592186044416:
+%*15lx:+0X10000000000000000:0:15:
+%15lx:+0x10000000000000000:1:15:17592186044416:
+%*15lx:+0x10000000000000000:0:15:
+%15lx:+100000000028757b1:1:15:4503599627380853:
+%*15lx:+100000000028757b1:0:15:
+%15lx:+100000000028757B1:1:15:4503599627380853:
+%*15lx:+100000000028757B1:0:15:
+%15lx:+0X100000000028757b1:1:15:17592186044456:
+%*15lx:+0X100000000028757b1:0:15:
+%15lx:+0x100000000028757B1:1:15:17592186044456:
+%*15lx:+0x100000000028757B1:0:15:
+%25lx::0:-1:
+%*25lx::0:-1:
+%25lx:-7b:1:3:18446744073709551493:
+%*25lx:-7b:0:3:
+%25lx:-7B:1:3:18446744073709551493:
+%*25lx:-7B:0:3:
+%25lx:-0X7b:1:5:18446744073709551493:
+%*25lx:-0X7b:0:5:
+%25lx:-0x7B:1:5:18446744073709551493:
+%*25lx:-0x7B:0:5:
+%25lx:-1:1:2:18446744073709551615:
+%*25lx:-1:0:2:
+%25lx:-0X1:1:4:18446744073709551615:
+%*25lx:-0X1:0:4:
+%25lx:-0x1:1:4:18446744073709551615:
+%*25lx:-0x1:0:4:
+%25lx:-0:1:2:0:
+%*25lx:-0:0:2:
+%25lx:-0X0:1:4:0:
+%*25lx:-0X0:0:4:
+%25lx:-0x0:1:4:0:
+%*25lx:-0x0:0:4:
+%25lx:0:1:1:0:
+%*25lx:0:0:1:
+%25lx:0X0:1:3:0:
+%*25lx:0X0:0:3:
+%25lx:0x0:1:3:0:
+%*25lx:0x0:0:3:
+%25lx:1:1:1:1:
+%*25lx:1:0:1:
+%25lx:0X1:1:3:1:
+%*25lx:0X1:0:3:
+%25lx:0x1:1:3:1:
+%*25lx:0x1:0:3:
+%25lx:2a:1:2:42:
+%*25lx:2a:0:2:
+%25lx:2A:1:2:42:
+%*25lx:2A:0:2:
+%25lx:0X2a:1:4:42:
+%*25lx:0X2a:0:4:
+%25lx:0x2A:1:4:42:
+%*25lx:0x2A:0:4:
+%25lx:ffffffffffffffff:1:16:18446744073709551615:
+%*25lx:ffffffffffffffff:0:16:
+%25lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615:
+%*25lx:FFFFFFFFFFFFFFFF:0:16:
+%25lx:0Xffffffffffffffff:1:18:18446744073709551615:
+%*25lx:0Xffffffffffffffff:0:18:
+%25lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*25lx:0xFFFFFFFFFFFFFFFF:0:18:
+%25lx:10000000000000000:1:17:18446744073709551615:
+%*25lx:10000000000000000:0:17:
+%25lx:0X10000000000000000:1:19:18446744073709551615:
+%*25lx:0X10000000000000000:0:19:
+%25lx:0x10000000000000000:1:19:18446744073709551615:
+%*25lx:0x10000000000000000:0:19:
+%25lx:100000000028757b1:1:17:18446744073709551615:
+%*25lx:100000000028757b1:0:17:
+%25lx:100000000028757B1:1:17:18446744073709551615:
+%*25lx:100000000028757B1:0:17:
+%25lx:0X100000000028757b1:1:19:18446744073709551615:
+%*25lx:0X100000000028757b1:0:19:
+%25lx:0x100000000028757B1:1:19:18446744073709551615:
+%*25lx:0x100000000028757B1:0:19:
+%25lx:+0:1:2:0:
+%*25lx:+0:0:2:
+%25lx:+0X0:1:4:0:
+%*25lx:+0X0:0:4:
+%25lx:+0x0:1:4:0:
+%*25lx:+0x0:0:4:
+%25lx:+1:1:2:1:
+%*25lx:+1:0:2:
+%25lx:+0X1:1:4:1:
+%*25lx:+0X1:0:4:
+%25lx:+0x1:1:4:1:
+%*25lx:+0x1:0:4:
+%25lx:+2a:1:3:42:
+%*25lx:+2a:0:3:
+%25lx:+2A:1:3:42:
+%*25lx:+2A:0:3:
+%25lx:+0X2a:1:5:42:
+%*25lx:+0X2a:0:5:
+%25lx:+0x2A:1:5:42:
+%*25lx:+0x2A:0:5:
+%25lx:+ffffffffffffffff:1:17:18446744073709551615:
+%*25lx:+ffffffffffffffff:0:17:
+%25lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*25lx:+FFFFFFFFFFFFFFFF:0:17:
+%25lx:+0Xffffffffffffffff:1:19:18446744073709551615:
+%*25lx:+0Xffffffffffffffff:0:19:
+%25lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*25lx:+0xFFFFFFFFFFFFFFFF:0:19:
+%25lx:+10000000000000000:1:18:18446744073709551615:
+%*25lx:+10000000000000000:0:18:
+%25lx:+0X10000000000000000:1:20:18446744073709551615:
+%*25lx:+0X10000000000000000:0:20:
+%25lx:+0x10000000000000000:1:20:18446744073709551615:
+%*25lx:+0x10000000000000000:0:20:
+%25lx:+100000000028757b1:1:18:18446744073709551615:
+%*25lx:+100000000028757b1:0:18:
+%25lx:+100000000028757B1:1:18:18446744073709551615:
+%*25lx:+100000000028757B1:0:18:
+%25lx:+0X100000000028757b1:1:20:18446744073709551615:
+%*25lx:+0X100000000028757b1:0:20:
+%25lx:+0x100000000028757B1:1:20:18446744073709551615:
+%*25lx:+0x100000000028757B1:0:20:
+%2lx: :0:-1:
+%*2lx: :0:-1:
+%2lx: -7b:1:3:18446744073709551609:
+%*2lx: -7b:0:3:
+%2lx: -7B:1:3:18446744073709551609:
+%*2lx: -7B:0:3:
+%2lx: -0X7b:1:3:0:
+%*2lx: -0X7b:0:3:
+%2lx: -0x7B:1:3:0:
+%*2lx: -0x7B:0:3:
+%2lx: -1:1:3:18446744073709551615:
+%*2lx: -1:0:3:
+%2lx: -0X1:1:3:0:
+%*2lx: -0X1:0:3:
+%2lx: -0x1:1:3:0:
+%*2lx: -0x1:0:3:
+%2lx: -0:1:3:0:
+%*2lx: -0:0:3:
+%2lx: -0X0:1:3:0:
+%*2lx: -0X0:0:3:
+%2lx: -0x0:1:3:0:
+%*2lx: -0x0:0:3:
+%2lx: 0:1:2:0:
+%*2lx: 0:0:2:
+%2lx: 0X0:0:-1:
+%*2lx: 0X0:0:-1:
+%2lx: 0x0:0:-1:
+%*2lx: 0x0:0:-1:
+%2lx: 1:1:2:1:
+%*2lx: 1:0:2:
+%2lx: 0X1:0:-1:
+%*2lx: 0X1:0:-1:
+%2lx: 0x1:0:-1:
+%*2lx: 0x1:0:-1:
+%2lx: 2a:1:3:42:
+%*2lx: 2a:0:3:
+%2lx: 2A:1:3:42:
+%*2lx: 2A:0:3:
+%2lx: 0X2a:0:-1:
+%*2lx: 0X2a:0:-1:
+%2lx: 0x2A:0:-1:
+%*2lx: 0x2A:0:-1:
+%2lx: ffffffffffffffff:1:3:255:
+%*2lx: ffffffffffffffff:0:3:
+%2lx: FFFFFFFFFFFFFFFF:1:3:255:
+%*2lx: FFFFFFFFFFFFFFFF:0:3:
+%2lx: 0Xffffffffffffffff:0:-1:
+%*2lx: 0Xffffffffffffffff:0:-1:
+%2lx: 0xFFFFFFFFFFFFFFFF:0:-1:
+%*2lx: 0xFFFFFFFFFFFFFFFF:0:-1:
+%2lx: 10000000000000000:1:3:16:
+%*2lx: 10000000000000000:0:3:
+%2lx: 0X10000000000000000:0:-1:
+%*2lx: 0X10000000000000000:0:-1:
+%2lx: 0x10000000000000000:0:-1:
+%*2lx: 0x10000000000000000:0:-1:
+%2lx: 100000000028757b1:1:3:16:
+%*2lx: 100000000028757b1:0:3:
+%2lx: 100000000028757B1:1:3:16:
+%*2lx: 100000000028757B1:0:3:
+%2lx: 0X100000000028757b1:0:-1:
+%*2lx: 0X100000000028757b1:0:-1:
+%2lx: 0x100000000028757B1:0:-1:
+%*2lx: 0x100000000028757B1:0:-1:
+%2lx: +0:1:3:0:
+%*2lx: +0:0:3:
+%2lx: +0X0:1:3:0:
+%*2lx: +0X0:0:3:
+%2lx: +0x0:1:3:0:
+%*2lx: +0x0:0:3:
+%2lx: +1:1:3:1:
+%*2lx: +1:0:3:
+%2lx: +0X1:1:3:0:
+%*2lx: +0X1:0:3:
+%2lx: +0x1:1:3:0:
+%*2lx: +0x1:0:3:
+%2lx: +2a:1:3:2:
+%*2lx: +2a:0:3:
+%2lx: +2A:1:3:2:
+%*2lx: +2A:0:3:
+%2lx: +0X2a:1:3:0:
+%*2lx: +0X2a:0:3:
+%2lx: +0x2A:1:3:0:
+%*2lx: +0x2A:0:3:
+%2lx: +ffffffffffffffff:1:3:15:
+%*2lx: +ffffffffffffffff:0:3:
+%2lx: +FFFFFFFFFFFFFFFF:1:3:15:
+%*2lx: +FFFFFFFFFFFFFFFF:0:3:
+%2lx: +0Xffffffffffffffff:1:3:0:
+%*2lx: +0Xffffffffffffffff:0:3:
+%2lx: +0xFFFFFFFFFFFFFFFF:1:3:0:
+%*2lx: +0xFFFFFFFFFFFFFFFF:0:3:
+%2lx: +10000000000000000:1:3:1:
+%*2lx: +10000000000000000:0:3:
+%2lx: +0X10000000000000000:1:3:0:
+%*2lx: +0X10000000000000000:0:3:
+%2lx: +0x10000000000000000:1:3:0:
+%*2lx: +0x10000000000000000:0:3:
+%2lx: +100000000028757b1:1:3:1:
+%*2lx: +100000000028757b1:0:3:
+%2lx: +100000000028757B1:1:3:1:
+%*2lx: +100000000028757B1:0:3:
+%2lx: +0X100000000028757b1:1:3:0:
+%*2lx: +0X100000000028757b1:0:3:
+%2lx: +0x100000000028757B1:1:3:0:
+%*2lx: +0x100000000028757B1:0:3:
+%25lx: :0:-1:
+%*25lx: :0:-1:
+%25lx: -7b:1:4:18446744073709551493:
+%*25lx: -7b:0:4:
+%25lx: -7B:1:4:18446744073709551493:
+%*25lx: -7B:0:4:
+%25lx: -0X7b:1:6:18446744073709551493:
+%*25lx: -0X7b:0:6:
+%25lx: -0x7B:1:6:18446744073709551493:
+%*25lx: -0x7B:0:6:
+%25lx: -1:1:3:18446744073709551615:
+%*25lx: -1:0:3:
+%25lx: -0X1:1:5:18446744073709551615:
+%*25lx: -0X1:0:5:
+%25lx: -0x1:1:5:18446744073709551615:
+%*25lx: -0x1:0:5:
+%25lx: -0:1:3:0:
+%*25lx: -0:0:3:
+%25lx: -0X0:1:5:0:
+%*25lx: -0X0:0:5:
+%25lx: -0x0:1:5:0:
+%*25lx: -0x0:0:5:
+%25lx: 0:1:2:0:
+%*25lx: 0:0:2:
+%25lx: 0X0:1:4:0:
+%*25lx: 0X0:0:4:
+%25lx: 0x0:1:4:0:
+%*25lx: 0x0:0:4:
+%25lx: 1:1:2:1:
+%*25lx: 1:0:2:
+%25lx: 0X1:1:4:1:
+%*25lx: 0X1:0:4:
+%25lx: 0x1:1:4:1:
+%*25lx: 0x1:0:4:
+%25lx: 2a:1:3:42:
+%*25lx: 2a:0:3:
+%25lx: 2A:1:3:42:
+%*25lx: 2A:0:3:
+%25lx: 0X2a:1:5:42:
+%*25lx: 0X2a:0:5:
+%25lx: 0x2A:1:5:42:
+%*25lx: 0x2A:0:5:
+%25lx: ffffffffffffffff:1:17:18446744073709551615:
+%*25lx: ffffffffffffffff:0:17:
+%25lx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*25lx: FFFFFFFFFFFFFFFF:0:17:
+%25lx: 0Xffffffffffffffff:1:19:18446744073709551615:
+%*25lx: 0Xffffffffffffffff:0:19:
+%25lx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*25lx: 0xFFFFFFFFFFFFFFFF:0:19:
+%25lx: 10000000000000000:1:18:18446744073709551615:
+%*25lx: 10000000000000000:0:18:
+%25lx: 0X10000000000000000:1:20:18446744073709551615:
+%*25lx: 0X10000000000000000:0:20:
+%25lx: 0x10000000000000000:1:20:18446744073709551615:
+%*25lx: 0x10000000000000000:0:20:
+%25lx: 100000000028757b1:1:18:18446744073709551615:
+%*25lx: 100000000028757b1:0:18:
+%25lx: 100000000028757B1:1:18:18446744073709551615:
+%*25lx: 100000000028757B1:0:18:
+%25lx: 0X100000000028757b1:1:20:18446744073709551615:
+%*25lx: 0X100000000028757b1:0:20:
+%25lx: 0x100000000028757B1:1:20:18446744073709551615:
+%*25lx: 0x100000000028757B1:0:20:
+%25lx: +0:1:3:0:
+%*25lx: +0:0:3:
+%25lx: +0X0:1:5:0:
+%*25lx: +0X0:0:5:
+%25lx: +0x0:1:5:0:
+%*25lx: +0x0:0:5:
+%25lx: +1:1:3:1:
+%*25lx: +1:0:3:
+%25lx: +0X1:1:5:1:
+%*25lx: +0X1:0:5:
+%25lx: +0x1:1:5:1:
+%*25lx: +0x1:0:5:
+%25lx: +2a:1:4:42:
+%*25lx: +2a:0:4:
+%25lx: +2A:1:4:42:
+%*25lx: +2A:0:4:
+%25lx: +0X2a:1:6:42:
+%*25lx: +0X2a:0:6:
+%25lx: +0x2A:1:6:42:
+%*25lx: +0x2A:0:6:
+%25lx: +ffffffffffffffff:1:18:18446744073709551615:
+%*25lx: +ffffffffffffffff:0:18:
+%25lx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*25lx: +FFFFFFFFFFFFFFFF:0:18:
+%25lx: +0Xffffffffffffffff:1:20:18446744073709551615:
+%*25lx: +0Xffffffffffffffff:0:20:
+%25lx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615:
+%*25lx: +0xFFFFFFFFFFFFFFFF:0:20:
+%25lx: +10000000000000000:1:19:18446744073709551615:
+%*25lx: +10000000000000000:0:19:
+%25lx: +0X10000000000000000:1:21:18446744073709551615:
+%*25lx: +0X10000000000000000:0:21:
+%25lx: +0x10000000000000000:1:21:18446744073709551615:
+%*25lx: +0x10000000000000000:0:21:
+%25lx: +100000000028757b1:1:19:18446744073709551615:
+%*25lx: +100000000028757b1:0:19:
+%25lx: +100000000028757B1:1:19:18446744073709551615:
+%*25lx: +100000000028757B1:0:19:
+%25lx: +0X100000000028757b1:1:21:18446744073709551615:
+%*25lx: +0X100000000028757b1:0:21:
+%25lx: +0x100000000028757B1:1:21:18446744073709551615:
+%*25lx: +0x100000000028757B1:0:21:
diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input
new file mode 100644
index 0000000..2fea175
--- /dev/null
+++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input
@@ -0,0 +1,742 @@
+%lX::0:-1:
+%*lX::0:-1:
+%lX:-7b:1:3:18446744073709551493:
+%*lX:-7b:0:3:
+%lX:-7B:1:3:18446744073709551493:
+%*lX:-7B:0:3:
+%lX:-0X7b:1:5:18446744073709551493:
+%*lX:-0X7b:0:5:
+%lX:-0x7B:1:5:18446744073709551493:
+%*lX:-0x7B:0:5:
+%lX:-1:1:2:18446744073709551615:
+%*lX:-1:0:2:
+%lX:-0X1:1:4:18446744073709551615:
+%*lX:-0X1:0:4:
+%lX:-0x1:1:4:18446744073709551615:
+%*lX:-0x1:0:4:
+%lX:-0:1:2:0:
+%*lX:-0:0:2:
+%lX:-0X0:1:4:0:
+%*lX:-0X0:0:4:
+%lX:-0x0:1:4:0:
+%*lX:-0x0:0:4:
+%lX:0:1:1:0:
+%*lX:0:0:1:
+%lX:0X0:1:3:0:
+%*lX:0X0:0:3:
+%lX:0x0:1:3:0:
+%*lX:0x0:0:3:
+%lX:1:1:1:1:
+%*lX:1:0:1:
+%lX:0X1:1:3:1:
+%*lX:0X1:0:3:
+%lX:0x1:1:3:1:
+%*lX:0x1:0:3:
+%lX:2a:1:2:42:
+%*lX:2a:0:2:
+%lX:2A:1:2:42:
+%*lX:2A:0:2:
+%lX:0X2a:1:4:42:
+%*lX:0X2a:0:4:
+%lX:0x2A:1:4:42:
+%*lX:0x2A:0:4:
+%lX:ffffffffffffffff:1:16:18446744073709551615:
+%*lX:ffffffffffffffff:0:16:
+%lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615:
+%*lX:FFFFFFFFFFFFFFFF:0:16:
+%lX:0Xffffffffffffffff:1:18:18446744073709551615:
+%*lX:0Xffffffffffffffff:0:18:
+%lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*lX:0xFFFFFFFFFFFFFFFF:0:18:
+%lX:10000000000000000:1:17:18446744073709551615:
+%*lX:10000000000000000:0:17:
+%lX:0X10000000000000000:1:19:18446744073709551615:
+%*lX:0X10000000000000000:0:19:
+%lX:0x10000000000000000:1:19:18446744073709551615:
+%*lX:0x10000000000000000:0:19:
+%lX:100000000028757b1:1:17:18446744073709551615:
+%*lX:100000000028757b1:0:17:
+%lX:100000000028757B1:1:17:18446744073709551615:
+%*lX:100000000028757B1:0:17:
+%lX:0X100000000028757b1:1:19:18446744073709551615:
+%*lX:0X100000000028757b1:0:19:
+%lX:0x100000000028757B1:1:19:18446744073709551615:
+%*lX:0x100000000028757B1:0:19:
+%lX:+0:1:2:0:
+%*lX:+0:0:2:
+%lX:+0X0:1:4:0:
+%*lX:+0X0:0:4:
+%lX:+0x0:1:4:0:
+%*lX:+0x0:0:4:
+%lX:+1:1:2:1:
+%*lX:+1:0:2:
+%lX:+0X1:1:4:1:
+%*lX:+0X1:0:4:
+%lX:+0x1:1:4:1:
+%*lX:+0x1:0:4:
+%lX:+2a:1:3:42:
+%*lX:+2a:0:3:
+%lX:+2A:1:3:42:
+%*lX:+2A:0:3:
+%lX:+0X2a:1:5:42:
+%*lX:+0X2a:0:5:
+%lX:+0x2A:1:5:42:
+%*lX:+0x2A:0:5:
+%lX:+ffffffffffffffff:1:17:18446744073709551615:
+%*lX:+ffffffffffffffff:0:17:
+%lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*lX:+FFFFFFFFFFFFFFFF:0:17:
+%lX:+0Xffffffffffffffff:1:19:18446744073709551615:
+%*lX:+0Xffffffffffffffff:0:19:
+%lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*lX:+0xFFFFFFFFFFFFFFFF:0:19:
+%lX:+10000000000000000:1:18:18446744073709551615:
+%*lX:+10000000000000000:0:18:
+%lX:+0X10000000000000000:1:20:18446744073709551615:
+%*lX:+0X10000000000000000:0:20:
+%lX:+0x10000000000000000:1:20:18446744073709551615:
+%*lX:+0x10000000000000000:0:20:
+%lX:+100000000028757b1:1:18:18446744073709551615:
+%*lX:+100000000028757b1:0:18:
+%lX:+100000000028757B1:1:18:18446744073709551615:
+%*lX:+100000000028757B1:0:18:
+%lX:+0X100000000028757b1:1:20:18446744073709551615:
+%*lX:+0X100000000028757b1:0:20:
+%lX:+0x100000000028757B1:1:20:18446744073709551615:
+%*lX:+0x100000000028757B1:0:20:
+%1lX::0:-1:
+%*1lX::0:-1:
+%1lX:-7b:0:-1:
+%*1lX:-7b:0:-1:
+%1lX:-7B:0:-1:
+%*1lX:-7B:0:-1:
+%1lX:-0X7b:0:-1:
+%*1lX:-0X7b:0:-1:
+%1lX:-0x7B:0:-1:
+%*1lX:-0x7B:0:-1:
+%1lX:-1:0:-1:
+%*1lX:-1:0:-1:
+%1lX:-0X1:0:-1:
+%*1lX:-0X1:0:-1:
+%1lX:-0x1:0:-1:
+%*1lX:-0x1:0:-1:
+%1lX:-0:0:-1:
+%*1lX:-0:0:-1:
+%1lX:-0X0:0:-1:
+%*1lX:-0X0:0:-1:
+%1lX:-0x0:0:-1:
+%*1lX:-0x0:0:-1:
+%1lX:0:1:1:0:
+%*1lX:0:0:1:
+%1lX:0X0:1:1:0:
+%*1lX:0X0:0:1:
+%1lX:0x0:1:1:0:
+%*1lX:0x0:0:1:
+%1lX:1:1:1:1:
+%*1lX:1:0:1:
+%1lX:0X1:1:1:0:
+%*1lX:0X1:0:1:
+%1lX:0x1:1:1:0:
+%*1lX:0x1:0:1:
+%1lX:2a:1:1:2:
+%*1lX:2a:0:1:
+%1lX:2A:1:1:2:
+%*1lX:2A:0:1:
+%1lX:0X2a:1:1:0:
+%*1lX:0X2a:0:1:
+%1lX:0x2A:1:1:0:
+%*1lX:0x2A:0:1:
+%1lX:ffffffffffffffff:1:1:15:
+%*1lX:ffffffffffffffff:0:1:
+%1lX:FFFFFFFFFFFFFFFF:1:1:15:
+%*1lX:FFFFFFFFFFFFFFFF:0:1:
+%1lX:0Xffffffffffffffff:1:1:0:
+%*1lX:0Xffffffffffffffff:0:1:
+%1lX:0xFFFFFFFFFFFFFFFF:1:1:0:
+%*1lX:0xFFFFFFFFFFFFFFFF:0:1:
+%1lX:10000000000000000:1:1:1:
+%*1lX:10000000000000000:0:1:
+%1lX:0X10000000000000000:1:1:0:
+%*1lX:0X10000000000000000:0:1:
+%1lX:0x10000000000000000:1:1:0:
+%*1lX:0x10000000000000000:0:1:
+%1lX:100000000028757b1:1:1:1:
+%*1lX:100000000028757b1:0:1:
+%1lX:100000000028757B1:1:1:1:
+%*1lX:100000000028757B1:0:1:
+%1lX:0X100000000028757b1:1:1:0:
+%*1lX:0X100000000028757b1:0:1:
+%1lX:0x100000000028757B1:1:1:0:
+%*1lX:0x100000000028757B1:0:1:
+%1lX:+0:0:-1:
+%*1lX:+0:0:-1:
+%1lX:+0X0:0:-1:
+%*1lX:+0X0:0:-1:
+%1lX:+0x0:0:-1:
+%*1lX:+0x0:0:-1:
+%1lX:+1:0:-1:
+%*1lX:+1:0:-1:
+%1lX:+0X1:0:-1:
+%*1lX:+0X1:0:-1:
+%1lX:+0x1:0:-1:
+%*1lX:+0x1:0:-1:
+%1lX:+2a:0:-1:
+%*1lX:+2a:0:-1:
+%1lX:+2A:0:-1:
+%*1lX:+2A:0:-1:
+%1lX:+0X2a:0:-1:
+%*1lX:+0X2a:0:-1:
+%1lX:+0x2A:0:-1:
+%*1lX:+0x2A:0:-1:
+%1lX:+ffffffffffffffff:0:-1:
+%*1lX:+ffffffffffffffff:0:-1:
+%1lX:+FFFFFFFFFFFFFFFF:0:-1:
+%*1lX:+FFFFFFFFFFFFFFFF:0:-1:
+%1lX:+0Xffffffffffffffff:0:-1:
+%*1lX:+0Xffffffffffffffff:0:-1:
+%1lX:+0xFFFFFFFFFFFFFFFF:0:-1:
+%*1lX:+0xFFFFFFFFFFFFFFFF:0:-1:
+%1lX:+10000000000000000:0:-1:
+%*1lX:+10000000000000000:0:-1:
+%1lX:+0X10000000000000000:0:-1:
+%*1lX:+0X10000000000000000:0:-1:
+%1lX:+0x10000000000000000:0:-1:
+%*1lX:+0x10000000000000000:0:-1:
+%1lX:+100000000028757b1:0:-1:
+%*1lX:+100000000028757b1:0:-1:
+%1lX:+100000000028757B1:0:-1:
+%*1lX:+100000000028757B1:0:-1:
+%1lX:+0X100000000028757b1:0:-1:
+%*1lX:+0X100000000028757b1:0:-1:
+%1lX:+0x100000000028757B1:0:-1:
+%*1lX:+0x100000000028757B1:0:-1:
+%2lX::0:-1:
+%*2lX::0:-1:
+%2lX:-7b:1:2:18446744073709551609:
+%*2lX:-7b:0:2:
+%2lX:-7B:1:2:18446744073709551609:
+%*2lX:-7B:0:2:
+%2lX:-0X7b:1:2:0:
+%*2lX:-0X7b:0:2:
+%2lX:-0x7B:1:2:0:
+%*2lX:-0x7B:0:2:
+%2lX:-1:1:2:18446744073709551615:
+%*2lX:-1:0:2:
+%2lX:-0X1:1:2:0:
+%*2lX:-0X1:0:2:
+%2lX:-0x1:1:2:0:
+%*2lX:-0x1:0:2:
+%2lX:-0:1:2:0:
+%*2lX:-0:0:2:
+%2lX:-0X0:1:2:0:
+%*2lX:-0X0:0:2:
+%2lX:-0x0:1:2:0:
+%*2lX:-0x0:0:2:
+%2lX:0:1:1:0:
+%*2lX:0:0:1:
+%2lX:0X0:0:-1:
+%*2lX:0X0:0:-1:
+%2lX:0x0:0:-1:
+%*2lX:0x0:0:-1:
+%2lX:1:1:1:1:
+%*2lX:1:0:1:
+%2lX:0X1:0:-1:
+%*2lX:0X1:0:-1:
+%2lX:0x1:0:-1:
+%*2lX:0x1:0:-1:
+%2lX:2a:1:2:42:
+%*2lX:2a:0:2:
+%2lX:2A:1:2:42:
+%*2lX:2A:0:2:
+%2lX:0X2a:0:-1:
+%*2lX:0X2a:0:-1:
+%2lX:0x2A:0:-1:
+%*2lX:0x2A:0:-1:
+%2lX:ffffffffffffffff:1:2:255:
+%*2lX:ffffffffffffffff:0:2:
+%2lX:FFFFFFFFFFFFFFFF:1:2:255:
+%*2lX:FFFFFFFFFFFFFFFF:0:2:
+%2lX:0Xffffffffffffffff:0:-1:
+%*2lX:0Xffffffffffffffff:0:-1:
+%2lX:0xFFFFFFFFFFFFFFFF:0:-1:
+%*2lX:0xFFFFFFFFFFFFFFFF:0:-1:
+%2lX:10000000000000000:1:2:16:
+%*2lX:10000000000000000:0:2:
+%2lX:0X10000000000000000:0:-1:
+%*2lX:0X10000000000000000:0:-1:
+%2lX:0x10000000000000000:0:-1:
+%*2lX:0x10000000000000000:0:-1:
+%2lX:100000000028757b1:1:2:16:
+%*2lX:100000000028757b1:0:2:
+%2lX:100000000028757B1:1:2:16:
+%*2lX:100000000028757B1:0:2:
+%2lX:0X100000000028757b1:0:-1:
+%*2lX:0X100000000028757b1:0:-1:
+%2lX:0x100000000028757B1:0:-1:
+%*2lX:0x100000000028757B1:0:-1:
+%2lX:+0:1:2:0:
+%*2lX:+0:0:2:
+%2lX:+0X0:1:2:0:
+%*2lX:+0X0:0:2:
+%2lX:+0x0:1:2:0:
+%*2lX:+0x0:0:2:
+%2lX:+1:1:2:1:
+%*2lX:+1:0:2:
+%2lX:+0X1:1:2:0:
+%*2lX:+0X1:0:2:
+%2lX:+0x1:1:2:0:
+%*2lX:+0x1:0:2:
+%2lX:+2a:1:2:2:
+%*2lX:+2a:0:2:
+%2lX:+2A:1:2:2:
+%*2lX:+2A:0:2:
+%2lX:+0X2a:1:2:0:
+%*2lX:+0X2a:0:2:
+%2lX:+0x2A:1:2:0:
+%*2lX:+0x2A:0:2:
+%2lX:+ffffffffffffffff:1:2:15:
+%*2lX:+ffffffffffffffff:0:2:
+%2lX:+FFFFFFFFFFFFFFFF:1:2:15:
+%*2lX:+FFFFFFFFFFFFFFFF:0:2:
+%2lX:+0Xffffffffffffffff:1:2:0:
+%*2lX:+0Xffffffffffffffff:0:2:
+%2lX:+0xFFFFFFFFFFFFFFFF:1:2:0:
+%*2lX:+0xFFFFFFFFFFFFFFFF:0:2:
+%2lX:+10000000000000000:1:2:1:
+%*2lX:+10000000000000000:0:2:
+%2lX:+0X10000000000000000:1:2:0:
+%*2lX:+0X10000000000000000:0:2:
+%2lX:+0x10000000000000000:1:2:0:
+%*2lX:+0x10000000000000000:0:2:
+%2lX:+100000000028757b1:1:2:1:
+%*2lX:+100000000028757b1:0:2:
+%2lX:+100000000028757B1:1:2:1:
+%*2lX:+100000000028757B1:0:2:
+%2lX:+0X100000000028757b1:1:2:0:
+%*2lX:+0X100000000028757b1:0:2:
+%2lX:+0x100000000028757B1:1:2:0:
+%*2lX:+0x100000000028757B1:0:2:
+%15lX::0:-1:
+%*15lX::0:-1:
+%15lX:-7b:1:3:18446744073709551493:
+%*15lX:-7b:0:3:
+%15lX:-7B:1:3:18446744073709551493:
+%*15lX:-7B:0:3:
+%15lX:-0X7b:1:5:18446744073709551493:
+%*15lX:-0X7b:0:5:
+%15lX:-0x7B:1:5:18446744073709551493:
+%*15lX:-0x7B:0:5:
+%15lX:-1:1:2:18446744073709551615:
+%*15lX:-1:0:2:
+%15lX:-0X1:1:4:18446744073709551615:
+%*15lX:-0X1:0:4:
+%15lX:-0x1:1:4:18446744073709551615:
+%*15lX:-0x1:0:4:
+%15lX:-0:1:2:0:
+%*15lX:-0:0:2:
+%15lX:-0X0:1:4:0:
+%*15lX:-0X0:0:4:
+%15lX:-0x0:1:4:0:
+%*15lX:-0x0:0:4:
+%15lX:0:1:1:0:
+%*15lX:0:0:1:
+%15lX:0X0:1:3:0:
+%*15lX:0X0:0:3:
+%15lX:0x0:1:3:0:
+%*15lX:0x0:0:3:
+%15lX:1:1:1:1:
+%*15lX:1:0:1:
+%15lX:0X1:1:3:1:
+%*15lX:0X1:0:3:
+%15lX:0x1:1:3:1:
+%*15lX:0x1:0:3:
+%15lX:2a:1:2:42:
+%*15lX:2a:0:2:
+%15lX:2A:1:2:42:
+%*15lX:2A:0:2:
+%15lX:0X2a:1:4:42:
+%*15lX:0X2a:0:4:
+%15lX:0x2A:1:4:42:
+%*15lX:0x2A:0:4:
+%15lX:ffffffffffffffff:1:15:1152921504606846975:
+%*15lX:ffffffffffffffff:0:15:
+%15lX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975:
+%*15lX:FFFFFFFFFFFFFFFF:0:15:
+%15lX:0Xffffffffffffffff:1:15:4503599627370495:
+%*15lX:0Xffffffffffffffff:0:15:
+%15lX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495:
+%*15lX:0xFFFFFFFFFFFFFFFF:0:15:
+%15lX:10000000000000000:1:15:72057594037927936:
+%*15lX:10000000000000000:0:15:
+%15lX:0X10000000000000000:1:15:281474976710656:
+%*15lX:0X10000000000000000:0:15:
+%15lX:0x10000000000000000:1:15:281474976710656:
+%*15lX:0x10000000000000000:0:15:
+%15lX:100000000028757b1:1:15:72057594038093655:
+%*15lX:100000000028757b1:0:15:
+%15lX:100000000028757B1:1:15:72057594038093655:
+%*15lX:100000000028757B1:0:15:
+%15lX:0X100000000028757b1:1:15:281474976711303:
+%*15lX:0X100000000028757b1:0:15:
+%15lX:0x100000000028757B1:1:15:281474976711303:
+%*15lX:0x100000000028757B1:0:15:
+%15lX:+0:1:2:0:
+%*15lX:+0:0:2:
+%15lX:+0X0:1:4:0:
+%*15lX:+0X0:0:4:
+%15lX:+0x0:1:4:0:
+%*15lX:+0x0:0:4:
+%15lX:+1:1:2:1:
+%*15lX:+1:0:2:
+%15lX:+0X1:1:4:1:
+%*15lX:+0X1:0:4:
+%15lX:+0x1:1:4:1:
+%*15lX:+0x1:0:4:
+%15lX:+2a:1:3:42:
+%*15lX:+2a:0:3:
+%15lX:+2A:1:3:42:
+%*15lX:+2A:0:3:
+%15lX:+0X2a:1:5:42:
+%*15lX:+0X2a:0:5:
+%15lX:+0x2A:1:5:42:
+%*15lX:+0x2A:0:5:
+%15lX:+ffffffffffffffff:1:15:72057594037927935:
+%*15lX:+ffffffffffffffff:0:15:
+%15lX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935:
+%*15lX:+FFFFFFFFFFFFFFFF:0:15:
+%15lX:+0Xffffffffffffffff:1:15:281474976710655:
+%*15lX:+0Xffffffffffffffff:0:15:
+%15lX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655:
+%*15lX:+0xFFFFFFFFFFFFFFFF:0:15:
+%15lX:+10000000000000000:1:15:4503599627370496:
+%*15lX:+10000000000000000:0:15:
+%15lX:+0X10000000000000000:1:15:17592186044416:
+%*15lX:+0X10000000000000000:0:15:
+%15lX:+0x10000000000000000:1:15:17592186044416:
+%*15lX:+0x10000000000000000:0:15:
+%15lX:+100000000028757b1:1:15:4503599627380853:
+%*15lX:+100000000028757b1:0:15:
+%15lX:+100000000028757B1:1:15:4503599627380853:
+%*15lX:+100000000028757B1:0:15:
+%15lX:+0X100000000028757b1:1:15:17592186044456:
+%*15lX:+0X100000000028757b1:0:15:
+%15lX:+0x100000000028757B1:1:15:17592186044456:
+%*15lX:+0x100000000028757B1:0:15:
+%25lX::0:-1:
+%*25lX::0:-1:
+%25lX:-7b:1:3:18446744073709551493:
+%*25lX:-7b:0:3:
+%25lX:-7B:1:3:18446744073709551493:
+%*25lX:-7B:0:3:
+%25lX:-0X7b:1:5:18446744073709551493:
+%*25lX:-0X7b:0:5:
+%25lX:-0x7B:1:5:18446744073709551493:
+%*25lX:-0x7B:0:5:
+%25lX:-1:1:2:18446744073709551615:
+%*25lX:-1:0:2:
+%25lX:-0X1:1:4:18446744073709551615:
+%*25lX:-0X1:0:4:
+%25lX:-0x1:1:4:18446744073709551615:
+%*25lX:-0x1:0:4:
+%25lX:-0:1:2:0:
+%*25lX:-0:0:2:
+%25lX:-0X0:1:4:0:
+%*25lX:-0X0:0:4:
+%25lX:-0x0:1:4:0:
+%*25lX:-0x0:0:4:
+%25lX:0:1:1:0:
+%*25lX:0:0:1:
+%25lX:0X0:1:3:0:
+%*25lX:0X0:0:3:
+%25lX:0x0:1:3:0:
+%*25lX:0x0:0:3:
+%25lX:1:1:1:1:
+%*25lX:1:0:1:
+%25lX:0X1:1:3:1:
+%*25lX:0X1:0:3:
+%25lX:0x1:1:3:1:
+%*25lX:0x1:0:3:
+%25lX:2a:1:2:42:
+%*25lX:2a:0:2:
+%25lX:2A:1:2:42:
+%*25lX:2A:0:2:
+%25lX:0X2a:1:4:42:
+%*25lX:0X2a:0:4:
+%25lX:0x2A:1:4:42:
+%*25lX:0x2A:0:4:
+%25lX:ffffffffffffffff:1:16:18446744073709551615:
+%*25lX:ffffffffffffffff:0:16:
+%25lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615:
+%*25lX:FFFFFFFFFFFFFFFF:0:16:
+%25lX:0Xffffffffffffffff:1:18:18446744073709551615:
+%*25lX:0Xffffffffffffffff:0:18:
+%25lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*25lX:0xFFFFFFFFFFFFFFFF:0:18:
+%25lX:10000000000000000:1:17:18446744073709551615:
+%*25lX:10000000000000000:0:17:
+%25lX:0X10000000000000000:1:19:18446744073709551615:
+%*25lX:0X10000000000000000:0:19:
+%25lX:0x10000000000000000:1:19:18446744073709551615:
+%*25lX:0x10000000000000000:0:19:
+%25lX:100000000028757b1:1:17:18446744073709551615:
+%*25lX:100000000028757b1:0:17:
+%25lX:100000000028757B1:1:17:18446744073709551615:
+%*25lX:100000000028757B1:0:17:
+%25lX:0X100000000028757b1:1:19:18446744073709551615:
+%*25lX:0X100000000028757b1:0:19:
+%25lX:0x100000000028757B1:1:19:18446744073709551615:
+%*25lX:0x100000000028757B1:0:19:
+%25lX:+0:1:2:0:
+%*25lX:+0:0:2:
+%25lX:+0X0:1:4:0:
+%*25lX:+0X0:0:4:
+%25lX:+0x0:1:4:0:
+%*25lX:+0x0:0:4:
+%25lX:+1:1:2:1:
+%*25lX:+1:0:2:
+%25lX:+0X1:1:4:1:
+%*25lX:+0X1:0:4:
+%25lX:+0x1:1:4:1:
+%*25lX:+0x1:0:4:
+%25lX:+2a:1:3:42:
+%*25lX:+2a:0:3:
+%25lX:+2A:1:3:42:
+%*25lX:+2A:0:3:
+%25lX:+0X2a:1:5:42:
+%*25lX:+0X2a:0:5:
+%25lX:+0x2A:1:5:42:
+%*25lX:+0x2A:0:5:
+%25lX:+ffffffffffffffff:1:17:18446744073709551615:
+%*25lX:+ffffffffffffffff:0:17:
+%25lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*25lX:+FFFFFFFFFFFFFFFF:0:17:
+%25lX:+0Xffffffffffffffff:1:19:18446744073709551615:
+%*25lX:+0Xffffffffffffffff:0:19:
+%25lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*25lX:+0xFFFFFFFFFFFFFFFF:0:19:
+%25lX:+10000000000000000:1:18:18446744073709551615:
+%*25lX:+10000000000000000:0:18:
+%25lX:+0X10000000000000000:1:20:18446744073709551615:
+%*25lX:+0X10000000000000000:0:20:
+%25lX:+0x10000000000000000:1:20:18446744073709551615:
+%*25lX:+0x10000000000000000:0:20:
+%25lX:+100000000028757b1:1:18:18446744073709551615:
+%*25lX:+100000000028757b1:0:18:
+%25lX:+100000000028757B1:1:18:18446744073709551615:
+%*25lX:+100000000028757B1:0:18:
+%25lX:+0X100000000028757b1:1:20:18446744073709551615:
+%*25lX:+0X100000000028757b1:0:20:
+%25lX:+0x100000000028757B1:1:20:18446744073709551615:
+%*25lX:+0x100000000028757B1:0:20:
+%2lX: :0:-1:
+%*2lX: :0:-1:
+%2lX: -7b:1:3:18446744073709551609:
+%*2lX: -7b:0:3:
+%2lX: -7B:1:3:18446744073709551609:
+%*2lX: -7B:0:3:
+%2lX: -0X7b:1:3:0:
+%*2lX: -0X7b:0:3:
+%2lX: -0x7B:1:3:0:
+%*2lX: -0x7B:0:3:
+%2lX: -1:1:3:18446744073709551615:
+%*2lX: -1:0:3:
+%2lX: -0X1:1:3:0:
+%*2lX: -0X1:0:3:
+%2lX: -0x1:1:3:0:
+%*2lX: -0x1:0:3:
+%2lX: -0:1:3:0:
+%*2lX: -0:0:3:
+%2lX: -0X0:1:3:0:
+%*2lX: -0X0:0:3:
+%2lX: -0x0:1:3:0:
+%*2lX: -0x0:0:3:
+%2lX: 0:1:2:0:
+%*2lX: 0:0:2:
+%2lX: 0X0:0:-1:
+%*2lX: 0X0:0:-1:
+%2lX: 0x0:0:-1:
+%*2lX: 0x0:0:-1:
+%2lX: 1:1:2:1:
+%*2lX: 1:0:2:
+%2lX: 0X1:0:-1:
+%*2lX: 0X1:0:-1:
+%2lX: 0x1:0:-1:
+%*2lX: 0x1:0:-1:
+%2lX: 2a:1:3:42:
+%*2lX: 2a:0:3:
+%2lX: 2A:1:3:42:
+%*2lX: 2A:0:3:
+%2lX: 0X2a:0:-1:
+%*2lX: 0X2a:0:-1:
+%2lX: 0x2A:0:-1:
+%*2lX: 0x2A:0:-1:
+%2lX: ffffffffffffffff:1:3:255:
+%*2lX: ffffffffffffffff:0:3:
+%2lX: FFFFFFFFFFFFFFFF:1:3:255:
+%*2lX: FFFFFFFFFFFFFFFF:0:3:
+%2lX: 0Xffffffffffffffff:0:-1:
+%*2lX: 0Xffffffffffffffff:0:-1:
+%2lX: 0xFFFFFFFFFFFFFFFF:0:-1:
+%*2lX: 0xFFFFFFFFFFFFFFFF:0:-1:
+%2lX: 10000000000000000:1:3:16:
+%*2lX: 10000000000000000:0:3:
+%2lX: 0X10000000000000000:0:-1:
+%*2lX: 0X10000000000000000:0:-1:
+%2lX: 0x10000000000000000:0:-1:
+%*2lX: 0x10000000000000000:0:-1:
+%2lX: 100000000028757b1:1:3:16:
+%*2lX: 100000000028757b1:0:3:
+%2lX: 100000000028757B1:1:3:16:
+%*2lX: 100000000028757B1:0:3:
+%2lX: 0X100000000028757b1:0:-1:
+%*2lX: 0X100000000028757b1:0:-1:
+%2lX: 0x100000000028757B1:0:-1:
+%*2lX: 0x100000000028757B1:0:-1:
+%2lX: +0:1:3:0:
+%*2lX: +0:0:3:
+%2lX: +0X0:1:3:0:
+%*2lX: +0X0:0:3:
+%2lX: +0x0:1:3:0:
+%*2lX: +0x0:0:3:
+%2lX: +1:1:3:1:
+%*2lX: +1:0:3:
+%2lX: +0X1:1:3:0:
+%*2lX: +0X1:0:3:
+%2lX: +0x1:1:3:0:
+%*2lX: +0x1:0:3:
+%2lX: +2a:1:3:2:
+%*2lX: +2a:0:3:
+%2lX: +2A:1:3:2:
+%*2lX: +2A:0:3:
+%2lX: +0X2a:1:3:0:
+%*2lX: +0X2a:0:3:
+%2lX: +0x2A:1:3:0:
+%*2lX: +0x2A:0:3:
+%2lX: +ffffffffffffffff:1:3:15:
+%*2lX: +ffffffffffffffff:0:3:
+%2lX: +FFFFFFFFFFFFFFFF:1:3:15:
+%*2lX: +FFFFFFFFFFFFFFFF:0:3:
+%2lX: +0Xffffffffffffffff:1:3:0:
+%*2lX: +0Xffffffffffffffff:0:3:
+%2lX: +0xFFFFFFFFFFFFFFFF:1:3:0:
+%*2lX: +0xFFFFFFFFFFFFFFFF:0:3:
+%2lX: +10000000000000000:1:3:1:
+%*2lX: +10000000000000000:0:3:
+%2lX: +0X10000000000000000:1:3:0:
+%*2lX: +0X10000000000000000:0:3:
+%2lX: +0x10000000000000000:1:3:0:
+%*2lX: +0x10000000000000000:0:3:
+%2lX: +100000000028757b1:1:3:1:
+%*2lX: +100000000028757b1:0:3:
+%2lX: +100000000028757B1:1:3:1:
+%*2lX: +100000000028757B1:0:3:
+%2lX: +0X100000000028757b1:1:3:0:
+%*2lX: +0X100000000028757b1:0:3:
+%2lX: +0x100000000028757B1:1:3:0:
+%*2lX: +0x100000000028757B1:0:3:
+%25lX: :0:-1:
+%*25lX: :0:-1:
+%25lX: -7b:1:4:18446744073709551493:
+%*25lX: -7b:0:4:
+%25lX: -7B:1:4:18446744073709551493:
+%*25lX: -7B:0:4:
+%25lX: -0X7b:1:6:18446744073709551493:
+%*25lX: -0X7b:0:6:
+%25lX: -0x7B:1:6:18446744073709551493:
+%*25lX: -0x7B:0:6:
+%25lX: -1:1:3:18446744073709551615:
+%*25lX: -1:0:3:
+%25lX: -0X1:1:5:18446744073709551615:
+%*25lX: -0X1:0:5:
+%25lX: -0x1:1:5:18446744073709551615:
+%*25lX: -0x1:0:5:
+%25lX: -0:1:3:0:
+%*25lX: -0:0:3:
+%25lX: -0X0:1:5:0:
+%*25lX: -0X0:0:5:
+%25lX: -0x0:1:5:0:
+%*25lX: -0x0:0:5:
+%25lX: 0:1:2:0:
+%*25lX: 0:0:2:
+%25lX: 0X0:1:4:0:
+%*25lX: 0X0:0:4:
+%25lX: 0x0:1:4:0:
+%*25lX: 0x0:0:4:
+%25lX: 1:1:2:1:
+%*25lX: 1:0:2:
+%25lX: 0X1:1:4:1:
+%*25lX: 0X1:0:4:
+%25lX: 0x1:1:4:1:
+%*25lX: 0x1:0:4:
+%25lX: 2a:1:3:42:
+%*25lX: 2a:0:3:
+%25lX: 2A:1:3:42:
+%*25lX: 2A:0:3:
+%25lX: 0X2a:1:5:42:
+%*25lX: 0X2a:0:5:
+%25lX: 0x2A:1:5:42:
+%*25lX: 0x2A:0:5:
+%25lX: ffffffffffffffff:1:17:18446744073709551615:
+%*25lX: ffffffffffffffff:0:17:
+%25lX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615:
+%*25lX: FFFFFFFFFFFFFFFF:0:17:
+%25lX: 0Xffffffffffffffff:1:19:18446744073709551615:
+%*25lX: 0Xffffffffffffffff:0:19:
+%25lX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615:
+%*25lX: 0xFFFFFFFFFFFFFFFF:0:19:
+%25lX: 10000000000000000:1:18:18446744073709551615:
+%*25lX: 10000000000000000:0:18:
+%25lX: 0X10000000000000000:1:20:18446744073709551615:
+%*25lX: 0X10000000000000000:0:20:
+%25lX: 0x10000000000000000:1:20:18446744073709551615:
+%*25lX: 0x10000000000000000:0:20:
+%25lX: 100000000028757b1:1:18:18446744073709551615:
+%*25lX: 100000000028757b1:0:18:
+%25lX: 100000000028757B1:1:18:18446744073709551615:
+%*25lX: 100000000028757B1:0:18:
+%25lX: 0X100000000028757b1:1:20:18446744073709551615:
+%*25lX: 0X100000000028757b1:0:20:
+%25lX: 0x100000000028757B1:1:20:18446744073709551615:
+%*25lX: 0x100000000028757B1:0:20:
+%25lX: +0:1:3:0:
+%*25lX: +0:0:3:
+%25lX: +0X0:1:5:0:
+%*25lX: +0X0:0:5:
+%25lX: +0x0:1:5:0:
+%*25lX: +0x0:0:5:
+%25lX: +1:1:3:1:
+%*25lX: +1:0:3:
+%25lX: +0X1:1:5:1:
+%*25lX: +0X1:0:5:
+%25lX: +0x1:1:5:1:
+%*25lX: +0x1:0:5:
+%25lX: +2a:1:4:42:
+%*25lX: +2a:0:4:
+%25lX: +2A:1:4:42:
+%*25lX: +2A:0:4:
+%25lX: +0X2a:1:6:42:
+%*25lX: +0X2a:0:6:
+%25lX: +0x2A:1:6:42:
+%*25lX: +0x2A:0:6:
+%25lX: +ffffffffffffffff:1:18:18446744073709551615:
+%*25lX: +ffffffffffffffff:0:18:
+%25lX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615:
+%*25lX: +FFFFFFFFFFFFFFFF:0:18:
+%25lX: +0Xffffffffffffffff:1:20:18446744073709551615:
+%*25lX: +0Xffffffffffffffff:0:20:
+%25lX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615:
+%*25lX: +0xFFFFFFFFFFFFFFFF:0:20:
+%25lX: +10000000000000000:1:19:18446744073709551615:
+%*25lX: +10000000000000000:0:19:
+%25lX: +0X10000000000000000:1:21:18446744073709551615:
+%*25lX: +0X10000000000000000:0:21:
+%25lX: +0x10000000000000000:1:21:18446744073709551615:
+%*25lX: +0x10000000000000000:0:21:
+%25lX: +100000000028757b1:1:19:18446744073709551615:
+%*25lX: +100000000028757b1:0:19:
+%25lX: +100000000028757B1:1:19:18446744073709551615:
+%*25lX: +100000000028757B1:0:19:
+%25lX: +0X100000000028757b1:1:21:18446744073709551615:
+%*25lX: +0X100000000028757b1:0:21:
+%25lX: +0x100000000028757B1:1:21:18446744073709551615:
+%*25lX: +0x100000000028757B1:0:21:
diff --git a/sysdeps/wordsize-64/tst-writev.c b/sysdeps/wordsize-64/tst-writev.c
index 0115b33..9770cf1 100644
--- a/sysdeps/wordsize-64/tst-writev.c
+++ b/sysdeps/wordsize-64/tst-writev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index 5311b59..4fbd48e 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -4,7 +4,13 @@ endif
ifeq ($(subdir),elf)
sysdep_routines += get-cpuid-feature-leaf
-sysdep-dl-routines += dl-get-cpu-features
+sysdep-dl-routines += \
+ dl-get-cpu-features \
+ dl-tlsdesc \
+ tls_get_addr \
+ tlsdesc \
+# sysdep-dl-routines
+
sysdep_headers += \
bits/platform/features.h \
bits/platform/x86.h \
@@ -21,6 +27,9 @@ tests += \
tst-cpu-features-supports-static \
tst-get-cpu-features \
tst-get-cpu-features-static \
+ tst-gnu2-tls2-x86-noxsave \
+ tst-gnu2-tls2-x86-noxsavec \
+ tst-gnu2-tls2-x86-noxsavexsavec \
tst-hwcap-tunables \
# tests
tests-static += \
@@ -87,10 +96,49 @@ tst-ifunc-isa-2-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SSE4_2,-AVX,-AVX2,-AVX512
tst-ifunc-isa-2-static-ENV = $(tst-ifunc-isa-2-ENV)
tst-hwcap-tunables-ARGS = -- $(host-test-program-cmd)
-CFLAGS-tst-gnu2-tls2.c += -msse
+CFLAGS-tst-gnu2-tls2.c += -msse2
CFLAGS-tst-gnu2-tls2mod0.c += -msse2 -mtune=haswell
CFLAGS-tst-gnu2-tls2mod1.c += -msse2 -mtune=haswell
CFLAGS-tst-gnu2-tls2mod2.c += -msse2 -mtune=haswell
+
+LDFLAGS-tst-gnu2-tls2 += -rdynamic
+LDFLAGS-tst-gnu2-tls2mod0.so += -Wl,-z,undefs
+LDFLAGS-tst-gnu2-tls2mod1.so += -Wl,-z,undefs
+LDFLAGS-tst-gnu2-tls2mod2.so += -Wl,-z,undefs
+
+CFLAGS-tst-gnu2-tls2-x86-noxsave.c += -msse2
+CFLAGS-tst-gnu2-tls2-x86-noxsavec.c += -msse2
+CFLAGS-tst-gnu2-tls2-x86-noxsavexsavec.c += -msse2
+LDFLAGS-tst-gnu2-tls2-x86-noxsave += -Wl,-z,lazy -rdynamic
+LDFLAGS-tst-gnu2-tls2-x86-noxsavec += -Wl,-z,lazy -rdynamic
+LDFLAGS-tst-gnu2-tls2-x86-noxsavexsavec += -Wl,-z,lazy -rdynamic
+
+# Test for bug 32810: incorrect XSAVE state size if XSAVEC is disabled
+# via tunable.
+tst-gnu2-tls2-x86-noxsave-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVE
+tst-gnu2-tls2-x86-noxsavec-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC
+tst-gnu2-tls2-x86-noxsavexsavec-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVE,-XSAVEC
+$(objpfx)tst-gnu2-tls2-x86-noxsave: $(shared-thread-library)
+$(objpfx)tst-gnu2-tls2-x86-noxsavec: $(shared-thread-library)
+$(objpfx)tst-gnu2-tls2-x86-noxsavexsavec: $(shared-thread-library)
+$(objpfx)tst-gnu2-tls2-x86-noxsave.out \
+$(objpfx)tst-gnu2-tls2-x86-noxsavec.out \
+$(objpfx)tst-gnu2-tls2-x86-noxsavexsavec.out: \
+ $(objpfx)tst-gnu2-tls2mod0.so \
+ $(objpfx)tst-gnu2-tls2mod1.so \
+ $(objpfx)tst-gnu2-tls2mod2.so
+
+CFLAGS-tst-tls23.c += -msse2
+CFLAGS-tst-tls23-mod.c += -msse2 -mtune=haswell
+
+LDFLAGS-tst-tls23 += -rdynamic
+tst-tls23-mod.so-no-z-defs = yes
+
+$(objpfx)tst-tls23-mod.so: $(libsupport)
+endif
+
+ifeq ($(subdir),gmon)
+CFLAGS-mcount.c += -mgeneral-regs-only
endif
ifeq ($(subdir),math)
diff --git a/sysdeps/x86/__longjmp_cancel.S b/sysdeps/x86/__longjmp_cancel.S
index b03f52b..d55da57 100644
--- a/sysdeps/x86/__longjmp_cancel.S
+++ b/sysdeps/x86/__longjmp_cancel.S
@@ -1,5 +1,5 @@
/* __longjmp_cancel for x86.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/abi-note.c b/sysdeps/x86/abi-note.c
index dcab1ca..9525d24 100644
--- a/sysdeps/x86/abi-note.c
+++ b/sysdeps/x86/abi-note.c
@@ -1,5 +1,5 @@
/* Special .init and .fini section support. x86-64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h
index cfd3950..5452716 100644
--- a/sysdeps/x86/atomic-machine.h
+++ b/sysdeps/x86/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. X86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/dl_find_object.h b/sysdeps/x86/bits/dl_find_object.h
index 00860f4..6188036 100644
--- a/sysdeps/x86/bits/dl_find_object.h
+++ b/sysdeps/x86/bits/dl_find_object.h
@@ -1,5 +1,5 @@
/* x86 definitions for finding objects.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h
index e661aba..4674165 100644
--- a/sysdeps/x86/bits/floatn.h
+++ b/sysdeps/x86/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on x86.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,10 +25,15 @@
floating-point type with the IEEE 754 binary128 format, and this
glibc includes corresponding *f128 interfaces for it. The required
libgcc support was added some time after the basic compiler
- support, for x86_64 and x86. */
+ support, for x86_64 and x86. Intel SYCL compiler doesn't support
+ _Float128: https://github.com/intel/llvm/issues/16903
+ */
#if (defined __x86_64__ \
? __GNUC_PREREQ (4, 3) \
- : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
+ : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
+ || (__glibc_clang_prereq (3, 9) \
+ && (!defined __INTEL_LLVM_COMPILER \
+ || !defined SYCL_LANGUAGE_VERSION))
# define __HAVE_FLOAT128 1
#else
# define __HAVE_FLOAT128 0
@@ -58,7 +63,9 @@
/* Defined to concatenate the literal suffix to be used with _Float128
types, if __HAVE_FLOAT128 is 1. */
# if __HAVE_FLOAT128
-# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+# if !__GNUC_PREREQ (7, 0) \
+ || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+ || defined __clang__
/* The literal suffix f128 exists only since GCC 7.0. */
# define __f128(x) x##q
# else
@@ -68,7 +75,9 @@
/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */
# if __HAVE_FLOAT128
-# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+# if !__GNUC_PREREQ (7, 0) \
+ || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+ || defined __clang__
/* Add a typedef for older GCC compilers which don't natively support
_Complex _Float128. */
typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
@@ -82,12 +91,14 @@ typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
# if __HAVE_FLOAT128
/* The type _Float128 exists only since GCC 7.0. */
-# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+# if !__GNUC_PREREQ (7, 0) \
+ || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+ || __glibc_clang_prereq (3, 9)
typedef __float128 _Float128;
# endif
-/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */
-# if !__GNUC_PREREQ (7, 0)
+/* __builtin_huge_valf128 doesn't exist before GCC 7.0 nor Clang 7.0. */
+# if !__GNUC_PREREQ (7, 0) && !__glibc_clang_prereq (7, 0)
# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ())
# endif
@@ -96,7 +107,7 @@ typedef __float128 _Float128;
Converting a narrower sNaN to _Float128 produces a quiet NaN, so
attempts to use _Float128 sNaNs will not work properly with older
compilers. */
-# if !__GNUC_PREREQ (7, 0)
+# if !__GNUC_PREREQ (7, 0) && !defined __clang__
# define __builtin_copysignf128 __builtin_copysignq
# define __builtin_fabsf128 __builtin_fabsq
# define __builtin_inff128() ((_Float128) __builtin_inf ())
@@ -107,7 +118,8 @@ typedef __float128 _Float128;
/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
e.g.: __builtin_signbitf128, before GCC 6. However, there has never
been a __builtin_signbitf128 in GCC and the type-generic builtin is
- only available since GCC 6. */
+ only available since GCC 6. signbit is expanded to __builtin_signbit
+ after Clang 3.3. */
# if !__GNUC_PREREQ (6, 0)
# define __builtin_signbitf128 __signbitf128
# endif
diff --git a/sysdeps/x86/bits/flt-eval-method.h b/sysdeps/x86/bits/flt-eval-method.h
index b86d3a4..6d5d4be 100644
--- a/sysdeps/x86/bits/flt-eval-method.h
+++ b/sysdeps/x86/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
/* Define __GLIBC_FLT_EVAL_METHOD. x86 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/fp-logb.h b/sysdeps/x86/bits/fp-logb.h
index 7e0815b..2cd3e0e 100644
--- a/sysdeps/x86/bits/fp-logb.h
+++ b/sysdeps/x86/bits/fp-logb.h
@@ -1,5 +1,5 @@
/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/indirect-return.h b/sysdeps/x86/bits/indirect-return.h
index eed47ca..ba439c7 100644
--- a/sysdeps/x86/bits/indirect-return.h
+++ b/sysdeps/x86/bits/indirect-return.h
@@ -1,5 +1,5 @@
/* Definition of __INDIRECT_RETURN. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/link.h b/sysdeps/x86/bits/link.h
index 5e27ce9..1f14956 100644
--- a/sysdeps/x86/bits/link.h
+++ b/sysdeps/x86/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/bits/platform/features.h b/sysdeps/x86/bits/platform/features.h
index f024892..213d695 100644
--- a/sysdeps/x86/bits/platform/features.h
+++ b/sysdeps/x86/bits/platform/features.h
@@ -1,6 +1,6 @@
/* Inline functions for x86 CPU features.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
# error "Never include <bits/platform/features.h> directly; use <sys/platform/x86.h> instead."
#endif
-static __inline__ _Bool
+static __inline__ bool
x86_cpu_cet_active (unsigned int __index)
{
return false;
diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h
index 8b157d9..e6d9ef5 100644
--- a/sysdeps/x86/bits/platform/x86.h
+++ b/sysdeps/x86/bits/platform/x86.h
@@ -1,6 +1,6 @@
/* Constants and data structures for x86 CPU features.
This file is part of the GNU C Library.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/bits/setjmp.h b/sysdeps/x86/bits/setjmp.h
index e7318ff..2317d40 100644
--- a/sysdeps/x86/bits/setjmp.h
+++ b/sysdeps/x86/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/cacheinfo.c b/sysdeps/x86/cacheinfo.c
index 02c4532..0823546 100644
--- a/sysdeps/x86/cacheinfo.c
+++ b/sysdeps/x86/cacheinfo.c
@@ -1,5 +1,5 @@
/* x86 cache info.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/cacheinfo.h b/sysdeps/x86/cacheinfo.h
index 8349160..28ef0c9 100644
--- a/sysdeps/x86/cacheinfo.h
+++ b/sysdeps/x86/cacheinfo.h
@@ -1,5 +1,5 @@
/* x86 cache info.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure
index a6d3777..c7ea9ac 100644
--- a/sysdeps/x86/configure
+++ b/sysdeps/x86/configure
@@ -175,6 +175,40 @@ x86-isa-level-3-or-above = 3 4"
config_vars="$config_vars
enable-x86-isa-level = $libc_cv_include_x86_isa_level"
+
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -mfpmath=387 works in testing" >&5
+printf %s "checking if -mfpmath=387 works in testing... " >&6; }
+if test ${libc_cv_have_test_cc_cflags_mfpmath_387+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -c -Werror -mfpmath=387 -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_have_test_cc_cflags_mfpmath_387=yes
+else case e in #(
+ e) libc_cv_have_test_cc_cflags_mfpmath_387=no
+ ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_test_cc_cflags_mfpmath_387" >&5
+printf "%s\n" "$libc_cv_have_test_cc_cflags_mfpmath_387" >&6; }
+
+CC="$saved_CC"
+
+
+config_vars="$config_vars
+have-test-cc-cflags-mfpmath-387 = $libc_cv_have_test_cc_cflags_mfpmath_387"
+
printf "%s\n" "#define SUPPORT_STATIC_PIE 1" >>confdefs.h
diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac
index 8a259d3..031f917 100644
--- a/sysdeps/x86/configure.ac
+++ b/sysdeps/x86/configure.ac
@@ -120,5 +120,15 @@ LIBC_CONFIG_VAR([have-x86-isa-level], [$libc_cv_have_x86_isa_level])
LIBC_CONFIG_VAR([x86-isa-level-3-or-above], [3 4])
LIBC_CONFIG_VAR([enable-x86-isa-level], [$libc_cv_include_x86_isa_level])
+dnl Check if TEST_CC supports -mfpmath=387
+LIBC_TRY_TEST_CC_OPTION([if -mfpmath=387 works],
+ [-c -Werror -mfpmath=387],
+ libc_cv_have_test_cc_cflags_mfpmath_387,
+ [libc_cv_have_test_cc_cflags_mfpmath_387=yes],
+ [libc_cv_have_test_cc_cflags_mfpmath_387=no]
+)
+LIBC_CONFIG_VAR(have-test-cc-cflags-mfpmath-387,
+ $libc_cv_have_test_cc_cflags_mfpmath_387)
+
dnl Static PIE is supported.
AC_DEFINE(SUPPORT_STATIC_PIE)
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index 18ed008..b7d1506 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data.
This file is part of the GNU C Library.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -24,6 +24,7 @@
#include <dl-cacheinfo.h>
#include <dl-minsigstacksize.h>
#include <dl-hwcap2.h>
+#include <gcc-macros.h>
extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *)
attribute_hidden;
@@ -83,6 +84,8 @@ extern void TUNABLE_CALLBACK (set_x86_shstk) (tunable_val_t *)
# include <dl-cet.h>
#endif
+unsigned long int _dl_x86_features_tlsdesc_state_size;
+
static void
update_active (struct cpu_features *cpu_features)
{
@@ -317,17 +320,13 @@ update_active (struct cpu_features *cpu_features)
= xsave_state_full_size;
cpu_features->xsave_state_full_size
= xsave_state_full_size;
+ _dl_x86_features_tlsdesc_state_size = xsave_state_full_size;
/* Check if XSAVEC is available. */
if (CPU_FEATURES_CPU_P (cpu_features, XSAVEC))
{
- unsigned int xstate_comp_offsets[32];
- unsigned int xstate_comp_sizes[32];
-#ifdef __x86_64__
- unsigned int xstate_amx_comp_offsets[32];
- unsigned int xstate_amx_comp_sizes[32];
- unsigned int amx_ecx;
-#endif
+ unsigned int xstate_comp_offsets[X86_XSTATE_MAX_ID + 1];
+ unsigned int xstate_comp_sizes[X86_XSTATE_MAX_ID + 1];
unsigned int i;
xstate_comp_offsets[0] = 0;
@@ -335,39 +334,16 @@ update_active (struct cpu_features *cpu_features)
xstate_comp_offsets[2] = 576;
xstate_comp_sizes[0] = 160;
xstate_comp_sizes[1] = 256;
-#ifdef __x86_64__
- xstate_amx_comp_offsets[0] = 0;
- xstate_amx_comp_offsets[1] = 160;
- xstate_amx_comp_offsets[2] = 576;
- xstate_amx_comp_sizes[0] = 160;
- xstate_amx_comp_sizes[1] = 256;
-#endif
- for (i = 2; i < 32; i++)
+ for (i = 2; i <= X86_XSTATE_MAX_ID; i++)
{
if ((FULL_STATE_SAVE_MASK & (1 << i)) != 0)
{
__cpuid_count (0xd, i, eax, ebx, ecx, edx);
-#ifdef __x86_64__
- /* Include this in xsave_state_full_size. */
- amx_ecx = ecx;
- xstate_amx_comp_sizes[i] = eax;
- if ((AMX_STATE_SAVE_MASK & (1 << i)) != 0)
- {
- /* Exclude this from xsave_state_size. */
- ecx = 0;
- xstate_comp_sizes[i] = 0;
- }
- else
-#endif
- xstate_comp_sizes[i] = eax;
+ xstate_comp_sizes[i] = eax;
}
else
{
-#ifdef __x86_64__
- amx_ecx = 0;
- xstate_amx_comp_sizes[i] = 0;
-#endif
ecx = 0;
xstate_comp_sizes[i] = 0;
}
@@ -376,44 +352,32 @@ update_active (struct cpu_features *cpu_features)
{
xstate_comp_offsets[i]
= (xstate_comp_offsets[i - 1]
- + xstate_comp_sizes[i -1]);
+ + xstate_comp_sizes[i - 1]);
if ((ecx & (1 << 1)) != 0)
xstate_comp_offsets[i]
= ALIGN_UP (xstate_comp_offsets[i], 64);
-#ifdef __x86_64__
- xstate_amx_comp_offsets[i]
- = (xstate_amx_comp_offsets[i - 1]
- + xstate_amx_comp_sizes[i - 1]);
- if ((amx_ecx & (1 << 1)) != 0)
- xstate_amx_comp_offsets[i]
- = ALIGN_UP (xstate_amx_comp_offsets[i],
- 64);
-#endif
}
}
/* Use XSAVEC. */
unsigned int size
- = xstate_comp_offsets[31] + xstate_comp_sizes[31];
+ = (xstate_comp_offsets[X86_XSTATE_MAX_ID]
+ + xstate_comp_sizes[X86_XSTATE_MAX_ID]);
if (size)
{
+ size = ALIGN_UP (size + TLSDESC_CALL_REGISTER_SAVE_AREA,
+ 64);
#ifdef __x86_64__
- unsigned int amx_size
- = (xstate_amx_comp_offsets[31]
- + xstate_amx_comp_sizes[31]);
- amx_size
- = ALIGN_UP ((amx_size
- + TLSDESC_CALL_REGISTER_SAVE_AREA),
- 64);
- /* Set xsave_state_full_size to the compact AMX
- state size for XSAVEC. NB: xsave_state_full_size
- is only used in _dl_tlsdesc_dynamic_xsave and
- _dl_tlsdesc_dynamic_xsavec. */
- cpu_features->xsave_state_full_size = amx_size;
+ _dl_x86_features_tlsdesc_state_size = size;
+ /* Exclude the AMX space from the start of TILECFG
+ space to the end of TILEDATA space. If CPU
+ doesn't support AMX, TILECFG offset is the same
+ as TILEDATA + 1 offset. Otherwise, they are
+ multiples of 64. */
+ size -= (xstate_comp_offsets[X86_XSTATE_TILEDATA_ID + 1]
+ - xstate_comp_offsets[X86_XSTATE_TILECFG_ID]);
#endif
- cpu_features->xsave_state_size
- = ALIGN_UP (size + TLSDESC_CALL_REGISTER_SAVE_AREA,
- 64);
+ cpu_features->xsave_state_size = size;
CPU_FEATURE_SET (cpu_features, XSAVEC);
}
}
@@ -538,8 +502,8 @@ _Static_assert (((index_arch_Fast_Unaligned_Load
"Incorrect index_arch_Fast_Unaligned_Load");
-/* Intel Family-6 microarch list. */
-enum
+/* Intel microarch list. */
+enum intel_microarch
{
/* Atom processors. */
INTEL_ATOM_BONNELL,
@@ -548,6 +512,7 @@ enum
INTEL_ATOM_GOLDMONT,
INTEL_ATOM_GOLDMONT_PLUS,
INTEL_ATOM_SIERRAFOREST,
+ INTEL_ATOM_CLEARWATERFOREST,
INTEL_ATOM_GRANDRIDGE,
INTEL_ATOM_TREMONT,
@@ -575,7 +540,9 @@ enum
INTEL_BIGCORE_METEORLAKE,
INTEL_BIGCORE_LUNARLAKE,
INTEL_BIGCORE_ARROWLAKE,
+ INTEL_BIGCORE_PANTHERLAKE,
INTEL_BIGCORE_GRANITERAPIDS,
+ INTEL_BIGCORE_DIAMONDRAPIDS,
/* Mixed (bigcore + atom SOC). */
INTEL_MIXED_LAKEFIELD,
@@ -589,7 +556,7 @@ enum
INTEL_UNKNOWN,
};
-static unsigned int
+static enum intel_microarch
intel_get_fam6_microarch (unsigned int model,
__attribute__ ((unused)) unsigned int stepping)
{
@@ -620,6 +587,8 @@ intel_get_fam6_microarch (unsigned int model,
return INTEL_ATOM_GOLDMONT_PLUS;
case 0xAF:
return INTEL_ATOM_SIERRAFOREST;
+ case 0xDD:
+ return INTEL_ATOM_CLEARWATERFOREST;
case 0xB6:
return INTEL_ATOM_GRANDRIDGE;
case 0x86:
@@ -727,8 +696,12 @@ intel_get_fam6_microarch (unsigned int model,
return INTEL_BIGCORE_METEORLAKE;
case 0xbd:
return INTEL_BIGCORE_LUNARLAKE;
+ case 0xb5:
+ case 0xc5:
case 0xc6:
return INTEL_BIGCORE_ARROWLAKE;
+ case 0xCC:
+ return INTEL_BIGCORE_PANTHERLAKE;
case 0xAD:
case 0xAE:
return INTEL_BIGCORE_GRANITERAPIDS;
@@ -756,6 +729,12 @@ init_cpu_features (struct cpu_features *cpu_features)
unsigned int stepping = 0;
enum cpu_features_kind kind;
+ /* Default is avoid non-temporal memset for non Intel/AMD/Hygon hardware. This is,
+ as of writing this, we only have benchmarks indicatings it profitability
+ on Intel/AMD/Hygon. */
+ cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
+ |= bit_arch_Avoid_Non_Temporal_Memset;
+
cpu_features->cachesize_non_temporal_divisor = 4;
#if !HAS_CPUID
if (__get_cpuid_max (0, 0) == 0)
@@ -781,133 +760,25 @@ init_cpu_features (struct cpu_features *cpu_features)
update_active (cpu_features);
+ /* Benchmarks indicate non-temporal memset can be profitable on Intel
+ hardware. */
+ cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
+ &= ~bit_arch_Avoid_Non_Temporal_Memset;
+
+ enum intel_microarch microarch = INTEL_UNKNOWN;
if (family == 0x06)
{
model += extended_model;
- unsigned int microarch
- = intel_get_fam6_microarch (model, stepping);
+ microarch = intel_get_fam6_microarch (model, stepping);
+ /* Disable TSX on some processors to avoid TSX on kernels that
+ weren't updated with the latest microcode package (which
+ disables broken feature by default). */
switch (microarch)
{
- /* Atom / KNL tuning. */
- case INTEL_ATOM_BONNELL:
- /* BSF is slow on Bonnell. */
- cpu_features->preferred[index_arch_Slow_BSF]
- |= bit_arch_Slow_BSF;
- break;
-
- /* Unaligned load versions are faster than SSSE3
- on Airmont, Silvermont, Goldmont, and Goldmont Plus. */
- case INTEL_ATOM_AIRMONT:
- case INTEL_ATOM_SILVERMONT:
- case INTEL_ATOM_GOLDMONT:
- case INTEL_ATOM_GOLDMONT_PLUS:
-
- /* Knights Landing. Enable Silvermont optimizations. */
- case INTEL_KNIGHTS_LANDING:
-
- cpu_features->preferred[index_arch_Fast_Unaligned_Load]
- |= (bit_arch_Fast_Unaligned_Load
- | bit_arch_Fast_Unaligned_Copy
- | bit_arch_Prefer_PMINUB_for_stringop
- | bit_arch_Slow_SSE4_2);
- break;
-
- case INTEL_ATOM_TREMONT:
- /* Enable rep string instructions, unaligned load, unaligned
- copy, pminub and avoid SSE 4.2 on Tremont. */
- cpu_features->preferred[index_arch_Fast_Rep_String]
- |= (bit_arch_Fast_Rep_String
- | bit_arch_Fast_Unaligned_Load
- | bit_arch_Fast_Unaligned_Copy
- | bit_arch_Prefer_PMINUB_for_stringop
- | bit_arch_Slow_SSE4_2);
- break;
-
- /*
- Default tuned Knights microarch.
- case INTEL_KNIGHTS_MILL:
- */
-
- /*
- Default tuned atom microarch.
- case INTEL_ATOM_SIERRAFOREST:
- case INTEL_ATOM_GRANDRIDGE:
- */
-
- /* Bigcore/Default Tuning. */
default:
- default_tuning:
- /* Unknown family 0x06 processors. Assuming this is one
- of Core i3/i5/i7 processors if AVX is available. */
- if (!CPU_FEATURES_CPU_P (cpu_features, AVX))
- break;
-
- enable_modern_features:
- /* Rep string instructions, unaligned load, unaligned copy,
- and pminub are fast on Intel Core i3, i5 and i7. */
- cpu_features->preferred[index_arch_Fast_Rep_String]
- |= (bit_arch_Fast_Rep_String
- | bit_arch_Fast_Unaligned_Load
- | bit_arch_Fast_Unaligned_Copy
- | bit_arch_Prefer_PMINUB_for_stringop);
break;
- case INTEL_BIGCORE_NEHALEM:
- case INTEL_BIGCORE_WESTMERE:
- /* Older CPUs prefer non-temporal stores at lower threshold. */
- cpu_features->cachesize_non_temporal_divisor = 8;
- goto enable_modern_features;
-
- /* Older Bigcore microarch (smaller non-temporal store
- threshold). */
- case INTEL_BIGCORE_SANDYBRIDGE:
- case INTEL_BIGCORE_IVYBRIDGE:
- case INTEL_BIGCORE_HASWELL:
- case INTEL_BIGCORE_BROADWELL:
- cpu_features->cachesize_non_temporal_divisor = 8;
- goto default_tuning;
-
- /* Newer Bigcore microarch (larger non-temporal store
- threshold). */
- case INTEL_BIGCORE_SKYLAKE_AVX512:
- case INTEL_BIGCORE_CANNONLAKE:
- /* Benchmarks indicate non-temporal memset is not
- necessarily profitable on SKX (and in some cases much
- worse). This is likely unique to SKX due its it unique
- mesh interconnect (not present on ICX or BWD). Disable
- non-temporal on all Skylake servers. */
- cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
- |= bit_arch_Avoid_Non_Temporal_Memset;
- /* fallthrough */
- case INTEL_BIGCORE_COMETLAKE:
- case INTEL_BIGCORE_SKYLAKE:
- case INTEL_BIGCORE_KABYLAKE:
- case INTEL_BIGCORE_ICELAKE:
- case INTEL_BIGCORE_TIGERLAKE:
- case INTEL_BIGCORE_ROCKETLAKE:
- case INTEL_BIGCORE_RAPTORLAKE:
- case INTEL_BIGCORE_METEORLAKE:
- case INTEL_BIGCORE_LUNARLAKE:
- case INTEL_BIGCORE_ARROWLAKE:
- case INTEL_BIGCORE_SAPPHIRERAPIDS:
- case INTEL_BIGCORE_EMERALDRAPIDS:
- case INTEL_BIGCORE_GRANITERAPIDS:
- cpu_features->cachesize_non_temporal_divisor = 2;
- goto default_tuning;
-
- /* Default tuned Mixed (bigcore + atom SOC). */
- case INTEL_MIXED_LAKEFIELD:
- case INTEL_MIXED_ALDERLAKE:
- cpu_features->cachesize_non_temporal_divisor = 2;
- goto default_tuning;
- }
-
- /* Disable TSX on some processors to avoid TSX on kernels that
- weren't updated with the latest microcode package (which
- disables broken feature by default). */
- switch (microarch)
- {
case INTEL_BIGCORE_SKYLAKE_AVX512:
/* 0x55 (Skylake-avx512) && stepping <= 5 disable TSX. */
if (stepping <= 5)
@@ -916,38 +787,163 @@ init_cpu_features (struct cpu_features *cpu_features)
case INTEL_BIGCORE_KABYLAKE:
/* NB: Although the errata documents that for model == 0x8e
- (kabylake skylake client), only 0xb stepping or lower are
- impacted, the intention of the errata was to disable TSX on
- all client processors on all steppings. Include 0xc
- stepping which is an Intel Core i7-8665U, a client mobile
- processor. */
+ (kabylake skylake client), only 0xb stepping or lower are
+ impacted, the intention of the errata was to disable TSX on
+ all client processors on all steppings. Include 0xc
+ stepping which is an Intel Core i7-8665U, a client mobile
+ processor. */
if (stepping > 0xc)
break;
/* Fall through. */
case INTEL_BIGCORE_SKYLAKE:
- /* Disable Intel TSX and enable RTM_ALWAYS_ABORT for
- processors listed in:
-
-https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html
- */
- disable_tsx:
- CPU_FEATURE_UNSET (cpu_features, HLE);
- CPU_FEATURE_UNSET (cpu_features, RTM);
- CPU_FEATURE_SET (cpu_features, RTM_ALWAYS_ABORT);
- break;
+ /* Disable Intel TSX and enable RTM_ALWAYS_ABORT for
+ processors listed in:
+
+ https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html
+ */
+disable_tsx:
+ CPU_FEATURE_UNSET (cpu_features, HLE);
+ CPU_FEATURE_UNSET (cpu_features, RTM);
+ CPU_FEATURE_SET (cpu_features, RTM_ALWAYS_ABORT);
+ break;
case INTEL_BIGCORE_HASWELL:
- /* Xeon E7 v3 (model == 0x3f) with stepping >= 4 has working
- TSX. Haswell also include other model numbers that have
- working TSX. */
- if (model == 0x3f && stepping >= 4)
+ /* Xeon E7 v3 (model == 0x3f) with stepping >= 4 has working
+ TSX. Haswell also includes other model numbers that have
+ working TSX. */
+ if (model == 0x3f && stepping >= 4)
break;
- CPU_FEATURE_UNSET (cpu_features, RTM);
- break;
+ CPU_FEATURE_UNSET (cpu_features, RTM);
+ break;
}
}
+ else if (family == 19)
+ switch (model)
+ {
+ case 0x01:
+ microarch = INTEL_BIGCORE_DIAMONDRAPIDS;
+ break;
+ default:
+ break;
+ }
+
+ switch (microarch)
+ {
+ /* Atom / KNL tuning. */
+ case INTEL_ATOM_BONNELL:
+ /* BSF is slow on Bonnell. */
+ cpu_features->preferred[index_arch_Slow_BSF]
+ |= bit_arch_Slow_BSF;
+ break;
+
+ /* Unaligned load versions are faster than SSSE3
+ on Airmont, Silvermont, Goldmont, and Goldmont Plus. */
+ case INTEL_ATOM_AIRMONT:
+ case INTEL_ATOM_SILVERMONT:
+ case INTEL_ATOM_GOLDMONT:
+ case INTEL_ATOM_GOLDMONT_PLUS:
+
+ /* Knights Landing. Enable Silvermont optimizations. */
+ case INTEL_KNIGHTS_LANDING:
+
+ cpu_features->preferred[index_arch_Fast_Unaligned_Load]
+ |= (bit_arch_Fast_Unaligned_Load
+ | bit_arch_Fast_Unaligned_Copy
+ | bit_arch_Prefer_PMINUB_for_stringop
+ | bit_arch_Slow_SSE4_2);
+ break;
+
+ case INTEL_ATOM_TREMONT:
+ /* Enable rep string instructions, unaligned load, unaligned
+ copy, pminub and avoid SSE 4.2 on Tremont. */
+ cpu_features->preferred[index_arch_Fast_Rep_String]
+ |= (bit_arch_Fast_Rep_String
+ | bit_arch_Fast_Unaligned_Load
+ | bit_arch_Fast_Unaligned_Copy
+ | bit_arch_Prefer_PMINUB_for_stringop
+ | bit_arch_Slow_SSE4_2);
+ break;
+
+ /*
+ Default tuned Knights microarch.
+ case INTEL_KNIGHTS_MILL:
+ */
+
+ /*
+ Default tuned atom microarch.
+ case INTEL_ATOM_SIERRAFOREST:
+ case INTEL_ATOM_GRANDRIDGE:
+ case INTEL_ATOM_CLEARWATERFOREST:
+ */
+
+ /* Bigcore/Default Tuning. */
+ default:
+ default_tuning:
+ /* Unknown Intel processors. Assuming this is one of Core
+ i3/i5/i7 processors if AVX is available. */
+ if (!CPU_FEATURES_CPU_P (cpu_features, AVX))
+ break;
+
+ enable_modern_features:
+ /* Rep string instructions, unaligned load, unaligned copy,
+ and pminub are fast on Intel Core i3, i5 and i7. */
+ cpu_features->preferred[index_arch_Fast_Rep_String]
+ |= (bit_arch_Fast_Rep_String
+ | bit_arch_Fast_Unaligned_Load
+ | bit_arch_Fast_Unaligned_Copy
+ | bit_arch_Prefer_PMINUB_for_stringop);
+ break;
+
+ case INTEL_BIGCORE_NEHALEM:
+ case INTEL_BIGCORE_WESTMERE:
+ /* Older CPUs prefer non-temporal stores at lower threshold. */
+ cpu_features->cachesize_non_temporal_divisor = 8;
+ goto enable_modern_features;
+
+ /* Older Bigcore microarch (smaller non-temporal store
+ threshold). */
+ case INTEL_BIGCORE_SANDYBRIDGE:
+ case INTEL_BIGCORE_IVYBRIDGE:
+ case INTEL_BIGCORE_HASWELL:
+ case INTEL_BIGCORE_BROADWELL:
+ cpu_features->cachesize_non_temporal_divisor = 8;
+ goto default_tuning;
+
+ /* Newer Bigcore microarch (larger non-temporal store
+ threshold). */
+ case INTEL_BIGCORE_SKYLAKE_AVX512:
+ case INTEL_BIGCORE_CANNONLAKE:
+ /* Benchmarks indicate non-temporal memset is not
+ necessarily profitable on SKX (and in some cases much
+ worse). This is likely unique to SKX due to its unique
+ mesh interconnect (not present on ICX or BWD). Disable
+ non-temporal on all Skylake servers. */
+ cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
+ |= bit_arch_Avoid_Non_Temporal_Memset;
+ /* fallthrough */
+ case INTEL_BIGCORE_COMETLAKE:
+ case INTEL_BIGCORE_SKYLAKE:
+ case INTEL_BIGCORE_KABYLAKE:
+ case INTEL_BIGCORE_ICELAKE:
+ case INTEL_BIGCORE_TIGERLAKE:
+ case INTEL_BIGCORE_ROCKETLAKE:
+ case INTEL_BIGCORE_RAPTORLAKE:
+ case INTEL_BIGCORE_METEORLAKE:
+ case INTEL_BIGCORE_LUNARLAKE:
+ case INTEL_BIGCORE_ARROWLAKE:
+ case INTEL_BIGCORE_PANTHERLAKE:
+ case INTEL_BIGCORE_SAPPHIRERAPIDS:
+ case INTEL_BIGCORE_EMERALDRAPIDS:
+ case INTEL_BIGCORE_GRANITERAPIDS:
+ case INTEL_BIGCORE_DIAMONDRAPIDS:
+ /* Default tuned Mixed (bigcore + atom SOC). */
+ case INTEL_MIXED_LAKEFIELD:
+ case INTEL_MIXED_ALDERLAKE:
+ cpu_features->cachesize_non_temporal_divisor = 2;
+ goto default_tuning;
+ }
/* Since AVX512ER is unique to Xeon Phi, set Prefer_No_VZEROUPPER
if AVX512ER is available. Don't use AVX512 to avoid lower CPU
@@ -975,9 +971,8 @@ https://www.intel.com/content/www/us/en/support/articles/000059422/processors.ht
cpu_features->preferred[index_arch_Avoid_Short_Distance_REP_MOVSB]
|= bit_arch_Avoid_Short_Distance_REP_MOVSB;
}
- /* This spells out "AuthenticAMD" or "HygonGenuine". */
- else if ((ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
- || (ebx == 0x6f677948 && ecx == 0x656e6975 && edx == 0x6e65476e))
+ /* This spells out "AuthenticAMD". */
+ else if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
{
unsigned int extended_model;
@@ -992,6 +987,11 @@ https://www.intel.com/content/www/us/en/support/articles/000059422/processors.ht
ecx = cpu_features->features[CPUID_INDEX_1].cpuid.ecx;
+ /* Benchmarks indicate non-temporal memset can be profitable on AMD
+ hardware. */
+ cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
+ &= ~bit_arch_Avoid_Non_Temporal_Memset;
+
if (CPU_FEATURE_USABLE_P (cpu_features, AVX))
{
/* Since the FMA4 bit is in CPUID_INDEX_80000001 and
@@ -1088,6 +1088,25 @@ https://www.intel.com/content/www/us/en/support/articles/000059422/processors.ht
}
}
}
+ /* This spells out "HygonGenuine". */
+ else if (ebx == 0x6f677948 && ecx == 0x656e6975 && edx == 0x6e65476e)
+ {
+ unsigned int extended_model;
+
+ kind = arch_kind_hygon;
+
+ get_common_indices (cpu_features, &family, &model, &extended_model,
+ &stepping);
+
+ get_extended_indices (cpu_features);
+
+ update_active (cpu_features);
+
+ /* Benchmarks indicate non-temporal memset can be profitable on Hygon
+ hardware. */
+ cpu_features->preferred[index_arch_Avoid_Non_Temporal_Memset]
+ &= ~bit_arch_Avoid_Non_Temporal_Memset;
+ }
else
{
kind = arch_kind_other;
@@ -1103,6 +1122,10 @@ https://www.intel.com/content/www/us/en/support/articles/000059422/processors.ht
if (CPU_FEATURES_CPU_P (cpu_features, CMOV))
cpu_features->preferred[index_arch_I686] |= bit_arch_I686;
+ /* No ERMS, we want to avoid stosb for memset. */
+ if (!CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ cpu_features->preferred[index_arch_Avoid_STOSB] |= bit_arch_Avoid_STOSB;
+
#if !HAS_CPUID
no_cpuid:
#endif
@@ -1121,6 +1144,9 @@ no_cpuid:
TUNABLE_CALLBACK (set_prefer_map_32bit_exec));
#endif
+ /* Do not add the logic to disable XSAVE/XSAVEC if this glibc build
+ requires AVX and therefore XSAVE or XSAVEC support. */
+#ifndef GCCMACRO__AVX__
bool disable_xsave_features = false;
if (!CPU_FEATURE_USABLE_P (cpu_features, OSXSAVE))
@@ -1174,6 +1200,7 @@ no_cpuid:
CPU_FEATURE_UNSET (cpu_features, FMA4);
}
+#endif
#ifdef __x86_64__
GLRO(dl_hwcap) = HWCAP_X86_64;
@@ -1229,7 +1256,7 @@ no_cpuid:
#endif
if (MINIMUM_X86_ISA_LEVEL >= AVX_X86_ISA_LEVEL
- || (GLRO(dl_x86_cpu_features).xsave_state_size != 0))
+ || cpu_features->xsave_state_size != 0)
{
if (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))
{
diff --git a/sysdeps/x86/cpu-tunables.c b/sysdeps/x86/cpu-tunables.c
index ccc6b64..74cd5b9 100644
--- a/sysdeps/x86/cpu-tunables.c
+++ b/sysdeps/x86/cpu-tunables.c
@@ -1,6 +1,6 @@
/* x86 CPU feature tuning.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -96,7 +96,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
GLIBC_TUNABLES=glibc.cpu.hwcaps=-xxx,yyy,-zzz,....
can be used to enable CPU/ARCH feature yyy, disable CPU/ARCH feature
- yyy and zzz, where the feature name is case-sensitive and has to
+ xxx and zzz, where the feature name is case-sensitive and has to
match the ones in cpu-features.h. It can be used by glibc developers
to tune for a new processor or override the IFUNC selection to
improve performance for a particular workload.
@@ -164,6 +164,8 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
/* Update xsave_state_size to XSAVE state size. */
cpu_features->xsave_state_size
= cpu_features->xsave_state_full_size;
+ _dl_x86_features_tlsdesc_state_size
+ = cpu_features->xsave_state_full_size;
CPU_FEATURE_UNSET (cpu_features, XSAVEC);
}
}
@@ -193,6 +195,8 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
11);
CHECK_GLIBC_IFUNC_PREFERRED_BOTH (n, cpu_features, Prefer_FSRM,
11);
+ CHECK_GLIBC_IFUNC_PREFERRED_BOTH (n, cpu_features, Avoid_STOSB,
+ 11);
CHECK_GLIBC_IFUNC_PREFERRED_NEED_BOTH (n, cpu_features,
Slow_SSE4_2,
SSE4_2,
diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
index a1c03b8..6f9bb08 100644
--- a/sysdeps/x86/dl-cacheinfo.h
+++ b/sysdeps/x86/dl-cacheinfo.h
@@ -1,5 +1,5 @@
/* Initialize x86 cache info.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -567,6 +567,48 @@ handle_zhaoxin (int name)
return 0;
}
+static long int __attribute__ ((noinline))
+handle_hygon (int name)
+{
+ unsigned int eax;
+ unsigned int ebx;
+ unsigned int ecx;
+ unsigned int edx;
+ unsigned int count = 0x1;
+
+ if (name >= _SC_LEVEL3_CACHE_SIZE)
+ count = 0x3;
+ else if (name >= _SC_LEVEL2_CACHE_SIZE)
+ count = 0x2;
+ else if (name >= _SC_LEVEL1_DCACHE_SIZE)
+ count = 0x0;
+
+ /* Use __cpuid__ '0x8000_001D' to compute cache details. */
+ __cpuid_count (0x8000001D, count, eax, ebx, ecx, edx);
+
+ switch (name)
+ {
+ case _SC_LEVEL1_ICACHE_ASSOC:
+ case _SC_LEVEL1_DCACHE_ASSOC:
+ case _SC_LEVEL2_CACHE_ASSOC:
+ case _SC_LEVEL3_CACHE_ASSOC:
+ return ((ebx >> 22) & 0x3ff) + 1;
+ case _SC_LEVEL1_ICACHE_LINESIZE:
+ case _SC_LEVEL1_DCACHE_LINESIZE:
+ case _SC_LEVEL2_CACHE_LINESIZE:
+ case _SC_LEVEL3_CACHE_LINESIZE:
+ return (ebx & 0xfff) + 1;
+ case _SC_LEVEL1_ICACHE_SIZE:
+ case _SC_LEVEL1_DCACHE_SIZE:
+ case _SC_LEVEL2_CACHE_SIZE:
+ case _SC_LEVEL3_CACHE_SIZE:
+ return (((ebx >> 22) & 0x3ff) + 1) * ((ebx & 0xfff) + 1) * (ecx + 1);
+ default:
+ __builtin_unreachable ();
+ }
+ return -1;
+}
+
static void
get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, unsigned int *threads_ptr,
long int core)
@@ -889,6 +931,24 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
shared_per_thread = shared;
}
+ else if (cpu_features->basic.kind == arch_kind_hygon)
+ {
+ data = handle_hygon (_SC_LEVEL1_DCACHE_SIZE);
+ shared = handle_hygon (_SC_LEVEL3_CACHE_SIZE);
+ shared_per_thread = shared;
+
+ level1_icache_size = handle_hygon (_SC_LEVEL1_ICACHE_SIZE);
+ level1_icache_linesize = handle_hygon (_SC_LEVEL1_ICACHE_LINESIZE);
+ level1_dcache_size = data;
+ level1_dcache_assoc = handle_hygon (_SC_LEVEL1_DCACHE_ASSOC);
+ level1_dcache_linesize = handle_hygon (_SC_LEVEL1_DCACHE_LINESIZE);
+ level2_cache_size = handle_hygon (_SC_LEVEL2_CACHE_SIZE);;
+ level2_cache_assoc = handle_hygon (_SC_LEVEL2_CACHE_ASSOC);
+ level2_cache_linesize = handle_hygon (_SC_LEVEL2_CACHE_LINESIZE);
+ level3_cache_size = shared;
+ level3_cache_assoc = handle_hygon (_SC_LEVEL3_CACHE_ASSOC);
+ level3_cache_linesize = handle_hygon (_SC_LEVEL3_CACHE_LINESIZE);
+ }
cpu_features->level1_icache_size = level1_icache_size;
cpu_features->level1_icache_linesize = level1_icache_linesize;
@@ -961,11 +1021,11 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
non_temporal_threshold = maximum_non_temporal_threshold;
/* NB: The REP MOVSB threshold must be greater than VEC_SIZE * 8. */
- unsigned int minimum_rep_movsb_threshold;
+ unsigned long int minimum_rep_movsb_threshold;
/* NB: The default REP MOVSB threshold is 4096 * (VEC_SIZE / 16) for
VEC_SIZE == 64 or 32. For VEC_SIZE == 16, the default REP MOVSB
threshold is 2048 * (VEC_SIZE / 16). */
- unsigned int rep_movsb_threshold;
+ unsigned long int rep_movsb_threshold;
if (CPU_FEATURE_USABLE_P (cpu_features, AVX512F)
&& !CPU_FEATURE_PREFERRED_P (cpu_features, Prefer_No_AVX512))
{
@@ -988,14 +1048,6 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
if (CPU_FEATURE_USABLE_P (cpu_features, FSRM))
rep_movsb_threshold = 2112;
- /* Non-temporal stores are more performant on Intel and AMD hardware above
- non_temporal_threshold. Enable this for both Intel and AMD hardware. */
- unsigned long int memset_non_temporal_threshold = SIZE_MAX;
- if (!CPU_FEATURES_ARCH_P (cpu_features, Avoid_Non_Temporal_Memset)
- && (cpu_features->basic.kind == arch_kind_intel
- || cpu_features->basic.kind == arch_kind_amd))
- memset_non_temporal_threshold = non_temporal_threshold;
-
/* For AMD CPUs that support ERMS (Zen3+), REP MOVSB is in a lot of
cases slower than the vectorized path (and for some alignments,
it is really slow, check BZ #30994). */
@@ -1017,6 +1069,13 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
if (tunable_size != 0)
shared = tunable_size;
+ /* Non-temporal stores are more performant on some hardware above
+ non_temporal_threshold. Currently Prefer_Non_Temporal is set for for both
+ Intel, AMD and Hygon hardware. */
+ unsigned long int memset_non_temporal_threshold = SIZE_MAX;
+ if (!CPU_FEATURES_ARCH_P (cpu_features, Avoid_Non_Temporal_Memset))
+ memset_non_temporal_threshold = non_temporal_threshold;
+
tunable_size = TUNABLE_GET (x86_non_temporal_threshold, long int, NULL);
if (tunable_size > minimum_non_temporal_threshold
&& tunable_size <= maximum_non_temporal_threshold)
@@ -1042,18 +1101,42 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
slightly better than ERMS. */
rep_stosb_threshold = SIZE_MAX;
+ /*
+ For memset, the non-temporal implementation is only accessed through the
+ stosb code. ie:
+ ```
+ if (size >= rep_stosb_thresh)
+ {
+ if (size >= non_temporal_thresh)
+ {
+ do_non_temporal ();
+ }
+ do_stosb ();
+ }
+ do_normal_vec_loop ();
+ ```
+ So if we prefer non-temporal, set `rep_stosb_thresh = non_temporal_thresh`
+ to enable the implementation. If `rep_stosb_thresh = non_temporal_thresh`,
+ `rep stosb` will never be used.
+ */
+ TUNABLE_SET_WITH_BOUNDS (x86_memset_non_temporal_threshold,
+ memset_non_temporal_threshold,
+ minimum_non_temporal_threshold, SIZE_MAX);
+ /* Do `rep_stosb_thresh = non_temporal_thresh` after setting/getting the
+ final value of `x86_memset_non_temporal_threshold`. In some cases this can
+ be a matter of correctness. */
+ if (CPU_FEATURES_ARCH_P (cpu_features, Avoid_STOSB))
+ rep_stosb_threshold
+ = TUNABLE_GET (x86_memset_non_temporal_threshold, long int, NULL);
+ TUNABLE_SET_WITH_BOUNDS (x86_rep_stosb_threshold, rep_stosb_threshold, 1,
+ SIZE_MAX);
TUNABLE_SET_WITH_BOUNDS (x86_data_cache_size, data, 0, SIZE_MAX);
TUNABLE_SET_WITH_BOUNDS (x86_shared_cache_size, shared, 0, SIZE_MAX);
TUNABLE_SET_WITH_BOUNDS (x86_non_temporal_threshold, non_temporal_threshold,
minimum_non_temporal_threshold,
maximum_non_temporal_threshold);
- TUNABLE_SET_WITH_BOUNDS (x86_memset_non_temporal_threshold,
- memset_non_temporal_threshold,
- minimum_non_temporal_threshold, SIZE_MAX);
TUNABLE_SET_WITH_BOUNDS (x86_rep_movsb_threshold, rep_movsb_threshold,
minimum_rep_movsb_threshold, SIZE_MAX);
- TUNABLE_SET_WITH_BOUNDS (x86_rep_stosb_threshold, rep_stosb_threshold, 1,
- SIZE_MAX);
unsigned long int rep_movsb_stop_threshold;
/* Setting the upper bound of ERMS to the computed value of
diff --git a/sysdeps/x86/dl-diagnostics-cpu.c b/sysdeps/x86/dl-diagnostics-cpu.c
index 49eeb5f..870b126 100644
--- a/sysdeps/x86/dl-diagnostics-cpu.c
+++ b/sysdeps/x86/dl-diagnostics-cpu.c
@@ -1,5 +1,5 @@
/* Print CPU diagnostics data in ld.so. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -89,6 +89,8 @@ _dl_diagnostics_cpu (void)
cpu_features->xsave_state_size);
print_cpu_features_value ("xsave_state_full_size",
cpu_features->xsave_state_full_size);
+ print_cpu_features_value ("tlsdesc_state_full_size",
+ _dl_x86_features_tlsdesc_state_size);
print_cpu_features_value ("data_cache_size", cpu_features->data_cache_size);
print_cpu_features_value ("shared_cache_size",
cpu_features->shared_cache_size);
diff --git a/sysdeps/x86/dl-get-cpu-features.c b/sysdeps/x86/dl-get-cpu-features.c
index 579d02d..3f344d6 100644
--- a/sysdeps/x86/dl-get-cpu-features.c
+++ b/sysdeps/x86/dl-get-cpu-features.c
@@ -1,5 +1,5 @@
/* Initialize CPU feature data via IFUNC relocation.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/dl-hwcap.h b/sysdeps/x86/dl-hwcap.h
index 325f1c4..d482408 100644
--- a/sysdeps/x86/dl-hwcap.h
+++ b/sysdeps/x86/dl-hwcap.h
@@ -1,5 +1,5 @@
/* x86 version of hardware capability information handling macros.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,14 +25,4 @@ enum
HWCAP_X86_AVX512_1 = 1 << 2
};
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return GLRO(dl_x86_hwcap_flags)[idx];
-};
-
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
-
#endif /* dl-hwcap.h */
diff --git a/sysdeps/x86/dl-hwcap2.h b/sysdeps/x86/dl-hwcap2.h
index dba2b9d..eac92d9 100644
--- a/sysdeps/x86/dl-hwcap2.h
+++ b/sysdeps/x86/dl-hwcap2.h
@@ -1,5 +1,5 @@
/* Handle AT_HWCAP2. Generic x86 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/dl-isa-level.h b/sysdeps/x86/dl-isa-level.h
index ac14bef..9784cdc 100644
--- a/sysdeps/x86/dl-isa-level.h
+++ b/sysdeps/x86/dl-isa-level.h
@@ -1,6 +1,6 @@
/* Support for reading ISA level in /etc/ld.so.cache files written by
Linux ldconfig. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/dl-lookupcfg.h b/sysdeps/x86/dl-lookupcfg.h
index fd69ee5..e325a9c 100644
--- a/sysdeps/x86/dl-lookupcfg.h
+++ b/sysdeps/x86/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/dl-minsigstacksize.h b/sysdeps/x86/dl-minsigstacksize.h
index 9046584..5672cb0 100644
--- a/sysdeps/x86/dl-minsigstacksize.h
+++ b/sysdeps/x86/dl-minsigstacksize.h
@@ -1,5 +1,5 @@
/* Emulate AT_MINSIGSTKSZ. Generic x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/dl-new-hash.h b/sysdeps/x86/dl-new-hash.h
index 605fb64..40dcfa3 100644
--- a/sysdeps/x86/dl-new-hash.h
+++ b/sysdeps/x86/dl-new-hash.h
@@ -1,5 +1,5 @@
/* _dl_new_hash for elf symbol lookup
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/dl-procinfo.c b/sysdeps/x86/dl-procinfo.c
index b791fd3..05b8710 100644
--- a/sysdeps/x86/dl-procinfo.c
+++ b/sysdeps/x86/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for x86 version of processor capability information.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,22 +54,6 @@ PROCINFO_CLASS struct cpu_features _dl_x86_cpu_features
# endif
#endif
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_x86_hwcap_flags
-#else
-PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9]
-#endif
-#ifndef PROCINFO_DECL
-= {
- "sse2", "x86_64", "avx512_1"
- }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
#if defined SHARED && !IS_IN (ldconfig)
# if !defined PROCINFO_DECL
._dl_x86_tlsdesc_dynamic
diff --git a/sysdeps/x86/dl-prop.h b/sysdeps/x86/dl-prop.h
index 08387df..8625751 100644
--- a/sysdeps/x86/dl-prop.h
+++ b/sysdeps/x86/dl-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -46,7 +46,7 @@ dl_isa_level_check (struct link_map *m, const char *program)
#ifdef SHARED
/* Skip ISA level check for ld.so since ld.so won't run if its ISA
level is higher than CPU. */
- if (l == &GL(dl_rtld_map) || l->l_real == &GL(dl_rtld_map))
+ if (is_rtld_link_map (l) || is_rtld_link_map (l->l_real))
continue;
#endif
diff --git a/sysdeps/x86/dl-tunables.list b/sysdeps/x86/dl-tunables.list
index a0a1299..de42169 100644
--- a/sysdeps/x86/dl-tunables.list
+++ b/sysdeps/x86/dl-tunables.list
@@ -1,5 +1,5 @@
# x86 specific tunables.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/elf-initfini.h b/sysdeps/x86/elf-initfini.h
index bb3b06f..4e322fb 100644
--- a/sysdeps/x86/elf-initfini.h
+++ b/sysdeps/x86/elf-initfini.h
@@ -1,5 +1,5 @@
/* Determine DT_INIT/DT_FINI support in the dynamic loader. x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/elide.h b/sysdeps/x86/elide.h
index 2b2422f..7c4e66d 100644
--- a/sysdeps/x86/elide.h
+++ b/sysdeps/x86/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Generic lock elision support.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/Makefile b/sysdeps/x86/fpu/Makefile
index 600e42c..91b2444 100644
--- a/sysdeps/x86/fpu/Makefile
+++ b/sysdeps/x86/fpu/Makefile
@@ -3,8 +3,16 @@ ifeq ($(subdir),math)
CPPFLAGS += -I../soft-fp
libm-support += powl_helper
-tests += test-fenv-sse test-fenv-clear-sse test-fenv-x87 test-fenv-sse-2 \
- test-flt-eval-method-387 test-flt-eval-method-sse
+tests += \
+ test-fenv-clear-sse \
+ test-fenv-sse \
+ test-fenv-sse-2 \
+ test-fenv-x87 \
+ test-flt-eval-method-sse \
+# tests
+ifeq ($(have-test-cc-cflags-mfpmath-387),yes)
+tests += test-flt-eval-method-387
+endif
CFLAGS-test-fenv-sse.c += -msse2 -mfpmath=sse
CFLAGS-test-fenv-clear-sse.c += -msse2 -mfpmath=sse
CFLAGS-test-fenv-sse-2.c += -msse2 -mfpmath=sse
diff --git a/sysdeps/x86/fpu/bits/fenv.h b/sysdeps/x86/fpu/bits/fenv.h
index 8b4a95a..59dad0c 100644
--- a/sysdeps/x86/fpu/bits/fenv.h
+++ b/sysdeps/x86/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/bits/math-vector.h b/sysdeps/x86/fpu/bits/math-vector.h
index 04e1982..5e90677 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -1,5 +1,5 @@
/* Platform-specific SIMD declarations of math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/e_sqrtf128.c b/sysdeps/x86/fpu/e_sqrtf128.c
index f321526..e45214b 100644
--- a/sysdeps/x86/fpu/e_sqrtf128.c
+++ b/sysdeps/x86/fpu/e_sqrtf128.c
@@ -1,6 +1,6 @@
/* soft-fp sqrt for _Float128
Return sqrt(a)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/e_sqrtl.c b/sysdeps/x86/fpu/e_sqrtl.c
index 853ed6d..2065a5e 100644
--- a/sysdeps/x86/fpu/e_sqrtl.c
+++ b/sysdeps/x86/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Square root function. x86_64 long double version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/finclude/math-vector-fortran.h b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
index bd734a3..3c07952 100644
--- a/sysdeps/x86/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -1,5 +1,5 @@
! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*-
-! Copyright (C) 2019-2024 Free Software Foundation, Inc.
+! Copyright (C) 2019-2025 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
!
! The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h b/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
index 8651b76..f489ce3 100644
--- a/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. x86 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/math-barriers.h b/sysdeps/x86/fpu/math-barriers.h
index 6fdcdac..64d9aed 100644
--- a/sysdeps/x86/fpu/math-barriers.h
+++ b/sysdeps/x86/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. x86 version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/math_private.h b/sysdeps/x86/fpu/math_private.h
index 3b70ecc..132f011 100644
--- a/sysdeps/x86/fpu/math_private.h
+++ b/sysdeps/x86/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Private inline math functions for x86.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/nan-pseudo-number.h b/sysdeps/x86/fpu/nan-pseudo-number.h
index e71718c..b6458ed 100644
--- a/sysdeps/x86/fpu/nan-pseudo-number.h
+++ b/sysdeps/x86/fpu/nan-pseudo-number.h
@@ -1,5 +1,5 @@
/* Pseudo-normal number handling. x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/powl_helper.c b/sysdeps/x86/fpu/powl_helper.c
index db002e4..847eae4 100644
--- a/sysdeps/x86/fpu/powl_helper.c
+++ b/sysdeps/x86/fpu/powl_helper.c
@@ -1,5 +1,5 @@
/* Implement powl for x86 using extra-precision log.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_ceill.c b/sysdeps/x86/fpu/s_ceill.c
index 860dd2c..658e703 100644
--- a/sysdeps/x86/fpu/s_ceill.c
+++ b/sysdeps/x86/fpu/s_ceill.c
@@ -1,5 +1,5 @@
/* Return smallest integral value not less than argument. x86 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_ffma.c b/sysdeps/x86/fpu/s_ffma.c
index 44a0b47..bf8ceed 100644
--- a/sysdeps/x86/fpu/s_ffma.c
+++ b/sysdeps/x86/fpu/s_ffma.c
@@ -1,6 +1,6 @@
/* Fused multiply-add of double value, narrowing the result to float.
x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_floorl.c b/sysdeps/x86/fpu/s_floorl.c
index 9c92d33..67c10d0 100644
--- a/sysdeps/x86/fpu/s_floorl.c
+++ b/sysdeps/x86/fpu/s_floorl.c
@@ -1,5 +1,5 @@
/* Return largest integral value not less than argument. x86 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_fpclassifyl.c b/sysdeps/x86/fpu/s_fpclassifyl.c
index 34cd35e..fb86832 100644
--- a/sysdeps/x86/fpu/s_fpclassifyl.c
+++ b/sysdeps/x86/fpu/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_nearestint_387_template.c b/sysdeps/x86/fpu/s_nearestint_387_template.c
index 95fca93..b8f815d 100644
--- a/sysdeps/x86/fpu/s_nearestint_387_template.c
+++ b/sysdeps/x86/fpu/s_nearestint_387_template.c
@@ -1,5 +1,5 @@
/* Nearest integet template for x86.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_sincosf_data.c b/sysdeps/x86/fpu/s_sincosf_data.c
index c13ef3f..60b146d 100644
--- a/sysdeps/x86/fpu/s_sincosf_data.c
+++ b/sysdeps/x86/fpu/s_sincosf_data.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/s_truncl.c b/sysdeps/x86/fpu/s_truncl.c
index e2bac7f..979be3e 100644
--- a/sysdeps/x86/fpu/s_truncl.c
+++ b/sysdeps/x86/fpu/s_truncl.c
@@ -1,5 +1,5 @@
/* Round to integer, toward zero. x86 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/sincosf_poly.h b/sysdeps/x86/fpu/sincosf_poly.h
index 8515f36..d7f697c 100644
--- a/sysdeps/x86/fpu/sincosf_poly.h
+++ b/sysdeps/x86/fpu/sincosf_poly.h
@@ -1,5 +1,5 @@
/* Used by sinf, cosf and sincosf functions. X86-64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/test-fenv-clear-sse.c b/sysdeps/x86/fpu/test-fenv-clear-sse.c
index 69b7e77..3fd1a23 100644
--- a/sysdeps/x86/fpu/test-fenv-clear-sse.c
+++ b/sysdeps/x86/fpu/test-fenv-clear-sse.c
@@ -1,6 +1,6 @@
/* Test fesetenv (FE_DFL_ENV) and fesetenv (FE_NOMASK_ENV) clear
exceptions (bug 19181). SSE version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/test-fenv-sse-2.c b/sysdeps/x86/fpu/test-fenv-sse-2.c
index e669f36..39526e0 100644
--- a/sysdeps/x86/fpu/test-fenv-sse-2.c
+++ b/sysdeps/x86/fpu/test-fenv-sse-2.c
@@ -1,5 +1,5 @@
/* Test x86-specific floating-point environment (bug 16068): SSE part.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/test-fenv-sse.c b/sysdeps/x86/fpu/test-fenv-sse.c
index b07e0ae..a694069 100644
--- a/sysdeps/x86/fpu/test-fenv-sse.c
+++ b/sysdeps/x86/fpu/test-fenv-sse.c
@@ -1,5 +1,5 @@
/* Test floating-point environment includes SSE state (bug 16064).
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/test-fenv-x87.c b/sysdeps/x86/fpu/test-fenv-x87.c
index 53e79d1..9b0e71c 100644
--- a/sysdeps/x86/fpu/test-fenv-x87.c
+++ b/sysdeps/x86/fpu/test-fenv-x87.c
@@ -1,5 +1,5 @@
/* Test x86-specific floating-point environment (bug 16068): x87 part.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu/test-math-vector-sincos.h b/sysdeps/x86/fpu/test-math-vector-sincos.h
index da8a94c..148c6f7 100644
--- a/sysdeps/x86/fpu/test-math-vector-sincos.h
+++ b/sysdeps/x86/fpu/test-math-vector-sincos.h
@@ -1,6 +1,6 @@
/* Wrappers definitions for tests of ABI of vector sincos/sincosf having
vector declaration "#pragma omp declare simd notinbranch".
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/fpu_control.h b/sysdeps/x86/fpu_control.h
index cccc25e..967e8ca 100644
--- a/sysdeps/x86/fpu_control.h
+++ b/sysdeps/x86/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. x86 version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/get-cpuid-feature-leaf.c b/sysdeps/x86/get-cpuid-feature-leaf.c
index 6f67346..d946e73 100644
--- a/sysdeps/x86/get-cpuid-feature-leaf.c
+++ b/sysdeps/x86/get-cpuid-feature-leaf.c
@@ -1,5 +1,5 @@
/* Get CPUID feature leaf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/get-isa-level.h b/sysdeps/x86/get-isa-level.h
index c9bb28c..3cc67b4 100644
--- a/sysdeps/x86/get-isa-level.h
+++ b/sysdeps/x86/get-isa-level.h
@@ -1,6 +1,6 @@
/* Get x86 ISA level.
This file is part of the GNU C Library.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/hp-timing.h b/sysdeps/x86/hp-timing.h
index 699baa3..1045ad2 100644
--- a/sysdeps/x86/hp-timing.h
+++ b/sysdeps/x86/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/htl/pt-machdep.h b/sysdeps/x86/htl/pt-machdep.h
index 9ae420e..10b3040 100644
--- a/sysdeps/x86/htl/pt-machdep.h
+++ b/sysdeps/x86/htl/pt-machdep.h
@@ -1,5 +1,5 @@
/* Machine dependent pthreads internal definitions. x86 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/include/cpu-features-preferred_feature_index_1.def b/sysdeps/x86/include/cpu-features-preferred_feature_index_1.def
index 61bbbc2..0f14aaf 100644
--- a/sysdeps/x86/include/cpu-features-preferred_feature_index_1.def
+++ b/sysdeps/x86/include/cpu-features-preferred_feature_index_1.def
@@ -1,5 +1,5 @@
/* Bits in the PREFERRED_FEATURE_INDEX_1 bitfield of <cpu-features.h>.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,3 +34,4 @@ BIT (MathVec_Prefer_No_AVX512)
BIT (Prefer_FSRM)
BIT (Avoid_Short_Distance_REP_MOVSB)
BIT (Avoid_Non_Temporal_Memset)
+BIT (Avoid_STOSB)
diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h
index aaae44f..fbf1b89 100644
--- a/sysdeps/x86/include/cpu-features.h
+++ b/sysdeps/x86/include/cpu-features.h
@@ -1,5 +1,5 @@
/* Data structure for x86 CPU features.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -881,6 +881,7 @@ enum cpu_features_kind
arch_kind_intel,
arch_kind_amd,
arch_kind_zhaoxin,
+ arch_kind_hygon,
arch_kind_other
};
@@ -934,8 +935,6 @@ struct cpu_features
/* The full state size for XSAVE when XSAVEC is disabled by
GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC
-
- and the AMX state size when XSAVEC is available.
*/
unsigned int xsave_state_full_size;
/* Data cache size for use in memory and string routines, typically
@@ -989,6 +988,13 @@ extern const struct cpu_features *_dl_x86_get_cpu_features (void)
#define __get_cpu_features() _dl_x86_get_cpu_features()
+#if IS_IN (rtld) || IS_IN (libc)
+/* XSAVE/XSAVEC state size used by TLS descriptors. Compared to
+ xsave_state_size from struct cpu_features, this includes additional
+ registers. */
+extern unsigned long int _dl_x86_features_tlsdesc_state_size attribute_hidden;
+#endif
+
#if defined (_LIBC) && !IS_IN (nonlib)
/* Unused for x86. */
# define INIT_ARCH()
diff --git a/sysdeps/x86/init-arch.h b/sysdeps/x86/init-arch.h
index ab2153e..4f3e492 100644
--- a/sysdeps/x86/init-arch.h
+++ b/sysdeps/x86/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/isa-ifunc-macros.h b/sysdeps/x86/isa-ifunc-macros.h
index 8d6e74b..4a7e864 100644
--- a/sysdeps/x86/isa-ifunc-macros.h
+++ b/sysdeps/x86/isa-ifunc-macros.h
@@ -1,6 +1,6 @@
/* Common ifunc selection utils
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c
index 3f1b269..be0b9b0 100644
--- a/sysdeps/x86/isa-level.c
+++ b/sysdeps/x86/isa-level.c
@@ -1,5 +1,5 @@
/* ELF program property for x86 ISA level.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/isa-level.h b/sysdeps/x86/isa-level.h
index 03c1fe2..0c8f287 100644
--- a/sysdeps/x86/isa-level.h
+++ b/sysdeps/x86/isa-level.h
@@ -1,5 +1,5 @@
/* Header defining the minimum x86 ISA level
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/ldbl2mpn.c b/sysdeps/x86/ldbl2mpn.c
index 5c8c620..d1dabab 100644
--- a/sysdeps/x86/ldbl2mpn.c
+++ b/sysdeps/x86/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/ldsodefs.h b/sysdeps/x86/ldsodefs.h
index 50dc81c..d53fb2a 100644
--- a/sysdeps/x86/ldsodefs.h
+++ b/sysdeps/x86/ldsodefs.h
@@ -1,6 +1,6 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
X86 version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/libc-start.c b/sysdeps/x86/libc-start.c
index 070b068..cf84472 100644
--- a/sysdeps/x86/libc-start.c
+++ b/sysdeps/x86/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/link_map.h b/sysdeps/x86/link_map.h
index f339d7f..5116e02 100644
--- a/sysdeps/x86/link_map.h
+++ b/sysdeps/x86/link_map.h
@@ -1,5 +1,5 @@
/* Additional fields in struct link_map. Linux/x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/longjmp.c b/sysdeps/x86/longjmp.c
index b72a76f..3c3b872 100644
--- a/sysdeps/x86/longjmp.c
+++ b/sysdeps/x86/longjmp.c
@@ -1,5 +1,5 @@
/* __libc_siglongjmp for x86.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/nptl/bits/pthreadtypes-arch.h b/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
index b23ff3b..bcdd76a 100644
--- a/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/nptl/bits/struct_mutex.h b/sysdeps/x86/nptl/bits/struct_mutex.h
index b6bb9aa..0784a21 100644
--- a/sysdeps/x86/nptl/bits/struct_mutex.h
+++ b/sysdeps/x86/nptl/bits/struct_mutex.h
@@ -1,5 +1,5 @@
/* x86 internal mutex struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,7 +54,7 @@ struct __pthread_mutex_s
#ifdef __x86_64__
# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
- 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+ 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }
#else
# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
0, 0, 0, __kind, 0, { { 0, 0 } }
diff --git a/sysdeps/x86/nptl/bits/struct_rwlock.h b/sysdeps/x86/nptl/bits/struct_rwlock.h
index 4751965..da526a1 100644
--- a/sysdeps/x86/nptl/bits/struct_rwlock.h
+++ b/sysdeps/x86/nptl/bits/struct_rwlock.h
@@ -1,5 +1,5 @@
/* x86 internal rwlock struct definitions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/x86/nptl/pthreaddef.h b/sysdeps/x86/nptl/pthreaddef.h
index 93134f0..acaff25 100644
--- a/sysdeps/x86/nptl/pthreaddef.h
+++ b/sysdeps/x86/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/nptl/tls-setup.h b/sysdeps/x86/nptl/tls-setup.h
index 0953ded..8216939 100644
--- a/sysdeps/x86/nptl/tls-setup.h
+++ b/sysdeps/x86/nptl/tls-setup.h
@@ -1,5 +1,5 @@
/* Definitions to set up thread-local data. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/readelflib.c b/sysdeps/x86/readelflib.c
index 8ce65cd..acb25d7 100644
--- a/sysdeps/x86/readelflib.c
+++ b/sysdeps/x86/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/sys/platform/x86.h b/sysdeps/x86/sys/platform/x86.h
index b8066cc..7f4aeac 100644
--- a/sysdeps/x86/sys/platform/x86.h
+++ b/sysdeps/x86/sys/platform/x86.h
@@ -1,6 +1,6 @@
/* Data structure for x86 CPU features.
This file is part of the GNU C Library.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -30,7 +30,7 @@ __BEGIN_DECLS
extern const struct cpuid_feature *__x86_get_cpuid_feature_leaf (unsigned int)
__attribute__ ((pure));
-static __inline__ _Bool
+static __inline__ bool
x86_cpu_present (unsigned int __index)
{
const struct cpuid_feature *__ptr = __x86_get_cpuid_feature_leaf
@@ -43,7 +43,7 @@ x86_cpu_present (unsigned int __index)
return __ptr->cpuid_array[__reg] & (1 << __bit);
}
-static __inline__ _Bool
+static __inline__ bool
x86_cpu_active (unsigned int __index)
{
if (__index == x86_cpu_IBT || __index == x86_cpu_SHSTK)
diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
index 7359149..b8e963b 100644
--- a/sysdeps/x86/sysdep.h
+++ b/sysdeps/x86/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x86.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -102,6 +102,9 @@
| (1 << X86_XSTATE_ZMM_ID) \
| (1 << X86_XSTATE_APX_F_ID))
+/* The maximum supported xstate ID. */
+# define X86_XSTATE_MAX_ID X86_XSTATE_APX_F_ID
+
/* AMX state mask. */
# define AMX_STATE_SAVE_MASK \
((1 << X86_XSTATE_TILECFG_ID) | (1 << X86_XSTATE_TILEDATA_ID))
@@ -123,6 +126,9 @@
| (1 << X86_XSTATE_K_ID) \
| (1 << X86_XSTATE_ZMM_H_ID))
+/* The maximum supported xstate ID. */
+# define X86_XSTATE_MAX_ID X86_XSTATE_ZMM_H_ID
+
/* States to be included in xsave_state_size. */
# define FULL_STATE_SAVE_MASK STATE_SAVE_MASK
#endif
@@ -177,6 +183,29 @@
#define atom_text_section .section ".text.atom", "ax"
+#ifndef DL_STACK_ALIGNMENT
+/* Due to GCC bug:
+
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
+
+ __tls_get_addr may be called with 8-byte/4-byte stack alignment.
+ Although this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't
+ assume that stack will be always aligned at 16 bytes. */
+# ifdef __x86_64__
+# define DL_STACK_ALIGNMENT 8
+# define MINIMUM_ALIGNMENT 16
+# else
+# define DL_STACK_ALIGNMENT 4
+# endif
+#endif
+
+/* True if _dl_runtime_resolve/_dl_tlsdesc_dynamic should align stack for
+ STATE_SAVE or align stack to MINIMUM_ALIGNMENT bytes before calling
+ _dl_fixup/__tls_get_addr. */
+#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
+ (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
+ || MINIMUM_ALIGNMENT > DL_STACK_ALIGNMENT)
+
#endif /* __ASSEMBLER__ */
#endif /* _X86_SYSDEP_H */
diff --git a/sysdeps/x86/nptl/thread_pointer.h b/sysdeps/x86/thread_pointer.h
index b68db5a..c1746d3 100644
--- a/sysdeps/x86/nptl/thread_pointer.h
+++ b/sysdeps/x86/thread_pointer.h
@@ -1,5 +1,5 @@
/* __thread_pointer definition. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,8 @@
#ifndef _SYS_THREAD_POINTER_H
#define _SYS_THREAD_POINTER_H
+#include <features.h>
+
static inline void *
__thread_pointer (void)
{
diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
index 0251fb5..e5d5653 100644
--- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
+++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
@@ -1,6 +1,6 @@
/* Test CPU feature data against /proc/cpuinfo.
This file is part of the GNU C Library.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c
index a50afea..88b6a6d 100644
--- a/sysdeps/x86/tst-cpu-features-supports.c
+++ b/sysdeps/x86/tst-cpu-features-supports.c
@@ -1,6 +1,6 @@
/* Test CPU feature data against __builtin_cpu_supports.
This file is part of the GNU C Library.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c
index 659fcc7..02f9a06 100644
--- a/sysdeps/x86/tst-get-cpu-features.c
+++ b/sysdeps/x86/tst-get-cpu-features.c
@@ -1,5 +1,5 @@
/* Test case for <sys/platform/x86.h> interface
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c b/sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c
new file mode 100644
index 0000000..963c4f3
--- /dev/null
+++ b/sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c
@@ -0,0 +1 @@
+#include <tst-gnu2-tls2.c>
diff --git a/sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c b/sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c
new file mode 100644
index 0000000..963c4f3
--- /dev/null
+++ b/sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c
@@ -0,0 +1 @@
+#include <tst-gnu2-tls2.c>
diff --git a/sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c b/sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c
new file mode 100644
index 0000000..963c4f3
--- /dev/null
+++ b/sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c
@@ -0,0 +1 @@
+#include <tst-gnu2-tls2.c>
diff --git a/sysdeps/x86/tst-gnu2-tls2.c b/sysdeps/x86/tst-gnu2-tls2.c
index de900a4..b3195ff 100644
--- a/sysdeps/x86/tst-gnu2-tls2.c
+++ b/sysdeps/x86/tst-gnu2-tls2.c
@@ -1,20 +1,26 @@
-#ifndef __x86_64__
-#include <sys/platform/x86.h>
+#ifndef TEST_AMX
+# ifndef __x86_64__
+# include <sys/platform/x86.h>
-#define IS_SUPPORTED() CPU_FEATURE_ACTIVE (SSE2)
-#endif
+# define IS_SUPPORTED() CPU_FEATURE_ACTIVE (SSE2)
+# endif
-/* Clear XMM0...XMM7 */
-#define PREPARE_MALLOC() \
-{ \
- asm volatile ("xorps %%xmm0, %%xmm0" : : : "xmm0" ); \
- asm volatile ("xorps %%xmm1, %%xmm1" : : : "xmm1" ); \
- asm volatile ("xorps %%xmm2, %%xmm2" : : : "xmm2" ); \
- asm volatile ("xorps %%xmm3, %%xmm3" : : : "xmm3" ); \
- asm volatile ("xorps %%xmm4, %%xmm4" : : : "xmm4" ); \
- asm volatile ("xorps %%xmm5, %%xmm5" : : : "xmm5" ); \
- asm volatile ("xorps %%xmm6, %%xmm6" : : : "xmm6" ); \
- asm volatile ("xorps %%xmm7, %%xmm7" : : : "xmm7" ); \
+/* Set XMM0...XMM7 to all 1s. */
+# define PREPARE_MALLOC() \
+{ \
+ asm volatile ("pcmpeqd %%xmm0, %%xmm0" : : : "xmm0" ); \
+ asm volatile ("pcmpeqd %%xmm1, %%xmm1" : : : "xmm1" ); \
+ asm volatile ("pcmpeqd %%xmm2, %%xmm2" : : : "xmm2" ); \
+ asm volatile ("pcmpeqd %%xmm3, %%xmm3" : : : "xmm3" ); \
+ asm volatile ("pcmpeqd %%xmm4, %%xmm4" : : : "xmm4" ); \
+ asm volatile ("pcmpeqd %%xmm5, %%xmm5" : : : "xmm5" ); \
+ asm volatile ("pcmpeqd %%xmm6, %%xmm6" : : : "xmm6" ); \
+ asm volatile ("pcmpeqd %%xmm7, %%xmm7" : : : "xmm7" ); \
}
+#endif
#include <elf/tst-gnu2-tls2.c>
+
+#ifndef TEST_AMX
+v2di v1, v2, v3;
+#endif
diff --git a/sysdeps/x86/tst-gnu2-tls2.h b/sysdeps/x86/tst-gnu2-tls2.h
new file mode 100644
index 0000000..fdbb565
--- /dev/null
+++ b/sysdeps/x86/tst-gnu2-tls2.h
@@ -0,0 +1,37 @@
+/* Test TLSDESC relocation, x86 version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TEST_AMX
+# include <support/check.h>
+
+typedef long long v2di __attribute__((vector_size(16)));
+extern v2di v1, v2, v3;
+
+# define BEFORE_TLSDESC_CALL() \
+ v1 = __extension__(v2di){0, 0}; \
+ v2 = __extension__(v2di){0, 0};
+
+# define AFTER_TLSDESC_CALL() \
+ v3 = __extension__(v2di){0, 0}; \
+ asm volatile ("" : "+x" (v3)); \
+ union { v2di x; long long a[2]; } u; \
+ u.x = v3; \
+ TEST_VERIFY_EXIT (u.a[0] == 0 && u.a[1] == 0);
+#endif
+
+#include <elf/tst-gnu2-tls2.h>
diff --git a/sysdeps/x86/tst-hwcap-tunables.c b/sysdeps/x86/tst-hwcap-tunables.c
index 9430728..3e06048 100644
--- a/sysdeps/x86/tst-hwcap-tunables.c
+++ b/sysdeps/x86/tst-hwcap-tunables.c
@@ -1,5 +1,5 @@
/* Tests for x86 GLIBC_TUNABLES=glibc.cpu.hwcaps filter.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -60,7 +60,8 @@ static const struct test_t
/* Disable everything. */
"-Prefer_ERMS,-Prefer_FSRM,-AVX,-AVX2,-AVX512F,-AVX512VL,"
"-SSE4_1,-SSE4_2,-SSSE3,-Fast_Unaligned_Load,-ERMS,"
- "-AVX_Fast_Unaligned_Load,-Avoid_Non_Temporal_Memset",
+ "-AVX_Fast_Unaligned_Load,-Avoid_Non_Temporal_Memset,"
+ "-Avoid_STOSB",
test_1,
array_length (test_1)
},
@@ -68,7 +69,8 @@ static const struct test_t
/* Same as before, but with some empty suboptions. */
",-,-Prefer_ERMS,-Prefer_FSRM,-AVX,-AVX2,-AVX512F,-AVX512VL,"
"-SSE4_1,-SSE4_2,-SSSE3,-Fast_Unaligned_Load,,-,"
- "-ERMS,-AVX_Fast_Unaligned_Load,-Avoid_Non_Temporal_Memset,-,",
+ "-ERMS,-AVX_Fast_Unaligned_Load,-Avoid_Non_Temporal_Memset,"
+ "-Avoid_STOSB,-,",
test_1,
array_length (test_1)
}
diff --git a/sysdeps/x86/tst-ifunc-isa-1.c b/sysdeps/x86/tst-ifunc-isa-1.c
index 4472657..781887a 100644
--- a/sysdeps/x86/tst-ifunc-isa-1.c
+++ b/sysdeps/x86/tst-ifunc-isa-1.c
@@ -1,5 +1,5 @@
/* Check IFUNC resolver with CPU_FEATURE_USABLE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-ifunc-isa-2.c b/sysdeps/x86/tst-ifunc-isa-2.c
index 156c649..4b3742d 100644
--- a/sysdeps/x86/tst-ifunc-isa-2.c
+++ b/sysdeps/x86/tst-ifunc-isa-2.c
@@ -1,5 +1,5 @@
/* Check IFUNC resolver with CPU_FEATURE_USABLE and tunables.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-ifunc-isa.h b/sysdeps/x86/tst-ifunc-isa.h
index dc79d26..a8263cd 100644
--- a/sysdeps/x86/tst-ifunc-isa.h
+++ b/sysdeps/x86/tst-ifunc-isa.h
@@ -1,5 +1,5 @@
/* IFUNC resolver with CPU_FEATURE_ACTIVE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <libc-misc.h>
#include <sys/platform/x86.h>
enum isa
@@ -29,7 +30,7 @@ enum isa
};
enum isa
-__attribute__ ((__optimize__ ("-fno-stack-protector")))
+test_inhibit_stack_protector
get_isa (void)
{
if (CPU_FEATURE_ACTIVE (AVX512F))
@@ -84,7 +85,7 @@ isa_none (void)
int foo (void) __attribute__ ((ifunc ("foo_ifunc")));
void *
-__attribute__ ((__optimize__ ("-fno-stack-protector")))
+test_inhibit_stack_protector
foo_ifunc (void)
{
switch (get_isa ())
diff --git a/sysdeps/x86/tst-isa-level-1.c b/sysdeps/x86/tst-isa-level-1.c
index f61ea22..bcfcb2b 100644
--- a/sysdeps/x86/tst-isa-level-1.c
+++ b/sysdeps/x86/tst-isa-level-1.c
@@ -1,5 +1,5 @@
/* Check ISA level on dlopened shared object.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-isa-level-mod-1.c b/sysdeps/x86/tst-isa-level-mod-1.c
index c62a5b6..d5ebc81 100644
--- a/sysdeps/x86/tst-isa-level-mod-1.c
+++ b/sysdeps/x86/tst-isa-level-mod-1.c
@@ -1,5 +1,5 @@
/* Check ISA level on dlopened shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-ldbl-nonnormal-printf.c b/sysdeps/x86/tst-ldbl-nonnormal-printf.c
index 3a60750..a0c7f10 100644
--- a/sysdeps/x86/tst-ldbl-nonnormal-printf.c
+++ b/sysdeps/x86/tst-ldbl-nonnormal-printf.c
@@ -1,5 +1,5 @@
/* Test printf with x86-specific non-normal long double value.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -23,7 +23,7 @@
/* Fill the stack with non-zero values. This makes a crash in
snprintf more likely. */
-static void __attribute__ ((noinline, noclone))
+static void __attribute_optimization_barrier__
fill_stack (void)
{
char buffer[65536];
diff --git a/sysdeps/x86/tst-memchr-rtm.c b/sysdeps/x86/tst-memchr-rtm.c
index 7dc0718..829805f 100644
--- a/sysdeps/x86/tst-memchr-rtm.c
+++ b/sysdeps/x86/tst-memchr-rtm.c
@@ -1,5 +1,5 @@
/* Test case for memchr inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -36,7 +36,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-memcmp-rtm.c b/sysdeps/x86/tst-memcmp-rtm.c
index 124eb17..a4da374 100644
--- a/sysdeps/x86/tst-memcmp-rtm.c
+++ b/sysdeps/x86/tst-memcmp-rtm.c
@@ -1,5 +1,5 @@
/* Test case for memcmp inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
char string1[STRING_SIZE];
char string2[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -35,7 +35,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-memmove-rtm.c b/sysdeps/x86/tst-memmove-rtm.c
index dfb5533..e2e72f6 100644
--- a/sysdeps/x86/tst-memmove-rtm.c
+++ b/sysdeps/x86/tst-memmove-rtm.c
@@ -1,5 +1,5 @@
/* Test case for memmove inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
char string1[STRING_SIZE];
char string2[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -35,7 +35,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-memrchr-rtm.c b/sysdeps/x86/tst-memrchr-rtm.c
index 48512de..f430180 100644
--- a/sysdeps/x86/tst-memrchr-rtm.c
+++ b/sysdeps/x86/tst-memrchr-rtm.c
@@ -1,5 +1,5 @@
/* Test case for memrchr inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -36,7 +36,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-memset-rtm.c b/sysdeps/x86/tst-memset-rtm.c
index 60e714c..dd6f1f5 100644
--- a/sysdeps/x86/tst-memset-rtm.c
+++ b/sysdeps/x86/tst-memset-rtm.c
@@ -1,5 +1,5 @@
/* Test case for memset inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -30,7 +30,7 @@ prepare (void)
return EXIT_SUCCESS;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-stack-align.h b/sysdeps/x86/tst-stack-align.h
index a44ce2e..28ef88a 100644
--- a/sysdeps/x86/tst-stack-align.h
+++ b/sysdeps/x86/tst-stack-align.h
@@ -1,5 +1,5 @@
/* Check stack alignment. X86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-strcasecmp-rtm.c b/sysdeps/x86/tst-strcasecmp-rtm.c
index 6ee9846..ad5672e 100644
--- a/sysdeps/x86/tst-strcasecmp-rtm.c
+++ b/sysdeps/x86/tst-strcasecmp-rtm.c
@@ -1,6 +1,6 @@
/* Test case for strcasecmp inside a transactionally executing RTM
region.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-strchr-rtm.c b/sysdeps/x86/tst-strchr-rtm.c
index 8294cc5..ff03a3f 100644
--- a/sysdeps/x86/tst-strchr-rtm.c
+++ b/sysdeps/x86/tst-strchr-rtm.c
@@ -1,5 +1,5 @@
/* Test case for strchr inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -36,7 +36,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-strcmp-rtm.c b/sysdeps/x86/tst-strcmp-rtm.c
index c2274a5..aba343f 100644
--- a/sysdeps/x86/tst-strcmp-rtm.c
+++ b/sysdeps/x86/tst-strcmp-rtm.c
@@ -1,6 +1,6 @@
/* Test case for strcmp inside a transactionally executing RTM
region.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,7 +40,7 @@
CHAR string1[STRING_SIZE];
CHAR string2[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -52,7 +52,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-strcpy-rtm.c b/sysdeps/x86/tst-strcpy-rtm.c
index 139f520..9020441 100644
--- a/sysdeps/x86/tst-strcpy-rtm.c
+++ b/sysdeps/x86/tst-strcpy-rtm.c
@@ -1,5 +1,5 @@
/* Test case for strcpy inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
char string1[STRING_SIZE];
char string2[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -35,7 +35,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-string-rtm.h b/sysdeps/x86/tst-string-rtm.h
index 0919df2..1bf8630 100644
--- a/sysdeps/x86/tst-string-rtm.h
+++ b/sysdeps/x86/tst-string-rtm.h
@@ -1,5 +1,5 @@
/* Test string function in a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-strlen-rtm.c b/sysdeps/x86/tst-strlen-rtm.c
index 5b083f2..3af702d 100644
--- a/sysdeps/x86/tst-strlen-rtm.c
+++ b/sysdeps/x86/tst-strlen-rtm.c
@@ -1,5 +1,5 @@
/* Test case for strlen inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -35,7 +35,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-strncasecmp-rtm.c b/sysdeps/x86/tst-strncasecmp-rtm.c
index fd60a81..cb77222 100644
--- a/sysdeps/x86/tst-strncasecmp-rtm.c
+++ b/sysdeps/x86/tst-strncasecmp-rtm.c
@@ -1,6 +1,6 @@
/* Test case for strncasecmp inside a transactionally executing RTM
region.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-strncmp-rtm.c b/sysdeps/x86/tst-strncmp-rtm.c
index ebc8837..214681b 100644
--- a/sysdeps/x86/tst-strncmp-rtm.c
+++ b/sysdeps/x86/tst-strncmp-rtm.c
@@ -1,5 +1,5 @@
/* Test case for strncmp inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,7 +40,7 @@
CHAR string1[STRING_SIZE];
CHAR string2[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -52,7 +52,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
@@ -62,7 +62,7 @@ function (void)
return 1;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function_overflow (void)
{
@@ -72,7 +72,7 @@ function_overflow (void)
return 1;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function_overflow2 (void)
{
diff --git a/sysdeps/x86/tst-strrchr-rtm.c b/sysdeps/x86/tst-strrchr-rtm.c
index 487d207..d4eb40a 100644
--- a/sysdeps/x86/tst-strrchr-rtm.c
+++ b/sysdeps/x86/tst-strrchr-rtm.c
@@ -1,5 +1,5 @@
/* Test case for strrchr inside a transactionally executing RTM region.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#define STRING_SIZE 1024
char string1[STRING_SIZE];
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
prepare (void)
{
@@ -35,7 +35,7 @@ prepare (void)
return EXIT_FAILURE;
}
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static int
function (void)
{
diff --git a/sysdeps/x86/tst-sysconf-cache-linesize.c b/sysdeps/x86/tst-sysconf-cache-linesize.c
index 3b9db39..5651b9d 100644
--- a/sysdeps/x86/tst-sysconf-cache-linesize.c
+++ b/sysdeps/x86/tst-sysconf-cache-linesize.c
@@ -1,5 +1,5 @@
/* Test system cache line sizes.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-tls23.c b/sysdeps/x86/tst-tls23.c
new file mode 100644
index 0000000..6130d91
--- /dev/null
+++ b/sysdeps/x86/tst-tls23.c
@@ -0,0 +1,22 @@
+#ifndef __x86_64__
+#include <sys/platform/x86.h>
+
+#define IS_SUPPORTED() CPU_FEATURE_ACTIVE (SSE2)
+#endif
+
+/* Set XMM0...XMM7 to all 1s. */
+#define PREPARE_MALLOC() \
+{ \
+ asm volatile ("pcmpeqd %%xmm0, %%xmm0" : : : "xmm0" ); \
+ asm volatile ("pcmpeqd %%xmm1, %%xmm1" : : : "xmm1" ); \
+ asm volatile ("pcmpeqd %%xmm2, %%xmm2" : : : "xmm2" ); \
+ asm volatile ("pcmpeqd %%xmm3, %%xmm3" : : : "xmm3" ); \
+ asm volatile ("pcmpeqd %%xmm4, %%xmm4" : : : "xmm4" ); \
+ asm volatile ("pcmpeqd %%xmm5, %%xmm5" : : : "xmm5" ); \
+ asm volatile ("pcmpeqd %%xmm6, %%xmm6" : : : "xmm6" ); \
+ asm volatile ("pcmpeqd %%xmm7, %%xmm7" : : : "xmm7" ); \
+}
+
+#include <elf/tst-tls23.c>
+
+v2di v1, v2, v3;
diff --git a/sysdeps/generic/dl-procinfo.h b/sysdeps/x86/tst-tls23.h
index 93edfc0..21cee4c 100644
--- a/sysdeps/generic/dl-procinfo.h
+++ b/sysdeps/x86/tst-tls23.h
@@ -1,5 +1,5 @@
-/* Stub version of processor capability information handling macros.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Test that __tls_get_addr preserves XMM registers.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,16 +16,20 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
+#include <support/check.h>
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
+typedef long long v2di __attribute__((vector_size(16)));
+extern v2di v1, v2, v3;
-/* There are no hardware capabilities defined. */
-#define _dl_hwcap_string(idx) ""
+#define BEFORE_TLS_CALL() \
+ v1 = __extension__(v2di){0, 0}; \
+ v2 = __extension__(v2di){0, 0};
-/* We don't have any hardware capabilities. */
-#define _DL_HWCAP_COUNT 0
+#define AFTER_TLS_CALL() \
+ v3 = __extension__(v2di){0, 0}; \
+ asm volatile ("" : "+x" (v3)); \
+ union { v2di x; long long a[2]; } u; \
+ u.x = v3; \
+ TEST_VERIFY_EXIT (u.a[0] == 0 && u.a[1] == 0);
-#endif /* dl-procinfo.h */
+#include <elf/tst-tls23.h>
diff --git a/sysdeps/x86/tst-wcscmp-rtm.c b/sysdeps/x86/tst-wcscmp-rtm.c
index 2cf56a6..817e710 100644
--- a/sysdeps/x86/tst-wcscmp-rtm.c
+++ b/sysdeps/x86/tst-wcscmp-rtm.c
@@ -1,6 +1,6 @@
/* Test case for wcscmp inside a transactionally executing RTM
region.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86/tst-wcsncmp-rtm.c b/sysdeps/x86/tst-wcsncmp-rtm.c
index 649f3e1..b46ce3c 100644
--- a/sysdeps/x86/tst-wcsncmp-rtm.c
+++ b/sysdeps/x86/tst-wcsncmp-rtm.c
@@ -1,5 +1,5 @@
/* Test case for wcsncmp inside a transactionally executing RTM region.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/64/dl-tunables.list b/sysdeps/x86_64/64/dl-tunables.list
index 4cdf0fa..da196ae 100644
--- a/sysdeps/x86_64/64/dl-tunables.list
+++ b/sysdeps/x86_64/64/dl-tunables.list
@@ -1,5 +1,5 @@
# x86-64 specific tunables.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/64/tst-map-32bit-1a.c b/sysdeps/x86_64/64/tst-map-32bit-1a.c
index a53ec87..21354b8 100644
--- a/sysdeps/x86_64/64/tst-map-32bit-1a.c
+++ b/sysdeps/x86_64/64/tst-map-32bit-1a.c
@@ -1,5 +1,5 @@
/* Check that LD_PREFER_MAP_32BIT_EXEC works in PDE and shared library.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/64/tst-map-32bit-mod.c b/sysdeps/x86_64/64/tst-map-32bit-mod.c
index 502589d..13a8432 100644
--- a/sysdeps/x86_64/64/tst-map-32bit-mod.c
+++ b/sysdeps/x86_64/64/tst-map-32bit-mod.c
@@ -1,5 +1,5 @@
/* Check that LD_PREFER_MAP_32BIT_EXEC works in shared library.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index ce949db..c3e1065 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -19,6 +19,10 @@ sysdep_routines += _mcount
# recursive calls when ENTRY is used. Just copy the normal static
# object.
sysdep_noprof += _mcount
+
+ifeq (yes,$(have-x86-apx))
+CFLAGS-mcount.c += -mno-apxf
+endif
endif
ifeq ($(subdir),string)
@@ -41,9 +45,6 @@ ifeq ($(subdir),elf)
CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
-mno-mmx)
-sysdep-dl-routines += tlsdesc dl-tlsdesc tls_get_addr
-
-tests += ifuncmain8
modules-names += ifuncmod8
$(objpfx)ifuncmain8: $(objpfx)ifuncmod8.so
@@ -142,7 +143,6 @@ CFLAGS-tst-avxmod.c += $(AVX-CFLAGS)
AVX512-CFLAGS = -mavx512f
CFLAGS-tst-audit10-aux.c += $(AVX512-CFLAGS)
CFLAGS-tst-auditmod10a.c += $(AVX512-CFLAGS)
-CFLAGS-tst-auditmod10b.c += $(AVX512-CFLAGS)
CFLAGS-tst-avx512-aux.c += $(AVX512-CFLAGS)
CFLAGS-tst-avx512mod.c += $(AVX512-CFLAGS)
@@ -196,6 +196,9 @@ modules-names += \
tst-plt-rewrite1-no-pie = yes
LDFLAGS-tst-plt-rewrite1 = -Wl,-z,now
+ifeq ($(have-test-cc-cflags-fsemantic-interposition),yes)
+CFLAGS-tst-plt-rewritemod1.c += -fsemantic-interposition
+endif
LDFLAGS-tst-plt-rewritemod1.so = -Wl,-z,now
tst-plt-rewrite1-ENV = GLIBC_TUNABLES=glibc.cpu.plt_rewrite=1 LD_DEBUG=files:bindings
$(objpfx)tst-plt-rewrite1: $(objpfx)tst-plt-rewritemod1.so
@@ -212,6 +215,24 @@ $(objpfx)tst-plt-rewrite2: $(objpfx)tst-plt-rewritemod2.so
endif
test-internal-extras += tst-gnu2-tls2mod1
+
+tests-special += $(objpfx)check-rtld.out
+
+$(objpfx)rtld.reloc: $(objpfx)rtld.os
+ @rm -f $@T
+ LC_ALL=C $(READELF) -rW $< > $@T
+ test -s $@T
+ mv -f $@T $@
+common-generated += $(objpfx)rtld.reloc
+
+# Verify that there are no run-time relocations against __ehdr_start nor
+# _end.
+$(objpfx)check-rtld.out: $(objpfx)rtld.reloc
+ LC_ALL=C; \
+ if grep -E "R_X86_64_64.*(__ehdr_start|_end)" $^ > $@; \
+ then false; else true; fi; \
+ $(evaluate-test)
+generated += check-rtld.out
endif # $(subdir) == elf
ifeq ($(subdir),csu)
@@ -354,8 +375,8 @@ CFLAGS-tst-cet-legacy-mod-6c.c += -fcf-protection
CFLAGS-tst-cet-legacy-7.c += -fcf-protection=none
CFLAGS-tst-cet-legacy-10.c += -mshstk
CFLAGS-tst-cet-legacy-10-static.c += -mshstk
-CFLAGS-tst-cet-legacy-10a.c += -fcf-protection=none
-CFLAGS-tst-cet-legacy-10a-static.c += -fcf-protection=none
+CFLAGS-tst-cet-legacy-10a.c += -fcf-protection=none -mshstk
+CFLAGS-tst-cet-legacy-10a-static.c += -fcf-protection=none -mshstk
tst-cet-legacy-4-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
tst-cet-legacy-6-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index 22fedc4..26d0f33 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/_mcount.S b/sysdeps/x86_64/_mcount.S
index 197321b..85500a2 100644
--- a/sysdeps/x86_64/_mcount.S
+++ b/sysdeps/x86_64/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. x86-64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/add_n.S b/sysdeps/x86_64/add_n.S
index fc85a15..886e8e0 100644
--- a/sysdeps/x86_64/add_n.S
+++ b/sysdeps/x86_64/add_n.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/addmul_1.S b/sysdeps/x86_64/addmul_1.S
index b0c489b..d707a3a 100644
--- a/sysdeps/x86_64/addmul_1.S
+++ b/sysdeps/x86_64/addmul_1.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/bsd-_setjmp.S b/sysdeps/x86_64/bsd-_setjmp.S
index 1a65dfc..0732083 100644
--- a/sysdeps/x86_64/bsd-_setjmp.S
+++ b/sysdeps/x86_64/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. x86-64 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/bsd-setjmp.S b/sysdeps/x86_64/bsd-setjmp.S
index fc51c8c..4329fd2 100644
--- a/sysdeps/x86_64/bsd-setjmp.S
+++ b/sysdeps/x86_64/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. x86-64 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/check-cet.awk b/sysdeps/x86_64/check-cet.awk
index ede16bd..cc6fe24 100644
--- a/sysdeps/x86_64/check-cet.awk
+++ b/sysdeps/x86_64/check-cet.awk
@@ -1,5 +1,5 @@
# Verify that all shared objects contain the CET property.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure
index 231e6ff..bbf520b 100755..100644
--- a/sysdeps/x86_64/configure
+++ b/sysdeps/x86_64/configure
@@ -1,8 +1,9 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/x86_64.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -mprefer-vector-width=128" >&5
-printf %s "checking -mprefer-vector-width=128... " >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -mprefer-vector-width=128" >&5
+printf %s "checking for -mprefer-vector-width=128... " >&6; }
if test ${libc_cv_cc_mprefer_vector_width+y}
then :
printf %s "(cached) " >&6
@@ -18,12 +19,44 @@ then :
else case e in #(
e) libc_cv_cc_mprefer_vector_width=no ;;
esac
-fi
- ;;
+fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_mprefer_vector_width" >&5
printf "%s\n" "$libc_cv_cc_mprefer_vector_width" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_cc_mprefer_vector_width=$libc_cv_cc_mprefer_vector_width
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -mprefer-vector-width=128 in testing" >&5
+printf %s "checking for -mprefer-vector-width=128 in testing... " >&6; }
+if test ${libc_cv_test_cc_mprefer_vector_width+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -mprefer-vector-width=128 -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_test_cc_mprefer_vector_width=yes
+else case e in #(
+ e) libc_cv_test_cc_mprefer_vector_width=no ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cc_mprefer_vector_width" >&5
+printf "%s\n" "$libc_cv_test_cc_mprefer_vector_width" >&6; }
+
+CC="$saved_CC"
+
+fi
+
config_vars="$config_vars
config-cflags-mprefer-vector-width = $libc_cv_cc_mprefer_vector_width"
@@ -66,34 +99,73 @@ if test x"$build_mathvec" = xnotset; then
build_mathvec=yes
fi
+test_enable_cet=$enable_cet
if test $enable_cet != no; then
# Check if CET can be enabled.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled" >&5
+ conftest_code="
+#if !defined __CET__ || __CET__ != 3
+# error CET is not available.
+#endif
+"
+
+cat > conftest.c <<EOF
+$conftest_code
+EOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled" >&5
printf %s "checking whether CET can be enabled... " >&6; }
if test ${libc_cv_x86_cet_available+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) cat > conftest.c <<EOF
-#if !defined __CET__ || __CET__ != 3
-# error CET isn't available.
-#endif
-EOF
- if { ac_try='${CC-cc} -c $CFLAGS -fcf-protection -include cet.h conftest.c 1>&5'
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -fcf-protection -include cet.h conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- libc_cv_x86_cet_available=yes
- else
- libc_cv_x86_cet_available=no
- fi
- rm -rf conftest* ;;
+ test $ac_status = 0; }; }
+ then
+ libc_cv_x86_cet_available=yes
+ else
+ libc_cv_x86_cet_available=no
+ fi
+ ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_cet_available" >&5
printf "%s\n" "$libc_cv_x86_cet_available" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_x86_cet_available=$libc_cv_x86_cet_available
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled in testing" >&5
+printf %s "checking whether CET can be enabled in testing... " >&6; }
+if test ${libc_cv_test_x86_cet_available+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -fcf-protection -include cet.h conftest.c -o conftest 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ libc_cv_test_x86_cet_available=yes
+ else
+ libc_cv_test_x86_cet_available=no
+ fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_x86_cet_available" >&5
+printf "%s\n" "$libc_cv_test_x86_cet_available" >&6; }
+
+CC="$saved_CC"
+
+fi
+rm -f conftest*
+ test_enable_cet=$libc_cv_test_x86_cet_available
if test $libc_cv_x86_cet_available != yes; then
as_fn_error $? "$CC doesn't support CET" "$LINENO" 5
fi
@@ -139,33 +211,50 @@ config_vars="$config_vars
enable-cet = $enable_cet"
# Check if -mamx-tile works properly.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mamx-tile works properly" >&5
-printf %s "checking whether -mamx-tile works properly... " >&6; }
-if test ${libc_cv_x86_have_amx_tile+y}
+
+cat > conftest.c <<EOF
+#include <x86intrin.h>
+EOF
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mamx-tile works properly in testing" >&5
+printf %s "checking whether -mamx-tile works properly in testing... " >&6; }
+if test ${libc_cv_test_x86_have_amx_tile+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) cat > conftest.c <<EOF
-#include <x86intrin.h>
-EOF
- libc_cv_x86_have_amx_tile=no
- if { ac_try='${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i'
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -E -mamx-tile conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- if grep -q __builtin_ia32_ldtilecfg conftest.i; then
- libc_cv_x86_have_amx_tile=yes
- fi
- fi
- rm -rf conftest* ;;
+ test $ac_status = 0; }; }
+ then
+
+if test $libc_cv_test_clang = yes; then
+ libc_cv_test_x86_have_amx_tile=yes
+else
+ if grep -q __builtin_ia32_ldtilecfg conftest; then
+ libc_cv_test_x86_have_amx_tile=yes
+ else
+ libc_cv_test_x86_have_amx_tile=no
+ fi
+fi
+
+ else
+ libc_cv_test_x86_have_amx_tile=no
+ fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_have_amx_tile" >&5
-printf "%s\n" "$libc_cv_x86_have_amx_tile" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_x86_have_amx_tile" >&5
+printf "%s\n" "$libc_cv_test_x86_have_amx_tile" >&6; }
+
+CC="$saved_CC"
+
+rm -f conftest*
config_vars="$config_vars
-have-mamx-tile = $libc_cv_x86_have_amx_tile"
+have-mamx-tile = $libc_cv_test_x86_have_amx_tile"
# Check if -mapxf is enabled.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mapxf is enabled" >&5
diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac
index c7b6854..4a3f7f4 100644
--- a/sysdeps/x86_64/configure.ac
+++ b/sysdeps/x86_64/configure.ac
@@ -2,11 +2,14 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/x86_64.
dnl Check if -mprefer-vector-width=128 works.
-AC_CACHE_CHECK(-mprefer-vector-width=128, libc_cv_cc_mprefer_vector_width, [dnl
-LIBC_TRY_CC_OPTION([-mprefer-vector-width=128],
- [libc_cv_cc_mprefer_vector_width=yes],
- [libc_cv_cc_mprefer_vector_width=no])
-])
+LIBC_TRY_CC_AND_TEST_CC_OPTION([for -mprefer-vector-width=128],
+ [-mprefer-vector-width=128],
+ libc_cv_cc_mprefer_vector_width,
+ [libc_cv_cc_mprefer_vector_width=yes],
+ [libc_cv_cc_mprefer_vector_width=no],
+ libc_cv_test_cc_mprefer_vector_width,
+ [libc_cv_test_cc_mprefer_vector_width=yes],
+ [libc_cv_test_cc_mprefer_vector_width=no])
LIBC_CONFIG_VAR([config-cflags-mprefer-vector-width],
[$libc_cv_cc_mprefer_vector_width])
@@ -18,21 +21,24 @@ if test x"$build_mathvec" = xnotset; then
build_mathvec=yes
fi
+test_enable_cet=$enable_cet
if test $enable_cet != no; then
# Check if CET can be enabled.
- AC_CACHE_CHECK(whether CET can be enabled,
- libc_cv_x86_cet_available, [dnl
-cat > conftest.c <<EOF
+ conftest_code="
#if !defined __CET__ || __CET__ != 3
-# error CET isn't available.
+# error CET is not available.
#endif
-EOF
- if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS -fcf-protection -include cet.h conftest.c 1>&AS_MESSAGE_LOG_FD); then
- libc_cv_x86_cet_available=yes
- else
- libc_cv_x86_cet_available=no
- fi
- rm -rf conftest*])
+"
+ LIBC_TRY_CC_AND_TEST_CC_COMMAND([whether CET can be enabled],
+ [$conftest_code],
+ [-c -fcf-protection -include cet.h],
+ libc_cv_x86_cet_available,
+ [libc_cv_x86_cet_available=yes],
+ [libc_cv_x86_cet_available=no],
+ libc_cv_test_x86_cet_available,
+ [libc_cv_test_x86_cet_available=yes],
+ [libc_cv_test_x86_cet_available=no])
+ test_enable_cet=$libc_cv_test_x86_cet_available
if test $libc_cv_x86_cet_available != yes; then
AC_MSG_ERROR([$CC doesn't support CET])
fi
@@ -62,19 +68,23 @@ fi
LIBC_CONFIG_VAR([enable-cet], [$enable_cet])
# Check if -mamx-tile works properly.
-AC_CACHE_CHECK(whether -mamx-tile works properly,
- libc_cv_x86_have_amx_tile, [dnl
-cat > conftest.c <<EOF
-#include <x86intrin.h>
-EOF
- libc_cv_x86_have_amx_tile=no
- if AC_TRY_COMMAND(${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i); then
- if grep -q __builtin_ia32_ldtilecfg conftest.i; then
- libc_cv_x86_have_amx_tile=yes
- fi
- fi
- rm -rf conftest*])
-LIBC_CONFIG_VAR([have-mamx-tile], [$libc_cv_x86_have_amx_tile])
+LIBC_TRY_TEST_CC_COMMAND([whether -mamx-tile works properly],
+ [#include <x86intrin.h>],
+ [-E -mamx-tile],
+ libc_cv_test_x86_have_amx_tile,
+ [
+if test $libc_cv_test_clang = yes; then
+ libc_cv_test_x86_have_amx_tile=yes
+else
+ if grep -q __builtin_ia32_ldtilecfg conftest; then
+ libc_cv_test_x86_have_amx_tile=yes
+ else
+ libc_cv_test_x86_have_amx_tile=no
+ fi
+fi
+ ],
+ [libc_cv_test_x86_have_amx_tile=no])
+LIBC_CONFIG_VAR([have-mamx-tile], [$libc_cv_test_x86_have_amx_tile])
# Check if -mapxf is enabled.
AC_CACHE_CHECK(whether -mapxf is enabled,
diff --git a/sysdeps/x86_64/crti.S b/sysdeps/x86_64/crti.S
index 4d3f676..ff50350 100644
--- a/sysdeps/x86_64/crti.S
+++ b/sysdeps/x86_64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86-64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/crtn.S b/sysdeps/x86_64/crtn.S
index 614f22e..0f022b7 100644
--- a/sysdeps/x86_64/crtn.S
+++ b/sysdeps/x86_64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86-64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-cache.h b/sysdeps/x86_64/dl-cache.h
index 37f9d97..03433ae 100644
--- a/sysdeps/x86_64/dl-cache.h
+++ b/sysdeps/x86_64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-cet.c b/sysdeps/x86_64/dl-cet.c
index 1297c09..33e5d57 100644
--- a/sysdeps/x86_64/dl-cet.c
+++ b/sysdeps/x86_64/dl-cet.c
@@ -1,5 +1,5 @@
/* x86-64 CET initializers function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -77,8 +77,8 @@ dl_check_legacy_object (struct link_map *m,
/* Skip check for ld.so since it has the features enabled. The
features will be disabled later if they are not enabled in
executable. */
- if (l == &GL(dl_rtld_map)
- || l->l_real == &GL(dl_rtld_map)
+ if (is_rtld_link_map (l)
+ || is_rtld_link_map (l->l_real)
|| (info->program != NULL && l == m))
continue;
#endif
diff --git a/sysdeps/x86_64/dl-dtprocnum.h b/sysdeps/x86_64/dl-dtprocnum.h
index 01573aa..99f6a80 100644
--- a/sysdeps/x86_64/dl-dtprocnum.h
+++ b/sysdeps/x86_64/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. x64-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-hwcaps-subdirs.c b/sysdeps/x86_64/dl-hwcaps-subdirs.c
index ea948be..54c439f 100644
--- a/sysdeps/x86_64/dl-hwcaps-subdirs.c
+++ b/sysdeps/x86_64/dl-hwcaps-subdirs.c
@@ -1,5 +1,5 @@
/* Architecture-specific glibc-hwcaps subdirectories. x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-irel.h b/sysdeps/x86_64/dl-irel.h
index f9355c2..1152831 100644
--- a/sysdeps/x86_64/dl-irel.h
+++ b/sysdeps/x86_64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
x86-64 version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 4f12955..572a1a7 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. x86-64 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-plt-rewrite.h b/sysdeps/x86_64/dl-plt-rewrite.h
index cab6fe7..e576302 100644
--- a/sysdeps/x86_64/dl-plt-rewrite.h
+++ b/sysdeps/x86_64/dl-plt-rewrite.h
@@ -1,5 +1,5 @@
/* PLT rewrite helper function. x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86_64/dl-procinfo.c b/sysdeps/x86_64/dl-procinfo.c
index 06637a8..76a24ef 100644
--- a/sysdeps/x86_64/dl-procinfo.c
+++ b/sysdeps/x86_64/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for x86-64 version of processor capability information.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-procruntime.c b/sysdeps/x86_64/dl-procruntime.c
index 0859438..c500099 100644
--- a/sysdeps/x86_64/dl-procruntime.c
+++ b/sysdeps/x86_64/dl-procruntime.c
@@ -1,5 +1,5 @@
/* Data for processor runtime information. x86-64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-runtime.h b/sysdeps/x86_64/dl-runtime.h
index f935589..3433b6d 100644
--- a/sysdeps/x86_64/dl-runtime.h
+++ b/sysdeps/x86_64/dl-runtime.h
@@ -1,5 +1,5 @@
/* Helpers for On-demand PLT fixup for shared objects. x86_64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-tls.c b/sysdeps/x86_64/dl-tls.c
index b3c1e4f..5b271be 100644
--- a/sysdeps/x86_64/dl-tls.c
+++ b/sysdeps/x86_64/dl-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86-64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,7 +36,7 @@ hidden_ver (___tls_get_addr, __tls_get_addr)
/* Only handle slow paths for __tls_get_addr. */
attribute_hidden
void *
-__tls_get_addr_slow (GET_ADDR_ARGS)
+__tls_get_addr_slow (tls_index *ti)
{
dtv_t *dtv = THREAD_DTV ();
@@ -44,10 +44,10 @@ __tls_get_addr_slow (GET_ADDR_ARGS)
if (__glibc_unlikely (dtv[0].counter != gen)
/* See comment in __tls_get_addr in elf/dl-tls.c. */
&& !(_dl_tls_allocate_active ()
- && GET_ADDR_MODULE < _dl_tls_initial_modid_limit))
- return update_get_addr (GET_ADDR_PARAM, gen);
+ && ti->ti_module < _dl_tls_initial_modid_limit))
+ return update_get_addr (ti, gen);
- return tls_get_addr_tail (GET_ADDR_PARAM, dtv, NULL);
+ return tls_get_addr_tail (ti, dtv, NULL);
}
#else
diff --git a/sysdeps/x86_64/dl-tlsdesc-dynamic.h b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
index 9f02cfc..4f496de 100644
--- a/sysdeps/x86_64/dl-tlsdesc-dynamic.h
+++ b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86_64 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -99,7 +99,7 @@ _dl_tlsdesc_dynamic:
# endif
#else
/* Allocate stack space of the required size to save the state. */
- sub _rtld_local_ro+RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_FULL_SIZE_OFFSET(%rip), %RSP_LP
+ sub _dl_x86_features_tlsdesc_state_size(%rip), %RSP_LP
#endif
/* Besides rdi and rsi, saved above, save rcx, rdx, r8, r9,
r10 and r11. */
diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S
index 057a108..9a55fc5 100644
--- a/sysdeps/x86_64/dl-tlsdesc.S
+++ b/sysdeps/x86_64/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86_64 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
#include <features-offsets.h>
#include <isa-level.h>
#include "tlsdesc.h"
-#include "dl-trampoline-save.h"
/* Area on stack to save and restore registers used for parameter
passing when calling _dl_tlsdesc_dynamic. */
diff --git a/sysdeps/x86_64/dl-tlsdesc.h b/sysdeps/x86_64/dl-tlsdesc.h
index e4d257c..6d91393 100644
--- a/sysdeps/x86_64/dl-tlsdesc.h
+++ b/sysdeps/x86_64/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
x86_64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-trampoline-save.h b/sysdeps/x86_64/dl-trampoline-save.h
deleted file mode 100644
index 84eac4a..0000000
--- a/sysdeps/x86_64/dl-trampoline-save.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* x86-64 PLT trampoline register save macros.
- Copyright (C) 2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef DL_STACK_ALIGNMENT
-/* Due to GCC bug:
-
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
-
- __tls_get_addr may be called with 8-byte stack alignment. Although
- this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
- that stack will be always aligned at 16 bytes. */
-# define DL_STACK_ALIGNMENT 8
-#endif
-
-/* True if _dl_runtime_resolve should align stack for STATE_SAVE or align
- stack to 16 bytes before calling _dl_fixup. */
-#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
- (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
- || 16 > DL_STACK_ALIGNMENT)
diff --git a/sysdeps/x86_64/dl-trampoline-state.h b/sysdeps/x86_64/dl-trampoline-state.h
index 575f120..09d8ff5 100644
--- a/sysdeps/x86_64/dl-trampoline-state.h
+++ b/sysdeps/x86_64/dl-trampoline-state.h
@@ -1,5 +1,5 @@
/* x86-64 PLT dl-trampoline state macros.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 87c5137..ac85f96 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. x86-64 version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
#include <features-offsets.h>
#include <link-defines.h>
#include <isa-level.h>
-#include "dl-trampoline-save.h"
/* Area on stack to save and restore registers used for parameter
passing when calling _dl_fixup. */
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index d9ccfb4..5b54d4e 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. x86-64 version.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/feature-control.h b/sysdeps/x86_64/feature-control.h
index 4c8727e..58bed1d 100644
--- a/sysdeps/x86_64/feature-control.h
+++ b/sysdeps/x86_64/feature-control.h
@@ -1,6 +1,6 @@
/* x86-64 feature tuning.
This file is part of the GNU C Library.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig
index 716c457..365571e 100644
--- a/sysdeps/x86_64/fpu/Makeconfig
+++ b/sysdeps/x86_64/fpu/Makeconfig
@@ -1,6 +1,6 @@
# Generate libmvec.mk for libmvec ABI tests.
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
index 8eb382a..8af53b3 100644
--- a/sysdeps/x86_64/fpu/Makefile
+++ b/sysdeps/x86_64/fpu/Makefile
@@ -28,6 +28,9 @@ endif
ifneq ($(multi-arch),no)
# Variables for libmvec tests.
ifeq ($(subdir)$(build-mathvec),mathyes)
+ifneq ($(have-test-clang),yes)
+# Clang 19 can't vectorize all test loops to test libmvec ABI:
+# https://github.com/llvm/llvm-project/issues/120868
libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \
float-vlen4 float-vlen8 float-vlen8-avx2 \
double-vlen8 float-vlen16
@@ -36,6 +39,7 @@ tests += \
$(libmvec-abi-func-avx-tests) \
$(libmvec-abi-func-avx2-tests) \
$(libmvec-abi-func-avx512f-tests)
+endif
double-vlen2-funcs = $(libmvec-funcs)
double-vlen4-funcs = $(libmvec-funcs)
diff --git a/sysdeps/x86_64/fpu/bench-libmvec-arch.h b/sysdeps/x86_64/fpu/bench-libmvec-arch.h
index f4170b4..0ba4faa 100644
--- a/sysdeps/x86_64/fpu/bench-libmvec-arch.h
+++ b/sysdeps/x86_64/fpu/bench-libmvec-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for libmvec benchtests. x86_64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/e_powl.S b/sysdeps/x86_64/fpu/e_powl.S
index 1ab2f77..620ef76 100644
--- a/sysdeps/x86_64/fpu/e_powl.S
+++ b/sysdeps/x86_64/fpu/e_powl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fclrexcpt.c b/sysdeps/x86_64/fpu/fclrexcpt.c
index bea0414..ba78466 100644
--- a/sysdeps/x86_64/fpu/fclrexcpt.c
+++ b/sysdeps/x86_64/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fedisblxcpt.c b/sysdeps/x86_64/fpu/fedisblxcpt.c
index 55f34bf..6d87dfe 100644
--- a/sysdeps/x86_64/fpu/fedisblxcpt.c
+++ b/sysdeps/x86_64/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/feenablxcpt.c b/sysdeps/x86_64/fpu/feenablxcpt.c
index 206354d..36a9bcd 100644
--- a/sysdeps/x86_64/fpu/feenablxcpt.c
+++ b/sysdeps/x86_64/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fegetenv.c b/sysdeps/x86_64/fpu/fegetenv.c
index 4163880..7c89583 100644
--- a/sysdeps/x86_64/fpu/fegetenv.c
+++ b/sysdeps/x86_64/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fegetexcept.c b/sysdeps/x86_64/fpu/fegetexcept.c
index 3ade5db..a34745e 100644
--- a/sysdeps/x86_64/fpu/fegetexcept.c
+++ b/sysdeps/x86_64/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fegetmode.c b/sysdeps/x86_64/fpu/fegetmode.c
index 605f240..8830a16 100644
--- a/sysdeps/x86_64/fpu/fegetmode.c
+++ b/sysdeps/x86_64/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. x86_64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fegetround.c b/sysdeps/x86_64/fpu/fegetround.c
index 86bbb1a..6c01346 100644
--- a/sysdeps/x86_64/fpu/fegetround.c
+++ b/sysdeps/x86_64/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/feholdexcpt.c b/sysdeps/x86_64/fpu/feholdexcpt.c
index 90454fc..958aa36 100644
--- a/sysdeps/x86_64/fpu/feholdexcpt.c
+++ b/sysdeps/x86_64/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fesetenv.c b/sysdeps/x86_64/fpu/fesetenv.c
index 5cc1f13..a50c704 100644
--- a/sysdeps/x86_64/fpu/fesetenv.c
+++ b/sysdeps/x86_64/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fesetexcept.c b/sysdeps/x86_64/fpu/fesetexcept.c
index 68e70bb..15de76d 100644
--- a/sysdeps/x86_64/fpu/fesetexcept.c
+++ b/sysdeps/x86_64/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. x86_64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fesetmode.c b/sysdeps/x86_64/fpu/fesetmode.c
index f38b2e5..3bd728e 100644
--- a/sysdeps/x86_64/fpu/fesetmode.c
+++ b/sysdeps/x86_64/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. x86_64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fesetround.c b/sysdeps/x86_64/fpu/fesetround.c
index 3b5e7d4..59665e2 100644
--- a/sysdeps/x86_64/fpu/fesetround.c
+++ b/sysdeps/x86_64/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/feupdateenv.c b/sysdeps/x86_64/fpu/feupdateenv.c
index 5a0a33c..79a3b5d 100644
--- a/sysdeps/x86_64/fpu/feupdateenv.c
+++ b/sysdeps/x86_64/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fgetexcptflg.c b/sysdeps/x86_64/fpu/fgetexcptflg.c
index ff8dfbc..fc4d9b5 100644
--- a/sysdeps/x86_64/fpu/fgetexcptflg.c
+++ b/sysdeps/x86_64/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fraiseexcpt.c b/sysdeps/x86_64/fpu/fraiseexcpt.c
index 60223f9..05631b9 100644
--- a/sysdeps/x86_64/fpu/fraiseexcpt.c
+++ b/sysdeps/x86_64/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/fsetexcptflg.c b/sysdeps/x86_64/fpu/fsetexcptflg.c
index 99661c4..adb8d77 100644
--- a/sysdeps/x86_64/fpu/fsetexcptflg.c
+++ b/sysdeps/x86_64/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/ftestexcept.c b/sysdeps/x86_64/fpu/ftestexcept.c
index 6e44237..b6c617d 100644
--- a/sysdeps/x86_64/fpu/ftestexcept.c
+++ b/sysdeps/x86_64/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
deleted file mode 100644
index c2e36dc..0000000
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ /dev/null
@@ -1,2360 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "acos_vlen16":
-float: 1
-
-Function: "acos_vlen2":
-double: 1
-
-Function: "acos_vlen4":
-double: 1
-float: 2
-
-Function: "acos_vlen4_avx2":
-double: 1
-
-Function: "acos_vlen8":
-double: 1
-float: 2
-
-Function: "acos_vlen8_avx2":
-float: 1
-
-Function: "acosh":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "acosh_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "acosh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "acosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "acosh_vlen16":
-float: 1
-
-Function: "acosh_vlen2":
-double: 2
-
-Function: "acosh_vlen4":
-double: 2
-float: 2
-
-Function: "acosh_vlen4_avx2":
-double: 2
-
-Function: "acosh_vlen8":
-double: 1
-float: 1
-
-Function: "acosh_vlen8_avx2":
-float: 2
-
-Function: "asin":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "asin_upward":
-double: 2
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "asin_vlen16":
-float: 1
-
-Function: "asin_vlen2":
-double: 1
-
-Function: "asin_vlen4":
-double: 1
-float: 1
-
-Function: "asin_vlen4_avx2":
-double: 1
-
-Function: "asin_vlen8":
-double: 1
-float: 1
-
-Function: "asin_vlen8_avx2":
-float: 1
-
-Function: "asinh":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "asinh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "asinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "asinh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "asinh_vlen2":
-double: 2
-
-Function: "asinh_vlen4":
-double: 1
-float: 2
-
-Function: "asinh_vlen4_avx2":
-double: 1
-
-Function: "asinh_vlen8":
-double: 1
-float: 1
-
-Function: "asinh_vlen8_avx2":
-float: 1
-
-Function: "atan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan2":
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan2_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan2_towardzero":
-double: 1
-float: 2
-float128: 3
-ldouble: 1
-
-Function: "atan2_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan2_vlen16":
-float: 2
-
-Function: "atan2_vlen2":
-double: 2
-
-Function: "atan2_vlen4":
-double: 2
-float: 2
-
-Function: "atan2_vlen4_avx2":
-double: 3
-
-Function: "atan2_vlen8":
-double: 3
-float: 2
-
-Function: "atan2_vlen8_avx2":
-float: 2
-
-Function: "atan_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "atan_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "atan_vlen16":
-float: 1
-
-Function: "atan_vlen2":
-double: 1
-
-Function: "atan_vlen4":
-double: 1
-float: 1
-
-Function: "atan_vlen4_avx2":
-double: 1
-
-Function: "atan_vlen8":
-double: 1
-float: 1
-
-Function: "atan_vlen8_avx2":
-float: 1
-
-Function: "atanh":
-double: 2
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "atanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "atanh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "atanh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "atanh_vlen16":
-float: 1
-
-Function: "atanh_vlen2":
-double: 2
-
-Function: "atanh_vlen4":
-double: 1
-float: 2
-
-Function: "atanh_vlen4_avx2":
-double: 1
-
-Function: "atanh_vlen8":
-double: 1
-float: 1
-
-Function: "atanh_vlen8_avx2":
-float: 1
-
-Function: "cabs":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "cabs_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "cacos":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cacos_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "cacos_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "cacos_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cacos_upward":
-double: 5
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "cacosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cacosh_downward":
-double: 5
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 3
-
-Function: Real part of "cacosh_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "cacosh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "cacosh_upward":
-double: 4
-float: 4
-float128: 6
-ldouble: 5
-
-Function: Imaginary part of "cacosh_upward":
-double: 3
-float: 2
-float128: 4
-ldouble: 3
-
-Function: "carg":
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "carg_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "carg_towardzero":
-double: 1
-float: 2
-float128: 3
-ldouble: 1
-
-Function: "carg_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "casin":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "casin_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Real part of "casin_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "casin_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Real part of "casin_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "casin_upward":
-double: 5
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Real part of "casinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Real part of "casinh_downward":
-double: 5
-float: 3
-float128: 6
-ldouble: 6
-
-Function: Imaginary part of "casinh_downward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_towardzero":
-double: 5
-float: 3
-float128: 5
-ldouble: 5
-
-Function: Imaginary part of "casinh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: Real part of "casinh_upward":
-double: 5
-float: 7
-float128: 7
-ldouble: 7
-
-Function: Imaginary part of "casinh_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catan_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Real part of "catan_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: Imaginary part of "catan_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "catanh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "catanh_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "catanh_upward":
-double: 4
-float: 4
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "catanh_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cbrt":
-double: 4
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "cbrt_downward":
-double: 4
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "cbrt_towardzero":
-double: 3
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "cbrt_upward":
-double: 5
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "cbrt_vlen16":
-float: 1
-
-Function: "cbrt_vlen2":
-double: 4
-
-Function: "cbrt_vlen4":
-double: 1
-float: 2
-
-Function: "cbrt_vlen4_avx2":
-double: 1
-
-Function: "cbrt_vlen8":
-double: 1
-float: 2
-
-Function: "cbrt_vlen8_avx2":
-float: 2
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccos_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccos_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccos_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccos_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "ccosh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_towardzero":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "ccosh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "ccosh_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ccosh_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-float128: 1
-ldouble: 1
-
-Function: Real part of "cexp_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "cexp_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "cexp_upward":
-double: 1
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cexp_upward":
-double: 3
-float: 2
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "clog":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "clog10":
-double: 3
-float: 4
-float128: 2
-ldouble: 4
-
-Function: Imaginary part of "clog10":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "clog10_downward":
-double: 5
-float: 5
-float128: 3
-ldouble: 8
-
-Function: Imaginary part of "clog10_downward":
-double: 2
-float: 4
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_towardzero":
-double: 5
-float: 6
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_towardzero":
-double: 2
-float: 4
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog10_upward":
-double: 6
-float: 5
-float128: 4
-ldouble: 8
-
-Function: Imaginary part of "clog10_upward":
-double: 2
-float: 4
-float128: 3
-ldouble: 3
-
-Function: Real part of "clog_downward":
-double: 4
-float: 3
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_towardzero":
-double: 4
-float: 4
-float128: 3
-ldouble: 5
-
-Function: Imaginary part of "clog_towardzero":
-double: 1
-float: 3
-float128: 2
-ldouble: 1
-
-Function: Real part of "clog_upward":
-double: 4
-float: 3
-float128: 4
-ldouble: 4
-
-Function: Imaginary part of "clog_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "cos":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "cos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "cos_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "cos_vlen16":
-float: 1
-
-Function: "cos_vlen2":
-double: 2
-
-Function: "cos_vlen4":
-double: 2
-float: 1
-
-Function: "cos_vlen4_avx2":
-double: 2
-
-Function: "cos_vlen8":
-double: 2
-float: 1
-
-Function: "cos_vlen8_avx2":
-float: 1
-
-Function: "cosh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "cosh_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "cosh_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "cosh_vlen16":
-float: 2
-
-Function: "cosh_vlen2":
-double: 2
-
-Function: "cosh_vlen4":
-double: 2
-float: 2
-
-Function: "cosh_vlen4_avx2":
-double: 2
-
-Function: "cosh_vlen8":
-double: 2
-float: 2
-
-Function: "cosh_vlen8_avx2":
-float: 2
-
-Function: Real part of "cpow":
-double: 2
-float: 5
-float128: 4
-ldouble: 3
-
-Function: Imaginary part of "cpow":
-float: 2
-float128: 1
-ldouble: 4
-
-Function: Real part of "cpow_downward":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "cpow_towardzero":
-double: 5
-float: 8
-float128: 6
-ldouble: 7
-
-Function: Imaginary part of "cpow_towardzero":
-double: 1
-float: 2
-float128: 2
-ldouble: 1
-
-Function: Real part of "cpow_upward":
-double: 4
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "cpow_upward":
-double: 1
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-float128: 1
-
-Function: Real part of "csin_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_downward":
-double: 1
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Real part of "csin_upward":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csin_upward":
-double: 1
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Real part of "csinh":
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: Real part of "csinh_downward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_downward":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: Imaginary part of "csinh_towardzero":
-double: 3
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csinh_upward":
-double: 1
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Imaginary part of "csinh_upward":
-double: 2
-float: 3
-float128: 2
-ldouble: 3
-
-Function: Real part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Imaginary part of "csqrt":
-double: 2
-float: 2
-float128: 2
-ldouble: 2
-
-Function: Real part of "csqrt_downward":
-double: 5
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_downward":
-double: 4
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_towardzero":
-double: 4
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Imaginary part of "csqrt_towardzero":
-double: 4
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "csqrt_upward":
-double: 5
-float: 4
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "csqrt_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Real part of "ctan_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_downward":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Real part of "ctan_upward":
-double: 2
-float: 4
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctan_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-float128: 3
-ldouble: 2
-
-Function: Real part of "ctanh_downward":
-double: 4
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_downward":
-double: 6
-float: 5
-float128: 4
-ldouble: 4
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 2
-float128: 5
-ldouble: 4
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-float128: 3
-ldouble: 3
-
-Function: Real part of "ctanh_upward":
-double: 2
-float: 2
-float128: 5
-ldouble: 3
-
-Function: Imaginary part of "ctanh_upward":
-double: 2
-float: 3
-float128: 5
-ldouble: 3
-
-Function: "erf":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erf_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "erf_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "erf_vlen16":
-float: 1
-
-Function: "erf_vlen2":
-double: 1
-
-Function: "erf_vlen4":
-double: 1
-float: 2
-
-Function: "erf_vlen4_avx2":
-double: 1
-
-Function: "erf_vlen8":
-double: 1
-float: 2
-
-Function: "erf_vlen8_avx2":
-float: 2
-
-Function: "erfc":
-double: 5
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "erfc_downward":
-double: 5
-float: 6
-float128: 5
-ldouble: 4
-
-Function: "erfc_towardzero":
-double: 3
-float: 4
-float128: 4
-ldouble: 4
-
-Function: "erfc_upward":
-double: 5
-float: 6
-float128: 5
-ldouble: 5
-
-Function: "erfc_vlen16":
-float: 1
-
-Function: "erfc_vlen2":
-double: 5
-
-Function: "erfc_vlen4":
-double: 1
-float: 3
-
-Function: "erfc_vlen4_avx2":
-double: 1
-
-Function: "erfc_vlen8":
-double: 1
-float: 1
-
-Function: "erfc_vlen8_avx2":
-float: 1
-
-Function: "exp":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp10":
-double: 2
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "exp10_downward":
-double: 3
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_towardzero":
-double: 3
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_upward":
-double: 2
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "exp10_vlen16":
-float: 3
-
-Function: "exp10_vlen2":
-double: 2
-
-Function: "exp10_vlen4":
-double: 1
-float: 1
-
-Function: "exp10_vlen4_avx2":
-double: 1
-
-Function: "exp10_vlen8":
-double: 1
-float: 1
-
-Function: "exp10_vlen8_avx2":
-float: 1
-
-Function: "exp10m1":
-double: 4
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "exp10m1_downward":
-double: 3
-float: 3
-float128: 6
-ldouble: 6
-
-Function: "exp10m1_towardzero":
-double: 2
-float: 3
-float128: 6
-ldouble: 5
-
-Function: "exp10m1_upward":
-double: 5
-float: 4
-float128: 6
-ldouble: 6
-
-Function: "exp2":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_downward":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "exp2_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "exp2_vlen16":
-float: 1
-
-Function: "exp2_vlen2":
-double: 1
-
-Function: "exp2_vlen4":
-double: 1
-float: 1
-
-Function: "exp2_vlen4_avx2":
-double: 1
-
-Function: "exp2_vlen8":
-double: 1
-float: 1
-
-Function: "exp2_vlen8_avx2":
-float: 1
-
-Function: "exp2m1":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "exp2m1_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 6
-
-Function: "exp2m1_towardzero":
-double: 3
-float: 2
-float128: 4
-ldouble: 5
-
-Function: "exp2m1_upward":
-double: 3
-float: 3
-float128: 5
-ldouble: 6
-
-Function: "exp_downward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_towardzero":
-double: 1
-float: 1
-ldouble: 2
-
-Function: "exp_upward":
-double: 1
-float: 1
-ldouble: 1
-
-Function: "exp_vlen16":
-float: 1
-
-Function: "exp_vlen2":
-double: 1
-
-Function: "exp_vlen4":
-double: 1
-float: 1
-
-Function: "exp_vlen4_avx2":
-double: 1
-
-Function: "exp_vlen8":
-double: 1
-float: 1
-
-Function: "exp_vlen8_avx2":
-float: 1
-
-Function: "expm1":
-double: 1
-float: 1
-float128: 2
-ldouble: 3
-
-Function: "expm1_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "expm1_towardzero":
-double: 1
-float: 2
-float128: 4
-ldouble: 4
-
-Function: "expm1_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 4
-
-Function: "expm1_vlen16":
-float: 1
-
-Function: "expm1_vlen2":
-double: 1
-
-Function: "expm1_vlen4":
-double: 1
-float: 1
-
-Function: "expm1_vlen4_avx2":
-double: 1
-
-Function: "expm1_vlen8":
-double: 1
-float: 1
-
-Function: "expm1_vlen8_avx2":
-float: 1
-
-Function: "gamma":
-double: 4
-float: 7
-ldouble: 4
-
-Function: "gamma_downward":
-double: 5
-float: 7
-ldouble: 7
-
-Function: "gamma_towardzero":
-double: 5
-float: 6
-ldouble: 7
-
-Function: "gamma_upward":
-double: 5
-float: 6
-ldouble: 6
-
-Function: "hypot":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_downward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_towardzero":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_upward":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "hypot_vlen16":
-float: 1
-
-Function: "hypot_vlen2":
-double: 1
-
-Function: "hypot_vlen4":
-double: 1
-float: 1
-
-Function: "hypot_vlen4_avx2":
-double: 1
-
-Function: "hypot_vlen8":
-double: 1
-float: 1
-
-Function: "hypot_vlen8_avx2":
-float: 1
-
-Function: "j0":
-double: 3
-float: 9
-float128: 2
-ldouble: 8
-
-Function: "j0_downward":
-double: 6
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_towardzero":
-double: 7
-float: 9
-float128: 9
-ldouble: 6
-
-Function: "j0_upward":
-double: 9
-float: 9
-float128: 7
-ldouble: 6
-
-Function: "j1":
-double: 4
-float: 9
-float128: 4
-ldouble: 9
-
-Function: "j1_downward":
-double: 6
-float: 8
-float128: 6
-ldouble: 8
-
-Function: "j1_towardzero":
-double: 4
-float: 9
-float128: 9
-ldouble: 4
-
-Function: "j1_upward":
-double: 9
-float: 9
-float128: 9
-ldouble: 3
-
-Function: "jn":
-double: 4
-float: 4
-float128: 7
-ldouble: 4
-
-Function: "jn_downward":
-double: 5
-float: 5
-float128: 8
-ldouble: 4
-
-Function: "jn_towardzero":
-double: 5
-float: 5
-float128: 8
-ldouble: 5
-
-Function: "jn_upward":
-double: 5
-float: 5
-float128: 7
-ldouble: 5
-
-Function: "lgamma":
-double: 4
-float: 7
-float128: 5
-ldouble: 4
-
-Function: "lgamma_downward":
-double: 5
-float: 7
-float128: 8
-ldouble: 7
-
-Function: "lgamma_towardzero":
-double: 5
-float: 6
-float128: 5
-ldouble: 7
-
-Function: "lgamma_upward":
-double: 5
-float: 6
-float128: 8
-ldouble: 6
-
-Function: "log":
-double: 1
-float: 1
-float128: 1
-ldouble: 1
-
-Function: "log10":
-double: 2
-float: 2
-float128: 2
-ldouble: 1
-
-Function: "log10_downward":
-double: 2
-float: 3
-float128: 1
-ldouble: 2
-
-Function: "log10_towardzero":
-double: 2
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "log10_upward":
-double: 2
-float: 2
-float128: 1
-ldouble: 1
-
-Function: "log10_vlen16":
-float: 1
-
-Function: "log10_vlen2":
-double: 2
-
-Function: "log10_vlen4":
-double: 1
-float: 2
-
-Function: "log10_vlen4_avx2":
-double: 1
-
-Function: "log10_vlen8":
-double: 1
-float: 1
-
-Function: "log10_vlen8_avx2":
-float: 1
-
-Function: "log10p1":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log10p1_downward":
-double: 2
-float: 3
-float128: 4
-ldouble: 8
-
-Function: "log10p1_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 8
-
-Function: "log10p1_upward":
-double: 2
-float: 3
-float128: 4
-ldouble: 6
-
-Function: "log1p":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "log1p_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log1p_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log1p_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "log1p_vlen16":
-float: 2
-
-Function: "log1p_vlen2":
-double: 1
-
-Function: "log1p_vlen4":
-double: 1
-float: 2
-
-Function: "log1p_vlen4_avx2":
-double: 1
-
-Function: "log1p_vlen8":
-double: 1
-float: 2
-
-Function: "log1p_vlen8_avx2":
-float: 2
-
-Function: "log2":
-double: 2
-float: 1
-float128: 3
-ldouble: 1
-
-Function: "log2_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 1
-
-Function: "log2_towardzero":
-double: 2
-float: 2
-float128: 1
-ldouble: 1
-
-Function: "log2_upward":
-double: 3
-float: 3
-float128: 1
-ldouble: 1
-
-Function: "log2_vlen16":
-float: 1
-
-Function: "log2_vlen2":
-double: 1
-
-Function: "log2_vlen4":
-double: 1
-float: 1
-
-Function: "log2_vlen4_avx2":
-double: 1
-
-Function: "log2_vlen8":
-double: 1
-float: 1
-
-Function: "log2_vlen8_avx2":
-float: 1
-
-Function: "log2p1":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log2p1_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "log2p1_towardzero":
-double: 2
-float: 2
-float128: 2
-ldouble: 4
-
-Function: "log2p1_upward":
-double: 2
-float: 2
-float128: 3
-ldouble: 5
-
-Function: "log_downward":
-float: 2
-float128: 1
-ldouble: 2
-
-Function: "log_towardzero":
-float: 2
-float128: 2
-ldouble: 2
-
-Function: "log_upward":
-double: 1
-float: 2
-float128: 1
-ldouble: 1
-
-Function: "log_vlen16":
-float: 3
-
-Function: "log_vlen2":
-double: 1
-
-Function: "log_vlen4":
-double: 1
-float: 3
-
-Function: "log_vlen4_avx2":
-double: 1
-
-Function: "log_vlen8":
-double: 1
-float: 3
-
-Function: "log_vlen8_avx2":
-float: 3
-
-Function: "logp1":
-double: 1
-float: 1
-float128: 3
-ldouble: 2
-
-Function: "logp1_downward":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "logp1_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "logp1_upward":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "pow":
-double: 1
-float: 1
-float128: 2
-ldouble: 1
-
-Function: "pow_downward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_upward":
-double: 1
-float: 1
-float128: 2
-ldouble: 4
-
-Function: "pow_vlen16":
-float: 3
-
-Function: "pow_vlen2":
-double: 1
-
-Function: "pow_vlen4":
-double: 1
-float: 3
-
-Function: "pow_vlen4_avx2":
-double: 1
-
-Function: "pow_vlen8":
-double: 1
-float: 3
-
-Function: "pow_vlen8_avx2":
-float: 3
-
-Function: "sin":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sin_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sin_vlen16":
-float: 1
-
-Function: "sin_vlen2":
-double: 2
-
-Function: "sin_vlen4":
-double: 2
-float: 1
-
-Function: "sin_vlen4_avx2":
-double: 2
-
-Function: "sin_vlen8":
-double: 2
-float: 1
-
-Function: "sin_vlen8_avx2":
-float: 1
-
-Function: "sincos":
-double: 1
-float128: 1
-ldouble: 1
-
-Function: "sincos_downward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos_towardzero":
-double: 1
-float: 1
-float128: 2
-ldouble: 2
-
-Function: "sincos_upward":
-double: 1
-float: 1
-float128: 3
-ldouble: 3
-
-Function: "sincos_vlen16":
-float: 1
-
-Function: "sincos_vlen2":
-double: 2
-
-Function: "sincos_vlen4":
-double: 2
-float: 1
-
-Function: "sincos_vlen4_avx2":
-double: 2
-
-Function: "sincos_vlen8":
-double: 2
-float: 1
-
-Function: "sincos_vlen8_avx2":
-float: 1
-
-Function: "sinh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "sinh_downward":
-double: 3
-float: 3
-float128: 3
-ldouble: 5
-
-Function: "sinh_towardzero":
-double: 3
-float: 2
-float128: 3
-ldouble: 4
-
-Function: "sinh_upward":
-double: 3
-float: 3
-float128: 4
-ldouble: 5
-
-Function: "sinh_vlen16":
-float: 1
-
-Function: "sinh_vlen2":
-double: 2
-
-Function: "sinh_vlen4":
-double: 2
-float: 2
-
-Function: "sinh_vlen4_avx2":
-double: 2
-
-Function: "sinh_vlen8":
-double: 2
-float: 1
-
-Function: "sinh_vlen8_avx2":
-float: 1
-
-Function: "tan":
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "tan_downward":
-double: 1
-float: 2
-float128: 1
-ldouble: 3
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-float128: 1
-ldouble: 3
-
-Function: "tan_upward":
-double: 1
-float: 1
-float128: 1
-ldouble: 2
-
-Function: "tan_vlen16":
-float: 1
-
-Function: "tan_vlen2":
-double: 2
-
-Function: "tan_vlen4":
-double: 2
-float: 2
-
-Function: "tan_vlen4_avx2":
-double: 1
-
-Function: "tan_vlen8":
-double: 2
-float: 2
-
-Function: "tan_vlen8_avx2":
-float: 2
-
-Function: "tanh":
-double: 2
-float: 2
-float128: 2
-ldouble: 3
-
-Function: "tanh_downward":
-double: 3
-float: 3
-float128: 4
-ldouble: 4
-
-Function: "tanh_towardzero":
-double: 2
-float: 2
-float128: 3
-ldouble: 3
-
-Function: "tanh_upward":
-double: 3
-float: 3
-float128: 3
-ldouble: 4
-
-Function: "tanh_vlen16":
-float: 1
-
-Function: "tanh_vlen2":
-double: 2
-
-Function: "tanh_vlen4":
-double: 1
-float: 2
-
-Function: "tanh_vlen4_avx2":
-double: 1
-
-Function: "tanh_vlen8":
-double: 1
-
-Function: "tgamma":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "tgamma_downward":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_towardzero":
-double: 9
-float: 7
-float128: 5
-ldouble: 6
-
-Function: "tgamma_upward":
-double: 9
-float: 8
-float128: 4
-ldouble: 5
-
-Function: "y0":
-double: 3
-float: 9
-float128: 3
-ldouble: 2
-
-Function: "y0_downward":
-double: 4
-float: 9
-float128: 7
-ldouble: 7
-
-Function: "y0_towardzero":
-double: 4
-float: 9
-float128: 3
-ldouble: 8
-
-Function: "y0_upward":
-double: 3
-float: 9
-float128: 4
-ldouble: 7
-
-Function: "y1":
-double: 6
-float: 9
-float128: 5
-ldouble: 3
-
-Function: "y1_downward":
-double: 6
-float: 9
-float128: 5
-ldouble: 7
-
-Function: "y1_towardzero":
-double: 4
-float: 9
-float128: 6
-ldouble: 5
-
-Function: "y1_upward":
-double: 7
-float: 9
-float128: 6
-ldouble: 9
-
-Function: "yn":
-double: 3
-float: 3
-float128: 5
-ldouble: 4
-
-Function: "yn_downward":
-double: 3
-float: 4
-float128: 5
-ldouble: 5
-
-Function: "yn_towardzero":
-double: 3
-float: 3
-float128: 5
-ldouble: 5
-
-Function: "yn_upward":
-double: 4
-float: 5
-float128: 5
-ldouble: 4
-
-# end of automatic generation
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps-name b/sysdeps/x86_64/fpu/libm-test-ulps-name
deleted file mode 100644
index 1c09346..0000000
--- a/sysdeps/x86_64/fpu/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-x86_64
diff --git a/sysdeps/x86_64/fpu/math-tests-arch.h b/sysdeps/x86_64/fpu/math-tests-arch.h
index 3234e91..69b099e 100644
--- a/sysdeps/x86_64/fpu/math-tests-arch.h
+++ b/sysdeps/x86_64/fpu/math-tests-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for math tests. x86_64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/math-tests-snan.h b/sysdeps/x86_64/fpu/math-tests-snan.h
index 9d7c5f3..07bf7c4 100644
--- a/sysdeps/x86_64/fpu/math-tests-snan.h
+++ b/sysdeps/x86_64/fpu/math-tests-snan.h
@@ -1,5 +1,5 @@
/* Configuration for math tests: sNaN support. x86_64 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/math-use-builtins-trunc.h b/sysdeps/x86_64/fpu/math-use-builtins-trunc.h
new file mode 100644
index 0000000..c2387eb
--- /dev/null
+++ b/sysdeps/x86_64/fpu/math-use-builtins-trunc.h
@@ -0,0 +1,9 @@
+#ifdef __SSE4_1__
+# define USE_TRUNC_BUILTIN 1
+# define USE_TRUNCF_BUILTIN 1
+#else
+# define USE_TRUNC_BUILTIN 0
+# define USE_TRUNCF_BUILTIN 0
+#endif
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
diff --git a/sysdeps/x86_64/fpu/math_ldbl.h b/sysdeps/x86_64/fpu/math_ldbl.h
index 8f1cf18..0e75c8e 100644
--- a/sysdeps/x86_64/fpu/math_ldbl.h
+++ b/sysdeps/x86_64/fpu/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index cbe09d4..5fe872b 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -1,16 +1,21 @@
ifeq ($(subdir),math)
CFLAGS-e_asin-fma.c = -mfma -mavx2
CFLAGS-e_atan2-fma.c = -mfma -mavx2
+CFLAGS-e_atanh-fma.c = -mfma -mavx2
CFLAGS-e_exp-fma.c = -mfma -mavx2
CFLAGS-e_log-fma.c = -mfma -mavx2
CFLAGS-e_log2-fma.c = -mfma -mavx2
CFLAGS-e_pow-fma.c = -mfma -mavx2
+CFLAGS-e_sinh-fma.c = -mfma -mavx2
CFLAGS-s_atan-fma.c = -mfma -mavx2
CFLAGS-s_expm1-fma.c = -mfma -mavx2
CFLAGS-s_log1p-fma.c = -mfma -mavx2
CFLAGS-s_sin-fma.c = -mfma -mavx2
CFLAGS-s_tan-fma.c = -mfma -mavx2
+CFLAGS-s_tanh-fma.c = -mfma -mavx2
CFLAGS-s_sincos-fma.c = -mfma -mavx2
+CFLAGS-s_exp10m1f-fma.c = -mfma -mavx2
+CFLAGS-s_exp2m1f-fma.c = -mfma -mavx2
CFLAGS-e_exp2f-fma.c = -mfma -mavx2
CFLAGS-e_expf-fma.c = -mfma -mavx2
@@ -23,11 +28,17 @@ CFLAGS-s_sincosf-fma.c = -mfma -mavx2
# Check if ISA level is 3 or above.
ifneq (,$(filter $(have-x86-isa-level),$(x86-isa-level-3-or-above)))
+sysdep_routines += \
+ s_modf-avx \
+ s_modff-avx \
+# sysdep_routines
libm-sysdep_routines += \
s_ceil-avx \
s_ceilf-avx \
s_floor-avx \
s_floorf-avx \
+ s_modf-avx \
+ s_modff-avx \
s_nearbyint-avx \
s_nearbyintf-avx \
s_rint-avx \
@@ -51,10 +62,15 @@ libm-sysdep_routines += \
s_tan-fma4 \
# libm-sysdep_routines
endif
+sysdep_routines += \
+ s_modf-sse4_1 \
+ s_modff-sse4_1 \
+# sysdep_routines
libm-sysdep_routines += \
e_asin-fma \
e_atan2-avx \
e_atan2-fma \
+ e_atanh-fma \
e_exp-avx \
e_exp-fma \
e_exp2f-fma \
@@ -66,16 +82,21 @@ libm-sysdep_routines += \
e_logf-fma \
e_pow-fma \
e_powf-fma \
+ e_sinh-fma \
s_atan-avx \
s_atan-fma \
s_ceil-sse4_1 \
s_ceilf-sse4_1 \
s_cosf-fma \
s_cosf-sse2 \
+ s_exp10m1f-fma \
+ s_exp2m1f-fma \
s_expm1-fma \
s_floor-sse4_1 \
s_floorf-sse4_1 \
s_log1p-fma \
+ s_modf-sse4_1 \
+ s_modff-sse4_1 \
s_nearbyint-sse4_1 \
s_nearbyintf-sse4_1 \
s_rint-sse4_1 \
@@ -92,15 +113,22 @@ libm-sysdep_routines += \
s_sinf-sse2 \
s_tan-avx \
s_tan-fma \
+ s_tanh-fma \
s_trunc-sse4_1 \
s_truncf-sse4_1 \
# libm-sysdep_routines
ifeq ($(have-x86-isa-level),baseline)
+sysdep_routines += \
+ s_modf-c \
+ s_modff-c \
+# sysdep-routines
libm-sysdep_routines += \
s_ceil-c \
s_ceilf-c \
s_floor-c \
s_floorf-c \
+ s_modf-c \
+ s_modff-c \
s_nearbyint-c \
s_nearbyintf-c \
s_rint-c \
@@ -130,6 +158,12 @@ CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX
CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX
CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX
CFLAGS-s_sincos-avx.c = -msse2avx -DSSE2AVX
+
+CFLAGS-s_modf-sse4_1.c = -msse4.1 -fno-builtin-modff32x -fno-builtin-modff64
+CFLAGS-s_modff-sse4_1.c = -msse4.1 -fno-builtin-modff32
+
+CFLAGS-s_modf-avx.c = -msse2avx -DSSE2AVX -fno-builtin-modff32x -fno-builtin-modff64
+CFLAGS-s_modff-avx.c = -msse2avx -DSSE2AVX -fno-builtin-modff32
endif
ifeq ($(subdir),mathvec)
diff --git a/sysdeps/x86_64/fpu/multiarch/e_asin.c b/sysdeps/x86_64/fpu/multiarch/e_asin.c
index d64fca2..66541c1 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_asin.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_asin.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 asin and acos.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
index 8a86c14..a29bab7 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 atan.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_atanh-fma.c b/sysdeps/x86_64/fpu/multiarch/e_atanh-fma.c
new file mode 100644
index 0000000..c3f2f9e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_atanh-fma.c
@@ -0,0 +1,6 @@
+#define __ieee754_atanh __ieee754_atanh_fma
+#define __log1p __log1p_fma
+
+#define SECTION __attribute__ ((section (".text.fma")))
+
+#include <sysdeps/ieee754/dbl-64/e_atanh.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_atanh.c b/sysdeps/x86_64/fpu/multiarch/e_atanh.c
new file mode 100644
index 0000000..d2b785d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_atanh.c
@@ -0,0 +1,34 @@
+/* Multiple versions of atanh.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
+# include <libm-alias-finite.h>
+
+extern double __redirect_ieee754_atanh (double);
+
+# define SYMBOL_NAME ieee754_atanh
+# include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_ieee754_atanh, __ieee754_atanh, IFUNC_SELECTOR ());
+
+libm_alias_finite (__ieee754_atanh, __atanh)
+
+# define __ieee754_atanh __ieee754_atanh_sse2
+#endif
+#include <sysdeps/ieee754/dbl-64/e_atanh.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c
index d563292..799f452 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 exp.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
index 06fe502..b8b9f1f 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of exp2f.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf.c b/sysdeps/x86_64/fpu/multiarch/e_expf.c
index 19d767f..54a57b1 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_expf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_expf.c
@@ -1,5 +1,5 @@
/* Multiple versions of expf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c
index d80c1b1..950bef7 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 log.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2.c b/sysdeps/x86_64/fpu/multiarch/e_log2.c
index 9686782..4ad7fe2 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log2.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log2.c
@@ -1,5 +1,5 @@
/* Multiple versions of log2.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f.c b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
index 8ada46e..98ed151 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log2f.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of log2f.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_logf.c b/sysdeps/x86_64/fpu/multiarch/e_logf.c
index a3978d9..89f0c3b 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_logf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_logf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_pow.c b/sysdeps/x86_64/fpu/multiarch/e_pow.c
index f8f17af..fa711ce 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_pow.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_pow.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 pow.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_powf.c b/sysdeps/x86_64/fpu/multiarch/e_powf.c
index 8b1a4c7..f8e46233 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_powf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_powf.c
@@ -1,5 +1,5 @@
/* Multiple versions of powf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/e_sinh-fma.c b/sysdeps/x86_64/fpu/multiarch/e_sinh-fma.c
new file mode 100644
index 0000000..e0e1e39
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_sinh-fma.c
@@ -0,0 +1,12 @@
+#define __ieee754_sinh __ieee754_sinh_fma
+#define __ieee754_exp __ieee754_exp_fma
+#define __expm1 __expm1_fma
+
+/* NB: __expm1 may be expanded to __expm1_fma in the following
+ prototypes. */
+extern long double __expm1l (long double);
+extern long double __expm1f128 (long double);
+
+#define SECTION __attribute__ ((section (".text.fma")))
+
+#include <sysdeps/ieee754/dbl-64/e_sinh.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_sinh.c b/sysdeps/x86_64/fpu/multiarch/e_sinh.c
new file mode 100644
index 0000000..3d3c18c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_sinh.c
@@ -0,0 +1,35 @@
+/* Multiple versions of sinh.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
+# include <libm-alias-finite.h>
+
+extern double __redirect_ieee754_sinh (double);
+
+# define SYMBOL_NAME ieee754_sinh
+# include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_ieee754_sinh, __ieee754_sinh,
+ IFUNC_SELECTOR ());
+
+libm_alias_finite (__ieee754_sinh, __sinh)
+
+# define __ieee754_sinh __ieee754_sinh_sse2
+#endif
+#include <sysdeps/ieee754/dbl-64/e_sinh.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h b/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
index d126cf9..4c1a851 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with AVX, AVX2/FMA
and FMA4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h b/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
index a53598b..750c8ce 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
@@ -1,5 +1,5 @@
/* Common definition for ifunc selections optimized with AVX2/FMA.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
index 18d372d..724b235 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with AVX2/FMA and
FMA4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
index dc67848..b6d7c83 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512-skx.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512-skx.h
index d7dcc93..6073d10 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512-skx.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512-skx.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
AVX512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
index f9cabb9..755dec2 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
AVX512.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
index 4158bba..6367a78 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
SSE4.1.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h b/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
index 15dc117..6292879 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
@@ -1,5 +1,5 @@
/* Common definition for ifunc selections optimized with SSE4.1.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c
index 4d2c6ce..1b74d62 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c
@@ -1,5 +1,5 @@
/* Multiple versions of atan.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S b/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S
index e6c1106..c6f441c 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of ceil function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
index dba756c..4f27a61 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.c b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
index 46c8e91..69a3934 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* Multiple versions of __ceil.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S
index b4d8ac0..7785ede 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of ceilf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
index 9abc87b..ecf9e60 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
index bb53108..070b786 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __ceilf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf.c b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
index 8a02e04..16f4446 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_cosf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of cosf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_exp10m1f-fma.c b/sysdeps/x86_64/fpu/multiarch/s_exp10m1f-fma.c
new file mode 100644
index 0000000..3dda04e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_exp10m1f-fma.c
@@ -0,0 +1,4 @@
+#define __exp10m1f __exp10m1f_fma
+#define SECTION __attribute__ ((section (".text.fma")))
+
+#include <sysdeps/ieee754/flt-32/s_exp10m1f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_exp10m1f.c b/sysdeps/x86_64/fpu/multiarch/s_exp10m1f.c
new file mode 100644
index 0000000..7bb1749
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_exp10m1f.c
@@ -0,0 +1,33 @@
+/* Multiple versions of exp10m1.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
+# include <libm-alias-float.h>
+
+extern float __redirect_exp10m1f (float);
+
+# define SYMBOL_NAME exp10m1f
+# include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_exp10m1f, __exp10m1f, IFUNC_SELECTOR ());
+libm_alias_float (__exp10m1, exp10m1)
+
+# define __exp10m1f __exp10m1f_sse2
+#endif
+#include <sysdeps/ieee754/flt-32/s_exp10m1f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_exp2m1f-fma.c b/sysdeps/x86_64/fpu/multiarch/s_exp2m1f-fma.c
new file mode 100644
index 0000000..bfa00ea
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_exp2m1f-fma.c
@@ -0,0 +1,4 @@
+#define __exp2m1f __exp2m1f_fma
+#define SECTION __attribute__ ((section (".text.fma")))
+
+#include <sysdeps/ieee754/flt-32/s_exp2m1f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_exp2m1f.c b/sysdeps/x86_64/fpu/multiarch/s_exp2m1f.c
new file mode 100644
index 0000000..1361b79
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_exp2m1f.c
@@ -0,0 +1,33 @@
+/* Multiple versions of exp2m1.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
+# include <libm-alias-float.h>
+
+extern float __redirect_exp2m1f (float);
+
+# define SYMBOL_NAME exp2m1f
+# include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_exp2m1f, __exp2m1f, IFUNC_SELECTOR ());
+libm_alias_float (__exp2m1, exp2m1)
+
+# define __exp2m1f __exp2m1f_sse2
+#endif
+#include <sysdeps/ieee754/flt-32/s_exp2m1f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_expm1.c b/sysdeps/x86_64/fpu/multiarch/s_expm1.c
index d58ef3d..36d6b82 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_expm1.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_expm1.c
@@ -1,5 +1,5 @@
/* Multiple versions of expm1.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S b/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S
index ff74b5a..10622e5 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of floor function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
index c9b9b06..b72e470 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.c b/sysdeps/x86_64/fpu/multiarch/s_floor.c
index 2c87dd0..6086103 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* Multiple versions of __floor.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S
index c378baa..e7f873e 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of floorf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
index c221689..3452f7b 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf.c b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
index a277802..252f16d 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floorf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __floorf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fma.c b/sysdeps/x86_64/fpu/multiarch/s_fma.c
index 10e6e62..3f47558 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fma.c
@@ -1,5 +1,5 @@
/* FMA version of fma.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
index 85725e2..209d2aa 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
@@ -1,5 +1,5 @@
/* FMA version of fmaf.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -9,7 +9,7 @@
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
diff --git a/sysdeps/x86_64/fpu/multiarch/s_log1p.c b/sysdeps/x86_64/fpu/multiarch/s_log1p.c
index 3fa1185..a121265 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_log1p.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_log1p.c
@@ -1,5 +1,5 @@
/* Multiple versions of log1p.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c b/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
new file mode 100644
index 0000000..db32398
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
@@ -0,0 +1 @@
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf-c.c b/sysdeps/x86_64/fpu/multiarch/s_modf-c.c
new file mode 100644
index 0000000..6679d32
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modf-c.c
@@ -0,0 +1,2 @@
+#define __modf __modf_c
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c b/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
new file mode 100644
index 0000000..6ef4c19
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
@@ -0,0 +1,7 @@
+#include <sysdeps/x86/isa-level.h>
+
+#if MINIMUM_X86_ISA_LEVEL != SSE4_1_X86_ISA_LEVEL
+# define __modf __modf_sse41
+#endif
+
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf.c b/sysdeps/x86_64/fpu/multiarch/s_modf.c
new file mode 100644
index 0000000..d65977d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modf.c
@@ -0,0 +1,35 @@
+/* Multiple versions of modf
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
+# define NO_MATH_REDIRECT
+# include <libm-alias-double.h>
+
+# define modf __redirect_modf
+# define __modf __redirect___modf
+# include <math.h>
+# undef modf
+# undef __modf
+
+# define SYMBOL_NAME modf
+# include "ifunc-sse4_1.h"
+
+libc_ifunc_redirected (__redirect_modf, __modf, IFUNC_SELECTOR ());
+libm_alias_double (__modf, modf)
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c b/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
new file mode 100644
index 0000000..804b042
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
@@ -0,0 +1 @@
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff-c.c b/sysdeps/x86_64/fpu/multiarch/s_modff-c.c
new file mode 100644
index 0000000..f54f8ea
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modff-c.c
@@ -0,0 +1,2 @@
+#define __modff __modff_c
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c b/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c
new file mode 100644
index 0000000..0437e04
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c
@@ -0,0 +1,7 @@
+#include <sysdeps/x86/isa-level.h>
+
+#if MINIMUM_X86_ISA_LEVEL != SSE4_1_X86_ISA_LEVEL
+# define __modff __modff_sse41
+#endif
+
+#include <sysdeps/ieee754/flt-32/s_modff.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff.c b/sysdeps/x86_64/fpu/multiarch/s_modff.c
new file mode 100644
index 0000000..89d0a32
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_modff.c
@@ -0,0 +1,35 @@
+/* Multiple versions of modff
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
+# define NO_MATH_REDIRECT
+# include <libm-alias-float.h>
+
+# define modff __redirect_modff
+# define __modff __redirect___modff
+# include <math.h>
+# undef modff
+# undef __modff
+
+# define SYMBOL_NAME modff
+# include "ifunc-sse4_1.h"
+
+libc_ifunc_redirected (__redirect_modff, __modff, IFUNC_SELECTOR ());
+libm_alias_float (__modf, modf)
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S
index 5bfdf73..45aa7b8 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of nearbyint function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
index 9d84410..38d2a14 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
index 057a7ca..7dacb32 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* Multiple versions of __nearbyint.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S
index 1dbaed0..ff3429d 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S
@@ -1,5 +1,5 @@
/* AVX implmentation of nearbyintf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
index 3cf35f9..ad2ffa8 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
index 41f374b..8258fec 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __nearbyintf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S b/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S
index 2b403b3..44b61c5 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of rint function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
index 8cd9cf7..74d9780 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint.c b/sysdeps/x86_64/fpu/multiarch/s_rint.c
index 18623b7..41ee769 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* Multiple versions of __rint.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S
index 171c286..ef5c422 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of rintf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
index fc1e70f..850e422 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf.c b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
index e275368..1140998 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rintf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __rintf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S b/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S
index 5767903..7c32674 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of roundeven function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
index f00be56..5841c37 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven.c b/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
index 139aad0..1b4c14b 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
@@ -1,5 +1,5 @@
/* Multiple versions of __roundeven.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S
index 42c359f..daa4847 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of roundevenf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
index 6b148e4..3b20b8a 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c b/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
index 2fb0900..5848dc0 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __roundevenf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
index 21e7794..dac713e 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c
@@ -1,5 +1,5 @@
/* Multiple versions of sin and cos.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincos.c b/sysdeps/x86_64/fpu/multiarch/s_sincos.c
index b35757f..5d60cd0 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sincos.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sincos.c
@@ -1,5 +1,5 @@
/* Multiple versions of sincos.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
index 0ea9b40..3bb4a99 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sincosf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sinf.c b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
index c61624e..e6fb6dc 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sinf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sinf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
index 125d992..62eae8d 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c
@@ -1,5 +1,5 @@
/* Multiple versions of tan.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_tanh-fma.c b/sysdeps/x86_64/fpu/multiarch/s_tanh-fma.c
new file mode 100644
index 0000000..1b808b1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_tanh-fma.c
@@ -0,0 +1,11 @@
+#define __tanh __tanh_fma
+#define __expm1 __expm1_fma
+
+/* NB: __expm1 may be expanded to __expm1_fma in the following
+ prototypes. */
+extern long double __expm1l (long double);
+extern long double __expm1f128 (long double);
+
+#define SECTION __attribute__ ((section (".text.fma")))
+
+#include <sysdeps/ieee754/dbl-64/s_tanh.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S b/sysdeps/x86_64/fpu/multiarch/s_tanh.c
index 7d35ef2..5539b6c 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_tanh.c
@@ -1,5 +1,5 @@
-/* Optimized memchr implementation for POWER10/PPC64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Multiple versions of tanh.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,13 +16,16 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#if defined __LITTLE_ENDIAN__ && IS_IN (libc)
-#define MEMCHR __memchr_power10
+#include <sysdeps/x86/isa-level.h>
+#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name)
-#undef weak_alias
-#define weak_alias(name,alias)
+extern double __redirect_tanh (double);
-#include <sysdeps/powerpc/powerpc64/le/power10/memchr.S>
+# define SYMBOL_NAME tanh
+# include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_tanh, __tanh, IFUNC_SELECTOR ());
+
+# define __tanh __tanh_sse2
#endif
+#include <sysdeps/ieee754/dbl-64/s_tanh.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S b/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S
index b3e87e9..472f590 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of trunc function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
index 2b79174..da24b36 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
@@ -1,5 +1,5 @@
/* trunc for SSE4.1.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc.c b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
index ea89c4f..9c3c4a4 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* Multiple versions of __trunc.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S
index f31ac7d..d65397f 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S
@@ -1,5 +1,5 @@
/* AVX implementation of truncf function.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
index 60498b2..59756cd 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
@@ -1,5 +1,5 @@
/* truncf for SSE4.1.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf.c b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
index 92435ce..fec55a5 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_truncf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __truncf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core-sse2.S
index aba0b4e..b57f1fd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized acos, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core.c
index 9bc5223..fb655eb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acos, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core_sse4.S
index 7b4535b..feeec84 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core-sse.S
index 0539999..74ebcb0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized acos, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core.c
index ee49e9b..415120c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acos, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core_avx2.S
index 76277be..b8aa27b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core-avx2.S
index 3959104..b97f88a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized acos, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core.c
index 2a5f1c9..e7eb234 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acos, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core_avx512.S
index d46f8cf..5c599f1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acos8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core-sse2.S
index 526adab..3f88671 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized acosh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core.c
index b4c9ae6..c724fb5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core_sse4.S
index 9e49833..0a70ec0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core-sse.S
index 755464a..d3a7a51 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized acosh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core.c
index 52622a0..2ea9dd3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core_avx2.S
index 5f8d751..ca152a5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core-avx2.S
index 10e4553..6198bce 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized acosh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core.c
index 6cb339c..3c51971 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core_avx512.S
index 63cb42e..defba67 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_acosh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S
index 09afb33..00d926c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized asin, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c
index 4bd5343..5afd019 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asin, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S
index 72f1c43..3559d04 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S
index ad77e19..6391851 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized asin, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c
index 135a3fe..84a485c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asin, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S
index 4399afa..7d0cd8f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S
index 4883000..bc4c923 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized asin, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c
index 61432ef..ac002cf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asin, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S
index 3c65562..3b549c5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core-sse2.S
index 661f325..8fb3b0e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized asinh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core.c
index 643175b..0d33c3c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core_sse4.S
index 640d5f7..a0737d7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core-sse.S
index 35613ea..88d7458 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized asinh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core.c
index c1ca222..a159f27 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core_avx2.S
index 6c8367c..e638f4f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core-avx2.S
index 01faac8..d609923 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized asinh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core.c
index 13c0e04..9fe728f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core_avx512.S
index e6964e3..6af8689 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asinh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core-sse2.S
index 223201b..e0c5e7a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atan2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core.c
index bf667a2..c264a02 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan2, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core_sse4.S
index a8ad14a..ef61a1d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan22_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core-sse.S
index a458427..34a01bc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atan2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core.c
index 358f7d4..d0fff54 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan2, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core_avx2.S
index 22a9133..585e2e0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan24_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core-avx2.S
index 9a04115..2279c02 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atan2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core.c
index ec37074..4ee3149 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan2, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core_avx512.S
index 865705d..83ce4e7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan28_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core-sse2.S
index 21d7947..b1ae0e4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atan, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core.c
index 6160c27..3df60ec 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core_sse4.S
index 3c22fd8..c46626c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core-sse.S
index 2b3cb7b..b896a85 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atan, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core.c
index de06d7f..521e4f2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core_avx2.S
index dffc8e8..4afbcee 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core-avx2.S
index 048c58b..d05d212 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atan, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core.c
index 9088ba2..f59a7a9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core_avx512.S
index c17933e9..67c5c5f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atan8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core-sse2.S
index a9e35c5..53e7e3e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atanh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core.c
index 766642a..213f731 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core_sse4.S
index 9e7af91..a56a0ad 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core-sse.S
index 5cf83bd..d010894 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atanh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core.c
index 0614318..7849f79 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core_avx2.S
index 6adfe4a..7785533 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core-avx2.S
index 5f7471d..289d5fd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atanh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core.c
index 1093709..8bbfba2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core_avx512.S
index cdcd71c..be1695b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_atanh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core-sse2.S
index e35e781..d60ef78 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cbrt, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core.c
index 6e3beac..97b66d4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrt, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core_sse4.S
index bb7be83..bc08ec0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core-sse.S
index 93d69a8..b2e84b8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cbrt, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core.c
index 127f412..70db372 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrt, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core_avx2.S
index c8f0c4f..896c920 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core-avx2.S
index 14f65a8..5ec254f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cbrt, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core.c
index c533e6f..dae219e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrt, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core_avx512.S
index 0a15016..b381b1f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cbrt8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
index 2f68866..67b5e5f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cos, vector length is 2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
index 4c27e37..e44d76a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
index 11786b1..36027c8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
index 5b88e29..8223fe1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cos, vector length is 4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
index 16b3901..95bdf85 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
index 6951125..6e74b09 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
index f5fd734..40f02a9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cos, vector length is 8.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
index 0cd361b..4e8cfea 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
index 86b8dd1..08e0ed2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX-512, KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core-sse2.S
index 1f2f002..be7b88f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cosh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core.c
index ffc798b..be103af 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core_sse4.S
index 54e6cde..6ae5f1d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core-sse.S
index a32e52e..22f5fe4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cosh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core.c
index b31d87e..b7aebc0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core_avx2.S
index 239619a..7494432 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core-avx2.S
index 801fc1a..a86651f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cosh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core.c
index c1d10f5..54460b8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core_avx512.S
index 512cce3..a626292 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cosh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core-sse2.S
index d797682..40d1ec2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized erf, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core.c
index 7f09f37..f9c468e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erf, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core_sse4.S
index e4d78ad..f28beae 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core-sse.S
index 483700f..9cb7eb6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized erf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core.c
index d681ec1..716ee12 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core_avx2.S
index 64fb365..925ed02 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core-avx2.S
index d3bbc2f..aff687d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized erf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core.c
index 9eb9c43..7384eef 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core_avx512.S
index a4a324a..01a5352 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erf8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core-sse2.S
index a031c2b..29fc688 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized erfc, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core.c
index b72ed6b..aabc4c6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfc, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core_sse4.S
index 182fe05..dab6c67 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core-sse.S
index 8dd3d0f..aed21af 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized erfc, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core.c
index e35a829..60b6cbf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfc, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core_avx2.S
index 2fb98fe..6576d52 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core-avx2.S
index 1dcf113..ca50367 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized erfc, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core.c
index 2e656ab..f19ac3c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfc, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core_avx512.S
index 0878e55..7964f07 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_erfc8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core-sse2.S
index 360a751..578060f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp10, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core.c
index 256e488..1949a4f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core_sse4.S
index ae810c3..1f303db 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp102_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core-sse.S
index fa2e144..fb549fc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp10, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core.c
index 5db7795..75898a7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core_avx2.S
index 30d0202..0aa1763 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp104_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core-avx2.S
index a5fc959..f084163 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp10, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core.c
index 1d5b4ed..c2c2528 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core_avx512.S
index 9be6b7e..da34b16 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp108_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core-sse2.S
index 5695e82..9ede193 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp2, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core.c
index fed50ff..472c4ef 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core_sse4.S
index 63c7169..030f077 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp22_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core-sse.S
index 9275ab7..fa928a2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp2, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core.c
index 98e2290..5c3a3e9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core_avx2.S
index 5040be5..e458f56 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp24_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core-avx2.S
index e86fec7..d4d05b7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp2, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core.c
index 7c99bd5..57aab53 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core_avx512.S
index 2e72e9d..13332d9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp28_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
index 4840697..5a5a8d8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
index 231c6da..0be853a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
index 472a687..1d95d30 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
index d93a629..f2cc81a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
index af1959f..454b2f6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
index 1b55dc8..e93db85 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
index 5c3dba3..91dd397 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
index 6808ee6..c5e31f2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
index 8129b38..7a47551 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core-sse2.S
index 55ed0ad..ce003e6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized expm1, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core.c
index cec9ba5..3cf45a4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core_sse4.S
index 53cbf29..364fc48 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm12_core_sse4.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core-sse.S
index 214cd57..cd00ae5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized expm1, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core.c
index a25db76..3e9cf14 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core_avx2.S
index 3b4936f..6b22dfc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm14_core_avx2.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core-avx2.S
index b6bef5e..00f3e34 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized expm1, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core.c
index 55c5877..87508a7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core_avx512.S
index 50ed537..65fb0b8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_expm18_core_avx512.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core-sse2.S
index dd1182d..6c2e166 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized hypot.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core.c
index 02df6e2..3b3599e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized hypot, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core_sse4.S
index 5d161f3..243a1b6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core-sse.S
index 44e2f0c..5be7243 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized hypot.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core.c
index 7502178..f8cf23d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized hypot, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core_avx2.S
index de0f9a9..0f931a2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core-avx2.S
index 2d55ae9..7c21011 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized hypot.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core.c
index 86e6171..aab4e1f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized hypot, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core_avx512.S
index e8d8d67..ea453e3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_hypot8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
index 159beee..a0d9d79 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log10, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
index dc2b109..2f47d25 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
index f46b4dc..c1e09ab 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
index d73bff9..e259fc9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log10, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
index ed6174d..6c49c11 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
index 183d6cd..2ec3a12 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
index cb05a80..bb16e47 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log10, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
index 1f50aef..7976e4d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
index 268c473..6ca34d7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core-sse2.S
index 18a384e..9c7b961 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log1p, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core.c
index 265aef0..372f1ad 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1p, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core_sse4.S
index 9066dea..7e22ef3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core-sse.S
index b66d92e..3839aa3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log1p, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core.c
index dcb7a37..c79b981 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1p, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core_avx2.S
index cfb3221..70e511d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core-avx2.S
index ad02a65..6ec2c74 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log1p, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core.c
index 9557f29..4ac75f3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1p, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core_avx512.S
index 415fb67..ea47d74 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log1p8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
index 16930de..7ad0229 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log2, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
index 5fcf355..991ada1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
index b757b0e..0cb09e0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
index 082c70b..b4b1f7e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log2, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
index e1dbb99..7421cf6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
index 82284c4..5c5a666 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
index b3552b7..6759ba8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log2, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
index af7aec7..73d0c49 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
index e616319..21de38c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
index 4fe4388..5744ece 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
index 1eae7df..e89b571 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
index 5d38834..e552d0c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
index 81e4f07..94c1d73 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
index 3ace83e..fd4c9ed 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
index 630001e..dea46c2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
index 5dca277..26637e0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
index 8de35d3..5ed0608 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
index a0a3c7f..571dc71 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
index 1c219da..2131951 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized pow.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
index 0b873be..463df47 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
index 66d82f4..9ba6993 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
index d5c229c..2151a4a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized pow.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
index 3b4da55..dd32e25 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
index dde0843..6e6e7c9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
index 2041010..43ca6c2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized pow.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
index 99df3ba..ad42b27 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
index 695b351..1079f01 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
index 56e5af2..0dd3f5d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sin.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
index 7f2064d..3cd1c4c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
index 5d05acf..a5475f5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
index d59d206..b748e19 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sin, vector length is 4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
index 6540b3d..0292c15 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
index 3c8563e..51e7a36 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
index a2d514d..09260b1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sin.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
index e4fd285..a9d5d3c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
index 907ef94..a9c8732 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX-512, KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
index 8711ed4..9b7a88f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sincos.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
index 116e4fc..8b8a971 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
index 47cb320..416dd18 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
index f0808a1..6554955 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sincos.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
index 54b3079..9af3f7f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
index 4e4cd1b..2d85f33 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
index 17ca5e8..d504bee 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sincos.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
index 5cbea14..696c53b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
index c73efbd..0eddec0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
index 2e98fb6..263b525 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sinh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
index 8f80f7c..e7c9234 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
index bd28420..cb5b2da 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
index 8c34e91..3879874 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sinh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
index 70f655a..c0387fc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
index 6d5a83b..69e2254 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
index b62abbf..a49486c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sinh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
index 5f4afd0..ab90621 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
index e46a733..3818c09 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core-sse2.S
index 2868a77..1df256b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized tan, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core.c
index 3236281..006ec4f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tan, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core_sse4.S
index d11b231..95d2831 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core-sse.S
index 73770bc..24fbd9c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized tan, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core.c
index 1c0ba59..d3a4fb9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tan, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core_avx2.S
index 3dce951..20f6f14 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core-avx2.S
index 8ed467d..66a8cab 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized tan, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core.c
index 44ce5b8..c2afc77 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tan, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core_avx512.S
index 89c4a62..9203fc6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tan8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core-sse2.S
index 94d40f7..8bed9bd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized tanh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core.c
index a636876..054dfb5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanh, vector length is 2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core_sse4.S
index 8071c64..9a63110 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core-sse.S
index e0dd697..97ab0ef 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized tanh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core.c
index bc0bf9f..7021174 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanh, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core_avx2.S
index e356dd1..989a5e0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core-avx2.S
index dc3b510..4feb376 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized tanh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core.c
index 692866c..40ed292 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanh, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S
index ca3d798..763d0de 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core-avx2.S
index 7dc03e4..f808054 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized acosf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core.c
index 159478c..2305e6a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core_avx512.S
index 86d825f..0704387 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core-sse2.S
index 0ed9faf..4a73743 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized acosf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core.c
index 9787143..c5dd927 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core_sse4.S
index c3e26ee..095e000 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core-sse.S
index c625ce0..43d8899 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized acosf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core.c
index d31cb88..e34ba50 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acosf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core_avx2.S
index 0b0becb..fe02c29 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acosf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core-avx2.S
index 2a2d5e8..ce479ab 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized acoshf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core.c
index d196596..9930381 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acoshf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core_avx512.S
index 5b1bb24..b17d18b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core-sse2.S
index a919974..a996d29 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized acoshf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core.c
index 258b914..281c845 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acoshf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core_sse4.S
index d258307..0d2f6d6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core-sse.S
index bbf9695..b7c6040 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized acoshf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core.c
index b727182..63bf455 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized acoshf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core_avx2.S
index 7d4815e..51b18ce 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_acoshf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S
index 37f45d2..f7a6528 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized asinf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c
index 51d82ab..1e7b7f2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S
index e126868..d96a172 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S
index 01efa73..d41f01f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized asinf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c
index e456e51..025c90e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S
index 921af00..8233d83 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S
index c4a57e3..98b1246 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized asinf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c
index 6f1d8d7..00fcc93 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S
index 136aa04..9faa2f4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core-avx2.S
index b7b65b6..e152eb1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized asinhf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core.c
index dc52817..6a2c6ed 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinhf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core_avx512.S
index 4a602b3..07ef1d8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core-sse2.S
index f95fa37..76e5ccd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized asinhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core.c
index 8e83e1b..2d04cfd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core_sse4.S
index dfbc7aa..763c92a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core-sse.S
index dd8cc95..aeca57a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized asinhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core.c
index b55255c..2189fe2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized asinhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core_avx2.S
index 433d0ba..2ce0e90 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinhf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core-avx2.S
index e808a93..530f77c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atan2f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core.c
index bfb6fb8..a592841 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan2f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core_avx512.S
index bb07480..51d1d39 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core-sse2.S
index 546a593..c45afd7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atan2f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core.c
index dfab29a..5eca4db 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atan2f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core_sse4.S
index 4de4b46..58542a8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core-sse.S
index e67cc72..168319f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atan2f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core.c
index 7f69b42..7c13100 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core_avx2.S
index 272d70f..b5da1d8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atan2f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core-avx2.S
index c69adcd..1c8965e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atanf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core.c
index efaaa7c..cf04e54 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core_avx512.S
index aba59f1..cdf266d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core-sse2.S
index 6c25969..a3fa49b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atanf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core.c
index 5104322..8358333 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core_sse4.S
index 925c2ef..d1abd61 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core-sse.S
index 72eb8e3..1067f05 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atanf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core.c
index 541e61c..37fd4fe 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core_avx2.S
index 6c6c4f5..0c28630 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core-avx2.S
index f5a64fe..76f8a3f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized atanhf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core.c
index d2d9553..af754a5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanhf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S
index 72c6422..fa94570 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core-sse2.S
index 94d2690..ddf18b9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized atanhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core.c
index 4490dc3..8d7b399 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core_sse4.S
index a8b10c9..e855b84 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core-sse.S
index 5d21480..48038bd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized atanhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core.c
index 3a85b57..f67ddf4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized atanhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core_avx2.S
index 41aade9..ad36284 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core-avx2.S
index 8f45444..ae125cb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cbrtf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core.c
index cac88e6..a85decd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrtf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core_avx512.S
index a03871e..5428f66 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core-sse2.S
index 6a2a125..1061332 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cbrtf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core.c
index 7796cfe..a8f1053 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrtf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core_sse4.S
index cc3dd1d..e5fe7cb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core-sse.S
index 90d02ed..829e89a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cbrtf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core.c
index 12c015d..a95ec4d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cbrtf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core_avx2.S
index db0ac6a..4d1bf4b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cbrtf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
index 0fc20a0..e815eca 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
index 615b49a..3799837 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
index 2b3a658..c29a278 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
index a38a53d..160da72 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cosf, vector length is 4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
index 98d70eb..465d5ac 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
index f808b42..01edcf2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
index 43ff606..eccd054 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cosf, vector length is 8.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
index 4b94a21..749697b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
index b4bac1c..52ee1bc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core-avx2.S
index 77d0d19..e0b7978 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized coshf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core.c
index 2871d1d..73b6e51 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized coshf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core_avx512.S
index f1f8a50..7d49f34 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core-sse2.S
index 69413a7..ee17ba3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized coshf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core.c
index 96c0128..708dfa7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized coshf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core_sse4.S
index afba501..c6eeee1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core-sse.S
index 90e87a8..a12043f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized coshf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core.c
index 2d4e660..7b45c64 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized coshf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core_avx2.S
index 7a256a4..2f613d6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_coshf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core-avx2.S
index bbd9f29..e551ad7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized erfcf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core.c
index 43b32b2..03fd4ad 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfcf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core_avx512.S
index 993cb60..aca63f4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core-sse2.S
index 8158527..dbfc4de 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized erfcf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core.c
index 8b18628..4053130 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfcf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core_sse4.S
index c0e73a4..d7a25d4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core-sse.S
index 9cae967..4f181b5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized erfcf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core.c
index 7390588..1813a36 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erfcf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core_avx2.S
index 5785bf6..ba215e7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erfcf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core-avx2.S
index 53bd845..6b1178c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized erff.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core.c
index faf2d49..e6e0c17 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erff, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core_avx512.S
index 768f575..f86ba81 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core-sse2.S
index 107f406..d0f17be 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized erff, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core.c
index 02b3ce5..88137b5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erff, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core_sse4.S
index 5dd5903..34e18f7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core-sse.S
index 797b8ab..a164655 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized erff, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core.c
index f22c198..b36b7b4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized erff, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core_avx2.S
index 58d0fd2..753c4cb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_erff8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core-avx2.S
index 2e5dc54..ad29856 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp10f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core.c
index 9f80eb8..3fa9b4c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core_avx512.S
index 9a10884..1ca5a17 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core-sse2.S
index 831a16e..3229186 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp10f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core.c
index d831b21..4aeeb4e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core_sse4.S
index fa679c0..75a8c1d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core-sse.S
index ebc6dfe..f800a57 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp10f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core.c
index ea091a4..19444d2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp10f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core_avx2.S
index 1d062a4..2a563c2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp10f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core-avx2.S
index f0d59b7..7e07acc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp2f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core.c
index 5a6038c..85422f3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core_avx512.S
index e73baca..cbe32f3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core-sse2.S
index a4edc6b..5eb0399 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp2f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core.c
index 08d8cf5..a5cedb5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core_sse4.S
index a1a8b33..f68e8c54 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core-sse.S
index b3a4a8d..16b1388 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp2f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core.c
index 89402e7..9ecf39d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp2f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core_avx2.S
index 0b70f27..f6f35b0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_exp2f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
index fb62cc8..27b8c71 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized expf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
index 959b987..df315c0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
index 2257e5c..c59586d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
index 785a03a..3178197 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized expf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
index 60b6a4a..34d2b43 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
index 491f42a..dc70952 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
index 72e63dd..9fe5f88 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized expf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
index e302b76..61b2c74 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
index c10060c..d16a4c6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core-avx2.S
index b0f5cd5..fd1ee78 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized expm1f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core.c
index 7d91eb8..9410589 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core_avx512.S
index 595c13f..a8e9e51 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core-sse2.S
index ed491f8..c5f95f5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized expm1f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core.c
index 9c7763e..2631eaf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core_sse4.S
index d5963d4..29176d5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core-sse.S
index cdab0c7..d0ed34e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized expm1f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core.c
index 3789809..06012ff 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expm1f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core_avx2.S
index 3f46094..c16bdae 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expm1f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core-avx2.S
index 285e3ca..9c78a34 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized hypotf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core.c
index 1c52987..e58f204 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized hypotf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core_avx512.S
index b5e3b13..de20124 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core-sse2.S
index 109f910..475004a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized hypotf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core.c
index 5f150ba..7266d7e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized hypotf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core_sse4.S
index fb38f48..49c77ea 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core-sse.S
index a5b27f2..45d3ce8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized hypotf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core.c
index dad2529..738a54f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core_avx2.S
index d7fd899..a3bb71a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_hypotf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
index b6a29cd..4e7416f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log10f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
index 7682ea3..315d77b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
index f98eb28..4f68e32 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
index 566b452..411a535 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log10f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
index a4fd185..65975da 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
index bd43a8b..536b350 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
index a9b0116..f38de8e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log10f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
index fd53d2b..5e42b39 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log10f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
index 67050a5..14fd1f0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core-avx2.S
index 75f222d..ed4f634 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log1pf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core.c
index fce57fc..5850604 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1pf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core_avx512.S
index 27d8dac..b0ec95d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core-sse2.S
index 36e69f7..4b1f28c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log1pf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core.c
index 1082e13..943cc23 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1pf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core_sse4.S
index ca6afa2..8e6e25e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core-sse.S
index d4001b3..bfcfdd8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log1pf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core.c
index ef8848b..4b66b8d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log1pf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core_avx2.S
index 2674259..f77f0b2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log1pf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
index d1510b6..2a208a9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log2f.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
index 7f21a51..fbbdfe7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2f, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
index efb3561..c7ce77c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
index 35a4ce6..940eefc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log2f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
index 3015c7a..7da80ef 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2f, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
index 437f97c..4eebc6b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
index 5b8feef..f48fb00 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log2f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
index 5b6c4d0..d5592fe 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log2f, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
index d643be3..953c8dd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
index 8aa88a0..0707284 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized logf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
index 7b3f5d5..756a1dd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
index 32deda1..88b713b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
index f10db61..df11bf0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized logf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
index fa5596a..3290ed5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
index 1c071bd..42249d0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
index 554d913..8d71df4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized logf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
index 78ea312..7cfd036 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
index 2c7eef8..b6ff095 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
index b307f24..bab4da8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized powf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
index 0607517..c887f65 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized powf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
index 24730da..6f86eb2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
index 3d573a5..f5c1640 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized powf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
index cf81683..b4e45a7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized powf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
index 8c1a081..d99dc51 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
index 3c70d28..f8d9580 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized powf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
index ca4ca10..feff09f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
index e83507f..ca4d379 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
index 0d695e1..b24b58d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sincosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
index 97c39e3..acf47d1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
index 6a1204c..49f68e1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
index 2a0359a..5760fa1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sincosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
index 110ce37..8802068 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
index 4383b82..3aace35 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
index 9a39711..160870f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sincosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
index c9cd930..994b388 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
index 28e0c9a..bdac032 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
index e5164bf..4380945 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sinf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
index a0de0e3..22a8beb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 16.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
index 4f1df9d..090231e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
index 440a1bf..cb774e3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sinf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
index e99eaf2..d33b16c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 4.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
index 595843b..794fae3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with SSE4.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
index 0108c96..11ffeb8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sinf, vector length is 8.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
index c105d9c..e01fb32 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
index faaa779..7e34bf1 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
index e4c4af4..03cc49f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sinhf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
index d042afe..666a8b8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinhf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
index ac0daa2..ce1fec4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
index a4087cb..444c84a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sinhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
index ba35dfe..fcbf312 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
index c7164e8..27ae59c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
index bdf882f..13f7ae6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sinhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
index 9b926f6..28f6d02 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
index e1529c3..195453a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core-avx2.S
index fc419a8..bfae09a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized tanf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core.c
index cf03b79..a351e42 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
index d6e001a..8444bd6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core-sse2.S
index 2d08175..8e8c5cd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized tanf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core.c
index 52f9dbe..e348f0e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core_sse4.S
index 0c2a7ce..ddbc5d8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core-sse.S
index 1f084aa..34f9dea 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized tanf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core.c
index 1d185e4..43bf213 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core_avx2.S
index d1d93b0..ddd8156 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core-avx2.S
index 2cd6dc8..f2d7669 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized tanhf.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core.c
index 7199250..eb9edcf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanhf, vector length is 16.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core_avx512.S
index 6832b2a..d3fe89a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with AVX-512.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core-sse2.S
index 2c66cfa..5298252 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized tanhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core.c
index b9cffda..3a60274 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanhf, vector length is 4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core_sse4.S
index 71df551..b984784 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core-sse.S
index de81187..e62a9c0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized tanhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core.c
index 92bf814..8775001 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized tanhf, vector length is 8.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
index 42845c4..0da1e0b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf_rodata.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf_rodata.S
index 038f5ee..3a330ff 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf_rodata.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf_rodata.S
@@ -1,5 +1,5 @@
/* Datatables for tanhf AVX2 and tanhf SSE4.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/printf_fphex.c b/sysdeps/x86_64/fpu/printf_fphex.c
index d2ed1a1..343836a 100644
--- a/sysdeps/x86_64/fpu/printf_fphex.c
+++ b/sysdeps/x86_64/fpu/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fmax.S b/sysdeps/x86_64/fpu/s_fmax.S
index ac362e9..1415393 100644
--- a/sysdeps/x86_64/fpu/s_fmax.S
+++ b/sysdeps/x86_64/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fmaxf.S b/sysdeps/x86_64/fpu/s_fmaxf.S
index 7c9e100..6607a3a 100644
--- a/sysdeps/x86_64/fpu/s_fmaxf.S
+++ b/sysdeps/x86_64/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fmaxl.S b/sysdeps/x86_64/fpu/s_fmaxl.S
index 1505d35..f2cc11b 100644
--- a/sysdeps/x86_64/fpu/s_fmaxl.S
+++ b/sysdeps/x86_64/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fmin.S b/sysdeps/x86_64/fpu/s_fmin.S
index 2f50c0b..0cbcb6d 100644
--- a/sysdeps/x86_64/fpu/s_fmin.S
+++ b/sysdeps/x86_64/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fminf.S b/sysdeps/x86_64/fpu/s_fminf.S
index cf584b6..2aa5fb5 100644
--- a/sysdeps/x86_64/fpu/s_fminf.S
+++ b/sysdeps/x86_64/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_fminl.S b/sysdeps/x86_64/fpu/s_fminl.S
index 280341e..7f9f170 100644
--- a/sysdeps/x86_64/fpu/s_fminl.S
+++ b/sysdeps/x86_64/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_llrint.S b/sysdeps/x86_64/fpu/s_llrint.S
index 9188b24..c6e76a2 100644
--- a/sysdeps/x86_64/fpu/s_llrint.S
+++ b/sysdeps/x86_64/fpu/s_llrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_llrintf.S b/sysdeps/x86_64/fpu/s_llrintf.S
index 8748895..b59ee60 100644
--- a/sysdeps/x86_64/fpu/s_llrintf.S
+++ b/sysdeps/x86_64/fpu/s_llrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/fpu/s_llrintl.S
index 8b5a8de..a52eefe 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/fpu/s_llrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_signbit.S b/sysdeps/x86_64/fpu/s_signbit.S
index 0c76d9a..c9b6d35 100644
--- a/sysdeps/x86_64/fpu/s_signbit.S
+++ b/sysdeps/x86_64/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/s_signbitf.S b/sysdeps/x86_64/fpu/s_signbitf.S
index a5651b6..b4d171e 100644
--- a/sysdeps/x86_64/fpu/s_signbitf.S
+++ b/sysdeps/x86_64/fpu/s_signbitf.S
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/scripts/bench_libmvec.py b/sysdeps/x86_64/fpu/scripts/bench_libmvec.py
index fd0e89d..f8ff12a 100755
--- a/sysdeps/x86_64/fpu/scripts/bench_libmvec.py
+++ b/sysdeps/x86_64/fpu/scripts/bench_libmvec.py
@@ -1,5 +1,5 @@
#!/usr/bin/python3
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acos2_core.S b/sysdeps/x86_64/fpu/svml_d_acos2_core.S
index 83afaea..03a0176 100644
--- a/sysdeps/x86_64/fpu/svml_d_acos2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acos2_core.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acos4_core.S b/sysdeps/x86_64/fpu/svml_d_acos4_core.S
index 70bac10..28a609e 100644
--- a/sysdeps/x86_64/fpu/svml_d_acos4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acos4_core.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acos4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_acos4_core_avx.S
index c119697..22c0f20 100644
--- a/sysdeps/x86_64/fpu/svml_d_acos4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_acos4_core_avx.S
@@ -1,5 +1,5 @@
/* Function acos vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acos8_core.S b/sysdeps/x86_64/fpu/svml_d_acos8_core.S
index 22b51c7..f4e8029 100644
--- a/sysdeps/x86_64/fpu/svml_d_acos8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acos8_core.S
@@ -1,5 +1,5 @@
/* Function acos vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acosh2_core.S b/sysdeps/x86_64/fpu/svml_d_acosh2_core.S
index 36b12e3..67cfd71 100644
--- a/sysdeps/x86_64/fpu/svml_d_acosh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acosh2_core.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acosh4_core.S b/sysdeps/x86_64/fpu/svml_d_acosh4_core.S
index 2ad9b6f..2bed96d 100644
--- a/sysdeps/x86_64/fpu/svml_d_acosh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acosh4_core.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acosh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_acosh4_core_avx.S
index 83923ff..55363f8 100644
--- a/sysdeps/x86_64/fpu/svml_d_acosh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_acosh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_acosh8_core.S b/sysdeps/x86_64/fpu/svml_d_acosh8_core.S
index c7965ae..aeae391 100644
--- a/sysdeps/x86_64/fpu/svml_d_acosh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_acosh8_core.S
@@ -1,5 +1,5 @@
/* Function acosh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asin2_core.S b/sysdeps/x86_64/fpu/svml_d_asin2_core.S
index aa224e5..3a229fa 100644
--- a/sysdeps/x86_64/fpu/svml_d_asin2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asin2_core.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asin4_core.S b/sysdeps/x86_64/fpu/svml_d_asin4_core.S
index f65548f..e7b909d 100644
--- a/sysdeps/x86_64/fpu/svml_d_asin4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asin4_core.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S
index 45d83c4..ccbb3a5 100644
--- a/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S
@@ -1,5 +1,5 @@
/* Function asin vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asin8_core.S b/sysdeps/x86_64/fpu/svml_d_asin8_core.S
index ff0780d..0bcf05b 100644
--- a/sysdeps/x86_64/fpu/svml_d_asin8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asin8_core.S
@@ -1,5 +1,5 @@
/* Function asin vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asinh2_core.S b/sysdeps/x86_64/fpu/svml_d_asinh2_core.S
index 6643372..5c30b8b 100644
--- a/sysdeps/x86_64/fpu/svml_d_asinh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asinh2_core.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asinh4_core.S b/sysdeps/x86_64/fpu/svml_d_asinh4_core.S
index 600f184..efc4c72 100644
--- a/sysdeps/x86_64/fpu/svml_d_asinh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asinh4_core.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asinh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_asinh4_core_avx.S
index 764384b..064f284 100644
--- a/sysdeps/x86_64/fpu/svml_d_asinh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_asinh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_asinh8_core.S b/sysdeps/x86_64/fpu/svml_d_asinh8_core.S
index 4fd47f1..eba7ad8 100644
--- a/sysdeps/x86_64/fpu/svml_d_asinh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_asinh8_core.S
@@ -1,5 +1,5 @@
/* Function asinh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan22_core.S b/sysdeps/x86_64/fpu/svml_d_atan22_core.S
index 9e4ceb0..cb0c737 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan22_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan22_core.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan24_core.S b/sysdeps/x86_64/fpu/svml_d_atan24_core.S
index 6def0ad..c0ad7c6 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan24_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan24_core.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan24_core_avx.S b/sysdeps/x86_64/fpu/svml_d_atan24_core_avx.S
index 26f5074..f645ac4 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan24_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan24_core_avx.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan28_core.S b/sysdeps/x86_64/fpu/svml_d_atan28_core.S
index e7a8dc4..4105ad8 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan28_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan28_core.S
@@ -1,5 +1,5 @@
/* Function atan2 vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan2_core.S b/sysdeps/x86_64/fpu/svml_d_atan2_core.S
index 00db51c..c128d6f 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan2_core.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan4_core.S b/sysdeps/x86_64/fpu/svml_d_atan4_core.S
index 95ad5c7..ff5c5f1 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan4_core.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_atan4_core_avx.S
index 1858d1c..bea12f8 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan4_core_avx.S
@@ -1,5 +1,5 @@
/* Function atan vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atan8_core.S b/sysdeps/x86_64/fpu/svml_d_atan8_core.S
index 66c0435..48eaa61 100644
--- a/sysdeps/x86_64/fpu/svml_d_atan8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atan8_core.S
@@ -1,5 +1,5 @@
/* Function atan vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atanh2_core.S b/sysdeps/x86_64/fpu/svml_d_atanh2_core.S
index 03c1d13..7c25295 100644
--- a/sysdeps/x86_64/fpu/svml_d_atanh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atanh2_core.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atanh4_core.S b/sysdeps/x86_64/fpu/svml_d_atanh4_core.S
index d8e2cb6..90d6671 100644
--- a/sysdeps/x86_64/fpu/svml_d_atanh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atanh4_core.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atanh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_atanh4_core_avx.S
index 53ac935..acce0a7 100644
--- a/sysdeps/x86_64/fpu/svml_d_atanh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_atanh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_atanh8_core.S b/sysdeps/x86_64/fpu/svml_d_atanh8_core.S
index 2602897..6965a68 100644
--- a/sysdeps/x86_64/fpu/svml_d_atanh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_atanh8_core.S
@@ -1,5 +1,5 @@
/* Function atanh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cbrt2_core.S b/sysdeps/x86_64/fpu/svml_d_cbrt2_core.S
index 567721d..1f1754e 100644
--- a/sysdeps/x86_64/fpu/svml_d_cbrt2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cbrt2_core.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cbrt4_core.S b/sysdeps/x86_64/fpu/svml_d_cbrt4_core.S
index 02b3017..7bdaf10 100644
--- a/sysdeps/x86_64/fpu/svml_d_cbrt4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cbrt4_core.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cbrt4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_cbrt4_core_avx.S
index 941226d..1f2dc9d 100644
--- a/sysdeps/x86_64/fpu/svml_d_cbrt4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_cbrt4_core_avx.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cbrt8_core.S b/sysdeps/x86_64/fpu/svml_d_cbrt8_core.S
index b5d1bd7..982c988 100644
--- a/sysdeps/x86_64/fpu/svml_d_cbrt8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cbrt8_core.S
@@ -1,5 +1,5 @@
/* Function cbrt vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cos2_core.S b/sysdeps/x86_64/fpu/svml_d_cos2_core.S
index aadbd90..8fbbc5e 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos2_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cos4_core.S b/sysdeps/x86_64/fpu/svml_d_cos4_core.S
index df1c62b..ca019f0 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos4_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
index 26efd04..eab52d0 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
@@ -1,5 +1,5 @@
/* Function cos vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cos8_core.S b/sysdeps/x86_64/fpu/svml_d_cos8_core.S
index 6b75ebb..27244eb 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos8_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cosh2_core.S b/sysdeps/x86_64/fpu/svml_d_cosh2_core.S
index 33b037d..cae2659 100644
--- a/sysdeps/x86_64/fpu/svml_d_cosh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cosh2_core.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cosh4_core.S b/sysdeps/x86_64/fpu/svml_d_cosh4_core.S
index c81d438..75d872f 100644
--- a/sysdeps/x86_64/fpu/svml_d_cosh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cosh4_core.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cosh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_cosh4_core_avx.S
index b60248e..36b825e 100644
--- a/sysdeps/x86_64/fpu/svml_d_cosh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_cosh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_cosh8_core.S b/sysdeps/x86_64/fpu/svml_d_cosh8_core.S
index 0608450..901176e 100644
--- a/sysdeps/x86_64/fpu/svml_d_cosh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cosh8_core.S
@@ -1,5 +1,5 @@
/* Function cosh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erf2_core.S b/sysdeps/x86_64/fpu/svml_d_erf2_core.S
index 81b0f6a..e63eec1 100644
--- a/sysdeps/x86_64/fpu/svml_d_erf2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erf2_core.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erf4_core.S b/sysdeps/x86_64/fpu/svml_d_erf4_core.S
index fe30491..27bca79 100644
--- a/sysdeps/x86_64/fpu/svml_d_erf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erf4_core.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erf4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_erf4_core_avx.S
index ac8cb7d..ab29e9a 100644
--- a/sysdeps/x86_64/fpu/svml_d_erf4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_erf4_core_avx.S
@@ -1,5 +1,5 @@
/* Function erf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erf8_core.S b/sysdeps/x86_64/fpu/svml_d_erf8_core.S
index e371762..65f6134 100644
--- a/sysdeps/x86_64/fpu/svml_d_erf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erf8_core.S
@@ -1,5 +1,5 @@
/* Function erf vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erfc2_core.S b/sysdeps/x86_64/fpu/svml_d_erfc2_core.S
index 182b54a..25dcf3f 100644
--- a/sysdeps/x86_64/fpu/svml_d_erfc2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erfc2_core.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erfc4_core.S b/sysdeps/x86_64/fpu/svml_d_erfc4_core.S
index dae962d..0191e7b 100644
--- a/sysdeps/x86_64/fpu/svml_d_erfc4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erfc4_core.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erfc4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_erfc4_core_avx.S
index 6ad671c..e989d65 100644
--- a/sysdeps/x86_64/fpu/svml_d_erfc4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_erfc4_core_avx.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_erfc8_core.S b/sysdeps/x86_64/fpu/svml_d_erfc8_core.S
index f7c872b..7c712f8 100644
--- a/sysdeps/x86_64/fpu/svml_d_erfc8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_erfc8_core.S
@@ -1,5 +1,5 @@
/* Function erfc vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp102_core.S b/sysdeps/x86_64/fpu/svml_d_exp102_core.S
index c78aaad..f11a4f7 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp102_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp102_core.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp104_core.S b/sysdeps/x86_64/fpu/svml_d_exp104_core.S
index 091ffd7..5e4a22f 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp104_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp104_core.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp104_core_avx.S b/sysdeps/x86_64/fpu/svml_d_exp104_core_avx.S
index a24b5cc..c27f117 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp104_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp104_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp108_core.S b/sysdeps/x86_64/fpu/svml_d_exp108_core.S
index c210b50..1eacb77 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp108_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp108_core.S
@@ -1,5 +1,5 @@
/* Function exp10 vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp22_core.S b/sysdeps/x86_64/fpu/svml_d_exp22_core.S
index fb2e802..72dff10 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp22_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp22_core.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp24_core.S b/sysdeps/x86_64/fpu/svml_d_exp24_core.S
index 10c3f18..a6ed361 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp24_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp24_core.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp24_core_avx.S b/sysdeps/x86_64/fpu/svml_d_exp24_core_avx.S
index 94d61e3..b380784 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp24_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp24_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp28_core.S b/sysdeps/x86_64/fpu/svml_d_exp28_core.S
index d06f437..dcd5806 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp28_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp28_core.S
@@ -1,5 +1,5 @@
/* Function exp2 vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp2_core.S b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
index 0098d91..1e93b74 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp4_core.S b/sysdeps/x86_64/fpu/svml_d_exp4_core.S
index 73158b5..ee8b94d 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp4_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
index c4ae2a0..748aa66 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp8_core.S b/sysdeps/x86_64/fpu/svml_d_exp8_core.S
index 0a830eb..c05d5b6 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp8_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp_data.S b/sysdeps/x86_64/fpu/svml_d_exp_data.S
index 989a081..ae05521 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp_data.S
@@ -1,5 +1,5 @@
/* Data for vector function exp.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_exp_data.h b/sysdeps/x86_64/fpu/svml_d_exp_data.h
index 5b27bf6..f46c3d9 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_exp_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function exp.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_expm12_core.S b/sysdeps/x86_64/fpu/svml_d_expm12_core.S
index 889c9c1..6c2ff43 100644
--- a/sysdeps/x86_64/fpu/svml_d_expm12_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_expm12_core.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_expm14_core.S b/sysdeps/x86_64/fpu/svml_d_expm14_core.S
index 3370f32..00baf4f 100644
--- a/sysdeps/x86_64/fpu/svml_d_expm14_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_expm14_core.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_expm14_core_avx.S b/sysdeps/x86_64/fpu/svml_d_expm14_core_avx.S
index 9e6dd3c..47f8948 100644
--- a/sysdeps/x86_64/fpu/svml_d_expm14_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_expm14_core_avx.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_expm18_core.S b/sysdeps/x86_64/fpu/svml_d_expm18_core.S
index 14780ef..66287c3 100644
--- a/sysdeps/x86_64/fpu/svml_d_expm18_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_expm18_core.S
@@ -1,5 +1,5 @@
/* Function expm1 vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_hypot2_core.S b/sysdeps/x86_64/fpu/svml_d_hypot2_core.S
index c53f7c1..e1d13a2 100644
--- a/sysdeps/x86_64/fpu/svml_d_hypot2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_hypot2_core.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_hypot4_core.S b/sysdeps/x86_64/fpu/svml_d_hypot4_core.S
index 2eeaca9..5ecf426 100644
--- a/sysdeps/x86_64/fpu/svml_d_hypot4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_hypot4_core.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_hypot4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_hypot4_core_avx.S
index 67bee4ed..2bb1788 100644
--- a/sysdeps/x86_64/fpu/svml_d_hypot4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_hypot4_core_avx.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_hypot8_core.S b/sysdeps/x86_64/fpu/svml_d_hypot8_core.S
index 5f7606d..202b388 100644
--- a/sysdeps/x86_64/fpu/svml_d_hypot8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_hypot8_core.S
@@ -1,5 +1,5 @@
/* Function hypot vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log102_core.S b/sysdeps/x86_64/fpu/svml_d_log102_core.S
index d42e0eb..c59f89b 100644
--- a/sysdeps/x86_64/fpu/svml_d_log102_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log102_core.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log104_core.S b/sysdeps/x86_64/fpu/svml_d_log104_core.S
index 4308f86..e38d7ee 100644
--- a/sysdeps/x86_64/fpu/svml_d_log104_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log104_core.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
index 1e177d3..fbe57f4 100644
--- a/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log108_core.S b/sysdeps/x86_64/fpu/svml_d_log108_core.S
index 33714fd..a6426ee 100644
--- a/sysdeps/x86_64/fpu/svml_d_log108_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log108_core.S
@@ -1,5 +1,5 @@
/* Function log10 vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log1p2_core.S b/sysdeps/x86_64/fpu/svml_d_log1p2_core.S
index a1cf1a8..f7a541b 100644
--- a/sysdeps/x86_64/fpu/svml_d_log1p2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log1p2_core.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log1p4_core.S b/sysdeps/x86_64/fpu/svml_d_log1p4_core.S
index 4c7b81c..e571387 100644
--- a/sysdeps/x86_64/fpu/svml_d_log1p4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log1p4_core.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log1p4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log1p4_core_avx.S
index 32a0202..da87c8f 100644
--- a/sysdeps/x86_64/fpu/svml_d_log1p4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_log1p4_core_avx.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log1p8_core.S b/sysdeps/x86_64/fpu/svml_d_log1p8_core.S
index 65b7fd9..5c64b2c 100644
--- a/sysdeps/x86_64/fpu/svml_d_log1p8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log1p8_core.S
@@ -1,5 +1,5 @@
/* Function log1p vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log22_core.S b/sysdeps/x86_64/fpu/svml_d_log22_core.S
index d6b7d22..f31e23d 100644
--- a/sysdeps/x86_64/fpu/svml_d_log22_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log22_core.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log24_core.S b/sysdeps/x86_64/fpu/svml_d_log24_core.S
index 0ae827e..5c7d99c 100644
--- a/sysdeps/x86_64/fpu/svml_d_log24_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log24_core.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
index 856a2a3..9c0e200 100644
--- a/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log28_core.S b/sysdeps/x86_64/fpu/svml_d_log28_core.S
index b800d4d..0c5f1dd 100644
--- a/sysdeps/x86_64/fpu/svml_d_log28_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log28_core.S
@@ -1,5 +1,5 @@
/* Function log2 vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log2_core.S b/sysdeps/x86_64/fpu/svml_d_log2_core.S
index cd67591..218926b 100644
--- a/sysdeps/x86_64/fpu/svml_d_log2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log2_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log4_core.S b/sysdeps/x86_64/fpu/svml_d_log4_core.S
index 29f1fa2..0910fc6 100644
--- a/sysdeps/x86_64/fpu/svml_d_log4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log4_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
index 0cf0193..32e6496 100644
--- a/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
@@ -1,5 +1,5 @@
/* Function log vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log8_core.S b/sysdeps/x86_64/fpu/svml_d_log8_core.S
index 736e6de..90828fb 100644
--- a/sysdeps/x86_64/fpu/svml_d_log8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log8_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log_data.S b/sysdeps/x86_64/fpu/svml_d_log_data.S
index f76f962..ac86b1f 100644
--- a/sysdeps/x86_64/fpu/svml_d_log_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_log_data.S
@@ -1,5 +1,5 @@
/* Data for function log.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_log_data.h b/sysdeps/x86_64/fpu/svml_d_log_data.h
index e60ea3b..bb80c9f 100644
--- a/sysdeps/x86_64/fpu/svml_d_log_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_log_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function log.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow2_core.S b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
index d392700..a679182 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow4_core.S b/sysdeps/x86_64/fpu/svml_d_pow4_core.S
index 1eca2ac..7914b29 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow4_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
index fa5700c..c32a365 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
@@ -1,5 +1,5 @@
/* Function pow vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow8_core.S b/sysdeps/x86_64/fpu/svml_d_pow8_core.S
index f733621..6fbd3b6 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow8_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow_data.S b/sysdeps/x86_64/fpu/svml_d_pow_data.S
index 4157d8a..c1b57ef 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow_data.S
@@ -1,5 +1,5 @@
/* Data for function pow.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_pow_data.h b/sysdeps/x86_64/fpu/svml_d_pow_data.h
index b9cb739..2e99205 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_pow_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function pow.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sin2_core.S b/sysdeps/x86_64/fpu/svml_d_sin2_core.S
index 37e1085..a87f01e 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin2_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sin4_core.S b/sysdeps/x86_64/fpu/svml_d_sin4_core.S
index 5673b73..2f76cf8 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin4_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
index 253dfd8..66d17ef 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
@@ -1,5 +1,5 @@
/* Function sin vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sin8_core.S b/sysdeps/x86_64/fpu/svml_d_sin8_core.S
index 94c5027..8ee2a85 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin8_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX-512, wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos2_core.S b/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
index 0e34c34..39163af 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos4_core.S b/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
index 65c57d3..eb5feb6 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
index 4f6f5de..ae2e4f4 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos8_core.S b/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
index 2de0706..0a3de52 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh2_core.S b/sysdeps/x86_64/fpu/svml_d_sinh2_core.S
index 6543467..2cf5abd 100644
--- a/sysdeps/x86_64/fpu/svml_d_sinh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sinh2_core.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh4_core.S b/sysdeps/x86_64/fpu/svml_d_sinh4_core.S
index 84cdc4f..6ea2a1d 100644
--- a/sysdeps/x86_64/fpu/svml_d_sinh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sinh4_core.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
index 64df956..050d070 100644
--- a/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh8_core.S b/sysdeps/x86_64/fpu/svml_d_sinh8_core.S
index 0650bf5..aa7acfc 100644
--- a/sysdeps/x86_64/fpu/svml_d_sinh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sinh8_core.S
@@ -1,5 +1,5 @@
/* Function sinh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tan2_core.S b/sysdeps/x86_64/fpu/svml_d_tan2_core.S
index 16072ff..41cea51 100644
--- a/sysdeps/x86_64/fpu/svml_d_tan2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tan2_core.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tan4_core.S b/sysdeps/x86_64/fpu/svml_d_tan4_core.S
index aa9be95..0eedc9d 100644
--- a/sysdeps/x86_64/fpu/svml_d_tan4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tan4_core.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tan4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_tan4_core_avx.S
index 8978c6c..abf2183 100644
--- a/sysdeps/x86_64/fpu/svml_d_tan4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_tan4_core_avx.S
@@ -1,5 +1,5 @@
/* Function tan vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tan8_core.S b/sysdeps/x86_64/fpu/svml_d_tan8_core.S
index 87fa2dc..abb399c 100644
--- a/sysdeps/x86_64/fpu/svml_d_tan8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tan8_core.S
@@ -1,5 +1,5 @@
/* Function tan vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tanh2_core.S b/sysdeps/x86_64/fpu/svml_d_tanh2_core.S
index b772d14..e6788c2 100644
--- a/sysdeps/x86_64/fpu/svml_d_tanh2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tanh2_core.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tanh4_core.S b/sysdeps/x86_64/fpu/svml_d_tanh4_core.S
index b40ee60..681e588 100644
--- a/sysdeps/x86_64/fpu/svml_d_tanh4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tanh4_core.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tanh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_tanh4_core_avx.S
index f350e44..448a68a 100644
--- a/sysdeps/x86_64/fpu/svml_d_tanh4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_tanh4_core_avx.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_tanh8_core.S b/sysdeps/x86_64/fpu/svml_d_tanh8_core.S
index 192059a..a14a4b9 100644
--- a/sysdeps/x86_64/fpu/svml_d_tanh8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_tanh8_core.S
@@ -1,5 +1,5 @@
/* Function tanh vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_trig_data.S b/sysdeps/x86_64/fpu/svml_d_trig_data.S
index a12e64f..868a062 100644
--- a/sysdeps/x86_64/fpu/svml_d_trig_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_trig_data.S
@@ -1,5 +1,5 @@
/* Data for vectorized sin, cos, sincos.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_trig_data.h b/sysdeps/x86_64/fpu/svml_d_trig_data.h
index 39461f2..b61ad65 100644
--- a/sysdeps/x86_64/fpu/svml_d_trig_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_trig_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized sin, cos, sincos.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h b/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
index 9f8cd8c..9772808 100644
--- a/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
+++ b/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
@@ -1,5 +1,5 @@
/* Wrapper implementations of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acosf16_core.S b/sysdeps/x86_64/fpu/svml_s_acosf16_core.S
index 3fc4986..8b6d045 100644
--- a/sysdeps/x86_64/fpu/svml_s_acosf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acosf16_core.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acosf4_core.S b/sysdeps/x86_64/fpu/svml_s_acosf4_core.S
index 7bac320..e674818 100644
--- a/sysdeps/x86_64/fpu/svml_s_acosf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acosf4_core.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acosf8_core.S b/sysdeps/x86_64/fpu/svml_s_acosf8_core.S
index 0f3df28..31f26c1 100644
--- a/sysdeps/x86_64/fpu/svml_s_acosf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acosf8_core.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acosf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_acosf8_core_avx.S
index 92ead79..104ee72 100644
--- a/sysdeps/x86_64/fpu/svml_s_acosf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_acosf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function acosf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acoshf16_core.S b/sysdeps/x86_64/fpu/svml_s_acoshf16_core.S
index 9a32390..29bac2e 100644
--- a/sysdeps/x86_64/fpu/svml_s_acoshf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acoshf16_core.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acoshf4_core.S b/sysdeps/x86_64/fpu/svml_s_acoshf4_core.S
index 0a1eb1a..379508b 100644
--- a/sysdeps/x86_64/fpu/svml_s_acoshf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acoshf4_core.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acoshf8_core.S b/sysdeps/x86_64/fpu/svml_s_acoshf8_core.S
index fe391a6..e5fd1a8 100644
--- a/sysdeps/x86_64/fpu/svml_s_acoshf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_acoshf8_core.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_acoshf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_acoshf8_core_avx.S
index c0bc412..93e8e8a 100644
--- a/sysdeps/x86_64/fpu/svml_s_acoshf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_acoshf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function acoshf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinf16_core.S b/sysdeps/x86_64/fpu/svml_s_asinf16_core.S
index 8636e39..bb005e5 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinf16_core.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinf4_core.S b/sysdeps/x86_64/fpu/svml_s_asinf4_core.S
index 741680c..2c42cd1 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinf4_core.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinf8_core.S b/sysdeps/x86_64/fpu/svml_s_asinf8_core.S
index abe6b64..6a0b8b3 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinf8_core.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S
index 4a574a8..16846fa 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function asinf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinhf16_core.S b/sysdeps/x86_64/fpu/svml_s_asinhf16_core.S
index f1d32b4..f07301e 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinhf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinhf16_core.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinhf4_core.S b/sysdeps/x86_64/fpu/svml_s_asinhf4_core.S
index 8a3f37b..ef45267 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinhf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinhf4_core.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinhf8_core.S b/sysdeps/x86_64/fpu/svml_s_asinhf8_core.S
index ced4b1f..638793c 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinhf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinhf8_core.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_asinhf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_asinhf8_core_avx.S
index 9e299ca..719fce4 100644
--- a/sysdeps/x86_64/fpu/svml_s_asinhf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_asinhf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function asinhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atan2f16_core.S b/sysdeps/x86_64/fpu/svml_s_atan2f16_core.S
index 76f1f99..eea019f 100644
--- a/sysdeps/x86_64/fpu/svml_s_atan2f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atan2f16_core.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atan2f4_core.S b/sysdeps/x86_64/fpu/svml_s_atan2f4_core.S
index de2a5aa..fd4a93e 100644
--- a/sysdeps/x86_64/fpu/svml_s_atan2f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atan2f4_core.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atan2f8_core.S b/sysdeps/x86_64/fpu/svml_s_atan2f8_core.S
index 37533eb..f755748 100644
--- a/sysdeps/x86_64/fpu/svml_s_atan2f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atan2f8_core.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atan2f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_atan2f8_core_avx.S
index e323cf0..17c86cc 100644
--- a/sysdeps/x86_64/fpu/svml_s_atan2f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_atan2f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function atan2f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanf16_core.S b/sysdeps/x86_64/fpu/svml_s_atanf16_core.S
index 1b74393..1e5c57d 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanf16_core.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanf4_core.S b/sysdeps/x86_64/fpu/svml_s_atanf4_core.S
index 2f4957b..e65de15 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanf4_core.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanf8_core.S b/sysdeps/x86_64/fpu/svml_s_atanf8_core.S
index 2650eb8..bf597db 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanf8_core.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_atanf8_core_avx.S
index fd39652..286f2ec 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function atanf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanhf16_core.S b/sysdeps/x86_64/fpu/svml_s_atanhf16_core.S
index 05f1aa3..f30f0ef 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanhf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanhf16_core.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanhf4_core.S b/sysdeps/x86_64/fpu/svml_s_atanhf4_core.S
index cfee256..343cd8a 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanhf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanhf4_core.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanhf8_core.S b/sysdeps/x86_64/fpu/svml_s_atanhf8_core.S
index f5778e8..474ac48 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanhf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanhf8_core.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_atanhf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_atanhf8_core_avx.S
index ef5bcff..8e8a223 100644
--- a/sysdeps/x86_64/fpu/svml_s_atanhf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_atanhf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function atanhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cbrtf16_core.S b/sysdeps/x86_64/fpu/svml_s_cbrtf16_core.S
index 1cdaf21..6202343 100644
--- a/sysdeps/x86_64/fpu/svml_s_cbrtf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cbrtf16_core.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cbrtf4_core.S b/sysdeps/x86_64/fpu/svml_s_cbrtf4_core.S
index acabde5..f41524a 100644
--- a/sysdeps/x86_64/fpu/svml_s_cbrtf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cbrtf4_core.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cbrtf8_core.S b/sysdeps/x86_64/fpu/svml_s_cbrtf8_core.S
index 8d4b964..9e83d5f 100644
--- a/sysdeps/x86_64/fpu/svml_s_cbrtf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cbrtf8_core.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cbrtf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_cbrtf8_core_avx.S
index 2b16734..245631c 100644
--- a/sysdeps/x86_64/fpu/svml_s_cbrtf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_cbrtf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function cbrtf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf16_core.S b/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
index c551147..619860a 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf4_core.S b/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
index f5db247..f4cadc5 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with SSE2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf8_core.S b/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
index e5e82d0..8e980ef 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
index f3c2e0b..3833fec 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_coshf16_core.S b/sysdeps/x86_64/fpu/svml_s_coshf16_core.S
index 6f28585..7c5ae26 100644
--- a/sysdeps/x86_64/fpu/svml_s_coshf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_coshf16_core.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_coshf4_core.S b/sysdeps/x86_64/fpu/svml_s_coshf4_core.S
index 842e328..269d143 100644
--- a/sysdeps/x86_64/fpu/svml_s_coshf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_coshf4_core.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_coshf8_core.S b/sysdeps/x86_64/fpu/svml_s_coshf8_core.S
index fcc9ead..fd7ccd0 100644
--- a/sysdeps/x86_64/fpu/svml_s_coshf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_coshf8_core.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_coshf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_coshf8_core_avx.S
index 5d056eb..136dfc2 100644
--- a/sysdeps/x86_64/fpu/svml_s_coshf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_coshf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function coshf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erfcf16_core.S b/sysdeps/x86_64/fpu/svml_s_erfcf16_core.S
index d99c52f..f064276 100644
--- a/sysdeps/x86_64/fpu/svml_s_erfcf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erfcf16_core.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erfcf4_core.S b/sysdeps/x86_64/fpu/svml_s_erfcf4_core.S
index 7996086..f5e8e48 100644
--- a/sysdeps/x86_64/fpu/svml_s_erfcf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erfcf4_core.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erfcf8_core.S b/sysdeps/x86_64/fpu/svml_s_erfcf8_core.S
index f61ef8c..a9dffd0 100644
--- a/sysdeps/x86_64/fpu/svml_s_erfcf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erfcf8_core.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erfcf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_erfcf8_core_avx.S
index af0233e..a66e657 100644
--- a/sysdeps/x86_64/fpu/svml_s_erfcf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_erfcf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function erfcf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erff16_core.S b/sysdeps/x86_64/fpu/svml_s_erff16_core.S
index 84dc29d..265790d 100644
--- a/sysdeps/x86_64/fpu/svml_s_erff16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erff16_core.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erff4_core.S b/sysdeps/x86_64/fpu/svml_s_erff4_core.S
index 57d11b4..9dbd370 100644
--- a/sysdeps/x86_64/fpu/svml_s_erff4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erff4_core.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erff8_core.S b/sysdeps/x86_64/fpu/svml_s_erff8_core.S
index 28e625e..df8f379 100644
--- a/sysdeps/x86_64/fpu/svml_s_erff8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_erff8_core.S
@@ -1,5 +1,5 @@
/* Function erff vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_erff8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_erff8_core_avx.S
index 36c2538..ed1f8ee 100644
--- a/sysdeps/x86_64/fpu/svml_s_erff8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_erff8_core_avx.S
@@ -1,5 +1,5 @@
/* Function erff vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp10f16_core.S b/sysdeps/x86_64/fpu/svml_s_exp10f16_core.S
index e6d2afa..f95b55e 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp10f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp10f16_core.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp10f4_core.S b/sysdeps/x86_64/fpu/svml_s_exp10f4_core.S
index 1e7c07d..0cf64c9 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp10f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp10f4_core.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp10f8_core.S b/sysdeps/x86_64/fpu/svml_s_exp10f8_core.S
index 6fa1a77..db6b120 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp10f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp10f8_core.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp10f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_exp10f8_core_avx.S
index 0e2e4d6..4c3f846 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp10f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp10f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp10f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp2f16_core.S b/sysdeps/x86_64/fpu/svml_s_exp2f16_core.S
index 39f2ebf..df75d61 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp2f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp2f16_core.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp2f4_core.S b/sysdeps/x86_64/fpu/svml_s_exp2f4_core.S
index 4c28582..d714bf5 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp2f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp2f4_core.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp2f8_core.S b/sysdeps/x86_64/fpu/svml_s_exp2f8_core.S
index 56e1d3b..79f489b 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp2f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp2f8_core.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_exp2f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_exp2f8_core_avx.S
index de8a8cf..c05fa89 100644
--- a/sysdeps/x86_64/fpu/svml_s_exp2f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_exp2f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp2f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf16_core.S b/sysdeps/x86_64/fpu/svml_s_expf16_core.S
index 130dcba..f3aa2c6 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf16_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf4_core.S b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
index 3f90111..6f1a4da 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf8_core.S b/sysdeps/x86_64/fpu/svml_s_expf8_core.S
index 611377c..c48dedb 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf8_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
index 6401974..699a018 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function expf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf_data.S b/sysdeps/x86_64/fpu/svml_s_expf_data.S
index fd3c03b..f89e910 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf_data.S
@@ -1,5 +1,5 @@
/* Data for function expf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expf_data.h b/sysdeps/x86_64/fpu/svml_s_expf_data.h
index 98a7935..dd53eba 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_expf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vector function expf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expm1f16_core.S b/sysdeps/x86_64/fpu/svml_s_expm1f16_core.S
index 534510c..0494c26 100644
--- a/sysdeps/x86_64/fpu/svml_s_expm1f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expm1f16_core.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expm1f4_core.S b/sysdeps/x86_64/fpu/svml_s_expm1f4_core.S
index 71925c8..e190190 100644
--- a/sysdeps/x86_64/fpu/svml_s_expm1f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expm1f4_core.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expm1f8_core.S b/sysdeps/x86_64/fpu/svml_s_expm1f8_core.S
index 6eb3c6d..f276d81 100644
--- a/sysdeps/x86_64/fpu/svml_s_expm1f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expm1f8_core.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_expm1f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_expm1f8_core_avx.S
index d66c9f8..87f01c5 100644
--- a/sysdeps/x86_64/fpu/svml_s_expm1f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_expm1f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function expm1f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_hypotf16_core.S b/sysdeps/x86_64/fpu/svml_s_hypotf16_core.S
index fa56695..54bfd62 100644
--- a/sysdeps/x86_64/fpu/svml_s_hypotf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_hypotf16_core.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_hypotf4_core.S b/sysdeps/x86_64/fpu/svml_s_hypotf4_core.S
index fb1ade4..52eea13 100644
--- a/sysdeps/x86_64/fpu/svml_s_hypotf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_hypotf4_core.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with SSE2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_hypotf8_core.S b/sysdeps/x86_64/fpu/svml_s_hypotf8_core.S
index 3e6bcef..061c27f 100644
--- a/sysdeps/x86_64/fpu/svml_s_hypotf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_hypotf8_core.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_hypotf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_hypotf8_core_avx.S
index dc6b3be..82f4f93 100644
--- a/sysdeps/x86_64/fpu/svml_s_hypotf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_hypotf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function hypotf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f16_core.S b/sysdeps/x86_64/fpu/svml_s_log10f16_core.S
index b032c9e..fc007db 100644
--- a/sysdeps/x86_64/fpu/svml_s_log10f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log10f16_core.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f4_core.S b/sysdeps/x86_64/fpu/svml_s_log10f4_core.S
index e3b4548..52d8153 100644
--- a/sysdeps/x86_64/fpu/svml_s_log10f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log10f4_core.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f8_core.S b/sysdeps/x86_64/fpu/svml_s_log10f8_core.S
index 8dfd5b6..b1a1cf7 100644
--- a/sysdeps/x86_64/fpu/svml_s_log10f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log10f8_core.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
index 39ae4ba..4dfab3b 100644
--- a/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function log10f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log1pf16_core.S b/sysdeps/x86_64/fpu/svml_s_log1pf16_core.S
index f61920f..a6e9791 100644
--- a/sysdeps/x86_64/fpu/svml_s_log1pf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log1pf16_core.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log1pf4_core.S b/sysdeps/x86_64/fpu/svml_s_log1pf4_core.S
index c2eba32..872927a 100644
--- a/sysdeps/x86_64/fpu/svml_s_log1pf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log1pf4_core.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log1pf8_core.S b/sysdeps/x86_64/fpu/svml_s_log1pf8_core.S
index f9929ba..44c5513 100644
--- a/sysdeps/x86_64/fpu/svml_s_log1pf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log1pf8_core.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log1pf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_log1pf8_core_avx.S
index 6ad505f..2ede529 100644
--- a/sysdeps/x86_64/fpu/svml_s_log1pf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_log1pf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function log1pf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f16_core.S b/sysdeps/x86_64/fpu/svml_s_log2f16_core.S
index b054b00..a539eba 100644
--- a/sysdeps/x86_64/fpu/svml_s_log2f16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log2f16_core.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f4_core.S b/sysdeps/x86_64/fpu/svml_s_log2f4_core.S
index 29c0beb..f7d1a8a 100644
--- a/sysdeps/x86_64/fpu/svml_s_log2f4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log2f4_core.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f8_core.S b/sysdeps/x86_64/fpu/svml_s_log2f8_core.S
index 31d951e..f0e695d 100644
--- a/sysdeps/x86_64/fpu/svml_s_log2f8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_log2f8_core.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
index 3a21543..7ea73c8 100644
--- a/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
@@ -1,5 +1,5 @@
/* Function log2f vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf16_core.S b/sysdeps/x86_64/fpu/svml_s_logf16_core.S
index 6aa105e..3601ca3 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf16_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf4_core.S b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
index 520c8b2..730f1db 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf8_core.S b/sysdeps/x86_64/fpu/svml_s_logf8_core.S
index 804ef8b..9cc5d7a 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf8_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
index b49f756..f6b3cf5 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function logf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf_data.S b/sysdeps/x86_64/fpu/svml_s_logf_data.S
index 68231d6..1579e75 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf_data.S
@@ -1,5 +1,5 @@
/* Data for vector function logf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_logf_data.h b/sysdeps/x86_64/fpu/svml_s_logf_data.h
index a697522..3d6f8da 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_logf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized function logf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf16_core.S b/sysdeps/x86_64/fpu/svml_s_powf16_core.S
index 3027550..575388f 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf16_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf4_core.S b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
index 89b8b9b..706281b 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf8_core.S b/sysdeps/x86_64/fpu/svml_s_powf8_core.S
index cd330b8..b9e8e59 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf8_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
index de98923..3ab78f6 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function powf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf_data.S b/sysdeps/x86_64/fpu/svml_s_powf_data.S
index 3e6951d..d4cfe35 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf_data.S
@@ -1,5 +1,5 @@
/* Data for function powf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_powf_data.h b/sysdeps/x86_64/fpu/svml_s_powf_data.h
index 7feb270..844e4f4 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_powf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function powf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
index a48b66e..38209fc 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
index 68fc8ab..1a8c74f 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
index 3094f29..0335ead 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
index dfdbdb8..e5a6702 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf16_core.S b/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
index 4f9f490..f07aaa7 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf4_core.S b/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
index 3b20ac8..29c7826 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with SSE2.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf8_core.S b/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
index 5bcda10..c98dad2 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
index 1959c54..ef0f759 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
index 847149e..022a78c 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
index 20fbf07..d907162 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
index 515345b..6d28959 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
index 9a786cf..3fd1cd9 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function sinhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanf16_core.S b/sysdeps/x86_64/fpu/svml_s_tanf16_core.S
index 22f5020..87e0720 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanf16_core.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanf4_core.S b/sysdeps/x86_64/fpu/svml_s_tanf4_core.S
index f5a787d..10d62c6 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanf4_core.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanf8_core.S b/sysdeps/x86_64/fpu/svml_s_tanf8_core.S
index 5376a80..66a4fb2 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanf8_core.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_tanf8_core_avx.S
index 4218c61..a99ae61 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function tanf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanhf16_core.S b/sysdeps/x86_64/fpu/svml_s_tanhf16_core.S
index 5ce422a..7bb405e 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanhf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanhf16_core.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanhf4_core.S b/sysdeps/x86_64/fpu/svml_s_tanhf4_core.S
index a9a5c99..7abc770 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanhf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanhf4_core.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with SSE2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanhf8_core.S b/sysdeps/x86_64/fpu/svml_s_tanhf8_core.S
index d8ecd63..5282a6b 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanhf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanhf8_core.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized with AVX2, wrapper version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_tanhf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_tanhf8_core_avx.S
index ce39a44..7f086a3 100644
--- a/sysdeps/x86_64/fpu/svml_s_tanhf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_tanhf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function tanhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_trig_data.S b/sysdeps/x86_64/fpu/svml_s_trig_data.S
index 1e84096..810e258 100644
--- a/sysdeps/x86_64/fpu/svml_s_trig_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_trig_data.S
@@ -1,5 +1,5 @@
/* Data for function cosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_trig_data.h b/sysdeps/x86_64/fpu/svml_s_trig_data.h
index b20d347..e26d0d0 100644
--- a/sysdeps/x86_64/fpu/svml_s_trig_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_trig_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized sinf, cosf, sincosf.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h b/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
index 9d70553..4c64b3a 100644
--- a/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
+++ b/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
@@ -1,5 +1,5 @@
/* Wrapper implementations of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/svml_sd_wrapper_impl.h b/sysdeps/x86_64/fpu/svml_sd_wrapper_impl.h
index 6dea699..f051c90 100644
--- a/sysdeps/x86_64/fpu/svml_sd_wrapper_impl.h
+++ b/sysdeps/x86_64/fpu/svml_sd_wrapper_impl.h
@@ -1,6 +1,6 @@
/* Common float/double wrapper implementations of vector math
functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
index c906089..52304d3 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for SSE ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
index c7ca36e..23c4a50 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-double-vlen4.h"
+#include <test-double-vlen4.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h b/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
index 99adf9c..0faf5be 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
@@ -1,5 +1,5 @@
/* Tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
index 4f89ccb..f8d451c 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-double-vlen4.h"
+#include <test-double-vlen4.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4.h b/sysdeps/x86_64/fpu/test-double-vlen4.h
index 2eaa330..ff7c53c 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen4.h
@@ -1,5 +1,5 @@
/* Tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
index 6c18286..d788a7d 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX-512 versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-double-vlen8.h"
+#include <test-double-vlen8.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen8.h b/sysdeps/x86_64/fpu/test-double-vlen8.h
index 9edd6b7..e6182ce 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen8.h
@@ -1,5 +1,5 @@
/* Tests for AVX-512 versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
index 241857b..67f0c97 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX-512 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-float-vlen16.h"
+#include <test-float-vlen16.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen16.h b/sysdeps/x86_64/fpu/test-float-vlen16.h
index 59f8018..5b76aca 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen16.h
@@ -1,5 +1,5 @@
/* Tests for AVX-512 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
index e9a8d0e..fbbfb68 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for SSE ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
index 043830b..b882803 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-float-vlen8.h"
+#include <test-float-vlen8.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h b/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
index f9546ea..e1c9391 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
@@ -1,5 +1,5 @@
/* Tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
index e71faeb..c6f25ae 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "test-float-vlen8.h"
+#include <test-float-vlen8.h>
#include "test-math-vector-sincos.h"
#include <immintrin.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8.h b/sysdeps/x86_64/fpu/test-float-vlen8.h
index 11e3581..4950271 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen8.h
@@ -1,5 +1,5 @@
/* Tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-vector-abi-arg1.h b/sysdeps/x86_64/fpu/test-vector-abi-arg1.h
index f3d89ff..c13995f 100644
--- a/sysdeps/x86_64/fpu/test-vector-abi-arg1.h
+++ b/sysdeps/x86_64/fpu/test-vector-abi-arg1.h
@@ -1,5 +1,5 @@
/* Test for vector ABI with a single argument.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-vector-abi-arg2.h b/sysdeps/x86_64/fpu/test-vector-abi-arg2.h
index 9211ca1..1091622 100644
--- a/sysdeps/x86_64/fpu/test-vector-abi-arg2.h
+++ b/sysdeps/x86_64/fpu/test-vector-abi-arg2.h
@@ -1,5 +1,5 @@
/* Test for vector ABI with 2 arguments.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-vector-abi-sincos.h b/sysdeps/x86_64/fpu/test-vector-abi-sincos.h
index fbe735f..0729088 100644
--- a/sysdeps/x86_64/fpu/test-vector-abi-sincos.h
+++ b/sysdeps/x86_64/fpu/test-vector-abi-sincos.h
@@ -1,5 +1,5 @@
/* Test for vector sincos/sincosf ABI.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/test-vector-abi.h b/sysdeps/x86_64/fpu/test-vector-abi.h
index 8c67f72..39fca68 100644
--- a/sysdeps/x86_64/fpu/test-vector-abi.h
+++ b/sysdeps/x86_64/fpu/test-vector-abi.h
@@ -1,5 +1,5 @@
/* Test for vector ABI.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/fpu/x86_64-math-asm.h b/sysdeps/x86_64/fpu/x86_64-math-asm.h
index 74bf747..5b0f39e 100644
--- a/sysdeps/x86_64/fpu/x86_64-math-asm.h
+++ b/sysdeps/x86_64/fpu/x86_64-math-asm.h
@@ -1,5 +1,5 @@
/* Helper macros for x86_64 libm functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/htl/Makefile b/sysdeps/x86_64/htl/Makefile
index 686b843..8c51792 100644
--- a/sysdeps/x86_64/htl/Makefile
+++ b/sysdeps/x86_64/htl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/htl/bits/pthreadtypes-arch.h b/sysdeps/x86_64/htl/bits/pthreadtypes-arch.h
index c7ece9c..2ffa0bb 100644
--- a/sysdeps/x86_64/htl/bits/pthreadtypes-arch.h
+++ b/sysdeps/x86_64/htl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. Hurd x86_64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/htl/machine-sp.h b/sysdeps/x86_64/htl/machine-sp.h
index 6028599..9123f5a 100644
--- a/sysdeps/x86_64/htl/machine-sp.h
+++ b/sysdeps/x86_64/htl/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. x86_64 version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/ifuncmain8.c b/sysdeps/x86_64/ifuncmain8.c
index e457728..15442ba 100644
--- a/sysdeps/x86_64/ifuncmain8.c
+++ b/sysdeps/x86_64/ifuncmain8.c
@@ -1,5 +1,5 @@
/* Test IFUNC selector with floating-point parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/ifuncmod8.c b/sysdeps/x86_64/ifuncmod8.c
index 24096a9..3d96d71 100644
--- a/sysdeps/x86_64/ifuncmod8.c
+++ b/sysdeps/x86_64/ifuncmod8.c
@@ -1,5 +1,5 @@
/* Test IFUNC selector with floating-point parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/isa-default-impl.h b/sysdeps/x86_64/isa-default-impl.h
index 5144203..0959407 100644
--- a/sysdeps/x86_64/isa-default-impl.h
+++ b/sysdeps/x86_64/isa-default-impl.h
@@ -1,5 +1,5 @@
/* Utility for including proper default function based on ISA level
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/isa.h b/sysdeps/x86_64/isa.h
index 980a878..ec4d026 100644
--- a/sysdeps/x86_64/isa.h
+++ b/sysdeps/x86_64/isa.h
@@ -1,5 +1,5 @@
/* x86 ISA info. x86-64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/jmpbuf-offsets.h b/sysdeps/x86_64/jmpbuf-offsets.h
index 29854f2..5c62d8d 100644
--- a/sysdeps/x86_64/jmpbuf-offsets.h
+++ b/sysdeps/x86_64/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. x86-64 version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/jmpbuf-unwind.h b/sysdeps/x86_64/jmpbuf-unwind.h
index a5f3194..b63c9b6 100644
--- a/sysdeps/x86_64/jmpbuf-unwind.h
+++ b/sysdeps/x86_64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/ldsodefs.h b/sysdeps/x86_64/ldsodefs.h
index 0f468dd..82222ec 100644
--- a/sysdeps/x86_64/ldsodefs.h
+++ b/sysdeps/x86_64/ldsodefs.h
@@ -1,6 +1,6 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/libc-start.h b/sysdeps/x86_64/libc-start.h
index 63fef17..2c38062 100644
--- a/sysdeps/x86_64/libc-start.h
+++ b/sysdeps/x86_64/libc-start.h
@@ -1,5 +1,5 @@
/* x86-64 definitions for libc main startup.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/link_map.h b/sysdeps/x86_64/link_map.h
index 537f56a..7a2eee8 100644
--- a/sysdeps/x86_64/link_map.h
+++ b/sysdeps/x86_64/link_map.h
@@ -1,5 +1,5 @@
/* Additional fields in struct link_map. x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/lshift.S b/sysdeps/x86_64/lshift.S
index 5509aa9..56bf6e4 100644
--- a/sysdeps/x86_64/lshift.S
+++ b/sysdeps/x86_64/lshift.S
@@ -1,5 +1,5 @@
/* x86-64 __mpn_lshift --
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/machine-gmon.h b/sysdeps/x86_64/machine-gmon.h
index db67fff..5a20194 100644
--- a/sysdeps/x86_64/machine-gmon.h
+++ b/sysdeps/x86_64/machine-gmon.h
@@ -1,5 +1,5 @@
/* x86-64-specific implementation of profiling support.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memchr.S b/sysdeps/x86_64/memchr.S
index 2d6176f..9098aa6 100644
--- a/sysdeps/x86_64/memchr.S
+++ b/sysdeps/x86_64/memchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S
index 59cb247..1b88611 100644
--- a/sysdeps/x86_64/memcmp.S
+++ b/sysdeps/x86_64/memcmp.S
@@ -1,5 +1,5 @@
/* memcmp hook for non-multiarch and RTLD build.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memcmpeq.S b/sysdeps/x86_64/memcmpeq.S
index cb22f11..1b839b4 100644
--- a/sysdeps/x86_64/memcmpeq.S
+++ b/sysdeps/x86_64/memcmpeq.S
@@ -1,5 +1,5 @@
/* __memcmpeq hook for non-multiarch and RTLD build.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memcpy_chk.S b/sysdeps/x86_64/memcpy_chk.S
index 483f1de..6b8cfa1 100644
--- a/sysdeps/x86_64/memcpy_chk.S
+++ b/sysdeps/x86_64/memcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking memcpy for x86-64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memmove.S b/sysdeps/x86_64/memmove.S
index 66e04d4..c5cb2f5 100644
--- a/sysdeps/x86_64/memmove.S
+++ b/sysdeps/x86_64/memmove.S
@@ -1,5 +1,5 @@
/* Optimized memmove for x86-64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memmove_chk.S b/sysdeps/x86_64/memmove_chk.S
index 0291a5d..aa28cc9 100644
--- a/sysdeps/x86_64/memmove_chk.S
+++ b/sysdeps/x86_64/memmove_chk.S
@@ -1,5 +1,5 @@
/* Checking memmove for x86-64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/mempcpy_chk.S b/sysdeps/x86_64/mempcpy_chk.S
index 7b552f9..10d2733 100644
--- a/sysdeps/x86_64/mempcpy_chk.S
+++ b/sysdeps/x86_64/mempcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking mempcpy for x86-64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memrchr.S b/sysdeps/x86_64/memrchr.S
index ec5f511..07ec487 100644
--- a/sysdeps/x86_64/memrchr.S
+++ b/sysdeps/x86_64/memrchr.S
@@ -1,6 +1,6 @@
/* memrchr dispatch for RTLD and non-multiarch build
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
index f627bb9..c9a00ac 100644
--- a/sysdeps/x86_64/memset.S
+++ b/sysdeps/x86_64/memset.S
@@ -1,6 +1,6 @@
/* memset -- set memory area to CH/0
Optimized version for x86-64.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/memset_chk.S b/sysdeps/x86_64/memset_chk.S
index c0308eb..3ebe886 100644
--- a/sysdeps/x86_64/memset_chk.S
+++ b/sysdeps/x86_64/memset_chk.S
@@ -1,5 +1,5 @@
/* Checking memset for x86-64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/mul_1.S b/sysdeps/x86_64/mul_1.S
index 3a493e0..5bec7cc 100644
--- a/sysdeps/x86_64/mul_1.S
+++ b/sysdeps/x86_64/mul_1.S
@@ -1,6 +1,6 @@
/* AMD64 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h
index 0580e78..163b25d 100644
--- a/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h
@@ -1,5 +1,5 @@
/* Symbol rediretion for loader/static initialization code.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-avx2.h b/sysdeps/x86_64/multiarch/ifunc-avx2.h
index 4174928..47d2f67 100644
--- a/sysdeps/x86_64/multiarch/ifunc-avx2.h
+++ b/sysdeps/x86_64/multiarch/ifunc-avx2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and AVX2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-evex.h b/sysdeps/x86_64/multiarch/ifunc-evex.h
index bbd1e31..49afda0 100644
--- a/sysdeps/x86_64/multiarch/ifunc-evex.h
+++ b/sysdeps/x86_64/multiarch/ifunc-evex.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selection optimized with EVEX.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index 0bbb71b..c2dcadd 100644
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. x86-64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -922,7 +922,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
(CPU_FEATURE_USABLE (AVX2)
&& CPU_FEATURE_USABLE (BMI2)),
__wcsncpy_avx2)
- X86_IFUNC_IMPL_ADD_V2 (array, i, wcpncpy,
+ X86_IFUNC_IMPL_ADD_V2 (array, i, wcsncpy,
1,
__wcsncpy_generic))
@@ -952,7 +952,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
(CPU_FEATURE_USABLE (AVX2)
&& CPU_FEATURE_USABLE (BMI2)),
__wcpncpy_avx2)
- X86_IFUNC_IMPL_ADD_V2 (array, i, wcsncpy,
+ X86_IFUNC_IMPL_ADD_V2 (array, i, wcpncpy,
1,
__wcpncpy_generic))
diff --git a/sysdeps/x86_64/multiarch/ifunc-memcmp.h b/sysdeps/x86_64/multiarch/ifunc-memcmp.h
index e1c3fde..fdf74b6 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memcmp.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memcmp.h
@@ -1,6 +1,6 @@
/* Common definition for memcmp/wmemcmp ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-memcmpeq.h b/sysdeps/x86_64/multiarch/ifunc-memcmpeq.h
index b705f6b..6a7cca6 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memcmpeq.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memcmpeq.h
@@ -1,6 +1,6 @@
/* Common definition for __memcmpeq ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-memmove.h b/sysdeps/x86_64/multiarch/ifunc-memmove.h
index abc568b..de0ac73 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memmove.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memcpy, mempcpy and memmove implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-memset.h b/sysdeps/x86_64/multiarch/ifunc-memset.h
index 7a637ef..9f265fe 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memset.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset/memset_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -46,6 +46,13 @@ extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2_unaligned)
extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2_unaligned_erms)
attribute_hidden;
+static inline int
+prefer_erms_nt_impl (const struct cpu_features *cpu_features)
+{
+ return CPU_FEATURE_USABLE_P (cpu_features, ERMS)
+ || !CPU_FEATURES_ARCH_P (cpu_features, Avoid_Non_Temporal_Memset);
+}
+
static inline void *
IFUNC_SELECTOR (void)
{
@@ -61,7 +68,7 @@ IFUNC_SELECTOR (void)
&& X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX512BW)
&& X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, BMI2))
{
- if (CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ if (prefer_erms_nt_impl (cpu_features))
return OPTIMIZE (avx512_unaligned_erms);
return OPTIMIZE (avx512_unaligned);
@@ -76,7 +83,7 @@ IFUNC_SELECTOR (void)
&& X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX512BW)
&& X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, BMI2))
{
- if (CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ if (prefer_erms_nt_impl (cpu_features))
return OPTIMIZE (evex_unaligned_erms);
return OPTIMIZE (evex_unaligned);
@@ -84,7 +91,7 @@ IFUNC_SELECTOR (void)
if (CPU_FEATURE_USABLE_P (cpu_features, RTM))
{
- if (CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ if (prefer_erms_nt_impl (cpu_features))
return OPTIMIZE (avx2_unaligned_erms_rtm);
return OPTIMIZE (avx2_unaligned_rtm);
@@ -93,14 +100,15 @@ IFUNC_SELECTOR (void)
if (X86_ISA_CPU_FEATURES_ARCH_P (cpu_features,
Prefer_No_VZEROUPPER, !))
{
- if (CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ if (prefer_erms_nt_impl (cpu_features))
return OPTIMIZE (avx2_unaligned_erms);
return OPTIMIZE (avx2_unaligned);
}
}
- if (CPU_FEATURE_USABLE_P (cpu_features, ERMS))
+ if (CPU_FEATURE_USABLE_P (cpu_features, ERMS)
+ || !CPU_FEATURES_ARCH_P (cpu_features, Avoid_Non_Temporal_Memset))
return OPTIMIZE (sse2_unaligned_erms);
return OPTIMIZE (sse2_unaligned);
diff --git a/sysdeps/x86_64/multiarch/ifunc-sse4_2.h b/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
index 26eaca5..1cea833 100644
--- a/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
+++ b/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and SSE4.2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
index e16cf45..d9b217d 100644
--- a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
+++ b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
@@ -1,6 +1,6 @@
/* Common definition for strcasecmp family ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-strcpy.h b/sysdeps/x86_64/multiarch/ifunc-strcpy.h
index a1dd68d..c1bb546 100644
--- a/sysdeps/x86_64/multiarch/ifunc-strcpy.h
+++ b/sysdeps/x86_64/multiarch/ifunc-strcpy.h
@@ -1,7 +1,7 @@
/* Common definition for ifunc selections optimized with SSE2, unaligned
SSE2 and SSSE3.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-strncpy.h b/sysdeps/x86_64/multiarch/ifunc-strncpy.h
index 249c1cf..fa0a2bc 100644
--- a/sysdeps/x86_64/multiarch/ifunc-strncpy.h
+++ b/sysdeps/x86_64/multiarch/ifunc-strncpy.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc st{r|p}n{cpy|cat}
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-wcs.h b/sysdeps/x86_64/multiarch/ifunc-wcs.h
index 6b9d999..c644cf3 100644
--- a/sysdeps/x86_64/multiarch/ifunc-wcs.h
+++ b/sysdeps/x86_64/multiarch/ifunc-wcs.h
@@ -2,7 +2,7 @@
string copy functions.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-wcslen.h b/sysdeps/x86_64/multiarch/ifunc-wcslen.h
index ce20b00..5a5f6ce 100644
--- a/sysdeps/x86_64/multiarch/ifunc-wcslen.h
+++ b/sysdeps/x86_64/multiarch/ifunc-wcslen.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections for wcslen and wcsnlen
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/ifunc-wmemset.h b/sysdeps/x86_64/multiarch/ifunc-wmemset.h
index 6e20d9d..f95cca6 100644
--- a/sysdeps/x86_64/multiarch/ifunc-wmemset.h
+++ b/sysdeps/x86_64/multiarch/ifunc-wmemset.h
@@ -1,5 +1,5 @@
/* Common definition for wmemset/wmemset_chk ifunc selections.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memchr-avx2.S b/sysdeps/x86_64/multiarch/memchr-avx2.S
index 9a10824..e209559 100644
--- a/sysdeps/x86_64/multiarch/memchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/memchr-avx2.S
@@ -1,5 +1,5 @@
/* memchr/wmemchr optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memchr-evex-base.S b/sysdeps/x86_64/multiarch/memchr-evex-base.S
index 6a609b8..d263ba6 100644
--- a/sysdeps/x86_64/multiarch/memchr-evex-base.S
+++ b/sysdeps/x86_64/multiarch/memchr-evex-base.S
@@ -1,5 +1,5 @@
/* Placeholder function, not used by any processor at the moment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memchr-evex.S b/sysdeps/x86_64/multiarch/memchr-evex.S
index 04c3369..29ebbe7 100644
--- a/sysdeps/x86_64/multiarch/memchr-evex.S
+++ b/sysdeps/x86_64/multiarch/memchr-evex.S
@@ -1,5 +1,5 @@
/* memchr/wmemchr optimized with 256-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memchr-sse2.S b/sysdeps/x86_64/multiarch/memchr-sse2.S
index 7183051..af16f91 100644
--- a/sysdeps/x86_64/multiarch/memchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/memchr-sse2.S
@@ -1,5 +1,5 @@
/* memchr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memchr.c b/sysdeps/x86_64/multiarch/memchr.c
index 2c7754e..1f93257 100644
--- a/sysdeps/x86_64/multiarch/memchr.c
+++ b/sysdeps/x86_64/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
index 22d5b2d..3e50366 100644
--- a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
+++ b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
@@ -1,5 +1,5 @@
/* memcmp/wmemcmp optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmp-evex-movbe.S b/sysdeps/x86_64/multiarch/memcmp-evex-movbe.S
index 6e8b2cc..1c2cac4 100644
--- a/sysdeps/x86_64/multiarch/memcmp-evex-movbe.S
+++ b/sysdeps/x86_64/multiarch/memcmp-evex-movbe.S
@@ -1,5 +1,5 @@
/* memcmp/wmemcmp optimized with 256-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmp-sse2.S b/sysdeps/x86_64/multiarch/memcmp-sse2.S
index c6a112b..a82889c 100644
--- a/sysdeps/x86_64/multiarch/memcmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/memcmp-sse2.S
@@ -1,5 +1,5 @@
/* memcmp with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmp.c b/sysdeps/x86_64/multiarch/memcmp.c
index d897567..b33b07d 100644
--- a/sysdeps/x86_64/multiarch/memcmp.c
+++ b/sysdeps/x86_64/multiarch/memcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmpeq-avx2.S b/sysdeps/x86_64/multiarch/memcmpeq-avx2.S
index 7b74269..f2eddf5 100644
--- a/sysdeps/x86_64/multiarch/memcmpeq-avx2.S
+++ b/sysdeps/x86_64/multiarch/memcmpeq-avx2.S
@@ -1,5 +1,5 @@
/* __memcmpeq optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmpeq-evex.S b/sysdeps/x86_64/multiarch/memcmpeq-evex.S
index e06ca50..c30f3a0 100644
--- a/sysdeps/x86_64/multiarch/memcmpeq-evex.S
+++ b/sysdeps/x86_64/multiarch/memcmpeq-evex.S
@@ -1,5 +1,5 @@
/* __memcmpeq optimized with EVEX.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmpeq-sse2.S b/sysdeps/x86_64/multiarch/memcmpeq-sse2.S
index 55e6e20..a7609ee 100644
--- a/sysdeps/x86_64/multiarch/memcmpeq-sse2.S
+++ b/sysdeps/x86_64/multiarch/memcmpeq-sse2.S
@@ -1,5 +1,5 @@
/* __memcmpeq optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcmpeq.c b/sysdeps/x86_64/multiarch/memcmpeq.c
index 7f04a5d..1e1b9c5 100644
--- a/sysdeps/x86_64/multiarch/memcmpeq.c
+++ b/sysdeps/x86_64/multiarch/memcmpeq.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memcmpeq.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcpy.c b/sysdeps/x86_64/multiarch/memcpy.c
index 188e147..058f773 100644
--- a/sysdeps/x86_64/multiarch/memcpy.c
+++ b/sysdeps/x86_64/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S b/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
index d0fb38e..dbc05b7 100644
--- a/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memcpy_chk for x86-64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memcpy_chk.c b/sysdeps/x86_64/multiarch/memcpy_chk.c
index 5d20b41..8b327d7 100644
--- a/sysdeps/x86_64/multiarch/memcpy_chk.c
+++ b/sysdeps/x86_64/multiarch/memcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
index 1934e50..1184aa7 100644
--- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
+++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
@@ -1,5 +1,5 @@
/* memmove/memcpy/mempcpy optimized with AVX512 for KNL hardware.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-erms.S b/sysdeps/x86_64/multiarch/memmove-erms.S
index 5a22dc8..165b18e 100644
--- a/sysdeps/x86_64/multiarch/memmove-erms.S
+++ b/sysdeps/x86_64/multiarch/memmove-erms.S
@@ -1,5 +1,5 @@
/* memcpy/mempcpy/memmove implement with rep movsb
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-shlib-compat.h b/sysdeps/x86_64/multiarch/memmove-shlib-compat.h
index 3889324..7ed3909 100644
--- a/sysdeps/x86_64/multiarch/memmove-shlib-compat.h
+++ b/sysdeps/x86_64/multiarch/memmove-shlib-compat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S b/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
index c079e4d..aeaa3bd 100644
--- a/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memmove with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-ssse3.S b/sysdeps/x86_64/multiarch/memmove-ssse3.S
index 01008fd..59cea0e 100644
--- a/sysdeps/x86_64/multiarch/memmove-ssse3.S
+++ b/sysdeps/x86_64/multiarch/memmove-ssse3.S
@@ -1,6 +1,6 @@
/* memmove/memcpy/mempcpy optimized for aligned access with SSSE3.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
index 838f8f8..5cd8a62 100644
--- a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memmove/memcpy/mempcpy with unaligned load/store and rep movsb
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove.c b/sysdeps/x86_64/multiarch/memmove.c
index 220f0c2..0c3e65b 100644
--- a/sysdeps/x86_64/multiarch/memmove.c
+++ b/sysdeps/x86_64/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S b/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
index 4b0c250..1025486 100644
--- a/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memmove_chk for x86-64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memmove_chk.c b/sysdeps/x86_64/multiarch/memmove_chk.c
index 3fe2e3c..5dd3c04 100644
--- a/sysdeps/x86_64/multiarch/memmove_chk.c
+++ b/sysdeps/x86_64/multiarch/memmove_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memmove_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/mempcpy.c b/sysdeps/x86_64/multiarch/mempcpy.c
index c8bd67d..ba5297e 100644
--- a/sysdeps/x86_64/multiarch/mempcpy.c
+++ b/sysdeps/x86_64/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S b/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
index ebd0c5f..5d79f3e 100644
--- a/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of mempcpy_chk for x86-64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/mempcpy_chk.c b/sysdeps/x86_64/multiarch/mempcpy_chk.c
index 7e26276..dc1b03e 100644
--- a/sysdeps/x86_64/multiarch/mempcpy_chk.c
+++ b/sysdeps/x86_64/multiarch/mempcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __mempcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memrchr-avx2.S b/sysdeps/x86_64/multiarch/memrchr-avx2.S
index 183b747..06cf958 100644
--- a/sysdeps/x86_64/multiarch/memrchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/memrchr-avx2.S
@@ -1,5 +1,5 @@
/* memrchr optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memrchr-evex.S b/sysdeps/x86_64/multiarch/memrchr-evex.S
index 381358f..e0ffa09 100644
--- a/sysdeps/x86_64/multiarch/memrchr-evex.S
+++ b/sysdeps/x86_64/multiarch/memrchr-evex.S
@@ -1,5 +1,5 @@
/* memrchr optimized with 256-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memrchr-sse2.S b/sysdeps/x86_64/multiarch/memrchr-sse2.S
index f8dd3c2..b5a6459 100644
--- a/sysdeps/x86_64/multiarch/memrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/memrchr-sse2.S
@@ -1,5 +1,5 @@
/* memrchr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memrchr.c b/sysdeps/x86_64/multiarch/memrchr.c
index bb5e7b9..0e93bdc 100644
--- a/sysdeps/x86_64/multiarch/memrchr.c
+++ b/sysdeps/x86_64/multiarch/memrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memrchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
index 729902a..6a2b827 100644
--- a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
+++ b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
@@ -1,5 +1,5 @@
/* memset optimized with AVX512 for KNL hardware.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset-erms.S b/sysdeps/x86_64/multiarch/memset-erms.S
index 48fe1a1..8d7c9fa 100644
--- a/sysdeps/x86_64/multiarch/memset-erms.S
+++ b/sysdeps/x86_64/multiarch/memset-erms.S
@@ -1,5 +1,5 @@
/* memset implement with rep stosb
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S b/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
index afbf7ea..221aa68 100644
--- a/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
@@ -1,6 +1,6 @@
/* memset with SSE2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
index 88bf08e..a4be86c 100644
--- a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memset with unaligned store and rep stosb
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset.c b/sysdeps/x86_64/multiarch/memset.c
index fb53677..7c64f00 100644
--- a/sysdeps/x86_64/multiarch/memset.c
+++ b/sysdeps/x86_64/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset_chk-nonshared.S b/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
index 1c9dded..a3c7af8 100644
--- a/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memcpy_chk for x86-64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/memset_chk.c b/sysdeps/x86_64/multiarch/memset_chk.c
index 8afe5c9..0d1c663 100644
--- a/sysdeps/x86_64/multiarch/memset_chk.c
+++ b/sysdeps/x86_64/multiarch/memset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memset_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rawmemchr-evex.S b/sysdeps/x86_64/multiarch/rawmemchr-evex.S
index 64e706b..5626df4 100644
--- a/sysdeps/x86_64/multiarch/rawmemchr-evex.S
+++ b/sysdeps/x86_64/multiarch/rawmemchr-evex.S
@@ -1,5 +1,5 @@
/* rawmemchr optimized with 256-bit EVEX instructions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rawmemchr-sse2.S b/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
index fa7625f..37c9b0d 100644
--- a/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
@@ -1,5 +1,5 @@
/* rawmemchr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rawmemchr.c b/sysdeps/x86_64/multiarch/rawmemchr.c
index 040ff05..a8df9c1 100644
--- a/sysdeps/x86_64/multiarch/rawmemchr.c
+++ b/sysdeps/x86_64/multiarch/rawmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of rawmemchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/reg-macros.h b/sysdeps/x86_64/multiarch/reg-macros.h
index d95da00..183b7e1 100644
--- a/sysdeps/x86_64/multiarch/reg-macros.h
+++ b/sysdeps/x86_64/multiarch/reg-macros.h
@@ -1,6 +1,6 @@
/* This file was generated by: gen-reg-macros.py.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-memchr.S b/sysdeps/x86_64/multiarch/rtld-memchr.S
index a4a736f..8154023 100644
--- a/sysdeps/x86_64/multiarch/rtld-memchr.S
+++ b/sysdeps/x86_64/multiarch/rtld-memchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-memcmp.S b/sysdeps/x86_64/multiarch/rtld-memcmp.S
index 991687b..426bb84 100644
--- a/sysdeps/x86_64/multiarch/rtld-memcmp.S
+++ b/sysdeps/x86_64/multiarch/rtld-memcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-memcmpeq.S b/sysdeps/x86_64/multiarch/rtld-memcmpeq.S
index c3c914f..fc44dc5 100644
--- a/sysdeps/x86_64/multiarch/rtld-memcmpeq.S
+++ b/sysdeps/x86_64/multiarch/rtld-memcmpeq.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-memmove.S b/sysdeps/x86_64/multiarch/rtld-memmove.S
index fd09a01..7a0a272 100644
--- a/sysdeps/x86_64/multiarch/rtld-memmove.S
+++ b/sysdeps/x86_64/multiarch/rtld-memmove.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-memset.S b/sysdeps/x86_64/multiarch/rtld-memset.S
index f3650bb..4d90bfa 100644
--- a/sysdeps/x86_64/multiarch/rtld-memset.S
+++ b/sysdeps/x86_64/multiarch/rtld-memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-rawmemchr.S b/sysdeps/x86_64/multiarch/rtld-rawmemchr.S
index e56bf66..ff7c495 100644
--- a/sysdeps/x86_64/multiarch/rtld-rawmemchr.S
+++ b/sysdeps/x86_64/multiarch/rtld-rawmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-stpcpy.S b/sysdeps/x86_64/multiarch/rtld-stpcpy.S
index fb576aa..9623c0a 100644
--- a/sysdeps/x86_64/multiarch/rtld-stpcpy.S
+++ b/sysdeps/x86_64/multiarch/rtld-stpcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-stpncpy.S b/sysdeps/x86_64/multiarch/rtld-stpncpy.S
index cf88f08..cf54a9b 100644
--- a/sysdeps/x86_64/multiarch/rtld-stpncpy.S
+++ b/sysdeps/x86_64/multiarch/rtld-stpncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strchr.S b/sysdeps/x86_64/multiarch/rtld-strchr.S
index 2bc579c..10545cb 100644
--- a/sysdeps/x86_64/multiarch/rtld-strchr.S
+++ b/sysdeps/x86_64/multiarch/rtld-strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strchrnul.S b/sysdeps/x86_64/multiarch/rtld-strchrnul.S
index 9d7aa84..e035789 100644
--- a/sysdeps/x86_64/multiarch/rtld-strchrnul.S
+++ b/sysdeps/x86_64/multiarch/rtld-strchrnul.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strcmp.S b/sysdeps/x86_64/multiarch/rtld-strcmp.S
index ab8041a..e8555bb 100644
--- a/sysdeps/x86_64/multiarch/rtld-strcmp.S
+++ b/sysdeps/x86_64/multiarch/rtld-strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strcpy.S b/sysdeps/x86_64/multiarch/rtld-strcpy.S
index db5c490..b94e3fd 100644
--- a/sysdeps/x86_64/multiarch/rtld-strcpy.S
+++ b/sysdeps/x86_64/multiarch/rtld-strcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strcspn.c b/sysdeps/x86_64/multiarch/rtld-strcspn.c
index eb45cf3..636c306 100644
--- a/sysdeps/x86_64/multiarch/rtld-strcspn.c
+++ b/sysdeps/x86_64/multiarch/rtld-strcspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strlen.S b/sysdeps/x86_64/multiarch/rtld-strlen.S
index 481b175..2bb4883 100644
--- a/sysdeps/x86_64/multiarch/rtld-strlen.S
+++ b/sysdeps/x86_64/multiarch/rtld-strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strncmp.S b/sysdeps/x86_64/multiarch/rtld-strncmp.S
index dd7c148..cfbdf28 100644
--- a/sysdeps/x86_64/multiarch/rtld-strncmp.S
+++ b/sysdeps/x86_64/multiarch/rtld-strncmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strncpy.S b/sysdeps/x86_64/multiarch/rtld-strncpy.S
index 69715c5..324887a 100644
--- a/sysdeps/x86_64/multiarch/rtld-strncpy.S
+++ b/sysdeps/x86_64/multiarch/rtld-strncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/rtld-strnlen.S b/sysdeps/x86_64/multiarch/rtld-strnlen.S
index 83b6d29..8193514 100644
--- a/sysdeps/x86_64/multiarch/rtld-strnlen.S
+++ b/sysdeps/x86_64/multiarch/rtld-strnlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/scripts/gen-reg-macros.py b/sysdeps/x86_64/multiarch/scripts/gen-reg-macros.py
index 4338372..5ea1f03 100644
--- a/sysdeps/x86_64/multiarch/scripts/gen-reg-macros.py
+++ b/sysdeps/x86_64/multiarch/scripts/gen-reg-macros.py
@@ -1,5 +1,5 @@
#!/usr/bin/python3
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/stpcpy.c b/sysdeps/x86_64/multiarch/stpcpy.c
index 97818cd..df027e3 100644
--- a/sysdeps/x86_64/multiarch/stpcpy.c
+++ b/sysdeps/x86_64/multiarch/stpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/stpncpy.c b/sysdeps/x86_64/multiarch/stpncpy.c
index a987ffe..fd3ea3c 100644
--- a/sysdeps/x86_64/multiarch/stpncpy.c
+++ b/sysdeps/x86_64/multiarch/stpncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp.c b/sysdeps/x86_64/multiarch/strcasecmp.c
index 72bd28b..71db5d6 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp.c
+++ b/sysdeps/x86_64/multiarch/strcasecmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-avx2.S b/sysdeps/x86_64/multiarch/strcasecmp_l-avx2.S
index 939c7c9..29d63a3 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-avx2.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-avx2.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-evex.S b/sysdeps/x86_64/multiarch/strcasecmp_l-evex.S
index 0ed8220..a94ee58 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-evex.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-evex.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with EVEX.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S b/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
index 772b68d..a3f1867 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S b/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
index 169b4c1..88a4969 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with SSE4.2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l.c b/sysdeps/x86_64/multiarch/strcasecmp_l.c
index 40ad989..30b8272 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l.c
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat-avx2.S b/sysdeps/x86_64/multiarch/strcat-avx2.S
index 9caf4f9..ec868ca 100644
--- a/sysdeps/x86_64/multiarch/strcat-avx2.S
+++ b/sysdeps/x86_64/multiarch/strcat-avx2.S
@@ -1,5 +1,5 @@
/* strcat with AVX2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
index 1da45e3..ff5dc08 100644
--- a/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcat with SSE2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat-sse2.S b/sysdeps/x86_64/multiarch/strcat-sse2.S
index 966768a..eab115d 100644
--- a/sysdeps/x86_64/multiarch/strcat-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcat-sse2.S
@@ -1,6 +1,6 @@
/* strcat(dest, src) -- Append SRC on the end of DEST.
Optimized for x86-64.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat-strlen-avx2.h.S b/sysdeps/x86_64/multiarch/strcat-strlen-avx2.h.S
index 1c88bb3..9afe682 100644
--- a/sysdeps/x86_64/multiarch/strcat-strlen-avx2.h.S
+++ b/sysdeps/x86_64/multiarch/strcat-strlen-avx2.h.S
@@ -1,5 +1,5 @@
/* strlen used for beginning of str{n}cat using AVX2.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat-strlen-evex.h.S b/sysdeps/x86_64/multiarch/strcat-strlen-evex.h.S
index 0ad0fe8..00d5a9f 100644
--- a/sysdeps/x86_64/multiarch/strcat-strlen-evex.h.S
+++ b/sysdeps/x86_64/multiarch/strcat-strlen-evex.h.S
@@ -1,5 +1,5 @@
/* strlen used for beginning of str{n}cat using EVEX 256/512.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcat.c b/sysdeps/x86_64/multiarch/strcat.c
index 259d742..6d2ec90 100644
--- a/sysdeps/x86_64/multiarch/strcat.c
+++ b/sysdeps/x86_64/multiarch/strcat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchr-avx2.S b/sysdeps/x86_64/multiarch/strchr-avx2.S
index e8909bb..a5f36e1 100644
--- a/sysdeps/x86_64/multiarch/strchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/strchr-avx2.S
@@ -1,5 +1,5 @@
/* strchr/strchrnul optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchr-evex-base.S b/sysdeps/x86_64/multiarch/strchr-evex-base.S
index 04e2c0e..b5287ba 100644
--- a/sysdeps/x86_64/multiarch/strchr-evex-base.S
+++ b/sysdeps/x86_64/multiarch/strchr-evex-base.S
@@ -1,5 +1,5 @@
/* Placeholder function, not used by any processor at the moment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -124,13 +124,13 @@ L(page_cross):
VPCMPNE %VMM(1), %VMM(0), %k1
VPTEST %VMM(1), %VMM(1), %k0{%k1}
KMOV %k0, %VRAX
-# ifdef USE_AS_WCSCHR
+ sar %cl, %VRAX
+#ifdef USE_AS_WCSCHR
sub $VEC_MATCH_MASK, %VRAX
-# else
+#else
inc %VRAX
-# endif
+#endif
/* Ignore number of character for alignment adjustment. */
- shr %cl, %VRAX
jz L(align_more)
bsf %VRAX, %VRAX
diff --git a/sysdeps/x86_64/multiarch/strchr-evex.S b/sysdeps/x86_64/multiarch/strchr-evex.S
index 16c6431..5e6f464 100644
--- a/sysdeps/x86_64/multiarch/strchr-evex.S
+++ b/sysdeps/x86_64/multiarch/strchr-evex.S
@@ -1,5 +1,5 @@
/* strchr/strchrnul optimized with 256-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S b/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
index 36cc691..b152963 100644
--- a/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
+++ b/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
@@ -1,5 +1,5 @@
/* strchr with SSE2 without bsf
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchr-sse2.S b/sysdeps/x86_64/multiarch/strchr-sse2.S
index 9ce6945..8b3e34e 100644
--- a/sysdeps/x86_64/multiarch/strchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/strchr-sse2.S
@@ -1,5 +1,5 @@
/* strchr optimized with SSE2.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchr.c b/sysdeps/x86_64/multiarch/strchr.c
index 4b15d53..59ceacd 100644
--- a/sysdeps/x86_64/multiarch/strchr.c
+++ b/sysdeps/x86_64/multiarch/strchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchrnul-sse2.S b/sysdeps/x86_64/multiarch/strchrnul-sse2.S
index 1fcb79b..e130ad3 100644
--- a/sysdeps/x86_64/multiarch/strchrnul-sse2.S
+++ b/sysdeps/x86_64/multiarch/strchrnul-sse2.S
@@ -1,5 +1,5 @@
/* strchrnul optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strchrnul.c b/sysdeps/x86_64/multiarch/strchrnul.c
index 6638199..9e7f1be 100644
--- a/sysdeps/x86_64/multiarch/strchrnul.c
+++ b/sysdeps/x86_64/multiarch/strchrnul.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchrnul.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcmp-avx2.S b/sysdeps/x86_64/multiarch/strcmp-avx2.S
index 5bc1d90..4b46a8d 100644
--- a/sysdeps/x86_64/multiarch/strcmp-avx2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-avx2.S
@@ -1,5 +1,5 @@
/* strcmp/wcscmp/strncmp/wcsncmp optimized with AVX2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcmp-evex.S b/sysdeps/x86_64/multiarch/strcmp-evex.S
index 06730ab..6316bb9 100644
--- a/sysdeps/x86_64/multiarch/strcmp-evex.S
+++ b/sysdeps/x86_64/multiarch/strcmp-evex.S
@@ -1,5 +1,5 @@
/* strcmp/wcscmp/strncmp/wcsncmp optimized with 256-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -209,7 +209,9 @@
returned. */
.section SECTION(.text), "ax", @progbits
- .align 16
+ /* Align 64 bytes here. This is to get the L(loop) block ideally
+ aligned for the DSB. */
+ .align 64
.type STRCMP, @function
.globl STRCMP
# ifdef USE_AS_STRCASECMP_L
@@ -509,9 +511,7 @@ L(ret4):
ret
# endif
- /* 32 byte align here ensures the main loop is ideally aligned
- for DSB. */
- .p2align 5
+ .p2align 4,, 4
L(more_3x_vec):
/* Safe to compare 4x vectors. */
VMOVU (VEC_SIZE)(%rdi), %VMM(0)
@@ -1426,10 +1426,9 @@ L(less_32_till_page):
L(ret_zero_page_cross_slow_case0):
xorl %eax, %eax
ret
-# endif
-
-
+# else
.p2align 4,, 10
+# endif
L(less_16_till_page):
cmpl $((VEC_SIZE - 8) / SIZE_OF_CHAR), %eax
ja L(less_8_till_page)
@@ -1482,8 +1481,12 @@ L(less_16_till_page):
# endif
jmp L(prepare_loop_aligned)
-
-
+# ifndef USE_AS_STRNCMP
+ /* Fits in aligning bytes. */
+L(ret_zero_4_loop):
+ xorl %eax, %eax
+ ret
+# endif
.p2align 4,, 10
L(less_8_till_page):
@@ -1554,6 +1557,7 @@ L(ret_less_8_wcs):
# ifdef USE_AS_STRNCMP
.p2align 4,, 2
+L(ret_zero_4_loop):
L(ret_zero_page_cross_slow_case1):
xorl %eax, %eax
ret
@@ -1586,10 +1590,6 @@ L(less_4_loop):
subq $-(CHAR_PER_VEC * 4), %rdx
# endif
jmp L(prepare_loop_aligned)
-
-L(ret_zero_4_loop):
- xorl %eax, %eax
- ret
L(ret_less_4_loop):
xorl %r8d, %eax
subl %r8d, %eax
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
index 9696513..8287df9 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcmp with unaligned loads
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse2.S b/sysdeps/x86_64/multiarch/strcmp-sse2.S
index d82b08c..86a890e 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
index 4e98da0..1b746c4 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE4.2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcmp.c b/sysdeps/x86_64/multiarch/strcmp.c
index 1ba308e..451a2ce 100644
--- a/sysdeps/x86_64/multiarch/strcmp.c
+++ b/sysdeps/x86_64/multiarch/strcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcpy-avx2.S b/sysdeps/x86_64/multiarch/strcpy-avx2.S
index aaa45ef..425eab3 100644
--- a/sysdeps/x86_64/multiarch/strcpy-avx2.S
+++ b/sysdeps/x86_64/multiarch/strcpy-avx2.S
@@ -1,5 +1,5 @@
/* strcpy with AVX2
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcpy-evex.S b/sysdeps/x86_64/multiarch/strcpy-evex.S
index 4f5bd3b..20fc85d 100644
--- a/sysdeps/x86_64/multiarch/strcpy-evex.S
+++ b/sysdeps/x86_64/multiarch/strcpy-evex.S
@@ -1,5 +1,5 @@
/* {wcs|wcp|str|stp}cpy with 256/512-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,7 +45,7 @@
# define VPCMPEQ vpcmpeqd
# define CHAR_SIZE 4
-# define REP_MOVS rep movsd
+# define REP_MOVS rep movsl
# define USE_WIDE_CHAR
# else
diff --git a/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
index e11adae..8bf9a1b 100644
--- a/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcpy with SSE2 and unaligned load
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcpy-sse2.S b/sysdeps/x86_64/multiarch/strcpy-sse2.S
index 70f3fb5..2cb1945 100644
--- a/sysdeps/x86_64/multiarch/strcpy-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcpy-sse2.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy implementation for x86-64.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcpy.c b/sysdeps/x86_64/multiarch/strcpy.c
index fcdb058..efc0729 100644
--- a/sysdeps/x86_64/multiarch/strcpy.c
+++ b/sysdeps/x86_64/multiarch/strcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcspn-generic.c b/sysdeps/x86_64/multiarch/strcspn-generic.c
index 3ad170f..c99cdb0 100644
--- a/sysdeps/x86_64/multiarch/strcspn-generic.c
+++ b/sysdeps/x86_64/multiarch/strcspn-generic.c
@@ -1,5 +1,5 @@
/* strcspn.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcspn-sse4.c b/sysdeps/x86_64/multiarch/strcspn-sse4.c
index 6e70391..c2ed156 100644
--- a/sysdeps/x86_64/multiarch/strcspn-sse4.c
+++ b/sysdeps/x86_64/multiarch/strcspn-sse4.c
@@ -1,5 +1,5 @@
/* strcspn with SSE4.2 intrinsics
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strcspn.c b/sysdeps/x86_64/multiarch/strcspn.c
index 412f72c..83636e8 100644
--- a/sysdeps/x86_64/multiarch/strcspn.c
+++ b/sysdeps/x86_64/multiarch/strcspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strlen-avx2.S b/sysdeps/x86_64/multiarch/strlen-avx2.S
index 36ecdfd..856b933 100644
--- a/sysdeps/x86_64/multiarch/strlen-avx2.S
+++ b/sysdeps/x86_64/multiarch/strlen-avx2.S
@@ -1,5 +1,5 @@
/* strlen/strnlen/wcslen/wcsnlen optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strlen-evex-base.S b/sysdeps/x86_64/multiarch/strlen-evex-base.S
index e7ad6b4..8055cd0 100644
--- a/sysdeps/x86_64/multiarch/strlen-evex-base.S
+++ b/sysdeps/x86_64/multiarch/strlen-evex-base.S
@@ -1,5 +1,5 @@
/* strlen/wcslen optimized with 256/512-bit EVEX instructions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strlen-sse2.S b/sysdeps/x86_64/multiarch/strlen-sse2.S
index d5e318b..5a70c7e 100644
--- a/sysdeps/x86_64/multiarch/strlen-sse2.S
+++ b/sysdeps/x86_64/multiarch/strlen-sse2.S
@@ -1,5 +1,5 @@
/* strlen optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strlen.c b/sysdeps/x86_64/multiarch/strlen.c
index a362c2b..472e44f 100644
--- a/sysdeps/x86_64/multiarch/strlen.c
+++ b/sysdeps/x86_64/multiarch/strlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase.c b/sysdeps/x86_64/multiarch/strncase.c
index a471f9a..6d81efa 100644
--- a/sysdeps/x86_64/multiarch/strncase.c
+++ b/sysdeps/x86_64/multiarch/strncase.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase_l-avx2.S b/sysdeps/x86_64/multiarch/strncase_l-avx2.S
index abea800..e4d2dc2 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-avx2.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-avx2.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase_l-evex.S b/sysdeps/x86_64/multiarch/strncase_l-evex.S
index ef137f4..7e8fb40 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-evex.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-evex.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with EVEX.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase_l-sse2.S b/sysdeps/x86_64/multiarch/strncase_l-sse2.S
index 7ac2546..75e282f 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-sse2.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-sse2.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S b/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
index ea05698..ccf73b0 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with SSE4.2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncase_l.c b/sysdeps/x86_64/multiarch/strncase_l.c
index 810accd..b95aa57 100644
--- a/sysdeps/x86_64/multiarch/strncase_l.c
+++ b/sysdeps/x86_64/multiarch/strncase_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncat-avx2.S b/sysdeps/x86_64/multiarch/strncat-avx2.S
index 822926b..41edaa5 100644
--- a/sysdeps/x86_64/multiarch/strncat-avx2.S
+++ b/sysdeps/x86_64/multiarch/strncat-avx2.S
@@ -1,5 +1,5 @@
/* strncat with AVX2
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncat-evex.S b/sysdeps/x86_64/multiarch/strncat-evex.S
index e6717bd..55804f4 100644
--- a/sysdeps/x86_64/multiarch/strncat-evex.S
+++ b/sysdeps/x86_64/multiarch/strncat-evex.S
@@ -1,5 +1,5 @@
/* {wcs|str}ncat with 256/512-bit EVEX.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,7 +44,7 @@
# define VPCMPEQ vpcmpeqd
# define CHAR_SIZE 4
-# define REP_MOVS rep movsd
+# define REP_MOVS rep movsl
# define VMASK_REG VR10
# define FIND_FIRST_ONE(src, dst) movl $CHAR_PER_VEC, %dst; bsf %src, %dst
@@ -514,7 +514,7 @@ L(page_cross_small):
cmova %edx, %ecx
# ifdef USE_AS_WCSCPY
- rep movsd
+ rep movsl
# else
rep movsb
# endif
diff --git a/sysdeps/x86_64/multiarch/strncat.c b/sysdeps/x86_64/multiarch/strncat.c
index bdc08f3..6768b05 100644
--- a/sysdeps/x86_64/multiarch/strncat.c
+++ b/sysdeps/x86_64/multiarch/strncat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncmp-sse2.S b/sysdeps/x86_64/multiarch/strncmp-sse2.S
index b7cadd9..8a0e87e 100644
--- a/sysdeps/x86_64/multiarch/strncmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/strncmp-sse2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncmp-sse4_2.S b/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
index 257ec62..ab1dfd7 100644
--- a/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
@@ -1,5 +1,5 @@
/* strncmp optimized with SSE4.2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncmp.c b/sysdeps/x86_64/multiarch/strncmp.c
index 6e32625..d3c36d4 100644
--- a/sysdeps/x86_64/multiarch/strncmp.c
+++ b/sysdeps/x86_64/multiarch/strncmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncpy-avx2.S b/sysdeps/x86_64/multiarch/strncpy-avx2.S
index 1e0000f..9e2b1c1 100644
--- a/sysdeps/x86_64/multiarch/strncpy-avx2.S
+++ b/sysdeps/x86_64/multiarch/strncpy-avx2.S
@@ -1,5 +1,5 @@
/* strncpy with AVX2
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncpy-evex.S b/sysdeps/x86_64/multiarch/strncpy-evex.S
index d4053bb..a7635ab 100644
--- a/sysdeps/x86_64/multiarch/strncpy-evex.S
+++ b/sysdeps/x86_64/multiarch/strncpy-evex.S
@@ -1,5 +1,5 @@
/* {wcs|wcp|str|stp}ncpy with 256/512-bit EVEX instructions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,7 +43,7 @@
# define VPTEST vptestmd
# define CHAR_SIZE 4
-# define REP_MOVS rep movsd
+# define REP_MOVS rep movsl
# define REP_STOS rep stosl
# define USE_WIDE_CHAR
diff --git a/sysdeps/x86_64/multiarch/strncpy-or-cat-overflow-def.h b/sysdeps/x86_64/multiarch/strncpy-or-cat-overflow-def.h
index a734d40..1ecd29d 100644
--- a/sysdeps/x86_64/multiarch/strncpy-or-cat-overflow-def.h
+++ b/sysdeps/x86_64/multiarch/strncpy-or-cat-overflow-def.h
@@ -2,7 +2,7 @@
{wc|st}{p|r|s}n{cat|cpy}
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strncpy.c b/sysdeps/x86_64/multiarch/strncpy.c
index 07a33d4..bdfda8f 100644
--- a/sysdeps/x86_64/multiarch/strncpy.c
+++ b/sysdeps/x86_64/multiarch/strncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strnlen-evex-base.S b/sysdeps/x86_64/multiarch/strnlen-evex-base.S
new file mode 100644
index 0000000..6d02590
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strnlen-evex-base.S
@@ -0,0 +1,462 @@
+/* strnlen/wcsnlen optimized with 256/512-bit EVEX instructions.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+
+#include <isa-level.h>
+
+#if ISA_SHOULD_BUILD (4)
+
+# include <sysdep.h>
+
+#ifdef USE_AS_WCSLEN
+# define VPCMPEQ vpcmpeqd
+# define VPTESTN vptestnmd
+# define VPMINU vpminud
+# define CHAR_SIZE 4
+#else
+# define VPCMPEQ vpcmpeqb
+# define VPTESTN vptestnmb
+# define VPMINU vpminub
+# define CHAR_SIZE 1
+#endif
+
+#define XZERO VMM_128(0)
+#define VZERO VMM(0)
+#define PAGE_SIZE 4096
+#define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
+
+#if CHAR_PER_VEC == 32
+# define SUB_SHORT(imm, reg) subb $(imm), %VGPR_SZ(reg, 8)
+#else
+# define SUB_SHORT(imm, reg) subl $(imm), %VGPR_SZ(reg, 32)
+#endif
+
+#ifdef USE_AS_WCSLEN
+/* For wide-character, we care more about limitting code size
+ than optimally aligning targets, so just cap nop padding
+ reasonably low. */
+# define P2ALIGN(...) .p2align 4,, 6
+# define P2ALIGN_CLAMPED(...) P2ALIGN(__VA_ARGS__)
+#else
+# define P2ALIGN(x) .p2align x
+# define P2ALIGN_CLAMPED(x, y) .p2align x,, y
+#endif
+
+ .section SECTION(.text), "ax", @progbits
+ /* Aligning entry point to 64 byte, provides better performance for
+ one vector length string. */
+ENTRY_P2ALIGN(STRNLEN, 6)
+ /* rdi is pointer to array, rsi is the upper limit. */
+
+ /* Check zero length. */
+ test %RSI_LP, %RSI_LP
+ jz L(zero)
+
+#ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %esi, %esi
+#endif
+
+ vpxorq %XZERO, %XZERO, %XZERO
+
+ /* Check that we won't cross a page boundary with our first load. */
+ movl %edi, %eax
+ shll $20, %eax
+ cmpl $((PAGE_SIZE - VEC_SIZE) << 20), %eax
+ ja L(crosses_page_boundary)
+
+ /* Check the first VEC_SIZE bytes. Each bit in K0 represents a
+ null byte. */
+ VPCMPEQ (%rdi), %VZERO, %k0
+ KMOV %k0, %VRCX
+
+ /* If src (rcx) is zero, bsf does not change the result. NB:
+ Must use 64-bit bsf here so that upper bits of len are not
+ cleared. */
+ movq %rsi, %rax
+ bsfq %rcx, %rax
+
+ /* If rax > CHAR_PER_VEC then rcx must have been zero (no null
+ CHAR) and rsi must be > CHAR_PER_VEC. */
+ cmpq $CHAR_PER_VEC, %rax
+ ja L(more_1x_vec)
+
+ /* Check if first match in bounds. */
+ cmpq %rax, %rsi
+ cmovb %esi, %eax
+ ret
+
+#if VEC_SIZE == 32
+ P2ALIGN_CLAMPED(4, 2)
+L(zero):
+L(max_0):
+ movl %esi, %eax
+ ret
+#endif
+
+ P2ALIGN_CLAMPED(4, 10)
+L(more_1x_vec):
+L(cross_page_continue):
+ /* After this calculation, rax stores the number of elements
+ left to be processed The complexity comes from the fact some
+ elements get read twice due to alignment and we need to be
+ sure we don't count them twice (else, it would just be rsi -
+ CHAR_PER_VEC). */
+
+#ifdef USE_AS_WCSLEN
+ /* Need to compute directly for wcslen as CHAR_SIZE * rsi can
+ overflow. */
+ movq %rdi, %rax
+ andq $(VEC_SIZE * -1), %rdi
+ subq %rdi, %rax
+ sarq $2, %rax
+ leaq -(CHAR_PER_VEC * 1)(%rax, %rsi), %rax
+#else
+ /* Calculate ptr + N - VEC_SIZE, then mask off the low bits,
+ then subtract ptr to get the new aligned limit value. */
+ leaq (VEC_SIZE * -1)(%rsi, %rdi), %rax
+ andq $(VEC_SIZE * -1), %rdi
+ subq %rdi, %rax
+#endif
+
+ VPCMPEQ VEC_SIZE(%rdi), %VZERO, %k0
+
+ /* Checking here is faster for 256-bit but not 512-bit */
+#if VEC_SIZE == 0
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+ jnz L(last_vec_check)
+#endif
+
+ cmpq $(CHAR_PER_VEC * 2), %rax
+ ja L(more_2x_vec)
+
+L(last_2x_vec_or_less):
+
+ /* Checking here is faster for 512-bit but not 256-bit */
+#if VEC_SIZE != 0
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+ jnz L(last_vec_check)
+#endif
+
+ /* Check for the end of data. */
+ SUB_SHORT (CHAR_PER_VEC, rax)
+ jbe L(max_0)
+
+ /* Check the final remaining vector. */
+ VPCMPEQ (VEC_SIZE * 2)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+#if VEC_SIZE == 32
+ jz L(max_0)
+#else
+ jnz L(last_vec_check)
+ P2ALIGN_CLAMPED(4, 2)
+L(zero):
+L(max_0):
+ movl %esi, %eax
+ ret
+
+#endif
+ P2ALIGN_CLAMPED(4, 4)
+L(last_vec_check):
+ bsf %VRDX, %VRDX
+ sub %eax, %edx
+ lea (%rsi, %rdx), %eax
+ cmovae %esi, %eax
+ ret
+
+
+#if VEC_SIZE == 32
+ P2ALIGN_CLAMPED(4, 8)
+#endif
+L(last_4x_vec_or_less):
+ addl $(CHAR_PER_VEC * -4), %eax
+ VPCMPEQ (VEC_SIZE * 5)(%rdi), %VZERO, %k0
+
+#if VEC_SIZE == 64
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+ jnz L(last_vec_check)
+#endif
+
+ subq $(VEC_SIZE * -4), %rdi
+ cmpl $(CHAR_PER_VEC * 2), %eax
+ jbe L(last_2x_vec_or_less)
+
+ P2ALIGN_CLAMPED(4, 6)
+L(more_2x_vec):
+ /* Remaining length >= 2 * CHAR_PER_VEC so do VEC0/VEC1 without
+ rechecking bounds. */
+
+ /* Already checked in 256-bit case */
+#if VEC_SIZE != 0
+ KMOV %k0, %VRDX
+
+ test %VRDX, %VRDX
+ jnz L(first_vec_x1)
+#endif
+
+ VPCMPEQ (VEC_SIZE * 2)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+
+ test %VRDX, %VRDX
+ jnz L(first_vec_x2)
+
+ cmpq $(CHAR_PER_VEC * 4), %rax
+ ja L(more_4x_vec)
+
+
+ VPCMPEQ (VEC_SIZE * 3)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+ addl $(CHAR_PER_VEC * -2), %eax
+ test %VRDX, %VRDX
+ jnz L(last_vec_check)
+
+ subb $(CHAR_PER_VEC), %al
+ jbe L(max_1)
+
+ VPCMPEQ (VEC_SIZE * 4)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+
+ test %VRDX, %VRDX
+ jnz L(last_vec_check)
+L(max_1):
+ movl %esi, %eax
+ ret
+
+
+ P2ALIGN_CLAMPED(4, 14)
+L(first_vec_x2):
+#if VEC_SIZE == 64
+ /* If VEC_SIZE == 64 we can fit logic for full return label in
+ spare bytes before next cache line. */
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 1)(%rsi, %rdx), %eax
+ ret
+ P2ALIGN_CLAMPED(4, 6)
+#else
+ addl $CHAR_PER_VEC, %esi
+#endif
+L(first_vec_x1):
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 0)(%rsi, %rdx), %eax
+ ret
+
+#if VEC_SIZE == 64
+ P2ALIGN_CLAMPED(4, 6)
+L(first_vec_x4):
+# if VEC_SIZE == 64
+ /* If VEC_SIZE == 64 we can fit logic for full return label in
+ spare bytes before next cache line. */
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 3)(%rsi, %rdx), %eax
+ ret
+ P2ALIGN_CLAMPED(4, 6)
+# else
+ addl $CHAR_PER_VEC, %esi
+# endif
+L(first_vec_x3):
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 2)(%rsi, %rdx), %eax
+ ret
+#endif
+
+ P2ALIGN_CLAMPED(6, 20)
+L(more_4x_vec):
+ VPCMPEQ (VEC_SIZE * 3)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+ jnz L(first_vec_x3)
+
+ VPCMPEQ (VEC_SIZE * 4)(%rdi), %VZERO, %k0
+ KMOV %k0, %VRDX
+ test %VRDX, %VRDX
+ jnz L(first_vec_x4)
+
+ /* Check if at last VEC_SIZE * 4 length before aligning for the
+ loop. */
+ cmpq $(CHAR_PER_VEC * 8), %rax
+ jbe L(last_4x_vec_or_less)
+
+
+ /* Compute number of words checked after aligning. */
+#ifdef USE_AS_WCSLEN
+ /* Need to compute directly for wcslen as CHAR_SIZE * rsi can
+ overflow. */
+ leaq (VEC_SIZE * -3)(%rdi), %rdx
+#else
+ leaq (VEC_SIZE * -3)(%rdi, %rax), %rax
+#endif
+
+ subq $(VEC_SIZE * -1), %rdi
+
+ /* Align data to VEC_SIZE * 4. */
+#if VEC_SIZE == 64
+ /* Saves code size. No evex512 processor has partial register
+ stalls. If that change this can be replaced with `andq
+ $-(VEC_SIZE * 4), %rdi`. */
+ xorb %dil, %dil
+#else
+ andq $-(VEC_SIZE * 4), %rdi
+#endif
+
+#ifdef USE_AS_WCSLEN
+ subq %rdi, %rdx
+ sarq $2, %rdx
+ addq %rdx, %rax
+#else
+ subq %rdi, %rax
+#endif
+
+ // mov %rdi, %rdx
+
+ P2ALIGN(6)
+L(loop):
+ /* VPMINU and VPCMP combination provide better performance as
+ compared to alternative combinations. */
+ VMOVA (VEC_SIZE * 4)(%rdi), %VMM(1)
+ VPMINU (VEC_SIZE * 5)(%rdi), %VMM(1), %VMM(2)
+ VMOVA (VEC_SIZE * 6)(%rdi), %VMM(3)
+ VPMINU (VEC_SIZE * 7)(%rdi), %VMM(3), %VMM(4)
+
+ VPTESTN %VMM(2), %VMM(2), %k0
+ VPTESTN %VMM(4), %VMM(4), %k1
+
+ subq $-(VEC_SIZE * 4), %rdi
+ KORTEST %k0, %k1
+
+ jnz L(loopend)
+ subq $(CHAR_PER_VEC * 4), %rax
+ ja L(loop)
+ mov %rsi, %rax
+ ret
+
+
+#if VEC_SIZE == 32
+ P2ALIGN_CLAMPED(4, 6)
+L(first_vec_x4):
+# if VEC_SIZE == 64
+ /* If VEC_SIZE == 64 we can fit logic for full return label in
+ spare bytes before next cache line. */
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 3)(%rsi, %rdx), %eax
+ ret
+ P2ALIGN_CLAMPED(4, 6)
+# else
+ addl $CHAR_PER_VEC, %esi
+# endif
+L(first_vec_x3):
+ bsf %VRDX, %VRDX
+ sub %eax, %esi
+ leal (CHAR_PER_VEC * 2)(%rsi, %rdx), %eax
+ ret
+#endif
+
+
+ P2ALIGN_CLAMPED(4, 11)
+L(loopend):
+ /* We found a null terminator in one of the 4 vectors. */
+
+ /* Check the first vector. */
+ movq %rax, %r8
+ VPTESTN %VMM(1), %VMM(1), %k2
+ KMOV %k2, %VRCX
+ bsf %rcx, %r8
+
+ cmpq $(CHAR_PER_VEC), %r8
+ jbe L(end_vec)
+
+ /* Check the second vector. */
+ subq $(CHAR_PER_VEC), %rax
+ movq %rax, %r8
+ KMOV %k0, %VRCX
+ bsf %rcx, %r8
+
+ cmpq $(CHAR_PER_VEC), %r8
+ jbe L(end_vec)
+
+ /* Check the third vector. */
+ subq $(CHAR_PER_VEC), %rax
+ movq %rax, %r8
+ VPTESTN %VMM(3), %VMM(3), %k2
+ KMOV %k2, %VRCX
+ bsf %rcx, %r8
+
+ cmpq $(CHAR_PER_VEC), %r8
+ jbe L(end_vec)
+
+ /* It is in the fourth vector. */
+ subq $(CHAR_PER_VEC), %rax
+ movq %rax, %r8
+ KMOV %k1, %VRCX
+ bsf %rcx, %r8
+
+ P2ALIGN_CLAMPED(4, 3)
+L(end_vec):
+ /* Get the number that has been processed. */
+ movq %rsi, %rcx
+ subq %rax, %rcx
+
+ /* Add that to the offset we found the null terminator at. */
+ leaq (%r8, %rcx), %rax
+
+ /* Take the min of that and the limit. */
+ cmpq %rsi, %rax
+ cmovnb %rsi, %rax
+ ret
+
+ P2ALIGN_CLAMPED(4, 11)
+L(crosses_page_boundary):
+ /* Align data backwards to VEC_SIZE. */
+ shrl $20, %eax
+ movq %rdi, %rcx
+ andq $-VEC_SIZE, %rcx
+ VPCMPEQ (%rcx), %VZERO, %k0
+
+ KMOV %k0, %VRCX
+#ifdef USE_AS_WCSLEN
+ shrl $2, %eax
+ andl $(CHAR_PER_VEC - 1), %eax
+#endif
+ /* By this point rax contains number of bytes we need to skip. */
+ shrx %VRAX, %VRCX, %VRCX
+
+ /* Calculates CHAR_PER_VEC - eax and stores in eax. */
+ negl %eax
+ andl $(CHAR_PER_VEC - 1), %eax
+
+ movq %rsi, %rdx
+ bsf %VRCX, %VRDX
+ cmpq %rax, %rdx
+ ja L(cross_page_continue)
+
+ /* The vector had a null terminator or we are at the limit. */
+ movl %edx, %eax
+ cmpq %rdx, %rsi
+ cmovb %esi, %eax
+ ret
+
+END(STRNLEN)
+#endif
diff --git a/sysdeps/x86_64/multiarch/strnlen-evex.S b/sysdeps/x86_64/multiarch/strnlen-evex.S
index 91b1683..c412889 100644
--- a/sysdeps/x86_64/multiarch/strnlen-evex.S
+++ b/sysdeps/x86_64/multiarch/strnlen-evex.S
@@ -1,423 +1,7 @@
-/* strnlen/wcsnlen optimized with 256-bit EVEX instructions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <isa-level.h>
-#include <sysdep.h>
-
-#if ISA_SHOULD_BUILD (4)
-
-# ifndef VEC_SIZE
-# include "x86-evex256-vecs.h"
-# endif
-
-
-# ifndef STRNLEN
-# define STRNLEN __strnlen_evex
-# endif
-
-# ifdef USE_AS_WCSLEN
-# define VPCMPEQ vpcmpeqd
-# define VPCMPNEQ vpcmpneqd
-# define VPTESTN vptestnmd
-# define VPTEST vptestmd
-# define VPMINU vpminud
-# define CHAR_SIZE 4
-
-# else
-# define VPCMPEQ vpcmpeqb
-# define VPCMPNEQ vpcmpneqb
-# define VPTESTN vptestnmb
-# define VPTEST vptestmb
-# define VPMINU vpminub
-# define CHAR_SIZE 1
-
-# define REG_WIDTH VEC_SIZE
-# endif
-
-# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
-
-# include "reg-macros.h"
-
-# if CHAR_PER_VEC == 32
-# define SUB_SHORT(imm, reg) subb $(imm), %VGPR_SZ(reg, 8)
-# else
-# define SUB_SHORT(imm, reg) subl $(imm), %VGPR_SZ(reg, 32)
-# endif
-
-
-
-# if CHAR_PER_VEC == 64
-# define FALLTHROUGH_RETURN_OFFSET (CHAR_PER_VEC * 3)
-# else
-# define FALLTHROUGH_RETURN_OFFSET (CHAR_PER_VEC * 2)
-# endif
-
-
-# define XZERO VMM_128(0)
-# define VZERO VMM(0)
-# define PAGE_SIZE 4096
-
- .section SECTION(.text), "ax", @progbits
-ENTRY_P2ALIGN (STRNLEN, 6)
- /* Check zero length. */
- test %RSI_LP, %RSI_LP
- jz L(zero)
-# ifdef __ILP32__
- /* Clear the upper 32 bits. */
- movl %esi, %esi
-# endif
-
- movl %edi, %eax
- vpxorq %XZERO, %XZERO, %XZERO
- andl $(PAGE_SIZE - 1), %eax
- cmpl $(PAGE_SIZE - VEC_SIZE), %eax
- ja L(cross_page_boundary)
-
- /* Check the first VEC_SIZE bytes. Each bit in K0 represents a
- null byte. */
- VPCMPEQ (%rdi), %VZERO, %k0
-
- KMOV %k0, %VRCX
- movq %rsi, %rax
-
- /* If src (rcx) is zero, bsf does not change the result. NB:
- Must use 64-bit bsf here so that upper bits of len are not
- cleared. */
- bsfq %rcx, %rax
- /* If rax > CHAR_PER_VEC then rcx must have been zero (no null
- CHAR) and rsi must be > CHAR_PER_VEC. */
- cmpq $CHAR_PER_VEC, %rax
- ja L(more_1x_vec)
- /* Check if first match in bounds. */
- cmpq %rax, %rsi
- cmovb %esi, %eax
- ret
-
-
-# if CHAR_PER_VEC != 32
- .p2align 4,, 2
-L(zero):
-L(max_0):
- movl %esi, %eax
- ret
-# endif
-
- /* Aligned more for strnlen compares remaining length vs 2 *
- CHAR_PER_VEC, 4 * CHAR_PER_VEC, and 8 * CHAR_PER_VEC before
- going to the loop. */
- .p2align 4,, 10
-L(more_1x_vec):
-L(cross_page_continue):
- /* Compute number of words checked after aligning. */
-# ifdef USE_AS_WCSLEN
- /* Need to compute directly for wcslen as CHAR_SIZE * rsi can
- overflow. */
- movq %rdi, %rax
- andq $(VEC_SIZE * -1), %rdi
- subq %rdi, %rax
- sarq $2, %rax
- leaq -(CHAR_PER_VEC * 1)(%rax, %rsi), %rax
-# else
- leaq (VEC_SIZE * -1)(%rsi, %rdi), %rax
- andq $(VEC_SIZE * -1), %rdi
- subq %rdi, %rax
-# endif
-
-
- VPCMPEQ VEC_SIZE(%rdi), %VZERO, %k0
-
- cmpq $(CHAR_PER_VEC * 2), %rax
- ja L(more_2x_vec)
-
-L(last_2x_vec_or_less):
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(last_vec_check)
-
- /* Check the end of data. */
- SUB_SHORT (CHAR_PER_VEC, rax)
- jbe L(max_0)
- VPCMPEQ (VEC_SIZE * 2)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jz L(max_0)
- /* Best place for LAST_VEC_CHECK if ZMM. */
- .p2align 4,, 8
-L(last_vec_check):
- bsf %VRDX, %VRDX
- sub %eax, %edx
- lea (%rsi, %rdx), %eax
- cmovae %esi, %eax
- ret
-
-# if CHAR_PER_VEC == 32
- .p2align 4,, 2
-L(zero):
-L(max_0):
- movl %esi, %eax
- ret
-# endif
-
- .p2align 4,, 8
-L(last_4x_vec_or_less):
- addl $(CHAR_PER_VEC * -4), %eax
- VPCMPEQ (VEC_SIZE * 5)(%rdi), %VZERO, %k0
- subq $(VEC_SIZE * -4), %rdi
- cmpl $(CHAR_PER_VEC * 2), %eax
- jbe L(last_2x_vec_or_less)
-
- .p2align 4,, 6
-L(more_2x_vec):
- /* Remaining length >= 2 * CHAR_PER_VEC so do VEC0/VEC1 without
- rechecking bounds. */
-
- KMOV %k0, %VRDX
-
- test %VRDX, %VRDX
- jnz L(first_vec_x1)
-
- VPCMPEQ (VEC_SIZE * 2)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(first_vec_x2)
-
- cmpq $(CHAR_PER_VEC * 4), %rax
- ja L(more_4x_vec)
-
-
- VPCMPEQ (VEC_SIZE * 3)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
- addl $(CHAR_PER_VEC * -2), %eax
- test %VRDX, %VRDX
- jnz L(last_vec_check)
-
- subl $(CHAR_PER_VEC), %eax
- jbe L(max_1)
-
- VPCMPEQ (VEC_SIZE * 4)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
-
- test %VRDX, %VRDX
- jnz L(last_vec_check)
-L(max_1):
- movl %esi, %eax
- ret
-
- .p2align 4,, 3
-L(first_vec_x2):
-# if VEC_SIZE == 64
- /* If VEC_SIZE == 64 we can fit logic for full return label in
- spare bytes before next cache line. */
- bsf %VRDX, %VRDX
- sub %eax, %esi
- leal (CHAR_PER_VEC * 1)(%rsi, %rdx), %eax
- ret
- .p2align 4,, 6
-# else
- addl $CHAR_PER_VEC, %esi
-# endif
-L(first_vec_x1):
- bsf %VRDX, %VRDX
- sub %eax, %esi
- leal (CHAR_PER_VEC * 0)(%rsi, %rdx), %eax
- ret
-
-
- .p2align 4,, 6
-L(first_vec_x4):
-# if VEC_SIZE == 64
- /* If VEC_SIZE == 64 we can fit logic for full return label in
- spare bytes before next cache line. */
- bsf %VRDX, %VRDX
- sub %eax, %esi
- leal (CHAR_PER_VEC * 3)(%rsi, %rdx), %eax
- ret
- .p2align 4,, 6
-# else
- addl $CHAR_PER_VEC, %esi
-# endif
-L(first_vec_x3):
- bsf %VRDX, %VRDX
- sub %eax, %esi
- leal (CHAR_PER_VEC * 2)(%rsi, %rdx), %eax
- ret
-
- .p2align 4,, 5
-L(more_4x_vec):
- VPCMPEQ (VEC_SIZE * 3)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(first_vec_x3)
-
- VPCMPEQ (VEC_SIZE * 4)(%rdi), %VZERO, %k0
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(first_vec_x4)
-
- /* Check if at last VEC_SIZE * 4 length before aligning for the
- loop. */
- cmpq $(CHAR_PER_VEC * 8), %rax
- jbe L(last_4x_vec_or_less)
-
-
- /* Compute number of words checked after aligning. */
-# ifdef USE_AS_WCSLEN
- /* Need to compute directly for wcslen as CHAR_SIZE * rsi can
- overflow. */
- leaq (VEC_SIZE * -3)(%rdi), %rdx
-# else
- leaq (VEC_SIZE * -3)(%rdi, %rax), %rax
-# endif
-
- subq $(VEC_SIZE * -1), %rdi
-
- /* Align data to VEC_SIZE * 4. */
-# if VEC_SIZE == 64
- /* Saves code size. No evex512 processor has partial register
- stalls. If that change this can be replaced with `andq
- $-(VEC_SIZE * 4), %rdi`. */
- xorb %dil, %dil
-# else
- andq $-(VEC_SIZE * 4), %rdi
-# endif
-
-# ifdef USE_AS_WCSLEN
- subq %rdi, %rdx
- sarq $2, %rdx
- addq %rdx, %rax
-# else
- subq %rdi, %rax
-# endif
- /* Compare 4 * VEC at a time forward. */
- .p2align 4,, 11
-L(loop_4x_vec):
- VMOVA (VEC_SIZE * 4)(%rdi), %VMM(1)
- VPMINU (VEC_SIZE * 5)(%rdi), %VMM(1), %VMM(2)
- VMOVA (VEC_SIZE * 6)(%rdi), %VMM(3)
- VPMINU (VEC_SIZE * 7)(%rdi), %VMM(3), %VMM(4)
- VPTESTN %VMM(2), %VMM(2), %k0
- VPTESTN %VMM(4), %VMM(4), %k2
- subq $-(VEC_SIZE * 4), %rdi
- /* Break if at end of length. */
- subq $(CHAR_PER_VEC * 4), %rax
- jbe L(loop_len_end)
-
-
- KORTEST %k0, %k2
- jz L(loop_4x_vec)
-
-
-L(loop_last_4x_vec):
- movq %rsi, %rcx
- subq %rax, %rsi
- VPTESTN %VMM(1), %VMM(1), %k1
- KMOV %k1, %VRDX
- test %VRDX, %VRDX
- jnz L(last_vec_x0)
-
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(last_vec_x1)
-
- VPTESTN %VMM(3), %VMM(3), %k0
-
- /* Separate logic for VEC_SIZE == 64 and VEC_SIZE == 32 for
- returning last 2x VEC. For VEC_SIZE == 64 we test each VEC
- individually, for VEC_SIZE == 32 we combine them in a single
- 64-bit GPR. */
-# if CHAR_PER_VEC == 64
- KMOV %k0, %VRDX
- test %VRDX, %VRDX
- jnz L(last_vec_x2)
- KMOV %k2, %VRDX
-# else
- /* We can only combine last 2x VEC masks if CHAR_PER_VEC <= 32.
- */
- kmovd %k2, %edx
- kmovd %k0, %eax
- salq $CHAR_PER_VEC, %rdx
- orq %rax, %rdx
-# endif
-
- /* first_vec_x3 for strlen-ZMM and first_vec_x2 for strlen-YMM.
- */
- bsfq %rdx, %rdx
- leaq (FALLTHROUGH_RETURN_OFFSET - CHAR_PER_VEC * 4)(%rsi, %rdx), %rax
- cmpq %rax, %rcx
- cmovb %rcx, %rax
- ret
-
- /* Handle last 4x VEC after loop. All VECs have been loaded. */
- .p2align 4,, 4
-L(loop_len_end):
- KORTEST %k0, %k2
- jnz L(loop_last_4x_vec)
- movq %rsi, %rax
- ret
-
-
-# if CHAR_PER_VEC == 64
- /* Since we can't combine the last 2x VEC for VEC_SIZE == 64
- need return label for it. */
- .p2align 4,, 8
-L(last_vec_x2):
- bsf %VRDX, %VRDX
- leaq (CHAR_PER_VEC * -2)(%rsi, %rdx), %rax
- cmpq %rax, %rcx
- cmovb %rcx, %rax
- ret
-# endif
-
-
- .p2align 4,, 10
-L(last_vec_x1):
- addq $CHAR_PER_VEC, %rsi
-L(last_vec_x0):
- bsf %VRDX, %VRDX
- leaq (CHAR_PER_VEC * -4)(%rsi, %rdx), %rax
- cmpq %rax, %rcx
- cmovb %rcx, %rax
- ret
-
-
- .p2align 4,, 8
-L(cross_page_boundary):
- /* Align data to VEC_SIZE. */
- movq %rdi, %rcx
- andq $-VEC_SIZE, %rcx
- VPCMPEQ (%rcx), %VZERO, %k0
-
- KMOV %k0, %VRCX
-# ifdef USE_AS_WCSLEN
- shrl $2, %eax
- andl $(CHAR_PER_VEC - 1), %eax
-# endif
- shrx %VRAX, %VRCX, %VRCX
-
- negl %eax
- andl $(CHAR_PER_VEC - 1), %eax
- movq %rsi, %rdx
- bsf %VRCX, %VRDX
- cmpq %rax, %rdx
- ja L(cross_page_continue)
- movl %edx, %eax
- cmpq %rdx, %rsi
- cmovb %esi, %eax
- ret
-END (STRNLEN)
+#ifndef STRNLEN
+#define STRNLEN __strnlen_evex
#endif
+
+#include "x86-evex256-vecs.h"
+#include "reg-macros.h"
+#include "strnlen-evex-base.S"
diff --git a/sysdeps/x86_64/multiarch/strnlen-evex512.S b/sysdeps/x86_64/multiarch/strnlen-evex512.S
index f8e5588..8ef5407 100644
--- a/sysdeps/x86_64/multiarch/strnlen-evex512.S
+++ b/sysdeps/x86_64/multiarch/strnlen-evex512.S
@@ -1,264 +1,7 @@
-/* Placeholder function, not used by any processor at the moment.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
#ifndef STRNLEN
#define STRNLEN __strnlen_evex512
#endif
#include "x86-evex512-vecs.h"
#include "reg-macros.h"
-
-#include <isa-level.h>
-
-#if ISA_SHOULD_BUILD (4)
-
-# include <sysdep.h>
-
-# ifdef USE_AS_WCSLEN
-# define VPCMPEQ vpcmpeqd
-# define VPTESTN vptestnmd
-# define VPMINU vpminud
-# define CHAR_SIZE 4
-# else
-# define VPCMPEQ vpcmpeqb
-# define VPTESTN vptestnmb
-# define VPMINU vpminub
-# define CHAR_SIZE 1
-# endif
-
-# define PAGE_SIZE 4096
-# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
-
- .section SECTION(.text),"ax",@progbits
-/* Aligning entry point to 64 byte, provides better performance for
- one vector length string. */
-ENTRY_P2ALIGN (STRNLEN, 6)
- /* Check zero length. */
- test %RSI_LP, %RSI_LP
- jz L(ret_max)
-# ifdef __ILP32__
- /* Clear the upper 32 bits. */
- movl %esi, %esi
-# endif
-
- movl %edi, %eax
- vpxorq %VMM_128(0), %VMM_128(0), %VMM_128(0)
- sall $20, %eax
- cmpl $((PAGE_SIZE - VEC_SIZE) << 20), %eax
- ja L(page_cross)
-
- /* Compare [w]char for null, mask bit will be set for match. */
- VPCMPEQ (%rdi), %VMM(0), %k0
- KMOV %k0, %VRCX
- /* Store max length in rax. */
- mov %rsi, %rax
- /* If rcx is 0, rax will have max length. We can not use VRCX
- and VRAX here for evex256 because, upper 32 bits may be
- undefined for ecx and eax. */
- bsfq %rcx, %rax
- cmp $CHAR_PER_VEC, %rax
- ja L(align_more)
- cmpq %rax, %rsi
- cmovb %esi, %eax
- ret
-
- /* At this point vector max length reached. */
- .p2align 4,,3
-L(ret_max):
- movq %rsi, %rax
- ret
-
-L(align_more):
- mov %rdi, %rax
- /* Align rax to VEC_SIZE. */
- andq $-VEC_SIZE, %rax
- movq %rdi, %rdx
- subq %rax, %rdx
-# ifdef USE_AS_WCSLEN
- shr $2, %VRDX
-# endif
- /* At this point rdx contains [w]chars already compared. */
- leaq -CHAR_PER_VEC(%rsi, %rdx), %rdx
- /* At this point rdx contains number of w[char] needs to go.
- Now onwards rdx will keep decrementing with each compare. */
-
- /* Loop unroll 4 times for 4 vector loop. */
- VPCMPEQ VEC_SIZE(%rax), %VMM(0), %k0
- subq $-VEC_SIZE, %rax
- KMOV %k0, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x1)
-
- subq $CHAR_PER_VEC, %rdx
- jbe L(ret_max)
-
- VPCMPEQ VEC_SIZE(%rax), %VMM(0), %k0
- KMOV %k0, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x2)
-
- subq $CHAR_PER_VEC, %rdx
- jbe L(ret_max)
-
- VPCMPEQ (VEC_SIZE * 2)(%rax), %VMM(0), %k0
- KMOV %k0, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x3)
-
- subq $CHAR_PER_VEC, %rdx
- jbe L(ret_max)
-
- VPCMPEQ (VEC_SIZE * 3)(%rax), %VMM(0), %k0
- KMOV %k0, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x4)
-
- subq $CHAR_PER_VEC, %rdx
- jbe L(ret_max)
- /* Save pointer before 4 x VEC_SIZE alignment. */
- movq %rax, %rcx
-
- /* Align address to VEC_SIZE * 4 for loop. */
- andq $-(VEC_SIZE * 4), %rax
-
- subq %rax, %rcx
-# ifdef USE_AS_WCSLEN
- shr $2, %VRCX
-# endif
- /* rcx contains number of [w]char will be recompared due to
- alignment fixes. rdx must be incremented by rcx to offset
- alignment adjustment. */
- addq %rcx, %rdx
- /* Need jump as we don't want to add/subtract rdx for first
- iteration of 4 x VEC_SIZE aligned loop. */
-
- .p2align 4,,11
-L(loop):
- /* VPMINU and VPCMP combination provide better performance as
- compared to alternative combinations. */
- VMOVA (VEC_SIZE * 4)(%rax), %VMM(1)
- VPMINU (VEC_SIZE * 5)(%rax), %VMM(1), %VMM(2)
- VMOVA (VEC_SIZE * 6)(%rax), %VMM(3)
- VPMINU (VEC_SIZE * 7)(%rax), %VMM(3), %VMM(4)
-
- VPTESTN %VMM(2), %VMM(2), %k0
- VPTESTN %VMM(4), %VMM(4), %k1
-
- subq $-(VEC_SIZE * 4), %rax
- KORTEST %k0, %k1
-
- jnz L(loopend)
- subq $(CHAR_PER_VEC * 4), %rdx
- ja L(loop)
- mov %rsi, %rax
- ret
-
-L(loopend):
-
- VPTESTN %VMM(1), %VMM(1), %k2
- KMOV %k2, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x1)
-
- KMOV %k0, %VRCX
- /* At this point, if k0 is non zero, null char must be in the
- second vector. */
- test %VRCX, %VRCX
- jnz L(ret_vec_x2)
-
- VPTESTN %VMM(3), %VMM(3), %k3
- KMOV %k3, %VRCX
- test %VRCX, %VRCX
- jnz L(ret_vec_x3)
- /* At this point null [w]char must be in the fourth vector so no
- need to check. */
- KMOV %k1, %VRCX
-
- /* Fourth, third, second vector terminating are pretty much
- same, implemented this way to avoid branching and reuse code
- from pre loop exit condition. */
-L(ret_vec_x4):
- bsf %VRCX, %VRCX
- subq %rdi, %rax
-# ifdef USE_AS_WCSLEN
- subq $-(VEC_SIZE * 3), %rax
- shrq $2, %rax
- addq %rcx, %rax
-# else
- leaq (VEC_SIZE * 3)(%rcx, %rax), %rax
-# endif
-
- cmpq %rsi, %rax
- cmovnb %rsi, %rax
- ret
-
-L(ret_vec_x3):
- bsf %VRCX, %VRCX
- subq %rdi, %rax
-# ifdef USE_AS_WCSLEN
- subq $-(VEC_SIZE * 2), %rax
- shrq $2, %rax
- addq %rcx, %rax
-# else
- leaq (VEC_SIZE * 2)(%rcx, %rax), %rax
-# endif
- cmpq %rsi, %rax
- cmovnb %rsi, %rax
- ret
-
-L(ret_vec_x2):
- subq $-VEC_SIZE, %rax
-L(ret_vec_x1):
- bsf %VRCX, %VRCX
- subq %rdi, %rax
-# ifdef USE_AS_WCSLEN
- shrq $2, %rax
-# endif
- addq %rcx, %rax
- cmpq %rsi, %rax
- cmovnb %rsi, %rax
- ret
-
-L(page_cross):
- mov %rdi, %rax
- movl %edi, %ecx
- andl $(VEC_SIZE - 1), %ecx
-# ifdef USE_AS_WCSLEN
- sarl $2, %ecx
-# endif
- /* ecx contains number of w[char] to be skipped as a result
- of address alignment. */
- andq $-VEC_SIZE, %rax
- VPCMPEQ (%rax), %VMM(0), %k0
- KMOV %k0, %VRDX
- /* Ignore number of character for alignment adjustment. */
- shr %cl, %VRDX
- jnz L(page_cross_end)
- movl $CHAR_PER_VEC, %eax
- sub %ecx, %eax
- cmp %rax, %rsi
- ja L(align_more)
-
-L(page_cross_end):
- bsf %VRDX, %VRAX
- cmpq %rsi, %rax
- cmovnb %esi, %eax
- ret
-
-END (STRNLEN)
-#endif
+#include "strnlen-evex-base.S" \ No newline at end of file
diff --git a/sysdeps/x86_64/multiarch/strnlen-sse2.S b/sysdeps/x86_64/multiarch/strnlen-sse2.S
index c9555b8..48e8331 100644
--- a/sysdeps/x86_64/multiarch/strnlen-sse2.S
+++ b/sysdeps/x86_64/multiarch/strnlen-sse2.S
@@ -1,5 +1,5 @@
/* strnlen optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strnlen.c b/sysdeps/x86_64/multiarch/strnlen.c
index d1537e0..6444ca1 100644
--- a/sysdeps/x86_64/multiarch/strnlen.c
+++ b/sysdeps/x86_64/multiarch/strnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strpbrk-generic.c b/sysdeps/x86_64/multiarch/strpbrk-generic.c
index cf64b4a..bbb3496 100644
--- a/sysdeps/x86_64/multiarch/strpbrk-generic.c
+++ b/sysdeps/x86_64/multiarch/strpbrk-generic.c
@@ -1,5 +1,5 @@
/* strpbrk.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strpbrk-sse4.c b/sysdeps/x86_64/multiarch/strpbrk-sse4.c
index 37a4a55..3256813 100644
--- a/sysdeps/x86_64/multiarch/strpbrk-sse4.c
+++ b/sysdeps/x86_64/multiarch/strpbrk-sse4.c
@@ -1,5 +1,5 @@
/* strpbrk with SSE4.2 intrinsics
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strpbrk.c b/sysdeps/x86_64/multiarch/strpbrk.c
index 7bed726..e688050 100644
--- a/sysdeps/x86_64/multiarch/strpbrk.c
+++ b/sysdeps/x86_64/multiarch/strpbrk.c
@@ -1,6 +1,6 @@
/* Multiple versions of strpbrk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strrchr-avx2.S b/sysdeps/x86_64/multiarch/strrchr-avx2.S
index 8709a76..a51b9cc 100644
--- a/sysdeps/x86_64/multiarch/strrchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/strrchr-avx2.S
@@ -1,5 +1,5 @@
/* strrchr/wcsrchr optimized with AVX2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strrchr-evex-base.S b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
index 4838358..0bad590 100644
--- a/sysdeps/x86_64/multiarch/strrchr-evex-base.S
+++ b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
@@ -1,5 +1,5 @@
/* Implementation for strrchr using evex256 and evex512.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strrchr-sse2.S b/sysdeps/x86_64/multiarch/strrchr-sse2.S
index 3967f3c..99f2e66 100644
--- a/sysdeps/x86_64/multiarch/strrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/strrchr-sse2.S
@@ -1,5 +1,5 @@
/* strrchr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strrchr.c b/sysdeps/x86_64/multiarch/strrchr.c
index f14237d..98c16ee 100644
--- a/sysdeps/x86_64/multiarch/strrchr.c
+++ b/sysdeps/x86_64/multiarch/strrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strrchr.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strspn-generic.c b/sysdeps/x86_64/multiarch/strspn-generic.c
index 409d9f4..f910e29 100644
--- a/sysdeps/x86_64/multiarch/strspn-generic.c
+++ b/sysdeps/x86_64/multiarch/strspn-generic.c
@@ -1,5 +1,5 @@
/* strspn.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strspn-sse4.c b/sysdeps/x86_64/multiarch/strspn-sse4.c
index c9a5684..0bd47ff 100644
--- a/sysdeps/x86_64/multiarch/strspn-sse4.c
+++ b/sysdeps/x86_64/multiarch/strspn-sse4.c
@@ -1,5 +1,5 @@
/* strspn with SSE4.2 intrinsics
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strspn.c b/sysdeps/x86_64/multiarch/strspn.c
index 31e5c73..46ca9d2 100644
--- a/sysdeps/x86_64/multiarch/strspn.c
+++ b/sysdeps/x86_64/multiarch/strspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
index 3aec51c..5698123 100644
--- a/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strstr with unaligned loads
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/strstr.c b/sysdeps/x86_64/multiarch/strstr.c
index 8283086..e18e641 100644
--- a/sysdeps/x86_64/multiarch/strstr.c
+++ b/sysdeps/x86_64/multiarch/strstr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strstr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/varshift.c b/sysdeps/x86_64/multiarch/varshift.c
index 2a41952..b3c0cdd 100644
--- a/sysdeps/x86_64/multiarch/varshift.c
+++ b/sysdeps/x86_64/multiarch/varshift.c
@@ -1,5 +1,5 @@
/* Helper for variable shifts of SSE registers.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/varshift.h b/sysdeps/x86_64/multiarch/varshift.h
index 8e7a47d..589ae03 100644
--- a/sysdeps/x86_64/multiarch/varshift.h
+++ b/sysdeps/x86_64/multiarch/varshift.h
@@ -1,5 +1,5 @@
/* Helper for variable shifts of SSE registers.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcpcpy-generic.c b/sysdeps/x86_64/multiarch/wcpcpy-generic.c
index 46d3eef..8624793 100644
--- a/sysdeps/x86_64/multiarch/wcpcpy-generic.c
+++ b/sysdeps/x86_64/multiarch/wcpcpy-generic.c
@@ -1,5 +1,5 @@
/* wcpcpy.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcpcpy.c b/sysdeps/x86_64/multiarch/wcpcpy.c
index 059edbc..ec1352f 100644
--- a/sysdeps/x86_64/multiarch/wcpcpy.c
+++ b/sysdeps/x86_64/multiarch/wcpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcpncpy-generic.c b/sysdeps/x86_64/multiarch/wcpncpy-generic.c
index b7c1a45..4356895 100644
--- a/sysdeps/x86_64/multiarch/wcpncpy-generic.c
+++ b/sysdeps/x86_64/multiarch/wcpncpy-generic.c
@@ -1,5 +1,5 @@
/* wcpncpy.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcpncpy.c b/sysdeps/x86_64/multiarch/wcpncpy.c
index fd5d2db..d197314 100644
--- a/sysdeps/x86_64/multiarch/wcpncpy.c
+++ b/sysdeps/x86_64/multiarch/wcpncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcpncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscat-generic.c b/sysdeps/x86_64/multiarch/wcscat-generic.c
index 36f9055..fff23a4 100644
--- a/sysdeps/x86_64/multiarch/wcscat-generic.c
+++ b/sysdeps/x86_64/multiarch/wcscat-generic.c
@@ -1,5 +1,5 @@
/* wcscat.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscat.c b/sysdeps/x86_64/multiarch/wcscat.c
index 47c5b48..2e645ba 100644
--- a/sysdeps/x86_64/multiarch/wcscat.c
+++ b/sysdeps/x86_64/multiarch/wcscat.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcschr-sse2.S b/sysdeps/x86_64/multiarch/wcschr-sse2.S
index 1a353b7..9dbae05 100644
--- a/sysdeps/x86_64/multiarch/wcschr-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcschr-sse2.S
@@ -1,5 +1,5 @@
/* wcschr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcschr.c b/sysdeps/x86_64/multiarch/wcschr.c
index 5824021..3df2367 100644
--- a/sysdeps/x86_64/multiarch/wcschr.c
+++ b/sysdeps/x86_64/multiarch/wcschr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcschr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscmp-sse2.S b/sysdeps/x86_64/multiarch/wcscmp-sse2.S
index fe790c6..a8ba2b4 100644
--- a/sysdeps/x86_64/multiarch/wcscmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcscmp-sse2.S
@@ -1,5 +1,5 @@
/* wcscmp optimized with SSE2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscmp.c b/sysdeps/x86_64/multiarch/wcscmp.c
index 73089d3..cd17363 100644
--- a/sysdeps/x86_64/multiarch/wcscmp.c
+++ b/sysdeps/x86_64/multiarch/wcscmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscmp.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscpy-generic.c b/sysdeps/x86_64/multiarch/wcscpy-generic.c
index 59cbd90..51ad74a 100644
--- a/sysdeps/x86_64/multiarch/wcscpy-generic.c
+++ b/sysdeps/x86_64/multiarch/wcscpy-generic.c
@@ -1,5 +1,5 @@
/* wcscpy.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscpy-ssse3.S b/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
index 2efecdf..ab16825 100644
--- a/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
+++ b/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
@@ -1,5 +1,5 @@
/* wcscpy with SSSE3
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcscpy.c b/sysdeps/x86_64/multiarch/wcscpy.c
index 5b974e8..90f3382 100644
--- a/sysdeps/x86_64/multiarch/wcscpy.c
+++ b/sysdeps/x86_64/multiarch/wcscpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcslen-sse2.S b/sysdeps/x86_64/multiarch/wcslen-sse2.S
index e182813..c1f6f536 100644
--- a/sysdeps/x86_64/multiarch/wcslen-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcslen-sse2.S
@@ -1,5 +1,5 @@
/* wcslen optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcslen.c b/sysdeps/x86_64/multiarch/wcslen.c
index d463db9..bd08c2c 100644
--- a/sysdeps/x86_64/multiarch/wcslen.c
+++ b/sysdeps/x86_64/multiarch/wcslen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcslen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncat-generic.c b/sysdeps/x86_64/multiarch/wcsncat-generic.c
index bd124d2..d40108b 100644
--- a/sysdeps/x86_64/multiarch/wcsncat-generic.c
+++ b/sysdeps/x86_64/multiarch/wcsncat-generic.c
@@ -1,5 +1,5 @@
/* wcsncat.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncat.c b/sysdeps/x86_64/multiarch/wcsncat.c
index dcae494..963a128 100644
--- a/sysdeps/x86_64/multiarch/wcsncat.c
+++ b/sysdeps/x86_64/multiarch/wcsncat.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsncat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncmp-generic.c b/sysdeps/x86_64/multiarch/wcsncmp-generic.c
index c071a47..9871d03 100644
--- a/sysdeps/x86_64/multiarch/wcsncmp-generic.c
+++ b/sysdeps/x86_64/multiarch/wcsncmp-generic.c
@@ -1,5 +1,5 @@
/* wcsncmp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncmp.c b/sysdeps/x86_64/multiarch/wcsncmp.c
index a973281..62d616f 100644
--- a/sysdeps/x86_64/multiarch/wcsncmp.c
+++ b/sysdeps/x86_64/multiarch/wcsncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsncmp.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncpy-generic.c b/sysdeps/x86_64/multiarch/wcsncpy-generic.c
index 36cc228..9ceeb8e 100644
--- a/sysdeps/x86_64/multiarch/wcsncpy-generic.c
+++ b/sysdeps/x86_64/multiarch/wcsncpy-generic.c
@@ -1,5 +1,5 @@
/* wcsncpy.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsncpy.c b/sysdeps/x86_64/multiarch/wcsncpy.c
index 36822d8..7ade014 100644
--- a/sysdeps/x86_64/multiarch/wcsncpy.c
+++ b/sysdeps/x86_64/multiarch/wcsncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsnlen-generic.c b/sysdeps/x86_64/multiarch/wcsnlen-generic.c
index 8141f0d..a8782d4 100644
--- a/sysdeps/x86_64/multiarch/wcsnlen-generic.c
+++ b/sysdeps/x86_64/multiarch/wcsnlen-generic.c
@@ -1,5 +1,5 @@
/* wcsnlen.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsnlen.c b/sysdeps/x86_64/multiarch/wcsnlen.c
index 2cd83ad..8207159 100644
--- a/sysdeps/x86_64/multiarch/wcsnlen.c
+++ b/sysdeps/x86_64/multiarch/wcsnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsrchr-sse2.S b/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
index 86d17f2..fae02ed 100644
--- a/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
@@ -1,5 +1,5 @@
/* wcsrchr optimized with SSE2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wcsrchr.c b/sysdeps/x86_64/multiarch/wcsrchr.c
index 06de425..97e15ff 100644
--- a/sysdeps/x86_64/multiarch/wcsrchr.c
+++ b/sysdeps/x86_64/multiarch/wcsrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsrchr.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemchr.c b/sysdeps/x86_64/multiarch/wmemchr.c
index d89b3b0..bba6103 100644
--- a/sysdeps/x86_64/multiarch/wmemchr.c
+++ b/sysdeps/x86_64/multiarch/wmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemcmp-sse2.S b/sysdeps/x86_64/multiarch/wmemcmp-sse2.S
index ae86e2a..f9af98c 100644
--- a/sysdeps/x86_64/multiarch/wmemcmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/wmemcmp-sse2.S
@@ -1,5 +1,5 @@
/* wmemcmp optimized with SSE2.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemcmp.c b/sysdeps/x86_64/multiarch/wmemcmp.c
index e947bc6..addbb3e 100644
--- a/sysdeps/x86_64/multiarch/wmemcmp.c
+++ b/sysdeps/x86_64/multiarch/wmemcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemcmp
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemset.c b/sysdeps/x86_64/multiarch/wmemset.c
index a8a72eb..0169f2a 100644
--- a/sysdeps/x86_64/multiarch/wmemset.c
+++ b/sysdeps/x86_64/multiarch/wmemset.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S b/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
index dffb333..68f29e0 100644
--- a/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of wmemset_chk for x86-64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/wmemset_chk.c b/sysdeps/x86_64/multiarch/wmemset_chk.c
index a9a990a..65042da 100644
--- a/sysdeps/x86_64/multiarch/wmemset_chk.c
+++ b/sysdeps/x86_64/multiarch/wmemset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemset_chk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-avx-rtm-vecs.h b/sysdeps/x86_64/multiarch/x86-avx-rtm-vecs.h
index 08a79ec..5933b3f 100644
--- a/sysdeps/x86_64/multiarch/x86-avx-rtm-vecs.h
+++ b/sysdeps/x86_64/multiarch/x86-avx-rtm-vecs.h
@@ -1,6 +1,6 @@
/* Common config for AVX-RTM VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-avx-vecs.h b/sysdeps/x86_64/multiarch/x86-avx-vecs.h
index 8224d48..d10bf17 100644
--- a/sysdeps/x86_64/multiarch/x86-avx-vecs.h
+++ b/sysdeps/x86_64/multiarch/x86-avx-vecs.h
@@ -1,6 +1,6 @@
/* Common config for AVX VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-evex-vecs-common.h b/sysdeps/x86_64/multiarch/x86-evex-vecs-common.h
index 6802115..c9dd882 100644
--- a/sysdeps/x86_64/multiarch/x86-evex-vecs-common.h
+++ b/sysdeps/x86_64/multiarch/x86-evex-vecs-common.h
@@ -1,6 +1,6 @@
/* Common config for EVEX256 and EVEX512 VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-evex256-vecs.h b/sysdeps/x86_64/multiarch/x86-evex256-vecs.h
index 5917b11..4a20bd0 100644
--- a/sysdeps/x86_64/multiarch/x86-evex256-vecs.h
+++ b/sysdeps/x86_64/multiarch/x86-evex256-vecs.h
@@ -1,6 +1,6 @@
/* Common config for EVEX256 VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-evex512-vecs.h b/sysdeps/x86_64/multiarch/x86-evex512-vecs.h
index e9f466c..9ed3ad1 100644
--- a/sysdeps/x86_64/multiarch/x86-evex512-vecs.h
+++ b/sysdeps/x86_64/multiarch/x86-evex512-vecs.h
@@ -1,6 +1,6 @@
/* Common config for EVEX512 VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-sse2-vecs.h b/sysdeps/x86_64/multiarch/x86-sse2-vecs.h
index acca55e..daa47b2 100644
--- a/sysdeps/x86_64/multiarch/x86-sse2-vecs.h
+++ b/sysdeps/x86_64/multiarch/x86-sse2-vecs.h
@@ -1,6 +1,6 @@
/* Common config for SSE2 VECs
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/multiarch/x86-vec-macros.h b/sysdeps/x86_64/multiarch/x86-vec-macros.h
index 0b1260c..6a237c1 100644
--- a/sysdeps/x86_64/multiarch/x86-vec-macros.h
+++ b/sysdeps/x86_64/multiarch/x86-vec-macros.h
@@ -1,6 +1,6 @@
/* Macro helpers for VEC_{type}({vec_num})
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/Makefile b/sysdeps/x86_64/nptl/Makefile
index caa36bb..10252a1 100644
--- a/sysdeps/x86_64/nptl/Makefile
+++ b/sysdeps/x86_64/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/pthread_mutex_backoff.h b/sysdeps/x86_64/nptl/pthread_mutex_backoff.h
index d4bc6ee..35c7cb7 100644
--- a/sysdeps/x86_64/nptl/pthread_mutex_backoff.h
+++ b/sysdeps/x86_64/nptl/pthread_mutex_backoff.h
@@ -1,5 +1,5 @@
/* Pthread mutex backoff configuration.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/pthread_spin_lock.S b/sysdeps/x86_64/nptl/pthread_spin_lock.S
index 86b8ab1..de0b78f 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_lock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/pthread_spin_trylock.S b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
index 6ce6895..152ec11 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_trylock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/pthread_spin_unlock.S b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
index 1791ee9..5b968c3 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_unlock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/rseq-access.h b/sysdeps/x86_64/nptl/rseq-access.h
new file mode 100644
index 0000000..bc966b2
--- /dev/null
+++ b/sysdeps/x86_64/nptl/rseq-access.h
@@ -0,0 +1,77 @@
+/* RSEQ_* accessors. x86_64 version.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Read member of the RSEQ area directly, with single-copy atomicity semantics. */
+#define RSEQ_GETMEM_ONCE(member) \
+ ({ __typeof (RSEQ_SELF()->member) __value; \
+ _Static_assert (sizeof (__value) == 1 \
+ || sizeof (__value) == 4 \
+ || sizeof (__value) == 8, \
+ "size of rseq data"); \
+ if (sizeof (__value) == 1) \
+ asm volatile ("movb %%fs:%P2(%q3),%b0" \
+ : "=q" (__value) \
+ : "0" (0), "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ else if (sizeof (__value) == 4) \
+ asm volatile ("movl %%fs:%P1(%q2),%0" \
+ : "=r" (__value) \
+ : "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ else /* 8 */ \
+ { \
+ asm volatile ("movq %%fs:%P1(%q2),%q0" \
+ : "=r" (__value) \
+ : "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ } \
+ __value; })
+
+/* Read member of the RSEQ area directly. */
+#define RSEQ_GETMEM(member) RSEQ_GETMEM_ONCE(member)
+
+/* Set member of the RSEQ area directly, with single-copy atomicity semantics. */
+#define RSEQ_SETMEM_ONCE(member, value) \
+ ({ \
+ _Static_assert (sizeof (RSEQ_SELF()->member) == 1 \
+ || sizeof (RSEQ_SELF()->member) == 4 \
+ || sizeof (RSEQ_SELF()->member) == 8, \
+ "size of rseq data"); \
+ if (sizeof (RSEQ_SELF()->member) == 1) \
+ asm volatile ("movb %b0,%%fs:%P1(%q2)" : \
+ : "iq" (value), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ else if (sizeof (RSEQ_SELF()->member) == 4) \
+ asm volatile ("movl %0,%%fs:%P1(%q2)" : \
+ : IMM_MODE (value), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ else /* 8 */ \
+ { \
+ /* Since movq takes a signed 32-bit immediate or a register source \
+ operand, use "er" constraint for 32-bit signed integer constant \
+ or register. */ \
+ asm volatile ("movq %q0,%%fs:%P1(%q2)" : \
+ : "er" ((uint64_t) cast_to_integer (value)), \
+ "i" (offsetof (struct rseq_area, member)), \
+ "r" ((long long int) __rseq_offset)); \
+ }})
+
+/* Set member of the RSEQ area directly. */
+#define RSEQ_SETMEM(member, value) RSEQ_SETMEM_ONCE(member, value)
diff --git a/sysdeps/x86_64/nptl/tcb-access.h b/sysdeps/x86_64/nptl/tcb-access.h
index d35948f..defd76f 100644
--- a/sysdeps/x86_64/nptl/tcb-access.h
+++ b/sysdeps/x86_64/nptl/tcb-access.h
@@ -1,5 +1,5 @@
/* THREAD_* accessors. x86_64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/tcb-offsets.sym b/sysdeps/x86_64/nptl/tcb-offsets.sym
index 2bbd563..988a4b8 100644
--- a/sysdeps/x86_64/nptl/tcb-offsets.sym
+++ b/sysdeps/x86_64/nptl/tcb-offsets.sym
@@ -13,6 +13,3 @@ MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
FEATURE_1_OFFSET offsetof (tcbhead_t, feature_1)
SSP_BASE_OFFSET offsetof (tcbhead_t, ssp_base)
-
--- Not strictly offsets, but these values are also used in the TCB.
-TCB_CANCELED_BITMASK CANCELED_BITMASK
diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h
index 876889b..551d342 100644
--- a/sysdeps/x86_64/nptl/tls.h
+++ b/sysdeps/x86_64/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/x86_64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/nptl/tst-x86-64-tls-1.c b/sysdeps/x86_64/nptl/tst-x86-64-tls-1.c
index c4330a1..ea16e9c 100644
--- a/sysdeps/x86_64/nptl/tst-x86-64-tls-1.c
+++ b/sysdeps/x86_64/nptl/tst-x86-64-tls-1.c
@@ -1,5 +1,5 @@
/* Test THREAD_SETMEM and THREAD_SETMEM_NC for IMM64.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/preconfigure b/sysdeps/x86_64/preconfigure
index 24996ba..6e0b6d3 100644
--- a/sysdeps/x86_64/preconfigure
+++ b/sysdeps/x86_64/preconfigure
@@ -11,8 +11,8 @@ printf %s "checking whether $CC compiles in -mx32 mode by default... " >&6; }
if test ${libc_cv_x32+y}
then :
printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __ILP32__
# error not x32
@@ -28,10 +28,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_x32=yes
-else $as_nop
- libc_cv_x32=no
+else case e in #(
+ e) libc_cv_x32=no ;;
+esac
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x32" >&5
printf "%s\n" "$libc_cv_x32" >&6; }
diff --git a/sysdeps/x86_64/rawmemchr.S b/sysdeps/x86_64/rawmemchr.S
index 2810ee7..325591c 100644
--- a/sysdeps/x86_64/rawmemchr.S
+++ b/sysdeps/x86_64/rawmemchr.S
@@ -1,6 +1,6 @@
/* fast SSE2 memchr with 64 byte loop and pmaxub instruction using
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/rshift.S b/sysdeps/x86_64/rshift.S
index feab128..f825eee 100644
--- a/sysdeps/x86_64/rshift.S
+++ b/sysdeps/x86_64/rshift.S
@@ -1,5 +1,5 @@
/* x86-64 __mpn_rshift --
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
index 40807e7..83d70e5 100644
--- a/sysdeps/x86_64/setjmp.S
+++ b/sysdeps/x86_64/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/stackinfo.h b/sysdeps/x86_64/stackinfo.h
index 2cb24a7..416d687 100644
--- a/sysdeps/x86_64/stackinfo.h
+++ b/sysdeps/x86_64/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index d30307f..6cb661b 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF x86-64 ABI.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/stpcpy.S b/sysdeps/x86_64/stpcpy.S
index d3117c8..36631e1 100644
--- a/sysdeps/x86_64/stpcpy.S
+++ b/sysdeps/x86_64/stpcpy.S
@@ -1,5 +1,5 @@
/* stpcpy dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/stpncpy.S b/sysdeps/x86_64/stpncpy.S
index 5e0b147..cc50bd9 100644
--- a/sysdeps/x86_64/stpncpy.S
+++ b/sysdeps/x86_64/stpncpy.S
@@ -1,5 +1,5 @@
/* stpncpy dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcasecmp_l.S b/sysdeps/x86_64/strcasecmp_l.S
index e8c36c0..ca9eea6 100644
--- a/sysdeps/x86_64/strcasecmp_l.S
+++ b/sysdeps/x86_64/strcasecmp_l.S
@@ -1,5 +1,5 @@
/* strcasecmp_l dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcat.S b/sysdeps/x86_64/strcat.S
index 7c7c178..87b68b7 100644
--- a/sysdeps/x86_64/strcat.S
+++ b/sysdeps/x86_64/strcat.S
@@ -1,5 +1,5 @@
/* strcat dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strchr-isa-default-impl.h b/sysdeps/x86_64/strchr-isa-default-impl.h
index 029ce91..89e90fe 100644
--- a/sysdeps/x86_64/strchr-isa-default-impl.h
+++ b/sysdeps/x86_64/strchr-isa-default-impl.h
@@ -1,5 +1,5 @@
/* Set default strchr impl based on ISA level.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strchr.S b/sysdeps/x86_64/strchr.S
index a8346ae..9925b62 100644
--- a/sysdeps/x86_64/strchr.S
+++ b/sysdeps/x86_64/strchr.S
@@ -1,5 +1,5 @@
/* strchr dispatch for RTLD and non-multiarch build
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strchrnul.S b/sysdeps/x86_64/strchrnul.S
index 7e715dc..8f870c6 100644
--- a/sysdeps/x86_64/strchrnul.S
+++ b/sysdeps/x86_64/strchrnul.S
@@ -1,5 +1,5 @@
/* strchrnul dispatch for RTLD and non-multiarch build
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcmp.S b/sysdeps/x86_64/strcmp.S
index 1ab3f28..d378bc5 100644
--- a/sysdeps/x86_64/strcmp.S
+++ b/sysdeps/x86_64/strcmp.S
@@ -1,5 +1,5 @@
/* strcmp dispatch for RTLD and non-multiarch build
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcpy.S b/sysdeps/x86_64/strcpy.S
index e37c7ce..0c25f32 100644
--- a/sysdeps/x86_64/strcpy.S
+++ b/sysdeps/x86_64/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcspn-generic.c b/sysdeps/x86_64/strcspn-generic.c
index 2874018..3d0ad4a 100644
--- a/sysdeps/x86_64/strcspn-generic.c
+++ b/sysdeps/x86_64/strcspn-generic.c
@@ -1,7 +1,7 @@
/* Hook for build strcspn-generic for non-multiarch build. Needed for
the ISA level >= 2 because strcspn-sse4 has a dependency on
strcspn-generic.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strcspn.c b/sysdeps/x86_64/strcspn.c
index 3db7b5d..bdd78e3 100644
--- a/sysdeps/x86_64/strcspn.c
+++ b/sysdeps/x86_64/strcspn.c
@@ -1,5 +1,5 @@
/* strcspn hook for non-multiarch and RTLD build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strlen.S b/sysdeps/x86_64/strlen.S
index cea7ace..53e0c21 100644
--- a/sysdeps/x86_64/strlen.S
+++ b/sysdeps/x86_64/strlen.S
@@ -1,5 +1,5 @@
/* strlen dispatch for RTLD and non-multiarch build
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strncase_l.S b/sysdeps/x86_64/strncase_l.S
index 6b04c9fb..4d50870 100644
--- a/sysdeps/x86_64/strncase_l.S
+++ b/sysdeps/x86_64/strncase_l.S
@@ -1,5 +1,5 @@
/* strcasecmp_l dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strncat.S b/sysdeps/x86_64/strncat.S
index c0524a0..753f30e 100644
--- a/sysdeps/x86_64/strncat.S
+++ b/sysdeps/x86_64/strncat.S
@@ -1,5 +1,5 @@
/* strncat dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strncmp.S b/sysdeps/x86_64/strncmp.S
index 07f09d6..bb6f477 100644
--- a/sysdeps/x86_64/strncmp.S
+++ b/sysdeps/x86_64/strncmp.S
@@ -1,5 +1,5 @@
/* strncmp dispatch for RTLD and non-multiarch build
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strncpy.S b/sysdeps/x86_64/strncpy.S
index 28ad0d7..43ae94c 100644
--- a/sysdeps/x86_64/strncpy.S
+++ b/sysdeps/x86_64/strncpy.S
@@ -1,5 +1,5 @@
/* strncpy dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strnlen.S b/sysdeps/x86_64/strnlen.S
index fb0f560..b975989 100644
--- a/sysdeps/x86_64/strnlen.S
+++ b/sysdeps/x86_64/strnlen.S
@@ -1,5 +1,5 @@
/* strnlen dispatch for RTLD and non-multiarch build
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strpbrk-generic.c b/sysdeps/x86_64/strpbrk-generic.c
index eb72a5d..5af841c 100644
--- a/sysdeps/x86_64/strpbrk-generic.c
+++ b/sysdeps/x86_64/strpbrk-generic.c
@@ -1,7 +1,7 @@
/* Hook for build strpbrk-generic for non-multiarch build. Needed for
the ISA level >= 2 because strpbrk-sse4 has a dependency on
strpbrk-generic.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strpbrk.c b/sysdeps/x86_64/strpbrk.c
index 9c99564..d5c82e8 100644
--- a/sysdeps/x86_64/strpbrk.c
+++ b/sysdeps/x86_64/strpbrk.c
@@ -1,5 +1,5 @@
/* strpbrk hook for non-multiarch and RTLD build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strrchr.S b/sysdeps/x86_64/strrchr.S
index 00a2cac..9db1d09 100644
--- a/sysdeps/x86_64/strrchr.S
+++ b/sysdeps/x86_64/strrchr.S
@@ -1,5 +1,5 @@
/* strrchr dispatch for RTLD and non-multiarch build
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strspn-generic.c b/sysdeps/x86_64/strspn-generic.c
index 051bba5..45e7be4 100644
--- a/sysdeps/x86_64/strspn-generic.c
+++ b/sysdeps/x86_64/strspn-generic.c
@@ -1,7 +1,7 @@
/* Hook for build strspn-generic for non-multiarch build. Needed for
the ISA level >= 2 because strspn-sse4 has a dependency on
strspn-generic.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/strspn.c b/sysdeps/x86_64/strspn.c
index 3feea48..0507c13 100644
--- a/sysdeps/x86_64/strspn.c
+++ b/sysdeps/x86_64/strspn.c
@@ -1,5 +1,5 @@
/* strspn hook for non-multiarch and RTLD build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/sub_n.S b/sysdeps/x86_64/sub_n.S
index f43efc8..bb4aef5 100644
--- a/sysdeps/x86_64/sub_n.S
+++ b/sysdeps/x86_64/sub_n.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/submul_1.S b/sysdeps/x86_64/submul_1.S
index 7ba095f..e87da0e 100644
--- a/sysdeps/x86_64/submul_1.S
+++ b/sysdeps/x86_64/submul_1.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
diff --git a/sysdeps/x86_64/sys/ucontext.h b/sysdeps/x86_64/sys/ucontext.h
index c2d3518..aa2cd33 100644
--- a/sysdeps/x86_64/sys/ucontext.h
+++ b/sysdeps/x86_64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index db6e36b..cb475be 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tls_get_addr.S b/sysdeps/x86_64/tls_get_addr.S
index a6c1c7f..9c9b93b 100644
--- a/sysdeps/x86_64/tls_get_addr.S
+++ b/sysdeps/x86_64/tls_get_addr.S
@@ -1,5 +1,5 @@
/* Stack-aligning implementation of __tls_get_addr. x86-64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tlsdesc.c b/sysdeps/x86_64/tlsdesc.c
index 49ffd6d..890045a 100644
--- a/sysdeps/x86_64/tlsdesc.c
+++ b/sysdeps/x86_64/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. x86_64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-audit.h b/sysdeps/x86_64/tst-audit.h
index 5a190b4..0ae2155 100644
--- a/sysdeps/x86_64/tst-audit.h
+++ b/sysdeps/x86_64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. x86_64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/x86_64/tst-audit10-aux.c b/sysdeps/x86_64/tst-audit10-aux.c
index e2dc683..50c9074 100644
--- a/sysdeps/x86_64/tst-audit10-aux.c
+++ b/sysdeps/x86_64/tst-audit10-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker, -mavx512f part.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-audit10.c b/sysdeps/x86_64/tst-audit10.c
index 3594c74..850ea96 100644
--- a/sysdeps/x86_64/tst-audit10.c
+++ b/sysdeps/x86_64/tst-audit10.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-audit4-aux.c b/sysdeps/x86_64/tst-audit4-aux.c
index 8beba67..f472be3 100644
--- a/sysdeps/x86_64/tst-audit4-aux.c
+++ b/sysdeps/x86_64/tst-audit4-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker, -mavx part.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-audit4.c b/sysdeps/x86_64/tst-audit4.c
index 9815144..7d82546 100644
--- a/sysdeps/x86_64/tst-audit4.c
+++ b/sysdeps/x86_64/tst-audit4.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-auditmod10a.c b/sysdeps/x86_64/tst-auditmod10a.c
index f3e7db4..554258b 100644
--- a/sysdeps/x86_64/tst-auditmod10a.c
+++ b/sysdeps/x86_64/tst-auditmod10a.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-auditmod10b.c b/sysdeps/x86_64/tst-auditmod10b.c
index 7f8f4aa..0b994ef 100644
--- a/sysdeps/x86_64/tst-auditmod10b.c
+++ b/sysdeps/x86_64/tst-auditmod10b.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -125,7 +125,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
#include <tst-audit.h>
-#ifdef __AVX512F__
#include <immintrin.h>
#include <cpuid.h>
@@ -148,9 +147,37 @@ check_avx512 (void)
return (eax & 0xe6) == 0xe6;
}
-#else
-#include <emmintrin.h>
-#endif
+void
+__attribute__ ((target ("avx512f")))
+pltenter_avx512f (La_regs *regs, long int *framesizep)
+{
+ __m512i zero = _mm512_setzero_si512 ();
+ if (memcmp (&regs->lr_vector[0], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[1], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[2], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[3], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[4], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[5], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[6], &zero, sizeof (zero))
+ || memcmp (&regs->lr_vector[7], &zero, sizeof (zero)))
+ abort ();
+
+ for (int i = 0; i < 8; i++)
+ regs->lr_vector[i].zmm[0]
+ = (La_x86_64_zmm) _mm512_set1_epi64 (i + 1);
+
+ __m512i zmm = _mm512_set1_epi64 (-1);
+ asm volatile ("vmovdqa64 %0, %%zmm0" : : "x" (zmm) : "xmm0" );
+ asm volatile ("vmovdqa64 %0, %%zmm1" : : "x" (zmm) : "xmm1" );
+ asm volatile ("vmovdqa64 %0, %%zmm2" : : "x" (zmm) : "xmm2" );
+ asm volatile ("vmovdqa64 %0, %%zmm3" : : "x" (zmm) : "xmm3" );
+ asm volatile ("vmovdqa64 %0, %%zmm4" : : "x" (zmm) : "xmm4" );
+ asm volatile ("vmovdqa64 %0, %%zmm5" : : "x" (zmm) : "xmm5" );
+ asm volatile ("vmovdqa64 %0, %%zmm6" : : "x" (zmm) : "xmm6" );
+ asm volatile ("vmovdqa64 %0, %%zmm7" : : "x" (zmm) : "xmm7" );
+
+ *framesizep = 1024;
+}
ElfW(Addr)
pltenter (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
@@ -160,39 +187,33 @@ pltenter (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
printf ("pltenter: symname=%s, st_value=%#lx, ndx=%u, flags=%u\n",
symname, (long int) sym->st_value, ndx, *flags);
-#ifdef __AVX512F__
if (check_avx512 () && strcmp (symname, "audit_test") == 0)
+ pltenter_avx512f (regs, framesizep);
+
+ return sym->st_value;
+}
+
+void
+__attribute__ ((target ("avx512f")))
+pltexit_avx512f (const La_regs *inregs, La_retval *outregs)
+{
+ __m512i zero = _mm512_setzero_si512 ();
+ if (memcmp (&outregs->lrv_vector0, &zero, sizeof (zero)))
+ abort ();
+
+ for (int i = 0; i < 8; i++)
{
- __m512i zero = _mm512_setzero_si512 ();
- if (memcmp (&regs->lr_vector[0], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[1], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[2], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[3], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[4], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[5], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[6], &zero, sizeof (zero))
- || memcmp (&regs->lr_vector[7], &zero, sizeof (zero)))
- abort ();
-
- for (int i = 0; i < 8; i++)
- regs->lr_vector[i].zmm[0]
- = (La_x86_64_zmm) _mm512_set1_epi64 (i + 1);
-
- __m512i zmm = _mm512_set1_epi64 (-1);
- asm volatile ("vmovdqa64 %0, %%zmm0" : : "x" (zmm) : "xmm0" );
- asm volatile ("vmovdqa64 %0, %%zmm1" : : "x" (zmm) : "xmm1" );
- asm volatile ("vmovdqa64 %0, %%zmm2" : : "x" (zmm) : "xmm2" );
- asm volatile ("vmovdqa64 %0, %%zmm3" : : "x" (zmm) : "xmm3" );
- asm volatile ("vmovdqa64 %0, %%zmm4" : : "x" (zmm) : "xmm4" );
- asm volatile ("vmovdqa64 %0, %%zmm5" : : "x" (zmm) : "xmm5" );
- asm volatile ("vmovdqa64 %0, %%zmm6" : : "x" (zmm) : "xmm6" );
- asm volatile ("vmovdqa64 %0, %%zmm7" : : "x" (zmm) : "xmm7" );
-
- *framesizep = 1024;
+ __m512i zmm = _mm512_set1_epi64 (i + 1);
+ if (memcmp (&inregs->lr_vector[i], &zmm, sizeof (zmm)) != 0)
+ abort ();
}
-#endif
- return sym->st_value;
+ outregs->lrv_vector0.zmm[0]
+ = (La_x86_64_zmm) _mm512_set1_epi64 (0x12349876);
+
+ __m512i zmm = _mm512_set1_epi64 (-1);
+ asm volatile ("vmovdqa64 %0, %%zmm0" : : "x" (zmm) : "xmm0" );
+ asm volatile ("vmovdqa64 %0, %%zmm1" : : "x" (zmm) : "xmm1" );
}
unsigned int
@@ -204,28 +225,8 @@ pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
symname, (long int) sym->st_value, ndx,
(ptrdiff_t) outregs->int_retval);
-#ifdef __AVX512F__
if (check_avx512 () && strcmp (symname, "audit_test") == 0)
- {
- __m512i zero = _mm512_setzero_si512 ();
- if (memcmp (&outregs->lrv_vector0, &zero, sizeof (zero)))
- abort ();
-
- for (int i = 0; i < 8; i++)
- {
- __m512i zmm = _mm512_set1_epi64 (i + 1);
- if (memcmp (&inregs->lr_vector[i], &zmm, sizeof (zmm)) != 0)
- abort ();
- }
-
- outregs->lrv_vector0.zmm[0]
- = (La_x86_64_zmm) _mm512_set1_epi64 (0x12349876);
-
- __m512i zmm = _mm512_set1_epi64 (-1);
- asm volatile ("vmovdqa64 %0, %%zmm0" : : "x" (zmm) : "xmm0" );
- asm volatile ("vmovdqa64 %0, %%zmm1" : : "x" (zmm) : "xmm1" );
- }
-#endif
+ pltexit_avx512f (inregs, outregs);
return 0;
}
diff --git a/sysdeps/x86_64/tst-avx-aux.c b/sysdeps/x86_64/tst-avx-aux.c
index 59ac6fd..9495698 100644
--- a/sysdeps/x86_64/tst-avx-aux.c
+++ b/sysdeps/x86_64/tst-avx-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker, -mavx part.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-avx.c b/sysdeps/x86_64/tst-avx.c
index 8579504..a6ae398 100644
--- a/sysdeps/x86_64/tst-avx.c
+++ b/sysdeps/x86_64/tst-avx.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-avx512-aux.c b/sysdeps/x86_64/tst-avx512-aux.c
index bff2649..128b4cd 100644
--- a/sysdeps/x86_64/tst-avx512-aux.c
+++ b/sysdeps/x86_64/tst-avx512-aux.c
@@ -1,6 +1,6 @@
/* Test case for preserved AVX512 registers in dynamic linker,
-mavx512 part.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-avx512.c b/sysdeps/x86_64/tst-avx512.c
index ef92db0..f5dafc5 100644
--- a/sysdeps/x86_64/tst-avx512.c
+++ b/sysdeps/x86_64/tst-avx512.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-1.c b/sysdeps/x86_64/tst-cet-legacy-1.c
index e2d8d55..c3f7225 100644
--- a/sysdeps/x86_64/tst-cet-legacy-1.c
+++ b/sysdeps/x86_64/tst-cet-legacy-1.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable linked with legacy
shared object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-10.c b/sysdeps/x86_64/tst-cet-legacy-10.c
index 02fe9e9..0b41250 100644
--- a/sysdeps/x86_64/tst-cet-legacy-10.c
+++ b/sysdeps/x86_64/tst-cet-legacy-10.c
@@ -1,5 +1,5 @@
/* Check CPU_FEATURE_ACTIVE on IBT and SHSTK.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-10a-static.c b/sysdeps/x86_64/tst-cet-legacy-10a-static.c
index 05073a5..ecc1208 100644
--- a/sysdeps/x86_64/tst-cet-legacy-10a-static.c
+++ b/sysdeps/x86_64/tst-cet-legacy-10a-static.c
@@ -1,2 +1 @@
-#pragma GCC target ("shstk")
#include "tst-cet-legacy-10.c"
diff --git a/sysdeps/x86_64/tst-cet-legacy-10a.c b/sysdeps/x86_64/tst-cet-legacy-10a.c
index 05073a5..ecc1208 100644
--- a/sysdeps/x86_64/tst-cet-legacy-10a.c
+++ b/sysdeps/x86_64/tst-cet-legacy-10a.c
@@ -1,2 +1 @@
-#pragma GCC target ("shstk")
#include "tst-cet-legacy-10.c"
diff --git a/sysdeps/x86_64/tst-cet-legacy-1a.c b/sysdeps/x86_64/tst-cet-legacy-1a.c
index 205e089..0504300 100644
--- a/sysdeps/x86_64/tst-cet-legacy-1a.c
+++ b/sysdeps/x86_64/tst-cet-legacy-1a.c
@@ -1,5 +1,5 @@
/* Test for re-exec with legacy bitmap.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-2.c b/sysdeps/x86_64/tst-cet-legacy-2.c
index 887a98e..1329918 100644
--- a/sysdeps/x86_64/tst-cet-legacy-2.c
+++ b/sysdeps/x86_64/tst-cet-legacy-2.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-3.c b/sysdeps/x86_64/tst-cet-legacy-3.c
index 39b0264..e010eb6 100644
--- a/sysdeps/x86_64/tst-cet-legacy-3.c
+++ b/sysdeps/x86_64/tst-cet-legacy-3.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-4.c b/sysdeps/x86_64/tst-cet-legacy-4.c
index 3d6e2ca..e1a5685 100644
--- a/sysdeps/x86_64/tst-cet-legacy-4.c
+++ b/sysdeps/x86_64/tst-cet-legacy-4.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-5.c b/sysdeps/x86_64/tst-cet-legacy-5.c
index c546eb8..0c311f6 100644
--- a/sysdeps/x86_64/tst-cet-legacy-5.c
+++ b/sysdeps/x86_64/tst-cet-legacy-5.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-6.c b/sysdeps/x86_64/tst-cet-legacy-6.c
index 1cfe8e8..7913027 100644
--- a/sysdeps/x86_64/tst-cet-legacy-6.c
+++ b/sysdeps/x86_64/tst-cet-legacy-6.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-7.c b/sysdeps/x86_64/tst-cet-legacy-7.c
index 0d72de7..f7d7a2c0 100644
--- a/sysdeps/x86_64/tst-cet-legacy-7.c
+++ b/sysdeps/x86_64/tst-cet-legacy-7.c
@@ -1,5 +1,5 @@
/* Check compatibility of legacy executable with a JIT engine.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-8.c b/sysdeps/x86_64/tst-cet-legacy-8.c
index 303c658..1594fb6 100644
--- a/sysdeps/x86_64/tst-cet-legacy-8.c
+++ b/sysdeps/x86_64/tst-cet-legacy-8.c
@@ -1,5 +1,5 @@
/* Check incompatibility with legacy JIT engine.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-9.c b/sysdeps/x86_64/tst-cet-legacy-9.c
index 7f2f1a2..b9a1aa6 100644
--- a/sysdeps/x86_64/tst-cet-legacy-9.c
+++ b/sysdeps/x86_64/tst-cet-legacy-9.c
@@ -1,5 +1,5 @@
/* Check CET compatibility with legacy JIT engine via GLIBC_TUNABLES.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-1.c b/sysdeps/x86_64/tst-cet-legacy-mod-1.c
index da06bce..31a55dc 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-1.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-1.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with legacy shared
object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-2.c b/sysdeps/x86_64/tst-cet-legacy-mod-2.c
index c3f77c8..9da36ab 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-2.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-2.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with legacy shared
object.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-5.c b/sysdeps/x86_64/tst-cet-legacy-mod-5.c
index 3eacd58..4d7c115 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-5.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-5.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-5c.c b/sysdeps/x86_64/tst-cet-legacy-mod-5c.c
index 6acb36b..3e55696 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-5c.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-5c.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-6.c b/sysdeps/x86_64/tst-cet-legacy-mod-6.c
index 3eacd58..4d7c115 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-6.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-6.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-cet-legacy-mod-6c.c b/sysdeps/x86_64/tst-cet-legacy-mod-6c.c
index 6acb36b..3e55696 100644
--- a/sysdeps/x86_64/tst-cet-legacy-mod-6c.c
+++ b/sysdeps/x86_64/tst-cet-legacy-mod-6c.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-glibc-hwcaps.c b/sysdeps/x86_64/tst-glibc-hwcaps.c
index 7e85876..110b086 100644
--- a/sysdeps/x86_64/tst-glibc-hwcaps.c
+++ b/sysdeps/x86_64/tst-glibc-hwcaps.c
@@ -1,5 +1,5 @@
/* glibc-hwcaps subdirectory test. x86_64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-gnu2-tls2mod1.S b/sysdeps/x86_64/tst-gnu2-tls2mod1.S
index 1d63666..0abd28f 100644
--- a/sysdeps/x86_64/tst-gnu2-tls2mod1.S
+++ b/sysdeps/x86_64/tst-gnu2-tls2mod1.S
@@ -1,5 +1,5 @@
/* Check if TLSDESC relocation preserves %rdi, %rsi and %rbx.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-platform-1.c b/sysdeps/x86_64/tst-platform-1.c
index 238406a..349e979 100644
--- a/sysdeps/x86_64/tst-platform-1.c
+++ b/sysdeps/x86_64/tst-platform-1.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-platformmod-1.c b/sysdeps/x86_64/tst-platformmod-1.c
index 2fd7ff9..54a5dd6 100644
--- a/sysdeps/x86_64/tst-platformmod-1.c
+++ b/sysdeps/x86_64/tst-platformmod-1.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-platformmod-2.c b/sysdeps/x86_64/tst-platformmod-2.c
index 060ce32..eaf9e4a 100644
--- a/sysdeps/x86_64/tst-platformmod-2.c
+++ b/sysdeps/x86_64/tst-platformmod-2.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-plt-rewrite1.c b/sysdeps/x86_64/tst-plt-rewrite1.c
index 8678595..dde4afa 100644
--- a/sysdeps/x86_64/tst-plt-rewrite1.c
+++ b/sysdeps/x86_64/tst-plt-rewrite1.c
@@ -1,5 +1,5 @@
/* Test PLT rewrite.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-plt-rewrite2.c b/sysdeps/x86_64/tst-plt-rewrite2.c
index 8427df5..fa81590 100644
--- a/sysdeps/x86_64/tst-plt-rewrite2.c
+++ b/sysdeps/x86_64/tst-plt-rewrite2.c
@@ -1,5 +1,5 @@
/* Test PLT rewrite with 32-bit displacement overflow.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-plt-rewritemod1.c b/sysdeps/x86_64/tst-plt-rewritemod1.c
index 99f21fb..1176cba 100644
--- a/sysdeps/x86_64/tst-plt-rewritemod1.c
+++ b/sysdeps/x86_64/tst-plt-rewritemod1.c
@@ -1,5 +1,5 @@
/* Check PLT rewrite works correctly.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-plt-rewritemod2.c b/sysdeps/x86_64/tst-plt-rewritemod2.c
index 4a86d73..c1d4cfc 100644
--- a/sysdeps/x86_64/tst-plt-rewritemod2.c
+++ b/sysdeps/x86_64/tst-plt-rewritemod2.c
@@ -1,5 +1,5 @@
/* Check PLT rewrite with 32-bit displacement overflow.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-quad1.c b/sysdeps/x86_64/tst-quad1.c
index afa7aeb..9e41053 100644
--- a/sysdeps/x86_64/tst-quad1.c
+++ b/sysdeps/x86_64/tst-quad1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-quadmod1.S b/sysdeps/x86_64/tst-quadmod1.S
index 2911682..3131af3 100644
--- a/sysdeps/x86_64/tst-quadmod1.S
+++ b/sysdeps/x86_64/tst-quadmod1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-quadmod2.S b/sysdeps/x86_64/tst-quadmod2.S
index ee709ed..0a68418 100644
--- a/sysdeps/x86_64/tst-quadmod2.S
+++ b/sysdeps/x86_64/tst-quadmod2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-rsi-strlen.c b/sysdeps/x86_64/tst-rsi-strlen.c
index 2c424ff..faf8946 100644
--- a/sysdeps/x86_64/tst-rsi-strlen.c
+++ b/sysdeps/x86_64/tst-rsi-strlen.c
@@ -1,5 +1,5 @@
/* Test strlen with 0 in the RSI register.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,7 +44,7 @@ typedef struct
} parameter_t;
size_t
-__attribute__ ((weak, noinline, noclone))
+__attribute__ ((weak)) __attribute_optimization_barrier__
do_strlen (parameter_t *a, int zero, const CHAR *str)
{
return CALL (a, str);
diff --git a/sysdeps/x86_64/tst-rsi-wcslen.c b/sysdeps/x86_64/tst-rsi-wcslen.c
index a1028ce..9d3cdd4 100644
--- a/sysdeps/x86_64/tst-rsi-wcslen.c
+++ b/sysdeps/x86_64/tst-rsi-wcslen.c
@@ -1,5 +1,5 @@
/* Test wcslen with 0 in the RSI register.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1-extra.S b/sysdeps/x86_64/tst-shstk-legacy-1-extra.S
index e2e27c5..77565cc 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1-extra.S
+++ b/sysdeps/x86_64/tst-shstk-legacy-1-extra.S
@@ -1,5 +1,5 @@
/* Legacy shadow stack code.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1a.c b/sysdeps/x86_64/tst-shstk-legacy-1a.c
index edfd72c..4ece524 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1a.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1a.c
@@ -1,5 +1,5 @@
/* Check that legacy shadow stack code won't trigger segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1b.c b/sysdeps/x86_64/tst-shstk-legacy-1b.c
index 62943d7..306f83c 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1b.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1b.c
@@ -1,5 +1,5 @@
/* Check that legacy shadow stack code will trigger segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1c.c b/sysdeps/x86_64/tst-shstk-legacy-1c.c
index da01fdf..b27834d 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1c.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1c.c
@@ -1,6 +1,6 @@
/* Check that legacy shadow stack code won't trigger segfault with
GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1d.c b/sysdeps/x86_64/tst-shstk-legacy-1d.c
index e9783b1..7edaec7 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1d.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1d.c
@@ -1,6 +1,6 @@
/* Check that legacy shadow stack code in init_array won't trigger
segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1e-static.sh b/sysdeps/x86_64/tst-shstk-legacy-1e-static.sh
index 0a9a164..d1219d4 100755
--- a/sysdeps/x86_64/tst-shstk-legacy-1e-static.sh
+++ b/sysdeps/x86_64/tst-shstk-legacy-1e-static.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Check that legacy shadow stack code in init_array will trigger
# segfault.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1e.c b/sysdeps/x86_64/tst-shstk-legacy-1e.c
index 4c7706d..3c1d8c6 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1e.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1e.c
@@ -1,6 +1,6 @@
/* Check that legacy shadow stack code in init_array will trigger
segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1e.sh b/sysdeps/x86_64/tst-shstk-legacy-1e.sh
index 3dec562..09ba384 100755
--- a/sysdeps/x86_64/tst-shstk-legacy-1e.sh
+++ b/sysdeps/x86_64/tst-shstk-legacy-1e.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Check that legacy shadow stack code in init_array will trigger
# segfault.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1f.c b/sysdeps/x86_64/tst-shstk-legacy-1f.c
index 098520d..e713272 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1f.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1f.c
@@ -1,6 +1,6 @@
/* Check that legacy shadow stack code in init_array won't trigger
segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1g.c b/sysdeps/x86_64/tst-shstk-legacy-1g.c
index 0faa052..4a12ad3 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-1g.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-1g.c
@@ -1,6 +1,6 @@
/* Check that legacy shadow stack code in init_array will trigger
segfault.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-1g.sh b/sysdeps/x86_64/tst-shstk-legacy-1g.sh
index 249831e..5666617 100755
--- a/sysdeps/x86_64/tst-shstk-legacy-1g.sh
+++ b/sysdeps/x86_64/tst-shstk-legacy-1g.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Check that legacy shadow stack code in init_array will trigger
# segfault.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-shstk-legacy-mod-1.c b/sysdeps/x86_64/tst-shstk-legacy-mod-1.c
index c3e9055..dd21221 100644
--- a/sysdeps/x86_64/tst-shstk-legacy-mod-1.c
+++ b/sysdeps/x86_64/tst-shstk-legacy-mod-1.c
@@ -1,5 +1,5 @@
/* Check legacy shadow stack code in init_array.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/tst-sse.c b/sysdeps/x86_64/tst-sse.c
index bdde898..ad4e7e6 100644
--- a/sysdeps/x86_64/tst-sse.c
+++ b/sysdeps/x86_64/tst-sse.c
@@ -1,5 +1,5 @@
/* Test case for preserved SSE registers in dynamic linker.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/varshift.c b/sysdeps/x86_64/varshift.c
index 8db06d1..3dc8b92 100644
--- a/sysdeps/x86_64/varshift.c
+++ b/sysdeps/x86_64/varshift.c
@@ -1,7 +1,7 @@
/* Hook for build varshift for non-multiarch build. Needed for the
ISA level >= 2 because strspn-sse4, strcspn-sse4, and strpbrk-sse4
all have a dependency on varshift.c.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcpcpy-generic.c b/sysdeps/x86_64/wcpcpy-generic.c
index 9cd392e..b386988 100644
--- a/sysdeps/x86_64/wcpcpy-generic.c
+++ b/sysdeps/x86_64/wcpcpy-generic.c
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcpcpy .c files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcpcpy.S b/sysdeps/x86_64/wcpcpy.S
index dcc9361..90d85ae 100644
--- a/sysdeps/x86_64/wcpcpy.S
+++ b/sysdeps/x86_64/wcpcpy.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcpcpy .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcpncpy-generic.c b/sysdeps/x86_64/wcpncpy-generic.c
index ec811a4..afca689 100644
--- a/sysdeps/x86_64/wcpncpy-generic.c
+++ b/sysdeps/x86_64/wcpncpy-generic.c
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcpncpy .c files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcpncpy.S b/sysdeps/x86_64/wcpncpy.S
index fcc728e..65ab9d1 100644
--- a/sysdeps/x86_64/wcpncpy.S
+++ b/sysdeps/x86_64/wcpncpy.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcpcpy .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcscat-generic.c b/sysdeps/x86_64/wcscat-generic.c
index 3cce06a..ad6407d 100644
--- a/sysdeps/x86_64/wcscat-generic.c
+++ b/sysdeps/x86_64/wcscat-generic.c
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcscat .c files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcscat.S b/sysdeps/x86_64/wcscat.S
index f920e88..14f7830 100644
--- a/sysdeps/x86_64/wcscat.S
+++ b/sysdeps/x86_64/wcscat.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcscat .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcschr.S b/sysdeps/x86_64/wcschr.S
index abc32ef..368f91d 100644
--- a/sysdeps/x86_64/wcschr.S
+++ b/sysdeps/x86_64/wcschr.S
@@ -1,5 +1,5 @@
/* wcschr dispatch for RTLD and non-multiarch build
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcscmp.S b/sysdeps/x86_64/wcscmp.S
index 74244c4..7311d44 100644
--- a/sysdeps/x86_64/wcscmp.S
+++ b/sysdeps/x86_64/wcscmp.S
@@ -1,5 +1,5 @@
/* strlen dispatch for RTLD and non-multiarch build
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcscpy-generic.c b/sysdeps/x86_64/wcscpy-generic.c
index 7269a02..d6c7531 100644
--- a/sysdeps/x86_64/wcscpy-generic.c
+++ b/sysdeps/x86_64/wcscpy-generic.c
@@ -1,5 +1,5 @@
/* wcscpy dispatch for RTLD and non-multiarch .c ISA level 1 build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcscpy.S b/sysdeps/x86_64/wcscpy.S
index c8f3ca1..8164b8e 100644
--- a/sysdeps/x86_64/wcscpy.S
+++ b/sysdeps/x86_64/wcscpy.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcscpy .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcslen.S b/sysdeps/x86_64/wcslen.S
index b83c423..54ed039 100644
--- a/sysdeps/x86_64/wcslen.S
+++ b/sysdeps/x86_64/wcslen.S
@@ -1,5 +1,5 @@
/* wcslen dispatch for RTLD and non-multiarch build
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncat-generic.c b/sysdeps/x86_64/wcsncat-generic.c
index caebba1..84f2fda 100644
--- a/sysdeps/x86_64/wcsncat-generic.c
+++ b/sysdeps/x86_64/wcsncat-generic.c
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcsncat .c files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncat.S b/sysdeps/x86_64/wcsncat.S
index 382e62b..c15350d 100644
--- a/sysdeps/x86_64/wcsncat.S
+++ b/sysdeps/x86_64/wcsncat.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcsncat .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncmp-generic.c b/sysdeps/x86_64/wcsncmp-generic.c
index e51429f..7d5b56d 100644
--- a/sysdeps/x86_64/wcsncmp-generic.c
+++ b/sysdeps/x86_64/wcsncmp-generic.c
@@ -1,5 +1,5 @@
/* wcsncmp dispatch for RTLD and non-multiarch .c ISA level 1 build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncmp.S b/sysdeps/x86_64/wcsncmp.S
index 19182c4..21311c8 100644
--- a/sysdeps/x86_64/wcsncmp.S
+++ b/sysdeps/x86_64/wcsncmp.S
@@ -1,5 +1,5 @@
/* wcsncmp dispatch for RTLD and non-multiarch .c files
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncpy-generic.c b/sysdeps/x86_64/wcsncpy-generic.c
index ab7ec60..466750f 100644
--- a/sysdeps/x86_64/wcsncpy-generic.c
+++ b/sysdeps/x86_64/wcsncpy-generic.c
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcsncpy .c files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsncpy.S b/sysdeps/x86_64/wcsncpy.S
index a754526..cc3958d 100644
--- a/sysdeps/x86_64/wcsncpy.S
+++ b/sysdeps/x86_64/wcsncpy.S
@@ -1,5 +1,5 @@
/* ISA level static dispatch for wcsncpy .S files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsnlen-generic.c b/sysdeps/x86_64/wcsnlen-generic.c
index 26aef00..15c2dac 100644
--- a/sysdeps/x86_64/wcsnlen-generic.c
+++ b/sysdeps/x86_64/wcsnlen-generic.c
@@ -1,5 +1,5 @@
/* wcsnlen dispatch for RTLD and non-multiarch .c ISA level 1 build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsnlen.S b/sysdeps/x86_64/wcsnlen.S
index a4c8123..509b555 100644
--- a/sysdeps/x86_64/wcsnlen.S
+++ b/sysdeps/x86_64/wcsnlen.S
@@ -1,5 +1,5 @@
/* wcsnlen dispatch for RTLD and non-multiarch .c files
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wcsrchr.S b/sysdeps/x86_64/wcsrchr.S
index a8150ca..039658e 100644
--- a/sysdeps/x86_64/wcsrchr.S
+++ b/sysdeps/x86_64/wcsrchr.S
@@ -1,5 +1,5 @@
/* wcsrchr dispatch for RTLD and non-multiarch build
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wmemchr.S b/sysdeps/x86_64/wmemchr.S
index 5ac503c..12592c4 100644
--- a/sysdeps/x86_64/wmemchr.S
+++ b/sysdeps/x86_64/wmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wmemcmp.S b/sysdeps/x86_64/wmemcmp.S
index 273e026..5c2e05f 100644
--- a/sysdeps/x86_64/wmemcmp.S
+++ b/sysdeps/x86_64/wmemcmp.S
@@ -1,5 +1,5 @@
/* wmemcmp hook for non-multiarch and RTLD build.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/wmemset_chk.S b/sysdeps/x86_64/wmemset_chk.S
index bdc6ba1..829bf87 100644
--- a/sysdeps/x86_64/wmemset_chk.S
+++ b/sysdeps/x86_64/wmemset_chk.S
@@ -1,5 +1,5 @@
/* Checking wmemset for x86-64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/dl-tls.h b/sysdeps/x86_64/x32/dl-tls.h
index fde9f54..04ac0fe 100644
--- a/sysdeps/x86_64/dl-tls.h
+++ b/sysdeps/x86_64/x32/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86-64 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,4 +31,11 @@ typedef struct dl_tls_index
extern void *__tls_get_addr (tls_index *ti);
+/* Dynamic thread vector pointers point to the start of each
+ TLS block. */
+#define TLS_DTV_OFFSET 0
+
+/* Static TLS offsets are relative to the unadjusted thread pointer. */
+#define TLS_TP_OFFSET 0
+
#endif /* _X86_64_DL_TLS_H */
diff --git a/sysdeps/x86_64/x32/fpu/s_lrint.S b/sysdeps/x86_64/x32/fpu/s_lrint.S
index 772baf9..10914a5 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrint.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/fpu/s_lrintf.S b/sysdeps/x86_64/x32/fpu/s_lrintf.S
index 92d90ac..663161f 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrintf.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/fpu/s_lrintl.S b/sysdeps/x86_64/x32/fpu/s_lrintl.S
index 37ccf1b..91a5cb9 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrintl.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/gmp-mparam.h b/sysdeps/x86_64/x32/gmp-mparam.h
index 88cabf1..9b78659 100644
--- a/sysdeps/x86_64/x32/gmp-mparam.h
+++ b/sysdeps/x86_64/x32/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 2012-2024 Free Software Foundation, Inc.
+Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/x86_64/x32/string-optype.h b/sysdeps/x86_64/x32/string-optype.h
index 1911543..82cc765 100644
--- a/sysdeps/x86_64/x32/string-optype.h
+++ b/sysdeps/x86_64/x32/string-optype.h
@@ -1,5 +1,5 @@
/* Define a type to use for word access. Generic version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/sysdep.h b/sysdeps/x86_64/x32/sysdep.h
index 4647ea4..62aa505 100644
--- a/sysdeps/x86_64/x32/sysdep.h
+++ b/sysdeps/x86_64/x32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x32.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/test-size_t.h b/sysdeps/x86_64/x32/test-size_t.h
index 66b9c48..9999865 100644
--- a/sysdeps/x86_64/x32/test-size_t.h
+++ b/sysdeps/x86_64/x32/test-size_t.h
@@ -1,6 +1,6 @@
/* Test string/memory functions with size_t in the lower 32 bits of
64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memchr.c b/sysdeps/x86_64/x32/tst-size_t-memchr.c
index b50606c..c87730e 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memchr.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memchr.c
@@ -1,5 +1,5 @@
/* Test memchr with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c
index 7539169..fcf8595 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c
@@ -1,5 +1,5 @@
/* Test memcmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp.c b/sysdeps/x86_64/x32/tst-size_t-memcmp.c
index c8cde24..b4a6dc7 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memcmp.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp.c
@@ -1,5 +1,5 @@
/* Test memcmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcpy.c b/sysdeps/x86_64/x32/tst-size_t-memcpy.c
index 264ea55..7d32265 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memcpy.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memcpy.c
@@ -1,5 +1,5 @@
/* Test memcpy with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memrchr.c b/sysdeps/x86_64/x32/tst-size_t-memrchr.c
index 7f8c83a..157b8bb 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memrchr.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memrchr.c
@@ -1,5 +1,5 @@
/* Test memrchr with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-memset.c b/sysdeps/x86_64/x32/tst-size_t-memset.c
index 54f9309..ebb8531 100644
--- a/sysdeps/x86_64/x32/tst-size_t-memset.c
+++ b/sysdeps/x86_64/x32/tst-size_t-memset.c
@@ -1,5 +1,5 @@
/* Test memset with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c b/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c
index f57164d..7e13d3f 100644
--- a/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c
+++ b/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c
@@ -1,5 +1,5 @@
/* Test strncaecmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncat.c b/sysdeps/x86_64/x32/tst-size_t-strncat.c
index da39fd6..092bd5d 100644
--- a/sysdeps/x86_64/x32/tst-size_t-strncat.c
+++ b/sysdeps/x86_64/x32/tst-size_t-strncat.c
@@ -1,5 +1,5 @@
/* Test strncat with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncmp.c b/sysdeps/x86_64/x32/tst-size_t-strncmp.c
index bd76385..aa61301 100644
--- a/sysdeps/x86_64/x32/tst-size_t-strncmp.c
+++ b/sysdeps/x86_64/x32/tst-size_t-strncmp.c
@@ -1,5 +1,5 @@
/* Test strncmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncpy.c b/sysdeps/x86_64/x32/tst-size_t-strncpy.c
index bef5d39..787a55b 100644
--- a/sysdeps/x86_64/x32/tst-size_t-strncpy.c
+++ b/sysdeps/x86_64/x32/tst-size_t-strncpy.c
@@ -1,5 +1,5 @@
/* Test strncpy with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-strnlen.c b/sysdeps/x86_64/x32/tst-size_t-strnlen.c
index 44424f3..262a27d 100644
--- a/sysdeps/x86_64/x32/tst-size_t-strnlen.c
+++ b/sysdeps/x86_64/x32/tst-size_t-strnlen.c
@@ -1,5 +1,5 @@
/* Test strnlen with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c b/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
index 6a55f73..2af3c32 100644
--- a/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
+++ b/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
@@ -1,5 +1,5 @@
/* Test wcsncmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c b/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c
index 917ccfa..e606482 100644
--- a/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c
+++ b/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c
@@ -1,5 +1,5 @@
/* Test wcsnlen with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemchr.c b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c
index 65cc487..4e5fc93 100644
--- a/sysdeps/x86_64/x32/tst-size_t-wmemchr.c
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c
@@ -1,5 +1,5 @@
/* Test wmemchr with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c b/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
index 4fa8037..f00e0b4 100644
--- a/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
@@ -1,5 +1,5 @@
/* Test wmemcmp with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemset.c b/sysdeps/x86_64/x32/tst-size_t-wmemset.c
index 7e87617..10d0230 100644
--- a/sysdeps/x86_64/x32/tst-size_t-wmemset.c
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemset.c
@@ -1,5 +1,5 @@
/* Test wmemset with size_t in the lower 32 bits of 64-bit register.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x32/x86-lp_size.h b/sysdeps/x86_64/x32/x86-lp_size.h
index 4ce0a4e..ad22ed0 100644
--- a/sysdeps/x86_64/x32/x86-lp_size.h
+++ b/sysdeps/x86_64/x32/x86-lp_size.h
@@ -1,5 +1,5 @@
/* Pointer size definition for x86-64 x32.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/x86_64/x86-lp_size.h b/sysdeps/x86_64/x86-lp_size.h
index 7e5e222..e57f0e2 100644
--- a/sysdeps/x86_64/x86-lp_size.h
+++ b/sysdeps/x86_64/x86-lp_size.h
@@ -1,5 +1,5 @@
/* Pointer size definition for x86-64.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or